diff --git a/app/Mono.cs b/app/Mono.cs index a279cbe..ad6fad1 100644 --- a/app/Mono.cs +++ b/app/Mono.cs @@ -1,189 +1,182 @@ namespace Oriels; public class Mono { - private static readonly Lazy lazy = new Lazy(() => new Oriels.Mono()); - public static Oriels.Mono inst { get { return lazy.Value; } } + private static readonly Lazy lazy = new Lazy(() => new Oriels.Mono()); + public static Oriels.Mono inst { get { return lazy.Value; } } - public PullRequest.Noise noise = new PullRequest.Noise(939949595); + public PullRequest.Noise noise = new PullRequest.Noise(939949595); - public Material matDev; - public Material matHolo; + public Material matDev; + public Material matHolo; - public Rig rig = new Rig(); - public Scene scene = new Scene(); + public Rig rig = new Rig(); + public Space space = new Space(); + public Compositor compositor = new Compositor(); - // ------------------------------------------------- + // ------------------------------------------------- - public dof[] dofs; - int dofIndex = 0; - dof dof => dofs[dofIndex]; + public dof[] dofs; + int dofIndex = 0; + dof dof => dofs[dofIndex]; - public Oriel oriel = new Oriel(); // -> array ? + public ColorCube colorCube = new ColorCube(); - public ColorCube colorCube = new ColorCube(); + public Glove rGlove = new Glove(true), lGlove = new Glove(false); + public Glove Glove(bool chirality) { return chirality ? rGlove : lGlove; } - public Glove rGlove = new Glove(true), lGlove = new Glove(false); - public Glove Glove(bool chirality) { return chirality ? rGlove : lGlove; } + public BlockCon rBlock = new BlockCon(true), lBlock = new BlockCon(false); + public BlockCon BlockCon(bool chirality) { return chirality ? rBlock : lBlock; } + public Block[] blocks = new Block[] { + new Block(), new Block(), new Block(), new Block(), new Block(), new Block() + }; - public BlockCon rBlock = new BlockCon(true), lBlock = new BlockCon(false); - public BlockCon BlockCon(bool chirality) { return chirality ? rBlock : lBlock; } - public Block[] blocks = new Block[] { - new Block(), new Block(), new Block(), new Block(), new Block(), new Block() - }; + public CubicCon cubicCon = new CubicCon(); + public Cubic[] cubics = new Cubic[] { + new Cubic(), new Cubic(), new Cubic(), new Cubic(), new Cubic(), new Cubic() + }; - public CubicCon cubicCon = new CubicCon(); - public Cubic[] cubics = new Cubic[] { - new Cubic(), new Cubic(), new Cubic(), new Cubic(), new Cubic(), new Cubic() - }; + // ------------------------------------------------- - // ------------------------------------------------- + public MonoNet net = new MonoNet(); - public MonoNet net = new MonoNet(); + public Mono() { + Renderer.SetClip(0.02f, 1000f); - public Mono() { - Renderer.SetClip(0.02f, 1000f); + dofs = new dof[] { + // new StretchFinger(), + new WaveCursor() { handed = Handed.Left }, + new WaveCursor() { handed = Handed.Right }, + new Trackballer() { handed = Handed.Left }, + new Trackballer() { handed = Handed.Right }, + // new StretchCursor() { }, + // new StretchCursor() { }, + }; + } - dofs = new dof[] { - // new StretchFinger(), - new WaveCursor() { handed = Handed.Left }, - new WaveCursor() { handed = Handed.Right }, - new Trackballer() { handed = Handed.Left }, - new Trackballer() { handed = Handed.Right }, - // new StretchCursor() { }, - // new StretchCursor() { }, - }; - } + public void Init() { + compositor.Init(); - public void Init() { + dofs[0].Init(); + dofs[1].Init(); + dofs[2].Init(); + dofs[3].Init(); - // dofs[0].Init(); - // dofs[1].Init(); - - - // spaceMono.Init(); - greenyard.Init(); - - matDev = Material.Default.Copy(); - matDev.SetTexture("diffuse", Tex.DevTex); + matDev = Material.Default.Copy(); + matDev.SetTexture("diffuse", Tex.DevTex); matHolo = Material.Default.Copy(); - matHolo.Transparency = Transparency.Add; + matHolo.Transparency = Transparency.Add; matHolo.DepthWrite = false; - matHolo.DepthTest = DepthTest.Less; + matHolo.DepthTest = DepthTest.Always; matHolo.SetTexture("diffuse", Tex.DevTex); - } + } - // ------------------------------------------------- + public void Frame() { - // Space.Mono spaceMono = new Space.Mono(); - Greenyard.Mono greenyard = new Greenyard.Mono(); + // Input.HandClearOverride(Handed.Left); + Input.HandClearOverride(Handed.Right); + // store hand pre override in rig + rig.Step(); - // ------------------------------------------------- + // Hand hand = Input.Hand(Handed.Right); + // Controller con = Input.Controller(Handed.Right); + // Mesh.Cube.Draw( + // Material.Default, + // hand.IsJustPinched + // ) - public void Frame() { + // Con -> Hand + // lGlove.Step(); + // rGlove.Step(); - rig.Step(); + compositor.Frame(); - // ------------------------------------------------- - - // dof.Frame(); - dofs[0].Frame(); - dofs[1].Frame(); - dofs[2].Frame(); - dofs[3].Frame(); + // ------------------------------------------------- - WaveCursor lwc = (WaveCursor)dofs[0]; - WaveCursor rwc = (WaveCursor)dofs[1]; + // // dof.Frame(); + dofs[0].Frame(); + dofs[1].Frame(); + dofs[2].Frame(); + dofs[3].Frame(); + + WaveCursor lwc = (WaveCursor)dofs[0]; + WaveCursor rwc = (WaveCursor)dofs[1]; Trackballer ltb = (Trackballer)dofs[2]; Trackballer rtb = (Trackballer)dofs[3]; - lwc.Demo(ltb.ori); + lwc.Demo(ltb.ori); rwc.Demo(rtb.ori); - Mesh.Cube.Draw(Mono.inst.matHolo, + Mesh.Cube.Draw(Mono.inst.matHolo, Matrix.TRS( lwc.cursor.position, - ltb.ori, - 0.04f + Quat.Identity, // ltb.ori, + 0.015f ), - new Color(1, 0, 0) + new Color(0, 1, 1) ); - Mesh.Cube.Draw(Mono.inst.matHolo, + Mesh.Cube.Draw(Mono.inst.matHolo, Matrix.TRS( - rwc.cursor.position, - rtb.ori, - 0.04f + rwc.cursor.position, + Quat.Identity, // rtb.ori, + 0.015f ), - new Color(1, 0, 0) + new Color(0, 1, 1) ); + // rBlock.Step(); lBlock.Step(); - // rGlove.Step(); lGlove.Step(); + // cubicCon.Step(); - // rBlock.Step(); lBlock.Step(); + // colorCube.Palm(lCon.device); - // cubicCon.Step(); + // ------------------------------------------------- - // colorCube.Palm(lCon.device); + net.me.Step(); + net.send = true; - oriel.Frame(); + ShowWindowButton(); + } - scene.Step(); // after! (render scene after oriel) + Pose windowPoseButton = new Pose(0, 0, 0.75f, Quat.Identity); + void ShowWindowButton() { + UI.WindowBegin("Window Button", ref windowPoseButton); - // ------------------------------------------------- + // if (UI.Button("Draw Oriel Axis")) { oriel.drawAxis = !oriel.drawAxis; } - // spaceMono.Frame(); - greenyard.Frame(); + // if (UI.Button("Reset Oriel Quat")) { oriel.ori = Quat.Identity; } + // if (UI.Button("Scale w/Height")) { oriel.scaleWithHeight = !oriel.scaleWithHeight; } + // UI.HSlider("Scale", ref oriel.scale, 0.1f, 1f, 0.1f); + // UI.HSlider("Multiplier", ref oriel.multiplier, 0.1f, 1f, 0.1f); + // // UI.Label("Player.y"); + // UI.HSlider("Player.y", ref greenyard.height, 1f, 6f, 0.2f); - // ------------------------------------------------- + // UI.Label("pos.y"); + // UI.HSlider("pos.y", ref playerY, -1f, 1f, 0.1f); - oriel.Render(); + // UI.Label("trail.length"); + // UI.HSlider("trail.length", ref trailLen, 0.1f, 1f, 0.1f); - net.me.Step(); - net.send = true; + // UI.Label("trail.scale"); + // UI.HSlider("trail.str", ref trailScl, 0.1f, 2f, 0.1f); - ShowWindowButton(); - } - - Pose windowPoseButton = new Pose(0, 0, 0.75f, Quat.Identity); - void ShowWindowButton() { - UI.WindowBegin("Window Button", ref windowPoseButton); - - // if (UI.Button("Draw Oriel Axis")) { oriel.drawAxis = !oriel.drawAxis; } - - // if (UI.Button("Reset Oriel Quat")) { oriel.ori = Quat.Identity; } - // if (UI.Button("Scale w/Height")) { oriel.scaleWithHeight = !oriel.scaleWithHeight; } - // UI.HSlider("Scale", ref oriel.scale, 0.1f, 1f, 0.1f); - // UI.HSlider("Multiplier", ref oriel.multiplier, 0.1f, 1f, 0.1f); - // UI.Label("Player.y"); - // UI.HSlider("Player.y", ref greenyard.height, 0.1f, 1.5f, 0.1f); - - UI.Label("pos.y"); - UI.HSlider("pos.y", ref playerY, -1f, 1f, 0.1f); - - UI.Label("trail.length"); - UI.HSlider("trail.length", ref trailLen, 0.1f, 1f, 0.1f); - - UI.Label("trail.scale"); - UI.HSlider("trail.str", ref trailScl, 0.1f, 2f, 0.1f); - - UI.Label("str"); - UI.HSlider("str", ref stretchStr, 0.1f, 1f, 0.1f); + // UI.Label("str"); + // UI.HSlider("str", ref stretchStr, 0.1f, 1f, 0.1f); - // flipIndex - // flipGrip + // flipIndex + // flipGrip - UI.WindowEnd(); - } - public float trailLen = 0.5f; - public float trailScl = 0.2f; - public float stretchStr = 0.333f; - public float playerY = 0; + UI.WindowEnd(); + } + public float trailLen = 0.666f; + public float trailScl = 0.2f; + public float stretchStr = 0.5f; + public float playerY = 0; } diff --git a/app/dofs/stretch-cursor/og/StretchCursor.cs b/app/dofs/stretch-cursor/og/StretchCursor.cs index 5fa8e55..e5e76f0 100644 --- a/app/dofs/stretch-cursor/og/StretchCursor.cs +++ b/app/dofs/stretch-cursor/og/StretchCursor.cs @@ -15,7 +15,7 @@ class StretchCursor : dof { float mag = (vTo - vFrom).Magnitude; stretch = MathF.Max(mag - deadzone, 0); - Vec3 dir = PullRequest.Direction(vTo, vFrom); + Vec3 dir = Vec3.Direction(vTo, vFrom); cursor = vTo + dir * stretch * strength; // draw