private void DrawAxis(ArcBallCamera camera, Effect wireframeEffect) { foreach (EffectPass pass in wireframeEffect.CurrentTechnique.Passes) { pass.Apply(); graphics.GraphicsDevice.DrawUserIndexedPrimitives <VertexPositionColor>(PrimitiveType.LineList, GlobalAxisVertices.ToArray(), 0, GlobalAxisVertices.Count, GlobalAxisIndices.ToArray(), 0, GlobalAxisIndices.Count / 2); } }
public void DrawStages(ArcBallCamera camera, BasicEffect effect, BasicEffect wireframeEffect) { Axe0.Draw(effect); Axe1.Draw(effect); foreach (var a in Steps) { a.Draw(effect); } }
protected override void Initialize() { this.IsMouseVisible = true; effect = new BasicEffect(graphics.GraphicsDevice); wireframeEffect = new BasicEffect(graphics.GraphicsDevice); camera = new ArcBallCamera(new Vector3(0f, 0f, 0f), MathHelper.ToRadians(-200), 0f, 10f, 300f, 50f, GraphicsDevice.Viewport.AspectRatio, 0.1f, 512f); Puma1 = new Puma(graphics.GraphicsDevice, 2, 2, 2, 2); InitializeGlobalAxis(4); InitializePositionAxis(); base.Initialize(); }
/// <summary> /// /// </summary> /// <param name="camera"></param> /// <param name="effect"></param> /// <param name="timeElapsedFromAnimationStart">in miliseconds</param> /// <param name="totalAnimationTime">in seconds</param> public void Draw(ArcBallCamera camera, BasicEffect effect, BasicEffect wireframeEffect, double timeElapsedFromAnimationStart, double totalAnimationTime, bool isAnimated) { if (isAnimated) { totalAnimationTime *= 1000; if (timeElapsedFromAnimationStart <= totalAnimationTime /*&& gameTime.ElapsedGameTime.TotalMilliseconds>=1*/) { NextStep((float)(timeElapsedFromAnimationStart / totalAnimationTime), AxeNext, true); } } Axe0.Draw(effect); Axe1.Draw(effect); AxeNext.Draw(effect); if (LineVertices.Count - 1 > 0) { foreach (EffectPass pass in wireframeEffect.CurrentTechnique.Passes) { pass.Apply(); device.DrawUserIndexedPrimitives <VertexPositionColor>(PrimitiveType.LineList, LineVertices.ToArray(), 0, LineVertices.Count, LineIndices.ToArray(), 0, LineVertices.Count - 1); } } }