public override void Load(ContentManager content) { graphics = SceneManager.GraphicsDevice; camera = new Camera3D(); effect = new BasicEffect(graphics); effect.VertexColorEnabled = true; rasterizer = new RasterizerState(); rasterizer.FillMode = FillMode.WireFrame; rasterizer.CullMode = CullMode.None; InitJoints(); base.Load(content); var panel = new Panel(new Rectangle(10, 10, 300, 500)); jointAngleText = new TextBlock("A", 0, 0); goalText = new TextBlock("A", 0, 30); sizeText = new TextBlock(baseJoint.Size().ToString(), 0, 60); panel.AddChildren(jointAngleText, goalText, sizeText); Gui.BaseContainer.AddChildren( panel ); }
private void InitGui() { var panelW = 700; var panelH = 450; var panel = new Panel(new Rectangle(WIDTH / 2 - panelW / 2, HEIGHT / 2 - panelH / 2, panelW, panelH)); var exitButton = new Button("Return to Menu", 10, 360); exitButton.Clicked += (s, e) => Exit(); panel.AddChildren(new TextBlock( "Welcome to the Inverse Kinematics Demo!\n\n" + "General Controls for Demos-\n" + " Left Click: Move the goal position.\n" + " Spacebar: Run one IK iteration per frame (Demo 1 just runs 1 iteration)\n" + " Shift+Spacebar: Run IK iterations until a solution is found (or a max is reached).\n" + " Escape: Exits the individual demo, or the entire program (on the menu screen)\n\n" + "Notes-\n" + " Descriptions for each demo can be found in the report.\n" + " Live Demo is for the presentation only. No written documentation is provided.\n" + " Some code is unused (like PseudoMatrix). This is from either testing or deprecation.\n" + " Press Escape to return to the main menu!\n\n" + "Program by Alexander Pabst", 10, 10), exitButton); Gui.BaseContainer.AddChildren(panel); }
private void InitGui() { var panel = new Panel(new Rectangle(0, 0, 300, 500)); jointCountG = new TextBlock("", 0, 30); panel.AddChildren(new TextBlock("3D IK Example", 0, 0), jointCountG); Gui.BaseContainer.AddChildren(panel); }
public override void Load(ContentManager content) { base.Load(content); var panelW = 400; var panelH = 450; var panel = new Panel(new Rectangle(WIDTH / 2 - panelW / 2, HEIGHT / 2 - panelH / 2, panelW, panelH)); panel.AddChildren(new TextBlock("Inverse Kinematics Demos", 10, 0)); var instructionButton = new Button("Instructions", 10, 60); instructionButton.Clicked += (s, e) => SceneManager.AddScene(new InstructionScene()); var comparisonButton = new Button("Comparison Inverse Kinematics Demo", 10, 120); comparisonButton.Clicked += (s, e) => SceneManager.AddScene(new ComparisonScene()); var angleLimitButton = new Button("Angle Limit Inverse Kinematics Demo", 10, 170); angleLimitButton.Clicked += (s, e) => SceneManager.AddScene(new AngleLimitScene()); var varianceButton = new Button("Variance Inverse Kinematics Demo", 10, 220); varianceButton.Clicked += (s, e) => SceneManager.AddScene(new VarianceScene()); var constraintButton = new Button("Constraint Inverse Kinematics Demo", 10, 270); constraintButton.Clicked += (s, e) => SceneManager.AddScene(new ConstraintScene()); var ik2dButton = new Button("Live Demo Only", 10, 340); ik2dButton.Clicked += (s, e) => SceneManager.AddScene(new IK2D()); panel.AddChildren(instructionButton, ik2dButton, comparisonButton, angleLimitButton, varianceButton, constraintButton); Gui.BaseContainer.AddChildren(panel); }