29 #ifndef NVBLASTAUTHORINGRTMULTITHREADEDIMPL_H 30 #define NVBLASTAUTHORINGRTMULTITHREADEDIMPL_H 36 #include <condition_variable> 60 Vertex* vertexBuffer =
nullptr;
61 uint32_t* indexBuffer =
nullptr;
63 uint32_t* vertexOffsets =
nullptr;
64 uint32_t* indexOffsets =
nullptr;
70 #ifdef USE_MERGED_MESH 74 struct PerThreadToolsAndData
76 PerThreadToolsAndData();
77 ~PerThreadToolsAndData();
81 Vertex* vertexBuffer =
nullptr;
82 uint32_t* indexBuffer =
nullptr;
83 uint32_t* indexOffsets =
nullptr;
84 uint32_t* vertexOffsets =
nullptr;
85 uint32_t* perChunkIds =
nullptr;
96 FractureJob(uint32_t chunkId,
const Mesh* mesh,
Mesh* cell,
98 : chunkId(chunkId), mesh(mesh), cell(cell), stage(stage), pattern(pattern) {}
108 std::condition_variable hasAJob;
109 std::vector<FractureJob> fractureJobList;
110 std::vector<PerThreadToolsAndData> perThreadTd;
111 std::vector<std::thread> threadPool;
112 std::atomic<int32_t> jobCounter;
114 void waitForJob(int32_t threadId);
115 bool terminateThreads;
116 void pushJob(FractureJob& j);
121 #endif // ifndef NVBLASTAUTHORINGRTMULTITHREADEDIMPL_H PerTriangleAdditionalData * getPerTriangleData() override
Definition: NvBlastExtRT.h:144
uint32_t * getIndexOffset() override
Definition: NvBlastExtAuthoringAccelerator.h:47
Definition: NvBlastExtAuthoringMesh.h:42
FractureRTMultithreadedImpl(uint32_t threadCount)
uint32_t * getIndexBuffer() override
Definition: NvBlastExtAuthoringPatternGenerator.h:85
uint32_t * getVertexOffset() override
Definition: NvBlastExtRT.h:172
uint32_t getResultChunkCount() override
Definition: NvBlastExtRT.h:160
void processMesh(DamagePattern *pattern, const Mesh *msh) override
Definition: NvBlastExtRTMultithreadedImpl.h:44
Definition: NvBlastExtAuthoringTypes.h:67
Definition: NvBlastExtRT.h:126
Definition: NvBlastExtRT.h:120
Definition: NvBlastArray.h:37
Vertex * getVertexBuffer() override
void dumpChunksToObj(const char *path) override