public SharpEngine GetPhysicsEnvironment() { var physicsEnvironment = new SharpEngine(); List <ICollisionShape> objects = BuildBaseAndCarShapes(); foreach (var obj in objects) { physicsEnvironment.AddShape(obj); } ICollisionJoint[] constraints = GetCarConstraints(objects); foreach (var item in constraints) { physicsEnvironment.AddJoint(item); } var bridge = BuildBridge(); var bridgeConstraints = GetBridgeConstraints(bridge); foreach (var item in bridge) { physicsEnvironment.AddShape(item); } foreach (var item in bridgeConstraints) { physicsEnvironment.AddJoint(item); } var stack = BuildStack(); foreach (var item in stack) { physicsEnvironment.AddShape(item); } //var jenga = BuildJenga(); //foreach (var item in jenga) //{ // physicsEnvironment.AddShape(item); //} physicsEnvironment.EngineParameters.SetFrictionDirection(2); physicsEnvironment.SolverParameters.SetSolverMaxIteration(50); physicsEnvironment.SolverParameters.SetSOR(1.0); physicsEnvironment.SolverParameters.SetErrorTolerance(1E-10); physicsEnvironment.SolverParameters.SetNewtonStepIterations(0); physicsEnvironment.SetSolverType(SolverType.NonLinearConjugateGradient); return(physicsEnvironment); }
public SharpEngine GetPhysicsEnvironment() { var physicsEnvironment = new SharpEngine(); List <ICollisionShape> objects = getSimulationObjects(); foreach (var obj in objects) { physicsEnvironment.AddShape(obj); } //physicsEnvironment.RemoveShape(0); physicsEnvironment.SetSolverType(SolverType.RedBlackProjectedGaussSeidel); physicsEnvironment.SolverParameters.SetSolverMaxIteration(50); return(physicsEnvironment); }
public SharpEngine GetPhysicsEnvironment() { var physicsEnvironment = new SharpEngine(); List <ICollisionShape> objects = GetSimulationObjects(); foreach (var obj in objects) { physicsEnvironment.AddShape(obj); } physicsEnvironment.SetSolverType(SolverType.ProjectedSymmetricGS); physicsEnvironment.EngineParameters.SetFrictionDirection(2); physicsEnvironment.SolverParameters.SetSolverMaxIteration(100); physicsEnvironment.SolverParameters.SetSOR(1.0); physicsEnvironment.SolverParameters.SetErrorTolerance(1E-8); return(physicsEnvironment); }
public SharpEngine GetPhysicsEnvironmentJoints() { var physicsEnvironment = new SharpEngine(); ICollisionShape[] objects = getSphereObject(); foreach (var obj in objects) { physicsEnvironment.AddShape(obj); } ICollisionJoint[] constraints = getConstraint(objects); foreach (var item in constraints) { physicsEnvironment.AddJoint(item); } //physicsEnvironment.RemoveShape(0); physicsEnvironment.SetSolverType(SolverType.NonLinearConjugateGradient); return(physicsEnvironment); }
public SharpEngine GetPhysicsEnvironment() { var physicsEnvironment = new SharpEngine(); List <ICollisionShape> objects = GetSimulationObjects(); foreach (var obj in objects) { physicsEnvironment.AddShape(obj); } //physicsEnvironment.RemoveShape(0); physicsEnvironment.CollisionEngineParam.SetBroadPhaseEngine(BroadPhaseEngineType.HierarchicalTree); physicsEnvironment.EngineParameters.SetFrictionDirection(2); physicsEnvironment.SolverParameters.SetSolverMaxIteration(20); physicsEnvironment.SolverParameters.SetSOR(1.3); physicsEnvironment.SolverParameters.SetErrorTolerance(1E-10); physicsEnvironment.SetSolverType(SolverType.ProjectedGaussSeidel); return(physicsEnvironment); }