From a3f92a1c7a1cc1553bd9581845ef2542d55ee58f Mon Sep 17 00:00:00 2001 From: bgaldrikian Date: Thu, 25 Oct 2018 00:12:07 -0700 Subject: Fix for crash bug during ESS authoring Doc updates for AuthoringTool and ApexImporter Updated release notes --- docs/_source/apex_importer.txt | 20 ++++--- docs/_source/authoring_tool.txt | 65 +++++++++++++--------- docs/api_docs/files/pageauthoring.html | 63 ++++++++++++--------- docs/api_docs/files/pageimporter.html | 14 +++-- docs/api_docs/files/pagereleasenotes.html | 4 +- docs/release_notes.txt | 4 +- ...xt_authoring_bond_generator_impl_8h-source.html | 63 ++++++++++----------- ...xt_authoring_bond_generator_impl_8h_source.html | 2 +- 8 files changed, 133 insertions(+), 102 deletions(-) (limited to 'docs') diff --git a/docs/_source/apex_importer.txt b/docs/_source/apex_importer.txt index fca0b67..2eeec36 100755 --- a/docs/_source/apex_importer.txt +++ b/docs/_source/apex_importer.txt @@ -15,23 +15,22 @@ Along with creating a Blast&tm; asset (*.blast), ApexImporter creates an *.obj o Blast&tm; asset data can be saved in different ways: -1) LL-asset which is Low Level asset data (NvBlastAsset with --ll). + 1) LL-asset which is Low Level asset data (NvBlastAsset with --ll). -2) Tk-asset which is Toolkit asset data (Nv::Blast::TkAsset with --tk). + 2) Tk-asset which is Toolkit asset data (Nv::Blast::TkAsset with --tk). -3) ExtPx-asset which incorporates Blast&tm; data and collision geometry for physics engine (Nv::Blast::ExtPxAsset with --px). Default mode. + 3) ExtPx-asset which incorporates Blast&tm; data and collision geometry for physics engine (Nv::Blast::ExtPxAsset with --px). Default mode. ExtPxAsset assets or *.fbx files that contain collision geometry and can be used in \ref pagesampleassetviewer. \verbatim USAGE: - ApexImporter [--nonskinned] [--fbxcollision] [--fbx] [--obj] - [--fbxascii] [--ll] [--tk] [--px] [-d] [-m <0 - - EXACT, 1 - FORCED, for detailed description see - docs.>] -n [-o ] -f [--] [--version] [-h] - + ApexImporter [--nonskinned] [--fbxcollision] [--jsoncollision] + [--fbx] [--obj] [--fbxascii] [--ll] [--tk] [--px] [-d] + [-m <0 - EXACT, 1 - FORCED, for detailed description see docs.>] + -n [-o ] + -f [--] [--version] [-h] Where: @@ -41,6 +40,9 @@ Where: --fbxcollision Append collision geometry to FBX file + --jsoncollision + Save collision geometry to a json file + --fbx Output a FBX mesh to the output directory diff --git a/docs/_source/authoring_tool.txt b/docs/_source/authoring_tool.txt index cfa6145..43fd40b 100755 --- a/docs/_source/authoring_tool.txt +++ b/docs/_source/authoring_tool.txt @@ -11,7 +11,7 @@ Additionally, the user can choose how Blast&tm; data should be saved (in .blast 2) Tk-asset which is Toolkit asset data (Nv::Blast::TkAsset). - 3) ExtPx-asset which incorporates Blast&tm; data and collision geometry for physics engine (Nv::Blast::ExtPxAsset). + 3) ExtPx-asset which incorporates Blast&tm; data and collision geometry for physics engine (Nv::Blast::ExtPxAsset). .blast and .obj files may be consumed by the \ref pagesampleassetviewer. @@ -24,23 +24,30 @@ This tool uses the Authoring Tools Extension (\ref pageextauthoring). Therefore USAGE: - AuthoringTool_x64.exe [--ovar ] [--avar ] - [--slices ] - [--radius ] - [--clusters ] - [--cells ] [--mode ] [--nonskinned] - [--fbxcollision] [--fbx] [--obj] - [--fbxascii] [--tk] [--px] - [--clean] [--outputDir ] [--] - [--version] [-h] - + AuthoringTool_x64 [--agg ] [--cutoutBitmap ] + [--normal ] [--point ] + [--ovar ] [--avar ] + [--slices ] [--radius ] + [--clusters ] [--cells ] + [--mode ] + [--interiorMat ] [--nonskinned] [--jsoncollision] + [--fbxcollision] [--fbx] [--obj] [--fbxascii] [--ll] [--tk] [--px] + [--clean] [--outputDir ] + [--] [--version] [-h] Where: + --agg + Maximum number of collision hulls per chunk (aggregate) + + --cutoutBitmap + Path to *.bmp file with cutout bitmap + + --normal + Plane surface normal + + --point + Plane surface point --ovar Slicing offset variation @@ -60,12 +67,20 @@ Where: --cells Voronoi cells count - --mode + --mode Fracturing mode + --interiorMat + Use to setup interior material id, by default new material for + internal surface will be created. + --nonskinned Output a non-skinned FBX file + --jsoncollision + Save collision geometry to a json file + --fbxcollision Add collision geometry to FBX file @@ -78,13 +93,15 @@ Where: --fbxascii Output FBX as an ascii file (defaults to binary output) + --ll + Output LL Blast (NvBlastAsset) to the .blast file in the output + directory. + --tk - Output TkAsset to the .blast file in the output directory instead of - LL Blast asset (NvBlastAsset). + Output TkAsset to the .blast file in the output directory. --px - Output ExtPxAsset to the .blast file in the output directory instead - of LL Blast asset (NvBlastAsset). + Output ExtPxAsset to the .blast file in the output directory. --clean Try cleaning mesh before fracturing @@ -107,12 +124,6 @@ Where: (required) Output asset name - - Blast SDK: Authoring Tool - - - - \endverbatim
diff --git a/docs/api_docs/files/pageauthoring.html b/docs/api_docs/files/pageauthoring.html index 5c42fa3..967fbf2 100755 --- a/docs/api_docs/files/pageauthoring.html +++ b/docs/api_docs/files/pageauthoring.html @@ -33,23 +33,30 @@ This tool uses the Authoring Tools Extension (Copyrights for license information regarding third-party software used by ApexImporter.

diff --git a/docs/api_docs/files/pageimporter.html b/docs/api_docs/files/pageimporter.html index d520352..2c069bd 100755 --- a/docs/api_docs/files/pageimporter.html +++ b/docs/api_docs/files/pageimporter.html @@ -34,12 +34,11 @@ ExtPxAsset assets or *.fbx files that contain collision geometry and can be used

 USAGE:
 
-   ApexImporter  [--nonskinned] [--fbxcollision] [--fbx] [--obj]
-                 [--fbxascii] [--ll] [--tk] [--px] [-d] [-m <0 -
-                 EXACT, 1 - FORCED, for detailed description see
-                 docs.>] -n <output asset name> [-o <output
-                 directory>] -f <infile> [--] [--version] [-h]
-
+   ApexImporter [--nonskinned] [--fbxcollision] [--jsoncollision]
+                [--fbx] [--obj] [--fbxascii] [--ll] [--tk] [--px] [-d]
+                [-m <0 - EXACT, 1 - FORCED, for detailed description see docs.>]
+                -n <output asset name> [-o <output directory>]
+                -f <infile> [--] [--version] [-h]
 
 Where:
 
@@ -49,6 +48,9 @@ Where:
    --fbxcollision
      Append collision geometry to FBX file
 
+   --jsoncollision
+     Save collision geometry to a json file
+
    --fbx
      Output a FBX mesh to the output directory
 
diff --git a/docs/api_docs/files/pagereleasenotes.html b/docs/api_docs/files/pagereleasenotes.html
index 8d37a2f..1775f17 100755
--- a/docs/api_docs/files/pagereleasenotes.html
+++ b/docs/api_docs/files/pagereleasenotes.html
@@ -24,7 +24,7 @@
 
 
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-Blast(tm) SDK 1.1.4 (03-Oct-2018)
+Blast(tm) SDK 1.1.4 (24-Oct-2018)
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 Changes
@@ -45,9 +45,11 @@ Bug fixes
 * Authoring tools:
 ** Fixed .obj material loading when obj folder is same as working directory.
 ** Degenerate face generation fix. 
+** Fixed memory leak in FractureTool.
 * Proper memory releasing in samples.
 * Single-actor serialization bugfix when actor has world bonds.
 * Updated PhysX package for Win64 (vc14 and vc15) and Linux64 to 3.4.24990349, improving GRB behavior and fixing GRB crash/failure on Volta and Turing.
+* Documented JSON collision export option introduced in previous version.
 
 Known Issues
 ------------
diff --git a/docs/release_notes.txt b/docs/release_notes.txt
index 39ffc3d..15595bd 100755
--- a/docs/release_notes.txt
+++ b/docs/release_notes.txt
@@ -3,7 +3,7 @@
 
 
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-Blast(tm) SDK 1.1.4 (03-Oct-2018)
+Blast(tm) SDK 1.1.4 (24-Oct-2018)
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
 Changes
@@ -24,9 +24,11 @@ Bug fixes
 * Authoring tools:
 ** Fixed .obj material loading when obj folder is same as working directory.
 ** Degenerate face generation fix. 
+** Fixed memory leak in FractureTool.
 * Proper memory releasing in samples.
 * Single-actor serialization bugfix when actor has world bonds.
 * Updated PhysX package for Win64 (vc14 and vc15) and Linux64 to 3.4.24990349, improving GRB behavior and fixing GRB crash/failure on Volta and Turing.
+* Documented JSON collision export option introduced in previous version.
 
 Known Issues
 ------------
diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_bond_generator_impl_8h-source.html b/docs/source_docs/files/_nv_blast_ext_authoring_bond_generator_impl_8h-source.html
index 7e8d00a..c46a337 100755
--- a/docs/source_docs/files/_nv_blast_ext_authoring_bond_generator_impl_8h-source.html
+++ b/docs/source_docs/files/_nv_blast_ext_authoring_bond_generator_impl_8h-source.html
@@ -109,39 +109,40 @@
 00075 
 00076                 
 00077 private:
-00078     float   processWithMidplanes(TriangleProcessor* trProcessor, const Triangle* mA, uint32_t mavc, const Triangle* mB, uint32_t mbvc,
-00079             const std::vector<physx::PxVec3>& hull1p, const std::vector<physx::PxVec3>& hull2p, physx::PxVec3& normal, physx::PxVec3& centroid, float maxSeparation);
-00080 
-00081     int32_t createFullBondListAveraged( uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry, const CollisionHull** chunkHulls,
-00082                                         const bool* supportFlags, const uint32_t* meshGroups, NvBlastBondDesc*& resultBondDescs, BondGenerationConfig conf, std::set<std::pair<uint32_t, uint32_t> >* pairNotToTest = nullptr);
-00083     int32_t createFullBondListExact(    uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry,
-00084                                         const bool* supportFlags, NvBlastBondDesc*& resultBondDescs, BondGenerationConfig conf);
-00085     int32_t createFullBondListExactInternal(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry,
-00086                                             std::vector<PlaneChunkIndexer>& planeTriangleMapping , NvBlastBondDesc*& resultBondDescs);
-00087     int32_t createBondForcedInternal(   const std::vector<physx::PxVec3>& hull0, const std::vector<physx::PxVec3>& hull1,const CollisionHull& cHull0, 
-00088                                         const CollisionHull& cHull1, physx::PxBounds3 bound0, physx::PxBounds3 bound1, NvBlastBond& resultBond, float overlapping);
-00089 
-00090     void    buildGeometryCache(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry);
-00091     void    resetGeometryCache();
-00092 
-00093     physx::PxCooking*                           mPxCooking;
-00094     physx::PxPhysicsInsertionCallback*          mPxInsertionCallback;
-00095 
+00078     float   processWithMidplanes(TriangleProcessor* trProcessor, const Triangle* mA, uint32_t mavc, const Triangle* mB, uint32_t mbvc, const CollisionHull* hull1, const CollisionHull* hull2,
+00079                              const std::vector<physx::PxVec3>& hull1p, const std::vector<physx::PxVec3>& hull2p,
+00080                              physx::PxVec3& normal, physx::PxVec3& centroid, float maxSeparation);
+00081 
+00082     int32_t createFullBondListAveraged( uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry, const CollisionHull** chunkHulls,
+00083                                         const bool* supportFlags, const uint32_t* meshGroups, NvBlastBondDesc*& resultBondDescs, BondGenerationConfig conf, std::set<std::pair<uint32_t, uint32_t> >* pairNotToTest = nullptr);
+00084     int32_t createFullBondListExact(    uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry,
+00085                                         const bool* supportFlags, NvBlastBondDesc*& resultBondDescs, BondGenerationConfig conf);
+00086     int32_t createFullBondListExactInternal(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry,
+00087                                             std::vector<PlaneChunkIndexer>& planeTriangleMapping , NvBlastBondDesc*& resultBondDescs);
+00088     int32_t createBondForcedInternal(   const std::vector<physx::PxVec3>& hull0, const std::vector<physx::PxVec3>& hull1,const CollisionHull& cHull0, 
+00089                                         const CollisionHull& cHull1, physx::PxBounds3 bound0, physx::PxBounds3 bound1, NvBlastBond& resultBond, float overlapping);
+00090 
+00091     void    buildGeometryCache(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry);
+00092     void    resetGeometryCache();
+00093 
+00094     physx::PxCooking*                           mPxCooking;
+00095     physx::PxPhysicsInsertionCallback*          mPxInsertionCallback;
 00096 
-00097     std::vector<std::vector<Triangle> >         mGeometryCache;
-00098 
-00099     std::vector<PlaneChunkIndexer>              mPlaneCache;
-00100     std::vector<CollisionHull*>                 mCHullCache;
-00101     std::vector<std::vector<physx::PxVec3> >    mHullsPointsCache;
-00102     std::vector<physx::PxBounds3 >              mBoundsCache;
-00103 
+00097 
+00098     std::vector<std::vector<Triangle> >         mGeometryCache;
+00099 
+00100     std::vector<PlaneChunkIndexer>              mPlaneCache;
+00101     std::vector<CollisionHull*>                 mCHullCache;
+00102     std::vector<std::vector<physx::PxVec3> >    mHullsPointsCache;
+00103     std::vector<physx::PxBounds3 >              mBoundsCache;
 00104 
-00105 };
-00106 
-00107 }   // namespace Blast
-00108 }   // namespace Nv
-00109 
-00110 #endif // NVBLASTEXTAUTHORINGBONDGENERATORIMPL_H
+00105 
+00106 };
+00107 
+00108 }   // namespace Blast
+00109 }   // namespace Nv
+00110 
+00111 #endif // NVBLASTEXTAUTHORINGBONDGENERATORIMPL_H
 
