aboutsummaryrefslogtreecommitdiff
path: root/sdk/extensions/authoring/include/NvBlastExtAuthoring.h
diff options
context:
space:
mode:
Diffstat (limited to 'sdk/extensions/authoring/include/NvBlastExtAuthoring.h')
-rwxr-xr-x[-rw-r--r--]sdk/extensions/authoring/include/NvBlastExtAuthoring.h506
1 files changed, 253 insertions, 253 deletions
diff --git a/sdk/extensions/authoring/include/NvBlastExtAuthoring.h b/sdk/extensions/authoring/include/NvBlastExtAuthoring.h
index f85f127..d25ded3 100644..100755
--- a/sdk/extensions/authoring/include/NvBlastExtAuthoring.h
+++ b/sdk/extensions/authoring/include/NvBlastExtAuthoring.h
@@ -1,253 +1,253 @@
-// This code contains NVIDIA Confidential Information and is disclosed to you
-// under a form of NVIDIA software license agreement provided separately to you.
-//
-// Notice
-// NVIDIA Corporation and its licensors retain all intellectual property and
-// proprietary rights in and to this software and related documentation and
-// any modifications thereto. Any use, reproduction, disclosure, or
-// distribution of this software and related documentation without an express
-// license agreement from NVIDIA Corporation is strictly prohibited.
-//
-// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
-// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
-// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
-// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
-//
-// Information and code furnished is believed to be accurate and reliable.
-// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
-// information or for any infringement of patents or other rights of third parties that may
-// result from its use. No license is granted by implication or otherwise under any patent
-// or patent rights of NVIDIA Corporation. Details are subject to change without notice.
-// This code supersedes and replaces all information previously supplied.
-// NVIDIA Corporation products are not authorized for use as critical
-// components in life support devices or systems without express written approval of
-// NVIDIA Corporation.
-//
-// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.
-
-
-#ifndef NVBLASTAUTHORING_H
-#define NVBLASTAUTHORING_H
-
-#include "NvBlastExtAuthoringTypes.h"
-
-namespace physx
-{
- class PxCooking;
- class PxPhysicsInsertionCallback;
-}
-
-namespace Nv
-{
- namespace Blast
- {
- class Mesh;
- class VoronoiSitesGenerator;
- class CutoutSet;
- class FractureTool;
- class ConvexMeshBuilder;
- class BlastBondGenerator;
- class MeshCleaner;
- struct CollisionParams;
- struct CollisionHull;
- }
-}
-
-struct NvBlastExtAssetUtilsBondDesc;
-
-/**
-Constructs mesh object from array of triangles.
-User should call release() after usage.
-
-\param[in] positions Array for vertex positions, 3 * verticesCount floats will be read
-\param[in] normals Array for vertex normals, 3 * verticesCount floats will be read
-\param[in] uv Array for vertex uv coordinates, 2 * verticesCount floats will be read
-\param[in] verticesCount Number of vertices in mesh
-\param[in] indices Array of vertex indices. Indices contain vertex index triplets which form a mesh triangle.
-\param[in] indicesCount Indices count (should be equal to numberOfTriangles * 3)
-
-\return pointer to Nv::Blast::Mesh if it was created succefully otherwise return nullptr
-*/
-NVBLAST_API Nv::Blast::Mesh* NvBlastExtAuthoringCreateMesh(const physx::PxVec3* positions, const physx::PxVec3* normals,
- const physx::PxVec2* uv, uint32_t verticesCount, const uint32_t* indices, uint32_t indicesCount);
-
-/**
-Constructs mesh object from array of vertices, edges and facets.
-User should call release() after usage.
-
-\param[in] vertices Array for Nv::Blast::Vertex
-\param[in] edges Array for Nv::Blast::Edge
-\param[in] facets Array for Nv::Blast::Facet
-\param[in] verticesCount Number of vertices in mesh
-\param[in] edgesCount Number of edges in mesh
-\param[in] facetsCount Number of facets in mesh
-
-\return pointer to Nv::Blast::Mesh if it was created succefully otherwise return nullptr
-*/
-NVBLAST_API Nv::Blast::Mesh* NvBlastExtAuthoringCreateMeshFromFacets(const void* vertices, const void* edges, const void* facets,
- uint32_t verticesCount, uint32_t edgesCount, uint32_t facetsCount);
-
-/**
-Voronoi sites should not be generated outside of the fractured mesh, so VoronoiSitesGenerator
-should be supplied with fracture mesh.
-\param[in] mesh Fracture mesh
-\param[in] rnd User supplied random value generator.
-\return Pointer to VoronoiSitesGenerator. User's code should release it after usage.
-*/
-NVBLAST_API Nv::Blast::VoronoiSitesGenerator* NvBlastExtAuthoringCreateVoronoiSitesGenerator(Nv::Blast::Mesh* mesh,
- Nv::Blast::RandomGeneratorBase* rng);
-
-/** Instantiates a blank CutoutSet */
-NVBLAST_API Nv::Blast::CutoutSet* NvBlastExtAuthoringCreateCutoutSet();
-
-/**
-Builds a cutout set (which must have been initially created by createCutoutSet()).
-Uses a bitmap described by pixelBuffer, bufferWidth, and bufferHeight. Each pixel is represented
-by one byte in the buffer.
-
-\param cutoutSet the CutoutSet to build
-\param pixelBuffer pointer to be beginning of the pixel buffer
-\param bufferWidth the width of the buffer in pixels
-\param bufferHeight the height of the buffer in pixels
-\param segmentationErrorThreshold Reduce the number of vertices on curve untill segmentation error is smaller then specified. By default set it to 0.001.
-\param snapThreshold the pixel distance at which neighboring cutout vertices and segments may be fudged into alignment. By default set it to 1.
-\param periodic whether or not to use periodic boundary conditions when creating cutouts from the map
-\param expandGaps expand cutout regions to gaps or keep it as is
-
-*/
-NVBLAST_API void NvBlastExtAuthoringBuildCutoutSet(Nv::Blast::CutoutSet& cutoutSet, const uint8_t* pixelBuffer,
- uint32_t bufferWidth, uint32_t bufferHeight, float segmentationErrorThreshold, float snapThreshold, bool periodic, bool expandGaps);
-
-/**
-Create FractureTool object.
-\return Pointer to create FractureTool. User's code should release it after usage.
-*/
-NVBLAST_API Nv::Blast::FractureTool* NvBlastExtAuthoringCreateFractureTool();
-
-/**
-Create BlastBondGenerator
-\return Pointer to created BlastBondGenerator. User's code should release it after usage.
-*/
-NVBLAST_API Nv::Blast::BlastBondGenerator* NvBlastExtAuthoringCreateBondGenerator(physx::PxCooking* cooking,
- physx::PxPhysicsInsertionCallback* insertionCallback);
-
-/**
-Create ConvexMeshBuilder
-\return Pointer to created ConvexMeshBuilder. User's code should release it after usage.
-*/
-NVBLAST_API Nv::Blast::ConvexMeshBuilder* NvBlastExtAuthoringCreateConvexMeshBuilder(physx::PxCooking* cooking,
- physx::PxPhysicsInsertionCallback* insertionCallback);
-
-
-/**
-Transforms collision hull in place using scale, rotation, transform.
-\param[in, out] hull Pointer to the hull to be transformed (modified).
-\param[in] scale Pointer to scale to be applied. Can be nullptr.
-\param[in] rotation Pointer to rotation to be applied. Can be nullptr.
-\param[in] translation Pointer to translation to be applied. Can be nullptr.
-*/
-NVBLAST_API void NvBlastExtAuthoringTransformCollisionHullInPlace
-(
- Nv::Blast::CollisionHull* hull,
- const physx::PxVec3* scaling,
- const physx::PxQuat* rotation,
- const physx::PxVec3* translation
-);
-
-/**
-Transforms collision hull in place using scale, rotation, transform.
-\param[in] hull Pointer to the hull to be transformed (modified).
-\param[in] scale Pointer to scale to be applied. Can be nullptr.
-\param[in] rotation Pointer to rotation to be applied. Can be nullptr.
-\param[in] translation Pointer to translation to be applied. Can be nullptr.
-*/
-NVBLAST_API Nv::Blast::CollisionHull* NvBlastExtAuthoringTransformCollisionHull
-(
- const Nv::Blast::CollisionHull* hull,
- const physx::PxVec3* scaling,
- const physx::PxQuat* rotation,
- const physx::PxVec3* translation
-);
-
-/**
-Performs pending fractures and generates fractured asset, render and collision geometry
-
-\param[in] fTool Fracture tool created by NvBlastExtAuthoringCreateFractureTool
-\param[in] bondGenerator Bond generator created by NvBlastExtAuthoringCreateBondGenerator
-\param[in] collisionBuilder Collision builder created by NvBlastExtAuthoringCreateConvexMeshBuilder
-\param[in] defaultSupportDepth All new chunks will be marked as support if its depth equal to defaultSupportDepth.
- By default leaves (chunks without children) marked as support.
-\param[in] collisionParam Parameters of collision hulls generation.
-\return Authoring result
-*/
-NVBLAST_API Nv::Blast::AuthoringResult* NvBlastExtAuthoringProcessFracture(Nv::Blast::FractureTool& fTool,
- Nv::Blast::BlastBondGenerator& bondGenerator, Nv::Blast::ConvexMeshBuilder& collisionBuilder, const Nv::Blast::CollisionParams& collisionParam, int32_t defaultSupportDepth = -1);
-
-/**
-Updates graphics mesh only
-
-\param[in] fTool Fracture tool created by NvBlastExtAuthoringCreateFractureTool
-\param[out] ares AuthoringResult object which contains chunks, for which rendermeshes will be updated (e.g. to tweak UVs). Initially should be created by NvBlastExtAuthoringProcessFracture.
-*/
-NVBLAST_API void NvBlastExtAuthoringUpdateGraphicsMesh(Nv::Blast::FractureTool& fTool, Nv::Blast::AuthoringResult& ares);
-
-/**
-Build collision meshes
-
-\param[in,out] ares AuthoringResult object which contains chunks, for which collision meshes will be built.
-\param[in] collisionBuilder Reference to ConvexMeshBuilder instance.
-\param[in] collisionParam Parameters of collision hulls generation.
-\param[in] chunksToProcessCount Number of chunk indices in chunksToProcess memory buffer.
-\param[in] chunksToProcess Chunk indices for which collision mesh should be built.
-*/
-NVBLAST_API void NvBlastExtAuthoringBuildCollisionMeshes
-(
- Nv::Blast::AuthoringResult& ares,
- Nv::Blast::ConvexMeshBuilder& collisionBuilder,
- const Nv::Blast::CollisionParams& collisionParam,
- uint32_t chunksToProcessCount,
- uint32_t* chunksToProcess
-);
-
-/**
- Creates MeshCleaner object
- \return pointer to Nv::Blast::Mesh if it was created succefully otherwise return nullptr
-*/
-NVBLAST_API Nv::Blast::MeshCleaner* NvBlastExtAuthoringCreateMeshCleaner();
-
-/**
-Finds bonds connecting chunks in a list of assets
-
-New bond descriptors may be given to bond support chunks from different components.
-
-An NvBlastAsset may appear more than once in the components array.
-
-NOTE: This function allocates memory using the allocator in NvBlastGlobals, to create the new bond
-descriptor arrays returned. The user must free this memory after use with NVBLAST_FREE
-
-\param[in] components An array of assets to merge, of size componentCount.
-\param[in] scales If not NULL, an array of size componentCount of scales to apply to the geometric data in the chunks and bonds. If NULL, no scaling is applied.
-\param[in] rotations If not NULL, an array of size componentCount of rotations to apply to the geometric data in the chunks and bonds. The quaternions MUST be normalized.
- If NULL, no rotations are applied.
-\param[in] translations If not NULL, an array of of size componentCount of translations to apply to the geometric data in the chunks and bonds. If NULL, no translations are applied.
-\param[in] convexHullOffsets For each component, an array of chunkSize+1 specifying the start of the convex hulls for that chunk inside the chunkHulls array for that component.
-\param[in] chunkHulls For each component, an array of CollisionHull* specifying the collision geometry for the chunks in that component.
-\param[in] componentCount The size of the components and relativeTransforms arrays.
-\param[out] newBondDescs Descriptors of type NvBlastExtAssetUtilsBondDesc for new bonds between components.
-\param[in] maxSeparation Maximal distance between chunks which can be connected by bond.
-\return the number of bonds in newBondDescs
-*/
-NVBLAST_API uint32_t NvBlastExtAuthoringFindAssetConnectingBonds
-(
- const NvBlastAsset** components,
- const physx::PxVec3* scales,
- const physx::PxQuat* rotations,
- const physx::PxVec3* translations,
- const uint32_t** convexHullOffsets,
- const Nv::Blast::CollisionHull*** chunkHulls,
- uint32_t componentCount,
- NvBlastExtAssetUtilsBondDesc*& newBondDescs,
- float maxSeparation = 0.0f
-);
-
-#endif // ifndef NVBLASTAUTHORING_H
+// This code contains NVIDIA Confidential Information and is disclosed to you
+// under a form of NVIDIA software license agreement provided separately to you.
+//
+// Notice
+// NVIDIA Corporation and its licensors retain all intellectual property and
+// proprietary rights in and to this software and related documentation and
+// any modifications thereto. Any use, reproduction, disclosure, or
+// distribution of this software and related documentation without an express
+// license agreement from NVIDIA Corporation is strictly prohibited.
+//
+// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES
+// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
+// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,
+// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.
+//
+// Information and code furnished is believed to be accurate and reliable.
+// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such
+// information or for any infringement of patents or other rights of third parties that may
+// result from its use. No license is granted by implication or otherwise under any patent
+// or patent rights of NVIDIA Corporation. Details are subject to change without notice.
+// This code supersedes and replaces all information previously supplied.
+// NVIDIA Corporation products are not authorized for use as critical
+// components in life support devices or systems without express written approval of
+// NVIDIA Corporation.
+//
+// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.
+
+
+#ifndef NVBLASTAUTHORING_H
+#define NVBLASTAUTHORING_H
+
+#include "NvBlastExtAuthoringTypes.h"
+
+namespace physx
+{
+ class PxCooking;
+ class PxPhysicsInsertionCallback;
+}
+
+namespace Nv
+{
+ namespace Blast
+ {
+ class Mesh;
+ class VoronoiSitesGenerator;
+ class CutoutSet;
+ class FractureTool;
+ class ConvexMeshBuilder;
+ class BlastBondGenerator;
+ class MeshCleaner;
+ struct CollisionParams;
+ struct CollisionHull;
+ }
+}
+
+struct NvBlastExtAssetUtilsBondDesc;
+
+/**
+Constructs mesh object from array of triangles.
+User should call release() after usage.
+
+\param[in] positions Array for vertex positions, 3 * verticesCount floats will be read
+\param[in] normals Array for vertex normals, 3 * verticesCount floats will be read
+\param[in] uv Array for vertex uv coordinates, 2 * verticesCount floats will be read
+\param[in] verticesCount Number of vertices in mesh
+\param[in] indices Array of vertex indices. Indices contain vertex index triplets which form a mesh triangle.
+\param[in] indicesCount Indices count (should be equal to numberOfTriangles * 3)
+
+\return pointer to Nv::Blast::Mesh if it was created succefully otherwise return nullptr
+*/
+NVBLAST_API Nv::Blast::Mesh* NvBlastExtAuthoringCreateMesh(const physx::PxVec3* positions, const physx::PxVec3* normals,
+ const physx::PxVec2* uv, uint32_t verticesCount, const uint32_t* indices, uint32_t indicesCount);
+
+/**
+Constructs mesh object from array of vertices, edges and facets.
+User should call release() after usage.
+
+\param[in] vertices Array for Nv::Blast::Vertex
+\param[in] edges Array for Nv::Blast::Edge
+\param[in] facets Array for Nv::Blast::Facet
+\param[in] verticesCount Number of vertices in mesh
+\param[in] edgesCount Number of edges in mesh
+\param[in] facetsCount Number of facets in mesh
+
+\return pointer to Nv::Blast::Mesh if it was created succefully otherwise return nullptr
+*/
+NVBLAST_API Nv::Blast::Mesh* NvBlastExtAuthoringCreateMeshFromFacets(const void* vertices, const void* edges, const void* facets,
+ uint32_t verticesCount, uint32_t edgesCount, uint32_t facetsCount);
+
+/**
+Voronoi sites should not be generated outside of the fractured mesh, so VoronoiSitesGenerator
+should be supplied with fracture mesh.
+\param[in] mesh Fracture mesh
+\param[in] rnd User supplied random value generator.
+\return Pointer to VoronoiSitesGenerator. User's code should release it after usage.
+*/
+NVBLAST_API Nv::Blast::VoronoiSitesGenerator* NvBlastExtAuthoringCreateVoronoiSitesGenerator(Nv::Blast::Mesh* mesh,
+ Nv::Blast::RandomGeneratorBase* rng);
+
+/** Instantiates a blank CutoutSet */
+NVBLAST_API Nv::Blast::CutoutSet* NvBlastExtAuthoringCreateCutoutSet();
+
+/**
+Builds a cutout set (which must have been initially created by createCutoutSet()).
+Uses a bitmap described by pixelBuffer, bufferWidth, and bufferHeight. Each pixel is represented
+by one byte in the buffer.
+
+\param cutoutSet the CutoutSet to build
+\param pixelBuffer pointer to be beginning of the pixel buffer
+\param bufferWidth the width of the buffer in pixels
+\param bufferHeight the height of the buffer in pixels
+\param segmentationErrorThreshold Reduce the number of vertices on curve untill segmentation error is smaller then specified. By default set it to 0.001.
+\param snapThreshold the pixel distance at which neighboring cutout vertices and segments may be fudged into alignment. By default set it to 1.
+\param periodic whether or not to use periodic boundary conditions when creating cutouts from the map
+\param expandGaps expand cutout regions to gaps or keep it as is
+
+*/
+NVBLAST_API void NvBlastExtAuthoringBuildCutoutSet(Nv::Blast::CutoutSet& cutoutSet, const uint8_t* pixelBuffer,
+ uint32_t bufferWidth, uint32_t bufferHeight, float segmentationErrorThreshold, float snapThreshold, bool periodic, bool expandGaps);
+
+/**
+Create FractureTool object.
+\return Pointer to create FractureTool. User's code should release it after usage.
+*/
+NVBLAST_API Nv::Blast::FractureTool* NvBlastExtAuthoringCreateFractureTool();
+
+/**
+Create BlastBondGenerator
+\return Pointer to created BlastBondGenerator. User's code should release it after usage.
+*/
+NVBLAST_API Nv::Blast::BlastBondGenerator* NvBlastExtAuthoringCreateBondGenerator(physx::PxCooking* cooking,
+ physx::PxPhysicsInsertionCallback* insertionCallback);
+
+/**
+Create ConvexMeshBuilder
+\return Pointer to created ConvexMeshBuilder. User's code should release it after usage.
+*/
+NVBLAST_API Nv::Blast::ConvexMeshBuilder* NvBlastExtAuthoringCreateConvexMeshBuilder(physx::PxCooking* cooking,
+ physx::PxPhysicsInsertionCallback* insertionCallback);
+
+
+/**
+Transforms collision hull in place using scale, rotation, transform.
+\param[in, out] hull Pointer to the hull to be transformed (modified).
+\param[in] scale Pointer to scale to be applied. Can be nullptr.
+\param[in] rotation Pointer to rotation to be applied. Can be nullptr.
+\param[in] translation Pointer to translation to be applied. Can be nullptr.
+*/
+NVBLAST_API void NvBlastExtAuthoringTransformCollisionHullInPlace
+(
+ Nv::Blast::CollisionHull* hull,
+ const physx::PxVec3* scaling,
+ const physx::PxQuat* rotation,
+ const physx::PxVec3* translation
+);
+
+/**
+Transforms collision hull in place using scale, rotation, transform.
+\param[in] hull Pointer to the hull to be transformed (modified).
+\param[in] scale Pointer to scale to be applied. Can be nullptr.
+\param[in] rotation Pointer to rotation to be applied. Can be nullptr.
+\param[in] translation Pointer to translation to be applied. Can be nullptr.
+*/
+NVBLAST_API Nv::Blast::CollisionHull* NvBlastExtAuthoringTransformCollisionHull
+(
+ const Nv::Blast::CollisionHull* hull,
+ const physx::PxVec3* scaling,
+ const physx::PxQuat* rotation,
+ const physx::PxVec3* translation
+);
+
+/**
+Performs pending fractures and generates fractured asset, render and collision geometry
+
+\param[in] fTool Fracture tool created by NvBlastExtAuthoringCreateFractureTool
+\param[in] bondGenerator Bond generator created by NvBlastExtAuthoringCreateBondGenerator
+\param[in] collisionBuilder Collision builder created by NvBlastExtAuthoringCreateConvexMeshBuilder
+\param[in] defaultSupportDepth All new chunks will be marked as support if its depth equal to defaultSupportDepth.
+ By default leaves (chunks without children) marked as support.
+\param[in] collisionParam Parameters of collision hulls generation.
+\return Authoring result
+*/
+NVBLAST_API Nv::Blast::AuthoringResult* NvBlastExtAuthoringProcessFracture(Nv::Blast::FractureTool& fTool,
+ Nv::Blast::BlastBondGenerator& bondGenerator, Nv::Blast::ConvexMeshBuilder& collisionBuilder, const Nv::Blast::CollisionParams& collisionParam, int32_t defaultSupportDepth = -1);
+
+/**
+Updates graphics mesh only
+
+\param[in] fTool Fracture tool created by NvBlastExtAuthoringCreateFractureTool
+\param[out] ares AuthoringResult object which contains chunks, for which rendermeshes will be updated (e.g. to tweak UVs). Initially should be created by NvBlastExtAuthoringProcessFracture.
+*/
+NVBLAST_API void NvBlastExtAuthoringUpdateGraphicsMesh(Nv::Blast::FractureTool& fTool, Nv::Blast::AuthoringResult& ares);
+
+/**
+Build collision meshes
+
+\param[in,out] ares AuthoringResult object which contains chunks, for which collision meshes will be built.
+\param[in] collisionBuilder Reference to ConvexMeshBuilder instance.
+\param[in] collisionParam Parameters of collision hulls generation.
+\param[in] chunksToProcessCount Number of chunk indices in chunksToProcess memory buffer.
+\param[in] chunksToProcess Chunk indices for which collision mesh should be built.
+*/
+NVBLAST_API void NvBlastExtAuthoringBuildCollisionMeshes
+(
+ Nv::Blast::AuthoringResult& ares,
+ Nv::Blast::ConvexMeshBuilder& collisionBuilder,
+ const Nv::Blast::CollisionParams& collisionParam,
+ uint32_t chunksToProcessCount,
+ uint32_t* chunksToProcess
+);
+
+/**
+ Creates MeshCleaner object
+ \return pointer to Nv::Blast::Mesh if it was created succefully otherwise return nullptr
+*/
+NVBLAST_API Nv::Blast::MeshCleaner* NvBlastExtAuthoringCreateMeshCleaner();
+
+/**
+Finds bonds connecting chunks in a list of assets
+
+New bond descriptors may be given to bond support chunks from different components.
+
+An NvBlastAsset may appear more than once in the components array.
+
+NOTE: This function allocates memory using the allocator in NvBlastGlobals, to create the new bond
+descriptor arrays returned. The user must free this memory after use with NVBLAST_FREE
+
+\param[in] components An array of assets to merge, of size componentCount.
+\param[in] scales If not NULL, an array of size componentCount of scales to apply to the geometric data in the chunks and bonds. If NULL, no scaling is applied.
+\param[in] rotations If not NULL, an array of size componentCount of rotations to apply to the geometric data in the chunks and bonds. The quaternions MUST be normalized.
+ If NULL, no rotations are applied.
+\param[in] translations If not NULL, an array of of size componentCount of translations to apply to the geometric data in the chunks and bonds. If NULL, no translations are applied.
+\param[in] convexHullOffsets For each component, an array of chunkSize+1 specifying the start of the convex hulls for that chunk inside the chunkHulls array for that component.
+\param[in] chunkHulls For each component, an array of CollisionHull* specifying the collision geometry for the chunks in that component.
+\param[in] componentCount The size of the components and relativeTransforms arrays.
+\param[out] newBondDescs Descriptors of type NvBlastExtAssetUtilsBondDesc for new bonds between components.
+\param[in] maxSeparation Maximal distance between chunks which can be connected by bond.
+\return the number of bonds in newBondDescs
+*/
+NVBLAST_API uint32_t NvBlastExtAuthoringFindAssetConnectingBonds
+(
+ const NvBlastAsset** components,
+ const physx::PxVec3* scales,
+ const physx::PxQuat* rotations,
+ const physx::PxVec3* translations,
+ const uint32_t** convexHullOffsets,
+ const Nv::Blast::CollisionHull*** chunkHulls,
+ uint32_t componentCount,
+ NvBlastExtAssetUtilsBondDesc*& newBondDescs,
+ float maxSeparation = 0.0f
+);
+
+#endif // ifndef NVBLASTAUTHORING_H