From 62e762a166907d9aa3ee62fc4e4692463f6cb705 Mon Sep 17 00:00:00 2001 From: spatialfree Date: Mon, 17 Jan 2022 16:08:30 -0500 Subject: [PATCH] blocked up --- add/skinned_test.glb | Bin 0 -> 4792 bytes app/Glove.cs | 27 ++++++++++++++++++++++++--- app/MonoNet.cs | 34 +++++++++++++++++++++++++++++----- app/Monolith.cs | 18 ++---------------- 4 files changed, 55 insertions(+), 24 deletions(-) create mode 100644 add/skinned_test.glb diff --git a/add/skinned_test.glb b/add/skinned_test.glb new file mode 100644 index 0000000000000000000000000000000000000000..45f209ca88ee98cbaad66bb55971a298541c5a0e GIT binary patch literal 4792 zcmeHJUr!@d6hH2=%C79Hz=|s<-75;pYdq94QfG5np|x%75Aw5;*Ln7zq8e}Ct9&z!ka*gMF7c!h|5>?Qi) z8qtG|+*(Bx%4H`I(-pDjxQ<^4JYP(UPxgJ!^~#Aolq41o9Cyd@6U+B=i4!ZCO{P-9 z5GRgbE_p7%cG485hA0<7Ag0aGDvRmOif{{uh=~oEGlc8yIGjjroo+R}b6DOx0(0OO z-10#oknEeLVHxJusZkNd{nEjX@8HNyldJ30>z)_j_=-4m%KP&8FtK>N?SQTPsDuhL zLSP$KgJRx4ECk2CBe*H1kv*Pw#Y9Qdv_N*`mkvuo=_CXcg1|3r9|!DK#HYE9<@|DP zO*XNXTVI`D5!03-@=KpD=5p&Fd|`@d+Yk?O%WL@!c2b7;Y-#zUkLzCg)DR_ir&MIN ziBmZtZoWRqlFI{k7JyhS;8cmq7~(6h4^$OfXkj=C)z&V-F5tjCFg6| zXVE)6@?6Ia@{f=3rY0;Kq($%8#hsXdd06;{=bf~s_=_ovsQNPkF%9o<;U1H<_+U)&uEx9 zTgS-S@18t4=Z~>zRy+salh|hrXC-F=j9O|oDz1EW-x#O( z;xNC=g!5&M%|5RL&lHzQLXa2M%BN$o&#B%-6qwp>>uaqcTj)8 zD$hw<&wOndFq`M`?N5(pf9?DJeT9khYmxlZ`tA7lYdF8BaekctTO|Lqemnl?Jf8W@ z_oMSXu2MHHPd8no7w9_mLiWVoW|EA%|QL^mLB;EV63tJDwK zPp{H#dW{m033>y#oAA1@Z-eVP4L}ai>)`66LC8V6LwD&d8iyRGcaa&OVaQ<;$P6NL z2m3Bq`)LSrh~5NhoU)KvO2ZqX5y%mG2d5=y404R#M)fd_LXOgVlp%|fkV#4bH9`iY yLHB_gBOB7Ddq9nn32D-V`mU 0 ? 1 : -1; - // spiral 3 float tighten = Math.Max(1 - (twistAbs / 9), 0); float radius = i == segments ? 0.06f : 0.05f * (1 - (1 - i / (float)segments) * (1 - tighten)); Vec3 nextPos = twistStuff + projection * new Vec3(SKMath.Sin(tw * SKMath.Pi), SKMath.Cos(tw * SKMath.Pi), 0) * radius; @@ -154,7 +155,27 @@ public class Glove { } Lines.Add(linePoints); - mesh.Draw(mat, glove.ToMatrix(new Vec3(0.025f, 0.1f, 0.1f) / 3)); - mesh.Draw(mat, virtualGlove.ToMatrix(new Vec3(0.025f, 0.1f, 0.1f))); + mesh.Draw(mat, glove.ToMatrix(new Vec3(0.025f, 0.025f, 0.025f) / 3)); + mesh.Draw(mat, virtualGlove.ToMatrix(new Vec3(0.025f, 0.1f, 0.1f) / 3)); + // Lines.AddAxis(glove); + // Handed handed = chirality ? Handed.Right : Handed.Left; + // Hand hand = Input.Hand(handed); + // HandJoint[] joints = hand.fingers; + // for (int i = 0; i < joints.Length; i++) { + // joints[i].position = (joints[i].position - glove.position) + virtualGlove.position; + // } + // Input.HandOverride(chirality ? Handed.Right : Handed.Left, joints); + // Input.HandClearOverride(handed); + + // model.Draw(glove.ToMatrix(Vec3.One / 4)); + // Matrix m4 = model.RootNode.Child.LocalTransform; + // Pose mPose = m4.Pose; + // mPose.orientation = Quat.FromAngles(Vec3.Right * 45); + // m4 = mPose.ToMatrix(); + // model.RootNode.Child.LocalTransform = m4; + // ? for stereo kit nick "can i directly update bone transforms on a skinned mesh" + + + } } diff --git a/app/MonoNet.cs b/app/MonoNet.cs index 18a6350..29d68b7 100644 --- a/app/MonoNet.cs +++ b/app/MonoNet.cs @@ -299,14 +299,38 @@ class Peer { // voiceInst = voice.Play(Vec3.Zero, 0.5f); } - BlockCon dBlock = new BlockCon(); - BlockCon sBlock = new BlockCon(); + BlockCon rBlock = new BlockCon(); + BlockCon lBlock = new BlockCon(); CubicCon cubicCon = new CubicCon(); - public void Step(Con rCon, Con lCon) { - dBlock.Step(rCon, lCon, cursor0, ref sBlock, ref blocks); - sBlock.Step(lCon, rCon, cursor3, ref dBlock, ref blocks); + public Vec3 vGlovePos; + + + public void Step(Monolith mono, Con rCon, Con lCon) { // CLIENT SIDE + rBlock.Step(rCon, lCon, mono.rGlove.virtualGlove.position, ref lBlock, ref blocks); + lBlock.Step(lCon, rCon, mono.lGlove.virtualGlove.position, ref rBlock, ref blocks); + + // too much in this networking class + // should contain only network related data + // and not be a weird pitstop for the game logic + // does it store a copy of the data? + // or just a reference to the data? + + // vGlovePos = mono.rGlove.virtualGlove.position; + + // for (int i = 0; i < blocks.Length; i++) { + // Pose blockPose = blocks[i].solid.GetPose(); + // Bounds bounds = new Bounds(Vec3.Zero, Vec3.One * blocks[i].size); + // if (blocks[i].active && ( + // bounds.Contains(blockPose.orientation.Inverse * (cursor - blockPose.position)) || + // bounds.Contains(blockPose.orientation.Inverse * (cursor3 - blockPose.position)) + // )) { + // blocks[i].color = new Color(0.8f, 1, 1); + // } else { + // blocks[i].color = new Color(1, 1, 1); + // } + // } cubicCon.Step(rCon, lCon, this, ref cubics); diff --git a/app/Monolith.cs b/app/Monolith.cs index 807ef08..5e919f7 100644 --- a/app/Monolith.cs +++ b/app/Monolith.cs @@ -11,7 +11,7 @@ if (!SK.Initialize(settings)) Environment.Exit(1); Input.HandSolid(Handed.Max, false); -Input.HandVisible(Handed.Max, false); +// Input.HandVisible(Handed.Max, false); // TextStyle style = Text.MakeStyle(Font.FromFile("DMMono-Regular.ttf"), 0.1f, Color.White); Monolith mono = new Monolith(); @@ -167,20 +167,6 @@ public class Monolith { // boolean over network to determine if a peers cubic flow should be drawn - for (int i = 0; i < net.me.blocks.Length; i++) { - Pose blockPose = net.me.blocks[i].solid.GetPose(); - Bounds bounds = new Bounds(Vec3.Zero, Vec3.One * net.me.blocks[i].size); - if (net.me.blocks[i].active && ( - bounds.Contains(blockPose.orientation.Inverse * (net.me.cursor0 - blockPose.position)) || - bounds.Contains(blockPose.orientation.Inverse * (net.me.cursor3 - blockPose.position)) - )) { - net.me.blocks[i].color = new Color(0.8f, 1, 1); - } else { - net.me.blocks[i].color = new Color(1, 1, 1); - } - } - - // FULLSTICK // Quat rot = Quat.FromAngles(subCon.stick.y * -90, 0, subCon.stick.x * 90); // Vec3 dir = Vec3.Up * (subCon.IsStickClicked ? -1 : 1); @@ -377,7 +363,7 @@ public class Monolith { } } - net.me.Step(rCon, lCon); + net.me.Step(this, rCon, lCon);