Beispiel #1
0
        private static unsafe PhyFilterFlag _PxSimulationFilterShader(//IntPtr self,
            UInt32 attributes0, PhyFilterData *filterData0,
            UInt32 attributes1, PhyFilterData *filterData1,
            PhyPairFlag *pairFlags, IntPtr constantBlock, UInt32 constantBlockSize)
        {
            if (PxFilterObjectIsTrigger(attributes0) || PxFilterObjectIsTrigger(attributes1))
            {
                *pairFlags = PhyPairFlag.eTRIGGER_DEFAULT;
                return(PhyFilterFlag.eDEFAULT);
            }
            PhyPairFlag retFlags;

            retFlags = PhyPairFlag.eCONTACT_DEFAULT | PhyPairFlag.eNOTIFY_TOUCH_FOUND;
            *pairFlags = retFlags;
            if ((filterData0->word0 & filterData1->word1) == filterData0->word0 && (filterData1->word0 & filterData0->word1) == filterData1->word0)
            {
                return(PhyFilterFlag.eDEFAULT);
            }
            else
            {
                return(PhyFilterFlag.eKILL);
            }
            //return PhyFilterFlag.eDEFAULT;
        }
Beispiel #2
0
 private extern static unsafe void SDK_PhyShape_SetQueryFilterData(NativePointer self, PhyFilterData *filterData);
Beispiel #3
0
 private extern static unsafe void SDK_PhyControllerDesc_SetQueryFilterData(NativePointer self, PhyFilterData *filterData);
Beispiel #4
0
 private extern static unsafe PhyControllerCollisionFlag SDK_PhyController_Move(NativePointer self, Vector3 *disp, float minDist, float elapsedTime, PhyFilterData *filterData, PhyQueryFlag filterFlags);