protected override CCollision OnInitialise() { CCollisionConvexPrimitives collision = new CCollisionConvexPrimitives(this.World.NewtonWorld); collision.CreateNull(); return(collision); }
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); }
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); }