private void CheckForCollisionSimpleCommand()
        {
            List <BoundingBox> regions = new List <BoundingBox>();
            List <Vector3>     colPos  = new List <Vector3>();

            this.root.GetCollisionRegions(ref regions, ref colPos, 0.01);
            this.PointsCollision = new List <Point3D>(CommonExtensions.ConvertVector3ListToPoint3DList(colPos));
        }
        private void CheckForCollisionsCommand()
        {
            List <BoundingBox> regions = new List <BoundingBox>();
            List <Vector3>     colPos  = new List <Vector3>();

            this.root.GetCollisionRegions(ref regions, ref colPos, 0.01);
            this.PointsCollision = new List <Point3D>(CommonExtensions.ConvertVector3ListToPoint3DList(colPos));

            if (regions.Count > 0)
            {
                // the line marker FIRST, because the of the TRANSPARENCY SORTING
                List <SharpDX.Matrix> instances_LM = new List <Matrix>();
                foreach (var pos in colPos)
                {
                    SharpDX.Matrix Tr = SharpDX.Matrix.Translation(pos);
                    instances_LM.Add(Tr);
                }
                this.colPointMarker.Instances  = instances_LM;
                this.colPointMarker.Visibility = Visibility.Visible;

                // cell marker SECOND
                List <SharpDX.Matrix> instances_CM = new List <Matrix>();
                int rn = regions.Count;
                for (int i = rn - 1; i >= 0; i--)
                {
                    BoundingBox    region     = regions[i];
                    Vector3        dimensions = region.Maximum - region.Minimum;
                    Vector3        half       = dimensions / 2f;
                    Vector3        center     = region.Minimum + half;
                    SharpDX.Matrix Sc         = SharpDX.Matrix.Scaling(dimensions - new Vector3((float)VIS_OFFSET));
                    SharpDX.Matrix Tr         = SharpDX.Matrix.Translation(center);
                    instances_CM.Add(Sc * Tr);
                }
                this.cellFill.Instances  = instances_CM;
                this.cellFill.Visibility = Visibility.Visible;
            }
            else
            {
                this.cellFill.Instances  = new List <Matrix>();
                this.cellFill.Visibility = Visibility.Hidden;

                this.colPointMarker.Instances  = new List <Matrix>();
                this.colPointMarker.Visibility = Visibility.Hidden;
            }
        }