aboutsummaryrefslogtreecommitdiff
path: root/PhysX_3.4/Source/GeomUtils/src/gjk/GuVecBox.h
diff options
context:
space:
mode:
authorSheikh Dawood Abdul Ajees <[email protected]>2017-05-12 17:45:18 -0500
committerSheikh Dawood Abdul Ajees <[email protected]>2017-05-12 17:45:18 -0500
commit7f12de60542edc8f1c6683e6b4cdce8570e51456 (patch)
tree0b5d533bae189ea286257b5ab78b635fafb19aa0 /PhysX_3.4/Source/GeomUtils/src/gjk/GuVecBox.h
parentPhysX 3.4, APEX 1.4 patch release @22017166 (diff)
downloadphysx-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.h21
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);