コード例 #1
0
 public void SetBrakeAcceleration(float pAccelaration, float pTorqueLimit)
 {
     Newton.NewtonVehicleTireSetBrakeAcceleration(m_Vehicle.Handle,
                                                  m_Handle,
                                                  pAccelaration,
                                                  pTorqueLimit);
 }
コード例 #2
0
        public CTire VehicleAddTire(Matrix3D pLocalMatrix,
                                    Vector3D pPin,
                                    float pMass,
                                    float pWidth,
                                    float pRadius,
                                    float pSuspesionShock,
                                    float pSuspesionSpring,
                                    float pSuspesionLength,
                                    object pUserData,
                                    int pCollisionID)
        {
            IntPtr aTireHandle = Newton.NewtonVehicleAddTire(m_Handle,
                                                             new NewtonMatrix(pLocalMatrix).NWMatrix,
                                                             new NewtonVector3(pPin).NWVector3,
                                                             pMass,
                                                             pWidth,
                                                             pRadius,
                                                             pSuspesionShock,
                                                             pSuspesionSpring,
                                                             pSuspesionLength,
                                                             (IntPtr)0, //pUserData.GetHashCode(),
                                                             pCollisionID);

            CTire aTire = new CTire(this, aTireHandle);

            aTire.UserData = pUserData;

            return(aTire);
        }
コード例 #3
0
        //public void NewtonUserJointAddGeneralRow(IntPtr pJoint,
        //    [MarshalAs(UnmanagedType.LPArray, SizeConst = 6)]float[] pJacobian0,
        //    [MarshalAs(UnmanagedType.LPArray, SizeConst = 6)]float[] pJacobian1);

        public void UserBilateralSetRowSpringDamperAcceleration(float pSpringK,
                                                                float pSpringD)
        {
            Newton.NewtonUserJointSetRowSpringDamperAcceleration(m_Handle,
                                                                 pSpringK,
                                                                 pSpringD);
        }
コード例 #4
0
        public void CreateUpVector(Vector3D pPinDir, CBody pBody)
        {
            m_Handle = Newton.NewtonConstraintCreateUpVector(m_World.Handle,
                                                             new NewtonVector3(pPinDir).NWVector3,
                                                             pBody.Handle);

            CHashTables.Joint.Add(m_Handle, this);
        }
コード例 #5
0
 public void UserBilateralAddAngularRow(
     float pRelativeAngle,
     Vector3D pDir)
 {
     Newton.NewtonUserJointAddAngularRow(m_Handle,
                                         pRelativeAngle,
                                         new NewtonVector3(pDir).NWVector3);
 }
コード例 #6
0
        public void CreateVehicle(Vector3D pUpDir, CBody pNewtonBody)
        {
            m_Handle = Newton.NewtonConstraintCreateVehicle(m_World.Handle,
                                                            new NewtonVector3(pUpDir).NWVector3,
                                                            pNewtonBody.Handle);

            CHashTables.Joint.Add(m_Handle, this);
        }
コード例 #7
0
 public void UserBilateralAddLinearRow(Vector3D pPivot0,
                                       Vector3D pPivot1,
                                       Vector3D pdir)
 {
     Newton.NewtonUserJointAddLinearRow(m_Handle,
                                        new NewtonVector3(pPivot0).NWVector3,
                                        new NewtonVector3(pPivot1).NWVector3,
                                        new NewtonVector3(pdir).NWVector3);
 }
コード例 #8
0
 public void Remove()
 {
     if (m_Handle != (IntPtr)0)
     {
         CHashTables.TireUserData.Remove(m_Handle);
         CHashTables.Tire.Remove(m_Handle);
         Newton.NewtonVehicleRemoveTire(m_Vehicle.Handle, m_Handle);
         m_Handle = (IntPtr)0;
     }
 }
コード例 #9
0
        private void GetContactPositionaAndNormal()
        {
            Vector3D position = new Vector3D();
            Vector3D normal   = new Vector3D();

            //_material1.GetContactPositionAndNormal(ref position, ref normal);

            Newton.NewtonMaterialGetContactPositionAndNormal(_materialPtr, new NewtonVector3(position).NWVector3, new NewtonVector3(normal).NWVector3);


            _contactPositionWorld = position.ToPoint();
            _contactNormalWorld   = normal;
        }
コード例 #10
0
        public void CreateUserBilateral(int pMaxDOF,
                                        EventHandler <CUserBilateralEventArgs> pCallback,
                                        CBody pChildBody,
                                        CBody pParentBody)
        {
            m_UserBilateral       = pCallback;
            m_NewtonUserBilateral = new Newton.NewtonUserBilateral(InvokeUserBilateral);

            m_Handle = Newton.NewtonConstraintCreateUserJoint(m_World.Handle,
                                                              pMaxDOF,
                                                              m_NewtonUserBilateral,
                                                              pChildBody.Handle,
                                                              pParentBody.Handle);

            CHashTables.Joint.Add(m_Handle, this);
        }
コード例 #11
0
 public float CalculateMaxBrakeAcceleration()
 {
     return(Newton.NewtonVehicleTireCalculateMaxBrakeAcceleration(m_Vehicle.Handle, m_Handle));
 }
コード例 #12
0
 public float UserBilateralGetRowForce(int pRow)
 {
     return(Newton.NewtonUserJointGetRowForce(m_Handle, pRow));
 }
コード例 #13
0
 public void VehicleReset()
 {
     Newton.NewtonVehicleReset(m_Handle);
 }