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 ConservativeAdvancement() { var parameters = new CollisionEngineParameters(); var physicsEngineParams = new PhysicsEngineParameters(); parameters.SetManifoldPoints(0); collisionDetectionEngine = new NarrowPhase(parameters); broadPhaseEngine = new AABBBroadPhase(parameters); integratePosition = new IntegratePosition(physicsEngineParams); }