Ejemplo n.º 1
0
        protected override CCollision OnInitialise()
        {
            CCollisionConvexPrimitives collision = new CCollisionConvexPrimitives(this.World.NewtonWorld);

            collision.CreateNull();
            return(collision);
        }
Ejemplo n.º 2
0
        public static CCollisionConvexPrimitives[] GetNewtonCollisions(ICollection <ConvexCollisionMask> collisions)
        {
            int i = 0;

            CCollisionConvexPrimitives[] handles = new CCollisionConvexPrimitives[collisions.Count];
            foreach (ConvexCollisionMask c in collisions)
            {
                handles[i++] = c.NewtonCollision;
            }
            return(handles);
        }
Ejemplo n.º 3
0
        protected override CCollision OnInitialise()
        {
            base.OnInitialise();

            if (!(this.Geometry is MeshGeometry3D))
            {
                throw new InvalidOperationException("Only MeshGeometry3D supported.");
            }

            _points = GeometryHelper.GetGeometryPoints((MeshGeometry3D)this.Geometry, Matrix3D.Identity);
            if (_points == null)
            {
                throw new InvalidOperationException("The MeshGeometry3D contains no geometry.");
            }

            CCollisionConvexPrimitives collision = new CCollisionConvexPrimitives(this.World.NewtonWorld);

            collision.CreateConvexHull(_points, Matrix3D.Identity);

            return(collision);
        }