Beispiel #1
0
        public void Translate(Vector3D vector)
        {
            Matrix3D matrix = Matrix3D.Identity;

            matrix.Translate(vector);

            //TODO: maybe create a modifier collision if one doesn't exist.
            foreach (ConvexCollisionMask collision in this.Collisions)
            {
                ConvextCollisionModifier modifier = (collision as ConvextCollisionModifier);
                if (modifier != null)
                {
                    modifier.ModifierMatrix = modifier.ModifierMatrix * matrix;
                }
            }
        }
Beispiel #2
0
 private static void AddPoints(ConvexCollisionMask collision, List <Point3D> points)
 {
     if (collision is IMesh)
     {
         IList <Point3D> newPoints = ((IMesh)collision).GetPoints();
         if (newPoints != null)
         {
             points.AddRange(newPoints);
         }
     }
     else
     {
         ConvextCollisionModifier modifier = (collision as ConvextCollisionModifier);
         if (modifier != null)
         {
             int i = points.Count; // starting index of new points
             AddPoints(modifier.CollisionMask, points);
             for (int count = points.Count; i < count; i++)
             {
                 points[i] = modifier.ModifierMatrix.Transform(points[i]);
             }
         }
     }
 }