public SharpEngine( PhysicsEngineParameters simulationParameters, CollisionEngineParameters collisionEngineParameters, SolverParameters solverParameters) { SolverParameters = solverParameters; CollisionEngineParam = collisionEngineParameters; EngineParameters = simulationParameters; // Default solver SetSolverType(SolverType.ProjectedGaussSeidel); Shapes = new IShape[0]; CollisionEngine = new CollisionDetectionEngine( collisionEngineParameters, EngineParameters.CollisionDistance); contactPartitioningEngine = new ContactPartitioningEngine(); CollisionShapes = new List <ICollisionShape>(); CollisionJoints = new List <ICollisionJoint>(); Joints = new List <IConstraint> (); HsGenerator = new HashGenerator(); LinearSystemBuilder = new LinearProblemBuilderEngine(EngineParameters); IntegrateVelocityEngine = new IntegrateVelocity(EngineParameters); IntegratePositionEngine = new IntegratePosition(EngineParameters); contactConstraintBuilder = new ContactConstraintBuilder(EngineParameters); rayCastEngine = new RayCastingEngine(); warmStartEngine = new WarmStartEngine(EngineParameters); ccdEngine = new ConservativeAdvancement(); }
public static RayCastingEngine GetInstance() { if (instance == null) { instance = new RayCastingEngine(); } return(instance); }