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 PhysicsEngine ( SimulationParameters simulationParameters, CollisionEngineParameters collisionEngineParameters, SolverParameters solverParameters) { SolverParam = solverParameters; SetSolver(SolverType.NonLinearConjugateGradient); CollisionEngineParam = collisionEngineParameters; collisionEngine = new CollisionDetectionEngine(collisionEngineParameters); SimulationEngineParameters = simulationParameters; contactPartitioningEngine = new ContactPartitioningEngine(); simulationObjects = new SimulationObject[0]; simulationJoints = new List<IConstraint> (); }
protected virtual void Dispose(bool disposing) { if (disposed) return; if (disposing) { simulationObjects = null; simulationJoints = null; collisionPoints = null; collisionPartitionedPoints = null; partitionedJoint = null; collisionEngine = null; contactPartitioningEngine = null; solver = null; } // Free any unmanaged objects here. // disposed = true; }