コード例 #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);
        }