| 181 | }; |
| 182 | |
| 183 | static bool CCDRaycast(PxScene* scene, PxRigidActor* actor, PxShape* shape, const PxVec3& origin, const PxVec3& unitDir, const PxReal distance, PxRaycastHit& hit, bool dyna_dyna) |
| 184 | { |
| 185 | const PxQueryFlags qf(dyna_dyna ? PxQueryFlags(PxQueryFlag::eSTATIC|PxQueryFlag::eDYNAMIC|PxQueryFlag::ePREFILTER) : PxQueryFlags(PxQueryFlag::eSTATIC)); |
| 186 | const PxQueryFilterData filterData(PxFilterData(), qf); |
| 187 | |
| 188 | CCDRaycastFilterCallback CB(actor, shape); |
| 189 | |
| 190 | PxRaycastBuffer buf1; |
| 191 | scene->raycast(origin, unitDir, distance, buf1, PxHitFlags(0), filterData, &CB); |
| 192 | hit = buf1.block; |
| 193 | return buf1.hasBlock; |
| 194 | } |
| 195 | |
| 196 | static PxRigidDynamic* canDoCCD(PxRigidActor& actor, PxShape* /*shape*/) |
| 197 | { |
no test coverage detected