/// <summary> /// this btSimpleDynamicsWorld constructor creates dispatcher, broadphase pairCache and constraintSolver /// </summary> /// <param name="dispatcher"></param> /// <param name="pairCache"></param> /// <param name="constraintSolver"></param> public SimpleDynamicsWorld(IDispatcher dispatcher, OverlappingPairCache pairCache, IConstraintSolver constraintSolver) : base(dispatcher, pairCache) { _constraintSolver = constraintSolver; _ownsConstraintSolver = false; _gravity = new Vector3(0, 0, -10); }
///this btDiscreteDynamicsWorld constructor gets created objects from the user, and will not delete those public DiscreteDynamicsWorld(IDispatcher dispatcher, IBroadphaseInterface pairCache, IConstraintSolver constraintSolver, ICollisionConfiguration collisionConfiguration) : base(dispatcher, pairCache, collisionConfiguration) { m_ownsIslandManager = true; m_constraints = new ObjectArray<TypedConstraint>(); m_actions = new List<IActionInterface>(); m_nonStaticRigidBodies = new ObjectArray<RigidBody>(); m_islandManager = new SimulationIslandManager(); m_constraintSolver = constraintSolver; Gravity = new Vector3(0, -10, 0); m_localTime = 1f / 60f; m_profileTimings = 0; m_synchronizeAllMotionStates = false; if (m_constraintSolver == null) { m_constraintSolver = new SequentialImpulseConstraintSolver(); m_ownsConstraintSolver = true; } else { m_ownsConstraintSolver = false; } }
///this btDiscreteDynamicsWorld constructor gets created objects from the user, and will not delete those public DiscreteDynamicsWorld(IDispatcher dispatcher, IBroadphaseInterface pairCache, IConstraintSolver constraintSolver, ICollisionConfiguration collisionConfiguration) : base(dispatcher, pairCache, collisionConfiguration) { m_ownsIslandManager = true; m_constraints = new ObjectArray <TypedConstraint>(); m_sortedConstraints = new ObjectArray <TypedConstraint>(); m_islandSortPredicate = new SortConstraintOnIslandPredicate(); m_islandQuickSortPredicate = new QuickSortConstraintOnIslandPredicate(); m_actions = new List <IActionInterface>(); m_nonStaticRigidBodies = new ObjectArray <RigidBody>(); m_islandManager = new SimulationIslandManager(); m_constraintSolver = constraintSolver; IndexedVector3 gravity = new IndexedVector3(0, -10, 0); SetGravity(ref gravity); m_localTime = 0f; m_profileTimings = 0; m_synchronizeAllMotionStates = false; if (m_constraintSolver == null) { m_constraintSolver = new SequentialImpulseConstraintSolver(); m_ownsConstraintSolver = true; } else { m_ownsConstraintSolver = false; } }
///this btSimpleDynamicsWorld constructor creates dispatcher, broadphase pairCache and constraintSolver public SimpleDynamicsWorld(IDispatcher dispatcher, IBroadphaseInterface pairCache, IConstraintSolver constraintSolver, ICollisionConfiguration collisionConfiguration) : base(dispatcher, pairCache, collisionConfiguration) { m_constraintSolver = constraintSolver; m_ownsConstraintSolver = false; IndexedVector3 gravity = new IndexedVector3(0, 0, -10f); SetGravity(ref gravity); }
public override void SetConstraintSolver(IConstraintSolver solver) { //if (m_ownsConstraintSolver) //{ // btAlignedFree( m_constraintSolver); //} m_ownsConstraintSolver = false; m_constraintSolver = solver; }
public InplaceSolverIslandCallback( ContactSolverInfo solverInfo, IConstraintSolver solver, List <TypedConstraint> sortedConstraints, IDebugDraw debugDrawer) { _solverInfo = solverInfo; _solver = solver; _sortedConstraints = sortedConstraints; _debugDrawer = debugDrawer; }
//this btDiscreteDynamicsWorld constructor gets created objects from the user, and will not delete those public DiscreteDynamicsWorld(IDispatcher dispatcher, OverlappingPairCache pairCache, IConstraintSolver constraintSolver) : base(dispatcher, pairCache) { _constraintSolver = constraintSolver != null ? constraintSolver : new SequentialImpulseConstraintSolver(); _debugDrawer = null; _gravity = new Vector3(0, -10, 0); _localTime = 1f / 60f; _profileTimings = 0; _islandManager = new SimulationIslandManager(); _ownsIslandManager = true; _ownsConstraintSolver = constraintSolver == null; }
private void InitializeExample() { history.Clear(); historyIndex = 0; system = examples[exampleIndex].Initialize(Display.RenderTarget.Size); solver = solvers[solverIndex](system); kinematics = new KinematicsIntegrator(system, solver); kinematics.MinimumTimeStep = TimeStep; kinematics.MaximumTimeStep = TimeStep; StoreHistory(); }
public InplaceSolverIslandCallback( ContactSolverInfo solverInfo, IConstraintSolver solver, ObjectArray<TypedConstraint> sortedConstraints, int numConstraints, IDebugDraw debugDrawer, IDispatcher dispatcher) { m_solverInfo = solverInfo; m_solver = solver; m_sortedConstraints = sortedConstraints; m_numConstraints = numConstraints; m_debugDrawer = debugDrawer; m_dispatcher = dispatcher; m_bodies = new ObjectArray<CollisionObject>(); m_manifolds = new ObjectArray<PersistentManifold>(); m_constraints = new ObjectArray<TypedConstraint>(); }
public InplaceSolverIslandCallback( ContactSolverInfo solverInfo, IConstraintSolver solver, ObjectArray <TypedConstraint> sortedConstraints, int numConstraints, IDebugDraw debugDrawer, IDispatcher dispatcher) { m_solverInfo = solverInfo; m_solver = solver; m_sortedConstraints = sortedConstraints; m_numConstraints = numConstraints; m_debugDrawer = debugDrawer; m_dispatcher = dispatcher; m_bodies = new ObjectArray <CollisionObject>(); m_manifolds = new PersistentManifoldArray(); m_constraints = new ObjectArray <TypedConstraint>(); }
/// <summary> /// 物理ワールドの初期化 /// </summary> public void init(CollisionDispatcher d, IBroadphaseInterface b, IConstraintSolver s, ICollisionConfiguration c) { // Construct physics objects CoreDescription coreDesc = new CoreDescription(); UserOutput output = new UserOutput(); this.Core = new Core(coreDesc, output); Core core = this.Core; // デバッグ描画用の設定 core.SetParameter(PhysicsParameter.VisualizationScale, 2.0f); core.SetParameter(PhysicsParameter.VisualizeForceFields, true); core.SetParameter(PhysicsParameter.VisualizeCollisionShapes, true); core.SetParameter(PhysicsParameter.VisualizeJointLimits, true); /* * core.SetParameter(PhysicsParameter.VisualizeJointLocalAxes, true); * //core.SetParameter(PhysicsParameter.VisualizeJointWorldAxes, true); * core.SetParameter(PhysicsParameter.VisualizeClothMesh, true); * core.SetParameter(PhysicsParameter.VisualizeFluidPosition, true); * core.SetParameter(PhysicsParameter.VisualizeFluidEmitters, false); // Slows down rendering a bit too much * core.SetParameter(PhysicsParameter.VisualizeSoftBodyMesh, true); */ // シーンの設定 SceneDescription sceneDesc = new SceneDescription() { //SimulationType = SimulationType.Hardware, Gravity = new Vector3(0, -9.81f, 0), GroundPlaneEnabled = true }; this.scene = core.CreateScene(sceneDesc); HardwareVersion ver = Core.HardwareVersion; SimulationType simType = this.scene.SimulationType; // Connect to the remote debugger if it's there //core.Foundation.RemoteDebugger.Connect("localhost"); }
public override void SetConstraintSolver(IConstraintSolver solver) { m_ownsConstraintSolver = false; m_constraintSolver = solver; }
public ContinuousDynamicsWorld(IDispatcher dispatcher, IBroadphaseInterface pairCache, IConstraintSolver constraintSolver, ICollisionConfiguration collisionConfiguration) : base(dispatcher, pairCache, constraintSolver, collisionConfiguration) { }
public BulletXNAPhysicsComponent(Game game, ICollisionConfiguration collisionConf, IConstraintSolver solver, Vector3 gravity) : base(game) { CollisionDispatcher Dispatcher = new CollisionDispatcher(collisionConf); IndexedVector3 worldMin = new IndexedVector3(-1000, -1000, -1000); IndexedVector3 worldMax = -worldMin; IBroadphaseInterface broadphase = new AxisSweep3Internal(ref worldMin, ref worldMax, 0xfffe, 0xffff, 16384, null, false); //broadphase = new DbvtBroadphase(); World = new DiscreteDynamicsWorld(Dispatcher, broadphase, solver, collisionConf); IndexedVector3 iv3Gravity = new IndexedVector3(gravity.X, gravity.Y, gravity.Z); World.SetGravity(ref iv3Gravity); }
public abstract void SetConstraintSolver(IConstraintSolver solver);
public KinematicsIntegrator(KinematicsSystem system, IConstraintSolver constraint) { System = system; this.constraint = constraint; }
public InplaceSolverIslandCallback( ContactSolverInfo solverInfo, IConstraintSolver solver, List<TypedConstraint> sortedConstraints, IDebugDraw debugDrawer) { _solverInfo = solverInfo; _solver = solver; _sortedConstraints = sortedConstraints; _debugDrawer = debugDrawer; }