Exemplo n.º 1
0
        public void DrawWireframe(BasicEffect effect, GraphicsDevice graphicsDevice)
        {
            List <VertexPositionColor> wireframe = GetAABBWireframe();

            ShaderManager.GetInstance().DefaultEffect.TextureEnabled = false;
            ShaderManager.GetInstance().DefaultEffect.VertexColorEnabled = true;
            ShaderManager.GetInstance().DefaultEffect.CurrentTechnique.Passes[0].Apply();

            graphicsDevice.DrawUserPrimitives <VertexPositionColor>(PrimitiveType.LineStrip, wireframe.ToArray(), 0, wireframe.Count - 1);


            List <VertexPositionColor> collisionWireframe = _collisionBox.GetCollisionBoxWireframe(Color.White);

            graphicsDevice.DrawUserPrimitives <VertexPositionColor>(PrimitiveType.LineStrip, facingLine.ToArray(), 0, facingLine.Count - 1);

            #region Axes


            graphicsDevice.DrawUserPrimitives <VertexPositionColor>(PrimitiveType.LineStrip, xAxisLine.ToArray(), 0, xAxisLine.Count - 1);

            graphicsDevice.DrawUserPrimitives <VertexPositionColor>(PrimitiveType.LineStrip, zAxisLine.ToArray(), 0, zAxisLine.Count - 1);
            #endregion
            if (mouseRayLine != null && mouseRayLine.Count > 1)
            {
                graphicsDevice.DrawUserPrimitives <VertexPositionColor>(PrimitiveType.LineStrip, mouseRayLine.ToArray(), 0, mouseRayLine.Count - 1);
            }

            if (TEMP_selectedObjects != null && TEMP_selectedObjects.Count > 0)
            {
                foreach (AbstractWorldObject obj in TEMP_selectedObjects)
                {
                    obj.DrawRotatedBoundingBox(effect, graphicsDevice);
                }
            }

            foreach (List <VertexPositionColor> movementLine in movementLines)
            {
                graphicsDevice.DrawUserPrimitives <VertexPositionColor>(PrimitiveType.LineStrip, movementLine.ToArray(), 0, movementLine.Count - 1);
            }
            graphicsDevice.DrawUserPrimitives <VertexPositionColor>(PrimitiveType.LineStrip, collisionWireframe.ToArray(), 0, collisionWireframe.Count - 1);
        }