diff options
| author | sschirm <[email protected]> | 2016-12-23 14:20:36 +0100 |
|---|---|---|
| committer | sschirm <[email protected]> | 2016-12-23 14:56:17 +0100 |
| commit | ef6937e69e8ee3f409cf9d460d5ad300a65d5924 (patch) | |
| tree | 710426e8daa605551ce3f34b581897011101c30f /PhysX_3.4/Source/PhysXCooking/src/convex/ConvexHullBuilder.cpp | |
| parent | Initial commit: (diff) | |
| download | physx-3.4-ef6937e69e8ee3f409cf9d460d5ad300a65d5924.tar.xz physx-3.4-ef6937e69e8ee3f409cf9d460d5ad300a65d5924.zip | |
PhysX 3.4 / APEX 1.4 release candidate @21506124
Diffstat (limited to 'PhysX_3.4/Source/PhysXCooking/src/convex/ConvexHullBuilder.cpp')
| -rw-r--r-- | PhysX_3.4/Source/PhysXCooking/src/convex/ConvexHullBuilder.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/PhysX_3.4/Source/PhysXCooking/src/convex/ConvexHullBuilder.cpp b/PhysX_3.4/Source/PhysXCooking/src/convex/ConvexHullBuilder.cpp index 3b9c3ac6..c9c8c678 100644 --- a/PhysX_3.4/Source/PhysXCooking/src/convex/ConvexHullBuilder.cpp +++ b/PhysX_3.4/Source/PhysXCooking/src/convex/ConvexHullBuilder.cpp @@ -422,16 +422,21 @@ bool ConvexHullBuilder::save(PxOutputStream& stream, bool platformMismatch) cons } ////////////////////////////////////////////////////////////////////////// -bool ConvexHullBuilder::copy(ConvexHullData& hullData) +bool ConvexHullBuilder::copy(ConvexHullData& hullData, PxU32& mNb) { // set the numbers hullData.mNbHullVertices = mHull->mNbHullVertices; - hullData.mNbEdges = mHull->mNbEdges; + PxU16 hasGRBData = PxU16(mBuildGRBData); + hasGRBData = PxU16(hasGRBData << 15); + PX_ASSERT(mHull->mNbEdges <((1 << 15) - 1)); + hullData.mNbEdges = PxU16(mHull->mNbEdges | hasGRBData);; hullData.mNbPolygons = Ps::to8(computeNbPolygons()); PxU32 nb = 0; for (PxU32 i = 0; i < mHull->mNbPolygons; i++) nb += mHullDataPolygons[i].mNbVerts; + mNb = nb; + PxU32 bytesNeeded = Gu::computeBufferSize(hullData, nb); // allocate the memory first. @@ -462,7 +467,7 @@ bool ConvexHullBuilder::copy(ConvexHullData& hullData) PxMemCopy(hullData.mPolygons, mHullDataPolygons , hullData.mNbPolygons*sizeof(Gu::HullPolygonData)); PxMemCopy(dataVertexData8, mHullDataVertexData8, nb); PxMemCopy(dataFacesByEdges8,mHullDataFacesByEdges8, PxU32(mHull->mNbEdges * 2)); - if (hullData.mNbEdges.isBitSet()) + if (mBuildGRBData) PxMemCopy(dataEdges, mEdges, PxU32(mHull->mNbEdges * 2) * sizeof(PxU16)); PxMemCopy(dataFacesByVertices8, mHullDataFacesByVertices8, PxU32(mHull->mNbHullVertices * 3)); return true; |