diff --git a/blast_tools_and_samples-windows.zip b/blast_tools_and_samples-windows.zip index 97086772..72f0ab1b 100755 Binary files a/blast_tools_and_samples-windows.zip and b/blast_tools_and_samples-windows.zip differ diff --git a/docs/api_docs/files/_nv_blast_8h.html b/docs/api_docs/files/_nv_blast_8h.html index bc68d84f..23523fb1 100755 --- a/docs/api_docs/files/_nv_blast_8h.html +++ b/docs/api_docs/files/_nv_blast_8h.html @@ -1749,7 +1749,7 @@
#include "[out] chunkReorderMap User-supplied map of size chunkCount to fill. For every chunk index this array will contain new chunk position (index).
[in] chunkDescs Array of chunk descriptors of size chunkCount.
[in] chunkCount The number of chunk descriptors.
- [in] scratch User-supplied scratch storage, must point to 2 * chunkCount * sizeof(uint32_t) valid bytes of memory.
+ [in] scratch User-supplied scratch storage, must point to 3 * chunkCount * sizeof(uint32_t) valid bytes of memory.
[in] logFn User-supplied message function (see NvBlastLog definition). May be NULL.
diff --git a/docs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h-source.html b/docs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h-source.html
index bdf4c9b2..03e0eec2 100755
--- a/docs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h-source.html
+++ b/docs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h-source.html
@@ -69,8 +69,8 @@ sdk/extensions/authoring/include/NvBlastExtAuthoringFractureTool.h
00048 {
00049 enum ChunkFlags
00050 {
-00051 NO_FLAGS = 0,
-00052 CREATED_BY_ISLAND_DETECTOR = 1
+00051 NO_FLAGS = 0,
+00052 APPROXIMATE_BONDING = 1 // Created by island splitting or chunk merge, etc. and should check for inexact bonds
00053 };
00054
00055 Mesh* meshData;
@@ -245,15 +245,17 @@ sdk/extensions/authoring/include/NvBlastExtAuthoringFractureTool.h
00512 const NvcVec2i* adjChunks, uint32_t adjChunksSize,
00513 bool removeOriginalChunks = false) = 0;
00514
-00520 virtual void fitUvToRect(float side, uint32_t chunkId) = 0;
-00521
-00526 virtual void fitAllUvToRect(float side) = 0;
-00527 };
-00528
-00529 } // namespace Blast
-00530 } // namespace Nv
-00531
-00532 #endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H
+00521 virtual bool setApproximateBonding(uint32_t chunkIndex, bool useApproximateBonding) = 0;
+00522
+00528 virtual void fitUvToRect(float side, uint32_t chunkId) = 0;
+00529
+00534 virtual void fitAllUvToRect(float side) = 0;
+00535 };
+00536
+00537 } // namespace Blast
+00538 } // namespace Nv
+00539
+00540 #endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H
-Go to the documentation of this file. 96 uint32_t octaveNumber = 1; 112 int32_t x_slices = 1, y_slices = 1, z_slices = 1; 218 virtual void clusteredSitesGeneration(uint32_t numberOfClusters, uint32_t sitesPerCluster, float clusterRadius) = 0; 230 virtual void radialPattern(const NvcVec3& center, const NvcVec3& normal, float radius, int32_t angularSteps, 239 virtual void generateInSphere(const uint32_t count, const float radius, const NvcVec3& center) = 0; 258 virtual void deleteInSphere(const float radius, const NvcVec3& center, const float eraserProbability = 1) = 0; 327 voronoiFracturing(uint32_t chunkId, uint32_t cellCount, const NvcVec3* cellPoints, bool replaceChunk) = 0; 340 virtual int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, const NvcVec3* cellPoints, 356 slicing(uint32_t chunkId, const SlicingConfiguration& conf, bool replaceChunk, RandomGeneratorBase* rnd) = 0; 385 virtual int32_t cutout(uint32_t chunkId, CutoutConfiguration conf, bool replaceChunk, RandomGeneratorBase* rnd) = 0; 468 getBufferedBaseMeshes(Vertex*& vertexBuffer, uint32_t*& indexBuffer, uint32_t*& indexBufferOffsets) = 0;Definition: NvBlastExtAuthoringFractureTool.h:107
+Go to the documentation of this file. 52 APPROXIMATE_BONDING = 1 // Created by island splitting or chunk merge, etc. and should check for inexact bonds 96 uint32_t octaveNumber = 1; 112 int32_t x_slices = 1, y_slices = 1, z_slices = 1; 218 virtual void clusteredSitesGeneration(uint32_t numberOfClusters, uint32_t sitesPerCluster, float clusterRadius) = 0; 230 virtual void radialPattern(const NvcVec3& center, const NvcVec3& normal, float radius, int32_t angularSteps, 239 virtual void generateInSphere(const uint32_t count, const float radius, const NvcVec3& center) = 0; 258 virtual void deleteInSphere(const float radius, const NvcVec3& center, const float eraserProbability = 1) = 0; 327 voronoiFracturing(uint32_t chunkId, uint32_t cellCount, const NvcVec3* cellPoints, bool replaceChunk) = 0; 340 virtual int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, const NvcVec3* cellPoints, 356 slicing(uint32_t chunkId, const SlicingConfiguration& conf, bool replaceChunk, RandomGeneratorBase* rnd) = 0; 385 virtual int32_t cutout(uint32_t chunkId, CutoutConfiguration conf, bool replaceChunk, RandomGeneratorBase* rnd) = 0; 468 getBufferedBaseMeshes(Vertex*& vertexBuffer, uint32_t*& indexBuffer, uint32_t*& indexBufferOffsets) = 0;Definition: NvBlastExtAuthoringFractureTool.h:107
Definition: NvBlastExtAuthoringFractureTool.h:47
Definition: NvBlastExtAuthoringFractureTool.h:179
-Definition: NvBlastExtAuthoringFractureTool.h:52
Definition: NvBlastExtAuthoringCutout.h:36
+Definition: NvBlastExtAuthoringFractureTool.h:52
Definition: NvBlastExtAuthoringFractureTool.h:79
Definition: NvBlastExtAuthoringMesh.h:42
diff --git a/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool-members.html b/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool-members.html
index b426840b..f2ccf972 100755
--- a/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool-members.html
+++ b/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool-members.html
@@ -44,6 +44,7 @@ Nv::Blast::FractureTool Member List
This is the complete list of members
release()=0 Nv::Blast::FractureTool [pure virtual]
replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId)=0 Nv::Blast::FractureTool [pure virtual]
reset()=0 Nv::Blast::FractureTool [pure virtual]
+ setApproximateBonding(uint32_t chunkIndex, bool useApproximateBonding)=0 Nv::Blast::FractureTool [pure virtual]
setChunkMesh(const Mesh *mesh, int32_t parentId)=0 Nv::Blast::FractureTool [pure virtual]
setInteriorMaterialId(int32_t materialId)=0 Nv::Blast::FractureTool [pure virtual]
setRemoveIslands(bool isRemoveIslands)=0 Nv::Blast::FractureTool [pure virtual]
diff --git a/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool.html b/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool.html
index e91b5258..d7b7fe19 100755
--- a/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool.html
+++ b/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool.html
@@ -75,6 +75,8 @@ Nv::Blast::FractureTool Class Reference
+
+
+
+
+ virtual bool Nv::Blast::FractureTool::setApproximateBonding
+ (
+ uint32_t
+ chunkIndex,
+
+
+
+
+ bool
+ useApproximateBonding
+
+
+
+ )
+ [pure virtual]
+
+
+
+
+
+
+Set the APPROXIMATE_BONDING flag in the chunk's ChunkInfo
- Parameters:
-
+
+ [in] chunkIndex chunk index - use getChunkIndex(ID)
+ [in] useApproximateBonding value of flag to set
+
+
+- Returns:
- true if the chunk ID is found, false otherwise
+
diff --git a/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool.js b/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool.js
index b4a1a8f1..a3f0bbec 100755
--- a/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool.js
+++ b/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool.js
@@ -24,6 +24,7 @@ var class_nv_1_1_blast_1_1_fracture_tool =
[ "release", "class_nv_1_1_blast_1_1_fracture_tool.html#a78da4a0d726ec1b541166cd3c46df67e", null ],
[ "replaceMaterialId", "class_nv_1_1_blast_1_1_fracture_tool.html#a78194aeece0c12c2035c79458ff49c9f", null ],
[ "reset", "class_nv_1_1_blast_1_1_fracture_tool.html#ab462c92fa47a5359bf3d19cf44af80f4", null ],
+ [ "setApproximateBonding", "class_nv_1_1_blast_1_1_fracture_tool.html#a33c19de2bc8ea52394651d184076db5c", null ],
[ "setChunkMesh", "class_nv_1_1_blast_1_1_fracture_tool.html#aecd9be996bba9329418fd91db8235ebe", null ],
[ "setInteriorMaterialId", "class_nv_1_1_blast_1_1_fracture_tool.html#ac8c4f90133fdf32969cad6e4c520414f", null ],
[ "setRemoveIslands", "class_nv_1_1_blast_1_1_fracture_tool.html#a251738022e498b819e88536577470735", null ],
diff --git a/docs/api_docs/files/functions.html b/docs/api_docs/files/functions.html
index c699600b..3ff7e75d 100755
--- a/docs/api_docs/files/functions.html
+++ b/docs/api_docs/files/functions.html
@@ -132,8 +132,8 @@
- a -
- angularSteps
: Nv::Blast::RegularRadialPatternDesc
- aperture
-: Nv::Blast::RegularRadialPatternDesc
-, Nv::Blast::CutoutConfiguration
+: Nv::Blast::CutoutConfiguration
+, Nv::Blast::RegularRadialPatternDesc
- ApexImporterConfig()
: Nv::Blast::ApexImporter::ApexImporterConfig
- ApexImportTool()
@@ -147,24 +147,27 @@
- a -
, Nv::Blast::TkFamily
- applySyncBuffer()
: Nv::Blast::ExtSync
+
- APPROXIMATE_BONDING
+: Nv::Blast::ChunkInfo
- area
: NvBlastBond
- Asset
-: Nv::Blast::LlObjectTypeID
-, Nv::Blast::TkObjectTypeID
-, Nv::Blast::TkTypeIndex
+: Nv::Blast::ExtPxObjectTypeID
- asset
: Nv::Blast::TkActorDesc
-, Nv::Blast::AuthoringResult
- Asset
-: Nv::Blast::ExtPxObjectTypeID
+: Nv::Blast::LlObjectTypeID
- asset
: Nv::Blast::ExporterMeshData
+, Nv::Blast::AuthoringResult
+
- Asset
+: Nv::Blast::TkTypeIndex
+, Nv::Blast::TkObjectTypeID
- assetBonds
: NvBlastGraphShaderActor
- assetChunks
-: NvBlastGraphShaderActor
-, NvBlastSubgraphShaderActor
+: NvBlastSubgraphShaderActor
+, NvBlastGraphShaderActor
- AssetDataBlock
: NvBlastDataBlock
- assetNodeCount
@@ -173,8 +176,8 @@
- a -
: Nv::Blast::AuthoringResult
- attachPositions
: Nv::Blast::TkAssetJointDesc
-, Nv::Blast::TkJointData
, Nv::Blast::TkJointDesc
+, Nv::Blast::TkJointData
- AVERAGE
: Nv::Blast::BondGenerationConfig
diff --git a/docs/api_docs/files/functions_0x63.html b/docs/api_docs/files/functions_0x63.html
index 78f3a877..51873c9d 100755
--- a/docs/api_docs/files/functions_0x63.html
+++ b/docs/api_docs/files/functions_0x63.html
@@ -171,34 +171,33 @@ - c -
: Nv::Blast::ExtSyncEventType
, NvBlastDataBlock
- create()
-: Nv::Blast::ExtImpactDamageManager
+: Nv::Blast::ExtPxAsset
+, Nv::Blast::ExtGroupTaskManager
, Nv::Blast::ExtPxAsset
-, Nv::Blast::ExtStressSolver
-, Nv::Blast::ExtPxStressSolver
, Nv::Blast::ExtSync
-, Nv::Blast::ExtGroupTaskManager
, Nv::Blast::ExtPxAsset
+, Nv::Blast::ExtStressSolver
+, Nv::Blast::ExtPxAsset
+, Nv::Blast::ExtPxStressSolver
, Nv::Blast::ExtPxManager
-, Nv::Blast::ExtPxAsset
+, Nv::Blast::ExtImpactDamageManager
- createActor()
: Nv::Blast::TkFramework
- createAsset()
-: Nv::Blast::TkFramework
+: Nv::Blast::TkFramework
- createBondBetweenMeshes()
-: Nv::Blast::BlastBondGenerator
+: Nv::Blast::BlastBondGenerator
- createChunkMesh()
: Nv::Blast::FractureTool
- createCollisionBuilder()
: Nv::Blast::ExtPxManager
-
- CREATED_BY_ISLAND_DETECTOR
-: Nv::Blast::ChunkInfo
- createFamily()
: Nv::Blast::ExtPxManager
- createGroup()
: Nv::Blast::TkFramework
- createJoint()
-: Nv::Blast::TkFramework
-, Nv::Blast::ExtPxManager
+: Nv::Blast::ExtPxManager
+, Nv::Blast::TkFramework
- cut()
: Nv::Blast::FractureTool
- cutout()
diff --git a/docs/api_docs/files/functions_0x73.html b/docs/api_docs/files/functions_0x73.html
index f791a231..ae619270 100755
--- a/docs/api_docs/files/functions_0x73.html
+++ b/docs/api_docs/files/functions_0x73.html
@@ -87,6 +87,8 @@
- s -
: Nv::Blast::ExtPxManager
- setAllNodesInfoFromLL()
: Nv::Blast::ExtStressSolver
+
- setApproximateBonding()
+: Nv::Blast::FractureTool
- setBaseMesh()
: Nv::Blast::VoronoiSitesGenerator
- setBufferProvider()
@@ -116,11 +118,11 @@
- s -
- setPlatformEnabled()
: Nv::Blast::ExtCustomProfiler
- setPointCmpDirection()
-: Nv::Blast::BBoxBasedAccelerator
+: Nv::Blast::SweepingAccelerator
+, Nv::Blast::BBoxBasedAccelerator
, Nv::Blast::SpatialAccelerator
, Nv::Blast::DummyAccelerator
, Nv::Blast::GridWalker
-, Nv::Blast::SweepingAccelerator
- setPxActorDesc()
: Nv::Blast::ExtPxFamily
- setPxShapeDescTemplate()
@@ -137,7 +139,7 @@
- s -
- setSourceMesh()
: Nv::Blast::FractureTool
- setState()
-: Nv::Blast::BBoxBasedAccelerator
+: Nv::Blast::BBoxBasedAccelerator
, Nv::Blast::SpatialAccelerator
, Nv::Blast::DummyAccelerator
, Nv::Blast::GridWalker
@@ -185,8 +187,8 @@
- s -
- stressLinearFactor
: Nv::Blast::ExtStressSolverSettings
- subchunkCount
-: Nv::Blast::ExtPxAssetDesc::ExtPxAssetDesc::ChunkDesc
-, Nv::Blast::ExtPxChunk
+: Nv::Blast::ExtPxChunk
+, Nv::Blast::ExtPxAssetDesc::ExtPxAssetDesc::ChunkDesc
- subchunks
: Nv::Blast::ExtPxAssetDesc::ExtPxAssetDesc::ChunkDesc
- subgraphShaderFunction
diff --git a/docs/api_docs/files/functions_0x74.html b/docs/api_docs/files/functions_0x74.html
index f79ce870..b4f0d546 100755
--- a/docs/api_docs/files/functions_0x74.html
+++ b/docs/api_docs/files/functions_0x74.html
@@ -91,15 +91,15 @@
- t -
: Nv::Blast::TriangleIndexed
- trId
: Nv::Blast::PlaneChunkIndexer
-
- type
-: Nv::Blast::ExtSyncEvent
- Type
: NvBlastDataBlock
-, Nv::Blast::TkEvent
- type
: Nv::Blast::TkEvent
- Type
: NvBlastMessage
+, Nv::Blast::TkEvent
+
- type
+: Nv::Blast::ExtSyncEvent
- TypeCount
: Nv::Blast::TkTypeIndex
, Nv::Blast::TkEvent
diff --git a/docs/api_docs/files/functions_c.html b/docs/api_docs/files/functions_c.html
index 967a78a1..30bcded0 100755
--- a/docs/api_docs/files/functions_c.html
+++ b/docs/api_docs/files/functions_c.html
@@ -188,7 +188,7 @@
- c -
- create()
: Nv::Blast::ExtGroupTaskManager
, Nv::Blast::ExtImpactDamageManager
-, Nv::Blast::ExtPxAsset
+, Nv::Blast::ExtPxAsset
, Nv::Blast::ExtPxManager
, Nv::Blast::ExtPxStressSolver
, Nv::Blast::ExtStressSolver
@@ -198,7 +198,7 @@
- c -
- createAsset()
-: Nv::Blast::TkFramework
+: Nv::Blast::TkFramework
- createBondBetweenMeshes()
: Nv::Blast::BlastBondGenerator
@@ -209,9 +209,6 @@
- c -
- createCollisionBuilder()
: Nv::Blast::ExtPxManager
-- CREATED_BY_ISLAND_DETECTOR
-: Nv::Blast::ChunkInfo
-
- createFamily()
: Nv::Blast::ExtPxManager
diff --git a/docs/api_docs/files/functions_eval.html b/docs/api_docs/files/functions_eval.html
index 60e47603..c767be8b 100755
--- a/docs/api_docs/files/functions_eval.html
+++ b/docs/api_docs/files/functions_eval.html
@@ -59,11 +59,13 @@
- a -
- ALL
: Nv::Blast::FractureRT::FractureRT::Stage
+
- APPROXIMATE_BONDING
+: Nv::Blast::ChunkInfo
- Asset
-: Nv::Blast::LlObjectTypeID
-, Nv::Blast::TkObjectTypeID
+: Nv::Blast::ExtPxObjectTypeID
, Nv::Blast::TkTypeIndex
-, Nv::Blast::ExtPxObjectTypeID
+, Nv::Blast::TkObjectTypeID
+, Nv::Blast::LlObjectTypeID
- AssetDataBlock
: NvBlastDataBlock
- AVERAGE
@@ -83,8 +85,6 @@
- c -
- Count
: Nv::Blast::ExtSyncEventType
, NvBlastDataBlock
-
- CREATED_BY_ISLAND_DETECTOR
-: Nv::Blast::ChunkInfo
- d -
- Debug
diff --git a/docs/api_docs/files/functions_func_0x73.html b/docs/api_docs/files/functions_func_0x73.html
index 8710d83b..9aa2305b 100755
--- a/docs/api_docs/files/functions_func_0x73.html
+++ b/docs/api_docs/files/functions_func_0x73.html
@@ -73,6 +73,8 @@
- s -
: Nv::Blast::ExtPxManager
- setAllNodesInfoFromLL()
: Nv::Blast::ExtStressSolver
+
- setApproximateBonding()
+: Nv::Blast::FractureTool
- setBaseMesh()
: Nv::Blast::VoronoiSitesGenerator
- setBufferProvider()
@@ -123,18 +125,20 @@
- s -
- setSourceMesh()
: Nv::Blast::FractureTool
- setState()
-: Nv::Blast::SweepingAccelerator
-, Nv::Blast::SpatialAccelerator
-, Nv::Blast::BBoxBasedAccelerator
-, Nv::Blast::GridWalker
+: Nv::Blast::SpatialAccelerator
, Nv::Blast::SweepingAccelerator
-, Nv::Blast::DummyAccelerator
-, Nv::Blast::GridWalker
, Nv::Blast::SpatialAccelerator
-, Nv::Blast::SweepingAccelerator
, Nv::Blast::BBoxBasedAccelerator
+, Nv::Blast::DummyAccelerator
+, Nv::Blast::GridWalker
, Nv::Blast::DummyAccelerator
+, Nv::Blast::GridWalker
+, Nv::Blast::DummyAccelerator
+, Nv::Blast::BBoxBasedAccelerator
+, Nv::Blast::SweepingAccelerator
, Nv::Blast::BBoxBasedAccelerator
+, Nv::Blast::SpatialAccelerator
+, Nv::Blast::SweepingAccelerator
- setStencil()
: Nv::Blast::VoronoiSitesGenerator
- setUniformHealth()
@@ -155,7 +159,7 @@
- s -
- SweepingAccelerator()
: Nv::Blast::SweepingAccelerator
- syncFamily()
-: Nv::Blast::ExtSync
+: Nv::Blast::ExtSync
diff --git a/docs/api_docs/files/functions_func_s.html b/docs/api_docs/files/functions_func_s.html
index b4c65cb5..00f0d796 100755
--- a/docs/api_docs/files/functions_func_s.html
+++ b/docs/api_docs/files/functions_func_s.html
@@ -61,6 +61,9 @@ - s -
- setAllNodesInfoFromLL()
: Nv::Blast::ExtStressSolver
+- setApproximateBonding()
+: Nv::Blast::FractureTool
+
- setBaseMesh()
: Nv::Blast::VoronoiSitesGenerator
diff --git a/docs/api_docs/files/functions_s.html b/docs/api_docs/files/functions_s.html
index c1861a9f..40f8dc0c 100755
--- a/docs/api_docs/files/functions_s.html
+++ b/docs/api_docs/files/functions_s.html
@@ -73,6 +73,9 @@ - s -
- setAllNodesInfoFromLL()
: Nv::Blast::ExtStressSolver
+- setApproximateBonding()
+: Nv::Blast::FractureTool
+
- setBaseMesh()
: Nv::Blast::VoronoiSitesGenerator
@@ -234,12 +237,12 @@ - s -
: Nv::Blast::ExtPxFamily
, Nv::Blast::ExtPxManager
-- Subtype
-: Nv::Blast::TkJointUpdateEvent
-
- subtype
: Nv::Blast::TkJointUpdateEvent
+- Subtype
+: Nv::Blast::TkJointUpdateEvent
+
- supportChunkHealths
: NvBlastGraphShaderActor
diff --git a/docs/api_docs/files/functions_t.html b/docs/api_docs/files/functions_t.html
index 350fe59c..21fbe479 100755
--- a/docs/api_docs/files/functions_t.html
+++ b/docs/api_docs/files/functions_t.html
@@ -79,11 +79,15 @@ - t -
- type
: Nv::Blast::ExtSyncEvent
-, Nv::Blast::TkEvent
- Type
: Nv::Blast::TkEvent
-, NvBlastDataBlock
+
+- type
+: Nv::Blast::TkEvent
+
+- Type
+: NvBlastDataBlock
, NvBlastMessage
- TypeCount
diff --git a/docs/api_docs/files/navtreedata.js b/docs/api_docs/files/navtreedata.js
index 2d955bb4..745164e0 100755
--- a/docs/api_docs/files/navtreedata.js
+++ b/docs/api_docs/files/navtreedata.js
@@ -33,11 +33,11 @@ var NAVTREEINDEX =
[
"_nv_blast_8h.html",
"_nv_blast_tk_framework_8h.html#ac9ef4ab9d817890d7a0f456cc6f07907",
-"class_nv_1_1_blast_1_1_fracture_tool.html#a820000e618005f6de1cbcb56d3e54de5",
-"functions_d.html",
-"struct_nv_1_1_blast_1_1_chunk_graph_link.html#ad3027428a05b7319f8b01c690df1918a",
-"struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1faa045a667a2428770e974158ff5c3f721",
-"struct_nv_blast_message.html"
+"class_nv_1_1_blast_1_1_fracture_tool.html#a7f12ca1a0b1aa04875e46402a2a840f9",
+"functions_c.html",
+"struct_nv_1_1_blast_1_1_chunk_graph_link.html#ac06fdaba0bc2097db58c1ec408d0776d",
+"struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa39c81d6175ee0aa27db53d0cd7e944e3",
+"struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/docs/api_docs/files/navtreeindex1.js b/docs/api_docs/files/navtreeindex1.js
index b8fe24ff..a2990dd5 100755
--- a/docs/api_docs/files/navtreeindex1.js
+++ b/docs/api_docs/files/navtreeindex1.js
@@ -236,18 +236,18 @@ var NAVTREEINDEX1 =
"class_nv_1_1_blast_1_1_fracture_tool.html#a04bb5dd940274a9c8b097cc9f06d0708":[3,0,0,0,62,1],
"class_nv_1_1_blast_1_1_fracture_tool.html#a1d2f1ce4db5aab0ac6a075db607c6b2f":[3,0,0,0,62,12],
"class_nv_1_1_blast_1_1_fracture_tool.html#a247f0e36c015237002dc87675562289b":[3,0,0,0,62,3],
-"class_nv_1_1_blast_1_1_fracture_tool.html#a251738022e498b819e88536577470735":[3,0,0,0,62,26],
-"class_nv_1_1_blast_1_1_fracture_tool.html#a2d38fb6aac3c36d51d60dad428a43074":[3,0,0,0,62,32],
-"class_nv_1_1_blast_1_1_fracture_tool.html#a384be45a1310ee0652d315127e62da22":[3,0,0,0,62,30],
+"class_nv_1_1_blast_1_1_fracture_tool.html#a251738022e498b819e88536577470735":[3,0,0,0,62,27],
+"class_nv_1_1_blast_1_1_fracture_tool.html#a2d38fb6aac3c36d51d60dad428a43074":[3,0,0,0,62,33],
+"class_nv_1_1_blast_1_1_fracture_tool.html#a33c19de2bc8ea52394651d184076db5c":[3,0,0,0,62,24],
+"class_nv_1_1_blast_1_1_fracture_tool.html#a384be45a1310ee0652d315127e62da22":[3,0,0,0,62,31],
"class_nv_1_1_blast_1_1_fracture_tool.html#a44ad67ac96b11e7dad87b5ed7a788f21":[3,0,0,0,62,19],
-"class_nv_1_1_blast_1_1_fracture_tool.html#a45e8a5d3b6d98da1b44b6888a5054cce":[3,0,0,0,62,28],
-"class_nv_1_1_blast_1_1_fracture_tool.html#a4c3308b909153982aded9366f9d3ee7c":[3,0,0,0,62,31],
+"class_nv_1_1_blast_1_1_fracture_tool.html#a45e8a5d3b6d98da1b44b6888a5054cce":[3,0,0,0,62,29],
+"class_nv_1_1_blast_1_1_fracture_tool.html#a4c3308b909153982aded9366f9d3ee7c":[3,0,0,0,62,32],
"class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2":[3,0,0,0,62,0],
"class_nv_1_1_blast_1_1_fracture_tool.html#a559c822041e74f034613b3afa4ad8a17":[3,0,0,0,62,2],
"class_nv_1_1_blast_1_1_fracture_tool.html#a5710c73457bcceba3f20d130e231a028":[3,0,0,0,62,20],
"class_nv_1_1_blast_1_1_fracture_tool.html#a78194aeece0c12c2035c79458ff49c9f":[3,0,0,0,62,22],
"class_nv_1_1_blast_1_1_fracture_tool.html#a78da4a0d726ec1b541166cd3c46df67e":[3,0,0,0,62,21],
"class_nv_1_1_blast_1_1_fracture_tool.html#a7959339df1bf17419cde2428c257af1d":[3,0,0,0,62,9],
-"class_nv_1_1_blast_1_1_fracture_tool.html#a7bcaeda929fdcc29a7db12676cf0984a":[3,0,0,0,62,15],
-"class_nv_1_1_blast_1_1_fracture_tool.html#a7f12ca1a0b1aa04875e46402a2a840f9":[3,0,0,0,62,18]
+"class_nv_1_1_blast_1_1_fracture_tool.html#a7bcaeda929fdcc29a7db12676cf0984a":[3,0,0,0,62,15]
};
diff --git a/docs/api_docs/files/navtreeindex2.js b/docs/api_docs/files/navtreeindex2.js
index 2dbb0a27..2ec25a10 100755
--- a/docs/api_docs/files/navtreeindex2.js
+++ b/docs/api_docs/files/navtreeindex2.js
@@ -1,19 +1,20 @@
var NAVTREEINDEX2 =
{
+"class_nv_1_1_blast_1_1_fracture_tool.html#a7f12ca1a0b1aa04875e46402a2a840f9":[3,0,0,0,62,18],
"class_nv_1_1_blast_1_1_fracture_tool.html#a820000e618005f6de1cbcb56d3e54de5":[3,0,0,0,62,16],
"class_nv_1_1_blast_1_1_fracture_tool.html#a8830959a8f7e4babc1983ea31c61ef5d":[3,0,0,0,62,5],
"class_nv_1_1_blast_1_1_fracture_tool.html#a9a113cc771fac30fd14a9c7b5b073e99":[3,0,0,0,62,14],
"class_nv_1_1_blast_1_1_fracture_tool.html#aa9a87637d6d190d71678f0fb9a100bfd":[3,0,0,0,62,6],
"class_nv_1_1_blast_1_1_fracture_tool.html#ab462c92fa47a5359bf3d19cf44af80f4":[3,0,0,0,62,23],
-"class_nv_1_1_blast_1_1_fracture_tool.html#ac14c1ff1d50756694be24c34476af965":[3,0,0,0,62,27],
-"class_nv_1_1_blast_1_1_fracture_tool.html#ac8c4f90133fdf32969cad6e4c520414f":[3,0,0,0,62,25],
+"class_nv_1_1_blast_1_1_fracture_tool.html#ac14c1ff1d50756694be24c34476af965":[3,0,0,0,62,28],
+"class_nv_1_1_blast_1_1_fracture_tool.html#ac8c4f90133fdf32969cad6e4c520414f":[3,0,0,0,62,26],
"class_nv_1_1_blast_1_1_fracture_tool.html#ac99cb91a13255929a52d9a2623ac207b":[3,0,0,0,62,11],
"class_nv_1_1_blast_1_1_fracture_tool.html#adb1c311cbb3d84c7bfbfd12abe01af0b":[3,0,0,0,62,7],
"class_nv_1_1_blast_1_1_fracture_tool.html#adc4037818bdb9424fe0543b59c1e2eac":[3,0,0,0,62,17],
-"class_nv_1_1_blast_1_1_fracture_tool.html#ae4bd5dab498f9e894c648d570c5b60ba":[3,0,0,0,62,29],
+"class_nv_1_1_blast_1_1_fracture_tool.html#ae4bd5dab498f9e894c648d570c5b60ba":[3,0,0,0,62,30],
"class_nv_1_1_blast_1_1_fracture_tool.html#aea8f1d386c70af0ea67bed2c353e57a1":[3,0,0,0,62,8],
"class_nv_1_1_blast_1_1_fracture_tool.html#aec74731e5a147120f0536b6674fc0f42":[3,0,0,0,62,4],
-"class_nv_1_1_blast_1_1_fracture_tool.html#aecd9be996bba9329418fd91db8235ebe":[3,0,0,0,62,24],
+"class_nv_1_1_blast_1_1_fracture_tool.html#aecd9be996bba9329418fd91db8235ebe":[3,0,0,0,62,25],
"class_nv_1_1_blast_1_1_fracture_tool.html#af07eb7960687cd912df496640bec8876":[3,0,0,0,62,10],
"class_nv_1_1_blast_1_1_fracturer.html":[3,0,0,0,60],
"class_nv_1_1_blast_1_1_fracturer.html#a42fb6822d70b337eaef4470165db1ddb":[3,0,0,0,60,0],
@@ -248,6 +249,5 @@ var NAVTREEINDEX2 =
"functions.html":[3,3,0],
"functions.html":[3,3,0,0],
"functions_0x7e.html":[3,3,0,25],
-"functions_b.html":[3,3,0,1],
-"functions_c.html":[3,3,0,2]
+"functions_b.html":[3,3,0,1]
};
diff --git a/docs/api_docs/files/navtreeindex3.js b/docs/api_docs/files/navtreeindex3.js
index 4b8f69e3..62cb6553 100755
--- a/docs/api_docs/files/navtreeindex3.js
+++ b/docs/api_docs/files/navtreeindex3.js
@@ -1,12 +1,13 @@
var NAVTREEINDEX3 =
{
+"functions_c.html":[3,3,0,2],
"functions_d.html":[3,3,0,3],
"functions_e.html":[3,3,0,4],
"functions_enum.html":[3,3,3],
"functions_eval.html":[3,3,4],
"functions_f.html":[3,3,0,5],
-"functions_func.html":[3,3,1],
"functions_func.html":[3,3,1,0],
+"functions_func.html":[3,3,1],
"functions_func_0x7e.html":[3,3,1,19],
"functions_func_b.html":[3,3,1,1],
"functions_func_c.html":[3,3,1,2],
@@ -42,8 +43,8 @@ var NAVTREEINDEX3 =
"functions_t.html":[3,3,0,18],
"functions_u.html":[3,3,0,19],
"functions_v.html":[3,3,0,20],
-"functions_vars.html":[3,3,2],
"functions_vars.html":[3,3,2,0],
+"functions_vars.html":[3,3,2],
"functions_vars_b.html":[3,3,2,1],
"functions_vars_c.html":[3,3,2,2],
"functions_vars_d.html":[3,3,2,3],
@@ -248,6 +249,5 @@ var NAVTREEINDEX3 =
"struct_nv_1_1_blast_1_1_chunk_graph_link.html#a34f96313325afedc1031f0fffdb0f180":[3,0,0,0,11,0],
"struct_nv_1_1_blast_1_1_chunk_graph_link.html#a559b28f8649cc1b6bfabbc36836d313b":[3,0,0,0,11,5],
"struct_nv_1_1_blast_1_1_chunk_graph_link.html#aa70fc086e910c9459cb80e4dd3bc6dcf":[3,0,0,0,11,2],
-"struct_nv_1_1_blast_1_1_chunk_graph_link.html#ab7a24ff58d89fbca8e22a5f3307cac0c":[3,0,0,0,11,3],
-"struct_nv_1_1_blast_1_1_chunk_graph_link.html#ac06fdaba0bc2097db58c1ec408d0776d":[3,0,0,0,11,4]
+"struct_nv_1_1_blast_1_1_chunk_graph_link.html#ab7a24ff58d89fbca8e22a5f3307cac0c":[3,0,0,0,11,3]
};
diff --git a/docs/api_docs/files/navtreeindex4.js b/docs/api_docs/files/navtreeindex4.js
index 887fc63b..c96b6234 100755
--- a/docs/api_docs/files/navtreeindex4.js
+++ b/docs/api_docs/files/navtreeindex4.js
@@ -1,5 +1,6 @@
var NAVTREEINDEX4 =
{
+"struct_nv_1_1_blast_1_1_chunk_graph_link.html#ac06fdaba0bc2097db58c1ec408d0776d":[3,0,0,0,11,4],
"struct_nv_1_1_blast_1_1_chunk_graph_link.html#ad3027428a05b7319f8b01c690df1918a":[3,0,0,0,11,1],
"struct_nv_1_1_blast_1_1_chunk_info.html":[3,0,0,0,12],
"struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71":[3,0,0,0,12,2],
@@ -9,8 +10,8 @@ var NAVTREEINDEX4 =
"struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c":[3,0,0,0,12,6],
"struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35":[3,0,0,0,12,5],
"struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c":[3,0,0,0,12,0],
-"struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca083e487cf5083f1063904b52be3982de":[3,0,0,0,12,0,1],
"struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47":[3,0,0,0,12,0,0],
+"struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca673ab883edb6ff4c69fe85deed5ba3ff":[3,0,0,0,12,0,1],
"struct_nv_1_1_blast_1_1_collision_hull.html":[3,0,0,0,13],
"struct_nv_1_1_blast_1_1_collision_hull.html#a21b8e1cfff28fee14678e944df1db2c1":[3,0,0,0,13,0],
"struct_nv_1_1_blast_1_1_collision_hull.html#a3840aa67c32d7e6ef8c8fc1d65e7e6da":[3,0,0,0,13,4],
@@ -248,6 +249,5 @@ var NAVTREEINDEX4 =
"struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#ad7fc6cfbd651eef3d621e14df664fc4c":[3,0,0,0,80,1],
"struct_nv_1_1_blast_1_1_profiler_detail.html":[3,0,0,0,82],
"struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f":[3,0,0,0,82,0],
-"struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa26c8a44b1b01cd578f4121e60acf62bc":[3,0,0,0,82,0,0],
-"struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa39c81d6175ee0aa27db53d0cd7e944e3":[3,0,0,0,82,0,2]
+"struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa26c8a44b1b01cd578f4121e60acf62bc":[3,0,0,0,82,0,0]
};
diff --git a/docs/api_docs/files/navtreeindex5.js b/docs/api_docs/files/navtreeindex5.js
index 1be728f5..093b2936 100755
--- a/docs/api_docs/files/navtreeindex5.js
+++ b/docs/api_docs/files/navtreeindex5.js
@@ -1,5 +1,6 @@
var NAVTREEINDEX5 =
{
+"struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1fa39c81d6175ee0aa27db53d0cd7e944e3":[3,0,0,0,82,0,2],
"struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1faa045a667a2428770e974158ff5c3f721":[3,0,0,0,82,0,1],
"struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html":[3,0,0,0,84],
"struct_nv_1_1_blast_1_1_regular_radial_pattern_desc.html#a05be2d62a3e6c523f4fefd38eb051ac3":[3,0,0,0,84,1],
@@ -248,6 +249,5 @@ var NAVTREEINDEX5 =
"struct_nv_blast_graph_shader_actor.html#ae890e417040d5998f4b6a0bc7a317aec":[3,0,27,12],
"struct_nv_blast_graph_shader_actor.html#aeb7929bcf27fd95c49fdd5bd8909a9b9":[3,0,27,6],
"struct_nv_blast_graph_shader_actor.html#aebb7e8d55ddf8cb2ef71326632952cfe":[3,0,27,4],
-"struct_nv_blast_i_d.html":[3,0,28],
-"struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8":[3,0,28,0]
+"struct_nv_blast_i_d.html":[3,0,28]
};
diff --git a/docs/api_docs/files/navtreeindex6.js b/docs/api_docs/files/navtreeindex6.js
index 3cb880ed..1ee8b5b2 100644
--- a/docs/api_docs/files/navtreeindex6.js
+++ b/docs/api_docs/files/navtreeindex6.js
@@ -1,5 +1,6 @@
var NAVTREEINDEX6 =
{
+"struct_nv_blast_i_d.html#ae7f7abc9562d83d9537f6c876f4c04e8":[3,0,28,0],
"struct_nv_blast_message.html":[3,0,29],
"struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742ce":[3,0,29,0],
"struct_nv_blast_message.html#aa131d1cdff39661ffe961fa4c24742cea1ea5042557bdaca500e32f93c538695a":[3,0,29,0,3],
diff --git a/docs/api_docs/files/pagereleasenotes.html b/docs/api_docs/files/pagereleasenotes.html
index e5a59324..859f9c22 100755
--- a/docs/api_docs/files/pagereleasenotes.html
+++ b/docs/api_docs/files/pagereleasenotes.html
@@ -24,7 +24,7 @@
Release Notes
Release Notes Release Notes
Nv::Blast::ChunkInfo Member List
This is the complete list of members for Nv::Blast::ChunkInfo, including all inherited members.
+ APPROXIMATE_BONDING enum value Nv::Blast::ChunkInfo
ChunkFlags enum name Nv::Blast::ChunkInfo
chunkId Nv::Blast::ChunkInfo
- CREATED_BY_ISLAND_DETECTOR enum value Nv::Blast::ChunkInfo
flags Nv::Blast::ChunkInfo
isChanged Nv::Blast::ChunkInfo
isLeaf Nv::Blast::ChunkInfo
diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_chunk_info.html b/docs/api_docs/files/struct_nv_1_1_blast_1_1_chunk_info.html
index de248827..2b22a033 100755
--- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_chunk_info.html
+++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_chunk_info.html
@@ -29,10 +29,6 @@ Nv::Blast::ChunkInfo Struct Reference
NO_FLAGS
-CREATED_BY_ISLAND_DETECTOR
+ APPROXIMATE_BONDING
diff --git a/docs/api_docs/files/struct_nv_1_1_blast_1_1_chunk_info.js b/docs/api_docs/files/struct_nv_1_1_blast_1_1_chunk_info.js
index e193c315..1ca26a4f 100755
--- a/docs/api_docs/files/struct_nv_1_1_blast_1_1_chunk_info.js
+++ b/docs/api_docs/files/struct_nv_1_1_blast_1_1_chunk_info.js
@@ -2,7 +2,7 @@ var struct_nv_1_1_blast_1_1_chunk_info =
[
[ "ChunkFlags", "struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c", [
[ "NO_FLAGS", "struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47", null ],
- [ "CREATED_BY_ISLAND_DETECTOR", "struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca083e487cf5083f1063904b52be3982de", null ]
+ [ "APPROXIMATE_BONDING", "struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca673ab883edb6ff4c69fe85deed5ba3ff", null ]
] ],
[ "chunkId", "struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67", null ],
[ "flags", "struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71", null ],
diff --git a/docs/release_notes.txt b/docs/release_notes.txt
index d5c98b7d..4f7ddd6b 100755
--- a/docs/release_notes.txt
+++ b/docs/release_notes.txt
@@ -3,7 +3,7 @@
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-Blast(tm) SDK 1.1.5 (18-Aug-2019)
+Blast(tm) SDK 1.1.5 (16-Sep-2019)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Changes
@@ -12,7 +12,8 @@ Changes
* Numerous API changes to meet new coding conventions.
* Packman package manager updated to v. 5.7.2, cleaned up dependency files.
* Chunks created from islands use padded bounds to determine connectivity.
-* FractureTool::deleteAllChildrenOfChunk renamed FractureTool::deleteChunkSubhierarchy, added ability to delete chunks
+* FractureTool::deleteAllChildrenOfChunk renamed FractureTool::deleteChunkSubhierarchy, added ability to delete chunks.
+* NvBlastAsset::testForValidChunkOrder (used when creating an NvBlastAsset) is now more strict, requiring parent chunk descriptors to come before their children. It is still less strict than the order created by NvBlastBuildAssetDescChunkReorderMap.
New Features
------------
@@ -20,12 +21,16 @@ New Features
* Ability to pass chunk connectivity info to uniteChunks function, enabling chunks split by island detection to be united.
* Option to remove original merged chunks in uniteChunks function.
* The function uniteChunks allows the user to specify a chunk set to merge. Chunks from that set, and all descendants, are considered for merging.
- * Ability to delete chunks (see note about FractureTool::deleteChunkSubhierarchy in Changes section, above)
+ * Ability to delete chunks (see note about FractureTool::deleteChunkSubhierarchy in Changes section, above).
+ * Added FractureTool::setApproximateBonding function. Signals the tool to create bonds by proximity instead of just using cut plane data.
Bug fixes
---------
* Authoring tools:
* Fixed chunk reordering bug in BlastTool.
+ * Chunks which have been merged using the uniteChunks function may be merged again
+ * Restored chunk volume calculation
+* NvBlastBuildAssetDescChunkReorderMap failure cases fixed.
Known Issues
------------
diff --git a/docs/source_docs/files/_nv_blast_8h.html b/docs/source_docs/files/_nv_blast_8h.html
index b70d4322..ae5675bc 100755
--- a/docs/source_docs/files/_nv_blast_8h.html
+++ b/docs/source_docs/files/_nv_blast_8h.html
@@ -1768,7 +1768,7 @@ sdk/lowlevel/include/NvBlast.h File Reference
#include "[out] chunkReorderMap User-supplied map of size chunkCount to fill. For every chunk index this array will contain new chunk position (index).
[in] chunkDescs Array of chunk descriptors of size chunkCount.
[in] chunkCount The number of chunk descriptors.
- [in] scratch User-supplied scratch storage, must point to 2 * chunkCount * sizeof(uint32_t) valid bytes of memory.
+ [in] scratch User-supplied scratch storage, must point to 3 * chunkCount * sizeof(uint32_t) valid bytes of memory.
[in] logFn User-supplied message function (see NvBlastLog definition). May be NULL.
diff --git a/docs/source_docs/files/_nv_blast_actor_8h_source.html b/docs/source_docs/files/_nv_blast_actor_8h_source.html
index b600574d..339d3a7f 100755
--- a/docs/source_docs/files/_nv_blast_actor_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_actor_8h_source.html
@@ -92,13 +92,13 @@
Definition: NvBlastTypes.h:481
-uint32_t m_firstSubsupportChunkIndexDefinition: NvBlastAsset.h:206
+uint32_t m_firstSubsupportChunkIndexDefinition: NvBlastAsset.h:207
uint32_t bondFractureCountavailable elements in bondFractures Definition: NvBlastTypes.h:470
float * getSubsupportChunkHealths() constDefinition: NvBlastActor.h:600
-Definition: NvBlastAsset.h:252
+Definition: NvBlastAsset.h:253
uint32_t findIslands(void *scratch)
Definition: NvBlastActor.h:233
uint32_t serializationRequiredStorage(NvBlastLog logFn) const
@@ -113,7 +113,7 @@
float * getSubsupportChunkHealths() constDefinition: NvBlastFamily.h:113
-
+
Definition: NvBlastIteratorBase.h:88
Definition: NvBlastTypes.h:468
Definition: NvBlastActor.h:58
diff --git a/docs/source_docs/files/_nv_blast_asset_8h-source.html b/docs/source_docs/files/_nv_blast_asset_8h-source.html
index 607e77ac..e597ad4b 100755
--- a/docs/source_docs/files/_nv_blast_asset_8h-source.html
+++ b/docs/source_docs/files/_nv_blast_asset_8h-source.html
@@ -120,93 +120,93 @@ sdk/lowlevel/source/NvBlastAsset.h
Go
00136
00156 static bool ensureExactSupportCoverage(uint32_t& supportChunkCount, uint32_t& leafChunkCount, char* chunkAnnotation, uint32_t chunkCount, NvBlastChunkDesc* chunkDescs, bool testOnly, NvBlastLog logFn);
00157
-00173 static bool testForValidChunkOrder(uint32_t chunkCount, const NvBlastChunkDesc* chunkDescs, const char* chunkAnnotation, void* scratch);
-00174
+00174 static bool testForValidChunkOrder(uint32_t chunkCount, const NvBlastChunkDesc* chunkDescs, const char* chunkAnnotation, void* scratch);
00175
-00177
-00181 NvBlastDataBlock m_header;
-00182
-00186 NvBlastID m_ID;
-00187
-00191 uint32_t m_chunkCount;
-00192
-00196 SupportGraph m_graph;
-00197
-00201 uint32_t m_leafChunkCount;
-00202
-00206 uint32_t m_firstSubsupportChunkIndex;
-00207
-00211 uint32_t m_bondCount;
-00212
-00218 NvBlastBlockArrayData(NvBlastChunk, m_chunksOffset, getChunks, m_chunkCount);
-00219
-00228 NvBlastBlockArrayData(NvBlastBond, m_bondsOffset, getBonds, m_bondCount);
-00229
-00236 NvBlastBlockArrayData(uint32_t, m_subtreeLeafChunkCountsOffset, getSubtreeLeafChunkCounts, m_chunkCount);
-00237
-00243 NvBlastBlockArrayData(uint32_t, m_chunkToGraphNodeMapOffset, getChunkToGraphNodeMap, m_chunkCount);
-00244
+00176
+00178
+00182 NvBlastDataBlock m_header;
+00183
+00187 NvBlastID m_ID;
+00188
+00192 uint32_t m_chunkCount;
+00193
+00197 SupportGraph m_graph;
+00198
+00202 uint32_t m_leafChunkCount;
+00203
+00207 uint32_t m_firstSubsupportChunkIndex;
+00208
+00212 uint32_t m_bondCount;
+00213
+00219 NvBlastBlockArrayData(NvBlastChunk, m_chunksOffset, getChunks, m_chunkCount);
+00220
+00229 NvBlastBlockArrayData(NvBlastBond, m_bondsOffset, getBonds, m_bondCount);
+00230
+00237 NvBlastBlockArrayData(uint32_t, m_subtreeLeafChunkCountsOffset, getSubtreeLeafChunkCounts, m_chunkCount);
+00238
+00244 NvBlastBlockArrayData(uint32_t, m_chunkToGraphNodeMapOffset, getChunkToGraphNodeMap, m_chunkCount);
00245
-00247
-00252 class DepthFirstIt : public ChunkDepthFirstIt
-00253 {
-00254 public:
-00256 DepthFirstIt(const Asset& asset, uint32_t startChunkIndex, bool upperSupportOnly = false) :
-00257 ChunkDepthFirstIt(asset.getChunks(), startChunkIndex, upperSupportOnly ? asset.getUpperSupportChunkCount() : asset.m_chunkCount) {}
-00258 };
-00259 };
-00260
+00246
+00248
+00253 class DepthFirstIt : public ChunkDepthFirstIt
+00254 {
+00255 public:
+00257 DepthFirstIt(const Asset& asset, uint32_t startChunkIndex, bool upperSupportOnly = false) :
+00258 ChunkDepthFirstIt(asset.getChunks(), startChunkIndex, upperSupportOnly ? asset.getUpperSupportChunkCount() : asset.m_chunkCount) {}
+00259 };
+00260 };
00261
-00263
-00264 NV_INLINE uint32_t Asset::getUpperSupportChunkCount() const
-00265 {
-00266 return m_firstSubsupportChunkIndex;
-00267 }
-00268
+00262
+00264
+00265 NV_INLINE uint32_t Asset::getUpperSupportChunkCount() const
+00266 {
+00267 return m_firstSubsupportChunkIndex;
+00268 }
00269
-00270 NV_INLINE uint32_t Asset::getLowerSupportChunkCount() const
-00271 {
-00272 return m_graph.m_nodeCount + (m_chunkCount - m_firstSubsupportChunkIndex);
-00273 }
-00274
+00270
+00271 NV_INLINE uint32_t Asset::getLowerSupportChunkCount() const
+00272 {
+00273 return m_graph.m_nodeCount + (m_chunkCount - m_firstSubsupportChunkIndex);
+00274 }
00275
-00276 NV_INLINE uint32_t Asset::getBondCount() const
-00277 {
-00278 NVBLAST_ASSERT((m_graph.getAdjacencyPartition()[m_graph.m_nodeCount] & 1) == 0); // The bidirectional graph data should have an even number of edges
-00279 return m_graph.getAdjacencyPartition()[m_graph.m_nodeCount] / 2; // Directional bonds, divide by two
-00280 }
-00281
+00276
+00277 NV_INLINE uint32_t Asset::getBondCount() const
+00278 {
+00279 NVBLAST_ASSERT((m_graph.getAdjacencyPartition()[m_graph.m_nodeCount] & 1) == 0); // The bidirectional graph data should have an even number of edges
+00280 return m_graph.getAdjacencyPartition()[m_graph.m_nodeCount] / 2; // Directional bonds, divide by two
+00281 }
00282
-00283 NV_INLINE uint32_t Asset::getHierarchyCount() const
-00284 {
-00285 const NvBlastChunk* chunks = getChunks();
-00286 for (uint32_t i = 0; i < m_chunkCount; ++i)
-00287 {
-00288 if (!isInvalidIndex(chunks[i].parentChunkIndex))
-00289 {
-00290 return i;
-00291 }
-00292 }
-00293 return m_chunkCount;
-00294 }
-00295
+00283
+00284 NV_INLINE uint32_t Asset::getHierarchyCount() const
+00285 {
+00286 const NvBlastChunk* chunks = getChunks();
+00287 for (uint32_t i = 0; i < m_chunkCount; ++i)
+00288 {
+00289 if (!isInvalidIndex(chunks[i].parentChunkIndex))
+00290 {
+00291 return i;
+00292 }
+00293 }
+00294 return m_chunkCount;
+00295 }
00296
-00297 NV_INLINE uint32_t Asset::getContiguousLowerSupportIndex(uint32_t chunkIndex) const
-00298 {
-00299 NVBLAST_ASSERT(chunkIndex < m_chunkCount);
-00300
-00301 return chunkIndex < m_firstSubsupportChunkIndex ? getChunkToGraphNodeMap()[chunkIndex] : (chunkIndex - m_firstSubsupportChunkIndex + m_graph.m_nodeCount);
-00302 }
-00303
+00297
+00298 NV_INLINE uint32_t Asset::getContiguousLowerSupportIndex(uint32_t chunkIndex) const
+00299 {
+00300 NVBLAST_ASSERT(chunkIndex < m_chunkCount);
+00301
+00302 return chunkIndex < m_firstSubsupportChunkIndex ? getChunkToGraphNodeMap()[chunkIndex] : (chunkIndex - m_firstSubsupportChunkIndex + m_graph.m_nodeCount);
+00303 }
00304
-00305 //JDM: Expose this so serialization layer can use it.
-00306 NVBLAST_API Asset* initializeAsset(void* mem, NvBlastID id, uint32_t chunkCount, uint32_t graphNodeCount, uint32_t leafChunkCount, uint32_t firstSubsupportChunkIndex, uint32_t bondCount, NvBlastLog logFn);
-00307
-00308 } // namespace Blast
-00309 } // namespace Nv
-00310
+00305
+00306 //JDM: Expose this so serialization layer can use it.
+00307 NVBLAST_API Asset* initializeAsset(void* mem, NvBlastID id, uint32_t chunkCount, uint32_t graphNodeCount, uint32_t leafChunkCount, uint32_t firstSubsupportChunkIndex, uint32_t bondCount, NvBlastLog logFn);
+00308
+00309 } // namespace Blast
+00310 } // namespace Nv
00311
-00312 #endif // ifndef NVBLASTASSET_H
+00312
+00313 #endif // ifndef NVBLASTASSET_H
-Go to the documentation of this file. 156 static bool ensureExactSupportCoverage(uint32_t& supportChunkCount, uint32_t& leafChunkCount, char* chunkAnnotation, uint32_t chunkCount, NvBlastChunkDesc* chunkDescs, bool testOnly, NvBlastLog logFn); 173 static bool testForValidChunkOrder(uint32_t chunkCount, const NvBlastChunkDesc* chunkDescs, const char* chunkAnnotation, void* scratch); 236 NvBlastBlockArrayData(uint32_t, m_subtreeLeafChunkCountsOffset, getSubtreeLeafChunkCounts, m_chunkCount); 243 NvBlastBlockArrayData(uint32_t, m_chunkToGraphNodeMapOffset, getChunkToGraphNodeMap, m_chunkCount); 257 ChunkDepthFirstIt(asset.getChunks(), startChunkIndex, upperSupportOnly ? asset.getUpperSupportChunkCount() : asset.m_chunkCount) {} 278 NVBLAST_ASSERT((m_graph.getAdjacencyPartition()[m_graph.m_nodeCount] & 1) == 0); // The bidirectional graph data should have an even number of edges 279 return m_graph.getAdjacencyPartition()[m_graph.m_nodeCount] / 2; // Directional bonds, divide by two 301 return chunkIndex < m_firstSubsupportChunkIndex ? getChunkToGraphNodeMap()[chunkIndex] : (chunkIndex - m_firstSubsupportChunkIndex + m_graph.m_nodeCount); 306 NVBLAST_API Asset* initializeAsset(void* mem, NvBlastID id, uint32_t chunkCount, uint32_t graphNodeCount, uint32_t leafChunkCount, uint32_t firstSubsupportChunkIndex, uint32_t bondCount, NvBlastLog logFn);
+Go to the documentation of this file. 156 static bool ensureExactSupportCoverage(uint32_t& supportChunkCount, uint32_t& leafChunkCount, char* chunkAnnotation, uint32_t chunkCount, NvBlastChunkDesc* chunkDescs, bool testOnly, NvBlastLog logFn); 174 static bool testForValidChunkOrder(uint32_t chunkCount, const NvBlastChunkDesc* chunkDescs, const char* chunkAnnotation, void* scratch); 237 NvBlastBlockArrayData(uint32_t, m_subtreeLeafChunkCountsOffset, getSubtreeLeafChunkCounts, m_chunkCount); 244 NvBlastBlockArrayData(uint32_t, m_chunkToGraphNodeMapOffset, getChunkToGraphNodeMap, m_chunkCount); 258 ChunkDepthFirstIt(asset.getChunks(), startChunkIndex, upperSupportOnly ? asset.getUpperSupportChunkCount() : asset.m_chunkCount) {} 279 NVBLAST_ASSERT((m_graph.getAdjacencyPartition()[m_graph.m_nodeCount] & 1) == 0); // The bidirectional graph data should have an even number of edges 280 return m_graph.getAdjacencyPartition()[m_graph.m_nodeCount] / 2; // Directional bonds, divide by two 302 return chunkIndex < m_firstSubsupportChunkIndex ? getChunkToGraphNodeMap()[chunkIndex] : (chunkIndex - m_firstSubsupportChunkIndex + m_graph.m_nodeCount); 307 NVBLAST_API Asset* initializeAsset(void* mem, NvBlastID id, uint32_t chunkCount, uint32_t graphNodeCount, uint32_t leafChunkCount, uint32_t firstSubsupportChunkIndex, uint32_t bondCount, NvBlastLog logFn);
static size_t getMemorySize(const NvBlastAssetDesc *desc)
Definition: NvBlastSupportGraph.h:76
@@ -54,12 +54,12 @@
Definition: NvBlastChunkHierarchy.h:49
Definition: NvBlastAsset.h:52
-
+
Definition: NvBlastTypes.h:345
static bool testForValidChunkOrder(uint32_t chunkCount, const NvBlastChunkDesc *chunkDescs, const char *chunkAnnotation, void *scratch)
-
+
Definition: NvBlastAsset.h:56
void(* NvBlastLog)(int type, const char *msg, const char *file, int line)Definition: NvBlastTypes.h:63
@@ -69,28 +69,28 @@
Definition: NvBlastTypes.h:98
-uint32_t m_firstSubsupportChunkIndexDefinition: NvBlastAsset.h:206
-DepthFirstIt(const Asset &asset, uint32_t startChunkIndex, bool upperSupportOnly=false)Definition: NvBlastAsset.h:256
-Definition: NvBlastAsset.h:252
+uint32_t m_firstSubsupportChunkIndexDefinition: NvBlastAsset.h:207
+DepthFirstIt(const Asset &asset, uint32_t startChunkIndex, bool upperSupportOnly=false)Definition: NvBlastAsset.h:257
+Definition: NvBlastAsset.h:253
NVBLAST_API Asset * initializeAsset(void *mem, NvBlastID id, uint32_t chunkCount, uint32_t graphNodeCount, uint32_t leafChunkCount, uint32_t firstSubsupportChunkIndex, uint32_t bondCount, NvBlastLog logFn)
Definition: NvBlastTypes.h:69
-uint32_t getContiguousLowerSupportIndex(uint32_t chunkIndex) constDefinition: NvBlastAsset.h:297
-uint32_t getLowerSupportChunkCount() constDefinition: NvBlastAsset.h:270
-
+uint32_t getContiguousLowerSupportIndex(uint32_t chunkIndex) constDefinition: NvBlastAsset.h:298
+uint32_t getLowerSupportChunkCount() constDefinition: NvBlastAsset.h:271
+
Definition: NvBlastAsset.h:61
Definition: NvBlastTypes.h:292
Definition: NvBlastTypes.h:152
-
+
Definition: NvBlastTypes.h:286
static Asset * create(void *mem, const NvBlastAssetDesc *desc, void *scratch, NvBlastLog logFn)
Definition: NvBlastAsset.h:58
NvBlastBlockArrayData(NvBlastChunk, m_chunksOffset, getChunks, m_chunkCount)
-
-uint32_t getUpperSupportChunkCount() constDefinition: NvBlastAsset.h:264
-
-
+
+uint32_t getUpperSupportChunkCount() constDefinition: NvBlastAsset.h:265
+
+
Definition: NvBlastAsset.h:57
Definition: NvBlastArray.h:37
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_boolean_tool_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_boolean_tool_8h_source.html
index 6f944738..0b48ae98 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_boolean_tool_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_boolean_tool_8h_source.html
@@ -49,7 +49,7 @@
Go to the documentation of this file. 91 EdgeFacetIntersectionData(int32_t edId, int32_t intersType, Vertex& inters) : edId(edId), intersectionType(intersType), intersectionPoint(inters) 123 void performBoolean(const Mesh* meshA, const Mesh* meshB, SpatialAccelerator* spAccelA, SpatialAccelerator* spAccelB, BooleanConf mode); 142 void performFastCutting(const Mesh* meshA, const Mesh* meshB, SpatialAccelerator* spAccelA, SpatialAccelerator* spAccelB, BooleanConf mode); 167 int32_t isPointContainedInMesh(const Mesh* mesh, SpatialAccelerator* spAccel, const NvcVec3& point);Vertex intersectionPointDefinition: NvBlastExtAuthoringBooleanTool.h:90
Definition: NvBlastExtAuthoringBooleanTool.h:108
-Definition: NvBlastExtAuthoringInternalCommon.h:47
+Definition: NvBlastExtAuthoringInternalCommon.h:48
EdgeFacetIntersectionData(int32_t edId)Definition: NvBlastExtAuthoringBooleanTool.h:93
Definition: NvBlastExtAuthoringAccelerator.h:47
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h-source.html b/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h-source.html
index b3703bc4..e8cc7dce 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h-source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h-source.html
@@ -86,8 +86,8 @@ sdk/extensions/authoring/include/NvBlastExtAuthoringFractureTool.h
00048 {
00049 enum ChunkFlags
00050 {
-00051 NO_FLAGS = 0,
-00052 CREATED_BY_ISLAND_DETECTOR = 1
+00051 NO_FLAGS = 0,
+00052 APPROXIMATE_BONDING = 1 // Created by island splitting or chunk merge, etc. and should check for inexact bonds
00053 };
00054
00055 Mesh* meshData;
@@ -262,15 +262,17 @@ sdk/extensions/authoring/include/NvBlastExtAuthoringFractureTool.h
00512 const NvcVec2i* adjChunks, uint32_t adjChunksSize,
00513 bool removeOriginalChunks = false) = 0;
00514
-00520 virtual void fitUvToRect(float side, uint32_t chunkId) = 0;
-00521
-00526 virtual void fitAllUvToRect(float side) = 0;
-00527 };
-00528
-00529 } // namespace Blast
-00530 } // namespace Nv
-00531
-00532 #endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H
+00521 virtual bool setApproximateBonding(uint32_t chunkIndex, bool useApproximateBonding) = 0;
+00522
+00528 virtual void fitUvToRect(float side, uint32_t chunkId) = 0;
+00529
+00534 virtual void fitAllUvToRect(float side) = 0;
+00535 };
+00536
+00537 } // namespace Blast
+00538 } // namespace Nv
+00539
+00540 #endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H
-Go to the documentation of this file. 96 uint32_t octaveNumber = 1; 112 int32_t x_slices = 1, y_slices = 1, z_slices = 1; 218 virtual void clusteredSitesGeneration(uint32_t numberOfClusters, uint32_t sitesPerCluster, float clusterRadius) = 0; 230 virtual void radialPattern(const NvcVec3& center, const NvcVec3& normal, float radius, int32_t angularSteps, 239 virtual void generateInSphere(const uint32_t count, const float radius, const NvcVec3& center) = 0; 258 virtual void deleteInSphere(const float radius, const NvcVec3& center, const float eraserProbability = 1) = 0; 327 voronoiFracturing(uint32_t chunkId, uint32_t cellCount, const NvcVec3* cellPoints, bool replaceChunk) = 0; 340 virtual int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, const NvcVec3* cellPoints, 356 slicing(uint32_t chunkId, const SlicingConfiguration& conf, bool replaceChunk, RandomGeneratorBase* rnd) = 0; 385 virtual int32_t cutout(uint32_t chunkId, CutoutConfiguration conf, bool replaceChunk, RandomGeneratorBase* rnd) = 0; 468 getBufferedBaseMeshes(Vertex*& vertexBuffer, uint32_t*& indexBuffer, uint32_t*& indexBufferOffsets) = 0;Definition: NvBlastExtAuthoringFractureTool.h:107
+Go to the documentation of this file. 52 APPROXIMATE_BONDING = 1 // Created by island splitting or chunk merge, etc. and should check for inexact bonds 96 uint32_t octaveNumber = 1; 112 int32_t x_slices = 1, y_slices = 1, z_slices = 1; 218 virtual void clusteredSitesGeneration(uint32_t numberOfClusters, uint32_t sitesPerCluster, float clusterRadius) = 0; 230 virtual void radialPattern(const NvcVec3& center, const NvcVec3& normal, float radius, int32_t angularSteps, 239 virtual void generateInSphere(const uint32_t count, const float radius, const NvcVec3& center) = 0; 258 virtual void deleteInSphere(const float radius, const NvcVec3& center, const float eraserProbability = 1) = 0; 327 voronoiFracturing(uint32_t chunkId, uint32_t cellCount, const NvcVec3* cellPoints, bool replaceChunk) = 0; 340 virtual int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, const NvcVec3* cellPoints, 356 slicing(uint32_t chunkId, const SlicingConfiguration& conf, bool replaceChunk, RandomGeneratorBase* rnd) = 0; 385 virtual int32_t cutout(uint32_t chunkId, CutoutConfiguration conf, bool replaceChunk, RandomGeneratorBase* rnd) = 0; 468 getBufferedBaseMeshes(Vertex*& vertexBuffer, uint32_t*& indexBuffer, uint32_t*& indexBufferOffsets) = 0;Definition: NvBlastExtAuthoringFractureTool.h:107
Definition: NvBlastExtAuthoringFractureTool.h:47
Definition: NvBlastExtAuthoringFractureTool.h:179
-Definition: NvBlastExtAuthoringFractureTool.h:52
NV_INLINE float normal(const float a[3], float r[3])Definition: NvBlastMath.h:93
Definition: NvBlastExtAuthoringCutout.h:36
+Definition: NvBlastExtAuthoringFractureTool.h:52
Definition: NvBlastExtAuthoringFractureTool.h:79
Definition: NvBlastExtAuthoringMesh.h:42
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h-source.html b/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h-source.html
index 4bb26eb1..b413c20c 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h-source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h-source.html
@@ -202,49 +202,51 @@ sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.h
00380 const NvcVec2i* adjChunks, uint32_t adjChunksSize,
00381 bool removeOriginalChunks = false) override;
00382
-00383
-00389 void fitUvToRect(float side, uint32_t chunkId) override;
-00390
-00395 void fitAllUvToRect(float side) override;
-00396
+00383 bool setApproximateBonding(uint32_t chunkId, bool useApproximateBonding) override;
+00384
+00390 void fitUvToRect(float side, uint32_t chunkId) override;
+00391
+00396 void fitAllUvToRect(float side) override;
00397
00398
-00399 private:
-00400 bool isAncestorForChunk(int32_t ancestorId, int32_t chunkId);
-00401 int32_t slicingNoisy(uint32_t chunkId, const SlicingConfiguration& conf, bool replaceChunk, RandomGeneratorBase* rnd);
-00402 uint32_t stretchGroup(const std::vector<uint32_t>& group, std::vector<std::vector<uint32_t>>& graph);
-00403 void rebuildAdjGraph(const std::vector<uint32_t>& chunksToRebuild, const NvcVec2i* adjChunks, uint32_t adjChunksSize,
-00404 std::vector<std::vector<uint32_t> >& chunkGraph);
-00405 void fitAllUvToRect(float side, std::set<uint32_t>& mask);
-00406
-00410 uint32_t createNewChunk(uint32_t parentId);
-00411
-00412
-00413 protected:
-00417 float mScaleFactor;
-00418 NvcVec3 mOffset;
-00419
-00420 /* Chunk mesh wrappers */
-00421 std::vector<Triangulator*> mChunkPostprocessors;
-00422
-00423
-00424
-00425 int64_t mPlaneIndexerOffset;
-00426 int32_t mChunkIdCounter;
-00427 std::vector<ChunkInfo> mChunkData;
-00428
-00429 bool mRemoveIslands;
-00430 int32_t mInteriorMaterialId;
-00431 };
-00432
-00433 void findCellBasePlanes(const std::vector<NvcVec3>& sites, std::vector<std::vector<int32_t> >& neighboors);
-00434 Mesh* getCellMesh(class BooleanEvaluator& eval, int32_t planeIndexerOffset, int32_t cellId, const std::vector<NvcVec3>& sites, std::vector < std::vector<int32_t> >& neighboors, int32_t interiorMaterialId, NvcVec3 origin);
-00435
-00436 } // namespace Blast
-00437 } // namespace Nv
-00438
-00439
-00440 #endif // ifndef NVBLASTAUTHORINGFRACTURETOOLIMPL_H
+00399
+00400 private:
+00401 bool isAncestorForChunk(int32_t ancestorId, int32_t chunkId);
+00402 int32_t slicingNoisy(uint32_t chunkId, const SlicingConfiguration& conf, bool replaceChunk, RandomGeneratorBase* rnd);
+00403 uint32_t stretchGroup(const std::vector<uint32_t>& group, std::vector<std::vector<uint32_t>>& graph);
+00404 void rebuildAdjGraph(const std::vector<uint32_t>& chunksToRebuild, const NvcVec2i* adjChunks, uint32_t adjChunksSize,
+00405 std::vector<std::vector<uint32_t> >& chunkGraph);
+00406 void fitAllUvToRect(float side, std::set<uint32_t>& mask);
+00407 void markLeaves();
+00408
+00412 uint32_t createNewChunk(uint32_t parentId);
+00413
+00414
+00415 protected:
+00419 float mScaleFactor;
+00420 NvcVec3 mOffset;
+00421
+00422 /* Chunk mesh wrappers */
+00423 std::vector<Triangulator*> mChunkPostprocessors;
+00424
+00425
+00426
+00427 int64_t mPlaneIndexerOffset;
+00428 int32_t mChunkIdCounter;
+00429 std::vector<ChunkInfo> mChunkData;
+00430
+00431 bool mRemoveIslands;
+00432 int32_t mInteriorMaterialId;
+00433 };
+00434
+00435 void findCellBasePlanes(const std::vector<NvcVec3>& sites, std::vector<std::vector<int32_t> >& neighboors);
+00436 Mesh* getCellMesh(class BooleanEvaluator& eval, int32_t planeIndexerOffset, int32_t cellId, const std::vector<NvcVec3>& sites, std::vector < std::vector<int32_t> >& neighboors, int32_t interiorMaterialId, NvcVec3 origin);
+00437
+00438 } // namespace Blast
+00439 } // namespace Nv
+00440
+00441
+00442 #endif // ifndef NVBLASTAUTHORINGFRACTURETOOLIMPL_H
-Go to the documentation of this file. 94 void clusteredSitesGeneration(uint32_t numberOfClusters, uint32_t sitesPerCluster, float clusterRadius) override; 106 void radialPattern(const NvcVec3& center, const NvcVec3& normal, float radius, int32_t angularSteps, int32_t radialSteps, float angleOffset = 0.0f, float variability = 0.0f) override; 114 void generateInSphere(const uint32_t count, const float radius, const NvcVec3& center) override; 131 void deleteInSphere(const float radius, const NvcVec3& center, const float eraserProbability = 1) override; 219 int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, const NvcVec3* cellPoints, bool replaceChunk) override; 232 int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, const NvcVec3* cellPoints, const NvcVec3& scale, const NvcQuat& rotation, bool replaceChunk) override; 245 int32_t slicing(uint32_t chunkId, const SlicingConfiguration& conf, bool replaceChunk, RandomGeneratorBase* rnd) override; 260 int32_t cut(uint32_t chunkId, const NvcVec3& normal, const NvcVec3& position, const NoiseConfiguration& noise, bool replaceChunk, RandomGeneratorBase* rnd) override; 272 int32_t cutout(uint32_t chunkId, CutoutConfiguration conf, bool replaceChunk, RandomGeneratorBase* rnd) override; 355 uint32_t getBufferedBaseMeshes(Vertex*& vertexBuffer, uint32_t*& indexBuffer, uint32_t*& indexBufferOffsets) override; 401 int32_t slicingNoisy(uint32_t chunkId, const SlicingConfiguration& conf, bool replaceChunk, RandomGeneratorBase* rnd); 402 uint32_t stretchGroup(const std::vector<uint32_t>& group, std::vector<std::vector<uint32_t>>& graph); 403 void rebuildAdjGraph(const std::vector<uint32_t>& chunksToRebuild, const NvcVec2i* adjChunks, uint32_t adjChunksSize, 433 void findCellBasePlanes(const std::vector<NvcVec3>& sites, std::vector<std::vector<int32_t> >& neighboors); 434 Mesh* getCellMesh(class BooleanEvaluator& eval, int32_t planeIndexerOffset, int32_t cellId, const std::vector<NvcVec3>& sites, std::vector < std::vector<int32_t> >& neighboors, int32_t interiorMaterialId, NvcVec3 origin);Definition: NvBlastExtAuthoringFractureTool.h:107
+Go to the documentation of this file. 94 void clusteredSitesGeneration(uint32_t numberOfClusters, uint32_t sitesPerCluster, float clusterRadius) override; 106 void radialPattern(const NvcVec3& center, const NvcVec3& normal, float radius, int32_t angularSteps, int32_t radialSteps, float angleOffset = 0.0f, float variability = 0.0f) override; 114 void generateInSphere(const uint32_t count, const float radius, const NvcVec3& center) override; 131 void deleteInSphere(const float radius, const NvcVec3& center, const float eraserProbability = 1) override; 219 int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, const NvcVec3* cellPoints, bool replaceChunk) override; 232 int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, const NvcVec3* cellPoints, const NvcVec3& scale, const NvcQuat& rotation, bool replaceChunk) override; 245 int32_t slicing(uint32_t chunkId, const SlicingConfiguration& conf, bool replaceChunk, RandomGeneratorBase* rnd) override; 260 int32_t cut(uint32_t chunkId, const NvcVec3& normal, const NvcVec3& position, const NoiseConfiguration& noise, bool replaceChunk, RandomGeneratorBase* rnd) override; 272 int32_t cutout(uint32_t chunkId, CutoutConfiguration conf, bool replaceChunk, RandomGeneratorBase* rnd) override; 355 uint32_t getBufferedBaseMeshes(Vertex*& vertexBuffer, uint32_t*& indexBuffer, uint32_t*& indexBufferOffsets) override; 402 int32_t slicingNoisy(uint32_t chunkId, const SlicingConfiguration& conf, bool replaceChunk, RandomGeneratorBase* rnd); 403 uint32_t stretchGroup(const std::vector<uint32_t>& group, std::vector<std::vector<uint32_t>>& graph); 404 void rebuildAdjGraph(const std::vector<uint32_t>& chunksToRebuild, const NvcVec2i* adjChunks, uint32_t adjChunksSize, 435 void findCellBasePlanes(const std::vector<NvcVec3>& sites, std::vector<std::vector<int32_t> >& neighboors); 436 Mesh* getCellMesh(class BooleanEvaluator& eval, int32_t planeIndexerOffset, int32_t cellId, const std::vector<NvcVec3>& sites, std::vector < std::vector<int32_t> >& neighboors, int32_t interiorMaterialId, NvcVec3 origin);Definition: NvBlastExtAuthoringFractureTool.h:107
void generateInSphere(const uint32_t count, const float radius, const NvcVec3 ¢er) override
Definition: NvBlastExtAuthoringFractureTool.h:47
uint32_t getVoronoiSites(const NvcVec3 *&sites) override
@@ -57,7 +57,7 @@
Definition: NvBlastExtAuthoringBooleanTool.h:108
NV_INLINE float normal(const float a[3], float r[3])Definition: NvBlastMath.h:93
void setBaseMesh(const Mesh *m) override
-float mScaleFactorDefinition: NvBlastExtAuthoringFractureToolImpl.h:417
+float mScaleFactorDefinition: NvBlastExtAuthoringFractureToolImpl.h:419
Definition: NvBlastExtAuthoringAccelerator.h:47
void clearStencil() override
Definition: NvBlastExtAuthoringFractureTool.h:79
@@ -69,15 +69,15 @@
void uniformlyGenerateSitesInMesh(uint32_t numberOfSites) override
Mesh * getCellMesh(class BooleanEvaluator &eval, int32_t planeIndexerOffset, int32_t cellId, const std::vector< NvcVec3 > &sites, std::vector< std::vector< int32_t > > &neighboors, int32_t interiorMaterialId, NvcVec3 origin)
-int32_t mChunkIdCounterDefinition: NvBlastExtAuthoringFractureToolImpl.h:426
+int32_t mChunkIdCounterDefinition: NvBlastExtAuthoringFractureToolImpl.h:428
Definition: NvCTypes.h:106
const uint32_t kMaterialInteriorIdDefinition: NvBlastExtAuthoringTypes.h:42
-std::vector< ChunkInfo > mChunkDataDefinition: NvBlastExtAuthoringFractureToolImpl.h:427
-std::vector< Triangulator * > mChunkPostprocessorsDefinition: NvBlastExtAuthoringFractureToolImpl.h:421
-NvcVec3 mOffsetDefinition: NvBlastExtAuthoringFractureToolImpl.h:418
+std::vector< ChunkInfo > mChunkDataDefinition: NvBlastExtAuthoringFractureToolImpl.h:429
+std::vector< Triangulator * > mChunkPostprocessorsDefinition: NvBlastExtAuthoringFractureToolImpl.h:423
+NvcVec3 mOffsetDefinition: NvBlastExtAuthoringFractureToolImpl.h:420
Definition: NvBlastExtAuthoringFractureTool.h:133
Definition: NvBlastExtAuthoringTypes.h:79
-int32_t mInteriorMaterialIdDefinition: NvBlastExtAuthoringFractureToolImpl.h:430
+int32_t mInteriorMaterialIdDefinition: NvBlastExtAuthoringFractureToolImpl.h:432
void release() override
Definition: NvBlastExtAuthoringFractureToolImpl.h:48
Definition: NvBlastExtAuthoringFractureToolImpl.h:146
@@ -90,9 +90,9 @@
Definition: NvCTypes.h:49
void clusteredSitesGeneration(uint32_t numberOfClusters, uint32_t sitesPerCluster, float clusterRadius) override
~VoronoiSitesGeneratorImpl()
-int64_t mPlaneIndexerOffsetDefinition: NvBlastExtAuthoringFractureToolImpl.h:425
+int64_t mPlaneIndexerOffsetDefinition: NvBlastExtAuthoringFractureToolImpl.h:427
Definition: NvCTypes.h:61
-bool mRemoveIslandsDefinition: NvBlastExtAuthoringFractureToolImpl.h:429
+bool mRemoveIslandsDefinition: NvBlastExtAuthoringFractureToolImpl.h:431
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h-source.html b/docs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h-source.html
index d75d734a..20d4de31 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h-source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h-source.html
@@ -67,227 +67,269 @@ sdk/extensions/authoringCommon/source/NvBlastExtAuthoringInternalCommon.h00029 #ifndef NVBLASTINTERNALCOMMON_H
00030 #define NVBLASTINTERNALCOMMON_H
00031 #include "NvBlastExtAuthoringTypes.h"
-00032 #include <PxVec2.h>
-00033 #include <PxVec3.h>
-00034 #include <PxPlane.h>
-00035 #include <PxBounds3.h>
-00036 #include <PxMath.h>
-00037 #include <algorithm>
-00038
-00039 namespace Nv
-00040 {
-00041 namespace Blast
-00042 {
-00043
-00047 struct EdgeWithParent
-00048 {
-00049 uint32_t s, e; // Starting and ending vertices
-00050 uint32_t parent; // Parent facet index
-00051 EdgeWithParent() : s(0), e(0), parent(0) {}
-00052 EdgeWithParent(uint32_t s, uint32_t e, uint32_t p) : s(s), e(e), parent(p) {}
-00053 };
-00054
+00032 #include "NvBlastPxSharedHelpers.h"
+00033 #include <PxVec2.h>
+00034 #include <PxVec3.h>
+00035 #include <PxPlane.h>
+00036 #include <PxBounds3.h>
+00037 #include <PxMath.h>
+00038 #include <algorithm>
+00039
+00040 namespace Nv
+00041 {
+00042 namespace Blast
+00043 {
+00044
+00048 struct EdgeWithParent
+00049 {
+00050 uint32_t s, e; // Starting and ending vertices
+00051 uint32_t parent; // Parent facet index
+00052 EdgeWithParent() : s(0), e(0), parent(0) {}
+00053 EdgeWithParent(uint32_t s, uint32_t e, uint32_t p) : s(s), e(e), parent(p) {}
+00054 };
00055
-00059 struct EdgeComparator
-00060 {
-00061 bool operator()(const EdgeWithParent& a, const EdgeWithParent& b) const
-00062 {
-00063 if (a.parent == b.parent)
-00064 {
-00065 if (a.s == b.s)
-00066 {
-00067 return a.e < b.e;
-00068 }
-00069 else
-00070 {
-00071 return a.s < b.s;
-00072 }
-00073 }
-00074 else
-00075 {
-00076 return a.parent < b.parent;
-00077 }
-00078 }
-00079 };
-00080
-00081 inline bool operator<(const Edge& a, const Edge& b)
-00082 {
-00083 if (a.s == b.s)
-00084 return a.e < b.e;
-00085 else
-00086 return a.s < b.s;
-00087 }
-00088
-00092 enum ProjectionDirections
-00093 {
-00094 YZ_PLANE = 1 << 1,
-00095 XY_PLANE = 1 << 2,
-00096 ZX_PLANE = 1 << 3,
-00097
-00098 OPPOSITE_WINDING = 1 << 4
-00099 };
-00100
-00104 NV_FORCE_INLINE ProjectionDirections getProjectionDirection(const physx::PxVec3& normal)
-00105 {
-00106 float maxv = std::max(std::abs(normal.x), std::max(std::abs(normal.y), std::abs(normal.z)));
-00107 ProjectionDirections retVal;
-00108 if (maxv == std::abs(normal.x))
-00109 {
-00110 retVal = YZ_PLANE;
-00111 if (normal.x < 0) retVal = (ProjectionDirections)((int)retVal | (int)OPPOSITE_WINDING);
-00112 return retVal;
-00113 }
-00114 if (maxv == std::abs(normal.y))
-00115 {
-00116 retVal = ZX_PLANE;
-00117 if (normal.y > 0) retVal = (ProjectionDirections)((int)retVal | (int)OPPOSITE_WINDING);
-00118 return retVal;
-00119 }
-00120 retVal = XY_PLANE;
-00121 if (normal.z < 0) retVal = (ProjectionDirections)((int)retVal | (int)OPPOSITE_WINDING);
-00122 return retVal;
-00123 }
-00124
+00056
+00060 struct EdgeComparator
+00061 {
+00062 bool operator()(const EdgeWithParent& a, const EdgeWithParent& b) const
+00063 {
+00064 if (a.parent == b.parent)
+00065 {
+00066 if (a.s == b.s)
+00067 {
+00068 return a.e < b.e;
+00069 }
+00070 else
+00071 {
+00072 return a.s < b.s;
+00073 }
+00074 }
+00075 else
+00076 {
+00077 return a.parent < b.parent;
+00078 }
+00079 }
+00080 };
+00081
+00082 inline bool operator<(const Edge& a, const Edge& b)
+00083 {
+00084 if (a.s == b.s)
+00085 return a.e < b.e;
+00086 else
+00087 return a.s < b.s;
+00088 }
+00089
+00093 enum ProjectionDirections
+00094 {
+00095 YZ_PLANE = 1 << 1,
+00096 XY_PLANE = 1 << 2,
+00097 ZX_PLANE = 1 << 3,
+00098
+00099 OPPOSITE_WINDING = 1 << 4
+00100 };
+00101
+00105 NV_FORCE_INLINE ProjectionDirections getProjectionDirection(const physx::PxVec3& normal)
+00106 {
+00107 float maxv = std::max(std::abs(normal.x), std::max(std::abs(normal.y), std::abs(normal.z)));
+00108 ProjectionDirections retVal;
+00109 if (maxv == std::abs(normal.x))
+00110 {
+00111 retVal = YZ_PLANE;
+00112 if (normal.x < 0) retVal = (ProjectionDirections)((int)retVal | (int)OPPOSITE_WINDING);
+00113 return retVal;
+00114 }
+00115 if (maxv == std::abs(normal.y))
+00116 {
+00117 retVal = ZX_PLANE;
+00118 if (normal.y > 0) retVal = (ProjectionDirections)((int)retVal | (int)OPPOSITE_WINDING);
+00119 return retVal;
+00120 }
+00121 retVal = XY_PLANE;
+00122 if (normal.z < 0) retVal = (ProjectionDirections)((int)retVal | (int)OPPOSITE_WINDING);
+00123 return retVal;
+00124 }
00125
-00129 NV_FORCE_INLINE physx::PxVec2 getProjectedPoint(const physx::PxVec3& point, ProjectionDirections dir)
-00130 {
-00131 if (dir & YZ_PLANE)
-00132 {
-00133 return physx::PxVec2(point.y, point.z);
-00134 }
-00135 if (dir & ZX_PLANE)
-00136 {
-00137 return physx::PxVec2(point.x, point.z);
-00138 }
-00139 return physx::PxVec2(point.x, point.y);
-00140 }
-00141
-00142 NV_FORCE_INLINE physx::PxVec2 getProjectedPoint(const NvcVec3& point, ProjectionDirections dir)
-00143 {
-00144 return getProjectedPoint((const physx::PxVec3&)point, dir);
-00145 }
-00146
-00150 NV_FORCE_INLINE physx::PxVec2 getProjectedPointWithWinding(const physx::PxVec3& point, ProjectionDirections dir)
-00151 {
-00152 if (dir & YZ_PLANE)
-00153 {
-00154 if (dir & OPPOSITE_WINDING)
-00155 {
-00156 return physx::PxVec2(point.z, point.y);
-00157 }
-00158 else
-00159 return physx::PxVec2(point.y, point.z);
-00160 }
-00161 if (dir & ZX_PLANE)
-00162 {
-00163 if (dir & OPPOSITE_WINDING)
-00164 {
-00165 return physx::PxVec2(point.z, point.x);
-00166 }
-00167 return physx::PxVec2(point.x, point.z);
-00168 }
-00169 if (dir & OPPOSITE_WINDING)
-00170 {
-00171 return physx::PxVec2(point.y, point.x);
-00172 }
-00173 return physx::PxVec2(point.x, point.y);
-00174 }
-00175
+00126
+00130 NV_FORCE_INLINE physx::PxVec2 getProjectedPoint(const physx::PxVec3& point, ProjectionDirections dir)
+00131 {
+00132 if (dir & YZ_PLANE)
+00133 {
+00134 return physx::PxVec2(point.y, point.z);
+00135 }
+00136 if (dir & ZX_PLANE)
+00137 {
+00138 return physx::PxVec2(point.x, point.z);
+00139 }
+00140 return physx::PxVec2(point.x, point.y);
+00141 }
+00142
+00143 NV_FORCE_INLINE physx::PxVec2 getProjectedPoint(const NvcVec3& point, ProjectionDirections dir)
+00144 {
+00145 return getProjectedPoint((const physx::PxVec3&)point, dir);
+00146 }
+00147
+00151 NV_FORCE_INLINE physx::PxVec2 getProjectedPointWithWinding(const physx::PxVec3& point, ProjectionDirections dir)
+00152 {
+00153 if (dir & YZ_PLANE)
+00154 {
+00155 if (dir & OPPOSITE_WINDING)
+00156 {
+00157 return physx::PxVec2(point.z, point.y);
+00158 }
+00159 else
+00160 return physx::PxVec2(point.y, point.z);
+00161 }
+00162 if (dir & ZX_PLANE)
+00163 {
+00164 if (dir & OPPOSITE_WINDING)
+00165 {
+00166 return physx::PxVec2(point.z, point.x);
+00167 }
+00168 return physx::PxVec2(point.x, point.z);
+00169 }
+00170 if (dir & OPPOSITE_WINDING)
+00171 {
+00172 return physx::PxVec2(point.y, point.x);
+00173 }
+00174 return physx::PxVec2(point.x, point.y);
+00175 }
00176
00177
-00178 #define MAXIMUM_EXTENT 1000 * 1000 * 1000
-00179 #define BBOX_TEST_EPS 1e-5f
-00180
-00184 NV_INLINE bool weakBoundingBoxIntersection(const physx::PxBounds3& aBox, const physx::PxBounds3& bBox)
-00185 {
-00186 if (std::max(aBox.minimum.x, bBox.minimum.x) > std::min(aBox.maximum.x, bBox.maximum.x) + BBOX_TEST_EPS)
-00187 return false;
-00188 if (std::max(aBox.minimum.y, bBox.minimum.y) > std::min(aBox.maximum.y, bBox.maximum.y) + BBOX_TEST_EPS)
-00189 return false;
-00190 if (std::max(aBox.minimum.z, bBox.minimum.z) > std::min(aBox.maximum.z, bBox.maximum.z) + BBOX_TEST_EPS)
-00191 return false;
-00192 return true;
-00193 }
-00194
+00178
+00179 #define MAXIMUM_EXTENT 1000 * 1000 * 1000
+00180 #define BBOX_TEST_EPS 1e-5f
+00181
+00185 NV_INLINE bool weakBoundingBoxIntersection(const physx::PxBounds3& aBox, const physx::PxBounds3& bBox)
+00186 {
+00187 if (std::max(aBox.minimum.x, bBox.minimum.x) > std::min(aBox.maximum.x, bBox.maximum.x) + BBOX_TEST_EPS)
+00188 return false;
+00189 if (std::max(aBox.minimum.y, bBox.minimum.y) > std::min(aBox.maximum.y, bBox.maximum.y) + BBOX_TEST_EPS)
+00190 return false;
+00191 if (std::max(aBox.minimum.z, bBox.minimum.z) > std::min(aBox.maximum.z, bBox.maximum.z) + BBOX_TEST_EPS)
+00192 return false;
+00193 return true;
+00194 }
00195
00196
-00200 NV_INLINE bool getPlaneSegmentIntersection(const physx::PxPlane& pl, const physx::PxVec3& a, const physx::PxVec3& b,
-00201 physx::PxVec3& result)
-00202 {
-00203 float div = (b - a).dot(pl.n);
-00204 if (physx::PxAbs(div) < 0.0001f)
-00205 {
-00206 if (pl.contains(a))
-00207 {
-00208 result = a;
-00209 return true;
-00210 }
-00211 else
-00212 {
-00213 return false;
-00214 }
-00215 }
-00216 float t = (-a.dot(pl.n) - pl.d) / div;
-00217 if (t < 0.0f || t > 1.0f)
-00218 {
-00219 return false;
-00220 }
-00221 result = (b - a) * t + a;
-00222 return true;
-00223 }
-00224
+00197
+00201 NV_INLINE bool getPlaneSegmentIntersection(const physx::PxPlane& pl, const physx::PxVec3& a, const physx::PxVec3& b,
+00202 physx::PxVec3& result)
+00203 {
+00204 float div = (b - a).dot(pl.n);
+00205 if (physx::PxAbs(div) < 0.0001f)
+00206 {
+00207 if (pl.contains(a))
+00208 {
+00209 result = a;
+00210 return true;
+00211 }
+00212 else
+00213 {
+00214 return false;
+00215 }
+00216 }
+00217 float t = (-a.dot(pl.n) - pl.d) / div;
+00218 if (t < 0.0f || t > 1.0f)
+00219 {
+00220 return false;
+00221 }
+00222 result = (b - a) * t + a;
+00223 return true;
+00224 }
00225
-00226 #define POS_COMPARISON_OFFSET 1e-5f
-00227 #define NORM_COMPARISON_OFFSET 1e-3f
-00228
-00231 struct VrtComp
-00232 {
-00233 bool operator()(const Vertex& a, const Vertex& b) const
-00234 {
-00235 if (a.p.x + POS_COMPARISON_OFFSET < b.p.x) return true;
-00236 if (a.p.x - POS_COMPARISON_OFFSET > b.p.x) return false;
-00237 if (a.p.y + POS_COMPARISON_OFFSET < b.p.y) return true;
-00238 if (a.p.y - POS_COMPARISON_OFFSET > b.p.y) return false;
-00239 if (a.p.z + POS_COMPARISON_OFFSET < b.p.z) return true;
-00240 if (a.p.z - POS_COMPARISON_OFFSET > b.p.z) return false;
-00241
-00242 if (a.n.x + NORM_COMPARISON_OFFSET < b.n.x) return true;
-00243 if (a.n.x - NORM_COMPARISON_OFFSET > b.n.x) return false;
-00244 if (a.n.y + NORM_COMPARISON_OFFSET < b.n.y) return true;
-00245 if (a.n.y - NORM_COMPARISON_OFFSET > b.n.y) return false;
-00246 if (a.n.z + NORM_COMPARISON_OFFSET < b.n.z) return true;
-00247 if (a.n.z - NORM_COMPARISON_OFFSET > b.n.z) return false;
-00248
+00226
+00227 #define POS_COMPARISON_OFFSET 1e-5f
+00228 #define NORM_COMPARISON_OFFSET 1e-3f
+00229
+00232 struct VrtComp
+00233 {
+00234 bool operator()(const Vertex& a, const Vertex& b) const
+00235 {
+00236 if (a.p.x + POS_COMPARISON_OFFSET < b.p.x) return true;
+00237 if (a.p.x - POS_COMPARISON_OFFSET > b.p.x) return false;
+00238 if (a.p.y + POS_COMPARISON_OFFSET < b.p.y) return true;
+00239 if (a.p.y - POS_COMPARISON_OFFSET > b.p.y) return false;
+00240 if (a.p.z + POS_COMPARISON_OFFSET < b.p.z) return true;
+00241 if (a.p.z - POS_COMPARISON_OFFSET > b.p.z) return false;
+00242
+00243 if (a.n.x + NORM_COMPARISON_OFFSET < b.n.x) return true;
+00244 if (a.n.x - NORM_COMPARISON_OFFSET > b.n.x) return false;
+00245 if (a.n.y + NORM_COMPARISON_OFFSET < b.n.y) return true;
+00246 if (a.n.y - NORM_COMPARISON_OFFSET > b.n.y) return false;
+00247 if (a.n.z + NORM_COMPARISON_OFFSET < b.n.z) return true;
+00248 if (a.n.z - NORM_COMPARISON_OFFSET > b.n.z) return false;
00249
-00250 if (a.uv[0].x + NORM_COMPARISON_OFFSET < b.uv[0].x) return true;
-00251 if (a.uv[0].x - NORM_COMPARISON_OFFSET > b.uv[0].x) return false;
-00252 if (a.uv[0].y + NORM_COMPARISON_OFFSET < b.uv[0].y) return true;
-00253 return false;
-00254 };
-00255 };
-00256
-00260 struct VrtPositionComparator
-00261 {
-00262 bool operator()(const NvcVec3& a, const NvcVec3& b) const
-00263 {
-00264 if (a.x + POS_COMPARISON_OFFSET < b.x) return true;
-00265 if (a.x - POS_COMPARISON_OFFSET > b.x) return false;
-00266 if (a.y + POS_COMPARISON_OFFSET < b.y) return true;
-00267 if (a.y - POS_COMPARISON_OFFSET > b.y) return false;
-00268 if (a.z + POS_COMPARISON_OFFSET < b.z) return true;
-00269 if (a.z - POS_COMPARISON_OFFSET > b.z) return false;
-00270 return false;
-00271 };
-00272 bool operator()(const Vertex& a, const Vertex& b) const
-00273 {
-00274 return operator()(a.p, b.p);
-00275 };
-00276 };
-00277
-00278 } // namespace Blast
-00279 } // namespace Nv
-00280
-00281 #endif
+00250
+00251 if (a.uv[0].x + NORM_COMPARISON_OFFSET < b.uv[0].x) return true;
+00252 if (a.uv[0].x - NORM_COMPARISON_OFFSET > b.uv[0].x) return false;
+00253 if (a.uv[0].y + NORM_COMPARISON_OFFSET < b.uv[0].y) return true;
+00254 return false;
+00255 };
+00256 };
+00257
+00261 struct VrtPositionComparator
+00262 {
+00263 bool operator()(const NvcVec3& a, const NvcVec3& b) const
+00264 {
+00265 if (a.x + POS_COMPARISON_OFFSET < b.x) return true;
+00266 if (a.x - POS_COMPARISON_OFFSET > b.x) return false;
+00267 if (a.y + POS_COMPARISON_OFFSET < b.y) return true;
+00268 if (a.y - POS_COMPARISON_OFFSET > b.y) return false;
+00269 if (a.z + POS_COMPARISON_OFFSET < b.z) return true;
+00270 if (a.z - POS_COMPARISON_OFFSET > b.z) return false;
+00271 return false;
+00272 };
+00273 bool operator()(const Vertex& a, const Vertex& b) const
+00274 {
+00275 return operator()(a.p, b.p);
+00276 };
+00277 };
+00278
+00279
+00280 NV_INLINE float calculateCollisionHullVolume(const CollisionHull& hull)
+00281 {
+00282 if (hull.pointsCount == 0)
+00283 {
+00284 return 0.0f;
+00285 }
+00286
+00287 // Find an approximate centroid for a more accurate calculation
+00288 NvcVec3 centroid = { 0.0f, 0.0f, 0.0f };
+00289 for (uint32_t i = 0; i < hull.pointsCount; ++i)
+00290 {
+00291 centroid = centroid + hull.points[i];
+00292 }
+00293 centroid = centroid / hull.pointsCount;
+00294
+00295 float volume = 0.0f;
+00296
+00297 for (uint32_t i = 0; i < hull.polygonDataCount; ++i)
+00298 {
+00299 const HullPolygon& poly = hull.polygonData[i];
+00300 if (poly.vertexCount < 3)
+00301 {
+00302 continue;
+00303 }
+00304 const uint32_t i0 = hull.indices[poly.indexBase];
+00305 uint32_t i1 = hull.indices[poly.indexBase + 1];
+00306 for (uint32_t j = 2; j < poly.vertexCount; ++j)
+00307 {
+00308 const uint32_t i2 = hull.indices[poly.indexBase + j];
+00309 const NvcVec3 a = hull.points[i0] - centroid;
+00310 const NvcVec3 b = hull.points[i1] - centroid;
+00311 const NvcVec3 c = hull.points[i2] - centroid;
+00312 volume +=
+00313 (a.x * b.y * c.z - a.x * b.z * c.y - a.y * b.x * c.z + a.y * b.z * c.x + a.z * b.x * c.y - a.z * b.y * c.x);
+00314 i1 = i2;
+00315 }
+00316 }
+00317 return (1.0f / 6.0f) * std::abs(volume);
+00318 }
+00319
+00320 } // namespace Blast
+00321 } // namespace Nv
+00322
+00323 #endif
sdk/extensions/authoringCommon/source/NvBlastExtAuthoringInternalCommon.h File Reference
#include "NvBlastExtAuthoringTypes.h"
+#include "NvBlastPxSharedHelpers.h"
#include <PxVec2.h>
#include <PxVec3.h>
#include <PxPlane.h>
@@ -80,6 +81,8 @@ sdk/extensions/authoringCommon/source/NvBlastExtAuthoringInternalCommon.h Fi
}
Functions
+NV_INLINE float Nv::Blast::calculateCollisionHullVolume (const CollisionHull &hull)
+
NV_INLINE bool Nv::Blast::getPlaneSegmentIntersection (const physx::PxPlane &pl, const physx::PxVec3 &a, const physx::PxVec3 &b, physx::PxVec3 &result)
NV_FORCE_INLINE physx::PxVec2 Nv::Blast::getProjectedPoint (const NvcVec3 &point, ProjectionDirections dir)
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h.js b/docs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h.js
index 6af0abf1..868c7526 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h.js
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h.js
@@ -14,6 +14,7 @@ var _nv_blast_ext_authoring_internal_common_8h =
[ "ZX_PLANE", "_nv_blast_ext_authoring_internal_common_8h.html#a2dbf0cc037620db35223513e817444f7a34e384d7641d38d0e6f9e601f5d868ac", null ],
[ "OPPOSITE_WINDING", "_nv_blast_ext_authoring_internal_common_8h.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152", null ]
] ],
+ [ "calculateCollisionHullVolume", "_nv_blast_ext_authoring_internal_common_8h.html#ad7f758469903c6a753a827ee1525a1e8", null ],
[ "getPlaneSegmentIntersection", "_nv_blast_ext_authoring_internal_common_8h.html#a7bba8d1f555e341010029032391276a6", null ],
[ "getProjectedPoint", "_nv_blast_ext_authoring_internal_common_8h.html#a44d0b01b83d001724a34646ec96d17f0", null ],
[ "getProjectedPoint", "_nv_blast_ext_authoring_internal_common_8h.html#a07798b57f728802d367a7efbea3ce3a7", null ],
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h_source.html
index 7e838699..d78bd769 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_internal_common_8h_source.html
@@ -46,53 +46,64 @@
NvBlastExtAuthoringInternalCommon.h
-Go to the documentation of this file. 129 NV_FORCE_INLINE physx::PxVec2 getProjectedPoint(const physx::PxVec3& point, ProjectionDirections dir) 150 NV_FORCE_INLINE physx::PxVec2 getProjectedPointWithWinding(const physx::PxVec3& point, ProjectionDirections dir) 184 NV_INLINE bool weakBoundingBoxIntersection(const physx::PxBounds3& aBox, const physx::PxBounds3& bBox) 186 if (std::max(aBox.minimum.x, bBox.minimum.x) > std::min(aBox.maximum.x, bBox.maximum.x) + BBOX_TEST_EPS) 188 if (std::max(aBox.minimum.y, bBox.minimum.y) > std::min(aBox.maximum.y, bBox.maximum.y) + BBOX_TEST_EPS) 190 if (std::max(aBox.minimum.z, bBox.minimum.z) > std::min(aBox.maximum.z, bBox.maximum.z) + BBOX_TEST_EPS) 200 NV_INLINE bool getPlaneSegmentIntersection(const physx::PxPlane& pl, const physx::PxVec3& a, const physx::PxVec3& b,bool operator()(const Vertex &a, const Vertex &b) constDefinition: NvBlastExtAuthoringInternalCommon.h:272
-ProjectionDirectionsDefinition: NvBlastExtAuthoringInternalCommon.h:92
+Go to the documentation of this file. 130 NV_FORCE_INLINE physx::PxVec2 getProjectedPoint(const physx::PxVec3& point, ProjectionDirections dir) 151 NV_FORCE_INLINE physx::PxVec2 getProjectedPointWithWinding(const physx::PxVec3& point, ProjectionDirections dir) 185 NV_INLINE bool weakBoundingBoxIntersection(const physx::PxBounds3& aBox, const physx::PxBounds3& bBox) 187 if (std::max(aBox.minimum.x, bBox.minimum.x) > std::min(aBox.maximum.x, bBox.maximum.x) + BBOX_TEST_EPS) 189 if (std::max(aBox.minimum.y, bBox.minimum.y) > std::min(aBox.maximum.y, bBox.maximum.y) + BBOX_TEST_EPS) 191 if (std::max(aBox.minimum.z, bBox.minimum.z) > std::min(aBox.maximum.z, bBox.maximum.z) + BBOX_TEST_EPS) 201 NV_INLINE bool getPlaneSegmentIntersection(const physx::PxPlane& pl, const physx::PxVec3& a, const physx::PxVec3& b, 313 (a.x * b.y * c.z - a.x * b.z * c.y - a.y * b.x * c.z + a.y * b.z * c.x + a.z * b.x * c.y - a.z * b.y * c.x);bool operator()(const Vertex &a, const Vertex &b) constDefinition: NvBlastExtAuthoringInternalCommon.h:273
+ProjectionDirectionsDefinition: NvBlastExtAuthoringInternalCommon.h:93
-
-Definition: NvBlastExtAuthoringInternalCommon.h:94
-Definition: NvBlastExtAuthoringInternalCommon.h:95
-#define NORM_COMPARISON_OFFSETDefinition: NvBlastExtAuthoringInternalCommon.h:227
+
+
+Definition: NvBlastExtAuthoringInternalCommon.h:95
+Definition: NvBlastExtAuthoringInternalCommon.h:96
+#define NORM_COMPARISON_OFFSETDefinition: NvBlastExtAuthoringInternalCommon.h:228
NV_INLINE float normal(const float a[3], float r[3])Definition: NvBlastMath.h:93
-Definition: NvBlastExtAuthoringInternalCommon.h:47
+Definition: NvBlastExtAuthoringInternalCommon.h:48
-Definition: NvBlastExtAuthoringInternalCommon.h:59
+Definition: NvBlastExtAuthoringInternalCommon.h:60
+
-
-bool operator<(const Edge &a, const Edge &b)Definition: NvBlastExtAuthoringInternalCommon.h:81
-
+
+
+bool operator<(const Edge &a, const Edge &b)Definition: NvBlastExtAuthoringInternalCommon.h:82
+NV_INLINE float calculateCollisionHullVolume(const CollisionHull &hull)Definition: NvBlastExtAuthoringInternalCommon.h:280
+
+HullPolygon * polygonDataDefinition: NvBlastExtAuthoringTypes.h:140
+Definition: NvBlastExtAuthoringTypes.h:120
-Definition: NvBlastExtAuthoringInternalCommon.h:98
+Definition: NvBlastExtAuthoringInternalCommon.h:99
+Definition: NvBlastExtAuthoringTypes.h:133
-bool operator()(const Vertex &a, const Vertex &b) constDefinition: NvBlastExtAuthoringInternalCommon.h:233
-Definition: NvBlastExtAuthoringInternalCommon.h:96
+bool operator()(const Vertex &a, const Vertex &b) constDefinition: NvBlastExtAuthoringInternalCommon.h:234
+Definition: NvBlastExtAuthoringInternalCommon.h:97
-Definition: NvBlastExtAuthoringInternalCommon.h:231
+Definition: NvBlastExtAuthoringInternalCommon.h:232
+
+
-Definition: NvBlastExtAuthoringInternalCommon.h:260
-NV_FORCE_INLINE physx::PxVec2 getProjectedPointWithWinding(const physx::PxVec3 &point, ProjectionDirections dir)Definition: NvBlastExtAuthoringInternalCommon.h:150
-
-bool operator()(const NvcVec3 &a, const NvcVec3 &b) constDefinition: NvBlastExtAuthoringInternalCommon.h:262
+Definition: NvBlastExtAuthoringInternalCommon.h:261
+NV_FORCE_INLINE physx::PxVec2 getProjectedPointWithWinding(const physx::PxVec3 &point, ProjectionDirections dir)Definition: NvBlastExtAuthoringInternalCommon.h:151
+
+bool operator()(const NvcVec3 &a, const NvcVec3 &b) constDefinition: NvBlastExtAuthoringInternalCommon.h:263
+uint32_t polygonDataCountDefinition: NvBlastExtAuthoringTypes.h:137
NV_INLINE float dot(const float a[3], const float b[3])Definition: NvBlastMath.h:73
-EdgeWithParent(uint32_t s, uint32_t e, uint32_t p)Definition: NvBlastExtAuthoringInternalCommon.h:52
-NV_FORCE_INLINE ProjectionDirections getProjectionDirection(const physx::PxVec3 &normal)Definition: NvBlastExtAuthoringInternalCommon.h:104
-NV_INLINE bool weakBoundingBoxIntersection(const physx::PxBounds3 &aBox, const physx::PxBounds3 &bBox)Definition: NvBlastExtAuthoringInternalCommon.h:184
-#define POS_COMPARISON_OFFSETDefinition: NvBlastExtAuthoringInternalCommon.h:226
+EdgeWithParent(uint32_t s, uint32_t e, uint32_t p)Definition: NvBlastExtAuthoringInternalCommon.h:53
+NV_FORCE_INLINE ProjectionDirections getProjectionDirection(const physx::PxVec3 &normal)Definition: NvBlastExtAuthoringInternalCommon.h:105
+NV_INLINE bool weakBoundingBoxIntersection(const physx::PxBounds3 &aBox, const physx::PxBounds3 &bBox)Definition: NvBlastExtAuthoringInternalCommon.h:185
+#define POS_COMPARISON_OFFSETDefinition: NvBlastExtAuthoringInternalCommon.h:227
Definition: NvBlastExtAuthoringTypes.h:57
-NV_INLINE bool getPlaneSegmentIntersection(const physx::PxPlane &pl, const physx::PxVec3 &a, const physx::PxVec3 &b, physx::PxVec3 &result)Definition: NvBlastExtAuthoringInternalCommon.h:200
+NV_INLINE bool getPlaneSegmentIntersection(const physx::PxPlane &pl, const physx::PxVec3 &a, const physx::PxVec3 &b, physx::PxVec3 &result)Definition: NvBlastExtAuthoringInternalCommon.h:201
Definition: NvBlastExtAuthoringTypes.h:67
-NV_FORCE_INLINE physx::PxVec2 getProjectedPoint(const physx::PxVec3 &point, ProjectionDirections dir)Definition: NvBlastExtAuthoringInternalCommon.h:129
-bool operator()(const EdgeWithParent &a, const EdgeWithParent &b) constDefinition: NvBlastExtAuthoringInternalCommon.h:61
+NV_FORCE_INLINE physx::PxVec2 getProjectedPoint(const physx::PxVec3 &point, ProjectionDirections dir)Definition: NvBlastExtAuthoringInternalCommon.h:130
+bool operator()(const EdgeWithParent &a, const EdgeWithParent &b) constDefinition: NvBlastExtAuthoringInternalCommon.h:62
+
Definition: NvBlastArray.h:37
Definition: NvCTypes.h:49
-EdgeWithParent()Definition: NvBlastExtAuthoringInternalCommon.h:51
+EdgeWithParent()Definition: NvBlastExtAuthoringInternalCommon.h:52
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_triangulator_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_triangulator_8h_source.html
index 2cde922c..19783dc9 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_triangulator_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_triangulator_8h_source.html
@@ -46,10 +46,10 @@
NvBlastExtAuthoringTriangulator.h
-Go to the documentation of this file. 132 void triangulatePolygonWithEarClipping(std::vector<uint32_t>& inputPolygon, Vertex* vert, ProjectionDirections dir); 133 void buildPolygonAndTriangulate(std::vector<Edge>& edges, Vertex* vertices, int32_t userData, int32_t materialId, int32_t smoothingGroup);ProjectionDirectionsDefinition: NvBlastExtAuthoringInternalCommon.h:92
+Go to the documentation of this file. 132 void triangulatePolygonWithEarClipping(std::vector<uint32_t>& inputPolygon, Vertex* vert, ProjectionDirections dir); 133 void buildPolygonAndTriangulate(std::vector<Edge>& edges, Vertex* vertices, int32_t userData, int32_t materialId, int32_t smoothingGroup);ProjectionDirectionsDefinition: NvBlastExtAuthoringInternalCommon.h:93
std::vector< int32_t > & getPositionedMapping()Definition: NvBlastExtAuthoringTriangulator.h:88
std::vector< Triangle > & getBaseMeshNotFitted()Definition: NvBlastExtAuthoringTriangulator.h:65
-Definition: NvBlastExtAuthoringInternalCommon.h:47
+Definition: NvBlastExtAuthoringInternalCommon.h:48
std::vector< uint32_t > & getBaseMapping()Definition: NvBlastExtAuthoringTriangulator.h:81
uint32_t getWeldedVerticesCount()Definition: NvBlastExtAuthoringTriangulator.h:95
diff --git a/docs/source_docs/files/_nv_blast_ext_r_t_geometry_8h_source.html b/docs/source_docs/files/_nv_blast_ext_r_t_geometry_8h_source.html
index dbb90b42..922e8d0b 100644
--- a/docs/source_docs/files/_nv_blast_ext_r_t_geometry_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_ext_r_t_geometry_8h_source.html
@@ -47,7 +47,7 @@
Go to the documentation of this file. 22 typedef int32_t (VertexWelding::*LOCATE_CALLBACK)(const Vertex& v, uint32_t bucket, bool& isAllDataTheSame); 24 VertexWelding(uint32_t maxVertexCount, uint32_t maxBucketCount, float gridCellSize, float weldEpsilon, float auxEpsilon, LOCATE_CALLBACK clb); 39 int32_t LocateVertexInBucketOnlyPosition(const Vertex& v, uint32_t bucket, bool& isAllDataTheSame); 114 void makeFacetFacetTests(BooleanToolOutputData* outputData, int32_t threadId, int32_t threadCount); 134 int32_t(BooleanToolV2::*computeV3)(const physx::PxVec3&), int32_t btC, int32_t btCI, int32_t parentFacetOffset, 187 uint32_t build(const BooleanResultEdge* edges, uint32_t inEdgeCount, const Vertex* inVertices, Vertex* outWeldedVrts, uint32_t& vcount, uint32_t* outTriangles, PerTriangleAdditionalData* adata, uint32_t maxTcount, const Mesh* ma, const Mesh* mb);Definition: NvBlastExtRTGeometry.h:18
-ProjectionDirectionsDefinition: NvBlastExtAuthoringInternalCommon.h:92
+ProjectionDirectionsDefinition: NvBlastExtAuthoringInternalCommon.h:93
int32_t WeldVertex(const Vertex *v)
Definition: NvBlastExtRT.h:68
uint32_t * triangleIndicesDefinition: NvBlastExtRTGeometry.h:198
diff --git a/docs/source_docs/files/_nv_blast_family_8h_source.html b/docs/source_docs/files/_nv_blast_family_8h_source.html
index 34d40037..cd774178 100755
--- a/docs/source_docs/files/_nv_blast_family_8h_source.html
+++ b/docs/source_docs/files/_nv_blast_family_8h_source.html
@@ -54,7 +54,7 @@
void fractureNoEvents(uint32_t chunkFractureCount, const NvBlastChunkFractureData *chunkFractures, Actor *filterActor, NvBlastLog logFn)
bool isActorActive(uint32_t index) constDefinition: NvBlastFamily.h:367
uint32_t getGetNodeActorIndex(uint32_t nodeIndex) constDefinition: NvBlastFamily.h:397
-
+
void(* NvBlastLog)(int type, const char *msg, const char *file, int line)Definition: NvBlastTypes.h:63
@@ -70,7 +70,7 @@
Definition: NvBlastTypes.h:98
uint32_t getActorBufferSize() constDefinition: NvBlastFamily.h:360
-uint32_t m_firstSubsupportChunkIndexDefinition: NvBlastAsset.h:206
+uint32_t m_firstSubsupportChunkIndexDefinition: NvBlastAsset.h:207
Actor * getActorByIndex(uint32_t index) constDefinition: NvBlastFamily.h:374
@@ -80,19 +80,19 @@
Definition: NvBlastTypes.h:69
-uint32_t getLowerSupportChunkCount() constDefinition: NvBlastAsset.h:270
+uint32_t getLowerSupportChunkCount() constDefinition: NvBlastAsset.h:271
Definition: NvBlastTypes.h:152
Definition: NvBlastTypes.h:439
NvBlastBlockData(FamilyGraph, m_familyGraphOffset, getFamilyGraph)
float * getSubsupportChunkHealths() constDefinition: NvBlastFamily.h:113
-
+
Definition: NvBlastTypes.h:286
Definition: NvBlastTypes.h:468
Definition: NvBlastActor.h:58
uint64_t m_runtimePlaceholderDefinition: NvBlastFamily.h:149
-uint32_t getUpperSupportChunkCount() constDefinition: NvBlastAsset.h:264
+uint32_t getUpperSupportChunkCount() constDefinition: NvBlastAsset.h:265
-
+
int32_t atomicDecrement(volatile int32_t *val)
diff --git a/docs/source_docs/files/class_nv_1_1_blast_1_1_asset.html b/docs/source_docs/files/class_nv_1_1_blast_1_1_asset.html
index 342205de..23e95173 100755
--- a/docs/source_docs/files/class_nv_1_1_blast_1_1_asset.html
+++ b/docs/source_docs/files/class_nv_1_1_blast_1_1_asset.html
@@ -605,7 +605,7 @@ Nv::Blast::Asset Class Reference
+
+
+
+
+ virtual bool Nv::Blast::FractureTool::setApproximateBonding
+ (
+ uint32_t
+ chunkIndex,
+
+
+
+
+ bool
+ useApproximateBonding
+
+
+
+ )
+ [pure virtual]
+
+
+
+
+
+
+Set the APPROXIMATE_BONDING flag in the chunk's ChunkInfo
- Parameters:
-
+
+ [in] chunkIndex chunk index - use getChunkIndex(ID)
+ [in] useApproximateBonding value of flag to set
+
+
+- Returns:
- true if the chunk ID is found, false otherwise
+
+Implemented in Nv::Blast::FractureToolImpl.
+
diff --git a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool.js b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool.js
index b4a1a8f1..a3f0bbec 100755
--- a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool.js
+++ b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool.js
@@ -24,6 +24,7 @@ var class_nv_1_1_blast_1_1_fracture_tool =
[ "release", "class_nv_1_1_blast_1_1_fracture_tool.html#a78da4a0d726ec1b541166cd3c46df67e", null ],
[ "replaceMaterialId", "class_nv_1_1_blast_1_1_fracture_tool.html#a78194aeece0c12c2035c79458ff49c9f", null ],
[ "reset", "class_nv_1_1_blast_1_1_fracture_tool.html#ab462c92fa47a5359bf3d19cf44af80f4", null ],
+ [ "setApproximateBonding", "class_nv_1_1_blast_1_1_fracture_tool.html#a33c19de2bc8ea52394651d184076db5c", null ],
[ "setChunkMesh", "class_nv_1_1_blast_1_1_fracture_tool.html#aecd9be996bba9329418fd91db8235ebe", null ],
[ "setInteriorMaterialId", "class_nv_1_1_blast_1_1_fracture_tool.html#ac8c4f90133fdf32969cad6e4c520414f", null ],
[ "setRemoveIslands", "class_nv_1_1_blast_1_1_fracture_tool.html#a251738022e498b819e88536577470735", null ],
diff --git a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl-members.html b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl-members.html
index 5834f88f..62ca715f 100755
--- a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl-members.html
+++ b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl-members.html
@@ -73,6 +73,7 @@
Nv::Blast::FractureToolImpl Member List
This is the complete list of mem
release() override Nv::Blast::FractureToolImpl [virtual]
replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId) override Nv::Blast::FractureToolImpl [virtual]
reset() override Nv::Blast::FractureToolImpl [virtual]
+ setApproximateBonding(uint32_t chunkId, bool useApproximateBonding) override Nv::Blast::FractureToolImpl [virtual]
setChunkMesh(const Mesh *mesh, int32_t parentId) override Nv::Blast::FractureToolImpl [virtual]
setInteriorMaterialId(int32_t materialId) override Nv::Blast::FractureToolImpl [virtual]
setRemoveIslands(bool isRemoveIslands) override Nv::Blast::FractureToolImpl [virtual]
diff --git a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl.html b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl.html
index 4ca24b9f..b3a36a2c 100755
--- a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl.html
+++ b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl.html
@@ -106,6 +106,8 @@ Nv::Blast::FractureToolImpl Class Reference
+
+
+
+
+ bool Nv::Blast::FractureToolImpl::setApproximateBonding
+ (
+ uint32_t
+ chunkIndex,
+
+
+
+
+ bool
+ useApproximateBonding
+
+
+
+ )
+ [override, virtual]
+
+
+
+
+
+
+Set the APPROXIMATE_BONDING flag in the chunk's ChunkInfo
- Parameters:
-
+
+ [in] chunkIndex chunk index - use getChunkIndex(ID)
+ [in] useApproximateBonding value of flag to set
+
+
+- Returns:
- true if the chunk ID is found, false otherwise
+
+Implements Nv::Blast::FractureTool.
+
diff --git a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl.js b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl.js
index 3bba54a4..f32a47ed 100755
--- a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl.js
+++ b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl.js
@@ -25,6 +25,7 @@ var class_nv_1_1_blast_1_1_fracture_tool_impl =
[ "release", "class_nv_1_1_blast_1_1_fracture_tool_impl.html#a05d2e5fd981d54d55ee5dbc5bf454a50", null ],
[ "replaceMaterialId", "class_nv_1_1_blast_1_1_fracture_tool_impl.html#abe1f6bf365964825a2c939e22c85d96a", null ],
[ "reset", "class_nv_1_1_blast_1_1_fracture_tool_impl.html#a1ccbcbfde4e58f8357a589ae56ff043f", null ],
+ [ "setApproximateBonding", "class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3fdd1a0df69a82898a6ec8c0f51094fc", null ],
[ "setChunkMesh", "class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac466495627ca99252433c7e1c702c7f9", null ],
[ "setInteriorMaterialId", "class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac9c8e18748b18fa6dd29a328eaf63026", null ],
[ "setRemoveIslands", "class_nv_1_1_blast_1_1_fracture_tool_impl.html#a92dec92822ab9e0807400a7d63bfc553", null ],
diff --git a/docs/source_docs/files/functions_0x61.html b/docs/source_docs/files/functions_0x61.html
index 65df3cde..71ef8471 100755
--- a/docs/source_docs/files/functions_0x61.html
+++ b/docs/source_docs/files/functions_0x61.html
@@ -254,52 +254,52 @@
- a -
- ApexImportTool()
: Nv::Blast::ApexImporter::ApexImportTool
- appendMesh()
-: Nv::Blast::FbxFileWriter
-, Nv::Blast::ObjFileWriter
+: Nv::Blast::ObjFileWriter
, Nv::Blast::IMeshFileWriter
, Nv::Blast::FbxFileWriter
-, Nv::Blast::ObjFileWriter
- applyDamage()
: Nv::Blast::ExtImpactDamageManager
- applyFracture()
: Nv::Blast::TkActorImpl
-, Nv::Blast::Actor
, Nv::Blast::TkFamily
-, Nv::Blast::TkActor
, Nv::Blast::FamilyHeader
+, Nv::Blast::TkActor
+, Nv::Blast::Actor
- applyNoise()
: Nv::Blast::MeshNoiser
- applySyncBuffer()
: Nv::Blast::ExtSync
+
- APPROXIMATE_BONDING
+: Nv::Blast::ChunkInfo
- area
: NvBlastBond
- asReader()
-: Nv::Blast::Serialization::NvBlastSupportGraph::NvBlastSupportGraph::Builder
+: Nv::Blast::Serialization::PxConvexMeshGeometry::PxConvexMeshGeometry::Builder
+, Nv::Blast::Serialization::PxQuat::PxQuat::Builder
+, Nv::Blast::Serialization::NvBlastSupportGraph::NvBlastSupportGraph::Builder
, Nv::Blast::Serialization::ExtPxAsset::ExtPxAsset::Builder
-, Nv::Blast::Serialization::PxConvexMeshGeometry::PxConvexMeshGeometry::Builder
-, Nv::Blast::Serialization::TkAsset::TkAsset::Builder
, Nv::Blast::Serialization::PxTransform::PxTransform::Builder
, Nv::Blast::Serialization::ExtPxChunk::ExtPxChunk::Builder
-, Nv::Blast::Serialization::NvBlastChunk::NvBlastChunk::Builder
-, Nv::Blast::Serialization::Asset::Asset::Builder
+, Nv::Blast::Serialization::ExtPxSubchunk::ExtPxSubchunk::Builder
, Nv::Blast::Serialization::UUID::UUID::Builder
, Nv::Blast::Serialization::NvBlastBond::NvBlastBond::Builder
+, Nv::Blast::Serialization::NvBlastDataBlock::NvBlastDataBlock::Builder
+, Nv::Blast::Serialization::NvBlastChunk::NvBlastChunk::Builder
, Nv::Blast::Serialization::PxMeshScale::PxMeshScale::Builder
-, Nv::Blast::Serialization::ExtPxSubchunk::ExtPxSubchunk::Builder
-, Nv::Blast::Serialization::TkAssetJointDesc::TkAssetJointDesc::Builder
, Nv::Blast::Serialization::PxVec3::PxVec3::Builder
-, Nv::Blast::Serialization::NvBlastDataBlock::NvBlastDataBlock::Builder
-, Nv::Blast::Serialization::PxQuat::PxQuat::Builder
-
- Asset
-: Nv::Blast::LlObjectTypeID
+, Nv::Blast::Serialization::TkAsset::TkAsset::Builder
+, Nv::Blast::Serialization::Asset::Asset::Builder
+, Nv::Blast::Serialization::TkAssetJointDesc::TkAssetJointDesc::Builder
+
- Asset()
+: Nv::Blast::Serialization::Asset
+, Nv::Blast::ExtPxObjectTypeID
- asset
-: Nv::Blast::ExporterMeshData
+: Nv::Blast::TkActorDesc
- Asset
-: Nv::Blast::ExtPxObjectTypeID
-, Nv::Blast::Serialization::Asset
-, Nv::Blast::TkObjectTypeID
+: Nv::Blast::TkObjectTypeID
+, Nv::Blast::LlObjectTypeID
- asset
-: Nv::Blast::TkActorDesc
+: Nv::Blast::ExporterMeshData
- Asset
: Nv::Blast::TkTypeIndex
- asset
@@ -316,12 +316,14 @@
- a -
- assetToFractureChunkIdMap
: Nv::Blast::AuthoringResult
- at()
-: Nv::Blast::FixedArray< T >
-, btAlignedObjectArray< T >
+: btAlignedObjectArray< T >
+, Nv::Blast::FixedArray< T >
+, btAlignedObjectArray< T >
+, Nv::Blast::FixedArray< T >
- attachPositions
: Nv::Blast::TkJointDesc
-, Nv::Blast::TkJointData
, Nv::Blast::TkAssetJointDesc
+, Nv::Blast::TkJointData
- AVERAGE
: Nv::Blast::BondGenerationConfig
diff --git a/docs/source_docs/files/functions_0x63.html b/docs/source_docs/files/functions_0x63.html
index 0cf2b1d3..c9325408 100755
--- a/docs/source_docs/files/functions_0x63.html
+++ b/docs/source_docs/files/functions_0x63.html
@@ -278,10 +278,10 @@ - c -
, VHACD::VoxelSet
, VHACD::TetrahedronSet
- ComputeVolume()
-: VHACD::Mesh
+: VHACD::PrimitiveSet
+, VHACD::Mesh
, VHACD::VoxelSet
, VHACD::TetrahedronSet
-, VHACD::PrimitiveSet
- concavity
: Nv::Blast::ConvexDecompositionParams
- Cone
@@ -295,8 +295,8 @@
- c -
- contactOffset
: Nv::Blast::ExtPxShapeDescTemplate
- Convert()
-: VHACD::Volume
-, VHACD::TetrahedronSet
+: VHACD::TetrahedronSet
+, VHACD::Volume
, VHACD::PrimitiveSet
, VHACD::VoxelSet
, VHACD::Volume
@@ -314,68 +314,63 @@
- c -
: Nv::Blast::BooleanToolOutputDataImpl
, Nv::Blast::BooleanToolOutputData
- Count
-: Nv::Blast::ActorSerializationFormat
-, NvBlastDataBlock
+: NvBlastDataBlock
, Nv::Blast::ExtSyncEventType
+, Nv::Blast::ActorSerializationFormat
- create()
-: Nv::Blast::ExtPxAsset
+: Nv::Blast::ExtPxAsset
+
- Create()
+: VHACD::TetrahedronSet
+
- create()
+: Nv::Blast::ExtPxAsset
, Nv::Blast::final
-, Nv::Blast::Actor
-, Nv::Blast::ExtStressSolver
- Create()
: VHACD::PrimitiveSet
-, VHACD::TetrahedronSet
- create()
-: Nv::Blast::ExtPxAsset
-, Nv::Blast::ExtSync
-, Nv::Blast::ExtPxAsset
-, Nv::Blast::ExtPxManager
+: Nv::Blast::ExtGroupTaskManager
, Nv::Blast::Asset
-, Nv::Blast::ExtPxStressSolver
+, Nv::Blast::ExtPxManager
+, Nv::Blast::ExtStressSolver
+, Nv::Blast::Actor
, Nv::Blast::TkActorImpl
-, Nv::Blast::ExtGroupTaskManager
+, Nv::Blast::ExtSync
+, Nv::Blast::ExtPxStressSolver
, Nv::Blast::ExtPxAsset
+, Nv::Blast::ExtImpactDamageManager
- Create()
: VHACD::VoxelSet
-
- create()
-: Nv::Blast::ExtImpactDamageManager
- createActor()
-: Nv::Blast::TkFrameworkImpl
-, Nv::Blast::TkFramework
+: Nv::Blast::TkFramework
+, Nv::Blast::TkFrameworkImpl
- createAsset()
: Nv::Blast::TkFrameworkImpl
, Nv::Blast::TkFramework
-, Nv::Blast::TkFrameworkImpl
- createBondBetweenMeshes()
-: Nv::Blast::BlastBondGeneratorImpl
-, Nv::Blast::BlastBondGenerator
+: Nv::Blast::BlastBondGenerator
, Nv::Blast::BlastBondGeneratorImpl
-, Nv::Blast::BlastBondGenerator
- createChunkMesh()
: Nv::Blast::FractureTool
, Nv::Blast::FractureToolImpl
- createCollisionBuilder()
: Nv::Blast::ExtPxManager
-
- CREATED_BY_ISLAND_DETECTOR
-: Nv::Blast::ChunkInfo
- createFamily()
-: Nv::Blast::ExtPxManager
-, Nv::Blast::final
+: Nv::Blast::final
+, Nv::Blast::ExtPxManager
- createGroup()
: Nv::Blast::TkFrameworkImpl
, Nv::Blast::TkFramework
- createJoint()
-: Nv::Blast::TkFramework
-, Nv::Blast::TkFrameworkImpl
+: Nv::Blast::TkFrameworkImpl
, Nv::Blast::ExtPxManager
+, Nv::Blast::TkFramework
, Nv::Blast::final
- createNewMesh()
: Nv::Blast::BooleanEvaluator
- createRaycastMesh()
-: VHACD::RaycastMesh
+: VHACD::RaycastMesh
- createRequiredScratch()
-: Nv::Blast::Actor
-, Nv::Blast::Asset
+: Nv::Blast::Asset
+, Nv::Blast::Actor
- Current
: Nv::Blast::ActorSerializationFormat
- cut()
diff --git a/docs/source_docs/files/functions_0x69.html b/docs/source_docs/files/functions_0x69.html
index d75f6f7d..85e4bcd6 100755
--- a/docs/source_docs/files/functions_0x69.html
+++ b/docs/source_docs/files/functions_0x69.html
@@ -229,10 +229,10 @@
- i -
: Nv::Blast::ExtTaskSync
- isDouble()
: FLOAT_MATH::fm_VertexIndex
-
- IsEmpty()
-: VHACD::CircularList< T >
- isEmpty()
: Nv::Blast::DList
+
- IsEmpty()
+: VHACD::CircularList< T >
- IsFlat()
: VHACD::ICHull
- IsInside()
diff --git a/docs/source_docs/files/functions_0x70.html b/docs/source_docs/files/functions_0x70.html
index eff21f9f..8fda96a3 100755
--- a/docs/source_docs/files/functions_0x70.html
+++ b/docs/source_docs/files/functions_0x70.html
@@ -91,11 +91,11 @@
- p -
, NvcTransform
- Parameters()
: VHACD::IVHACD::IVHACD::Parameters
+
- Parent
+: Nv::Blast::Asset::Asset::ChunkAnnotation
- parent
: Nv::Blast::ChunkInfo
, Nv::Blast::EdgeWithParent
-
- Parent
-: Nv::Blast::Asset::Asset::ChunkAnnotation
- parentChunkIndex
: NvBlastChunkDesc
, NvBlastChunk
@@ -174,10 +174,10 @@
- p -
: Nv::Blast::Separation
, Nv::Blast::PlaneChunkIndexer
, Nv::Blast::HullPolygon
-- Point
-: Nv::Blast::DamagePattern
- point
: Nv::Blast::TriangulatorV2::TriangulatorV2::LinkedListElement
+
- Point
+: Nv::Blast::DamagePattern
- POINT2D()
: Nv::Blast::POINT2D
- pointer
@@ -267,10 +267,11 @@
- p -
- push_back()
: btAlignedObjectArray< T >
- pushBack()
-: Nv::Blast::FixedArray< T >
-, Nv::Blast::FixedQueue< T >
+: Nv::Blast::FixedQueue< T >
- PushBack()
: VHACD::SArray< T, N >
+
- pushBack()
+: Nv::Blast::FixedArray< T >
- pxAsset
: Nv::Blast::ExtPxFamilyDesc
- pxChunks
diff --git a/docs/source_docs/files/functions_0x72.html b/docs/source_docs/files/functions_0x72.html
index 60db7b85..864782a8 100755
--- a/docs/source_docs/files/functions_0x72.html
+++ b/docs/source_docs/files/functions_0x72.html
@@ -324,10 +324,10 @@
- r -
- resetEdges()
: Nv::Blast::BooleanToolOutputDataImpl
, Nv::Blast::BooleanToolOutputData
-
- resize()
-: btAlignedObjectArray< T >
- Resize()
: VHACD::SArray< T, N >
+
- resize()
+: btAlignedObjectArray< T >
- ResizePoints()
: VHACD::Mesh
- ResizeTriangles()
diff --git a/docs/source_docs/files/functions_0x73.html b/docs/source_docs/files/functions_0x73.html
index 89fac2d7..515b8321 100755
--- a/docs/source_docs/files/functions_0x73.html
+++ b/docs/source_docs/files/functions_0x73.html
@@ -154,6 +154,9 @@
- s -
: Nv::Blast::TkJointImpl
- setAllNodesInfoFromLL()
: Nv::Blast::ExtStressSolver
+
- setApproximateBonding()
+: Nv::Blast::FractureTool
+, Nv::Blast::FractureToolImpl
- setAsset()
: Nv::Blast::Serialization::ExtPxAsset::ExtPxAsset::Builder
- setAssetLL()
@@ -175,8 +178,8 @@
- s -
: Nv::Blast::FractureTool
, Nv::Blast::FractureToolImpl
- setChunks()
-: Nv::Blast::Serialization::Asset::Asset::Builder
-, Nv::Blast::Serialization::ExtPxAsset::ExtPxAsset::Builder
+: Nv::Blast::Serialization::ExtPxAsset::ExtPxAsset::Builder
+, Nv::Blast::Serialization::Asset::Asset::Builder
- setConvexMesh()
: Nv::Blast::Serialization::PxConvexMeshGeometry::PxConvexMeshGeometry::Builder
- setCount()
@@ -264,8 +267,8 @@
- s -
- setRotation()
: Nv::Blast::Serialization::PxMeshScale::PxMeshScale::Builder
- setScale()
-: Nv::Blast::Serialization::PxMeshScale::PxMeshScale::Builder
-, Nv::Blast::Serialization::PxConvexMeshGeometry::PxConvexMeshGeometry::Builder
+: Nv::Blast::Serialization::PxConvexMeshGeometry::PxConvexMeshGeometry::Builder
+, Nv::Blast::Serialization::PxMeshScale::PxMeshScale::Builder
- setSerializationEncoding()
: Nv::Blast::ExtSerialization
- setSettings()
@@ -274,19 +277,19 @@
- s -
- setSize()
: Nv::Blast::Serialization::NvBlastDataBlock::NvBlastDataBlock::Builder
- setSmoothingGroup()
-: Nv::Blast::Mesh
-, Nv::Blast::MeshImpl
+: Nv::Blast::MeshImpl
+, Nv::Blast::Mesh
- setSourceMesh()
-: Nv::Blast::FractureToolImpl
-, Nv::Blast::FractureTool
+: Nv::Blast::FractureTool
+, Nv::Blast::FractureToolImpl
- setState()
: Nv::Blast::SpatialAccelerator
, Nv::Blast::DummyAccelerator
, Nv::Blast::GridWalker
-, Nv::Blast::SweepingAccelerator
+, Nv::Blast::SweepingAccelerator
, Nv::Blast::BBoxBasedAccelerator
-, Nv::Blast::GridWalker
-, Nv::Blast::SweepingAccelerator
+, Nv::Blast::SweepingAccelerator
+, Nv::Blast::DummyAccelerator
- setStencil()
: Nv::Blast::VoronoiSitesGenerator
, Nv::Blast::VoronoiSitesGeneratorImpl
@@ -299,8 +302,8 @@
- s -
- setType()
: Nv::Blast::Serialization::PxConvexMeshGeometry::PxConvexMeshGeometry::Builder
- setUniformHealth()
-: Nv::Blast::final
-, Nv::Blast::ExtPxAsset
+: Nv::Blast::ExtPxAsset
+, Nv::Blast::final
- setup()
: Nv::Blast::ExtGroupWorkerTask
- setValue()
@@ -311,14 +314,14 @@
- s -
- setWorkerCount()
: Nv::Blast::TkGroup
- setX()
-: Nv::Blast::Serialization::PxQuat::PxQuat::Builder
-, Nv::Blast::Serialization::PxVec3::PxVec3::Builder
+: Nv::Blast::Serialization::PxVec3::PxVec3::Builder
+, Nv::Blast::Serialization::PxQuat::PxQuat::Builder
- setY()
: Nv::Blast::Serialization::PxQuat::PxQuat::Builder
, Nv::Blast::Serialization::PxVec3::PxVec3::Builder
- setZ()
-: Nv::Blast::Serialization::PxVec3::PxVec3::Builder
-, Nv::Blast::Serialization::PxQuat::PxQuat::Builder
+: Nv::Blast::Serialization::PxQuat::PxQuat::Builder
+, Nv::Blast::Serialization::PxVec3::PxVec3::Builder
- SharedBlock()
: Nv::Blast::SharedBlock< T >
- SharedBuffer()
@@ -335,34 +338,34 @@
- s -
: Nv::Blast::ExtPxShapeDescTemplate
- size
: NvBlastDataBlock
-, Nv::Blast::FixedPriorityQueue< Element, Comparator >
- Size()
: VHACD::SArray< T, N >
- size()
-: Nv::Blast::FixedQueue< T >
+: btAlignedObjectArray< T >
+, Nv::Blast::FixedQueue< T >
, Nv::Blast::FixedArray< T >
-, btAlignedObjectArray< T >
+, Nv::Blast::FixedPriorityQueue< Element, Comparator >
- skipObject()
: Nv::Blast::ExtSerialization
- slicing()
: Nv::Blast::FractureToolImpl
, Nv::Blast::FractureTool
- smoothingGroup
-: Nv::Blast::TriangleIndexed
-, Nv::Blast::PerTriangleAdditionalData
-, Nv::Blast::Triangle
+: Nv::Blast::PerTriangleAdditionalData
, Nv::Blast::Facet
+, Nv::Blast::TriangleIndexed
+, Nv::Blast::Triangle
- smoothingGroups
: Nv::Blast::Cutout
- sortToCCW()
: Nv::Blast::TriangleProcessor
- spawn()
-: Nv::Blast::ExtPxFamily
-, Nv::Blast::final
-
- split()
-: Nv::Blast::Actor
+: Nv::Blast::final
+, Nv::Blast::ExtPxFamily
- Split
: Nv::Blast::TkEvent
+
- split()
+: Nv::Blast::Actor
- splitRequiredScratch()
: Nv::Blast::Actor
- start
@@ -382,8 +385,8 @@
- s -
- stressLinearFactor
: Nv::Blast::ExtStressSolverSettings
- subchunkCount
-: Nv::Blast::ExtPxAssetDesc::ExtPxAssetDesc::ChunkDesc
-, Nv::Blast::ExtPxChunk
+: Nv::Blast::ExtPxChunk
+, Nv::Blast::ExtPxAssetDesc::ExtPxAssetDesc::ChunkDesc
- subchunks
: Nv::Blast::ExtPxAssetDesc::ExtPxAssetDesc::ChunkDesc
- subgraphShaderFunction
@@ -395,14 +398,13 @@
- s -
- submeshOffsets
: Nv::Blast::ExporterMeshData
- subscribe()
-: Nv::Blast::final
-, Nv::Blast::ExtPxFamily
-, Nv::Blast::ExtPxManager
+: Nv::Blast::ExtPxFamily
, Nv::Blast::final
-
- subtype
-: Nv::Blast::TkJointUpdateEvent
+, Nv::Blast::ExtPxManager
- Subtype
: Nv::Blast::TkJointUpdateEvent
+
- subtype
+: Nv::Blast::TkJointUpdateEvent
- SuperSupport
: Nv::Blast::Asset::Asset::ChunkAnnotation
- Support
diff --git a/docs/source_docs/files/functions_0x74.html b/docs/source_docs/files/functions_0x74.html
index b3fc989d..2abbf57f 100755
--- a/docs/source_docs/files/functions_0x74.html
+++ b/docs/source_docs/files/functions_0x74.html
@@ -271,24 +271,24 @@
- t -
: VHACD::Mutex
- tryRead()
: Nv::Blast::ExtInputStream
-
- Type
-: Nv::Blast::Serialization::PxConvexMeshGeometry
-
- type
-: Nv::Blast::HashMap< Key, Value, HashFn >
-, Nv::Blast::HashSet< Key, HashFn >
-, Nv::Blast::ExtSyncEvent
-
- Type
-: NvBlastMessage
- type
-: Nv::Blast::InlineArray< T, N >
-, Nv::Blast::Array< T >
+: Nv::Blast::ExtSyncEvent
- Type
: NvBlastDataBlock
+, Nv::Blast::TkEvent
, Nv::Blast::Serialization::NvBlastDataBlock
- type
+: Nv::Blast::Array< T >
+
- Type
+: NvBlastMessage
+
- type
: Nv::Blast::TkEvent
+, Nv::Blast::InlineArray< T, N >
+, Nv::Blast::HashSet< Key, HashFn >
- Type
-: Nv::Blast::TkEvent
+: Nv::Blast::Serialization::PxConvexMeshGeometry
+
- type
+: Nv::Blast::HashMap< Key, Value, HashFn >
- TypeCount
: Nv::Blast::TkTypeIndex
, Nv::Blast::TkEvent
diff --git a/docs/source_docs/files/functions_0x75.html b/docs/source_docs/files/functions_0x75.html
index 2fd99e24..c613e534 100755
--- a/docs/source_docs/files/functions_0x75.html
+++ b/docs/source_docs/files/functions_0x75.html
@@ -133,22 +133,21 @@
- u -
- UpperSupport
: Nv::Blast::Asset::Asset::ChunkAnnotation
- userData
-: NvBlastBond
-, Nv::Blast::ExtPxFamily
-, NvBlastChunk
+: Nv::Blast::ExtPxFamily
+, Nv::Blast::Facet
+, Nv::Blast::ExtPxAsset
+, Nv::Blast::TkObject
+, Nv::Blast::Triangle
- userdata
: NvBlastBondFractureData
- userData
-: Nv::Blast::Facet
-, Nv::Blast::TriangleIndexed
-, Nv::Blast::TkActorData
-, Nv::Blast::TkObject
+: NvBlastBond
, NvBlastChunkDesc
+, NvBlastChunk
+, Nv::Blast::TkActorData
+, Nv::Blast::TriangleIndexed
- userdata
: NvBlastChunkFractureData
-
- userData
-: Nv::Blast::ExtPxAsset
-, Nv::Blast::Triangle
- userIntData
: Nv::Blast::TkIdentifiable
- useSmoothing
diff --git a/docs/source_docs/files/functions_0x79.html b/docs/source_docs/files/functions_0x79.html
index 71e24681..5e86a8d0 100755
--- a/docs/source_docs/files/functions_0x79.html
+++ b/docs/source_docs/files/functions_0x79.html
@@ -86,20 +86,23 @@
Here is a list of all class members with links to the classes they belong to:
- y -
-- y
-: Nv::Blast::POINT2D
-, Nv::Blast::VSA::Vec3
- Y()
-: VHACD::Vec2< T >
-, VHACD::Vec3< T >
+: VHACD::Vec3< T >
- y
: NvcVec4i
-, NvcVec3
+, NvcVec3i
, NvcVec2i
, NvcQuat
, NvcVec4
-, NvcVec3i
-, NvcVec2
+
- Y()
+: VHACD::Vec2< T >
+
- y
+: NvcVec2
+, Nv::Blast::VSA::Vec3
+, Nv::Blast::POINT2D
+, NvcVec3
+
- Y()
+: VHACD::Vec2< T >
- y_slices
: Nv::Blast::SlicingConfiguration
diff --git a/docs/source_docs/files/functions_a.html b/docs/source_docs/files/functions_a.html
index 5f54e30e..56891e99 100755
--- a/docs/source_docs/files/functions_a.html
+++ b/docs/source_docs/files/functions_a.html
@@ -314,8 +314,8 @@ - a -
- appendMesh()
-: Nv::Blast::FbxFileWriter
-, Nv::Blast::IMeshFileWriter
+: Nv::Blast::FbxFileWriter
+, Nv::Blast::IMeshFileWriter
, Nv::Blast::ObjFileWriter
- applyDamage()
@@ -334,6 +334,9 @@
- a -
- applySyncBuffer()
: Nv::Blast::ExtSync
+- APPROXIMATE_BONDING
+: Nv::Blast::ChunkInfo
+
- area
: NvBlastBond
diff --git a/docs/source_docs/files/functions_c.html b/docs/source_docs/files/functions_c.html
index 4b4b4251..adeecad2 100755
--- a/docs/source_docs/files/functions_c.html
+++ b/docs/source_docs/files/functions_c.html
@@ -361,7 +361,7 @@ - c -
- createAsset()
-: Nv::Blast::TkFramework
+: Nv::Blast::TkFramework
, Nv::Blast::TkFrameworkImpl
- createBondBetweenMeshes()
-: Nv::Blast::BlastBondGenerator
-, Nv::Blast::BlastBondGeneratorImpl
+: Nv::Blast::BlastBondGenerator
+, Nv::Blast::BlastBondGeneratorImpl
- createChunkMesh()
: Nv::Blast::FractureTool
@@ -392,9 +392,6 @@
- c -
- createCollisionBuilder()
: Nv::Blast::ExtPxManager
-- CREATED_BY_ISLAND_DETECTOR
-: Nv::Blast::ChunkInfo
-
- createFamily()
: Nv::Blast::ExtPxManager
, Nv::Blast::ExtPxManagerImpl
diff --git a/docs/source_docs/files/functions_eval.html b/docs/source_docs/files/functions_eval.html
index 746b31e4..8c059dc0 100755
--- a/docs/source_docs/files/functions_eval.html
+++ b/docs/source_docs/files/functions_eval.html
@@ -80,11 +80,13 @@
- a -
- ALL
: Nv::Blast::FractureRT::FractureRT::Stage
+
- APPROXIMATE_BONDING
+: Nv::Blast::ChunkInfo
- Asset
-: Nv::Blast::LlObjectTypeID
-, Nv::Blast::TkObjectTypeID
+: Nv::Blast::ExtPxObjectTypeID
, Nv::Blast::TkTypeIndex
-, Nv::Blast::ExtPxObjectTypeID
+, Nv::Blast::TkObjectTypeID
+, Nv::Blast::LlObjectTypeID
- AssetDataBlock
: NvBlastDataBlock
- AVERAGE
@@ -102,11 +104,9 @@
- c -
- Cone
: Nv::Blast::DamagePattern
- Count
-: Nv::Blast::ExtSyncEventType
-, NvBlastDataBlock
+: NvBlastDataBlock
+, Nv::Blast::ExtSyncEventType
, Nv::Blast::ActorSerializationFormat
-
- CREATED_BY_ISLAND_DETECTOR
-: Nv::Blast::ChunkInfo
- Current
: Nv::Blast::ActorSerializationFormat
diff --git a/docs/source_docs/files/functions_func_0x69.html b/docs/source_docs/files/functions_func_0x69.html
index c84e22a8..cf1e0c49 100755
--- a/docs/source_docs/files/functions_func_0x69.html
+++ b/docs/source_docs/files/functions_func_0x69.html
@@ -185,10 +185,10 @@ - i -
: Nv::Blast::ExtTaskSync
- isDouble()
: FLOAT_MATH::fm_VertexIndex
-
- isEmpty()
-: Nv::Blast::DList
- IsEmpty()
: VHACD::CircularList< T >
+
- isEmpty()
+: Nv::Blast::DList
- IsFlat()
: VHACD::ICHull
- IsInside()
diff --git a/docs/source_docs/files/functions_func_0x70.html b/docs/source_docs/files/functions_func_0x70.html
index 2a449f78..b53fb276 100755
--- a/docs/source_docs/files/functions_func_0x70.html
+++ b/docs/source_docs/files/functions_func_0x70.html
@@ -166,11 +166,12 @@
- p -
, Nv::Blast::ExtDamageAcceleratorInternal::ExtDamageAcceleratorInternal::ResultCallback
- push_back()
: btAlignedObjectArray< T >
+
- pushBack()
+: Nv::Blast::FixedArray< T >
- PushBack()
: VHACD::SArray< T, N >
- pushBack()
: Nv::Blast::FixedQueue< T >
-, Nv::Blast::FixedArray< T >
- PxConvexMeshGeometry()
: Nv::Blast::Serialization::PxConvexMeshGeometry
- PxMeshScale()
diff --git a/docs/source_docs/files/functions_func_0x72.html b/docs/source_docs/files/functions_func_0x72.html
index 7364f987..3300beed 100755
--- a/docs/source_docs/files/functions_func_0x72.html
+++ b/docs/source_docs/files/functions_func_0x72.html
@@ -276,10 +276,10 @@
- r -
- resetEdges()
: Nv::Blast::BooleanToolOutputData
, Nv::Blast::BooleanToolOutputDataImpl
-
- Resize()
-: VHACD::SArray< T, N >
- resize()
: btAlignedObjectArray< T >
+
- Resize()
+: VHACD::SArray< T, N >
- ResizePoints()
: VHACD::Mesh
- ResizeTriangles()
diff --git a/docs/source_docs/files/functions_func_0x73.html b/docs/source_docs/files/functions_func_0x73.html
index bcc712f7..30a8192d 100755
--- a/docs/source_docs/files/functions_func_0x73.html
+++ b/docs/source_docs/files/functions_func_0x73.html
@@ -141,6 +141,9 @@
- s -
: Nv::Blast::TkJointImpl
- setAllNodesInfoFromLL()
: Nv::Blast::ExtStressSolver
+
- setApproximateBonding()
+: Nv::Blast::FractureTool
+, Nv::Blast::FractureToolImpl
- setAsset()
: Nv::Blast::Serialization::ExtPxAsset::ExtPxAsset::Builder
- setAssetLL()
@@ -224,7 +227,7 @@
- s -
- setNodeInfo()
: Nv::Blast::ExtStressSolver
- setNormal()
-: Nv::Blast::Serialization::NvBlastBond::NvBlastBond::Builder
+: Nv::Blast::Serialization::NvBlastBond::NvBlastBond::Builder
- setP()
: Nv::Blast::Serialization::PxTransform::PxTransform::Builder
- setPlatformEnabled()
@@ -232,17 +235,17 @@
- s -
- SetPoint()
: VHACD::Mesh
- setPointCmpDirection()
-: Nv::Blast::BBoxBasedAccelerator
+: Nv::Blast::GridWalker
, Nv::Blast::SpatialAccelerator
, Nv::Blast::DummyAccelerator
-, Nv::Blast::GridWalker
, Nv::Blast::SweepingAccelerator
+, Nv::Blast::BBoxBasedAccelerator
- setPxActorDesc()
-: Nv::Blast::ExtPxFamily
-, Nv::Blast::final
+: Nv::Blast::final
+, Nv::Blast::ExtPxFamily
- setPxShapeDescTemplate()
-: Nv::Blast::final
-, Nv::Blast::ExtPxFamily
+: Nv::Blast::ExtPxFamily
+, Nv::Blast::final
- setQ()
: Nv::Blast::Serialization::PxTransform::PxTransform::Builder
- setRemoveIslands()
@@ -261,24 +264,21 @@
- s -
- setSize()
: Nv::Blast::Serialization::NvBlastDataBlock::NvBlastDataBlock::Builder
- setSmoothingGroup()
-: Nv::Blast::MeshImpl
-, Nv::Blast::Mesh
+: Nv::Blast::Mesh
+, Nv::Blast::MeshImpl
- setSourceMesh()
-: Nv::Blast::FractureTool
-, Nv::Blast::FractureToolImpl
+: Nv::Blast::FractureToolImpl
+, Nv::Blast::FractureTool
- setState()
-: Nv::Blast::DummyAccelerator
-, Nv::Blast::SpatialAccelerator
-, Nv::Blast::BBoxBasedAccelerator
+: Nv::Blast::SpatialAccelerator
+, Nv::Blast::DummyAccelerator
, Nv::Blast::GridWalker
-, Nv::Blast::SweepingAccelerator
-, Nv::Blast::BBoxBasedAccelerator
+, Nv::Blast::BBoxBasedAccelerator
+, Nv::Blast::SweepingAccelerator
, Nv::Blast::SpatialAccelerator
-, Nv::Blast::SweepingAccelerator
+, Nv::Blast::GridWalker
, Nv::Blast::BBoxBasedAccelerator
-, Nv::Blast::SweepingAccelerator
-, Nv::Blast::DummyAccelerator
-, Nv::Blast::SpatialAccelerator
+, Nv::Blast::SweepingAccelerator
, Nv::Blast::DummyAccelerator
- setStencil()
: Nv::Blast::VoronoiSitesGeneratorImpl
@@ -292,13 +292,13 @@
- s -
- setType()
: Nv::Blast::Serialization::PxConvexMeshGeometry::PxConvexMeshGeometry::Builder
- setUniformHealth()
-: Nv::Blast::final
-, Nv::Blast::ExtPxAsset
+: Nv::Blast::ExtPxAsset
+, Nv::Blast::final
- setup()
: Nv::Blast::ExtGroupWorkerTask
- setValue()
-: Nv::Blast::Serialization::UUID::UUID::Builder
-, btVector4
+: btVector4
+, Nv::Blast::Serialization::UUID::UUID::Builder
- setW()
: Nv::Blast::Serialization::PxQuat::PxQuat::Builder
- setWorkerCount()
@@ -322,18 +322,19 @@
- s -
: Nv::Blast::SharedMemory
- SimplexNoise()
: Nv::Blast::SimplexNoise
+
- size()
+: Nv::Blast::FixedPriorityQueue< Element, Comparator >
+, Nv::Blast::FixedArray< T >
+, btAlignedObjectArray< T >
- Size()
: VHACD::SArray< T, N >
- size()
: Nv::Blast::FixedQueue< T >
-, Nv::Blast::FixedArray< T >
-, btAlignedObjectArray< T >
-, Nv::Blast::FixedPriorityQueue< Element, Comparator >
- skipObject()
: Nv::Blast::ExtSerialization
- slicing()
-: Nv::Blast::FractureToolImpl
-, Nv::Blast::FractureTool
+: Nv::Blast::FractureTool
+, Nv::Blast::FractureToolImpl
- sortToCCW()
: Nv::Blast::TriangleProcessor
- spawn()
@@ -346,7 +347,8 @@
- s -
- startProcess()
: Nv::Blast::TkGroup
- subscribe()
-: Nv::Blast::ExtPxManager
+: Nv::Blast::final
+, Nv::Blast::ExtPxManager
, Nv::Blast::ExtPxFamily
, Nv::Blast::final
- swap()
@@ -354,7 +356,7 @@
- s -
- SweepingAccelerator()
: Nv::Blast::SweepingAccelerator
- syncFamily()
-: Nv::Blast::ExtSync
+: Nv::Blast::ExtSync
diff --git a/docs/source_docs/files/functions_func_g.html b/docs/source_docs/files/functions_func_g.html
index 777c68b9..d4f83a8b 100755
--- a/docs/source_docs/files/functions_func_g.html
+++ b/docs/source_docs/files/functions_func_g.html
@@ -1175,7 +1175,7 @@ - g -
, Nv::Blast::VoronoiSitesGeneratorImpl
- GetVoxel()
-: VHACD::Volume
+: VHACD::Volume
- GetVoxels()
: VHACD::VoxelSet
diff --git a/docs/source_docs/files/functions_func_s.html b/docs/source_docs/files/functions_func_s.html
index 70be8ae7..bbb36b48 100755
--- a/docs/source_docs/files/functions_func_s.html
+++ b/docs/source_docs/files/functions_func_s.html
@@ -128,6 +128,10 @@
- s -
- setAllNodesInfoFromLL()
: Nv::Blast::ExtStressSolver
+- setApproximateBonding()
+: Nv::Blast::FractureTool
+, Nv::Blast::FractureToolImpl
+
- setArea()
: Nv::Blast::Serialization::NvBlastBond::Builder
@@ -331,9 +335,9 @@ - s -
- setState()
: Nv::Blast::BBoxBasedAccelerator
-, Nv::Blast::DummyAccelerator
-, Nv::Blast::GridWalker
-, Nv::Blast::SpatialAccelerator
+, Nv::Blast::DummyAccelerator
+, Nv::Blast::GridWalker
+, Nv::Blast::SpatialAccelerator
, Nv::Blast::SweepingAccelerator
- setStencil()
@@ -350,7 +354,7 @@
- s -
- setSupportChunkHealths()
-: Nv::Blast::Serialization::ExtPxAsset::Builder
+: Nv::Blast::Serialization::ExtPxAsset::Builder
- setTransform()
: Nv::Blast::Serialization::ExtPxSubchunk::Builder
@@ -410,7 +414,7 @@
- s -
- SharedFace()
-: Nv::Blast::SharedFace
+: Nv::Blast::SharedFace
- SharedMemory()
: Nv::Blast::SharedMemory
diff --git a/docs/source_docs/files/functions_g.html b/docs/source_docs/files/functions_g.html
index 52c92be1..fc4f9522 100755
--- a/docs/source_docs/files/functions_g.html
+++ b/docs/source_docs/files/functions_g.html
@@ -1186,7 +1186,7 @@
- g -
- GetVoxels()
-: VHACD::VoxelSet
+: VHACD::VoxelSet
- getW()
: btVector4
diff --git a/docs/source_docs/files/functions_s.html b/docs/source_docs/files/functions_s.html
index cf028663..34ae01db 100755
--- a/docs/source_docs/files/functions_s.html
+++ b/docs/source_docs/files/functions_s.html
@@ -144,6 +144,10 @@
- s -
- setAllNodesInfoFromLL()
: Nv::Blast::ExtStressSolver
+- setApproximateBonding()
+: Nv::Blast::FractureTool
+, Nv::Blast::FractureToolImpl
+
- setArea()
: Nv::Blast::Serialization::NvBlastBond::Builder
@@ -173,7 +177,7 @@ - s -
- setCentroid()
-: Nv::Blast::Serialization::NvBlastBond::Builder
+: Nv::Blast::Serialization::NvBlastBond::Builder
, Nv::Blast::Serialization::NvBlastChunk::Builder
- setChildIndexStop()
@@ -348,9 +352,9 @@
- s -
- setState()
: Nv::Blast::BBoxBasedAccelerator
, Nv::Blast::DummyAccelerator
-, Nv::Blast::GridWalker
+, Nv::Blast::GridWalker
, Nv::Blast::SpatialAccelerator
-, Nv::Blast::SweepingAccelerator
+, Nv::Blast::SweepingAccelerator
- setStencil()
: Nv::Blast::VoronoiSitesGenerator
@@ -363,10 +367,10 @@
- s -
- setSubtreeLeafChunkCounts()
-: Nv::Blast::Serialization::Asset::Builder
+: Nv::Blast::Serialization::Asset::Builder
- setSupportChunkHealths()
-: Nv::Blast::Serialization::ExtPxAsset::Builder
+: Nv::Blast::Serialization::ExtPxAsset::Builder
- setTransform()
: Nv::Blast::Serialization::ExtPxSubchunk::Builder
@@ -531,12 +535,12 @@
- s -
-- Subtype
-: Nv::Blast::TkJointUpdateEvent
-
- subtype
: Nv::Blast::TkJointUpdateEvent
+- Subtype
+: Nv::Blast::TkJointUpdateEvent
+
- SuperSupport
: Nv::Blast::Asset::ChunkAnnotation
@@ -556,7 +560,7 @@ - s -
- syncFamily()
-: Nv::Blast::ExtSync
+: Nv::Blast::ExtSync
diff --git a/docs/source_docs/files/functions_type.html b/docs/source_docs/files/functions_type.html
index 75594347..49393de0 100755
--- a/docs/source_docs/files/functions_type.html
+++ b/docs/source_docs/files/functions_type.html
@@ -141,15 +141,15 @@ - r -
- t -
+- type
+: Nv::Blast::Array< T >
- Type
-: Nv::Blast::Serialization::NvBlastDataBlock
+: Nv::Blast::Serialization::PxConvexMeshGeometry
+, Nv::Blast::Serialization::NvBlastDataBlock
- type
: Nv::Blast::HashSet< Key, HashFn >
, Nv::Blast::HashMap< Key, Value, HashFn >
, Nv::Blast::InlineArray< T, N >
-, Nv::Blast::Array< T >
-
- Type
-: Nv::Blast::Serialization::PxConvexMeshGeometry
- v -
- value_type
diff --git a/docs/source_docs/files/functions_vars_0x75.html b/docs/source_docs/files/functions_vars_0x75.html
index f8a3a931..526dc95b 100755
--- a/docs/source_docs/files/functions_vars_0x75.html
+++ b/docs/source_docs/files/functions_vars_0x75.html
@@ -88,21 +88,22 @@
- u -
: NvBlastActorDesc
- uniformInitialLowerSupportChunkHealth
: NvBlastActorDesc
+
- userdata
+: NvBlastBondFractureData
- userData
-: Nv::Blast::TriangleIndexed
+: Nv::Blast::ExtPxAsset
+, Nv::Blast::ExtPxFamily
+, Nv::Blast::Triangle
+, Nv::Blast::TkObject
+, Nv::Blast::TkActorData
+, NvBlastChunkDesc
, NvBlastChunk
, NvBlastBond
-, Nv::Blast::Facet
- userdata
-: NvBlastBondFractureData
-, NvBlastChunkFractureData
+: NvBlastChunkFractureData
- userData
-: Nv::Blast::TkObject
-, NvBlastChunkDesc
-, Nv::Blast::TkActorData
-, Nv::Blast::Triangle
-, Nv::Blast::ExtPxAsset
-, Nv::Blast::ExtPxFamily
+: Nv::Blast::TriangleIndexed
+, Nv::Blast::Facet
- userIntData
: Nv::Blast::TkIdentifiable
- useSmoothing
diff --git a/docs/source_docs/files/functions_y.html b/docs/source_docs/files/functions_y.html
index 43c97aeb..648150ee 100755
--- a/docs/source_docs/files/functions_y.html
+++ b/docs/source_docs/files/functions_y.html
@@ -57,8 +57,8 @@
- y -
, NvcVec4i
- Y()
-: VHACD::Vec2< T >
-, VHACD::Vec3< T >
+: VHACD::Vec2< T >
+, VHACD::Vec3< T >
- y_slices
: Nv::Blast::SlicingConfiguration
diff --git a/docs/source_docs/files/namespace_nv_1_1_blast.html b/docs/source_docs/files/namespace_nv_1_1_blast.html
index 5a9b37a6..87f38a71 100755
--- a/docs/source_docs/files/namespace_nv_1_1_blast.html
+++ b/docs/source_docs/files/namespace_nv_1_1_blast.html
@@ -525,6 +525,8 @@
Nv::Blast Namespace Reference
int32_t buildMeshConvexDecomposition (ConvexMeshBuilder &cmb, const Triangle *mesh, uint32_t triangleCount, const ConvexDecompositionParams ¶ms, CollisionHull **&convexes)
+NV_INLINE float calculateCollisionHullVolume (const CollisionHull &hull)
+
void createCutoutSet (Nv::Blast::CutoutSetImpl &cutoutSet, const uint8_t *pixelBuffer, uint32_t bufferWidth, uint32_t bufferHeight, float segmentationErrorThreshold, float snapThreshold, bool periodic, bool expandGaps)
template<typename T >
@@ -1045,6 +1047,26 @@ Nv::Blast Namespace Reference
+
+
+
+
+
+ NV_INLINE float Nv::Blast::calculateCollisionHullVolume
+ (
+ const CollisionHull &
+ hull
+ )
+
+
+
+
+
+
+
+
diff --git a/docs/source_docs/files/namespacemembers_0x63.html b/docs/source_docs/files/namespacemembers_0x63.html
index 1ad5b396..63be79df 100755
--- a/docs/source_docs/files/namespacemembers_0x63.html
+++ b/docs/source_docs/files/namespacemembers_0x63.html
@@ -72,10 +72,12 @@
Here is a list of all namespace members with links to the namespace documentation for each member:
- c -
+- calculateCollisionHullVolume()
+: Nv::Blast
- CAPNP_DECLARE_ENUM()
: capnp::schemas
- CAPNP_DECLARE_SCHEMA()
-: capnp::schemas
+: capnp::schemas
- Colinear()
: VHACD
- ComputeAlignedPoint()
diff --git a/docs/source_docs/files/namespacemembers_c.html b/docs/source_docs/files/namespacemembers_c.html
index 97d3523a..ee6f5964 100755
--- a/docs/source_docs/files/namespacemembers_c.html
+++ b/docs/source_docs/files/namespacemembers_c.html
@@ -45,11 +45,14 @@
Here is a list of all namespace members with links to the namespace documentation for each member:
- c -
+- calculateCollisionHullVolume()
+: Nv::Blast
+
- CAPNP_DECLARE_ENUM()
: capnp::schemas
- CAPNP_DECLARE_SCHEMA()
-: capnp::schemas
+: capnp::schemas
- Colinear()
: VHACD
diff --git a/docs/source_docs/files/namespacemembers_func_0x63.html b/docs/source_docs/files/namespacemembers_func_0x63.html
index bac91e82..fd80ef70 100755
--- a/docs/source_docs/files/namespacemembers_func_0x63.html
+++ b/docs/source_docs/files/namespacemembers_func_0x63.html
@@ -67,10 +67,12 @@
- c -
+- calculateCollisionHullVolume()
+: Nv::Blast
- CAPNP_DECLARE_ENUM()
: capnp::schemas
- CAPNP_DECLARE_SCHEMA()
-: capnp::schemas
+: capnp::schemas
- Colinear()
: VHACD
- ComputeAlignedPoint()
diff --git a/docs/source_docs/files/namespacemembers_func_c.html b/docs/source_docs/files/namespacemembers_func_c.html
index 5c35e60e..0f6dc6a5 100755
--- a/docs/source_docs/files/namespacemembers_func_c.html
+++ b/docs/source_docs/files/namespacemembers_func_c.html
@@ -45,11 +45,14 @@
- c -
+- calculateCollisionHullVolume()
+: Nv::Blast
+
- CAPNP_DECLARE_ENUM()
: capnp::schemas
- CAPNP_DECLARE_SCHEMA()
-: capnp::schemas
+: capnp::schemas
- Colinear()
: VHACD
diff --git a/docs/source_docs/files/navtreedata.js b/docs/source_docs/files/navtreedata.js
index ed0c9fae..81cbb62f 100755
--- a/docs/source_docs/files/navtreedata.js
+++ b/docs/source_docs/files/navtreedata.js
@@ -35,25 +35,25 @@ var NAVTREEINDEX =
[
"_asset_d_t_o_8h.html",
"_float_math_8h.html#af91f007d37b043bd7e70b4d2de1fbd25",
-"_nv_blast_ext_damage_accelerator_a_a_b_b_tree_8h.html",
-"_nv_blast_include_windows_8h.html#a2e4c78354db40d44bea894e472550c11",
-"bt_aligned_object_array_8h.html#af679f7a130fd285561d684b76238ecd4",
-"class_nv_1_1_blast_1_1_asset.html#aafdb7951c9cc382b47f65c9bcd68e2a2",
-"class_nv_1_1_blast_1_1_ext_px_family.html#a88523d45695e7d5b10637e04aef06e02",
-"class_nv_1_1_blast_1_1_fixed_priority_queue.html#a844a4e0b003af40f2af784796639a455",
-"class_nv_1_1_blast_1_1_mesh_noiser.html#a31a25ebefe7e32bab14f61e2c3d0c33ca1eb6e0f13a84ebd34e2056d50a0fe24e",
-"class_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk_1_1_builder.html#a8003c3febbd13fe2ce9def8ef04fa56b",
-"class_nv_1_1_blast_1_1_serialization_1_1_nv_blast_support_graph_1_1_builder.html#aaf0f530c1e8dc21afce97841899072a0",
-"class_nv_1_1_blast_1_1_serialization_1_1_px_vec3_1_1_reader.html#a18078e4598afd1157fc4c96f9b639d7b",
-"class_nv_1_1_blast_1_1_tk_asset.html#a0de445e50e18aa5df7a7374c13793005",
-"class_v_h_a_c_d_1_1_i_v_h_a_c_d.html#ab44d0e809b5e313b4e721aab6d1aa2f2",
-"class_v_h_a_c_d_1_1_vec2.html#ad706725b6922de681abee809f15b7e7a",
-"functions_i.html",
-"group__foundation.html#gaf3a2e42fdfaeb8ba7832216b3fd8f8bd",
-"struct_nv_1_1_blast_1_1_edge_to_triangles.html#ac789134fae1cf431cf298dc71a7dc4c3",
-"struct_nv_1_1_blast_1_1_poly_vert.html#aeedaedbf387cbd04889f4dd54152e252",
-"struct_nv_blast_actor.html",
-"vhacd_mesh_8h.html#a09d737ec45c0c0ae479ac780ed2c6beb"
+"_nv_blast_ext_custom_profiler_8h_source.html",
+"_nv_blast_include_windows_8h.html#a2d7186e4a6dfcc0011461ce1e8b70a05",
+"bt_aligned_object_array_8h.html#abbaa34c72a791d366573e6e25e0bf702",
+"class_nv_1_1_blast_1_1_asset.html#aa65e7c5b0355422e0021ffd25042b20a",
+"class_nv_1_1_blast_1_1_ext_px_family.html#a680c32f05f9b7066e22ef7d196f593bb",
+"class_nv_1_1_blast_1_1_fixed_priority_queue.html#a7127664503056837ccaf338909e59652",
+"class_nv_1_1_blast_1_1_mesh_impl.html#afd0a2a856078f362d0c0f5f2da1ba03e",
+"class_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk_1_1_builder.html#a58532ea248ebfb3d3d673a571da8f8d5",
+"class_nv_1_1_blast_1_1_serialization_1_1_nv_blast_support_graph_1_1_builder.html#aabf5a08198127450ed2a2c7fb2fb8b8c",
+"class_nv_1_1_blast_1_1_serialization_1_1_px_vec3_1_1_pipeline.html#af7c9a70a55486aea7db8ab70a2cc911b",
+"class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html#a65b02bd59ca313d134c95747fba56ea2",
+"class_v_h_a_c_d_1_1_i_v_h_a_c_d.html#a88311964256d4f890c1c4bc1cfe1e34b",
+"class_v_h_a_c_d_1_1_vec2.html#abe0522604a99ece19867d601ca21f1e5",
+"functions_func_z.html",
+"group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e",
+"struct_nv_1_1_blast_1_1_edge_to_triangles.html#a70cb4d757a5e60e392ed88043c08664b",
+"struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#ad7fc6cfbd651eef3d621e14df664fc4c",
+"struct_nv_1_1_blast_1_1_vrt_position_comparator.html",
+"vhacd_manifold_mesh_8h.html#a922080a88d085134e2874f362840edb6"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/docs/source_docs/files/navtreeindex1.js b/docs/source_docs/files/navtreeindex1.js
index 9c82ee1a..2ef0c2a4 100755
--- a/docs/source_docs/files/navtreeindex1.js
+++ b/docs/source_docs/files/navtreeindex1.js
@@ -166,7 +166,7 @@ var NAVTREEINDEX1 =
"_nv_blast_ext_authoring_fracture_tool_impl_8h.html#a83271d24d04e44d4b938de44bce332e8":[4,0,0,1,1,1,6,2],
"_nv_blast_ext_authoring_fracture_tool_impl_8h_source.html":[4,0,0,1,1,1,6],
"_nv_blast_ext_authoring_internal_common_8h.html":[4,0,0,1,2,1,0],
-"_nv_blast_ext_authoring_internal_common_8h.html#a07798b57f728802d367a7efbea3ce3a7":[4,0,0,1,2,1,0,11],
+"_nv_blast_ext_authoring_internal_common_8h.html#a07798b57f728802d367a7efbea3ce3a7":[4,0,0,1,2,1,0,12],
"_nv_blast_ext_authoring_internal_common_8h.html#a1278adb36f840dc5e957ce2b34b46322":[4,0,0,1,2,1,0,4],
"_nv_blast_ext_authoring_internal_common_8h.html#a2dbf0cc037620db35223513e817444f7":[4,0,0,1,2,1,0,8],
"_nv_blast_ext_authoring_internal_common_8h.html#a2dbf0cc037620db35223513e817444f7a34e384d7641d38d0e6f9e601f5d868ac":[4,0,0,1,2,1,0,8,2],
@@ -175,13 +175,14 @@ var NAVTREEINDEX1 =
"_nv_blast_ext_authoring_internal_common_8h.html#a2dbf0cc037620db35223513e817444f7af9063b45980bcdd587cd7b7be4444152":[4,0,0,1,2,1,0,8,3],
"_nv_blast_ext_authoring_internal_common_8h.html#a32c55d4d4c220508c3b7b73a88015c22":[4,0,0,1,2,1,0,6],
"_nv_blast_ext_authoring_internal_common_8h.html#a33b5ebc62b7fb0364e3ae3575380142b":[4,0,0,1,2,1,0,7],
-"_nv_blast_ext_authoring_internal_common_8h.html#a44d0b01b83d001724a34646ec96d17f0":[4,0,0,1,2,1,0,10],
-"_nv_blast_ext_authoring_internal_common_8h.html#a5f4aa5b6b2451711fccf09757bdd2e1e":[4,0,0,1,2,1,0,12],
-"_nv_blast_ext_authoring_internal_common_8h.html#a7bba8d1f555e341010029032391276a6":[4,0,0,1,2,1,0,9],
+"_nv_blast_ext_authoring_internal_common_8h.html#a44d0b01b83d001724a34646ec96d17f0":[4,0,0,1,2,1,0,11],
+"_nv_blast_ext_authoring_internal_common_8h.html#a5f4aa5b6b2451711fccf09757bdd2e1e":[4,0,0,1,2,1,0,13],
+"_nv_blast_ext_authoring_internal_common_8h.html#a7bba8d1f555e341010029032391276a6":[4,0,0,1,2,1,0,10],
"_nv_blast_ext_authoring_internal_common_8h.html#aa8f38c265574616c9326504a5d9919f7":[4,0,0,1,2,1,0,5],
-"_nv_blast_ext_authoring_internal_common_8h.html#ab18c3161481f8a05cd11866ef1afbd9e":[4,0,0,1,2,1,0,15],
-"_nv_blast_ext_authoring_internal_common_8h.html#ab77f76686c61a4a62d1aabb5e7b9c20a":[4,0,0,1,2,1,0,13],
-"_nv_blast_ext_authoring_internal_common_8h.html#acf1aa675b24e661db37949852a97b58f":[4,0,0,1,2,1,0,14],
+"_nv_blast_ext_authoring_internal_common_8h.html#ab18c3161481f8a05cd11866ef1afbd9e":[4,0,0,1,2,1,0,16],
+"_nv_blast_ext_authoring_internal_common_8h.html#ab77f76686c61a4a62d1aabb5e7b9c20a":[4,0,0,1,2,1,0,14],
+"_nv_blast_ext_authoring_internal_common_8h.html#acf1aa675b24e661db37949852a97b58f":[4,0,0,1,2,1,0,15],
+"_nv_blast_ext_authoring_internal_common_8h.html#ad7f758469903c6a753a827ee1525a1e8":[4,0,0,1,2,1,0,9],
"_nv_blast_ext_authoring_internal_common_8h_source.html":[4,0,0,1,2,1,0],
"_nv_blast_ext_authoring_mesh_8h.html":[4,0,0,1,2,0,2],
"_nv_blast_ext_authoring_mesh_8h_source.html":[4,0,0,1,2,0,2],
@@ -248,6 +249,5 @@ var NAVTREEINDEX1 =
"_nv_blast_ext_custom_profiler_8h.html":[4,0,0,1,5,0,0],
"_nv_blast_ext_custom_profiler_8h.html#aa1585207662452977fb8b6593e71f40c":[4,0,0,1,5,0,0,3],
"_nv_blast_ext_custom_profiler_8h.html#aa73cff190baa0fe10aa4b5d21dd5a7ef":[4,0,0,1,5,0,0,4],
-"_nv_blast_ext_custom_profiler_8h.html#ac2330888dc0d7693449501ca70ce0b18":[4,0,0,1,5,0,0,2],
-"_nv_blast_ext_custom_profiler_8h_source.html":[4,0,0,1,5,0,0]
+"_nv_blast_ext_custom_profiler_8h.html#ac2330888dc0d7693449501ca70ce0b18":[4,0,0,1,5,0,0,2]
};
diff --git a/docs/source_docs/files/navtreeindex10.js b/docs/source_docs/files/navtreeindex10.js
index 38672d94..3827de74 100755
--- a/docs/source_docs/files/navtreeindex10.js
+++ b/docs/source_docs/files/navtreeindex10.js
@@ -1,5 +1,8 @@
var NAVTREEINDEX10 =
{
+"class_nv_1_1_blast_1_1_serialization_1_1_nv_blast_support_graph_1_1_builder.html#aabf5a08198127450ed2a2c7fb2fb8b8c":[3,0,2,0,1,7,1,31],
+"class_nv_1_1_blast_1_1_serialization_1_1_nv_blast_support_graph_1_1_builder.html#aac9c536fc46a4c641d2a49d105e8d025":[3,0,2,0,1,7,1,22],
+"class_nv_1_1_blast_1_1_serialization_1_1_nv_blast_support_graph_1_1_builder.html#aacbc78e470fe540313fee3b295a52d4d":[3,0,2,0,1,7,1,32],
"class_nv_1_1_blast_1_1_serialization_1_1_nv_blast_support_graph_1_1_builder.html#aaf0f530c1e8dc21afce97841899072a0":[3,0,2,0,1,7,1,36],
"class_nv_1_1_blast_1_1_serialization_1_1_nv_blast_support_graph_1_1_builder.html#ab42e2b660b5f7c3b991106f5ea9afe4e":[3,0,2,0,1,7,1,13],
"class_nv_1_1_blast_1_1_serialization_1_1_nv_blast_support_graph_1_1_builder.html#ab9ce6a216012d0ce29a7fe3fb9d8fdf6":[3,0,2,0,1,7,1,33],
@@ -246,8 +249,5 @@ var NAVTREEINDEX10 =
"class_nv_1_1_blast_1_1_serialization_1_1_px_vec3_1_1_pipeline.html#a3a35f300ad23a4a9e0b6a7f45e0b69e1":[3,0,2,0,1,12,2,4],
"class_nv_1_1_blast_1_1_serialization_1_1_px_vec3_1_1_pipeline.html#a581325c0beb18b3ab07c6e11734a25dd":[3,0,2,0,1,12,2,0],
"class_nv_1_1_blast_1_1_serialization_1_1_px_vec3_1_1_pipeline.html#aae02c44f7a2184900f49133597053ec9":[3,0,2,0,1,12,2,3],
-"class_nv_1_1_blast_1_1_serialization_1_1_px_vec3_1_1_pipeline.html#ad0eba362cd4a81740fd3edd7bb00f12f":[3,0,2,0,1,12,2,2],
-"class_nv_1_1_blast_1_1_serialization_1_1_px_vec3_1_1_pipeline.html#af7c9a70a55486aea7db8ab70a2cc911b":[3,0,2,0,1,12,2,1],
-"class_nv_1_1_blast_1_1_serialization_1_1_px_vec3_1_1_reader.html":[3,0,2,0,1,12,3],
-"class_nv_1_1_blast_1_1_serialization_1_1_px_vec3_1_1_reader.html#a163688ac13e1018ab321f1058aa4be61":[3,0,2,0,1,12,3,5]
+"class_nv_1_1_blast_1_1_serialization_1_1_px_vec3_1_1_pipeline.html#ad0eba362cd4a81740fd3edd7bb00f12f":[3,0,2,0,1,12,2,2]
};
diff --git a/docs/source_docs/files/navtreeindex11.js b/docs/source_docs/files/navtreeindex11.js
index 69e60615..10c2551c 100755
--- a/docs/source_docs/files/navtreeindex11.js
+++ b/docs/source_docs/files/navtreeindex11.js
@@ -1,5 +1,8 @@
var NAVTREEINDEX11 =
{
+"class_nv_1_1_blast_1_1_serialization_1_1_px_vec3_1_1_pipeline.html#af7c9a70a55486aea7db8ab70a2cc911b":[3,0,2,0,1,12,2,1],
+"class_nv_1_1_blast_1_1_serialization_1_1_px_vec3_1_1_reader.html":[3,0,2,0,1,12,3],
+"class_nv_1_1_blast_1_1_serialization_1_1_px_vec3_1_1_reader.html#a163688ac13e1018ab321f1058aa4be61":[3,0,2,0,1,12,3,5],
"class_nv_1_1_blast_1_1_serialization_1_1_px_vec3_1_1_reader.html#a18078e4598afd1157fc4c96f9b639d7b":[3,0,2,0,1,12,3,1],
"class_nv_1_1_blast_1_1_serialization_1_1_px_vec3_1_1_reader.html#a1df7acd67d5bee9881688bc1df6588fb":[3,0,2,0,1,12,3,4],
"class_nv_1_1_blast_1_1_serialization_1_1_px_vec3_1_1_reader.html#a3a35f300ad23a4a9e0b6a7f45e0b69e1":[3,0,2,0,1,12,3,12],
@@ -246,8 +249,5 @@ var NAVTREEINDEX11 =
"class_nv_1_1_blast_1_1_tk_actor_impl.html#af2403d51a28475e3c6c362f0fbdc8c53":[3,0,2,0,178,34],
"class_nv_1_1_blast_1_1_tk_actor_impl.html#af66fd11ec8170f46385e1b5445316962":[3,0,2,0,178,5],
"class_nv_1_1_blast_1_1_tk_actor_impl.html#af7207df8d0734ce6f84157d85b76fe64":[3,0,2,0,178,30],
-"class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html":[3,0,2,0,178,0],
-"class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html#a65b02bd59ca313d134c95747fba56ea2":[3,0,2,0,178,0,0],
-"class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html#ae99927c2831e7d1730e1cfb89ba7a5f5":[3,0,2,0,178,0,1],
-"class_nv_1_1_blast_1_1_tk_asset.html":[3,0,2,0,179]
+"class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html":[3,0,2,0,178,0]
};
diff --git a/docs/source_docs/files/navtreeindex12.js b/docs/source_docs/files/navtreeindex12.js
index bad2975e..4837c161 100755
--- a/docs/source_docs/files/navtreeindex12.js
+++ b/docs/source_docs/files/navtreeindex12.js
@@ -1,5 +1,8 @@
var NAVTREEINDEX12 =
{
+"class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html#a65b02bd59ca313d134c95747fba56ea2":[3,0,2,0,178,0,0],
+"class_nv_1_1_blast_1_1_tk_actor_impl_1_1_joint_it.html#ae99927c2831e7d1730e1cfb89ba7a5f5":[3,0,2,0,178,0,1],
+"class_nv_1_1_blast_1_1_tk_asset.html":[3,0,2,0,179],
"class_nv_1_1_blast_1_1_tk_asset.html#a0de445e50e18aa5df7a7374c13793005":[3,0,2,0,179,1],
"class_nv_1_1_blast_1_1_tk_asset.html#a108f015330d03fb870bff1a5fd1d849f":[3,0,2,0,179,5],
"class_nv_1_1_blast_1_1_tk_asset.html#a42d4936919a993bb80476d9f7d678cf0":[3,0,2,0,179,4],
@@ -246,8 +249,5 @@ var NAVTREEINDEX12 =
"class_v_h_a_c_d_1_1_i_v_h_a_c_d.html#a509db70fbea45d307648b465e7c390f5":[3,0,5,3,5],
"class_v_h_a_c_d_1_1_i_v_h_a_c_d.html#a60209a4f26fe0102db4cbb955ee5d76f":[3,0,5,3,15],
"class_v_h_a_c_d_1_1_i_v_h_a_c_d.html#a6841416086ba66fb28973a1f3aee1579":[3,0,5,3,8],
-"class_v_h_a_c_d_1_1_i_v_h_a_c_d.html#a852ffa5fb94a7a1716ffdf5cb868ec84":[3,0,5,3,18],
-"class_v_h_a_c_d_1_1_i_v_h_a_c_d.html#a88311964256d4f890c1c4bc1cfe1e34b":[3,0,5,3,14],
-"class_v_h_a_c_d_1_1_i_v_h_a_c_d.html#a99b24bad6d1ec1f6837da24540ba751b":[3,0,5,3,17],
-"class_v_h_a_c_d_1_1_i_v_h_a_c_d.html#aac57f34e2958b6c05e14b8555e950b28":[3,0,5,3,10]
+"class_v_h_a_c_d_1_1_i_v_h_a_c_d.html#a852ffa5fb94a7a1716ffdf5cb868ec84":[3,0,5,3,18]
};
diff --git a/docs/source_docs/files/navtreeindex13.js b/docs/source_docs/files/navtreeindex13.js
index fcd49735..b39d597d 100755
--- a/docs/source_docs/files/navtreeindex13.js
+++ b/docs/source_docs/files/navtreeindex13.js
@@ -1,5 +1,8 @@
var NAVTREEINDEX13 =
{
+"class_v_h_a_c_d_1_1_i_v_h_a_c_d.html#a88311964256d4f890c1c4bc1cfe1e34b":[3,0,5,3,14],
+"class_v_h_a_c_d_1_1_i_v_h_a_c_d.html#a99b24bad6d1ec1f6837da24540ba751b":[3,0,5,3,17],
+"class_v_h_a_c_d_1_1_i_v_h_a_c_d.html#aac57f34e2958b6c05e14b8555e950b28":[3,0,5,3,10],
"class_v_h_a_c_d_1_1_i_v_h_a_c_d.html#ab44d0e809b5e313b4e721aab6d1aa2f2":[3,0,5,3,12],
"class_v_h_a_c_d_1_1_i_v_h_a_c_d.html#aba4af1756316fce9d48261e1f8557d60":[3,0,5,3,6],
"class_v_h_a_c_d_1_1_i_v_h_a_c_d.html#ae09d26fa960701f3c3c9cd3f6e5d3ead":[3,0,5,3,7],
@@ -246,8 +249,5 @@ var NAVTREEINDEX13 =
"class_v_h_a_c_d_1_1_vec2.html#a83d6e63bc1be92e76bc9503880ce49f6":[3,0,5,18,9],
"class_v_h_a_c_d_1_1_vec2.html#a886b68dd293114400d2a6e8c110aed53":[3,0,5,18,16],
"class_v_h_a_c_d_1_1_vec2.html#ab86ac57937edb7f92db17d0fa6dca3db":[3,0,5,18,20],
-"class_v_h_a_c_d_1_1_vec2.html#abc8719b48aae7e1fe3f55d025da8dce7":[3,0,5,18,22],
-"class_v_h_a_c_d_1_1_vec2.html#abe0522604a99ece19867d601ca21f1e5":[3,0,5,18,11],
-"class_v_h_a_c_d_1_1_vec2.html#ac1b8bdcf1c27536dd74ac52e16d0f108":[3,0,5,18,17],
-"class_v_h_a_c_d_1_1_vec2.html#acc2884431b3c65267037d36b9b93c414":[3,0,5,18,23]
+"class_v_h_a_c_d_1_1_vec2.html#abc8719b48aae7e1fe3f55d025da8dce7":[3,0,5,18,22]
};
diff --git a/docs/source_docs/files/navtreeindex14.js b/docs/source_docs/files/navtreeindex14.js
index 015ba838..a156663e 100755
--- a/docs/source_docs/files/navtreeindex14.js
+++ b/docs/source_docs/files/navtreeindex14.js
@@ -1,5 +1,8 @@
var NAVTREEINDEX14 =
{
+"class_v_h_a_c_d_1_1_vec2.html#abe0522604a99ece19867d601ca21f1e5":[3,0,5,18,11],
+"class_v_h_a_c_d_1_1_vec2.html#ac1b8bdcf1c27536dd74ac52e16d0f108":[3,0,5,18,17],
+"class_v_h_a_c_d_1_1_vec2.html#acc2884431b3c65267037d36b9b93c414":[3,0,5,18,23],
"class_v_h_a_c_d_1_1_vec2.html#ad706725b6922de681abee809f15b7e7a":[3,0,5,18,14],
"class_v_h_a_c_d_1_1_vec2.html#adb5fda98bb2d4275091285594ec4b442":[3,0,5,18,3],
"class_v_h_a_c_d_1_1_vec2.html#ae4867eff034ff23c6600e07638cfac0b":[3,0,5,18,4],
@@ -246,8 +249,5 @@ var NAVTREEINDEX14 =
"functions_func_v.html":[3,3,1,20],
"functions_func_w.html":[3,3,1,21],
"functions_func_x.html":[3,3,1,22],
-"functions_func_y.html":[3,3,1,23],
-"functions_func_z.html":[3,3,1,24],
-"functions_g.html":[3,3,0,8],
-"functions_h.html":[3,3,0,9]
+"functions_func_y.html":[3,3,1,23]
};
diff --git a/docs/source_docs/files/navtreeindex15.js b/docs/source_docs/files/navtreeindex15.js
index 91b8048d..e7455c40 100755
--- a/docs/source_docs/files/navtreeindex15.js
+++ b/docs/source_docs/files/navtreeindex15.js
@@ -1,5 +1,8 @@
var NAVTREEINDEX15 =
{
+"functions_func_z.html":[3,3,1,24],
+"functions_g.html":[3,3,0,8],
+"functions_h.html":[3,3,0,9],
"functions_i.html":[3,3,0,10],
"functions_j.html":[3,3,0,11],
"functions_l.html":[3,3,0,12],
@@ -46,14 +49,14 @@ var NAVTREEINDEX15 =
"functions_x.html":[3,3,0,24],
"functions_y.html":[3,3,0,25],
"functions_z.html":[3,3,0,26],
-"globals.html":[4,1,0],
"globals.html":[4,1,0,0],
+"globals.html":[4,1,0],
"globals_a.html":[4,1,0,1],
"globals_b.html":[4,1,0,2],
"globals_c.html":[4,1,0,3],
"globals_d.html":[4,1,0,4],
-"globals_defs.html":[4,1,4],
"globals_defs.html":[4,1,4,0],
+"globals_defs.html":[4,1,4],
"globals_defs_a.html":[4,1,4,1],
"globals_defs_b.html":[4,1,4,2],
"globals_defs_c.html":[4,1,4,3],
@@ -71,8 +74,8 @@ var NAVTREEINDEX15 =
"globals_defs_w.html":[4,1,4,15],
"globals_e.html":[4,1,0,5],
"globals_f.html":[4,1,0,6],
-"globals_func.html":[4,1,1,0],
"globals_func.html":[4,1,1],
+"globals_func.html":[4,1,1,0],
"globals_func_b.html":[4,1,1,1],
"globals_func_c.html":[4,1,1,2],
"globals_func_d.html":[4,1,1,3],
@@ -118,40 +121,40 @@ var NAVTREEINDEX15 =
"group__foundation.html#ga19a2d2985857d5965342df4f355a6c0e":[1,0,9],
"group__foundation.html#ga1ac455e380b982cc3c4b696c9c0116e1":[1,0,59],
"group__foundation.html#ga1ac455e380b982cc3c4b696c9c0116e1":[4,0,0,3,0,4,58],
-"group__foundation.html#ga2800fec521cb345698308d35a2507ef8":[1,0,62],
"group__foundation.html#ga2800fec521cb345698308d35a2507ef8":[4,0,0,3,0,4,61],
+"group__foundation.html#ga2800fec521cb345698308d35a2507ef8":[1,0,62],
"group__foundation.html#ga28bcef106e19cb60cd318a30acd14f05":[1,0,58],
"group__foundation.html#ga28bcef106e19cb60cd318a30acd14f05":[4,0,0,3,0,4,57],
-"group__foundation.html#ga2f137f0791dcbf897e62583f14399f65":[1,0,18],
"group__foundation.html#ga2f137f0791dcbf897e62583f14399f65":[4,0,0,3,0,4,17],
+"group__foundation.html#ga2f137f0791dcbf897e62583f14399f65":[1,0,18],
"group__foundation.html#ga32dc60ff799b586ada4b484b0222dbd4":[1,0,10],
"group__foundation.html#ga32dc60ff799b586ada4b484b0222dbd4":[4,0,0,3,0,4,9],
"group__foundation.html#ga3399c6295a0a286d2753b466baec803a":[1,0,6],
"group__foundation.html#ga3399c6295a0a286d2753b466baec803a":[4,0,0,3,0,4,5],
-"group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0":[4,0,0,3,0,4,28],
"group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0":[1,0,29],
+"group__foundation.html#ga36a01a4a51968418a26b06da7e1ad5d0":[4,0,0,3,0,4,28],
"group__foundation.html#ga370315a9675c8a022aa13938c24795cd":[1,0,12],
"group__foundation.html#ga370315a9675c8a022aa13938c24795cd":[4,0,0,3,0,4,11],
"group__foundation.html#ga3cc94c20a8e2edb457fe19d591d130f6":[1,0,65],
"group__foundation.html#ga3cc94c20a8e2edb457fe19d591d130f6":[4,0,0,3,0,4,64],
"group__foundation.html#ga3eaed087256d1041f293b4ee82db4d46":[1,0,57],
"group__foundation.html#ga3eaed087256d1041f293b4ee82db4d46":[4,0,0,3,0,4,56],
-"group__foundation.html#ga3ebfc6594317671a0dee92ee3a442097":[1,0,47],
"group__foundation.html#ga3ebfc6594317671a0dee92ee3a442097":[4,0,0,3,0,4,46],
+"group__foundation.html#ga3ebfc6594317671a0dee92ee3a442097":[1,0,47],
"group__foundation.html#ga3f573c8d2c64b62808208d2821115a9b":[4,0,0,3,0,4,48],
"group__foundation.html#ga3f573c8d2c64b62808208d2821115a9b":[1,0,49],
"group__foundation.html#ga3fbf498d4752502d264017ea75e9a18d":[1,0,60],
"group__foundation.html#ga3fbf498d4752502d264017ea75e9a18d":[4,0,0,3,0,4,59],
"group__foundation.html#ga42f9ade4a1a0e3546f020cf24f41a2fe":[1,0,31],
"group__foundation.html#ga42f9ade4a1a0e3546f020cf24f41a2fe":[4,0,0,3,0,4,30],
-"group__foundation.html#ga436bd62778801fb05c2e3feb74469fc2":[1,0,23],
"group__foundation.html#ga436bd62778801fb05c2e3feb74469fc2":[4,0,0,3,0,4,22],
+"group__foundation.html#ga436bd62778801fb05c2e3feb74469fc2":[1,0,23],
"group__foundation.html#ga4986f9a9ce04c5584456e72fd08b954d":[1,0,71],
"group__foundation.html#ga4986f9a9ce04c5584456e72fd08b954d":[4,0,0,3,0,4,70],
-"group__foundation.html#ga4c0c4cd5144f3366fc6e6a2c30a68c37":[4,0,0,3,0,4,52],
"group__foundation.html#ga4c0c4cd5144f3366fc6e6a2c30a68c37":[1,0,53],
-"group__foundation.html#ga5186e106b0627ce43b3ed7c6bea75252":[4,0,0,3,0,4,19],
+"group__foundation.html#ga4c0c4cd5144f3366fc6e6a2c30a68c37":[4,0,0,3,0,4,52],
"group__foundation.html#ga5186e106b0627ce43b3ed7c6bea75252":[1,0,20],
+"group__foundation.html#ga5186e106b0627ce43b3ed7c6bea75252":[4,0,0,3,0,4,19],
"group__foundation.html#ga57eadff0b64e7b4886a481d0539d6096":[4,0,0,3,0,4,34],
"group__foundation.html#ga57eadff0b64e7b4886a481d0539d6096":[1,0,35],
"group__foundation.html#ga581f7937204f23d8f9603643bd847caa":[4,0,0,3,0,4,68],
@@ -164,10 +167,10 @@ var NAVTREEINDEX15 =
"group__foundation.html#ga5d408962e8f40688ed6e1822476f4df8":[1,0,54],
"group__foundation.html#ga5da4978ba2d6d5dba81650d4ba75ca33":[1,0,26],
"group__foundation.html#ga5da4978ba2d6d5dba81650d4ba75ca33":[4,0,0,3,0,4,25],
-"group__foundation.html#ga61b0b6f3fcd356e6803e02ba39d1748f":[1,0,72],
"group__foundation.html#ga61b0b6f3fcd356e6803e02ba39d1748f":[4,0,0,3,0,4,71],
-"group__foundation.html#ga6669bc19a93cd4e2ca5b7a91654e506d":[1,0,64],
+"group__foundation.html#ga61b0b6f3fcd356e6803e02ba39d1748f":[1,0,72],
"group__foundation.html#ga6669bc19a93cd4e2ca5b7a91654e506d":[4,0,0,3,0,4,63],
+"group__foundation.html#ga6669bc19a93cd4e2ca5b7a91654e506d":[1,0,64],
"group__foundation.html#ga6739a1df7c5ae91e0d759cb4481b84dd":[4,0,0,3,0,4,73],
"group__foundation.html#ga6739a1df7c5ae91e0d759cb4481b84dd":[1,0,74],
"group__foundation.html#ga67b78c1675d9669274bf61e170ad8d68":[4,0,0,3,0,4,44],
@@ -180,12 +183,12 @@ var NAVTREEINDEX15 =
"group__foundation.html#ga741b29f3573822e82729569f0d7d7425":[4,0,0,3,0,4,50],
"group__foundation.html#ga75e36581442a14a7187644fd92b799f5":[4,0,0,3,0,4,12],
"group__foundation.html#ga75e36581442a14a7187644fd92b799f5":[1,0,13],
-"group__foundation.html#ga760e0cc06a731a203709b1341adea8aa":[4,0,0,3,0,4,65],
"group__foundation.html#ga760e0cc06a731a203709b1341adea8aa":[1,0,66],
+"group__foundation.html#ga760e0cc06a731a203709b1341adea8aa":[4,0,0,3,0,4,65],
"group__foundation.html#ga7bad965576a26ea4543e6717f2a3367b":[1,0,4],
"group__foundation.html#ga7bad965576a26ea4543e6717f2a3367b":[4,0,0,3,0,4,3],
-"group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed":[1,0,40],
"group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed":[4,0,0,3,0,4,39],
+"group__foundation.html#ga7c2d7c9e736e71bfdf8524c2155a13ed":[1,0,40],
"group__foundation.html#ga8023fffe9c79bf224a19de4e608b7644":[4,0,0,3,0,4,24],
"group__foundation.html#ga8023fffe9c79bf224a19de4e608b7644":[1,0,25],
"group__foundation.html#ga82f2b8161bc1f7e726ac645c200769a3":[4,0,0,3,0,4,21],
@@ -196,28 +199,28 @@ var NAVTREEINDEX15 =
"group__foundation.html#ga8803531575c33ce69a53cc887908fc33":[4,0,0,3,0,4,60],
"group__foundation.html#ga883c8e56338740a881af1e1071fd19cc":[1,0,38],
"group__foundation.html#ga883c8e56338740a881af1e1071fd19cc":[4,0,0,3,0,4,37],
-"group__foundation.html#ga8b9c3f255c9417e6dea000798efe5e14":[4,0,0,3,0,4,45],
"group__foundation.html#ga8b9c3f255c9417e6dea000798efe5e14":[1,0,46],
+"group__foundation.html#ga8b9c3f255c9417e6dea000798efe5e14":[4,0,0,3,0,4,45],
"group__foundation.html#ga8d631fdab8fe45ea1e4dad3caa8f7a95":[1,0,36],
"group__foundation.html#ga8d631fdab8fe45ea1e4dad3caa8f7a95":[4,0,0,3,0,4,35],
-"group__foundation.html#ga9be1389e02a540f72e549e47ebd69ad3":[1,0,8],
"group__foundation.html#ga9be1389e02a540f72e549e47ebd69ad3":[4,0,0,3,0,4,7],
+"group__foundation.html#ga9be1389e02a540f72e549e47ebd69ad3":[1,0,8],
"group__foundation.html#ga9ca5b4b95cee3052f5a81085b93ea0b0":[4,0,0,3,0,4,20],
"group__foundation.html#ga9ca5b4b95cee3052f5a81085b93ea0b0":[1,0,21],
-"group__foundation.html#ga9cb70a50d55e516eca829ff6680804d6":[1,0,39],
"group__foundation.html#ga9cb70a50d55e516eca829ff6680804d6":[4,0,0,3,0,4,38],
+"group__foundation.html#ga9cb70a50d55e516eca829ff6680804d6":[1,0,39],
"group__foundation.html#ga9f8c142fe7fa19e70ab9ed0fb2f4bbf4":[1,0,48],
"group__foundation.html#ga9f8c142fe7fa19e70ab9ed0fb2f4bbf4":[4,0,0,3,0,4,47],
-"group__foundation.html#gaa58561a6bd8c7797488a51be7bb41f57":[1,0,5],
"group__foundation.html#gaa58561a6bd8c7797488a51be7bb41f57":[4,0,0,3,0,4,4],
+"group__foundation.html#gaa58561a6bd8c7797488a51be7bb41f57":[1,0,5],
"group__foundation.html#gaa8fa59562b3ff1f6e7d157357ef13341":[1,0,28],
"group__foundation.html#gaa8fa59562b3ff1f6e7d157357ef13341":[4,0,0,3,0,4,27],
"group__foundation.html#gaaba32693e5dd5095968e0b608ad91435":[4,0,0,3,0,4,6],
"group__foundation.html#gaaba32693e5dd5095968e0b608ad91435":[1,0,7],
"group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0":[4,0,0,3,0,4,18],
"group__foundation.html#gab099143f4f29cc000cff7819bbf0f9e0":[1,0,19],
-"group__foundation.html#gabaf152fefb2013909c162f535bc34fe0":[4,0,0,3,0,4,67],
"group__foundation.html#gabaf152fefb2013909c162f535bc34fe0":[1,0,68],
+"group__foundation.html#gabaf152fefb2013909c162f535bc34fe0":[4,0,0,3,0,4,67],
"group__foundation.html#gabe5430f2c9a3661ad09593408d2389b0":[1,0,3],
"group__foundation.html#gabe5430f2c9a3661ad09593408d2389b0":[4,0,0,3,0,4,2],
"group__foundation.html#gabeef70ca4881b4e7dab66c905b6077db":[1,0,52],
@@ -228,26 +231,23 @@ var NAVTREEINDEX15 =
"group__foundation.html#gac77dc6def0440a1b6eaafe31abeaea34":[4,0,0,3,0,4,62],
"group__foundation.html#gaca12a62d0167edbf87022fc19b442f3f":[1,0,17],
"group__foundation.html#gaca12a62d0167edbf87022fc19b442f3f":[4,0,0,3,0,4,16],
-"group__foundation.html#gacf9618bbfb96b6c415429e69a922d7cd":[4,0,0,3,0,4,36],
"group__foundation.html#gacf9618bbfb96b6c415429e69a922d7cd":[1,0,37],
-"group__foundation.html#gad273b402181cbec391a683c6ea90ac48":[1,0,73],
+"group__foundation.html#gacf9618bbfb96b6c415429e69a922d7cd":[4,0,0,3,0,4,36],
"group__foundation.html#gad273b402181cbec391a683c6ea90ac48":[4,0,0,3,0,4,72],
-"group__foundation.html#gadbb99bc24045921bec5225ba8f31e49b":[1,0,70],
+"group__foundation.html#gad273b402181cbec391a683c6ea90ac48":[1,0,73],
"group__foundation.html#gadbb99bc24045921bec5225ba8f31e49b":[4,0,0,3,0,4,69],
+"group__foundation.html#gadbb99bc24045921bec5225ba8f31e49b":[1,0,70],
"group__foundation.html#gadc7c92598000916bb7dc9870cbdf3673":[1,0,11],
"group__foundation.html#gadc7c92598000916bb7dc9870cbdf3673":[4,0,0,3,0,4,10],
-"group__foundation.html#gae077cc2ead6684130598df6505f35047":[4,0,0,3,0,4,49],
"group__foundation.html#gae077cc2ead6684130598df6505f35047":[1,0,50],
-"group__foundation.html#gae0d9bcbded673342d8eb643b3f6ab80f":[4,0,0,3,0,4,29],
+"group__foundation.html#gae077cc2ead6684130598df6505f35047":[4,0,0,3,0,4,49],
"group__foundation.html#gae0d9bcbded673342d8eb643b3f6ab80f":[1,0,30],
-"group__foundation.html#gae113833df736001a9b536ebd991a7a9f":[1,0,32],
+"group__foundation.html#gae0d9bcbded673342d8eb643b3f6ab80f":[4,0,0,3,0,4,29],
"group__foundation.html#gae113833df736001a9b536ebd991a7a9f":[4,0,0,3,0,4,31],
+"group__foundation.html#gae113833df736001a9b536ebd991a7a9f":[1,0,32],
"group__foundation.html#gae3a914c12073dca7995a96def860cbb9":[4,0,0,3,0,4,54],
"group__foundation.html#gae3a914c12073dca7995a96def860cbb9":[1,0,55],
"group__foundation.html#gae5369ee72783436b1679b593f06c038d":[1,0,14],
"group__foundation.html#gae5369ee72783436b1679b593f06c038d":[4,0,0,3,0,4,13],
-"group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e":[4,0,0,3,0,4,23],
-"group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e":[1,0,24],
-"group__foundation.html#gaf345e5634817936729c938b00cf10a25":[1,0,16],
-"group__foundation.html#gaf345e5634817936729c938b00cf10a25":[4,0,0,3,0,4,15]
+"group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e":[4,0,0,3,0,4,23]
};
diff --git a/docs/source_docs/files/navtreeindex16.js b/docs/source_docs/files/navtreeindex16.js
index 18985b0e..23319760 100755
--- a/docs/source_docs/files/navtreeindex16.js
+++ b/docs/source_docs/files/navtreeindex16.js
@@ -1,13 +1,16 @@
var NAVTREEINDEX16 =
{
+"group__foundation.html#gae9e06fb68b9ca307fa4377186da9052e":[1,0,24],
+"group__foundation.html#gaf345e5634817936729c938b00cf10a25":[4,0,0,3,0,4,15],
+"group__foundation.html#gaf345e5634817936729c938b00cf10a25":[1,0,16],
"group__foundation.html#gaf3a2e42fdfaeb8ba7832216b3fd8f8bd":[4,0,0,3,0,4,40],
"group__foundation.html#gaf3a2e42fdfaeb8ba7832216b3fd8f8bd":[1,0,41],
"group__foundation.html#gaf8c6a384ad2d9150720d111c154ac570":[4,0,0,3,0,4,42],
"group__foundation.html#gaf8c6a384ad2d9150720d111c154ac570":[1,0,43],
"group__foundation.html#gafd60b0665f37480ed74e7ce61618bda7":[4,0,0,3,0,4,26],
"group__foundation.html#gafd60b0665f37480ed74e7ce61618bda7":[1,0,27],
-"group__foundation.html#gafff0169bf95189167358fd42525ea524":[1,0,44],
"group__foundation.html#gafff0169bf95189167358fd42525ea524":[4,0,0,3,0,4,43],
+"group__foundation.html#gafff0169bf95189167358fd42525ea524":[1,0,44],
"hierarchy.html":[3,2],
"index.html":[],
"modules.html":[1],
@@ -158,8 +161,8 @@ var NAVTREEINDEX16 =
"struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c":[3,0,2,0,25,6],
"struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35":[3,0,2,0,25,5],
"struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c":[3,0,2,0,25,0],
-"struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca083e487cf5083f1063904b52be3982de":[3,0,2,0,25,0,1],
"struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47":[3,0,2,0,25,0,0],
+"struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca673ab883edb6ff4c69fe85deed5ba3ff":[3,0,2,0,25,0,1],
"struct_nv_1_1_blast_1_1_cmp_shared_face.html":[3,0,2,0,26],
"struct_nv_1_1_blast_1_1_cmp_shared_face.html#a17f411532ee2ed61076e110cdd3dca2f":[3,0,2,0,26,0],
"struct_nv_1_1_blast_1_1_cmp_vec.html":[3,0,2,0,27],
@@ -246,8 +249,5 @@ var NAVTREEINDEX16 =
"struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a6dd22cefbaad1235b8835c9ac2a56676":[3,0,2,0,46,1],
"struct_nv_1_1_blast_1_1_edge_facet_intersection_data.html#a9eaeac91e248bdd89a96303cdbed5640":[3,0,2,0,46,5],
"struct_nv_1_1_blast_1_1_edge_to_triangles.html":[3,0,2,0,47],
-"struct_nv_1_1_blast_1_1_edge_to_triangles.html#a66a5922811f503f3259cb15f92f17bd5":[3,0,2,0,47,3],
-"struct_nv_1_1_blast_1_1_edge_to_triangles.html#a70cb4d757a5e60e392ed88043c08664b":[3,0,2,0,47,1],
-"struct_nv_1_1_blast_1_1_edge_to_triangles.html#a8352a92eb1d63043f23353a142dfeaf0":[3,0,2,0,47,5],
-"struct_nv_1_1_blast_1_1_edge_to_triangles.html#a9089977b271562c9c59a8c164bea593b":[3,0,2,0,47,2]
+"struct_nv_1_1_blast_1_1_edge_to_triangles.html#a66a5922811f503f3259cb15f92f17bd5":[3,0,2,0,47,3]
};
diff --git a/docs/source_docs/files/navtreeindex17.js b/docs/source_docs/files/navtreeindex17.js
index a10eef9d..9d3b8b3b 100755
--- a/docs/source_docs/files/navtreeindex17.js
+++ b/docs/source_docs/files/navtreeindex17.js
@@ -1,5 +1,8 @@
var NAVTREEINDEX17 =
{
+"struct_nv_1_1_blast_1_1_edge_to_triangles.html#a70cb4d757a5e60e392ed88043c08664b":[3,0,2,0,47,1],
+"struct_nv_1_1_blast_1_1_edge_to_triangles.html#a8352a92eb1d63043f23353a142dfeaf0":[3,0,2,0,47,5],
+"struct_nv_1_1_blast_1_1_edge_to_triangles.html#a9089977b271562c9c59a8c164bea593b":[3,0,2,0,47,2],
"struct_nv_1_1_blast_1_1_edge_to_triangles.html#ac789134fae1cf431cf298dc71a7dc4c3":[3,0,2,0,47,4],
"struct_nv_1_1_blast_1_1_edge_to_triangles.html#af8461a7114523bdc114624d99e76daa7":[3,0,2,0,47,0],
"struct_nv_1_1_blast_1_1_edge_with_parent.html":[3,0,2,0,48],
@@ -246,8 +249,5 @@ var NAVTREEINDEX17 =
"struct_nv_1_1_blast_1_1_per_triangle_additional_data.html#aeb0bb7f2575a26dda3c81de46b2486d8":[3,0,2,0,153,0],
"struct_nv_1_1_blast_1_1_plane_chunk_indexer.html":[3,0,2,0,154],
"struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a80203dd762ab3448bf15ebb38035b0c6":[3,0,2,0,154,2],
-"struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a8e162e0f4064a7371039968158c86d2f":[3,0,2,0,154,0],
-"struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#ad7fc6cfbd651eef3d621e14df664fc4c":[3,0,2,0,154,1],
-"struct_nv_1_1_blast_1_1_poly_vert.html":[3,0,2,0,156],
-"struct_nv_1_1_blast_1_1_poly_vert.html#a8ea78901480aee9ff5b42cbfa4f53efa":[3,0,2,0,156,1]
+"struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#a8e162e0f4064a7371039968158c86d2f":[3,0,2,0,154,0]
};
diff --git a/docs/source_docs/files/navtreeindex18.js b/docs/source_docs/files/navtreeindex18.js
index 8133a5e1..605349cc 100755
--- a/docs/source_docs/files/navtreeindex18.js
+++ b/docs/source_docs/files/navtreeindex18.js
@@ -1,5 +1,8 @@
var NAVTREEINDEX18 =
{
+"struct_nv_1_1_blast_1_1_plane_chunk_indexer.html#ad7fc6cfbd651eef3d621e14df664fc4c":[3,0,2,0,154,1],
+"struct_nv_1_1_blast_1_1_poly_vert.html":[3,0,2,0,156],
+"struct_nv_1_1_blast_1_1_poly_vert.html#a8ea78901480aee9ff5b42cbfa4f53efa":[3,0,2,0,156,1],
"struct_nv_1_1_blast_1_1_poly_vert.html#aeedaedbf387cbd04889f4dd54152e252":[3,0,2,0,156,0],
"struct_nv_1_1_blast_1_1_profiler_detail.html":[3,0,2,0,158],
"struct_nv_1_1_blast_1_1_profiler_detail.html#a06be79d41391dfde43f6aa02866a3c1f":[3,0,2,0,158,0],
@@ -246,8 +249,5 @@ var NAVTREEINDEX18 =
"struct_nv_1_1_blast_1_1_vertex.html#aaac433633e99222e1d4d42442eba6b18":[3,0,2,0,217,3],
"struct_nv_1_1_blast_1_1_vertex.html#abf6db15e85ed0013429dd263d6dc0e09":[3,0,2,0,217,0],
"struct_nv_1_1_blast_1_1_vrt_comp.html":[3,0,2,0,221],
-"struct_nv_1_1_blast_1_1_vrt_comp.html#a394c39b826fd05e37f7ea5403f13fb2a":[3,0,2,0,221,0],
-"struct_nv_1_1_blast_1_1_vrt_position_comparator.html":[3,0,2,0,222],
-"struct_nv_1_1_blast_1_1_vrt_position_comparator.html#a03573f86530a247194da20c946c159b9":[3,0,2,0,222,0],
-"struct_nv_1_1_blast_1_1_vrt_position_comparator.html#aaf2b5a71ca93c9365d8ddf2df3dab86c":[3,0,2,0,222,1]
+"struct_nv_1_1_blast_1_1_vrt_comp.html#a394c39b826fd05e37f7ea5403f13fb2a":[3,0,2,0,221,0]
};
diff --git a/docs/source_docs/files/navtreeindex19.js b/docs/source_docs/files/navtreeindex19.js
index c162d686..60e6b474 100644
--- a/docs/source_docs/files/navtreeindex19.js
+++ b/docs/source_docs/files/navtreeindex19.js
@@ -1,5 +1,8 @@
var NAVTREEINDEX19 =
{
+"struct_nv_1_1_blast_1_1_vrt_position_comparator.html":[3,0,2,0,222],
+"struct_nv_1_1_blast_1_1_vrt_position_comparator.html#a03573f86530a247194da20c946c159b9":[3,0,2,0,222,0],
+"struct_nv_1_1_blast_1_1_vrt_position_comparator.html#aaf2b5a71ca93c9365d8ddf2df3dab86c":[3,0,2,0,222,1],
"struct_nv_blast_actor.html":[3,0,14],
"struct_nv_blast_actor_desc.html":[3,0,15],
"struct_nv_blast_actor_desc.html#a363b057cfbee1c7ea8edb23d6b04388d":[3,0,15,0],
@@ -246,8 +249,5 @@ var NAVTREEINDEX19 =
"vhacd_i_c_hull_8h.html#af80ac6741c5c7f99f1c7db89ae70a9f3ae4636f6d8dc64f99fd3389e0b8532032":[4,0,0,1,1,1,0,0,8,2,0],
"vhacd_i_c_hull_8h.html#afe0e7ce57f81f4e0288fe80ed993c7e2":[4,0,0,1,1,1,0,0,8,1],
"vhacd_i_c_hull_8h_source.html":[4,0,0,1,1,1,0,0,8],
-"vhacd_manifold_mesh_8h.html":[4,0,0,1,1,1,0,0,9],
-"vhacd_manifold_mesh_8h.html#a922080a88d085134e2874f362840edb6":[4,0,0,1,1,1,0,0,9,4],
-"vhacd_manifold_mesh_8h_source.html":[4,0,0,1,1,1,0,0,9],
-"vhacd_mesh_8h.html":[4,0,0,1,1,1,0,0,10]
+"vhacd_manifold_mesh_8h.html":[4,0,0,1,1,1,0,0,9]
};
diff --git a/docs/source_docs/files/navtreeindex2.js b/docs/source_docs/files/navtreeindex2.js
index 46853bd9..39fbfeb6 100755
--- a/docs/source_docs/files/navtreeindex2.js
+++ b/docs/source_docs/files/navtreeindex2.js
@@ -1,5 +1,6 @@
var NAVTREEINDEX2 =
{
+"_nv_blast_ext_custom_profiler_8h_source.html":[4,0,0,1,5,0,0],
"_nv_blast_ext_damage_accelerator_a_a_b_b_tree_8h.html":[4,0,0,1,8,1,0],
"_nv_blast_ext_damage_accelerator_a_a_b_b_tree_8h_source.html":[4,0,0,1,8,1,0],
"_nv_blast_ext_damage_accelerator_internal_8h.html":[4,0,0,1,8,1,1],
@@ -248,6 +249,5 @@ var NAVTREEINDEX2 =
"_nv_blast_include_windows_8h.html#a22c56a31990574a86b40f60b6073cdba":[4,0,0,0,12,37],
"_nv_blast_include_windows_8h.html#a256fe1caeb996b1142c3eb51097fef0e":[4,0,0,0,12,15],
"_nv_blast_include_windows_8h.html#a271ce221dc9c5c8887d443008b3d718c":[4,0,0,0,12,29],
-"_nv_blast_include_windows_8h.html#a2bedaca1c6ca66de2397772910fbe140":[4,0,0,0,12,8],
-"_nv_blast_include_windows_8h.html#a2d7186e4a6dfcc0011461ce1e8b70a05":[4,0,0,0,12,22]
+"_nv_blast_include_windows_8h.html#a2bedaca1c6ca66de2397772910fbe140":[4,0,0,0,12,8]
};
diff --git a/docs/source_docs/files/navtreeindex20.js b/docs/source_docs/files/navtreeindex20.js
index ddead872..cbb9b806 100644
--- a/docs/source_docs/files/navtreeindex20.js
+++ b/docs/source_docs/files/navtreeindex20.js
@@ -1,5 +1,8 @@
var NAVTREEINDEX20 =
{
+"vhacd_manifold_mesh_8h.html#a922080a88d085134e2874f362840edb6":[4,0,0,1,1,1,0,0,9,4],
+"vhacd_manifold_mesh_8h_source.html":[4,0,0,1,1,1,0,0,9],
+"vhacd_mesh_8h.html":[4,0,0,1,1,1,0,0,10],
"vhacd_mesh_8h.html#a09d737ec45c0c0ae479ac780ed2c6beb":[4,0,0,1,1,1,0,0,10,3],
"vhacd_mesh_8h.html#a2acab39383304ada7717c4be77c72865":[4,0,0,1,1,1,0,0,10,5],
"vhacd_mesh_8h.html#a2acab39383304ada7717c4be77c72865a019eac56d2a991a065f434ba381c5ddb":[4,0,0,1,1,1,0,0,10,5,0],
diff --git a/docs/source_docs/files/navtreeindex3.js b/docs/source_docs/files/navtreeindex3.js
index fb30b21f..d123cfc3 100755
--- a/docs/source_docs/files/navtreeindex3.js
+++ b/docs/source_docs/files/navtreeindex3.js
@@ -1,5 +1,6 @@
var NAVTREEINDEX3 =
{
+"_nv_blast_include_windows_8h.html#a2d7186e4a6dfcc0011461ce1e8b70a05":[4,0,0,0,12,22],
"_nv_blast_include_windows_8h.html#a2e4c78354db40d44bea894e472550c11":[4,0,0,0,12,2],
"_nv_blast_include_windows_8h.html#a2ee511fa2fd29a9a1f0efbcb2c364b8f":[4,0,0,0,12,4],
"_nv_blast_include_windows_8h.html#a348ad07df4aceda9097d9497b78bccd9":[4,0,0,0,12,6],
@@ -248,6 +249,5 @@ var NAVTREEINDEX3 =
"bt_aligned_allocator_8h.html#ae81156ba7103afa1011e445b990041a6":[4,0,0,1,1,1,0,0,0,12],
"bt_aligned_allocator_8h.html#af50f59e1b711a0304f02b64ef1b72b8f":[4,0,0,1,1,1,0,0,0,10],
"bt_aligned_allocator_8h_source.html":[4,0,0,1,1,1,0,0,0],
-"bt_aligned_object_array_8h.html":[4,0,0,1,1,1,0,0,1],
-"bt_aligned_object_array_8h.html#abbaa34c72a791d366573e6e25e0bf702":[4,0,0,1,1,1,0,0,1,3]
+"bt_aligned_object_array_8h.html":[4,0,0,1,1,1,0,0,1]
};
diff --git a/docs/source_docs/files/navtreeindex4.js b/docs/source_docs/files/navtreeindex4.js
index 5c2e080c..707a50bf 100755
--- a/docs/source_docs/files/navtreeindex4.js
+++ b/docs/source_docs/files/navtreeindex4.js
@@ -1,5 +1,6 @@
var NAVTREEINDEX4 =
{
+"bt_aligned_object_array_8h.html#abbaa34c72a791d366573e6e25e0bf702":[4,0,0,1,1,1,0,0,1,3],
"bt_aligned_object_array_8h.html#af679f7a130fd285561d684b76238ecd4":[4,0,0,1,1,1,0,0,1,2],
"bt_aligned_object_array_8h_source.html":[4,0,0,1,1,1,0,0,1],
"bt_convex_hull_computer_8h.html":[4,0,0,1,1,1,0,0,2],
@@ -248,6 +249,5 @@ var NAVTREEINDEX4 =
"class_nv_1_1_blast_1_1_asset.html#a78770e86b346b4b756814bca14b6c331":[3,0,2,0,9,6],
"class_nv_1_1_blast_1_1_asset.html#a93a386a2854b15b238c18ac220170924":[3,0,2,0,9,7],
"class_nv_1_1_blast_1_1_asset.html#a97582e0fbb4b6c1b36ec613c850bc3b4":[3,0,2,0,9,17],
-"class_nv_1_1_blast_1_1_asset.html#a98e82fcf21d3dd57871d59d7cd49d42d":[3,0,2,0,9,9],
-"class_nv_1_1_blast_1_1_asset.html#aa65e7c5b0355422e0021ffd25042b20a":[3,0,2,0,9,4]
+"class_nv_1_1_blast_1_1_asset.html#a98e82fcf21d3dd57871d59d7cd49d42d":[3,0,2,0,9,9]
};
diff --git a/docs/source_docs/files/navtreeindex5.js b/docs/source_docs/files/navtreeindex5.js
index 846476f9..38d12a2c 100755
--- a/docs/source_docs/files/navtreeindex5.js
+++ b/docs/source_docs/files/navtreeindex5.js
@@ -1,5 +1,6 @@
var NAVTREEINDEX5 =
{
+"class_nv_1_1_blast_1_1_asset.html#aa65e7c5b0355422e0021ffd25042b20a":[3,0,2,0,9,4],
"class_nv_1_1_blast_1_1_asset.html#aafdb7951c9cc382b47f65c9bcd68e2a2":[3,0,2,0,9,11],
"class_nv_1_1_blast_1_1_asset.html#ab422282c61d3c1aca41f3ecf77c78485":[3,0,2,0,9,3],
"class_nv_1_1_blast_1_1_asset.html#ac812c016cbf9e92d54f1e4e702ff531b":[3,0,2,0,9,10],
@@ -248,6 +249,5 @@ var NAVTREEINDEX5 =
"class_nv_1_1_blast_1_1_ext_px_family.html":[3,0,2,0,77],
"class_nv_1_1_blast_1_1_ext_px_family.html#a0da64cab1fb7b93167505a52da8c74d3":[3,0,2,0,77,17],
"class_nv_1_1_blast_1_1_ext_px_family.html#a3335adf4c2c6367d98ba41f7a5f5488b":[3,0,2,0,77,13],
-"class_nv_1_1_blast_1_1_ext_px_family.html#a6406d042c43fe14fa7c260608444e4d4":[3,0,2,0,77,8],
-"class_nv_1_1_blast_1_1_ext_px_family.html#a680c32f05f9b7066e22ef7d196f593bb":[3,0,2,0,77,1]
+"class_nv_1_1_blast_1_1_ext_px_family.html#a6406d042c43fe14fa7c260608444e4d4":[3,0,2,0,77,8]
};
diff --git a/docs/source_docs/files/navtreeindex6.js b/docs/source_docs/files/navtreeindex6.js
index e51cfd6d..fbc1a8be 100755
--- a/docs/source_docs/files/navtreeindex6.js
+++ b/docs/source_docs/files/navtreeindex6.js
@@ -1,5 +1,6 @@
var NAVTREEINDEX6 =
{
+"class_nv_1_1_blast_1_1_ext_px_family.html#a680c32f05f9b7066e22ef7d196f593bb":[3,0,2,0,77,1],
"class_nv_1_1_blast_1_1_ext_px_family.html#a88523d45695e7d5b10637e04aef06e02":[3,0,2,0,77,14],
"class_nv_1_1_blast_1_1_ext_px_family.html#a8895d32707f5da13866d1cdc5e178292":[3,0,2,0,77,12],
"class_nv_1_1_blast_1_1_ext_px_family.html#a96744a318e9000a40f21d9751929bac9":[3,0,2,0,77,6],
@@ -248,6 +249,5 @@ var NAVTREEINDEX6 =
"class_nv_1_1_blast_1_1_fixed_priority_queue.html":[3,0,2,0,112],
"class_nv_1_1_blast_1_1_fixed_priority_queue.html#a1d7c1b2ff9fba34e09bb22773a3bf340":[3,0,2,0,112,7],
"class_nv_1_1_blast_1_1_fixed_priority_queue.html#a2a11aad2baa3b807fb420372914e9cd6":[3,0,2,0,112,4],
-"class_nv_1_1_blast_1_1_fixed_priority_queue.html#a3bcc1a697941a5d66ddfafc7a2e5af4d":[3,0,2,0,112,9],
-"class_nv_1_1_blast_1_1_fixed_priority_queue.html#a7127664503056837ccaf338909e59652":[3,0,2,0,112,2]
+"class_nv_1_1_blast_1_1_fixed_priority_queue.html#a3bcc1a697941a5d66ddfafc7a2e5af4d":[3,0,2,0,112,9]
};
diff --git a/docs/source_docs/files/navtreeindex7.js b/docs/source_docs/files/navtreeindex7.js
index d6dd15b1..a88f2484 100755
--- a/docs/source_docs/files/navtreeindex7.js
+++ b/docs/source_docs/files/navtreeindex7.js
@@ -1,5 +1,6 @@
var NAVTREEINDEX7 =
{
+"class_nv_1_1_blast_1_1_fixed_priority_queue.html#a7127664503056837ccaf338909e59652":[3,0,2,0,112,2],
"class_nv_1_1_blast_1_1_fixed_priority_queue.html#a844a4e0b003af40f2af784796639a455":[3,0,2,0,112,6],
"class_nv_1_1_blast_1_1_fixed_priority_queue.html#a98f870b4b97264985577689aee68bb59":[3,0,2,0,112,1],
"class_nv_1_1_blast_1_1_fixed_priority_queue.html#a9ba647089df9693a0a565dd8628cdefa":[3,0,2,0,112,8],
@@ -52,12 +53,13 @@ var NAVTREEINDEX7 =
"class_nv_1_1_blast_1_1_fracture_tool.html#a04bb5dd940274a9c8b097cc9f06d0708":[3,0,2,0,119,1],
"class_nv_1_1_blast_1_1_fracture_tool.html#a1d2f1ce4db5aab0ac6a075db607c6b2f":[3,0,2,0,119,12],
"class_nv_1_1_blast_1_1_fracture_tool.html#a247f0e36c015237002dc87675562289b":[3,0,2,0,119,3],
-"class_nv_1_1_blast_1_1_fracture_tool.html#a251738022e498b819e88536577470735":[3,0,2,0,119,26],
-"class_nv_1_1_blast_1_1_fracture_tool.html#a2d38fb6aac3c36d51d60dad428a43074":[3,0,2,0,119,32],
-"class_nv_1_1_blast_1_1_fracture_tool.html#a384be45a1310ee0652d315127e62da22":[3,0,2,0,119,30],
+"class_nv_1_1_blast_1_1_fracture_tool.html#a251738022e498b819e88536577470735":[3,0,2,0,119,27],
+"class_nv_1_1_blast_1_1_fracture_tool.html#a2d38fb6aac3c36d51d60dad428a43074":[3,0,2,0,119,33],
+"class_nv_1_1_blast_1_1_fracture_tool.html#a33c19de2bc8ea52394651d184076db5c":[3,0,2,0,119,24],
+"class_nv_1_1_blast_1_1_fracture_tool.html#a384be45a1310ee0652d315127e62da22":[3,0,2,0,119,31],
"class_nv_1_1_blast_1_1_fracture_tool.html#a44ad67ac96b11e7dad87b5ed7a788f21":[3,0,2,0,119,19],
-"class_nv_1_1_blast_1_1_fracture_tool.html#a45e8a5d3b6d98da1b44b6888a5054cce":[3,0,2,0,119,28],
-"class_nv_1_1_blast_1_1_fracture_tool.html#a4c3308b909153982aded9366f9d3ee7c":[3,0,2,0,119,31],
+"class_nv_1_1_blast_1_1_fracture_tool.html#a45e8a5d3b6d98da1b44b6888a5054cce":[3,0,2,0,119,29],
+"class_nv_1_1_blast_1_1_fracture_tool.html#a4c3308b909153982aded9366f9d3ee7c":[3,0,2,0,119,32],
"class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2":[3,0,2,0,119,0],
"class_nv_1_1_blast_1_1_fracture_tool.html#a559c822041e74f034613b3afa4ad8a17":[3,0,2,0,119,2],
"class_nv_1_1_blast_1_1_fracture_tool.html#a5710c73457bcceba3f20d130e231a028":[3,0,2,0,119,20],
@@ -71,59 +73,60 @@ var NAVTREEINDEX7 =
"class_nv_1_1_blast_1_1_fracture_tool.html#a9a113cc771fac30fd14a9c7b5b073e99":[3,0,2,0,119,14],
"class_nv_1_1_blast_1_1_fracture_tool.html#aa9a87637d6d190d71678f0fb9a100bfd":[3,0,2,0,119,6],
"class_nv_1_1_blast_1_1_fracture_tool.html#ab462c92fa47a5359bf3d19cf44af80f4":[3,0,2,0,119,23],
-"class_nv_1_1_blast_1_1_fracture_tool.html#ac14c1ff1d50756694be24c34476af965":[3,0,2,0,119,27],
-"class_nv_1_1_blast_1_1_fracture_tool.html#ac8c4f90133fdf32969cad6e4c520414f":[3,0,2,0,119,25],
+"class_nv_1_1_blast_1_1_fracture_tool.html#ac14c1ff1d50756694be24c34476af965":[3,0,2,0,119,28],
+"class_nv_1_1_blast_1_1_fracture_tool.html#ac8c4f90133fdf32969cad6e4c520414f":[3,0,2,0,119,26],
"class_nv_1_1_blast_1_1_fracture_tool.html#ac99cb91a13255929a52d9a2623ac207b":[3,0,2,0,119,11],
"class_nv_1_1_blast_1_1_fracture_tool.html#adb1c311cbb3d84c7bfbfd12abe01af0b":[3,0,2,0,119,7],
"class_nv_1_1_blast_1_1_fracture_tool.html#adc4037818bdb9424fe0543b59c1e2eac":[3,0,2,0,119,17],
-"class_nv_1_1_blast_1_1_fracture_tool.html#ae4bd5dab498f9e894c648d570c5b60ba":[3,0,2,0,119,29],
+"class_nv_1_1_blast_1_1_fracture_tool.html#ae4bd5dab498f9e894c648d570c5b60ba":[3,0,2,0,119,30],
"class_nv_1_1_blast_1_1_fracture_tool.html#aea8f1d386c70af0ea67bed2c353e57a1":[3,0,2,0,119,8],
"class_nv_1_1_blast_1_1_fracture_tool.html#aec74731e5a147120f0536b6674fc0f42":[3,0,2,0,119,4],
-"class_nv_1_1_blast_1_1_fracture_tool.html#aecd9be996bba9329418fd91db8235ebe":[3,0,2,0,119,24],
+"class_nv_1_1_blast_1_1_fracture_tool.html#aecd9be996bba9329418fd91db8235ebe":[3,0,2,0,119,25],
"class_nv_1_1_blast_1_1_fracture_tool.html#af07eb7960687cd912df496640bec8876":[3,0,2,0,119,10],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html":[3,0,2,0,120],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a0217eb658aa3890c3d1d2e030436b07b":[3,0,2,0,120,31],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a04d3620e1e76d15accb8a08039398680":[3,0,2,0,120,28],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a0217eb658aa3890c3d1d2e030436b07b":[3,0,2,0,120,32],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a04d3620e1e76d15accb8a08039398680":[3,0,2,0,120,29],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a05d2e5fd981d54d55ee5dbc5bf454a50":[3,0,2,0,120,22],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a0d1af8c17f922acd54bf3b69bdff54e7":[3,0,2,0,120,11],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a11d8ab3b4c7040389b3b552d07e4da57":[3,0,2,0,120,0],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a1ccbcbfde4e58f8357a589ae56ff043f":[3,0,2,0,120,24],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a1cf29d3d972240ac368f6acef7bcb93b":[3,0,2,0,120,39],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a1cf29d3d972240ac368f6acef7bcb93b":[3,0,2,0,120,40],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a1ffac81bb04e7674e77940183854d352":[3,0,2,0,120,10],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a21dee486b1499f135740cac4a4d85af0":[3,0,2,0,120,7],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a2a7de5296d9fc03ae9d4d510a5314d9a":[3,0,2,0,120,14],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3853cd248b6b0531f18f8cf1711bc90f":[3,0,2,0,120,41],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3a9a2ccd3b9f5122f5153431b2eb2925":[3,0,2,0,120,38],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3853cd248b6b0531f18f8cf1711bc90f":[3,0,2,0,120,42],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3a9a2ccd3b9f5122f5153431b2eb2925":[3,0,2,0,120,39],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3fdd1a0df69a82898a6ec8c0f51094fc":[3,0,2,0,120,25],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a41b5acb435a88c4cd06912ac75bc7f19":[3,0,2,0,120,21],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a4a1ab63d90ed2514038f299606583527":[3,0,2,0,120,3],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a4ae30e1bda20f7f0a8b21d6dbd13a771":[3,0,2,0,120,17],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a4cf6af831497dbaf9db34ba4529f418d":[3,0,2,0,120,1],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a4e51dd47edda8a9e7de8df2354b451e3":[3,0,2,0,120,18],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a507e1b343d2d0fc38396ef5643f729f6":[3,0,2,0,120,5],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a516359070dc5bf6cd0770d3e33b8c8d1":[3,0,2,0,120,34],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a516359070dc5bf6cd0770d3e33b8c8d1":[3,0,2,0,120,35],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a5904628e466fa8cbb5016b08fb7708b8":[3,0,2,0,120,12],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a5e5a23242da3d034f64335dd1739e551":[3,0,2,0,120,9],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a5e5d88c4d3ec08ddd566a233f26100f2":[3,0,2,0,120,20],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a6c74f2ddd8b73705675767149c2ce69e":[3,0,2,0,120,4],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a6cab6022e3cfb8bfc287428c507a9459":[3,0,2,0,120,8],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a7500f7cd8e670745e74ee83eed10c1ba":[3,0,2,0,120,13],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a77957e191451f94d3753e31695c37914":[3,0,2,0,120,35],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a7be81de54f32a49d2f5885275c59bece":[3,0,2,0,120,30],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a77957e191451f94d3753e31695c37914":[3,0,2,0,120,36],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a7be81de54f32a49d2f5885275c59bece":[3,0,2,0,120,31],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a7dcbf47203115afe634ca7b5af9bd56a":[3,0,2,0,120,19],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a7ffacc77ed102a8cd52c080055a08c3f":[3,0,2,0,120,2],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a820e9829bb02425ae53e47eb6be0b1c3":[3,0,2,0,120,15],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a92dec92822ab9e0807400a7d63bfc553":[3,0,2,0,120,27],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a92dec92822ab9e0807400a7d63bfc553":[3,0,2,0,120,28],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a9a93aab1c2f46963ae406964b639cb82":[3,0,2,0,120,6],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#ab0089baafc0bd7370c12602d7dd20440":[3,0,2,0,120,33],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#ab0089baafc0bd7370c12602d7dd20440":[3,0,2,0,120,34],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#ab5cc06434628c2b5be10f755edcbe1da":[3,0,2,0,120,16],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#abcc6a73e16008d488bbf81623ec5a33e":[3,0,2,0,120,40],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#abcc6a73e16008d488bbf81623ec5a33e":[3,0,2,0,120,41],
"class_nv_1_1_blast_1_1_fracture_tool_impl.html#abe1f6bf365964825a2c939e22c85d96a":[3,0,2,0,120,23],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2202d728cefb26446a60593b03dcbe1":[3,0,2,0,120,36],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2b3addf8c9d4e4c81511c8b0071f031":[3,0,2,0,120,29],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac466495627ca99252433c7e1c702c7f9":[3,0,2,0,120,25],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac9c8e18748b18fa6dd29a328eaf63026":[3,0,2,0,120,26],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#ae9fdc3a9dd7eefe632a24c7abb6c4962":[3,0,2,0,120,37],
-"class_nv_1_1_blast_1_1_fracture_tool_impl.html#af0d34972494741fc4c4b2bfe1eb801ad":[3,0,2,0,120,32],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2202d728cefb26446a60593b03dcbe1":[3,0,2,0,120,37],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2b3addf8c9d4e4c81511c8b0071f031":[3,0,2,0,120,30],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac466495627ca99252433c7e1c702c7f9":[3,0,2,0,120,26],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac9c8e18748b18fa6dd29a328eaf63026":[3,0,2,0,120,27],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#ae9fdc3a9dd7eefe632a24c7abb6c4962":[3,0,2,0,120,38],
+"class_nv_1_1_blast_1_1_fracture_tool_impl.html#af0d34972494741fc4c4b2bfe1eb801ad":[3,0,2,0,120,33],
"class_nv_1_1_blast_1_1_fracturer.html":[3,0,2,0,115],
"class_nv_1_1_blast_1_1_fracturer.html#a42fb6822d70b337eaef4470165db1ddb":[3,0,2,0,115,0],
"class_nv_1_1_blast_1_1_grid.html":[3,0,2,0,121],
@@ -246,8 +249,5 @@ var NAVTREEINDEX7 =
"class_nv_1_1_blast_1_1_mesh_impl.html#abfeffdee97c4eeee5449a5b0e6e024ce":[3,0,2,0,144,0],
"class_nv_1_1_blast_1_1_mesh_impl.html#adb1bc85f36ba170694a268b593f9ff35":[3,0,2,0,144,8],
"class_nv_1_1_blast_1_1_mesh_impl.html#adb7618b41989c540a6bb531a5c109931":[3,0,2,0,144,3],
-"class_nv_1_1_blast_1_1_mesh_impl.html#ae6c92213b91e748fec7a592c20884e2b":[3,0,2,0,144,7],
-"class_nv_1_1_blast_1_1_mesh_impl.html#afd0a2a856078f362d0c0f5f2da1ba03e":[3,0,2,0,144,23],
-"class_nv_1_1_blast_1_1_mesh_noiser.html":[3,0,2,0,145],
-"class_nv_1_1_blast_1_1_mesh_noiser.html#a31a25ebefe7e32bab14f61e2c3d0c33c":[3,0,2,0,145,0]
+"class_nv_1_1_blast_1_1_mesh_impl.html#ae6c92213b91e748fec7a592c20884e2b":[3,0,2,0,144,7]
};
diff --git a/docs/source_docs/files/navtreeindex8.js b/docs/source_docs/files/navtreeindex8.js
index 3a243cf1..d734d18e 100755
--- a/docs/source_docs/files/navtreeindex8.js
+++ b/docs/source_docs/files/navtreeindex8.js
@@ -1,5 +1,8 @@
var NAVTREEINDEX8 =
{
+"class_nv_1_1_blast_1_1_mesh_impl.html#afd0a2a856078f362d0c0f5f2da1ba03e":[3,0,2,0,144,23],
+"class_nv_1_1_blast_1_1_mesh_noiser.html":[3,0,2,0,145],
+"class_nv_1_1_blast_1_1_mesh_noiser.html#a31a25ebefe7e32bab14f61e2c3d0c33c":[3,0,2,0,145,0],
"class_nv_1_1_blast_1_1_mesh_noiser.html#a31a25ebefe7e32bab14f61e2c3d0c33ca1eb6e0f13a84ebd34e2056d50a0fe24e":[3,0,2,0,145,0,1],
"class_nv_1_1_blast_1_1_mesh_noiser.html#a31a25ebefe7e32bab14f61e2c3d0c33ca2dc7c69e3c9b01c112a1748a4a36ff2e":[3,0,2,0,145,0,2],
"class_nv_1_1_blast_1_1_mesh_noiser.html#a31a25ebefe7e32bab14f61e2c3d0c33ca4021152d23cbda8700f03c113bdc7b81":[3,0,2,0,145,0,4],
@@ -246,8 +249,5 @@ var NAVTREEINDEX8 =
"class_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk_1_1_builder.html#a3a35f300ad23a4a9e0b6a7f45e0b69e1":[3,0,2,0,1,2,1,16],
"class_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk_1_1_builder.html#a43f16173eef70d9e93dc32bec0b8e2b5":[3,0,2,0,1,2,1,5],
"class_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk_1_1_builder.html#a4e5978bd15d71ca67b29731912f9ee63":[3,0,2,0,1,2,1,6],
-"class_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk_1_1_builder.html#a503974144edeb2f940e0bcd8dcc0c8f2":[3,0,2,0,1,2,1,15],
-"class_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk_1_1_builder.html#a58532ea248ebfb3d3d673a571da8f8d5":[3,0,2,0,1,2,1,7],
-"class_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk_1_1_builder.html#a6253c267813957916673d00f8a98563a":[3,0,2,0,1,2,1,13],
-"class_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk_1_1_builder.html#a7b4bcfda9e44192b668bef598293d227":[3,0,2,0,1,2,1,8]
+"class_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk_1_1_builder.html#a503974144edeb2f940e0bcd8dcc0c8f2":[3,0,2,0,1,2,1,15]
};
diff --git a/docs/source_docs/files/navtreeindex9.js b/docs/source_docs/files/navtreeindex9.js
index 2a562811..7b7689d5 100755
--- a/docs/source_docs/files/navtreeindex9.js
+++ b/docs/source_docs/files/navtreeindex9.js
@@ -1,5 +1,8 @@
var NAVTREEINDEX9 =
{
+"class_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk_1_1_builder.html#a58532ea248ebfb3d3d673a571da8f8d5":[3,0,2,0,1,2,1,7],
+"class_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk_1_1_builder.html#a6253c267813957916673d00f8a98563a":[3,0,2,0,1,2,1,13],
+"class_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk_1_1_builder.html#a7b4bcfda9e44192b668bef598293d227":[3,0,2,0,1,2,1,8],
"class_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk_1_1_builder.html#a8003c3febbd13fe2ce9def8ef04fa56b":[3,0,2,0,1,2,1,3],
"class_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk_1_1_builder.html#a8986ddbe029dfc5d7ae773d75ad16e97":[3,0,2,0,1,2,1,14],
"class_nv_1_1_blast_1_1_serialization_1_1_ext_px_chunk_1_1_builder.html#aa1e4601c9568bdd156fff08b248584d0":[3,0,2,0,1,2,1,4],
@@ -246,8 +249,5 @@ var NAVTREEINDEX9 =
"class_nv_1_1_blast_1_1_serialization_1_1_nv_blast_support_graph_1_1_builder.html#a89b7dc5b89162f4ff71abc82140bd419":[3,0,2,0,1,7,1,24],
"class_nv_1_1_blast_1_1_serialization_1_1_nv_blast_support_graph_1_1_builder.html#a8abeb9aec20c1589300b3ef9bc4dc26b":[3,0,2,0,1,7,1,27],
"class_nv_1_1_blast_1_1_serialization_1_1_nv_blast_support_graph_1_1_builder.html#a98906e86d6ef93a0a6d289d116913cce":[3,0,2,0,1,7,1,2],
-"class_nv_1_1_blast_1_1_serialization_1_1_nv_blast_support_graph_1_1_builder.html#a9ee5418213db8b590aeacc89df3915c0":[3,0,2,0,1,7,1,12],
-"class_nv_1_1_blast_1_1_serialization_1_1_nv_blast_support_graph_1_1_builder.html#aabf5a08198127450ed2a2c7fb2fb8b8c":[3,0,2,0,1,7,1,31],
-"class_nv_1_1_blast_1_1_serialization_1_1_nv_blast_support_graph_1_1_builder.html#aac9c536fc46a4c641d2a49d105e8d025":[3,0,2,0,1,7,1,22],
-"class_nv_1_1_blast_1_1_serialization_1_1_nv_blast_support_graph_1_1_builder.html#aacbc78e470fe540313fee3b295a52d4d":[3,0,2,0,1,7,1,32]
+"class_nv_1_1_blast_1_1_serialization_1_1_nv_blast_support_graph_1_1_builder.html#a9ee5418213db8b590aeacc89df3915c0":[3,0,2,0,1,7,1,12]
};
diff --git a/docs/source_docs/files/struct_nv_1_1_blast_1_1_chunk_info-members.html b/docs/source_docs/files/struct_nv_1_1_blast_1_1_chunk_info-members.html
index f01e50eb..391e3d14 100755
--- a/docs/source_docs/files/struct_nv_1_1_blast_1_1_chunk_info-members.html
+++ b/docs/source_docs/files/struct_nv_1_1_blast_1_1_chunk_info-members.html
@@ -41,9 +41,9 @@
Nv::Blast::ChunkInfo Member List
This is the complete list of members for Nv::Blast::ChunkInfo, including all inherited members.
+ APPROXIMATE_BONDING enum value Nv::Blast::ChunkInfo
ChunkFlags enum name Nv::Blast::ChunkInfo
chunkId Nv::Blast::ChunkInfo
- CREATED_BY_ISLAND_DETECTOR enum value Nv::Blast::ChunkInfo
flags Nv::Blast::ChunkInfo
isChanged Nv::Blast::ChunkInfo
isLeaf Nv::Blast::ChunkInfo
diff --git a/docs/source_docs/files/struct_nv_1_1_blast_1_1_chunk_info.html b/docs/source_docs/files/struct_nv_1_1_blast_1_1_chunk_info.html
index e76e61b3..1b00e769 100755
--- a/docs/source_docs/files/struct_nv_1_1_blast_1_1_chunk_info.html
+++ b/docs/source_docs/files/struct_nv_1_1_blast_1_1_chunk_info.html
@@ -49,10 +49,6 @@ Nv::Blast::ChunkInfo Struct Reference
NO_FLAGS
-CREATED_BY_ISLAND_DETECTOR
+ APPROXIMATE_BONDING
diff --git a/docs/source_docs/files/struct_nv_1_1_blast_1_1_chunk_info.js b/docs/source_docs/files/struct_nv_1_1_blast_1_1_chunk_info.js
index e193c315..1ca26a4f 100755
--- a/docs/source_docs/files/struct_nv_1_1_blast_1_1_chunk_info.js
+++ b/docs/source_docs/files/struct_nv_1_1_blast_1_1_chunk_info.js
@@ -2,7 +2,7 @@ var struct_nv_1_1_blast_1_1_chunk_info =
[
[ "ChunkFlags", "struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c", [
[ "NO_FLAGS", "struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47", null ],
- [ "CREATED_BY_ISLAND_DETECTOR", "struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca083e487cf5083f1063904b52be3982de", null ]
+ [ "APPROXIMATE_BONDING", "struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca673ab883edb6ff4c69fe85deed5ba3ff", null ]
] ],
[ "chunkId", "struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67", null ],
[ "flags", "struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71", null ],
diff --git a/sdk/extensions/authoring/include/NvBlastExtAuthoringFractureTool.h b/sdk/extensions/authoring/include/NvBlastExtAuthoringFractureTool.h
index 55b15f56..0798f95a 100755
--- a/sdk/extensions/authoring/include/NvBlastExtAuthoringFractureTool.h
+++ b/sdk/extensions/authoring/include/NvBlastExtAuthoringFractureTool.h
@@ -48,8 +48,8 @@ struct ChunkInfo
{
enum ChunkFlags
{
- NO_FLAGS = 0,
- CREATED_BY_ISLAND_DETECTOR = 1
+ NO_FLAGS = 0,
+ APPROXIMATE_BONDING = 1 // Created by island splitting or chunk merge, etc. and should check for inexact bonds
};
Mesh* meshData;
@@ -512,7 +512,15 @@ class FractureTool
const NvcVec2i* adjChunks, uint32_t adjChunksSize,
bool removeOriginalChunks = false) = 0;
- /**
+ /**
+ Set the APPROXIMATE_BONDING flag in the chunk's ChunkInfo
+ \param[in] chunkIndex chunk index - use getChunkIndex(ID)
+ \param[in] useApproximateBonding value of flag to set
+ \return true if the chunk ID is found, false otherwise
+ */
+ virtual bool setApproximateBonding(uint32_t chunkIndex, bool useApproximateBonding) = 0;
+
+ /**
Rescale interior uv coordinates of given chunk to fit square of given size.
\param[in] side Size of square side
\param[in] chunkId Chunk ID for which UVs should be scaled.
diff --git a/sdk/extensions/authoring/source/NvBlastExtAuthoring.cpp b/sdk/extensions/authoring/source/NvBlastExtAuthoring.cpp
index a0e6fc25..b26eee35 100755
--- a/sdk/extensions/authoring/source/NvBlastExtAuthoring.cpp
+++ b/sdk/extensions/authoring/source/NvBlastExtAuthoring.cpp
@@ -40,6 +40,7 @@
#include "NvBlastExtAuthoringBondGeneratorImpl.h"
#include "NvBlastExtAuthoringCollisionBuilderImpl.h"
#include "NvBlastExtAuthoringCutoutImpl.h"
+#include "NvBlastExtAuthoringInternalCommon.h"
#include "NvBlastPxSharedHelpers.h"
#include
@@ -381,21 +382,19 @@ AuthoringResult* NvBlastExtAuthoringProcessFracture(FractureTool& fTool, BlastBo
buildPhysicsChunks(collisionBuilder, aResult, collisionParam);
// set NvBlastChunk volume from Px geometry
- //for (uint32_t i = 0; i < chunkCount; i++)
- //{
- // float totalVolume = 0.f;
- // for (uint32_t k = 0; k < aResult.physicsChunks[i].subchunkCount; k++)
- // {
- // const auto& subChunk = aResult.physicsSubchunks[aResult.physicsChunks[i].firstSubchunkIndex + k];
- // physx::PxVec3 localCenterOfMass; physx::PxMat33 intertia; float mass;
- // subChunk.geometry.convexMesh->getMassInformation(mass, intertia, localCenterOfMass);
- // const physx::PxVec3 scale = subChunk.geometry.scale.scale;
- // mass *= scale.x * scale.y * scale.z;
- // totalVolume += mass / 1.0f; // unit density
- // }
-
- // aResult.chunkDescs[i].volume = totalVolume;
- //}
+ for (uint32_t i = 0; i < chunkCount; i++)
+ {
+ float totalVolume = 0.f;
+ for (uint32_t k = aResult.collisionHullOffset[i]; k < aResult.collisionHullOffset[i+1]; k++)
+ {
+ const CollisionHull* hull = aResult.collisionHull[k];
+ if (hull)
+ {
+ totalVolume += calculateCollisionHullVolume(*hull);
+ }
+ }
+ aResult.chunkDescs[i].volume = totalVolume;
+ }
// build and serialize ExtPhysicsAsset
NvBlastAssetDesc descriptor;
diff --git a/sdk/extensions/authoring/source/NvBlastExtAuthoringBondGeneratorImpl.cpp b/sdk/extensions/authoring/source/NvBlastExtAuthoringBondGeneratorImpl.cpp
index bda11e96..1fc61c22 100755
--- a/sdk/extensions/authoring/source/NvBlastExtAuthoringBondGeneratorImpl.cpp
+++ b/sdk/extensions/authoring/source/NvBlastExtAuthoringBondGeneratorImpl.cpp
@@ -1091,15 +1091,15 @@ int32_t BlastBondGeneratorImpl::buildDescFromInternalFracture(FractureTool* tool
}
- bool hasCreatedByIslands = false;
+ bool hasApproximateBonding = false;
for (uint32_t i = 1; i < chunkCount; ++i)
{
NvBlastChunkDesc& desc = resultChunkDescriptors[i];
- desc.userData = i;
+ desc.userData = tool->getChunkId(i);
desc.parentChunkIndex = tool->getChunkIndex(tool->getChunkInfo(i).parent);
desc.flags = NvBlastChunkDesc::NoFlags;
- hasCreatedByIslands |= (tool->getChunkInfo(i).flags & ChunkInfo::CREATED_BY_ISLAND_DETECTOR);
+ hasApproximateBonding |= !!(tool->getChunkInfo(i).flags & ChunkInfo::APPROXIMATE_BONDING);
if (chunkIsSupport[i])
{
desc.flags = NvBlastChunkDesc::SupportFlag;
@@ -1246,7 +1246,7 @@ int32_t BlastBondGeneratorImpl::buildDescFromInternalFracture(FractureTool* tool
}
}
- if (hasCreatedByIslands)
+ if (hasApproximateBonding)
{
std::vector chunkTriangles;
std::vector chunkTrianglesOffsets;
@@ -1262,6 +1262,7 @@ int32_t BlastBondGeneratorImpl::buildDescFromInternalFracture(FractureTool* tool
pairsAlreadyCreated.insert(pr);
}
+ const float EXPANSION = 0.01f;
chunkTrianglesOffsets.push_back(0);
for (uint32_t i = 0; i < chunkCount; ++i)
@@ -1273,18 +1274,19 @@ int32_t BlastBondGeneratorImpl::buildDescFromInternalFracture(FractureTool* tool
{
chunkTriangles.push_back(trianglesBuffer[i].get()[k]);
- chunkTriangles.back().a.p =
- (chunkTriangles.back().a.p - centroid) * SCALE_FACTOR + centroid; // inflate mesh a bit to find
- }
+ // inflate mesh a bit
+ chunkTriangles.back().a.p = chunkTriangles.back().a.p + (chunkTriangles.back().a.p - centroid) * EXPANSION;
+ chunkTriangles.back().b.p = chunkTriangles.back().b.p + (chunkTriangles.back().b.p - centroid) * EXPANSION;
+ chunkTriangles.back().c.p = chunkTriangles.back().c.p + (chunkTriangles.back().c.p - centroid) * EXPANSION;
+ }
chunkTrianglesOffsets.push_back(chunkTriangles.size());
}
NvBlastBondDesc* adsc;
-
BondGenerationConfig cfg;
cfg.bondMode = BondGenerationConfig::AVERAGE;
- cfg.maxSeparation = 0.01f;
+ cfg.maxSeparation = EXPANSION;
uint32_t nbListSize =
createFullBondListAveraged(chunkCount, chunkTrianglesOffsets.data(), chunkTriangles.data(), nullptr,
diff --git a/sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.cpp b/sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.cpp
index e4cc86fe..a5cd4c1b 100755
--- a/sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.cpp
+++ b/sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.cpp
@@ -1628,6 +1628,7 @@ bool FractureToolImpl::deleteChunkSubhierarchy(int32_t chunkId, bool deleteRoot
std::swap(mChunkData.back(), mChunkData[m]);
mChunkData.pop_back();
}
+ markLeaves();
return chunkToDelete.size() > 0;
}
@@ -1688,7 +1689,10 @@ void FractureToolImpl::finalizeFracturing()
std::swap(mChunkData[badOnes[i]], mChunkData.back());
mChunkData.pop_back();
}
- fitAllUvToRect(1.0f, newChunkMask);
+ if (!mChunkPostprocessors.empty()) // Failsafe to prevent infinite loop (leading to stack overflow)
+ {
+ fitAllUvToRect(1.0f, newChunkMask);
+ }
}
uint32_t FractureToolImpl::getChunkCount() const
@@ -1750,13 +1754,26 @@ uint32_t FractureToolImpl::updateBaseMesh(int32_t chunkIndex, Triangle* output)
float getVolume(std::vector& triangles)
{
+ if (triangles.size() == 0)
+ {
+ return 0.0f;
+ }
+
+ // Find an approximate centroid for a more accurate calculation
+ NvcVec3 centroid = { 0.0f, 0.0f, 0.0f };
+ for (size_t i = 0; i < triangles.size(); ++i)
+ {
+ centroid = centroid + triangles[i].a.p + triangles[i].b.p + triangles[i].c.p;
+ }
+ centroid = centroid / (3 * triangles.size());
+
float volume = 0.0f;
- for (uint32_t i = 0; i < triangles.size(); ++i)
+ for (size_t i = 0; i < triangles.size(); ++i)
{
- NvcVec3& a = triangles[i].a.p;
- NvcVec3& b = triangles[i].b.p;
- NvcVec3& c = triangles[i].c.p;
+ const NvcVec3 a = triangles[i].a.p - centroid;
+ const NvcVec3 b = triangles[i].b.p - centroid;
+ const NvcVec3 c = triangles[i].c.p - centroid;
volume +=
(a.x * b.y * c.z - a.x * b.z * c.y - a.y * b.x * c.z + a.y * b.z * c.x + a.z * b.x * c.y - a.z * b.y * c.x);
}
@@ -1988,19 +2005,19 @@ int32_t FractureToolImpl::islandDetectionAndRemoving(int32_t chunkId, bool creat
}
else
{
- mChunkData[chunkIndex].isLeaf = false;
deleteChunkSubhierarchy(chunkId);
for (int32_t i = 0; i < cComp; ++i)
{
uint32_t nc = createNewChunk(chunkId);
mChunkData[nc].isLeaf = true;
- mChunkData[nc].flags = ChunkInfo::CREATED_BY_ISLAND_DETECTOR;
+ mChunkData[nc].flags = ChunkInfo::APPROXIMATE_BONDING;
mChunkData[nc].meshData = new MeshImpl(compVertices[i].data(), compEdges[i].data(), compFacets[i].data(),
static_cast(compVertices[i].size()),
static_cast(compEdges[i].size()),
static_cast(compFacets[i].size()));
}
- }
+ mChunkData[chunkIndex].isLeaf = false;
+ }
return cComp;
}
return 0;
@@ -2110,7 +2127,12 @@ uint32_t FractureToolImpl::stretchGroup(const std::vector& grp, std::v
}
offsetEdges = nEdges.size();
offsetVertices = nVertices.size();
- }
+
+ if (mChunkData[grp[i]].flags & ChunkInfo::APPROXIMATE_BONDING)
+ {
+ mChunkData[newChunkIndex].flags |= ChunkInfo::APPROXIMATE_BONDING;
+ }
+ }
std::vector finalFacets;
std::set hasCutting;
for (uint32_t i = 0; i < nFacets.size(); ++i)
@@ -2129,6 +2151,7 @@ uint32_t FractureToolImpl::stretchGroup(const std::vector& grp, std::v
mChunkData[newChunkIndex].meshData =
new MeshImpl(nVertices.data(), nEdges.data(), finalFacets.data(), static_cast(nVertices.size()),
static_cast(nEdges.size()), static_cast(finalFacets.size()));
+
return newChunkIndex;
}
@@ -2254,6 +2277,22 @@ void FractureToolImpl::fitAllUvToRect(float side, std::set& mask)
}
}
+void FractureToolImpl::markLeaves()
+{
+ for (ChunkInfo& info : mChunkData)
+ {
+ info.isLeaf = true;
+ }
+
+ for (ChunkInfo& info : mChunkData)
+ {
+ const int32_t index = getChunkIndex(info.parent);
+ if (index >= 0)
+ {
+ mChunkData[index].isLeaf = false;
+ }
+ }
+}
void FractureToolImpl::rebuildAdjGraph(const std::vector& chunks, const NvcVec2i* adjChunks,
uint32_t adjChunksSize, std::vector >& chunkGraph)
@@ -2570,5 +2609,24 @@ void FractureToolImpl::uniteChunks(uint32_t threshold, uint32_t targetClusterSiz
}
}
+bool FractureToolImpl::setApproximateBonding(uint32_t chunkIndex, bool useApproximateBonding)
+{
+ if ((size_t)chunkIndex >= mChunkData.size())
+ {
+ return false;
+ }
+
+ if (useApproximateBonding)
+ {
+ mChunkData[chunkIndex].flags |= (uint32_t)ChunkInfo::APPROXIMATE_BONDING;
+ }
+ else
+ {
+ mChunkData[chunkIndex].flags &= ~(uint32_t)ChunkInfo::APPROXIMATE_BONDING;
+ }
+
+ return true;
+}
+
} // namespace Blast
} // namespace Nv
diff --git a/sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.h b/sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.h
index 9e4d41e6..153e43c8 100755
--- a/sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.h
+++ b/sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.h
@@ -380,6 +380,7 @@ class FractureToolImpl : public FractureTool
const NvcVec2i* adjChunks, uint32_t adjChunksSize,
bool removeOriginalChunks = false) override;
+ bool setApproximateBonding(uint32_t chunkId, bool useApproximateBonding) override;
/**
Rescale interior uv coordinates of given chunk to fit square of given size.
@@ -403,6 +404,7 @@ class FractureToolImpl : public FractureTool
void rebuildAdjGraph(const std::vector& chunksToRebuild, const NvcVec2i* adjChunks, uint32_t adjChunksSize,
std::vector >& chunkGraph);
void fitAllUvToRect(float side, std::set& mask);
+ void markLeaves();
/**
Returns newly created chunk index in mChunkData.
diff --git a/sdk/extensions/authoringCommon/source/NvBlastExtAuthoringInternalCommon.h b/sdk/extensions/authoringCommon/source/NvBlastExtAuthoringInternalCommon.h
index 4a0fbd03..79bbe3a8 100644
--- a/sdk/extensions/authoringCommon/source/NvBlastExtAuthoringInternalCommon.h
+++ b/sdk/extensions/authoringCommon/source/NvBlastExtAuthoringInternalCommon.h
@@ -29,6 +29,7 @@
#ifndef NVBLASTINTERNALCOMMON_H
#define NVBLASTINTERNALCOMMON_H
#include "NvBlastExtAuthoringTypes.h"
+#include "NvBlastPxSharedHelpers.h"
#include
#include
#include
@@ -275,6 +276,47 @@ struct VrtPositionComparator
};
};
+
+NV_INLINE float calculateCollisionHullVolume(const CollisionHull& hull)
+{
+ if (hull.pointsCount == 0)
+ {
+ return 0.0f;
+ }
+
+ // Find an approximate centroid for a more accurate calculation
+ NvcVec3 centroid = { 0.0f, 0.0f, 0.0f };
+ for (uint32_t i = 0; i < hull.pointsCount; ++i)
+ {
+ centroid = centroid + hull.points[i];
+ }
+ centroid = centroid / hull.pointsCount;
+
+ float volume = 0.0f;
+
+ for (uint32_t i = 0; i < hull.polygonDataCount; ++i)
+ {
+ const HullPolygon& poly = hull.polygonData[i];
+ if (poly.vertexCount < 3)
+ {
+ continue;
+ }
+ const uint32_t i0 = hull.indices[poly.indexBase];
+ uint32_t i1 = hull.indices[poly.indexBase + 1];
+ for (uint32_t j = 2; j < poly.vertexCount; ++j)
+ {
+ const uint32_t i2 = hull.indices[poly.indexBase + j];
+ const NvcVec3 a = hull.points[i0] - centroid;
+ const NvcVec3 b = hull.points[i1] - centroid;
+ const NvcVec3 c = hull.points[i2] - centroid;
+ volume +=
+ (a.x * b.y * c.z - a.x * b.z * c.y - a.y * b.x * c.z + a.y * b.z * c.x + a.z * b.x * c.y - a.z * b.y * c.x);
+ i1 = i2;
+ }
+ }
+ return (1.0f / 6.0f) * std::abs(volume);
+}
+
} // namespace Blast
} // namespace Nv
diff --git a/sdk/lowlevel/include/NvBlast.h b/sdk/lowlevel/include/NvBlast.h
index 4b777cbe..22d72531 100755
--- a/sdk/lowlevel/include/NvBlast.h
+++ b/sdk/lowlevel/include/NvBlast.h
@@ -325,7 +325,7 @@ Iff chunks are already ordered correctly, function returns 'true' and identity c
\param[out] chunkReorderMap User-supplied map of size chunkCount to fill. For every chunk index this array will contain new chunk position (index).
\param[in] chunkDescs Array of chunk descriptors of size chunkCount.
\param[in] chunkCount The number of chunk descriptors.
-\param[in] scratch User-supplied scratch storage, must point to 2 * chunkCount * sizeof(uint32_t) valid bytes of memory.
+\param[in] scratch User-supplied scratch storage, must point to 3 * chunkCount * sizeof(uint32_t) valid bytes of memory.
\param[in] logFn User-supplied message function (see NvBlastLog definition). May be NULL.
\return true iff the chunks did not require reordering (chunkReorderMap is the identity map).
diff --git a/sdk/lowlevel/source/NvBlastAsset.cpp b/sdk/lowlevel/source/NvBlastAsset.cpp
index c82fa299..553599d4 100755
--- a/sdk/lowlevel/source/NvBlastAsset.cpp
+++ b/sdk/lowlevel/source/NvBlastAsset.cpp
@@ -777,42 +777,48 @@ bool Asset::ensureExactSupportCoverage(uint32_t& supportChunkCount, uint32_t& le
bool Asset::testForValidChunkOrder(uint32_t chunkCount, const NvBlastChunkDesc* chunkDescs, const char* chunkAnnotation, void* scratch)
{
- char* chunkMarks = static_cast(memset(scratch, 0, chunkCount));
-
- uint32_t currentParentChunkIndex = invalidIndex();
- for (uint32_t i = 0; i < chunkCount; ++i)
- {
- const uint32_t parentChunkIndex = chunkDescs[i].parentChunkIndex;
- if (parentChunkIndex != currentParentChunkIndex)
- {
- if (!isInvalidIndex(currentParentChunkIndex))
- {
- chunkMarks[currentParentChunkIndex] = 1;
- }
- currentParentChunkIndex = parentChunkIndex;
- if (isInvalidIndex(currentParentChunkIndex))
- {
- return false;
- }
- else if (chunkMarks[currentParentChunkIndex] != 0)
- {
- return false;
- }
- }
-
- if (i < chunkCount - 1)
- {
- const bool upperSupport0 = (chunkAnnotation[i] & ChunkAnnotation::UpperSupport) != 0;
- const bool upperSupport1 = (chunkAnnotation[i + 1] & ChunkAnnotation::UpperSupport) != 0;
-
- if (!upperSupport0 && upperSupport1)
- {
- return false;
- }
- }
- }
-
- return true;
+ char* chunkMarks = static_cast(memset(scratch, 0, chunkCount));
+
+ uint32_t currentParentChunkIndex = invalidIndex();
+ for (uint32_t i = 0; i < chunkCount; ++i)
+ {
+ const uint32_t parentChunkIndex = chunkDescs[i].parentChunkIndex;
+
+ if (!isInvalidIndex(parentChunkIndex) && parentChunkIndex >= i) // 'chunks should come after their parents'
+ {
+ return false;
+ }
+
+ if (parentChunkIndex != currentParentChunkIndex)
+ {
+ if (!isInvalidIndex(currentParentChunkIndex))
+ {
+ chunkMarks[currentParentChunkIndex] = 1;
+ }
+ currentParentChunkIndex = parentChunkIndex;
+ if (isInvalidIndex(currentParentChunkIndex)) // 'root chunks should go first'
+ {
+ return false;
+ }
+ else if (chunkMarks[currentParentChunkIndex] != 0) // 'all chunks with same parent index should go in a row'
+ {
+ return false;
+ }
+ }
+
+ if (i < chunkCount - 1)
+ {
+ const bool upperSupport0 = (chunkAnnotation[i] & ChunkAnnotation::UpperSupport) != 0;
+ const bool upperSupport1 = (chunkAnnotation[i + 1] & ChunkAnnotation::UpperSupport) != 0;
+
+ if (!upperSupport0 && upperSupport1) // 'upper-support chunks should come before subsupport chunks'
+ {
+ return false;
+ }
+ }
+ }
+
+ return true;
}
} // namespace Blast
diff --git a/sdk/lowlevel/source/NvBlastAsset.h b/sdk/lowlevel/source/NvBlastAsset.h
index 71135178..8ed3c574 100755
--- a/sdk/lowlevel/source/NvBlastAsset.h
+++ b/sdk/lowlevel/source/NvBlastAsset.h
@@ -156,21 +156,22 @@ class Asset : public NvBlastAsset
static bool ensureExactSupportCoverage(uint32_t& supportChunkCount, uint32_t& leafChunkCount, char* chunkAnnotation, uint32_t chunkCount, NvBlastChunkDesc* chunkDescs, bool testOnly, NvBlastLog logFn);
/**
- Tests a set of chunk descriptors to see if chunks are in valid chunk order.
-
- Chunk order conditions checked:
- 1. 'all chunks with same parent index should go in a row'.
- 2. 'root chunks should go first'.
- 3. 'upper-support chunks should come before subsupport chunks'.
-
- \param[in] chunkCount The number of chunk descriptors.
- \param[in] chunkDescs An array of chunk descriptors of length chunkCount.
- \param[in] chunkAnnotation Annotation generated from ensureExactSupportCoverage (see ensureExactSupportCoverage).
- \param[in] scratch User-supplied scratch memory of chunkCount bytes.
-
- \return true if the descriptors meet the ordering conditions, false otherwise.
- */
- static bool testForValidChunkOrder(uint32_t chunkCount, const NvBlastChunkDesc* chunkDescs, const char* chunkAnnotation, void* scratch);
+ Tests a set of chunk descriptors to see if chunks are in valid chunk order.
+
+ Chunk order conditions checked:
+ 1. 'all chunks with same parent index should go in a row'.
+ 2. 'chunks should come after their parents'.
+ 3. 'root chunks should go first'.
+ 4. 'upper-support chunks should come before subsupport chunks'.
+
+ \param[in] chunkCount The number of chunk descriptors.
+ \param[in] chunkDescs An array of chunk descriptors of length chunkCount.
+ \param[in] chunkAnnotation Annotation generated from ensureExactSupportCoverage (see ensureExactSupportCoverage).
+ \param[in] scratch User-supplied scratch memory of chunkCount bytes.
+
+ \return true if the descriptors meet the ordering conditions, false otherwise.
+ */
+ static bool testForValidChunkOrder(uint32_t chunkCount, const NvBlastChunkDesc* chunkDescs, const char* chunkAnnotation, void* scratch);
//////// Data ////////
diff --git a/sdk/lowlevel/source/NvBlastAssetHelper.cpp b/sdk/lowlevel/source/NvBlastAssetHelper.cpp
index 1c8b7bdb..9930bad6 100755
--- a/sdk/lowlevel/source/NvBlastAssetHelper.cpp
+++ b/sdk/lowlevel/source/NvBlastAssetHelper.cpp
@@ -47,28 +47,49 @@ Class to hold chunk descriptor and annotation context for sorting a list of indi
class ChunksOrdered
{
public:
- ChunksOrdered(const NvBlastChunkDesc* descs, const char* annotation) : m_descs(descs), m_annotation(annotation) {}
-
- bool operator () (uint32_t i0, uint32_t i1) const
- {
- const bool upperSupport0 = (m_annotation[i0] & Asset::ChunkAnnotation::UpperSupport) != 0;
- const bool upperSupport1 = (m_annotation[i1] & Asset::ChunkAnnotation::UpperSupport) != 0;
-
- if (upperSupport0 != upperSupport1)
- {
- return upperSupport0; // If one is uppersupport and one is subsupport, uppersupport should come first
- }
-
- // Parent chunk index (+1 so that UINT32_MAX becomes the lowest value)
- const uint32_t p0 = m_descs[i0].parentChunkIndex + 1;
- const uint32_t p1 = m_descs[i1].parentChunkIndex + 1;
-
- return p0 < p1; // With the same support relationship, order by parent index
- }
+ ChunksOrdered(const NvBlastChunkDesc* descs, const char* annotation)
+ : m_descs(descs), m_annotation(annotation), m_chunkMap(nullptr), m_chunkInvMap(nullptr) {}
+
+ // Map and inverse to apply to chunk descs
+ bool setMap(const uint32_t* map, const uint32_t* inv)
+ {
+ if ((map == nullptr) != (inv == nullptr))
+ {
+ return false;
+ }
+ m_chunkMap = map;
+ m_chunkInvMap = inv;
+ return true;
+ }
+
+ bool operator () (uint32_t ii0, uint32_t ii1) const
+ {
+ const uint32_t i0 = m_chunkMap ? m_chunkMap[ii0] : ii0;
+ const uint32_t i1 = m_chunkMap ? m_chunkMap[ii1] : ii1;
+
+ const bool upperSupport0 = (m_annotation[i0] & Asset::ChunkAnnotation::UpperSupport) != 0;
+ const bool upperSupport1 = (m_annotation[i1] & Asset::ChunkAnnotation::UpperSupport) != 0;
+
+ if (upperSupport0 != upperSupport1)
+ {
+ return upperSupport0; // If one is uppersupport and one is subsupport, uppersupport should come first
+ }
+
+ const uint32_t p0 = m_descs[i0].parentChunkIndex;
+ const uint32_t p1 = m_descs[i1].parentChunkIndex;
+
+ // Parent chunk index (+1 so that UINT32_MAX becomes the lowest value)
+ const uint32_t pp0 = 1 + (m_chunkInvMap && !isInvalidIndex(p0) ? m_chunkInvMap[p0] : p0);
+ const uint32_t pp1 = 1 + (m_chunkInvMap && !isInvalidIndex(p1) ? m_chunkInvMap[p1] : p1);
+
+ return pp0 < pp1; // With the same support relationship, order by parent index
+ }
private:
- const NvBlastChunkDesc* m_descs;
- const char* m_annotation;
+ const NvBlastChunkDesc* m_descs;
+ const char* m_annotation;
+ const uint32_t* m_chunkMap;
+ const uint32_t* m_chunkInvMap;
};
} // namespace Blast
@@ -86,6 +107,7 @@ bool NvBlastBuildAssetDescChunkReorderMap(uint32_t* chunkReorderMap, const NvBla
NVBLASTLL_CHECK(chunkReorderMap == nullptr || chunkCount != 0, logFn, "NvBlastBuildAssetDescChunkReorderMap: NULL chunkReorderMap input with non-zero chunkCount", return false);
NVBLASTLL_CHECK(chunkCount == 0 || scratch != nullptr, logFn, "NvBlastBuildAssetDescChunkReorderMap: NULL scratch input with non-zero chunkCount", return false);
+ uint32_t* composedMap = static_cast(scratch); scratch = pointerOffset(scratch, chunkCount * sizeof(uint32_t));
uint32_t* chunkMap = static_cast(scratch); scratch = pointerOffset(scratch, chunkCount * sizeof(uint32_t));
char* chunkAnnotation = static_cast(scratch); scratch = pointerOffset(scratch, chunkCount * sizeof(char));
@@ -97,24 +119,65 @@ bool NvBlastBuildAssetDescChunkReorderMap(uint32_t* chunkReorderMap, const NvBla
return false;
}
- // check order for fast out (identity map)
- if (Asset::testForValidChunkOrder(chunkCount, chunkDescs, chunkAnnotation, scratch))
- {
- for (uint32_t i = 0; i < chunkCount; ++i)
- {
- chunkReorderMap[i] = i;
- }
-
- return true;
- }
-
- for (uint32_t i = 0; i < chunkCount; ++i)
- {
- chunkMap[i] = i;
- }
- std::sort(chunkMap, chunkMap + chunkCount, ChunksOrdered(chunkDescs, chunkAnnotation));
-
- invertMap(chunkReorderMap, chunkMap, chunkCount);
+ // Initialize composedMap and its inverse to identity
+ for (uint32_t i = 0; i < chunkCount; ++i)
+ {
+ composedMap[i] = i;
+ chunkReorderMap[i] = i;
+ }
+
+ // Create a chunk ordering operator using the composedMap
+ ChunksOrdered chunksOrdered(chunkDescs, chunkAnnotation);
+ chunksOrdered.setMap(composedMap, chunkReorderMap);
+
+ // Check initial order
+ bool ordered = true;
+ if (chunkCount > 1)
+ {
+ for (uint32_t i = chunkCount - 1; ordered && i--;)
+ {
+ ordered = !chunksOrdered(i + 1, i);
+ }
+ }
+ if (ordered)
+ {
+ return true; // Initially ordered, return true
+ }
+
+ NVBLAST_ASSERT(chunkCount > 1);
+
+ // Max depth is bounded by chunkCount, so that is the vound on the number of iterations
+ uint32_t iter = chunkCount;
+ do
+ {
+ // Reorder based on current composed map
+ for (uint32_t i = 0; i < chunkCount; ++i)
+ {
+ chunkMap[i] = i;
+ }
+ std::stable_sort(chunkMap, chunkMap + chunkCount, chunksOrdered);
+
+ // Fold chunkMap into composedMap
+ for (uint32_t i = 0; i < chunkCount; ++i)
+ {
+ chunkMap[i] = composedMap[chunkMap[i]];
+ }
+ for (uint32_t i = 0; i < chunkCount; ++i)
+ {
+ composedMap[i] = chunkMap[i];
+ chunkMap[i] = i;
+ }
+ invertMap(chunkReorderMap, composedMap, chunkCount);
+
+ // Check order
+ ordered = true;
+ for (uint32_t i = chunkCount - 1; ordered && i--;)
+ {
+ ordered = !chunksOrdered(i + 1, i);
+ }
+ } while (!ordered && iter--);
+
+ NVBLAST_ASSERT(ordered);
return false;
}
diff --git a/test/src/unit/AssetTests.cpp b/test/src/unit/AssetTests.cpp
index 58ea7d17..27df927f 100755
--- a/test/src/unit/AssetTests.cpp
+++ b/test/src/unit/AssetTests.cpp
@@ -367,7 +367,7 @@ class AssetTest : public BlastBaseTest
if (!useTk)
{
std::vector chunkReorderMap(chunkDescCount);
- std::vector scratch2(2 * chunkDescCount * sizeof(uint32_t));
+ std::vector scratch2(3 * chunkDescCount * sizeof(uint32_t));
const bool isIdentity = NvBlastBuildAssetDescChunkReorderMap(chunkReorderMap.data(), shuffledChunkDescs.data(), chunkDescCount, scratch2.data(), messageLog);
EXPECT_FALSE(isIdentity);
NvBlastApplyAssetDescChunkReorderMap(chunkDescs, shuffledChunkDescs.data(), chunkDescCount, bondDescs, bondDescCount, chunkReorderMap.data(), true, messageLog);