コード例 #1
0
		public void SetCollisionCallback(CMaterial pId0, CMaterial pId1, CMaterialPhysicsSpecialEffect pSpecialEffect, EventHandler<CContactBeginEventArgs> pContactBegin, EventHandler<CContactProcessEventArgs> pContactProcess, EventHandler<CContactEndEventArgs> pContactEnd)
		{
            IntPtr aKey = IntPtr.Zero;
            if (pSpecialEffect != null)
            {
                aKey = (IntPtr)pSpecialEffect.GetHashCode();
                CHashTables.MaterialsUserData.Add(aKey, pSpecialEffect);
            }

            // Takes in a delegate, stores it, but then hooks 
			m_ContactBegin = pContactBegin;
			m_NewtonContactBegin = new Newton.NewtonContactBegin(InvokeContactBegin);

			m_ContactProcess = pContactProcess;
			m_NewtonContactProcess = new Newton.NewtonContactProcess(InvokeContactProcess);

			m_ContactEnd = pContactEnd;
			m_NewtonContactEnd = new Newton.NewtonContactEnd(InvokeContactEnd);

			Newton.NewtonMaterialSetCollisionCallback(m_World.Handle, pId0.ID, pId1.ID, aKey, m_NewtonContactBegin, m_NewtonContactProcess, m_NewtonContactEnd);
		}
コード例 #2
0
        public void SetCollisionCallback(CMaterial pId0, CMaterial pId1, CMaterialPhysicsSpecialEffect pSpecialEffect, EventHandler <CContactBeginEventArgs> pContactBegin, EventHandler <CContactProcessEventArgs> pContactProcess, EventHandler <CContactEndEventArgs> pContactEnd)
        {
            IntPtr aKey = IntPtr.Zero;

            if (pSpecialEffect != null)
            {
                aKey = (IntPtr)pSpecialEffect.GetHashCode();
                CHashTables.MaterialsUserData.Add(aKey, pSpecialEffect);
            }

            // Takes in a delegate, stores it, but then hooks
            m_ContactBegin       = pContactBegin;
            m_NewtonContactBegin = new Newton.NewtonContactBegin(InvokeContactBegin);

            m_ContactProcess       = pContactProcess;
            m_NewtonContactProcess = new Newton.NewtonContactProcess(InvokeContactProcess);

            m_ContactEnd       = pContactEnd;
            m_NewtonContactEnd = new Newton.NewtonContactEnd(InvokeContactEnd);

            Newton.NewtonMaterialSetCollisionCallback(m_World.Handle, pId0.ID, pId1.ID, aKey, m_NewtonContactBegin, m_NewtonContactProcess, m_NewtonContactEnd);
        }
コード例 #3
0
 public CollisionEndEventArgs(IntPtr materialPtr, IntPtr contactPoint, CMaterial material1, CMaterial material2)
 {
     _materialPtr = materialPtr;
     _contactPoint = contactPoint;
     _material1 = material1;
     _material2 = material2;
 }
コード例 #4
0
		public CMaterialPhysicsSpecialEffect GetSpecialEffect(CMaterial pId0, CMaterial pId1)
		{
			IntPtr aKey = Newton.NewtonMaterialGetUserData(m_World.Handle, pId0.ID, pId1.ID);

			return (CMaterialPhysicsSpecialEffect)CHashTables.MaterialsUserData[aKey];
		}
コード例 #5
0
		public void SetDefaultFriction(CMaterial pId0, CMaterial pId1, float pStaticFriction, float pKineticFriction)
		{
			Newton.NewtonMaterialSetDefaultFriction(m_World.Handle, pId0.ID, pId1.ID, pStaticFriction, pKineticFriction);
		}
コード例 #6
0
		public void SetContinuousCollisionMode(CMaterial pId0, CMaterial pId1, int pState)
		{
			Newton.NewtonMaterialSetContinuousCollisionMode(m_World.Handle, pId0.ID, pId1.ID, pState);
		}
コード例 #7
0
		public void SetDefaultCollidable(CMaterial pId0, CMaterial pId1, int pState)
		{
			Newton.NewtonMaterialSetDefaultCollidable(m_World.Handle, pId0.ID, pId1.ID, pState);
		}
コード例 #8
0
		public void SetDefaultElasticity(CMaterial pId0, CMaterial pId1, float pElasticCoef)
		{
			Newton.NewtonMaterialSetDefaultElasticity(m_World.Handle, pId0.ID, pId1.ID, pElasticCoef);
		}
コード例 #9
0
		public void SetDefaultSoftness(CMaterial pId0, CMaterial pId1, float pSoftness)
		{
			Newton.NewtonMaterialSetDefaultSoftness(m_World.Handle, pId0.ID, pId1.ID, pSoftness);
		}
コード例 #10
0
        public CMaterialPhysicsSpecialEffect GetSpecialEffect(CMaterial pId0, CMaterial pId1)
        {
            IntPtr aKey = Newton.NewtonMaterialGetUserData(m_World.Handle, pId0.ID, pId1.ID);

            return((CMaterialPhysicsSpecialEffect)CHashTables.MaterialsUserData[aKey]);
        }
コード例 #11
0
 public void SetDefaultFriction(CMaterial pId0, CMaterial pId1, float pStaticFriction, float pKineticFriction)
 {
     Newton.NewtonMaterialSetDefaultFriction(m_World.Handle, pId0.ID, pId1.ID, pStaticFriction, pKineticFriction);
 }
コード例 #12
0
 public void SetContinuousCollisionMode(CMaterial pId0, CMaterial pId1, int pState)
 {
     Newton.NewtonMaterialSetContinuousCollisionMode(m_World.Handle, pId0.ID, pId1.ID, pState);
 }
コード例 #13
0
 public void SetDefaultCollidable(CMaterial pId0, CMaterial pId1, int pState)
 {
     Newton.NewtonMaterialSetDefaultCollidable(m_World.Handle, pId0.ID, pId1.ID, pState);
 }
コード例 #14
0
 public void SetDefaultElasticity(CMaterial pId0, CMaterial pId1, float pElasticCoef)
 {
     Newton.NewtonMaterialSetDefaultElasticity(m_World.Handle, pId0.ID, pId1.ID, pElasticCoef);
 }
コード例 #15
0
 public void SetDefaultSoftness(CMaterial pId0, CMaterial pId1, float pSoftness)
 {
     Newton.NewtonMaterialSetDefaultSoftness(m_World.Handle, pId0.ID, pId1.ID, pSoftness);
 }