-Go to the documentation of this file.
1 // This code contains NVIDIA Confidential Information and is disclosed to you
2 // under a form of NVIDIA software license agreement provided separately to you.
3 //
4 // Notice
5 // NVIDIA Corporation and its licensors retain all intellectual property and
6 // proprietary rights in and to this software and related documentation and
7 // any modifications thereto. Any use, reproduction, disclosure, or
8 // distribution of this software and related documentation without an express
9 // license agreement from NVIDIA Corporation is strictly prohibited.
10 //
11 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
12 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
13 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
14 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
15 //
16 // Information and code furnished is believed to be accurate and reliable.
17 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
18 // information or for any infringement of patents or other rights of third parties that may
19 // result from its use. No license is granted by implication or otherwise under any patent
20 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
21 // This code supersedes and replaces all information previously supplied.
22 // NVIDIA Corporation products are not authorized for use as critical
23 // components in life support devices or systems without express written approval of
24 // NVIDIA Corporation.
25 //
26 // Copyright (c) 2018 NVIDIA Corporation. All rights reserved.
27 
28 
29 #ifndef NVBLASTEXTAUTHORINGBONDGENERATORIMPL_H
30 #define NVBLASTEXTAUTHORINGBONDGENERATORIMPL_H
31 
34 #include "../cooking/PxCooking.h"
35 #include <PxPlane.h>
37 #include <vector>
38 #include <set>
39 
40 namespace Nv
41 {
42 namespace Blast
43 {
44 
50 {
51 public:
52 
53  BlastBondGeneratorImpl(physx::PxCooking* cooking, physx::PxPhysicsInsertionCallback* insertionCallback)
54  : mPxCooking(cooking), mPxInsertionCallback(insertionCallback) {};
55 
56  virtual void release() override;
57 
58  virtual int32_t buildDescFromInternalFracture(FractureTool* tool, const bool* chunkIsSupport,
59  NvBlastBondDesc*& resultBondDescs, NvBlastChunkDesc*& resultChunkDescriptors) override;
60 
61  virtual int32_t createBondBetweenMeshes(uint32_t meshACount, const Triangle* meshA, uint32_t meshBCount, const Triangle* meshB,
62  NvBlastBond& resultBond, BondGenerationConfig conf) override;
63 
64  virtual int32_t createBondBetweenMeshes(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry,
65  uint32_t overlapsCount, const uint32_t* overlapsA, const uint32_t* overlapsB,
66  NvBlastBondDesc*& resultBond, BondGenerationConfig cfg) override;
67 
68  virtual int32_t bondsFromPrefractured(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry,
69  const bool* chunkIsSupport, NvBlastBondDesc*& resultBondDescs,
70  BondGenerationConfig conf) override;
71 
72  virtual int32_t bondsFromPrefractured(uint32_t meshCount, const uint32_t* convexHullOffset, const CollisionHull** chunkHulls,
73  const bool* chunkIsSupport, const uint32_t* meshGroups, NvBlastBondDesc*& resultBondDescs, float maxSeparation) override;
74 
75 
76 
77 private:
78  float processWithMidplanes(TriangleProcessor* trProcessor, const Triangle* mA, uint32_t mavc, const Triangle* mB, uint32_t mbvc,
79  const std::vector<physx::PxVec3>& hull1p, const std::vector<physx::PxVec3>& hull2p, physx::PxVec3& normal, physx::PxVec3& centroid, float maxSeparation);
80 
81  int32_t createFullBondListAveraged( uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry, const CollisionHull** chunkHulls,
82  const bool* supportFlags, const uint32_t* meshGroups, NvBlastBondDesc*& resultBondDescs, BondGenerationConfig conf, std::set<std::pair<uint32_t, uint32_t> >* pairNotToTest = nullptr);
83  int32_t createFullBondListExact( uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry,
84  const bool* supportFlags, NvBlastBondDesc*& resultBondDescs, BondGenerationConfig conf);
85  int32_t createFullBondListExactInternal(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry,
86  std::vector<PlaneChunkIndexer>& planeTriangleMapping , NvBlastBondDesc*& resultBondDescs);
87  int32_t createBondForcedInternal( const std::vector<physx::PxVec3>& hull0, const std::vector<physx::PxVec3>& hull1,const CollisionHull& cHull0,
88  const CollisionHull& cHull1, physx::PxBounds3 bound0, physx::PxBounds3 bound1, NvBlastBond& resultBond, float overlapping);
89 
90  void buildGeometryCache(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry);
91  void resetGeometryCache();
92 
93  physx::PxCooking* mPxCooking;
94  physx::PxPhysicsInsertionCallback* mPxInsertionCallback;
95 
96 
97  std::vector<std::vector<Triangle> > mGeometryCache;
98 
99  std::vector<PlaneChunkIndexer> mPlaneCache;
100  std::vector<CollisionHull*> mCHullCache;
101  std::vector<std::vector<physx::PxVec3> > mHullsPointsCache;
102  std::vector<physx::PxBounds3 > mBoundsCache;
103 
104 
105 };
106 
107 } // namespace Blast
108 } // namespace Nv
109 
110 #endif // NVBLASTEXTAUTHORINGBONDGENERATORIMPL_H
Definition: NvBlastTypes.h:189
+Go to the documentation of this file.
1 // This code contains NVIDIA Confidential Information and is disclosed to you
2 // under a form of NVIDIA software license agreement provided separately to you.
3 //
4 // Notice
5 // NVIDIA Corporation and its licensors retain all intellectual property and
6 // proprietary rights in and to this software and related documentation and
7 // any modifications thereto. Any use, reproduction, disclosure, or
8 // distribution of this software and related documentation without an express
9 // license agreement from NVIDIA Corporation is strictly prohibited.
10 //
11 // ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
12 // NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
13 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
14 // MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
15 //
16 // Information and code furnished is believed to be accurate and reliable.
17 // However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
18 // information or for any infringement of patents or other rights of third parties that may
19 // result from its use. No license is granted by implication or otherwise under any patent
20 // or patent rights of NVIDIA Corporation. Details are subject to change without notice.
21 // This code supersedes and replaces all information previously supplied.
22 // NVIDIA Corporation products are not authorized for use as critical
23 // components in life support devices or systems without express written approval of
24 // NVIDIA Corporation.
25 //
26 // Copyright (c) 2018 NVIDIA Corporation. All rights reserved.
27 
28 
29 #ifndef NVBLASTEXTAUTHORINGBONDGENERATORIMPL_H
30 #define NVBLASTEXTAUTHORINGBONDGENERATORIMPL_H
31 
34 #include "../cooking/PxCooking.h"
35 #include <PxPlane.h>
37 #include <vector>
38 #include <set>
39 
40 namespace Nv
41 {
42 namespace Blast
43 {
44 
50 {
51 public:
52 
53  BlastBondGeneratorImpl(physx::PxCooking* cooking, physx::PxPhysicsInsertionCallback* insertionCallback)
54  : mPxCooking(cooking), mPxInsertionCallback(insertionCallback) {};
55 
56  virtual void release() override;
57 
58  virtual int32_t buildDescFromInternalFracture(FractureTool* tool, const bool* chunkIsSupport,
59  NvBlastBondDesc*& resultBondDescs, NvBlastChunkDesc*& resultChunkDescriptors) override;
60 
61  virtual int32_t createBondBetweenMeshes(uint32_t meshACount, const Triangle* meshA, uint32_t meshBCount, const Triangle* meshB,
62  NvBlastBond& resultBond, BondGenerationConfig conf) override;
63 
64  virtual int32_t createBondBetweenMeshes(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry,
65  uint32_t overlapsCount, const uint32_t* overlapsA, const uint32_t* overlapsB,
66  NvBlastBondDesc*& resultBond, BondGenerationConfig cfg) override;
67 
68  virtual int32_t bondsFromPrefractured(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry,
69  const bool* chunkIsSupport, NvBlastBondDesc*& resultBondDescs,
70  BondGenerationConfig conf) override;
71 
72  virtual int32_t bondsFromPrefractured(uint32_t meshCount, const uint32_t* convexHullOffset, const CollisionHull** chunkHulls,
73  const bool* chunkIsSupport, const uint32_t* meshGroups, NvBlastBondDesc*& resultBondDescs, float maxSeparation) override;
74 
75 
76 
77 private:
78  float processWithMidplanes(TriangleProcessor* trProcessor, const Triangle* mA, uint32_t mavc, const Triangle* mB, uint32_t mbvc, const CollisionHull* hull1, const CollisionHull* hull2,
79  const std::vector<physx::PxVec3>& hull1p, const std::vector<physx::PxVec3>& hull2p,
80  physx::PxVec3& normal, physx::PxVec3& centroid, float maxSeparation);
81 
82  int32_t createFullBondListAveraged( uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry, const CollisionHull** chunkHulls,
83  const bool* supportFlags, const uint32_t* meshGroups, NvBlastBondDesc*& resultBondDescs, BondGenerationConfig conf, std::set<std::pair<uint32_t, uint32_t> >* pairNotToTest = nullptr);
84  int32_t createFullBondListExact( uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry,
85  const bool* supportFlags, NvBlastBondDesc*& resultBondDescs, BondGenerationConfig conf);
86  int32_t createFullBondListExactInternal(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry,
87  std::vector<PlaneChunkIndexer>& planeTriangleMapping , NvBlastBondDesc*& resultBondDescs);
88  int32_t createBondForcedInternal( const std::vector<physx::PxVec3>& hull0, const std::vector<physx::PxVec3>& hull1,const CollisionHull& cHull0,
89  const CollisionHull& cHull1, physx::PxBounds3 bound0, physx::PxBounds3 bound1, NvBlastBond& resultBond, float overlapping);
90 
91  void buildGeometryCache(uint32_t meshCount, const uint32_t* geometryOffset, const Triangle* geometry);
92  void resetGeometryCache();
93 
94  physx::PxCooking* mPxCooking;
95  physx::PxPhysicsInsertionCallback* mPxInsertionCallback;
96 
97 
98  std::vector<std::vector<Triangle> > mGeometryCache;
99 
100  std::vector<PlaneChunkIndexer> mPlaneCache;
101  std::vector<CollisionHull*> mCHullCache;
102  std::vector<std::vector<physx::PxVec3> > mHullsPointsCache;
103  std::vector<physx::PxBounds3 > mBoundsCache;
104 
105 
106 };
107 
108 } // namespace Blast
109 } // namespace Nv
110 
111 #endif // NVBLASTEXTAUTHORINGBONDGENERATORIMPL_H
Definition: NvBlastTypes.h:189
NV_INLINE float normal(const float a[3], float r[3])
Definition: NvBlastMath.h:93
Definition: NvBlastTypes.h:322
Definition: NvBlastExtAuthoringFractureTool.h:248
-- cgit v1.2.3