/// <summary> /// OnCollision is called once per frame for every rigidbody. /// Send from here Massage to the Rigidbody.OnCollision(RigidBodyImp other) by an Events /// </summary> /// <param name="other">The other rigidbody that is collided.</param> public virtual void OnCollision(IRigidBodyImp other) { //Debug.WriteLine("RigidBodyImp.OnCollision"); //TODO: Event to the RigidBody.cs class //var otherRb = (RigidBodyImp)other; //otherRb.ApplyTorqueImpulse = new float3(10,10,10); }
//Point2point public IPoint2PointConstraintImp AddPoint2PointConstraint(IRigidBodyImp rigidBodyA, float3 pivotInA) { var rigidBodyAImp = (RigidBodyImp)rigidBodyA; var btRigidBodyA = rigidBodyAImp._rbi; var btP2PConstraint = new Point2PointConstraint(btRigidBodyA, new Vector3(pivotInA.x, pivotInA.y, pivotInA.z)); BtWorld.AddConstraint(btP2PConstraint); var retval = new Point2PointConstraintImp(); retval._p2pci = btP2PConstraint; btP2PConstraint.UserObject = retval; return(retval); }
//GenericoDofConstraint public IGeneric6DofConstraintImp AddGeneric6DofConstraint(IRigidBodyImp rigidBodyA, float4x4 frameInA, bool useReferenceFrameA) { var rigidBodyAImp = (RigidBodyImp)rigidBodyA; var btRigidBodyA = rigidBodyAImp._rbi; var btFframeInA = Translater.Float4X4ToBtMatrix(frameInA); var btGeneric6DofConstraint = new Generic6DofConstraint(btRigidBodyA, btFframeInA, useReferenceFrameA); BtWorld.AddConstraint(btGeneric6DofConstraint); var retval = new Generic6DofConstraintImp(); retval._g6dofci = btGeneric6DofConstraint; btGeneric6DofConstraint.UserObject = retval; return(retval); }
public ISliderConstraintImp AddSliderConstraint(IRigidBodyImp rigidBodyA, float4x4 frameInA, bool useLinearReferenceFrameA) { var rigidBodyAImp = (RigidBodyImp)rigidBodyA; var btRigidBodyA = rigidBodyAImp._rbi; var btFrameInA = Translater.Float4X4ToBtMatrix(frameInA); var btSliderConstraint = new SliderConstraint(btRigidBodyA, btFrameInA, useLinearReferenceFrameA); BtWorld.AddConstraint(btSliderConstraint); var retval = new SliderConstraintImp(); retval._sci = btSliderConstraint; btSliderConstraint.UserObject = retval; return(retval); }
public IHingeConstraintImp AddHingeConstraint(IRigidBodyImp rigidBodyA, float3 pivotInA, float3 axisInA, bool useReferenceFrameA) { var rigidBodyAImp = (RigidBodyImp)rigidBodyA; var btRigidBodyA = rigidBodyAImp._rbi; var btHingeConstraint = new HingeConstraint(btRigidBodyA, new Vector3(pivotInA.x, pivotInA.y, pivotInA.z), new Vector3(axisInA.x, axisInA.y, axisInA.z), useReferenceFrameA); BtWorld.AddConstraint(btHingeConstraint); var retval = new HingeConstraintImp(); retval._hci = btHingeConstraint; btHingeConstraint.UserObject = retval; return(retval); }
//ConeTwistConstraint public IConeTwistConstraintImp AddConeTwistConstraint(IRigidBodyImp rigidBodyA, float4x4 rbAFrame) { var rigidBodyAImp = (RigidBodyImp)rigidBodyA; var btRigidBodyA = rigidBodyAImp._rbi; var btRbAFrame = Translater.Float4X4ToBtMatrix(rbAFrame); var btCTConstraint = new ConeTwistConstraint(btRigidBodyA, btRbAFrame); BtWorld.AddConstraint(btCTConstraint); var retval = new ConeTwistConstraintImp(); retval._cti = btCTConstraint; btCTConstraint.UserObject = retval; return(retval); }
//GearConstraint public IGearConstraintImp AddGearConstraint(IRigidBodyImp rigidBodyA, IRigidBodyImp rigidBodyB, float3 axisInA, float3 axisInB, float ratio) { var rigidBodyAImp = (RigidBodyImp)rigidBodyA; var btRigidBodyA = rigidBodyAImp._rbi; var rigidBodyBImp = (RigidBodyImp)rigidBodyB; var btRigidBodyB = rigidBodyBImp._rbi; var btAxisInA = Translater.Float3ToBtVector3(axisInA); var btAxisInB = Translater.Float3ToBtVector3(axisInB); var btGearConstraint = new GearConstraint(btRigidBodyA, btRigidBodyB, btAxisInA, btAxisInB, ratio); BtWorld.AddConstraint(btGearConstraint); var retval = new GearConstraintImp(); retval._gci = btGearConstraint; btGearConstraint.UserObject = retval; return(retval); }
public IHingeConstraintImp AddHingeConstraint(IRigidBodyImp rigidBodyA, IRigidBodyImp rigidBodyB, float4x4 brAFrame, float4x4 brBFrame, bool useReferenceFrameA) { var rigidBodyAImp = (RigidBodyImp)rigidBodyA; var btRigidBodyA = rigidBodyAImp._rbi; var rigidBodyBImp = (RigidBodyImp)rigidBodyB; var btRigidBodyB = rigidBodyBImp._rbi; var btRbAFrame = Translater.Float4X4ToBtMatrix(brAFrame); var btRbBFrame = Translater.Float4X4ToBtMatrix(brBFrame); var btHingeConstraint = new HingeConstraint(btRigidBodyA, btRigidBodyB, btRbAFrame, btRbBFrame, useReferenceFrameA); BtWorld.AddConstraint(btHingeConstraint); var retval = new HingeConstraintImp(); retval._hci = btHingeConstraint; btHingeConstraint.UserObject = retval; return(retval); }
public ISliderConstraintImp AddSliderConstraint(IRigidBodyImp rigidBodyA, float4x4 frameInA, bool useLinearReferenceFrameA) { var rigidBodyAImp = (RigidBodyImp)rigidBodyA; var btRigidBodyA = rigidBodyAImp._rbi; var btFrameInA = Translater.Float4X4ToBtMatrix(frameInA); var btSliderConstraint = new SliderConstraint(btRigidBodyA, btFrameInA, useLinearReferenceFrameA); BtWorld.AddConstraint(btSliderConstraint); var retval = new SliderConstraintImp(); retval._sci = btSliderConstraint; btSliderConstraint.UserObject = retval; return retval; }
public IPoint2PointConstraintImp AddPoint2PointConstraint(IRigidBodyImp rigidBodyA, IRigidBodyImp rigidBodyB, float3 pivotInA,float3 pivotInB) { var rigidBodyAImp = (RigidBodyImp) rigidBodyA; var btRigidBodyA = rigidBodyAImp._rbi; var rigidBodyBImp = (RigidBodyImp) rigidBodyB; var btRigidBodyB = rigidBodyBImp._rbi; var btP2PConstraint = new Point2PointConstraint(btRigidBodyA, btRigidBodyB, new Vector3(pivotInA.x, pivotInA.y, pivotInA.z), new Vector3(pivotInB.x, pivotInB.y, pivotInB.z)); BtWorld.AddConstraint(btP2PConstraint); var retval = new Point2PointConstraintImp(); retval._p2pci = btP2PConstraint; btP2PConstraint.UserObject = retval; return retval; }
public IHingeConstraintImp AddHingeConstraint(IRigidBodyImp rigidBodyA, IRigidBodyImp rigidBodyB, float4x4 brAFrame, float4x4 brBFrame, bool useReferenceFrameA) { var rigidBodyAImp = (RigidBodyImp)rigidBodyA; var btRigidBodyA = rigidBodyAImp._rbi; var rigidBodyBImp = (RigidBodyImp)rigidBodyB; var btRigidBodyB = rigidBodyBImp._rbi; var btRbAFrame = Translater.Float4X4ToBtMatrix(brAFrame); var btRbBFrame = Translater.Float4X4ToBtMatrix(brBFrame); var btHingeConstraint = new HingeConstraint(btRigidBodyA, btRigidBodyB,btRbAFrame, btRbBFrame, useReferenceFrameA); BtWorld.AddConstraint(btHingeConstraint); var retval = new HingeConstraintImp(); retval._hci = btHingeConstraint; btHingeConstraint.UserObject = retval; return retval; }
public IHingeConstraintImp AddHingeConstraint(IRigidBodyImp rigidBodyA, IRigidBodyImp rigidBodyB, float3 pivotInA, float3 pivotInB, float3 axisInA, float3 AxisInB, bool useReferenceFrameA) { var rigidBodyAImp = (RigidBodyImp)rigidBodyA; var btRigidBodyA = rigidBodyAImp._rbi; var rigidBodyBImp = (RigidBodyImp)rigidBodyB; var btRigidBodyB = rigidBodyBImp._rbi; var btHingeConstraint = new HingeConstraint(btRigidBodyA, btRigidBodyB, new Vector3(pivotInA.x, pivotInA.y, pivotInA.z), new Vector3(pivotInB.x, pivotInB.y, pivotInB.z), new Vector3(axisInA.x, axisInA.y, axisInA.z), new Vector3(AxisInB.x, AxisInB.y, AxisInB.z), useReferenceFrameA); BtWorld.AddConstraint(btHingeConstraint); var retval = new HingeConstraintImp(); retval._hci = btHingeConstraint; btHingeConstraint.UserObject = retval; return retval; }
public IGeneric6DofConstraintImp AddGeneric6DofConstraint(IRigidBodyImp rigidBodyA, IRigidBodyImp rigidBodyB, float4x4 frameInA, float4x4 frameInB, bool useReferenceFrameA = false) { var rigidBodyAImp = (RigidBodyImp)rigidBodyA; var btRigidBodyA = rigidBodyAImp._rbi; var rigidBodyBImp = (RigidBodyImp)rigidBodyB; var btRigidBodyB = rigidBodyAImp._rbi; Matrix matrixA = Translater.Float4X4ToBtMatrix(frameInA); Matrix matrixB = Translater.Float4X4ToBtMatrix(frameInB); var btGeneric6DofConstraint = new Generic6DofConstraint(btRigidBodyA, btRigidBodyB, matrixA, matrixB, useReferenceFrameA); BtWorld.AddConstraint(btGeneric6DofConstraint); var retval = new Generic6DofConstraintImp(); retval._g6dofci = btGeneric6DofConstraint; btGeneric6DofConstraint.UserObject = retval; return retval; }
//GearConstraint public IGearConstraintImp AddGearConstraint(IRigidBodyImp rigidBodyA, IRigidBodyImp rigidBodyB, float3 axisInA, float3 axisInB, float ratio) { var rigidBodyAImp = (RigidBodyImp)rigidBodyA; var btRigidBodyA = rigidBodyAImp._rbi; var rigidBodyBImp = (RigidBodyImp)rigidBodyB; var btRigidBodyB = rigidBodyBImp._rbi; var btAxisInA = Translater.Float3ToBtVector3(axisInA); var btAxisInB = Translater.Float3ToBtVector3(axisInB); var btGearConstraint = new GearConstraint(btRigidBodyA, btRigidBodyB, btAxisInA, btAxisInB, ratio); BtWorld.AddConstraint(btGearConstraint); var retval = new GearConstraintImp(); retval._gci = btGearConstraint; btGearConstraint.UserObject = retval; return retval; }
public void RemoveRigidBody(IRigidBodyImp iRigidBodyImp) { var rigidBodyImp = (RigidBodyImp)iRigidBodyImp; var btRigidBody = rigidBodyImp._rbi; CollisionObject obj = (CollisionObject)btRigidBody; RigidBody body = btRigidBody; if (body != null && body.MotionState != null) { body.MotionState.Dispose(); } BtWorld.RemoveCollisionObject(obj); obj.Dispose(); }
public IConeTwistConstraintImp AddConeTwistConstraint(IRigidBodyImp rigidBodyA, IRigidBodyImp rigidBodyB, float4x4 rbAFrame,float4x4 rbBFrame) { var rigidBodyAImp = (RigidBodyImp)rigidBodyA; var btRigidBodyA = rigidBodyAImp._rbi; var rigidBodyBImp = (RigidBodyImp)rigidBodyB; var btRigidBodyB = rigidBodyBImp._rbi; var btRbAFrame = Translater.Float4X4ToBtMatrix(rbAFrame); var btRbBFrame = Translater.Float4X4ToBtMatrix(rbBFrame); var btCTConstraint = new ConeTwistConstraint(btRigidBodyA, btRigidBodyB, btRbAFrame, btRbBFrame); BtWorld.AddConstraint(btCTConstraint); var retval = new ConeTwistConstraintImp(); retval._cti = btCTConstraint; btCTConstraint.UserObject = retval; return retval; }
/// <summary> /// OnCollision is called once per frame for every rigidbody theis rigidbody is colliding. /// Send ffrom here Massage to the Rigidbody.OnCollision(RigidBodyImp other) by an Events /// </summary> /// <param name="other">the other Rigidbody that is collided </param> public virtual void OnCollision(IRigidBodyImp other) { //Debug.WriteLine("RigidBodyImp.OnCollision"); //TODO: Event to the RigidBody.cs class //var otherRb = (RigidBodyImp)other; //otherRb.ApplyTorqueImpulse = new float3(10,10,10); }