public static void DrawBoundingBox(BoundingBox box, Vector3 Position, Matrix Orientation) { Vector3[] points = new Vector3[8]; points = box.GetCorners(); for (int i = 0; i < 8; i++) { points[i] = Vector3.Transform(points[i], Orientation); points[i] += Position; } LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Color.White, points[0], points[1]); LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Color.White, points[1], points[2]); LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Color.White, points[2], points[3]); LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Color.White, points[3], points[0]); LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Color.White, points[4], points[5]); LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Color.White, points[5], points[6]); LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Color.White, points[6], points[7]); LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Color.White, points[7], points[4]); LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Color.White, points[0], points[4]); LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Color.White, points[1], points[5]); LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Color.White, points[2], points[6]); LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Color.White, points[3], points[7]); SpriteFont font = Engine.Content.Load <SpriteFont>("Fonts/Font"); Engine.spriteBatch.Begin(); for (int i = 0; i < 8; i++) { Vector3 initial_position = Engine.g.Viewport.Project(points[i], Camera.Projection, Camera.View, Matrix.Identity); Engine.spriteBatch.DrawString(font, i.ToString(), new Vector2(initial_position.X, initial_position.Y), Color.Red); } Engine.spriteBatch.End(); }
public override void Draw(Effect e) { List <Transform> js = Joints;//the resons for always using this local //variable is so that the Joints list does not have to be regenerated upon every single reference if (Joints.Count > 1 && DrawPath == true) { int j = 0; float am = 0; Vector3 Start, End; Start = Joints[0].AbsolutePosition; foreach (Transform J in Joints) { for (am = 0; am < 1.0f; am += 0.01f) { End = Vector3.CatmullRom(Joints[PreviousJoint(j, js)].AbsolutePosition, Joints[j].AbsolutePosition, Joints[NextJoint(j, js)].AbsolutePosition, Joints[NextJoint(NextJoint(j, js), js)].AbsolutePosition, am); LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Microsoft.Xna.Framework.Color.Gray, Start, End); Start = End; } j++; } } Target.Draw(e); base.Draw(e); }
public override void Draw(Effect e) { base.Draw(e); LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Microsoft.Xna.Framework.Color.White, this.AbsolutePosition, this.AbsolutePosition); //LineUtility3D.DrawAABoundingBox(Engine.g, Camera.View, Camera.Projection, this.AbsoluteBoundingBox, Matrix.Identity); //LineUtility3D.DrawAABoundingBox(Engine.g, Camera.View, Camera.Projection, this.boundingBox, this.AbsoluteWorld); }
public void Draw(Matrix ParentWorld) { LineUtility3D.DrawAABoundingBox(Engine.g, Camera.View, Camera.Projection, boundingBox, ParentWorld); if (IsEnd == false) { for (int i = 0; i < 8; i++) { Octrees[i].Draw(ParentWorld); } } }
/// <summary> /// _Not_ to be used for main drawing of 3D entities - should be done by scene manager. /// This handles the drawing of any UI graphics /// </summary> public virtual void Draw() { if (DebugDraw) { LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Microsoft.Xna.Framework.Color.White, AbsolutePosition, AbsolutePosition + Vector3.Right * 0.5f); LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Microsoft.Xna.Framework.Color.White, AbsolutePosition, AbsolutePosition + Vector3.Up * 0.5f); LineUtility3D.Draw3DLine(Engine.g, Camera.View, Camera.Projection, Microsoft.Xna.Framework.Color.White, AbsolutePosition, AbsolutePosition + Vector3.Forward * 0.5f); } for (int i = 0; i < Children.Count; i++) { Children[i].Draw(); } }