NvBlastExtAuthoring.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) 2016-2020 NVIDIA Corporation. All rights reserved.
27 
28 
29 #ifndef NVBLASTAUTHORING_H
30 #define NVBLASTAUTHORING_H
31 
33 
34 namespace Nv
35 {
36 namespace Blast
37 {
38 class Mesh;
40 class CutoutSet;
42 class FractureTool;
43 class ConvexMeshBuilder;
44 class BlastBondGenerator;
45 class MeshCleaner;
46 class PatternGenerator;
47 class Grid;
48 class GridWalker;
49 } // namespace Blast
50 } // namespace Nv
51 
53 
68 NvBlastExtAuthoringCreateMesh(const NvcVec3* positions, const NvcVec3* normals, const NvcVec2* uv,
69  uint32_t verticesCount, const uint32_t* indices, uint32_t indicesCount);
70 
85 NvBlastExtAuthoringCreateMeshOnlyTriangles(const void* vertices, uint32_t verticesCount, uint32_t* indices,
86  uint32_t indexCount, void* materials = nullptr, uint32_t materialStride = 4);
87 
102 NvBlastExtAuthoringCreateMeshFromFacets(const void* vertices, const void* edges, const void* facets,
103  uint32_t verticesCount, uint32_t edgesCount, uint32_t facetsCount);
104 
114 
117 
134 NVBLAST_API void
135 NvBlastExtAuthoringBuildCutoutSet(Nv::Blast::CutoutSet& cutoutSet, const uint8_t* pixelBuffer, uint32_t bufferWidth,
136  uint32_t bufferHeight, float segmentationErrorThreshold, float snapThreshold,
137  bool periodic, bool expandGaps);
138 
144 
150 
161  const Nv::Blast::Triangle* mesh,
162  uint32_t triangleCount,
164  Nv::Blast::CollisionHull**& convexes);
165 
166 
180  Nv::Blast::CollisionHull** in, const uint32_t* chunkDepth);
181 
182 
191  const NvcQuat* rotation, const NvcVec3* translation);
192 
202  const NvcQuat* rotation, const NvcVec3* translation);
203 
217  Nv::Blast::ConvexMeshBuilder& collisionBuilder,
218  const Nv::Blast::ConvexDecompositionParams& collisionParam,
219  int32_t defaultSupportDepth = -1);
220 
221 
226 
231 
232 
241 
252  Nv::Blast::ConvexMeshBuilder& collisionBuilder,
253  const Nv::Blast::ConvexDecompositionParams& collisionParam,
254  uint32_t chunksToProcessCount, uint32_t* chunksToProcess);
255 
261 
288  const NvBlastAsset** components, const NvcVec3* scales, const NvcQuat* rotations, const NvcVec3* translations,
289  const uint32_t** convexHullOffsets, const Nv::Blast::CollisionHull*** chunkHulls, uint32_t componentCount,
290  NvBlastExtAssetUtilsBondDesc*& newBondDescs, float maxSeparation = 0.0f);
291 
296 
301 
306 
307 #endif // ifndef NVBLASTAUTHORING_H
Nv::Blast::Mesh * NvBlastExtAuthoringCreateMeshFromFacets(const void *vertices, const void *edges, const void *facets, uint32_t verticesCount, uint32_t edgesCount, uint32_t facetsCount)
Definition: NvBlastExtAuthoringConvexMeshBuilder.h:47
Definition: NvBlastExtAuthoringFractureTool.h:179
Definition: NvBlastExtAuthoringMeshCleaner.h:52
Nv::Blast::CutoutSet * NvBlastExtAuthoringCreateCutoutSet()
Definition: NvBlastExtAuthoringCutout.h:36
Definition: NvBlastExtAuthoringMesh.h:42
Definition: NvBlastExtAuthoringFractureTool.h:264
void NvBlastExtAuthoringReleaseAuthoringResultCollision(Nv::Blast::ConvexMeshBuilder &collisionBuilder, Nv::Blast::AuthoringResult *ar)
Definition: NvCTypes.h:43
Definition: NvBlastExtAuthoringFractureTool.h:66
Definition: NvBlastExtAuthoringBondGenerator.h:74
int32_t NvBlastExtAuthoringBuildMeshConvexDecomposition(Nv::Blast::ConvexMeshBuilder *cmb, const Nv::Blast::Triangle *mesh, uint32_t triangleCount, const Nv::Blast::ConvexDecompositionParams &params, Nv::Blast::CollisionHull **&convexes)
Nv::Blast::AuthoringResult * NvBlastExtAuthoringProcessFracture(Nv::Blast::FractureTool &fTool, Nv::Blast::BlastBondGenerator &bondGenerator, Nv::Blast::ConvexMeshBuilder &collisionBuilder, const Nv::Blast::ConvexDecompositionParams &collisionParam, int32_t defaultSupportDepth=-1)
Nv::Blast::CollisionHull * NvBlastExtAuthoringTransformCollisionHull(const Nv::Blast::CollisionHull *hull, const NvcVec3 *scaling, const NvcQuat *rotation, const NvcVec3 *translation)
Definition: NvBlastExtAuthoringTypes.h:133
Nv::Blast::GridWalker * NvBlastExtAuthoringCreateGridWalker(Nv::Blast::Grid *parent)
Nv::Blast::MeshCleaner * NvBlastExtAuthoringCreateMeshCleaner()
#define NVBLAST_API
Definition: NvBlastPreprocessor.h:37
Definition: NvBlastExtAuthoringAccelerator.h:124
void NvBlastExtAuthoringBuildCutoutSet(Nv::Blast::CutoutSet &cutoutSet, const uint8_t *pixelBuffer, uint32_t bufferWidth, uint32_t bufferHeight, float segmentationErrorThreshold, float snapThreshold, bool periodic, bool expandGaps)
Definition: NvBlastExtAuthoringPatternGenerator.h:108
Nv::Blast::Grid * NvBlastExtAuthoringCreateGridAccelerator(uint32_t resolution, const Nv::Blast::Mesh *m)
Definition: NvBlastExtAuthoringTypes.h:195
Definition: NvBlastExtAssetUtils.h:66
Definition: NvBlastExtAuthoringTypes.h:148
Nv::Blast::Mesh * NvBlastExtAuthoringCreateMesh(const NvcVec3 *positions, const NvcVec3 *normals, const NvcVec2 *uv, uint32_t verticesCount, const uint32_t *indices, uint32_t indicesCount)
Nv::Blast::Mesh * NvBlastExtAuthoringCreateMeshOnlyTriangles(const void *vertices, uint32_t verticesCount, uint32_t *indices, uint32_t indexCount, void *materials=nullptr, uint32_t materialStride=4)
Definition: NvBlastExtAuthoringTypes.h:79
Nv::Blast::FractureTool * NvBlastExtAuthoringCreateFractureTool()
Nv::Blast::BlastBondGenerator * NvBlastExtAuthoringCreateBondGenerator(Nv::Blast::ConvexMeshBuilder *builder)
Definition: NvBlastTypes.h:286
void NvBlastExtAuthoringReleaseAuthoringResult(Nv::Blast::ConvexMeshBuilder &collisionBuilder, Nv::Blast::AuthoringResult *ar)
void NvBlastExtAuthoringTransformCollisionHullInPlace(Nv::Blast::CollisionHull *hull, const NvcVec3 *scaling, const NvcQuat *rotation, const NvcVec3 *translation)
Nv::Blast::VoronoiSitesGenerator * NvBlastExtAuthoringCreateVoronoiSitesGenerator(Nv::Blast::Mesh *mesh, Nv::Blast::RandomGeneratorBase *rng)
Definition: NvBlastExtAuthoringAccelerator.h:143
void NvBlastExtAuthoringUpdateGraphicsMesh(Nv::Blast::FractureTool &fTool, Nv::Blast::AuthoringResult &ares)
void NvBlastExtAuthoringBuildCollisionMeshes(Nv::Blast::AuthoringResult &ares, Nv::Blast::ConvexMeshBuilder &collisionBuilder, const Nv::Blast::ConvexDecompositionParams &collisionParam, uint32_t chunksToProcessCount, uint32_t *chunksToProcess)
Definition: NvBlastExtAuthoring.h:34
Definition: NvCTypes.h:49
uint32_t NvBlastExtAuthoringFindAssetConnectingBonds(const NvBlastAsset **components, const NvcVec3 *scales, const NvcQuat *rotations, const NvcVec3 *translations, const uint32_t **convexHullOffsets, const Nv::Blast::CollisionHull ***chunkHulls, uint32_t componentCount, NvBlastExtAssetUtilsBondDesc *&newBondDescs, float maxSeparation=0.0f)
Definition: NvCTypes.h:61
void NvBlastExtAuthoringTrimCollisionGeometry(Nv::Blast::ConvexMeshBuilder *cmb, uint32_t chunksCount, Nv::Blast::CollisionHull **in, const uint32_t *chunkDepth)
Nv::Blast::PatternGenerator * NvBlastExtAuthoringCreatePatternGenerator()