29 #ifndef NVBLASTAUTHORINGFRACTURETOOL_H 30 #define NVBLASTAUTHORINGFRACTURETOOL_H 39 class SpatialAccelerator;
70 virtual float getRandomValue() = 0;
72 virtual void seed(int32_t seed) = 0;
86 float amplitude = 0.f;
91 float frequency = 1.f;
96 uint32_t octaveNumber = 1;
112 int32_t x_slices = 1, y_slices = 1, z_slices = 1;
117 float offset_variations = 0.f;
122 float angle_variations = 0.f;
157 float aperture = 0.f;
163 bool isRelativeTransform =
true;
168 bool useSmoothing =
false;
187 virtual void release() = 0;
192 virtual void setBaseMesh(
const Mesh* mesh) = 0;
199 virtual uint32_t getVoronoiSites(
const NvcVec3*& sites) = 0;
205 virtual void addSite(
const NvcVec3& site) = 0;
210 virtual void uniformlyGenerateSitesInMesh(uint32_t numberOfSites) = 0;
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,
231 int32_t radialSteps,
float angleOffset = 0.0f,
float variability = 0.0f) = 0;
239 virtual void generateInSphere(
const uint32_t count,
const float radius,
const NvcVec3& center) = 0;
245 virtual void setStencil(
const Mesh* stencil) = 0;
250 virtual void clearStencil() = 0;
258 virtual void deleteInSphere(
const float radius,
const NvcVec3& center,
const float eraserProbability = 1) = 0;
273 virtual void release() = 0;
278 virtual void reset() = 0;
284 virtual void setSourceMesh(
const Mesh* mesh) = 0;
289 virtual int32_t setChunkMesh(
const Mesh* mesh, int32_t parentId) = 0;
294 virtual void setInteriorMaterialId(int32_t materialId) = 0;
299 virtual int32_t getInteriorMaterialId()
const = 0;
304 virtual void replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId) = 0;
309 virtual Mesh* createChunkMesh(int32_t
chunkId) = 0;
315 virtual void getTransformation(
NvcVec3& offset,
float& scale) = 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,
341 const NvcVec3& scale,
const NvcQuat& rotation,
bool replaceChunk) = 0;
371 virtual int32_t cut(uint32_t chunkId,
const NvcVec3& normal,
const NvcVec3& position,
391 virtual void finalizeFracturing() = 0;
396 virtual uint32_t getChunkCount()
const = 0;
401 virtual const ChunkInfo& getChunkInfo(int32_t chunkIndex) = 0;
410 virtual float getMeshOverlap(
const Mesh& meshA,
const Mesh& meshB) = 0;
418 virtual uint32_t getBaseMesh(int32_t chunkIndex,
Triangle*& output) = 0;
427 virtual uint32_t updateBaseMesh(int32_t chunkIndex,
Triangle* output) = 0;
434 virtual int32_t getChunkIndex(int32_t chunkId) = 0;
441 virtual int32_t getChunkId(int32_t chunkIndex) = 0;
448 virtual int32_t getChunkDepth(int32_t chunkId) = 0;
456 virtual uint32_t getChunksIdAtDepth(uint32_t depth, int32_t*& chunkIds) = 0;
468 getBufferedBaseMeshes(
Vertex*& vertexBuffer, uint32_t*& indexBuffer, uint32_t*& indexBufferOffsets) = 0;
474 virtual void setRemoveIslands(
bool isRemoveIslands) = 0;
481 virtual int32_t islandDetectionAndRemoving(int32_t chunkId,
bool createAtNewDepth =
false) = 0;
487 virtual bool isMeshContainOpenEdges(
const Mesh* input) = 0;
495 virtual bool deleteChunkSubhierarchy(int32_t chunkId,
bool deleteRoot =
false) = 0;
510 virtual void uniteChunks(uint32_t threshold, uint32_t targetClusterSize,
511 const uint32_t* chunksToMerge, uint32_t mergeChunkCount,
512 const NvcVec2i* adjChunks, uint32_t adjChunksSize,
513 bool removeOriginalChunks =
false) = 0;
521 virtual bool setApproximateBonding(uint32_t chunkIndex,
bool useApproximateBonding) = 0;
528 virtual void fitUvToRect(
float side, uint32_t chunkId) = 0;
534 virtual void fitAllUvToRect(
float side) = 0;
540 #endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H Definition: NvBlastExtAuthoringFractureTool.h:107
Definition: NvBlastExtAuthoringFractureTool.h:47
Definition: NvBlastExtAuthoringFractureTool.h:179
Definition: NvBlastExtAuthoringCutout.h:36
Definition: NvBlastExtAuthoringFractureTool.h:52
Definition: NvBlastExtAuthoringFractureTool.h:79
Definition: NvBlastExtAuthoringMesh.h:42
Definition: NvCTypes.h:43
Definition: NvBlastExtAuthoringFractureTool.h:66
virtual ~VoronoiSitesGenerator()
Definition: NvBlastExtAuthoringFractureTool.h:182
bool isLeaf
Definition: NvBlastExtAuthoringFractureTool.h:59
NoiseConfiguration noise
Definition: NvBlastExtAuthoringFractureTool.h:127
ChunkFlags
Definition: NvBlastExtAuthoringFractureTool.h:49
Definition: NvCTypes.h:106
NoiseConfiguration noise
Definition: NvBlastExtAuthoringFractureTool.h:173
Mesh * meshData
Definition: NvBlastExtAuthoringFractureTool.h:55
uint32_t flags
Definition: NvBlastExtAuthoringFractureTool.h:58
Definition: NvBlastExtAuthoringFractureTool.h:133
Definition: NvBlastExtAuthoringTypes.h:79
int32_t parent
Definition: NvBlastExtAuthoringFractureTool.h:56
virtual ~RandomGeneratorBase()
Definition: NvBlastExtAuthoringFractureTool.h:73
Definition: NvBlastExtAuthoringFractureTool.h:51
int32_t chunkId
Definition: NvBlastExtAuthoringFractureTool.h:57
bool isChanged
Definition: NvBlastExtAuthoringFractureTool.h:60
Definition: NvBlastExtAuthoringTypes.h:67
Definition: NvBlastExtAuthoring.h:34
Definition: NvCTypes.h:49
Definition: NvCTypes.h:61