diff options
| author | Sheikh Dawood Abdul Ajees <[email protected]> | 2017-05-12 17:45:18 -0500 |
|---|---|---|
| committer | Sheikh Dawood Abdul Ajees <[email protected]> | 2017-05-12 17:45:18 -0500 |
| commit | 7f12de60542edc8f1c6683e6b4cdce8570e51456 (patch) | |
| tree | 0b5d533bae189ea286257b5ab78b635fafb19aa0 /PhysX_3.4/Source/GeomUtils/src/gjk/GuVecBox.h | |
| parent | PhysX 3.4, APEX 1.4 patch release @22017166 (diff) | |
| download | physx-3.4-7f12de60542edc8f1c6683e6b4cdce8570e51456.tar.xz physx-3.4-7f12de60542edc8f1c6683e6b4cdce8570e51456.zip | |
PhysX 3.4, APEX 1.4 patch release @22121272
Diffstat (limited to 'PhysX_3.4/Source/GeomUtils/src/gjk/GuVecBox.h')
| -rw-r--r-- | PhysX_3.4/Source/GeomUtils/src/gjk/GuVecBox.h | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/PhysX_3.4/Source/GeomUtils/src/gjk/GuVecBox.h b/PhysX_3.4/Source/GeomUtils/src/gjk/GuVecBox.h index 5edb3705..6787a93e 100644 --- a/PhysX_3.4/Source/GeomUtils/src/gjk/GuVecBox.h +++ b/PhysX_3.4/Source/GeomUtils/src/gjk/GuVecBox.h @@ -58,20 +58,16 @@ namespace Gu class CapsuleV; - PX_FORCE_INLINE void CalculateBoxMargin(const Ps::aos::Vec3VArg extent, PxReal& margin, PxReal& minMargin, PxReal& sweepMargin, - const PxReal marginR = BOX_MARGIN_RATIO, const PxReal minMarginR = BOX_MIN_MARGIN_RATIO) + PX_FORCE_INLINE void CalculateBoxMargin(const Ps::aos::Vec3VArg extent, PxReal& minExtent, PxReal& minMargin, PxReal& sweepMargin, + const PxReal minMarginR = BOX_MIN_MARGIN_RATIO) { using namespace Ps::aos; const FloatV min = V3ExtractMin(extent); + FStore(min, &minExtent); - const FloatV margin_ = FMul(min, FLoad(marginR)); - const FloatV minMargin_ = FMul(min, FLoad(minMarginR)); - const FloatV sweepMargin_ = FMul(min, FLoad(BOX_SWEEP_MARGIN_RATIO)); - - FStore(margin_, &margin); - FStore(minMargin_, &minMargin); - FStore(sweepMargin_, &sweepMargin); + minMargin = minExtent * minMarginR; + sweepMargin = minExtent * BOX_SWEEP_MARGIN_RATIO; } PX_FORCE_INLINE Ps::aos::FloatV CalculateBoxTolerance(const Ps::aos::Vec3VArg extent) @@ -106,8 +102,9 @@ namespace Gu PX_FORCE_INLINE BoxV(const Ps::aos::Vec3VArg origin, const Ps::aos::Vec3VArg extent) : ConvexV(ConvexType::eBOX, origin), extents(extent) { - CalculateBoxMargin(extent, margin, minMargin, sweepMargin); + CalculateBoxMargin(extent, minExtent, minMargin, sweepMargin); marginDif = Ps::aos::FZero(); + margin = 0.f; } PX_FORCE_INLINE BoxV(const PxGeometry& geom) : ConvexV(ConvexType::eBOX, Ps::aos::V3Zero()) @@ -116,8 +113,9 @@ namespace Gu const PxBoxGeometry& boxGeom = static_cast<const PxBoxGeometry&>(geom); const Vec3V extent = Ps::aos::V3LoadU(boxGeom.halfExtents); extents = extent; - CalculateBoxMargin(extent, margin, minMargin, sweepMargin, BOX_MARGIN_CCD_RATIO, BOX_MIN_MARGIN_CCD_RATIO); + CalculateBoxMargin(extent, minExtent, minMargin, sweepMargin, BOX_MIN_MARGIN_CCD_RATIO); marginDif = Ps::aos::FZero(); + margin = 0.f; } /** @@ -208,6 +206,7 @@ namespace Gu Ps::aos::Vec3V extents; Ps::aos::FloatV marginDif; + PxReal minExtent; }; } //PX_COMPILE_TIME_ASSERT(sizeof(Gu::BoxV) == 96); |