Exemple #1
0
        public void DrawCubeOutLine()
        {
            if (HasOutLineTool)
            {
                Point3D  CubePosition = new Point3D(-1, -1, -1);
                double   PickDistance = 5;
                Vector3D ViewDir      = CameraDirection;

                for (double i = 0; i <= PickDistance; i += 0.1f)
                {
                    Point3D PickPosition = new Point3D(CameraPosition.X + ViewDir.X * i, CameraPosition.Y + ViewDir.Y * i, CameraPosition.Z + ViewDir.Z * i);
                    CubePosition = new Point3D(Math.Round(CameraPosition.X + ViewDir.X * (i + 1)), Math.Round(CameraPosition.Y + ViewDir.Y * (i + 1)), Math.Round(CameraPosition.Z + ViewDir.Z * (i + 1)));
                    if (ChunkTracker.HasVoxel(PickPosition))
                    {
                        break;
                    }
                }

                if (!CubeOutLinePosition.Equals(CubePosition))
                {
                    //redraw cube outline
                    CubeOutLinePosition = CubePosition;
                    TranslateTransform3D translation = new TranslateTransform3D(CubeOutLinePosition.X, CubeOutLinePosition.Y, CubeOutLinePosition.Z);
                    CubeOutLineModel.Transform = translation;
                }
                //Debug.WriteLine(CubeOutLinePosition);
            }
            else
            {
                TranslateTransform3D translation = new TranslateTransform3D(-100, -100, -100);
                CubeOutLineModel.Transform = translation;
                CubeOutLinePosition        = new Point3D(-100, -100, -100);
            }
        }