diff options
29 files changed, 239 insertions, 171 deletions
diff --git a/blast_tools_and_samples-windows.zip b/blast_tools_and_samples-windows.zip Binary files differindex 17268ad..358f340 100755 --- a/blast_tools_and_samples-windows.zip +++ b/blast_tools_and_samples-windows.zip diff --git a/docs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h-source.html b/docs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h-source.html index dccb244..6b90b7b 100755 --- a/docs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h-source.html +++ b/docs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h-source.html @@ -240,19 +240,20 @@ <a name="l00488"></a>00488 <a name="l00494"></a>00494 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#eaa46bf5fe4fe7035ac624f49ade64a8">deleteAllChildrenOfChunk</a>(int32_t chunkId) = 0; <a name="l00495"></a>00495 -<a name="l00507"></a>00507 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#c0c886a68b51652184c126e965dc6209">uniteChunks</a>(uint32_t maxAtLevel, uint32_t maxGroupSize, -<a name="l00508"></a>00508 <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize, -<a name="l00509"></a>00509 <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) = 0; -<a name="l00510"></a>00510 -<a name="l00516"></a>00516 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#db1c311cbb3d84c7bfbfd12abe01af0b">fitUvToRect</a>(<span class="keywordtype">float</span> side, uint32_t chunkId) = 0; -<a name="l00517"></a>00517 -<a name="l00522"></a>00522 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#a9a87637d6d190d71678f0fb9a100bfd">fitAllUvToRect</a>(<span class="keywordtype">float</span> side) = 0; -<a name="l00523"></a>00523 }; -<a name="l00524"></a>00524 -<a name="l00525"></a>00525 } <span class="comment">// namespace Blast</span> -<a name="l00526"></a>00526 } <span class="comment">// namespace Nv</span> +<a name="l00509"></a>00509 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#e4bd5dab498f9e894c648d570c5b60ba">uniteChunks</a>(uint32_t threshold, uint32_t targetClusterSize, +<a name="l00510"></a>00510 <span class="keyword">const</span> uint32_t* chunksToMerge, uint32_t mergeChunkCount, +<a name="l00511"></a>00511 <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize, +<a name="l00512"></a>00512 <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) = 0; +<a name="l00513"></a>00513 +<a name="l00519"></a>00519 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#db1c311cbb3d84c7bfbfd12abe01af0b">fitUvToRect</a>(<span class="keywordtype">float</span> side, uint32_t chunkId) = 0; +<a name="l00520"></a>00520 +<a name="l00525"></a>00525 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#a9a87637d6d190d71678f0fb9a100bfd">fitAllUvToRect</a>(<span class="keywordtype">float</span> side) = 0; +<a name="l00526"></a>00526 }; <a name="l00527"></a>00527 -<a name="l00528"></a>00528 <span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span> +<a name="l00528"></a>00528 } <span class="comment">// namespace Blast</span> +<a name="l00529"></a>00529 } <span class="comment">// namespace Nv</span> +<a name="l00530"></a>00530 +<a name="l00531"></a>00531 <span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span> </pre></div></div> <!-- start footer part --> <div class="footer"> diff --git a/docs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html b/docs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html index 8c2a2bb..1697e00 100755 --- a/docs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html +++ b/docs/api_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html @@ -38,7 +38,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_fracture_tool_ <div class="title">NvBlastExtAuthoringFractureTool.h</div> </div> </div><!--header--> <div class="contents"> -<a href="_nv_blast_ext_authoring_fracture_tool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#define NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">class </span>SpatialAccelerator;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">class </span>Triangulator;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span>CutoutSet;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">/*</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> Chunk data, chunk with chunkId == 0 is always source mesh.</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">*/</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html"> 47</a></span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c"> 49</a></span>  <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c">ChunkFlags</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  {</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47"> 51</a></span>  <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47">NO_FLAGS</a> = 0,</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca083e487cf5083f1063904b52be3982de"> 52</a></span>  <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca083e487cf5083f1063904b52be3982de">CREATED_BY_ISLAND_DETECTOR</a> = 1</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  };</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35"> 55</a></span>  <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35">meshData</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c"> 56</a></span>  int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c">parent</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67"> 57</a></span>  int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67">chunkId</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71"> 58</a></span>  uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71">flags</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a46cb9523bb9c0af0a890ed864560bd02"> 59</a></span>  <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a46cb9523bb9c0af0a890ed864560bd02">isLeaf</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a336cac7f249ed366d00bfe3fe4ef611f"> 60</a></span>  <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a336cac7f249ed366d00bfe3fe4ef611f">isChanged</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> };</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_random_generator_base.html"> 66</a></span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// Generates uniformly distributed value in [0, 1] range.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">virtual</span> <span class="keywordtype">float</span> getRandomValue() = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">// Seeds random value generator</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> seed(int32_t seed) = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_random_generator_base.html#a8afe22100c70f643f3d2a33929c5e71e"> 73</a></span>  <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html#a8afe22100c70f643f3d2a33929c5e71e">~RandomGeneratorBase</a>(){};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> };</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment">/*</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> Noise fracturing configuration for chunks's faces</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">*/</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html"> 79</a></span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> {</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a882e9f74aadf9384b68ab6b92006247c"> 86</a></span>  <span class="keywordtype">float</span> amplitude = 0.f;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a0aa07994b6ef53830d284025968d4569"> 91</a></span>  <span class="keywordtype">float</span> frequency = 1.f;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a9f3eccc2ab7973a00d8a77751bffbbf5"> 96</a></span>  uint32_t octaveNumber = 1;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a6e96813291972a38fb456d3e3bbc32e5"> 101</a></span>  <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> samplingInterval = { 1, 1, 1 };</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> };</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">/*</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment"> Slicing fracturing configuration</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">*/</span></div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html"> 107</a></span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> {</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a90059b509ffd4aa9129c70bf96b3ac79"> 112</a></span>  int32_t x_slices = 1, y_slices = 1, z_slices = 1;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a4d108dd0a46bc2ea6c9fe1b11c369f5a"> 117</a></span>  <span class="keywordtype">float</span> offset_variations = 0.f;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a8bff4d55245144ddd63013e245c1a7cc"> 122</a></span>  <span class="keywordtype">float</span> angle_variations = 0.f;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="comment">/*</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment"> Noise parameters for faces between sliced chunks</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment"> */</span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#ad8d390988e458dbb0d515d7946e75237"> 127</a></span>  <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#ad8d390988e458dbb0d515d7946e75237">noise</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> };</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html"> 133</a></span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> {</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a30e10f98ba8ab88afa9b7ee5855dbd14"> 139</a></span>  <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">CutoutSet</a>* cutoutSet = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#aa0c088a7b81ace3910d7dd53f2eab935"> 145</a></span>  <a class="code" href="struct_nvc_transform.html">NvcTransform</a> transform = {{0, 0, 0, 1}, {0, 0, 0}};</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a4474a4284f58e9e1b97956bbcc4f48d1"> 152</a></span>  <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> scale = { -1, -1 };</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a397831eed1776f363b068ea8879f33fc"> 157</a></span>  <span class="keywordtype">float</span> aperture = 0.f;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a0614b4b06b7c4925c37c3d039887665e"> 163</a></span>  <span class="keywordtype">bool</span> isRelativeTransform = <span class="keyword">true</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a61deebb0401642549a0772f6dd971065"> 168</a></span>  <span class="keywordtype">bool</span> useSmoothing = <span class="keyword">false</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a64b0d84c82de63873bc0414d95ed036b"> 173</a></span>  <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a> <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a64b0d84c82de63873bc0414d95ed036b">noise</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> };</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html"> 179</a></span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">VoronoiSitesGenerator</a></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a8d4ddd2ad08b37a448fa033141a297a8"> 182</a></span>  <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a8d4ddd2ad08b37a448fa033141a297a8">~VoronoiSitesGenerator</a>() {}</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setBaseMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keyword">virtual</span> uint32_t getVoronoiSites(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>*& sites) = 0;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> addSite(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& site) = 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> uniformlyGenerateSitesInMesh(uint32_t numberOfSites) = 0;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clusteredSitesGeneration(uint32_t numberOfClusters, uint32_t sitesPerCluster, <span class="keywordtype">float</span> clusterRadius) = 0;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> radialPattern(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& normal, <span class="keywordtype">float</span> radius, int32_t angularSteps,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  int32_t radialSteps, <span class="keywordtype">float</span> angleOffset = 0.0f, <span class="keywordtype">float</span> variability = 0.0f) = 0;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateInSphere(<span class="keyword">const</span> uint32_t count, <span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center) = 0;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setStencil(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* stencil) = 0;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearStencil() = 0;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> deleteInSphere(<span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center, <span class="keyword">const</span> <span class="keywordtype">float</span> eraserProbability = 1) = 0;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> };</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool.html"> 264</a></span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> {</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2"> 268</a></span>  <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2">~FractureTool</a>() {}</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSourceMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keyword">virtual</span> int32_t setChunkMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, int32_t parentId) = 0;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInteriorMaterialId(int32_t materialId) = 0;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keyword">virtual</span> int32_t getInteriorMaterialId() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId) = 0;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* createChunkMesh(int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67">chunkId</a>) = 0;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> getTransformation(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& offset, <span class="keywordtype">float</span>& scale) = 0;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">virtual</span> int32_t</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints, <span class="keywordtype">bool</span> replaceChunk) = 0;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keyword">virtual</span> int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints,</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& scale, <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>& rotation, <span class="keywordtype">bool</span> replaceChunk) = 0;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keyword">virtual</span> int32_t</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  slicing(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>& conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">virtual</span> int32_t cut(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& normal, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& position,</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a>& noise, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keyword">virtual</span> int32_t cutout(uint32_t chunkId, <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a> conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> finalizeFracturing() = 0;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a>& getChunkInfo(int32_t chunkIndex) = 0;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keyword">virtual</span> <span class="keywordtype">float</span> getMeshOverlap(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>& meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>& meshB) = 0;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keyword">virtual</span> uint32_t getBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>*& output) = 0;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keyword">virtual</span> uint32_t updateBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* output) = 0;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span> </div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keyword">virtual</span> int32_t getChunkIndex(int32_t chunkId) = 0;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keyword">virtual</span> int32_t getChunkId(int32_t chunkIndex) = 0;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keyword">virtual</span> int32_t getChunkDepth(int32_t chunkId) = 0;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keyword">virtual</span> uint32_t getChunksIdAtDepth(uint32_t depth, int32_t*& chunkIds) = 0;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keyword">virtual</span> uint32_t</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  getBufferedBaseMeshes(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>*& vertexBuffer, uint32_t*& indexBuffer, uint32_t*& indexBufferOffsets) = 0;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> </div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setRemoveIslands(<span class="keywordtype">bool</span> isRemoveIslands) = 0;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keyword">virtual</span> int32_t islandDetectionAndRemoving(int32_t chunkId, <span class="keywordtype">bool</span> createAtNewDepth = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span> </div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isMeshContainOpenEdges(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* input) = 0;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> deleteAllChildrenOfChunk(int32_t chunkId) = 0;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span> </div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> uniteChunks(uint32_t maxAtLevel, uint32_t maxGroupSize,</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize,</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> fitUvToRect(<span class="keywordtype">float</span> side, uint32_t chunkId) = 0;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> fitAllUvToRect(<span class="keywordtype">float</span> side) = 0;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span> };</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span> </div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span> } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span> } <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span> </div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_slicing_configuration_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_slicing_configuration.html">Nv::Blast::SlicingConfiguration</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:107</div></div> +<a href="_nv_blast_ext_authoring_fracture_tool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#define NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">class </span>SpatialAccelerator;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">class </span>Triangulator;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span>CutoutSet;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">/*</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> Chunk data, chunk with chunkId == 0 is always source mesh.</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">*/</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html"> 47</a></span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c"> 49</a></span>  <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c">ChunkFlags</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  {</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47"> 51</a></span>  <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47">NO_FLAGS</a> = 0,</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca083e487cf5083f1063904b52be3982de"> 52</a></span>  <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca083e487cf5083f1063904b52be3982de">CREATED_BY_ISLAND_DETECTOR</a> = 1</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  };</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35"> 55</a></span>  <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35">meshData</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c"> 56</a></span>  int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c">parent</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67"> 57</a></span>  int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67">chunkId</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71"> 58</a></span>  uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71">flags</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a46cb9523bb9c0af0a890ed864560bd02"> 59</a></span>  <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a46cb9523bb9c0af0a890ed864560bd02">isLeaf</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a336cac7f249ed366d00bfe3fe4ef611f"> 60</a></span>  <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a336cac7f249ed366d00bfe3fe4ef611f">isChanged</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> };</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_random_generator_base.html"> 66</a></span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// Generates uniformly distributed value in [0, 1] range.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">virtual</span> <span class="keywordtype">float</span> getRandomValue() = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">// Seeds random value generator</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> seed(int32_t seed) = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_random_generator_base.html#a8afe22100c70f643f3d2a33929c5e71e"> 73</a></span>  <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html#a8afe22100c70f643f3d2a33929c5e71e">~RandomGeneratorBase</a>(){};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> };</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment">/*</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> Noise fracturing configuration for chunks's faces</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">*/</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html"> 79</a></span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> {</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a882e9f74aadf9384b68ab6b92006247c"> 86</a></span>  <span class="keywordtype">float</span> amplitude = 0.f;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a0aa07994b6ef53830d284025968d4569"> 91</a></span>  <span class="keywordtype">float</span> frequency = 1.f;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a9f3eccc2ab7973a00d8a77751bffbbf5"> 96</a></span>  uint32_t octaveNumber = 1;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a6e96813291972a38fb456d3e3bbc32e5"> 101</a></span>  <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> samplingInterval = { 1, 1, 1 };</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> };</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">/*</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment"> Slicing fracturing configuration</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">*/</span></div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html"> 107</a></span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> {</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a90059b509ffd4aa9129c70bf96b3ac79"> 112</a></span>  int32_t x_slices = 1, y_slices = 1, z_slices = 1;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a4d108dd0a46bc2ea6c9fe1b11c369f5a"> 117</a></span>  <span class="keywordtype">float</span> offset_variations = 0.f;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a8bff4d55245144ddd63013e245c1a7cc"> 122</a></span>  <span class="keywordtype">float</span> angle_variations = 0.f;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="comment">/*</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment"> Noise parameters for faces between sliced chunks</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment"> */</span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#ad8d390988e458dbb0d515d7946e75237"> 127</a></span>  <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#ad8d390988e458dbb0d515d7946e75237">noise</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> };</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html"> 133</a></span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> {</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a30e10f98ba8ab88afa9b7ee5855dbd14"> 139</a></span>  <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">CutoutSet</a>* cutoutSet = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#aa0c088a7b81ace3910d7dd53f2eab935"> 145</a></span>  <a class="code" href="struct_nvc_transform.html">NvcTransform</a> transform = {{0, 0, 0, 1}, {0, 0, 0}};</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a4474a4284f58e9e1b97956bbcc4f48d1"> 152</a></span>  <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> scale = { -1, -1 };</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a397831eed1776f363b068ea8879f33fc"> 157</a></span>  <span class="keywordtype">float</span> aperture = 0.f;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a0614b4b06b7c4925c37c3d039887665e"> 163</a></span>  <span class="keywordtype">bool</span> isRelativeTransform = <span class="keyword">true</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a61deebb0401642549a0772f6dd971065"> 168</a></span>  <span class="keywordtype">bool</span> useSmoothing = <span class="keyword">false</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a64b0d84c82de63873bc0414d95ed036b"> 173</a></span>  <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a> <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a64b0d84c82de63873bc0414d95ed036b">noise</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> };</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html"> 179</a></span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">VoronoiSitesGenerator</a></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a8d4ddd2ad08b37a448fa033141a297a8"> 182</a></span>  <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a8d4ddd2ad08b37a448fa033141a297a8">~VoronoiSitesGenerator</a>() {}</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setBaseMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keyword">virtual</span> uint32_t getVoronoiSites(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>*& sites) = 0;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> addSite(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& site) = 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> uniformlyGenerateSitesInMesh(uint32_t numberOfSites) = 0;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clusteredSitesGeneration(uint32_t numberOfClusters, uint32_t sitesPerCluster, <span class="keywordtype">float</span> clusterRadius) = 0;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> radialPattern(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& normal, <span class="keywordtype">float</span> radius, int32_t angularSteps,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  int32_t radialSteps, <span class="keywordtype">float</span> angleOffset = 0.0f, <span class="keywordtype">float</span> variability = 0.0f) = 0;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateInSphere(<span class="keyword">const</span> uint32_t count, <span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center) = 0;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setStencil(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* stencil) = 0;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearStencil() = 0;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> deleteInSphere(<span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center, <span class="keyword">const</span> <span class="keywordtype">float</span> eraserProbability = 1) = 0;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> };</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool.html"> 264</a></span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> {</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2"> 268</a></span>  <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2">~FractureTool</a>() {}</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSourceMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keyword">virtual</span> int32_t setChunkMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, int32_t parentId) = 0;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInteriorMaterialId(int32_t materialId) = 0;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keyword">virtual</span> int32_t getInteriorMaterialId() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId) = 0;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* createChunkMesh(int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67">chunkId</a>) = 0;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> getTransformation(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& offset, <span class="keywordtype">float</span>& scale) = 0;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">virtual</span> int32_t</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints, <span class="keywordtype">bool</span> replaceChunk) = 0;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keyword">virtual</span> int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints,</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& scale, <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>& rotation, <span class="keywordtype">bool</span> replaceChunk) = 0;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keyword">virtual</span> int32_t</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  slicing(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>& conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">virtual</span> int32_t cut(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& normal, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& position,</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a>& noise, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keyword">virtual</span> int32_t cutout(uint32_t chunkId, <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a> conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> finalizeFracturing() = 0;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a>& getChunkInfo(int32_t chunkIndex) = 0;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keyword">virtual</span> <span class="keywordtype">float</span> getMeshOverlap(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>& meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>& meshB) = 0;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keyword">virtual</span> uint32_t getBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>*& output) = 0;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keyword">virtual</span> uint32_t updateBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* output) = 0;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span> </div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keyword">virtual</span> int32_t getChunkIndex(int32_t chunkId) = 0;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keyword">virtual</span> int32_t getChunkId(int32_t chunkIndex) = 0;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keyword">virtual</span> int32_t getChunkDepth(int32_t chunkId) = 0;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keyword">virtual</span> uint32_t getChunksIdAtDepth(uint32_t depth, int32_t*& chunkIds) = 0;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keyword">virtual</span> uint32_t</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  getBufferedBaseMeshes(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>*& vertexBuffer, uint32_t*& indexBuffer, uint32_t*& indexBufferOffsets) = 0;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> </div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setRemoveIslands(<span class="keywordtype">bool</span> isRemoveIslands) = 0;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keyword">virtual</span> int32_t islandDetectionAndRemoving(int32_t chunkId, <span class="keywordtype">bool</span> createAtNewDepth = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span> </div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isMeshContainOpenEdges(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* input) = 0;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> deleteAllChildrenOfChunk(int32_t chunkId) = 0;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span> </div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> uniteChunks(uint32_t threshold, uint32_t targetClusterSize,</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keyword">const</span> uint32_t* chunksToMerge, uint32_t mergeChunkCount,</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize,</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span> </div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> fitUvToRect(<span class="keywordtype">float</span> side, uint32_t chunkId) = 0;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span> </div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> fitAllUvToRect(<span class="keywordtype">float</span> side) = 0;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span> };</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span> </div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span> } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span> } <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span> </div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_slicing_configuration_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_slicing_configuration.html">Nv::Blast::SlicingConfiguration</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:107</div></div> <div class="ttc" id="struct_nv_1_1_blast_1_1_chunk_info_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_chunk_info.html">Nv::Blast::ChunkInfo</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:47</div></div> <div class="ttc" id="class_nv_1_1_blast_1_1_voronoi_sites_generator_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">Nv::Blast::VoronoiSitesGenerator</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:179</div></div> <div class="ttc" id="struct_nv_1_1_blast_1_1_chunk_info_html_ac1ebabf88ad2eb905b6482519530824ca083e487cf5083f1063904b52be3982de"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca083e487cf5083f1063904b52be3982de">Nv::Blast::ChunkInfo::CREATED_BY_ISLAND_DETECTOR</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:52</div></div> diff --git a/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool-members.html b/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool-members.html index 3f7f6ce..102a682 100755 --- a/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool-members.html +++ b/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool-members.html @@ -49,7 +49,7 @@ <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#251738022e498b819e88536577470735">setRemoveIslands</a>(bool isRemoveIslands)=0</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a></td><td><code> [pure virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#c14c1ff1d50756694be24c34476af965">setSourceMesh</a>(const Mesh *mesh)=0</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a></td><td><code> [pure virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#45e8a5d3b6d98da1b44b6888a5054cce">slicing</a>(uint32_t chunkId, const SlicingConfiguration &conf, bool replaceChunk, RandomGeneratorBase *rnd)=0</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a></td><td><code> [pure virtual]</code></td></tr> - <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#c0c886a68b51652184c126e965dc6209">uniteChunks</a>(uint32_t maxAtLevel, uint32_t maxGroupSize, const NvcVec2i *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false)=0</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a></td><td><code> [pure virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#e4bd5dab498f9e894c648d570c5b60ba">uniteChunks</a>(uint32_t threshold, uint32_t targetClusterSize, const uint32_t *chunksToMerge, uint32_t mergeChunkCount, const NvcVec2i *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false)=0</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a></td><td><code> [pure virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#384be45a1310ee0652d315127e62da22">updateBaseMesh</a>(int32_t chunkIndex, Triangle *output)=0</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a></td><td><code> [pure virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#4c3308b909153982aded9366f9d3ee7c">voronoiFracturing</a>(uint32_t chunkId, uint32_t cellCount, const NvcVec3 *cellPoints, bool replaceChunk)=0</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a></td><td><code> [pure virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#2d38fb6aac3c36d51d60dad428a43074">voronoiFracturing</a>(uint32_t chunkId, uint32_t cellCount, const NvcVec3 *cellPoints, const NvcVec3 &scale, const NvcQuat &rotation, bool replaceChunk)=0</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a></td><td><code> [pure virtual]</code></td></tr> diff --git a/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool.html b/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool.html index 8915c77..66965f2 100755 --- a/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool.html +++ b/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool.html @@ -85,7 +85,7 @@ <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#45e8a5d3b6d98da1b44b6888a5054cce">slicing</a> (uint32_t chunkId, const <a class="el" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a> &conf, bool replaceChunk, <a class="el" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a> *rnd)=0</td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#c0c886a68b51652184c126e965dc6209">uniteChunks</a> (uint32_t maxAtLevel, uint32_t maxGroupSize, const <a class="el" href="struct_nvc_vec2i.html">NvcVec2i</a> *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false)=0</td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#e4bd5dab498f9e894c648d570c5b60ba">uniteChunks</a> (uint32_t threshold, uint32_t targetClusterSize, const uint32_t *chunksToMerge, uint32_t mergeChunkCount, const <a class="el" href="struct_nvc_vec2i.html">NvcVec2i</a> *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false)=0</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#384be45a1310ee0652d315127e62da22">updateBaseMesh</a> (int32_t chunkIndex, <a class="el" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a> *output)=0</td></tr> @@ -940,7 +940,7 @@ Fractures specified chunk with slicing method. <dl compact><dt><b>Parameters:</b </div> </div><p> -<a class="anchor" name="c0c886a68b51652184c126e965dc6209"></a><!-- doxytag: member="Nv::Blast::FractureTool::uniteChunks" ref="c0c886a68b51652184c126e965dc6209" args="(uint32_t maxAtLevel, uint32_t maxGroupSize, const NvcVec2i *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false)=0" --> +<a class="anchor" name="e4bd5dab498f9e894c648d570c5b60ba"></a><!-- doxytag: member="Nv::Blast::FractureTool::uniteChunks" ref="e4bd5dab498f9e894c648d570c5b60ba" args="(uint32_t threshold, uint32_t targetClusterSize, const uint32_t *chunksToMerge, uint32_t mergeChunkCount, const NvcVec2i *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> @@ -948,13 +948,25 @@ Fractures specified chunk with slicing method. <dl compact><dt><b>Parameters:</b <td class="memname">virtual void Nv::Blast::FractureTool::uniteChunks </td> <td>(</td> <td class="paramtype">uint32_t </td> - <td class="paramname"> <em>maxAtLevel</em>, </td> + <td class="paramname"> <em>threshold</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> - <td class="paramname"> <em>maxGroupSize</em>, </td> + <td class="paramname"> <em>targetClusterSize</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const uint32_t * </td> + <td class="paramname"> <em>chunksToMerge</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t </td> + <td class="paramname"> <em>mergeChunkCount</em>, </td> </tr> <tr> <td class="paramkey"></td> @@ -986,9 +998,10 @@ Fractures specified chunk with slicing method. <dl compact><dt><b>Parameters:</b <p> Optimize chunk hierarhy for better runtime performance. It tries to unite chunks to groups of some size in order to transform flat hierarchy (all chunks are children of single root) to tree like hieracrhy with limited number of children for each chunk. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> - <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>maxAtLevel</em> </td><td>If number of children of some chunk less then maxAtLevel then it would be considered as already optimized and skipped. </td></tr> - <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>maxGroupSize</em> </td><td>Max number of children for processed chunks. </td></tr> - <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>removeOriginalChunks.</em> </td><td></td></tr> + <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>threshold</em> </td><td>If number of children of some chunk less then maxAtLevel then it would be considered as already optimized and skipped. </td></tr> + <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>targetClusterSize</em> </td><td>Target number of children for processed chunks. </td></tr> + <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>chunksToMerge</em> </td><td>Which chunks are merge candidate. If NULL, all chunks will be a merge candidate. </td></tr> + <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>mergeChunkCount</em> </td><td>size of chunksToMerge array, if chunksToMerge != NULL. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>adjChunks</em> </td><td>Optional index pairs to describe chunk adjacency. May be NULL. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>adjChunksSize</em> </td><td>If 'adjChunks' is not NULL, the number of index pairs in the adjChunks array. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>removeOriginalChunks</em> </td><td>If true, original chunks that are merged are removed. </td></tr> diff --git a/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool.js b/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool.js index 49ed0fd..8ade1d9 100755 --- a/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool.js +++ b/docs/api_docs/files/class_nv_1_1_blast_1_1_fracture_tool.js @@ -29,7 +29,7 @@ var class_nv_1_1_blast_1_1_fracture_tool = [ "setRemoveIslands", "class_nv_1_1_blast_1_1_fracture_tool.html#a251738022e498b819e88536577470735", null ], [ "setSourceMesh", "class_nv_1_1_blast_1_1_fracture_tool.html#ac14c1ff1d50756694be24c34476af965", null ], [ "slicing", "class_nv_1_1_blast_1_1_fracture_tool.html#a45e8a5d3b6d98da1b44b6888a5054cce", null ], - [ "uniteChunks", "class_nv_1_1_blast_1_1_fracture_tool.html#ac0c886a68b51652184c126e965dc6209", null ], + [ "uniteChunks", "class_nv_1_1_blast_1_1_fracture_tool.html#ae4bd5dab498f9e894c648d570c5b60ba", null ], [ "updateBaseMesh", "class_nv_1_1_blast_1_1_fracture_tool.html#a384be45a1310ee0652d315127e62da22", null ], [ "voronoiFracturing", "class_nv_1_1_blast_1_1_fracture_tool.html#a4c3308b909153982aded9366f9d3ee7c", null ], [ "voronoiFracturing", "class_nv_1_1_blast_1_1_fracture_tool.html#a2d38fb6aac3c36d51d60dad428a43074", null ] diff --git a/docs/api_docs/files/functions_0x75.html b/docs/api_docs/files/functions_0x75.html index 1f56d11..6ebad3e 100755 --- a/docs/api_docs/files/functions_0x75.html +++ b/docs/api_docs/files/functions_0x75.html @@ -70,7 +70,7 @@ Here is a list of all class members with links to the classes they belong to: <li>uniformlyGenerateSitesInMesh() : <a class="el" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#1940917c639e2f134530d24e144022b8">Nv::Blast::VoronoiSitesGenerator</a> <li>uniteChunks() -: <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#c0c886a68b51652184c126e965dc6209">Nv::Blast::FractureTool</a> +: <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#e4bd5dab498f9e894c648d570c5b60ba">Nv::Blast::FractureTool</a> <li>Unreferenced : <a class="el" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#b7f4bb03fd3e37d487b6baa02104db7d7cfcf13b35fbd5644d11037762bb053c">Nv::Blast::TkJointUpdateEvent</a> <li>unsubscribe() diff --git a/docs/api_docs/files/functions_func_0x75.html b/docs/api_docs/files/functions_func_0x75.html index 993b750..bc57693 100755 --- a/docs/api_docs/files/functions_func_0x75.html +++ b/docs/api_docs/files/functions_func_0x75.html @@ -60,7 +60,7 @@ <li>uniformlyGenerateSitesInMesh() : <a class="el" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#1940917c639e2f134530d24e144022b8">Nv::Blast::VoronoiSitesGenerator</a> <li>uniteChunks() -: <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#c0c886a68b51652184c126e965dc6209">Nv::Blast::FractureTool</a> +: <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#e4bd5dab498f9e894c648d570c5b60ba">Nv::Blast::FractureTool</a> <li>unsubscribe() : <a class="el" href="class_nv_1_1_blast_1_1_ext_px_manager.html#5b4189527d151328f1d9ce166fa5f9d1">Nv::Blast::ExtPxManager</a> , <a class="el" href="class_nv_1_1_blast_1_1_ext_px_family.html#0da64cab1fb7b93167505a52da8c74d3">Nv::Blast::ExtPxFamily</a> diff --git a/docs/api_docs/files/functions_func_u.html b/docs/api_docs/files/functions_func_u.html index 667f7f7..5bd26d2 100755 --- a/docs/api_docs/files/functions_func_u.html +++ b/docs/api_docs/files/functions_func_u.html @@ -41,7 +41,7 @@ $(document).ready(function(){initNavTree('functions_func_u.html','');}); : <a class="el" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a1940917c639e2f134530d24e144022b8">Nv::Blast::VoronoiSitesGenerator</a> </li> <li>uniteChunks() -: <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#ac0c886a68b51652184c126e965dc6209">Nv::Blast::FractureTool</a> +: <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#ae4bd5dab498f9e894c648d570c5b60ba">Nv::Blast::FractureTool</a> </li> <li>unsubscribe() : <a class="el" href="class_nv_1_1_blast_1_1_ext_px_family.html#a0da64cab1fb7b93167505a52da8c74d3">Nv::Blast::ExtPxFamily</a> diff --git a/docs/api_docs/files/functions_u.html b/docs/api_docs/files/functions_u.html index e8d8108..7a98708 100755 --- a/docs/api_docs/files/functions_u.html +++ b/docs/api_docs/files/functions_u.html @@ -47,7 +47,7 @@ $(document).ready(function(){initNavTree('functions_u.html','');}); : <a class="el" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a1940917c639e2f134530d24e144022b8">Nv::Blast::VoronoiSitesGenerator</a> </li> <li>uniteChunks() -: <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#ac0c886a68b51652184c126e965dc6209">Nv::Blast::FractureTool</a> +: <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#ae4bd5dab498f9e894c648d570c5b60ba">Nv::Blast::FractureTool</a> </li> <li>Unreferenced : <a class="el" href="struct_nv_1_1_blast_1_1_tk_joint_update_event.html#ab7f4bb03fd3e37d487b6baa02104db7da7cfcf13b35fbd5644d11037762bb053c">Nv::Blast::TkJointUpdateEvent</a> diff --git a/docs/api_docs/files/navtreeindex2.js b/docs/api_docs/files/navtreeindex2.js index f2e5e25..a216862 100755 --- a/docs/api_docs/files/navtreeindex2.js +++ b/docs/api_docs/files/navtreeindex2.js @@ -5,12 +5,12 @@ var NAVTREEINDEX2 = "class_nv_1_1_blast_1_1_fracture_tool.html#a9a113cc771fac30fd14a9c7b5b073e99":[3,0,0,0,62,14], "class_nv_1_1_blast_1_1_fracture_tool.html#aa9a87637d6d190d71678f0fb9a100bfd":[3,0,0,0,62,6], "class_nv_1_1_blast_1_1_fracture_tool.html#ab462c92fa47a5359bf3d19cf44af80f4":[3,0,0,0,62,23], -"class_nv_1_1_blast_1_1_fracture_tool.html#ac0c886a68b51652184c126e965dc6209":[3,0,0,0,62,29], "class_nv_1_1_blast_1_1_fracture_tool.html#ac14c1ff1d50756694be24c34476af965":[3,0,0,0,62,27], "class_nv_1_1_blast_1_1_fracture_tool.html#ac8c4f90133fdf32969cad6e4c520414f":[3,0,0,0,62,25], "class_nv_1_1_blast_1_1_fracture_tool.html#ac99cb91a13255929a52d9a2623ac207b":[3,0,0,0,62,11], "class_nv_1_1_blast_1_1_fracture_tool.html#adb1c311cbb3d84c7bfbfd12abe01af0b":[3,0,0,0,62,7], "class_nv_1_1_blast_1_1_fracture_tool.html#adc4037818bdb9424fe0543b59c1e2eac":[3,0,0,0,62,17], +"class_nv_1_1_blast_1_1_fracture_tool.html#ae4bd5dab498f9e894c648d570c5b60ba":[3,0,0,0,62,29], "class_nv_1_1_blast_1_1_fracture_tool.html#aea8f1d386c70af0ea67bed2c353e57a1":[3,0,0,0,62,8], "class_nv_1_1_blast_1_1_fracture_tool.html#aeaa46bf5fe4fe7035ac624f49ade64a8":[3,0,0,0,62,4], "class_nv_1_1_blast_1_1_fracture_tool.html#aecd9be996bba9329418fd91db8235ebe":[3,0,0,0,62,24], diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h-source.html b/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h-source.html index 69c4330..267bbfa 100755 --- a/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h-source.html +++ b/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h-source.html @@ -257,19 +257,20 @@ <a name="l00488"></a>00488 <a name="l00494"></a>00494 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#eaa46bf5fe4fe7035ac624f49ade64a8">deleteAllChildrenOfChunk</a>(int32_t chunkId) = 0; <a name="l00495"></a>00495 -<a name="l00507"></a>00507 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#c0c886a68b51652184c126e965dc6209">uniteChunks</a>(uint32_t maxAtLevel, uint32_t maxGroupSize, -<a name="l00508"></a>00508 <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize, -<a name="l00509"></a>00509 <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) = 0; -<a name="l00510"></a>00510 -<a name="l00516"></a>00516 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#db1c311cbb3d84c7bfbfd12abe01af0b">fitUvToRect</a>(<span class="keywordtype">float</span> side, uint32_t chunkId) = 0; -<a name="l00517"></a>00517 -<a name="l00522"></a>00522 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#a9a87637d6d190d71678f0fb9a100bfd">fitAllUvToRect</a>(<span class="keywordtype">float</span> side) = 0; -<a name="l00523"></a>00523 }; -<a name="l00524"></a>00524 -<a name="l00525"></a>00525 } <span class="comment">// namespace Blast</span> -<a name="l00526"></a>00526 } <span class="comment">// namespace Nv</span> +<a name="l00509"></a>00509 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#e4bd5dab498f9e894c648d570c5b60ba">uniteChunks</a>(uint32_t threshold, uint32_t targetClusterSize, +<a name="l00510"></a>00510 <span class="keyword">const</span> uint32_t* chunksToMerge, uint32_t mergeChunkCount, +<a name="l00511"></a>00511 <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize, +<a name="l00512"></a>00512 <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) = 0; +<a name="l00513"></a>00513 +<a name="l00519"></a>00519 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#db1c311cbb3d84c7bfbfd12abe01af0b">fitUvToRect</a>(<span class="keywordtype">float</span> side, uint32_t chunkId) = 0; +<a name="l00520"></a>00520 +<a name="l00525"></a>00525 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#a9a87637d6d190d71678f0fb9a100bfd">fitAllUvToRect</a>(<span class="keywordtype">float</span> side) = 0; +<a name="l00526"></a>00526 }; <a name="l00527"></a>00527 -<a name="l00528"></a>00528 <span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span> +<a name="l00528"></a>00528 } <span class="comment">// namespace Blast</span> +<a name="l00529"></a>00529 } <span class="comment">// namespace Nv</span> +<a name="l00530"></a>00530 +<a name="l00531"></a>00531 <span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span> </pre></div></div> <!-- start footer part --> <div class="footer"> diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html index 97f864a..6c319b8 100755 --- a/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html +++ b/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_8h_source.html @@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_fracture_tool_ <div class="title">NvBlastExtAuthoringFractureTool.h</div> </div> </div><!--header--> <div class="contents"> -<a href="_nv_blast_ext_authoring_fracture_tool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#define NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">class </span>SpatialAccelerator;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">class </span>Triangulator;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span>CutoutSet;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">/*</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> Chunk data, chunk with chunkId == 0 is always source mesh.</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">*/</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html"> 47</a></span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c"> 49</a></span>  <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c">ChunkFlags</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  {</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47"> 51</a></span>  <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47">NO_FLAGS</a> = 0,</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca083e487cf5083f1063904b52be3982de"> 52</a></span>  <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca083e487cf5083f1063904b52be3982de">CREATED_BY_ISLAND_DETECTOR</a> = 1</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  };</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35"> 55</a></span>  <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35">meshData</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c"> 56</a></span>  int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c">parent</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67"> 57</a></span>  int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67">chunkId</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71"> 58</a></span>  uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71">flags</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a46cb9523bb9c0af0a890ed864560bd02"> 59</a></span>  <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a46cb9523bb9c0af0a890ed864560bd02">isLeaf</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a336cac7f249ed366d00bfe3fe4ef611f"> 60</a></span>  <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a336cac7f249ed366d00bfe3fe4ef611f">isChanged</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> };</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_random_generator_base.html"> 66</a></span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// Generates uniformly distributed value in [0, 1] range.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">virtual</span> <span class="keywordtype">float</span> getRandomValue() = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">// Seeds random value generator</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> seed(int32_t seed) = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_random_generator_base.html#a8afe22100c70f643f3d2a33929c5e71e"> 73</a></span>  <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html#a8afe22100c70f643f3d2a33929c5e71e">~RandomGeneratorBase</a>(){};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> };</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment">/*</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> Noise fracturing configuration for chunks's faces</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">*/</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html"> 79</a></span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> {</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a882e9f74aadf9384b68ab6b92006247c"> 86</a></span>  <span class="keywordtype">float</span> amplitude = 0.f;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a0aa07994b6ef53830d284025968d4569"> 91</a></span>  <span class="keywordtype">float</span> frequency = 1.f;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a9f3eccc2ab7973a00d8a77751bffbbf5"> 96</a></span>  uint32_t octaveNumber = 1;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a6e96813291972a38fb456d3e3bbc32e5"> 101</a></span>  <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> samplingInterval = { 1, 1, 1 };</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> };</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">/*</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment"> Slicing fracturing configuration</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">*/</span></div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html"> 107</a></span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> {</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a90059b509ffd4aa9129c70bf96b3ac79"> 112</a></span>  int32_t x_slices = 1, y_slices = 1, z_slices = 1;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a4d108dd0a46bc2ea6c9fe1b11c369f5a"> 117</a></span>  <span class="keywordtype">float</span> offset_variations = 0.f;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a8bff4d55245144ddd63013e245c1a7cc"> 122</a></span>  <span class="keywordtype">float</span> angle_variations = 0.f;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="comment">/*</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment"> Noise parameters for faces between sliced chunks</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment"> */</span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#ad8d390988e458dbb0d515d7946e75237"> 127</a></span>  <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#ad8d390988e458dbb0d515d7946e75237">noise</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> };</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html"> 133</a></span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> {</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a30e10f98ba8ab88afa9b7ee5855dbd14"> 139</a></span>  <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">CutoutSet</a>* cutoutSet = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#aa0c088a7b81ace3910d7dd53f2eab935"> 145</a></span>  <a class="code" href="struct_nvc_transform.html">NvcTransform</a> transform = {{0, 0, 0, 1}, {0, 0, 0}};</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a4474a4284f58e9e1b97956bbcc4f48d1"> 152</a></span>  <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> scale = { -1, -1 };</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a397831eed1776f363b068ea8879f33fc"> 157</a></span>  <span class="keywordtype">float</span> aperture = 0.f;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a0614b4b06b7c4925c37c3d039887665e"> 163</a></span>  <span class="keywordtype">bool</span> isRelativeTransform = <span class="keyword">true</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a61deebb0401642549a0772f6dd971065"> 168</a></span>  <span class="keywordtype">bool</span> useSmoothing = <span class="keyword">false</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a64b0d84c82de63873bc0414d95ed036b"> 173</a></span>  <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a> <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a64b0d84c82de63873bc0414d95ed036b">noise</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> };</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html"> 179</a></span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">VoronoiSitesGenerator</a></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a8d4ddd2ad08b37a448fa033141a297a8"> 182</a></span>  <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a8d4ddd2ad08b37a448fa033141a297a8">~VoronoiSitesGenerator</a>() {}</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setBaseMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keyword">virtual</span> uint32_t getVoronoiSites(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>*& sites) = 0;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> addSite(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& site) = 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> uniformlyGenerateSitesInMesh(uint32_t numberOfSites) = 0;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clusteredSitesGeneration(uint32_t numberOfClusters, uint32_t sitesPerCluster, <span class="keywordtype">float</span> clusterRadius) = 0;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> radialPattern(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, <span class="keywordtype">float</span> radius, int32_t angularSteps,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  int32_t radialSteps, <span class="keywordtype">float</span> angleOffset = 0.0f, <span class="keywordtype">float</span> variability = 0.0f) = 0;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateInSphere(<span class="keyword">const</span> uint32_t count, <span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center) = 0;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setStencil(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* stencil) = 0;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearStencil() = 0;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> deleteInSphere(<span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center, <span class="keyword">const</span> <span class="keywordtype">float</span> eraserProbability = 1) = 0;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> };</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool.html"> 264</a></span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> {</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2"> 268</a></span>  <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2">~FractureTool</a>() {}</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSourceMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keyword">virtual</span> int32_t setChunkMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, int32_t parentId) = 0;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInteriorMaterialId(int32_t materialId) = 0;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keyword">virtual</span> int32_t getInteriorMaterialId() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId) = 0;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* createChunkMesh(int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67">chunkId</a>) = 0;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> getTransformation(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& offset, <span class="keywordtype">float</span>& scale) = 0;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">virtual</span> int32_t</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints, <span class="keywordtype">bool</span> replaceChunk) = 0;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keyword">virtual</span> int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints,</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& scale, <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>& rotation, <span class="keywordtype">bool</span> replaceChunk) = 0;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keyword">virtual</span> int32_t</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  slicing(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>& conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">virtual</span> int32_t cut(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& position,</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a>& noise, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keyword">virtual</span> int32_t cutout(uint32_t chunkId, <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a> conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> finalizeFracturing() = 0;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a>& getChunkInfo(int32_t chunkIndex) = 0;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keyword">virtual</span> <span class="keywordtype">float</span> getMeshOverlap(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>& meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>& meshB) = 0;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keyword">virtual</span> uint32_t getBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>*& output) = 0;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keyword">virtual</span> uint32_t updateBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* output) = 0;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span> </div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keyword">virtual</span> int32_t getChunkIndex(int32_t chunkId) = 0;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keyword">virtual</span> int32_t getChunkId(int32_t chunkIndex) = 0;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keyword">virtual</span> int32_t getChunkDepth(int32_t chunkId) = 0;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keyword">virtual</span> uint32_t getChunksIdAtDepth(uint32_t depth, int32_t*& chunkIds) = 0;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keyword">virtual</span> uint32_t</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  getBufferedBaseMeshes(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>*& vertexBuffer, uint32_t*& indexBuffer, uint32_t*& indexBufferOffsets) = 0;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> </div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setRemoveIslands(<span class="keywordtype">bool</span> isRemoveIslands) = 0;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keyword">virtual</span> int32_t islandDetectionAndRemoving(int32_t chunkId, <span class="keywordtype">bool</span> createAtNewDepth = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span> </div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isMeshContainOpenEdges(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* input) = 0;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> deleteAllChildrenOfChunk(int32_t chunkId) = 0;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span> </div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> uniteChunks(uint32_t maxAtLevel, uint32_t maxGroupSize,</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize,</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> fitUvToRect(<span class="keywordtype">float</span> side, uint32_t chunkId) = 0;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> fitAllUvToRect(<span class="keywordtype">float</span> side) = 0;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span> };</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span> </div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span> } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span> } <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span> </div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_slicing_configuration_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_slicing_configuration.html">Nv::Blast::SlicingConfiguration</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:107</div></div> +<a href="_nv_blast_ext_authoring_fracture_tool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#define NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="_nv_blast_ext_authoring_types_8h.html">NvBlastExtAuthoringTypes.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">class </span>SpatialAccelerator;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">class </span>Triangulator;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">class </span>Mesh;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span>CutoutSet;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">/*</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> Chunk data, chunk with chunkId == 0 is always source mesh.</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">*/</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html"> 47</a></span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c"> 49</a></span>  <span class="keyword">enum</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824c">ChunkFlags</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  {</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47"> 51</a></span>  <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca10ffae1afc03f59373bf48244a58dd47">NO_FLAGS</a> = 0,</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca083e487cf5083f1063904b52be3982de"> 52</a></span>  <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca083e487cf5083f1063904b52be3982de">CREATED_BY_ISLAND_DETECTOR</a> = 1</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  };</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35"> 55</a></span>  <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a864945bf41b9ab726c8df191e9acae35">meshData</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c"> 56</a></span>  int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a7e5b05c30d6a4deceb2da1e840fa442c">parent</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67"> 57</a></span>  int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67">chunkId</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71"> 58</a></span>  uint32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a2e9936bba91f2ec13692860dfa9a3c71">flags</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a46cb9523bb9c0af0a890ed864560bd02"> 59</a></span>  <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a46cb9523bb9c0af0a890ed864560bd02">isLeaf</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_chunk_info.html#a336cac7f249ed366d00bfe3fe4ef611f"> 60</a></span>  <span class="keywordtype">bool</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a336cac7f249ed366d00bfe3fe4ef611f">isChanged</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> };</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_random_generator_base.html"> 66</a></span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// Generates uniformly distributed value in [0, 1] range.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">virtual</span> <span class="keywordtype">float</span> getRandomValue() = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">// Seeds random value generator</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> seed(int32_t seed) = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_random_generator_base.html#a8afe22100c70f643f3d2a33929c5e71e"> 73</a></span>  <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html#a8afe22100c70f643f3d2a33929c5e71e">~RandomGeneratorBase</a>(){};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> };</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment">/*</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment"> Noise fracturing configuration for chunks's faces</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment">*/</span></div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html"> 79</a></span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> {</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a882e9f74aadf9384b68ab6b92006247c"> 86</a></span>  <span class="keywordtype">float</span> amplitude = 0.f;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a0aa07994b6ef53830d284025968d4569"> 91</a></span>  <span class="keywordtype">float</span> frequency = 1.f;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a9f3eccc2ab7973a00d8a77751bffbbf5"> 96</a></span>  uint32_t octaveNumber = 1;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_noise_configuration.html#a6e96813291972a38fb456d3e3bbc32e5"> 101</a></span>  <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> samplingInterval = { 1, 1, 1 };</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> };</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">/*</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment"> Slicing fracturing configuration</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">*/</span></div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html"> 107</a></span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> {</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a90059b509ffd4aa9129c70bf96b3ac79"> 112</a></span>  int32_t x_slices = 1, y_slices = 1, z_slices = 1;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a4d108dd0a46bc2ea6c9fe1b11c369f5a"> 117</a></span>  <span class="keywordtype">float</span> offset_variations = 0.f;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#a8bff4d55245144ddd63013e245c1a7cc"> 122</a></span>  <span class="keywordtype">float</span> angle_variations = 0.f;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="comment">/*</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment"> Noise parameters for faces between sliced chunks</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment"> */</span></div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#ad8d390988e458dbb0d515d7946e75237"> 127</a></span>  <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html#ad8d390988e458dbb0d515d7946e75237">noise</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> };</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html"> 133</a></span> <span class="keyword">struct </span><a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> {</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a30e10f98ba8ab88afa9b7ee5855dbd14"> 139</a></span>  <a class="code" href="class_nv_1_1_blast_1_1_cutout_set.html">CutoutSet</a>* cutoutSet = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#aa0c088a7b81ace3910d7dd53f2eab935"> 145</a></span>  <a class="code" href="struct_nvc_transform.html">NvcTransform</a> transform = {{0, 0, 0, 1}, {0, 0, 0}};</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a4474a4284f58e9e1b97956bbcc4f48d1"> 152</a></span>  <a class="code" href="struct_nvc_vec2.html">NvcVec2</a> scale = { -1, -1 };</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a397831eed1776f363b068ea8879f33fc"> 157</a></span>  <span class="keywordtype">float</span> aperture = 0.f;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a0614b4b06b7c4925c37c3d039887665e"> 163</a></span>  <span class="keywordtype">bool</span> isRelativeTransform = <span class="keyword">true</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a61deebb0401642549a0772f6dd971065"> 168</a></span>  <span class="keywordtype">bool</span> useSmoothing = <span class="keyword">false</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a64b0d84c82de63873bc0414d95ed036b"> 173</a></span>  <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a> <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html#a64b0d84c82de63873bc0414d95ed036b">noise</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> };</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html"> 179</a></span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">VoronoiSitesGenerator</a></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a8d4ddd2ad08b37a448fa033141a297a8"> 182</a></span>  <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html#a8d4ddd2ad08b37a448fa033141a297a8">~VoronoiSitesGenerator</a>() {}</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setBaseMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keyword">virtual</span> uint32_t getVoronoiSites(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>*& sites) = 0;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> addSite(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& site) = 0;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> uniformlyGenerateSitesInMesh(uint32_t numberOfSites) = 0;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clusteredSitesGeneration(uint32_t numberOfClusters, uint32_t sitesPerCluster, <span class="keywordtype">float</span> clusterRadius) = 0;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> radialPattern(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, <span class="keywordtype">float</span> radius, int32_t angularSteps,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  int32_t radialSteps, <span class="keywordtype">float</span> angleOffset = 0.0f, <span class="keywordtype">float</span> variability = 0.0f) = 0;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> generateInSphere(<span class="keyword">const</span> uint32_t count, <span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center) = 0;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setStencil(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* stencil) = 0;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> clearStencil() = 0;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> deleteInSphere(<span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center, <span class="keyword">const</span> <span class="keywordtype">float</span> eraserProbability = 1) = 0;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> };</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool.html"> 264</a></span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> {</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2"> 268</a></span>  <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html#a4d00c3d53ba51d966de58ff533435cc2">~FractureTool</a>() {}</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset() = 0;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setSourceMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) = 0;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keyword">virtual</span> int32_t setChunkMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, int32_t parentId) = 0;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setInteriorMaterialId(int32_t materialId) = 0;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keyword">virtual</span> int32_t getInteriorMaterialId() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId) = 0;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keyword">virtual</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* createChunkMesh(int32_t <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html#a55d13d994d704a8550474da493b60c67">chunkId</a>) = 0;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> getTransformation(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& offset, <span class="keywordtype">float</span>& scale) = 0;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">virtual</span> int32_t</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints, <span class="keywordtype">bool</span> replaceChunk) = 0;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keyword">virtual</span> int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints,</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& scale, <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>& rotation, <span class="keywordtype">bool</span> replaceChunk) = 0;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keyword">virtual</span> int32_t</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  slicing(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>& conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">virtual</span> int32_t cut(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& position,</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a>& noise, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keyword">virtual</span> int32_t cutout(uint32_t chunkId, <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a> conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) = 0;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> finalizeFracturing() = 0;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keyword">virtual</span> uint32_t getChunkCount() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a>& getChunkInfo(int32_t chunkIndex) = 0;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keyword">virtual</span> <span class="keywordtype">float</span> getMeshOverlap(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>& meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>& meshB) = 0;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keyword">virtual</span> uint32_t getBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>*& output) = 0;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keyword">virtual</span> uint32_t updateBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* output) = 0;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span> </div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keyword">virtual</span> int32_t getChunkIndex(int32_t chunkId) = 0;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keyword">virtual</span> int32_t getChunkId(int32_t chunkIndex) = 0;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keyword">virtual</span> int32_t getChunkDepth(int32_t chunkId) = 0;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keyword">virtual</span> uint32_t getChunksIdAtDepth(uint32_t depth, int32_t*& chunkIds) = 0;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keyword">virtual</span> uint32_t</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  getBufferedBaseMeshes(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>*& vertexBuffer, uint32_t*& indexBuffer, uint32_t*& indexBufferOffsets) = 0;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> </div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setRemoveIslands(<span class="keywordtype">bool</span> isRemoveIslands) = 0;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keyword">virtual</span> int32_t islandDetectionAndRemoving(int32_t chunkId, <span class="keywordtype">bool</span> createAtNewDepth = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span> </div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isMeshContainOpenEdges(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* input) = 0;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> deleteAllChildrenOfChunk(int32_t chunkId) = 0;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span> </div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> uniteChunks(uint32_t threshold, uint32_t targetClusterSize,</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keyword">const</span> uint32_t* chunksToMerge, uint32_t mergeChunkCount,</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize,</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) = 0;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span> </div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> fitUvToRect(<span class="keywordtype">float</span> side, uint32_t chunkId) = 0;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span> </div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> fitAllUvToRect(<span class="keywordtype">float</span> side) = 0;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span> };</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span> </div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span> } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span> } <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span> </div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span> <span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOL_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_slicing_configuration_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_slicing_configuration.html">Nv::Blast::SlicingConfiguration</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:107</div></div> <div class="ttc" id="struct_nv_1_1_blast_1_1_chunk_info_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_chunk_info.html">Nv::Blast::ChunkInfo</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:47</div></div> <div class="ttc" id="class_nv_1_1_blast_1_1_voronoi_sites_generator_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">Nv::Blast::VoronoiSitesGenerator</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:179</div></div> <div class="ttc" id="struct_nv_1_1_blast_1_1_chunk_info_html_ac1ebabf88ad2eb905b6482519530824ca083e487cf5083f1063904b52be3982de"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_chunk_info.html#ac1ebabf88ad2eb905b6482519530824ca083e487cf5083f1063904b52be3982de">Nv::Blast::ChunkInfo::CREATED_BY_ISLAND_DETECTOR</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:52</div></div> diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h-source.html b/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h-source.html index f0708ad..44199dd 100755 --- a/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h-source.html +++ b/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h-source.html @@ -197,53 +197,55 @@ <a name="l00375"></a>00375 <a name="l00376"></a>00376 <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#fe1100c6aa5907b10ae574d18152c5ac">deleteAllChildrenOfChunk</a>(int32_t chunkId) <span class="keyword">override</span>; <a name="l00377"></a>00377 -<a name="l00378"></a>00378 <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#c1c3a18e82a53972ea362acc1a0272f8">uniteChunks</a>(uint32_t maxAtLevel, uint32_t maxGroupSize, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize, -<a name="l00379"></a>00379 <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) <span class="keyword">override</span>; -<a name="l00380"></a>00380 -<a name="l00381"></a>00381 -<a name="l00387"></a>00387 <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#6cab6022e3cfb8bfc287428c507a9459">fitUvToRect</a>(<span class="keywordtype">float</span> side, uint32_t chunkId) <span class="keyword">override</span>; -<a name="l00388"></a>00388 -<a name="l00393"></a>00393 <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#21dee486b1499f135740cac4a4d85af0">fitAllUvToRect</a>(<span class="keywordtype">float</span> side) <span class="keyword">override</span>; -<a name="l00394"></a>00394 -<a name="l00395"></a>00395 +<a name="l00378"></a>00378 <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#7be81de54f32a49d2f5885275c59bece">uniteChunks</a>(uint32_t threshold, uint32_t targetClusterSize, +<a name="l00379"></a>00379 <span class="keyword">const</span> uint32_t* chunksToMerge, uint32_t mergeChunkCount, +<a name="l00380"></a>00380 <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize, +<a name="l00381"></a>00381 <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) <span class="keyword">override</span>; +<a name="l00382"></a>00382 +<a name="l00383"></a>00383 +<a name="l00389"></a>00389 <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#6cab6022e3cfb8bfc287428c507a9459">fitUvToRect</a>(<span class="keywordtype">float</span> side, uint32_t chunkId) <span class="keyword">override</span>; +<a name="l00390"></a>00390 +<a name="l00395"></a>00395 <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#21dee486b1499f135740cac4a4d85af0">fitAllUvToRect</a>(<span class="keywordtype">float</span> side) <span class="keyword">override</span>; <a name="l00396"></a>00396 -<a name="l00397"></a>00397 <span class="keyword">private</span>: -<a name="l00398"></a>00398 <span class="keywordtype">void</span> eraseChunk(int32_t chunkId); -<a name="l00399"></a>00399 <span class="keywordtype">bool</span> isAncestorForChunk(int32_t ancestorId, int32_t chunkId); -<a name="l00400"></a>00400 int32_t slicingNoisy(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>& conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd); -<a name="l00401"></a>00401 uint32_t stretchGroup(<span class="keyword">const</span> std::vector<uint32_t>& group, std::vector<std::vector<uint32_t>>& graph); -<a name="l00402"></a>00402 <span class="keywordtype">void</span> rebuildAdjGraph(<span class="keyword">const</span> std::vector<uint32_t>& chunksToRebuild, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize, -<a name="l00403"></a>00403 std::vector<std::vector<uint32_t> >& chunkGraph); -<a name="l00404"></a>00404 <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#21dee486b1499f135740cac4a4d85af0">fitAllUvToRect</a>(<span class="keywordtype">float</span> side, std::set<uint32_t>& mask); -<a name="l00405"></a>00405 -<a name="l00409"></a>00409 uint32_t createNewChunk(uint32_t parentId); -<a name="l00410"></a>00410 -<a name="l00411"></a>00411 -<a name="l00412"></a>00412 <span class="keyword">protected</span>: -<a name="l00416"></a><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#3853cd248b6b0531f18f8cf1711bc90f">00416</a> <span class="keywordtype">float</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#3853cd248b6b0531f18f8cf1711bc90f">mScaleFactor</a>; -<a name="l00417"></a><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#3a9a2ccd3b9f5122f5153431b2eb2925">00417</a> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#3a9a2ccd3b9f5122f5153431b2eb2925">mOffset</a>; -<a name="l00418"></a>00418 -<a name="l00419"></a>00419 <span class="comment">/* Chunk mesh wrappers */</span> -<a name="l00420"></a><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#c2202d728cefb26446a60593b03dcbe1">00420</a> std::vector<Triangulator*> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#c2202d728cefb26446a60593b03dcbe1">mChunkPostprocessors</a>; -<a name="l00421"></a>00421 -<a name="l00422"></a>00422 -<a name="l00423"></a>00423 -<a name="l00424"></a><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#1cf29d3d972240ac368f6acef7bcb93b">00424</a> int64_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#1cf29d3d972240ac368f6acef7bcb93b">mPlaneIndexerOffset</a>; -<a name="l00425"></a><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#77957e191451f94d3753e31695c37914">00425</a> int32_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#77957e191451f94d3753e31695c37914">mChunkIdCounter</a>; -<a name="l00426"></a><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#516359070dc5bf6cd0770d3e33b8c8d1">00426</a> std::vector<ChunkInfo> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#516359070dc5bf6cd0770d3e33b8c8d1">mChunkData</a>; -<a name="l00427"></a>00427 -<a name="l00428"></a><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#bcc6a73e16008d488bbf81623ec5a33e">00428</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#bcc6a73e16008d488bbf81623ec5a33e">mRemoveIslands</a>; -<a name="l00429"></a><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#e9fdc3a9dd7eefe632a24c7abb6c4962">00429</a> int32_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#e9fdc3a9dd7eefe632a24c7abb6c4962">mInteriorMaterialId</a>; -<a name="l00430"></a>00430 }; -<a name="l00431"></a>00431 -<a name="l00432"></a>00432 <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#83271d24d04e44d4b938de44bce332e8">findCellBasePlanes</a>(<span class="keyword">const</span> std::vector<NvcVec3>& sites, std::vector<std::vector<int32_t> >& neighboors); -<a name="l00433"></a>00433 <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="namespace_nv_1_1_blast.html#4371fd33bb235ab1c79ddce6caf51ee5">getCellMesh</a>(<span class="keyword">class</span> <a class="code" href="class_nv_1_1_blast_1_1_boolean_evaluator.html">BooleanEvaluator</a>& eval, int32_t planeIndexerOffset, int32_t cellId, <span class="keyword">const</span> std::vector<NvcVec3>& sites, std::vector < std::vector<int32_t> >& neighboors, int32_t interiorMaterialId, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> origin); -<a name="l00434"></a>00434 -<a name="l00435"></a>00435 } <span class="comment">// namespace Blast</span> -<a name="l00436"></a>00436 } <span class="comment">// namespace Nv</span> -<a name="l00437"></a>00437 -<a name="l00438"></a>00438 -<a name="l00439"></a>00439 <span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOLIMPL_H</span> +<a name="l00397"></a>00397 +<a name="l00398"></a>00398 +<a name="l00399"></a>00399 <span class="keyword">private</span>: +<a name="l00400"></a>00400 <span class="keywordtype">void</span> eraseChunk(int32_t chunkId); +<a name="l00401"></a>00401 <span class="keywordtype">bool</span> isAncestorForChunk(int32_t ancestorId, int32_t chunkId); +<a name="l00402"></a>00402 int32_t slicingNoisy(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>& conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd); +<a name="l00403"></a>00403 uint32_t stretchGroup(<span class="keyword">const</span> std::vector<uint32_t>& group, std::vector<std::vector<uint32_t>>& graph); +<a name="l00404"></a>00404 <span class="keywordtype">void</span> rebuildAdjGraph(<span class="keyword">const</span> std::vector<uint32_t>& chunksToRebuild, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize, +<a name="l00405"></a>00405 std::vector<std::vector<uint32_t> >& chunkGraph); +<a name="l00406"></a>00406 <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#21dee486b1499f135740cac4a4d85af0">fitAllUvToRect</a>(<span class="keywordtype">float</span> side, std::set<uint32_t>& mask); +<a name="l00407"></a>00407 +<a name="l00411"></a>00411 uint32_t createNewChunk(uint32_t parentId); +<a name="l00412"></a>00412 +<a name="l00413"></a>00413 +<a name="l00414"></a>00414 <span class="keyword">protected</span>: +<a name="l00418"></a><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#3853cd248b6b0531f18f8cf1711bc90f">00418</a> <span class="keywordtype">float</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#3853cd248b6b0531f18f8cf1711bc90f">mScaleFactor</a>; +<a name="l00419"></a><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#3a9a2ccd3b9f5122f5153431b2eb2925">00419</a> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#3a9a2ccd3b9f5122f5153431b2eb2925">mOffset</a>; +<a name="l00420"></a>00420 +<a name="l00421"></a>00421 <span class="comment">/* Chunk mesh wrappers */</span> +<a name="l00422"></a><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#c2202d728cefb26446a60593b03dcbe1">00422</a> std::vector<Triangulator*> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#c2202d728cefb26446a60593b03dcbe1">mChunkPostprocessors</a>; +<a name="l00423"></a>00423 +<a name="l00424"></a>00424 +<a name="l00425"></a>00425 +<a name="l00426"></a><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#1cf29d3d972240ac368f6acef7bcb93b">00426</a> int64_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#1cf29d3d972240ac368f6acef7bcb93b">mPlaneIndexerOffset</a>; +<a name="l00427"></a><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#77957e191451f94d3753e31695c37914">00427</a> int32_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#77957e191451f94d3753e31695c37914">mChunkIdCounter</a>; +<a name="l00428"></a><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#516359070dc5bf6cd0770d3e33b8c8d1">00428</a> std::vector<ChunkInfo> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#516359070dc5bf6cd0770d3e33b8c8d1">mChunkData</a>; +<a name="l00429"></a>00429 +<a name="l00430"></a><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#bcc6a73e16008d488bbf81623ec5a33e">00430</a> <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#bcc6a73e16008d488bbf81623ec5a33e">mRemoveIslands</a>; +<a name="l00431"></a><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#e9fdc3a9dd7eefe632a24c7abb6c4962">00431</a> int32_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#e9fdc3a9dd7eefe632a24c7abb6c4962">mInteriorMaterialId</a>; +<a name="l00432"></a>00432 }; +<a name="l00433"></a>00433 +<a name="l00434"></a>00434 <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#83271d24d04e44d4b938de44bce332e8">findCellBasePlanes</a>(<span class="keyword">const</span> std::vector<NvcVec3>& sites, std::vector<std::vector<int32_t> >& neighboors); +<a name="l00435"></a>00435 <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="namespace_nv_1_1_blast.html#4371fd33bb235ab1c79ddce6caf51ee5">getCellMesh</a>(<span class="keyword">class</span> <a class="code" href="class_nv_1_1_blast_1_1_boolean_evaluator.html">BooleanEvaluator</a>& eval, int32_t planeIndexerOffset, int32_t cellId, <span class="keyword">const</span> std::vector<NvcVec3>& sites, std::vector < std::vector<int32_t> >& neighboors, int32_t interiorMaterialId, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> origin); +<a name="l00436"></a>00436 +<a name="l00437"></a>00437 } <span class="comment">// namespace Blast</span> +<a name="l00438"></a>00438 } <span class="comment">// namespace Nv</span> +<a name="l00439"></a>00439 +<a name="l00440"></a>00440 +<a name="l00441"></a>00441 <span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOLIMPL_H</span> </pre></div></div> <!-- start footer part --> <div class="footer"> diff --git a/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h_source.html b/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h_source.html index 00f0637..06aa4da 100755 --- a/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h_source.html +++ b/docs/source_docs/files/_nv_blast_ext_authoring_fracture_tool_impl_8h_source.html @@ -46,7 +46,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_fracture_tool_ <div class="title">NvBlastExtAuthoringFractureToolImpl.h</div> </div> </div><!--header--> <div class="contents"> -<a href="_nv_blast_ext_authoring_fracture_tool_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#ifndef NVBLASTAUTHORINGFRACTURETOOLIMPL_H</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#define NVBLASTAUTHORINGFRACTURETOOLIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="_nv_blast_ext_authoring_fracture_tool_8h.html">NvBlastExtAuthoringFractureTool.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="_nv_blast_ext_authoring_mesh_8h.html">NvBlastExtAuthoringMesh.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <set></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">class </span>SpatialAccelerator;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span>Triangulator;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html"> 48</a></span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html">VoronoiSitesGeneratorImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">VoronoiSitesGenerator</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a01f58715063631ce078fa90bfd6a920c">VoronoiSitesGeneratorImpl</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a7c248babbc4b16a16be9832f0aea767f">~VoronoiSitesGeneratorImpl</a>();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad37927c9e02c8259b2607099d484decc">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a7515cf0706f08e6191b67ac99b253f97">setBaseMesh</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* m) <span class="keyword">override</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  uint32_t <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad4a5521b93a40601ad53c36882f63a04">getVoronoiSites</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>*& sites) <span class="keyword">override</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a3939730ea1fa9eef6843dbbccfe1b921">addSite</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& site) <span class="keyword">override</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#abfda4103b9ea3b04d28870cdb0cf9704">uniformlyGenerateSitesInMesh</a>(uint32_t numberOfSites) <span class="keyword">override</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a57ec8f7229999994e516d4edefdf9eed">clusteredSitesGeneration</a>(uint32_t numberOfClusters, uint32_t sitesPerCluster, <span class="keywordtype">float</span> clusterRadius) <span class="keyword">override</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a84aa94e4229dbf2ea8ac304ce1a96a1f">radialPattern</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, <span class="keywordtype">float</span> radius, int32_t angularSteps, int32_t radialSteps, <span class="keywordtype">float</span> angleOffset = 0.0f, <span class="keywordtype">float</span> variability = 0.0f) <span class="keyword">override</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a5b18977952c1d5efcd4772f8ce7520c2">generateInSphere</a>(<span class="keyword">const</span> uint32_t count, <span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center) <span class="keyword">override</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a81f5fbf6cdaaf3d2d45c2dff822ff9b9">setStencil</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* stencil) <span class="keyword">override</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a7377b65b5fafdb2eb4832f57c74f127d">clearStencil</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad2e1a222053fc19348990fb7ea8ed1a6">deleteInSphere</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center, <span class="keyword">const</span> <span class="keywordtype">float</span> eraserProbability = 1) <span class="keyword">override</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  std::vector <NvcVec3> mGeneratedSites;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mMesh;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mStencil;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* mRnd;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* mAccelerator;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> };</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html"> 146</a></span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html">FractureToolImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a11d8ab3b4c7040389b3b552d07e4da57"> 154</a></span>  <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a11d8ab3b4c7040389b3b552d07e4da57">FractureToolImpl</a>()</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  mPlaneIndexerOffset = 1;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  mChunkIdCounter = 0;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  mRemoveIslands = <span class="keyword">false</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  mInteriorMaterialId = <a class="code" href="namespace_nv_1_1_blast.html#ad2d1cde5813011ad60c5a70903063138">kMaterialInteriorId</a>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a4cf6af831497dbaf9db34ba4529f418d"> 162</a></span>  <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a4cf6af831497dbaf9db34ba4529f418d">~FractureToolImpl</a>()</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  reset();</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad37927c9e02c8259b2607099d484decc">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordtype">void</span> reset() <span class="keyword">override</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordtype">void</span> setInteriorMaterialId(int32_t materialId) <span class="keyword">override</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  int32_t getInteriorMaterialId() <span class="keyword">const override</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordtype">void</span> replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId) <span class="keyword">override</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordtype">void</span> setSourceMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) <span class="keyword">override</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  int32_t setChunkMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, int32_t parentId) <span class="keyword">override</span>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* createChunkMesh(int32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordtype">void</span> getTransformation(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& offset, <span class="keywordtype">float</span>& scale) <span class="keyword">override</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints, <span class="keywordtype">bool</span> replaceChunk) <span class="keyword">override</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& scale, <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>& rotation, <span class="keywordtype">bool</span> replaceChunk) <span class="keyword">override</span>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  int32_t slicing(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>& conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) <span class="keyword">override</span>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  int32_t cut(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& position, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a>& noise, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) <span class="keyword">override</span>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  int32_t cutout(uint32_t chunkId, <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a> conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) <span class="keyword">override</span>;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordtype">void</span> finalizeFracturing() <span class="keyword">override</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  uint32_t getChunkCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a>& getChunkInfo(int32_t chunkIndex) <span class="keyword">override</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordtype">float</span> getMeshOverlap(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>& meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>& meshB) <span class="keyword">override</span>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  uint32_t getBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>*& output) <span class="keyword">override</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  uint32_t updateBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* output) <span class="keyword">override</span>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  int32_t getChunkIndex(int32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  int32_t getChunkId(int32_t chunkIndex) <span class="keyword">override</span>;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  int32_t getChunkDepth(int32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  uint32_t getChunksIdAtDepth(uint32_t depth, int32_t*& chunkIds) <span class="keyword">override</span>;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  uint32_t getBufferedBaseMeshes(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>*& vertexBuffer, uint32_t*& indexBuffer, uint32_t*& indexBufferOffsets) <span class="keyword">override</span>;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordtype">void</span> setRemoveIslands(<span class="keywordtype">bool</span> isRemoveIslands) <span class="keyword">override</span>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  int32_t islandDetectionAndRemoving(int32_t chunkId, <span class="keywordtype">bool</span> createAtNewDepth = <span class="keyword">false</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordtype">bool</span> isMeshContainOpenEdges(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* input) <span class="keyword">override</span>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordtype">bool</span> deleteAllChildrenOfChunk(int32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordtype">void</span> uniteChunks(uint32_t maxAtLevel, uint32_t maxGroupSize, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize,</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  </div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordtype">void</span> fitUvToRect(<span class="keywordtype">float</span> side, uint32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordtype">void</span> fitAllUvToRect(<span class="keywordtype">float</span> side) <span class="keyword">override</span>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="keyword">private</span>: </div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keywordtype">void</span> eraseChunk(int32_t chunkId); </div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordtype">bool</span> isAncestorForChunk(int32_t ancestorId, int32_t chunkId);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  int32_t slicingNoisy(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>& conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  uint32_t stretchGroup(<span class="keyword">const</span> std::vector<uint32_t>& group, std::vector<std::vector<uint32_t>>& graph);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordtype">void</span> rebuildAdjGraph(<span class="keyword">const</span> std::vector<uint32_t>& chunksToRebuild, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize,</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  std::vector<std::vector<uint32_t> >& chunkGraph);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordtype">void</span> fitAllUvToRect(<span class="keywordtype">float</span> side, std::set<uint32_t>& mask);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  uint32_t createNewChunk(uint32_t parentId);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> </div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3853cd248b6b0531f18f8cf1711bc90f"> 416</a></span>  <span class="keywordtype">float</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3853cd248b6b0531f18f8cf1711bc90f">mScaleFactor</a>;</div><div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3a9a2ccd3b9f5122f5153431b2eb2925"> 417</a></span>  <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3a9a2ccd3b9f5122f5153431b2eb2925">mOffset</a>;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="comment">/* Chunk mesh wrappers */</span></div><div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2202d728cefb26446a60593b03dcbe1"> 420</a></span>  std::vector<Triangulator*> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2202d728cefb26446a60593b03dcbe1">mChunkPostprocessors</a>;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span> </div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  </div><div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a1cf29d3d972240ac368f6acef7bcb93b"> 424</a></span>  int64_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a1cf29d3d972240ac368f6acef7bcb93b">mPlaneIndexerOffset</a>;</div><div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a77957e191451f94d3753e31695c37914"> 425</a></span>  int32_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a77957e191451f94d3753e31695c37914">mChunkIdCounter</a>;</div><div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a516359070dc5bf6cd0770d3e33b8c8d1"> 426</a></span>  std::vector<ChunkInfo> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a516359070dc5bf6cd0770d3e33b8c8d1">mChunkData</a>;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div><div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#abcc6a73e16008d488bbf81623ec5a33e"> 428</a></span>  <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#abcc6a73e16008d488bbf81623ec5a33e">mRemoveIslands</a>;</div><div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ae9fdc3a9dd7eefe632a24c7abb6c4962"> 429</a></span>  int32_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ae9fdc3a9dd7eefe632a24c7abb6c4962">mInteriorMaterialId</a>;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span> };</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a83271d24d04e44d4b938de44bce332e8">findCellBasePlanes</a>(<span class="keyword">const</span> std::vector<NvcVec3>& sites, std::vector<std::vector<int32_t> >& neighboors);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="namespace_nv_1_1_blast.html#a4371fd33bb235ab1c79ddce6caf51ee5">getCellMesh</a>(<span class="keyword">class</span> <a class="code" href="class_nv_1_1_blast_1_1_boolean_evaluator.html">BooleanEvaluator</a>& eval, int32_t planeIndexerOffset, int32_t cellId, <span class="keyword">const</span> std::vector<NvcVec3>& sites, std::vector < std::vector<int32_t> >& neighboors, int32_t interiorMaterialId, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> origin);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> } <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span> </div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> </div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOLIMPL_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_slicing_configuration_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_slicing_configuration.html">Nv::Blast::SlicingConfiguration</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:107</div></div> +<a href="_nv_blast_ext_authoring_fracture_tool_impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// This code contains NVIDIA Confidential Information and is disclosed to you</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// under a form of NVIDIA software license agreement provided separately to you.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">//</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// Notice</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// NVIDIA Corporation and its licensors retain all intellectual property and</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// proprietary rights in and to this software and related documentation and</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// any modifications thereto. Any use, reproduction, disclosure, or</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// license agreement from NVIDIA Corporation is strictly prohibited.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">//</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// Information and code furnished is believed to be accurate and reliable.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// information or for any infringement of patents or other rights of third parties that may</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// result from its use. No license is granted by implication or otherwise under any patent</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">// or patent rights of NVIDIA Corporation. Details are subject to change without notice.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// This code supersedes and replaces all information previously supplied.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">// NVIDIA Corporation products are not authorized for use as critical</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">// components in life support devices or systems without express written approval of</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">// NVIDIA Corporation.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#ifndef NVBLASTAUTHORINGFRACTURETOOLIMPL_H</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#define NVBLASTAUTHORINGFRACTURETOOLIMPL_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="_nv_blast_ext_authoring_fracture_tool_8h.html">NvBlastExtAuthoringFractureTool.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="_nv_blast_ext_authoring_mesh_8h.html">NvBlastExtAuthoringMesh.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <set></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">namespace </span><a class="code" href="namespace_nv.html">Nv</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span>Blast</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">class </span>SpatialAccelerator;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span>Triangulator;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html"> 48</a></span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html">VoronoiSitesGeneratorImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator.html">VoronoiSitesGenerator</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a01f58715063631ce078fa90bfd6a920c">VoronoiSitesGeneratorImpl</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a7c248babbc4b16a16be9832f0aea767f">~VoronoiSitesGeneratorImpl</a>();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad37927c9e02c8259b2607099d484decc">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a7515cf0706f08e6191b67ac99b253f97">setBaseMesh</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* m) <span class="keyword">override</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  uint32_t <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad4a5521b93a40601ad53c36882f63a04">getVoronoiSites</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>*& sites) <span class="keyword">override</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a3939730ea1fa9eef6843dbbccfe1b921">addSite</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& site) <span class="keyword">override</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#abfda4103b9ea3b04d28870cdb0cf9704">uniformlyGenerateSitesInMesh</a>(uint32_t numberOfSites) <span class="keyword">override</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a57ec8f7229999994e516d4edefdf9eed">clusteredSitesGeneration</a>(uint32_t numberOfClusters, uint32_t sitesPerCluster, <span class="keywordtype">float</span> clusterRadius) <span class="keyword">override</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a84aa94e4229dbf2ea8ac304ce1a96a1f">radialPattern</a>(<span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, <span class="keywordtype">float</span> radius, int32_t angularSteps, int32_t radialSteps, <span class="keywordtype">float</span> angleOffset = 0.0f, <span class="keywordtype">float</span> variability = 0.0f) <span class="keyword">override</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a5b18977952c1d5efcd4772f8ce7520c2">generateInSphere</a>(<span class="keyword">const</span> uint32_t count, <span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center) <span class="keyword">override</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a81f5fbf6cdaaf3d2d45c2dff822ff9b9">setStencil</a>(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* stencil) <span class="keyword">override</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a7377b65b5fafdb2eb4832f57c74f127d">clearStencil</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad2e1a222053fc19348990fb7ea8ed1a6">deleteInSphere</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> radius, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& center, <span class="keyword">const</span> <span class="keywordtype">float</span> eraserProbability = 1) <span class="keyword">override</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  std::vector <NvcVec3> mGeneratedSites;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mMesh;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mStencil;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* mRnd;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="class_nv_1_1_blast_1_1_spatial_accelerator.html">SpatialAccelerator</a>* mAccelerator;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> };</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html"> 146</a></span> <span class="keyword">class </span><a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html">FractureToolImpl</a> : <span class="keyword">public</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool.html">FractureTool</a></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a11d8ab3b4c7040389b3b552d07e4da57"> 154</a></span>  <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a11d8ab3b4c7040389b3b552d07e4da57">FractureToolImpl</a>()</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  mPlaneIndexerOffset = 1;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  mChunkIdCounter = 0;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  mRemoveIslands = <span class="keyword">false</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  mInteriorMaterialId = <a class="code" href="namespace_nv_1_1_blast.html#ad2d1cde5813011ad60c5a70903063138">kMaterialInteriorId</a>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a4cf6af831497dbaf9db34ba4529f418d"> 162</a></span>  <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a4cf6af831497dbaf9db34ba4529f418d">~FractureToolImpl</a>()</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  reset();</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordtype">void</span> <a class="code" href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad37927c9e02c8259b2607099d484decc">release</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordtype">void</span> reset() <span class="keyword">override</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordtype">void</span> setInteriorMaterialId(int32_t materialId) <span class="keyword">override</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  int32_t getInteriorMaterialId() <span class="keyword">const override</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordtype">void</span> replaceMaterialId(int32_t oldMaterialId, int32_t newMaterialId) <span class="keyword">override</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordtype">void</span> setSourceMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh) <span class="keyword">override</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  int32_t setChunkMesh(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* mesh, int32_t parentId) <span class="keyword">override</span>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* createChunkMesh(int32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordtype">void</span> getTransformation(<a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& offset, <span class="keywordtype">float</span>& scale) <span class="keyword">override</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints, <span class="keywordtype">bool</span> replaceChunk) <span class="keyword">override</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  int32_t voronoiFracturing(uint32_t chunkId, uint32_t cellCount, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>* cellPoints, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& scale, <span class="keyword">const</span> <a class="code" href="struct_nvc_quat.html">NvcQuat</a>& rotation, <span class="keywordtype">bool</span> replaceChunk) <span class="keyword">override</span>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  int32_t slicing(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>& conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) <span class="keyword">override</span>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  int32_t cut(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& <a class="code" href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">normal</a>, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec3.html">NvcVec3</a>& position, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_noise_configuration.html">NoiseConfiguration</a>& noise, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) <span class="keyword">override</span>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  int32_t cutout(uint32_t chunkId, <a class="code" href="struct_nv_1_1_blast_1_1_cutout_configuration.html">CutoutConfiguration</a> conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd) <span class="keyword">override</span>;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordtype">void</span> finalizeFracturing() <span class="keyword">override</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  uint32_t getChunkCount() <span class="keyword">const override</span>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_chunk_info.html">ChunkInfo</a>& getChunkInfo(int32_t chunkIndex) <span class="keyword">override</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordtype">float</span> getMeshOverlap(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>& meshA, <span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>& meshB) <span class="keyword">override</span>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  uint32_t getBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>*& output) <span class="keyword">override</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  uint32_t updateBaseMesh(int32_t chunkIndex, <a class="code" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a>* output) <span class="keyword">override</span>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  int32_t getChunkIndex(int32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  int32_t getChunkId(int32_t chunkIndex) <span class="keyword">override</span>;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  int32_t getChunkDepth(int32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  uint32_t getChunksIdAtDepth(uint32_t depth, int32_t*& chunkIds) <span class="keyword">override</span>;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  uint32_t getBufferedBaseMeshes(<a class="code" href="struct_nv_1_1_blast_1_1_vertex.html">Vertex</a>*& vertexBuffer, uint32_t*& indexBuffer, uint32_t*& indexBufferOffsets) <span class="keyword">override</span>;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordtype">void</span> setRemoveIslands(<span class="keywordtype">bool</span> isRemoveIslands) <span class="keyword">override</span>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  int32_t islandDetectionAndRemoving(int32_t chunkId, <span class="keywordtype">bool</span> createAtNewDepth = <span class="keyword">false</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordtype">bool</span> isMeshContainOpenEdges(<span class="keyword">const</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* input) <span class="keyword">override</span>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordtype">bool</span> deleteAllChildrenOfChunk(int32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordtype">void</span> uniteChunks(uint32_t threshold, uint32_t targetClusterSize,</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keyword">const</span> uint32_t* chunksToMerge, uint32_t mergeChunkCount,</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize,</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordtype">bool</span> removeOriginalChunks = <span class="keyword">false</span>) <span class="keyword">override</span>;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  </div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordtype">void</span> fitUvToRect(<span class="keywordtype">float</span> side, uint32_t chunkId) <span class="keyword">override</span>;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordtype">void</span> fitAllUvToRect(<span class="keywordtype">float</span> side) <span class="keyword">override</span>;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="keyword">private</span>: </div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordtype">void</span> eraseChunk(int32_t chunkId); </div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordtype">bool</span> isAncestorForChunk(int32_t ancestorId, int32_t chunkId);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  int32_t slicingNoisy(uint32_t chunkId, <span class="keyword">const</span> <a class="code" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a>& conf, <span class="keywordtype">bool</span> replaceChunk, <a class="code" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a>* rnd);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  uint32_t stretchGroup(<span class="keyword">const</span> std::vector<uint32_t>& group, std::vector<std::vector<uint32_t>>& graph);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordtype">void</span> rebuildAdjGraph(<span class="keyword">const</span> std::vector<uint32_t>& chunksToRebuild, <span class="keyword">const</span> <a class="code" href="struct_nvc_vec2i.html">NvcVec2i</a>* adjChunks, uint32_t adjChunksSize,</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  std::vector<std::vector<uint32_t> >& chunkGraph);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordtype">void</span> fitAllUvToRect(<span class="keywordtype">float</span> side, std::set<uint32_t>& mask);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  uint32_t createNewChunk(uint32_t parentId);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3853cd248b6b0531f18f8cf1711bc90f"> 418</a></span>  <span class="keywordtype">float</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3853cd248b6b0531f18f8cf1711bc90f">mScaleFactor</a>;</div><div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3a9a2ccd3b9f5122f5153431b2eb2925"> 419</a></span>  <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3a9a2ccd3b9f5122f5153431b2eb2925">mOffset</a>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="comment">/* Chunk mesh wrappers */</span></div><div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2202d728cefb26446a60593b03dcbe1"> 422</a></span>  std::vector<Triangulator*> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2202d728cefb26446a60593b03dcbe1">mChunkPostprocessors</a>;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span> </div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  </div><div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a1cf29d3d972240ac368f6acef7bcb93b"> 426</a></span>  int64_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a1cf29d3d972240ac368f6acef7bcb93b">mPlaneIndexerOffset</a>;</div><div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a77957e191451f94d3753e31695c37914"> 427</a></span>  int32_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a77957e191451f94d3753e31695c37914">mChunkIdCounter</a>;</div><div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a516359070dc5bf6cd0770d3e33b8c8d1"> 428</a></span>  std::vector<ChunkInfo> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a516359070dc5bf6cd0770d3e33b8c8d1">mChunkData</a>;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span> </div><div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#abcc6a73e16008d488bbf81623ec5a33e"> 430</a></span>  <span class="keywordtype">bool</span> <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#abcc6a73e16008d488bbf81623ec5a33e">mRemoveIslands</a>;</div><div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ae9fdc3a9dd7eefe632a24c7abb6c4962"> 431</a></span>  int32_t <a class="code" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ae9fdc3a9dd7eefe632a24c7abb6c4962">mInteriorMaterialId</a>;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span> };</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="keywordtype">void</span> <a class="code" href="namespace_nv_1_1_blast.html#a83271d24d04e44d4b938de44bce332e8">findCellBasePlanes</a>(<span class="keyword">const</span> std::vector<NvcVec3>& sites, std::vector<std::vector<int32_t> >& neighboors);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <a class="code" href="class_nv_1_1_blast_1_1_mesh.html">Mesh</a>* <a class="code" href="namespace_nv_1_1_blast.html#a4371fd33bb235ab1c79ddce6caf51ee5">getCellMesh</a>(<span class="keyword">class</span> <a class="code" href="class_nv_1_1_blast_1_1_boolean_evaluator.html">BooleanEvaluator</a>& eval, int32_t planeIndexerOffset, int32_t cellId, <span class="keyword">const</span> std::vector<NvcVec3>& sites, std::vector < std::vector<int32_t> >& neighboors, int32_t interiorMaterialId, <a class="code" href="struct_nvc_vec3.html">NvcVec3</a> origin);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span> } <span class="comment">// namespace Blast</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> } <span class="comment">// namespace Nv</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor">#endif // ifndef NVBLASTAUTHORINGFRACTURETOOLIMPL_H</span></div><div class="ttc" id="struct_nv_1_1_blast_1_1_slicing_configuration_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_slicing_configuration.html">Nv::Blast::SlicingConfiguration</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:107</div></div> <div class="ttc" id="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl_html_a5b18977952c1d5efcd4772f8ce7520c2"><div class="ttname"><a href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a5b18977952c1d5efcd4772f8ce7520c2">Nv::Blast::VoronoiSitesGeneratorImpl::generateInSphere</a></div><div class="ttdeci">void generateInSphere(const uint32_t count, const float radius, const NvcVec3 &center) override</div></div> <div class="ttc" id="struct_nv_1_1_blast_1_1_chunk_info_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_chunk_info.html">Nv::Blast::ChunkInfo</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:47</div></div> <div class="ttc" id="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl_html_ad4a5521b93a40601ad53c36882f63a04"><div class="ttname"><a href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad4a5521b93a40601ad53c36882f63a04">Nv::Blast::VoronoiSitesGeneratorImpl::getVoronoiSites</a></div><div class="ttdeci">uint32_t getVoronoiSites(const NvcVec3 *&sites) override</div></div> @@ -57,7 +57,7 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_fracture_tool_ <div class="ttc" id="class_nv_1_1_blast_1_1_boolean_evaluator_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_boolean_evaluator.html">Nv::Blast::BooleanEvaluator</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringBooleanTool.h:108</div></div> <div class="ttc" id="namespace_nv_1_1_blast_1_1_vec_math_html_a1c8d1bbcf531b04e6ff52f5357987794"><div class="ttname"><a href="namespace_nv_1_1_blast_1_1_vec_math.html#a1c8d1bbcf531b04e6ff52f5357987794">Nv::Blast::VecMath::normal</a></div><div class="ttdeci">NV_INLINE float normal(const float a[3], float r[3])</div><div class="ttdef"><b>Definition:</b> NvBlastMath.h:93</div></div> <div class="ttc" id="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl_html_a7515cf0706f08e6191b67ac99b253f97"><div class="ttname"><a href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a7515cf0706f08e6191b67ac99b253f97">Nv::Blast::VoronoiSitesGeneratorImpl::setBaseMesh</a></div><div class="ttdeci">void setBaseMesh(const Mesh *m) override</div></div> -<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html_a3853cd248b6b0531f18f8cf1711bc90f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3853cd248b6b0531f18f8cf1711bc90f">Nv::Blast::FractureToolImpl::mScaleFactor</a></div><div class="ttdeci">float mScaleFactor</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:416</div></div> +<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html_a3853cd248b6b0531f18f8cf1711bc90f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3853cd248b6b0531f18f8cf1711bc90f">Nv::Blast::FractureToolImpl::mScaleFactor</a></div><div class="ttdeci">float mScaleFactor</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:418</div></div> <div class="ttc" id="class_nv_1_1_blast_1_1_spatial_accelerator_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_spatial_accelerator.html">Nv::Blast::SpatialAccelerator</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringAccelerator.h:47</div></div> <div class="ttc" id="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl_html_a7377b65b5fafdb2eb4832f57c74f127d"><div class="ttname"><a href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a7377b65b5fafdb2eb4832f57c74f127d">Nv::Blast::VoronoiSitesGeneratorImpl::clearStencil</a></div><div class="ttdeci">void clearStencil() override</div></div> <div class="ttc" id="struct_nv_1_1_blast_1_1_noise_configuration_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_noise_configuration.html">Nv::Blast::NoiseConfiguration</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:79</div></div> @@ -69,15 +69,15 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_fracture_tool_ <div class="ttc" id="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl_html_abfda4103b9ea3b04d28870cdb0cf9704"><div class="ttname"><a href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#abfda4103b9ea3b04d28870cdb0cf9704">Nv::Blast::VoronoiSitesGeneratorImpl::uniformlyGenerateSitesInMesh</a></div><div class="ttdeci">void uniformlyGenerateSitesInMesh(uint32_t numberOfSites) override</div></div> <div class="ttc" id="_nv_blast_ext_authoring_fracture_tool_8h_html"><div class="ttname"><a href="_nv_blast_ext_authoring_fracture_tool_8h.html">NvBlastExtAuthoringFractureTool.h</a></div></div> <div class="ttc" id="namespace_nv_1_1_blast_html_a4371fd33bb235ab1c79ddce6caf51ee5"><div class="ttname"><a href="namespace_nv_1_1_blast.html#a4371fd33bb235ab1c79ddce6caf51ee5">Nv::Blast::getCellMesh</a></div><div class="ttdeci">Mesh * getCellMesh(class BooleanEvaluator &eval, int32_t planeIndexerOffset, int32_t cellId, const std::vector< NvcVec3 > &sites, std::vector< std::vector< int32_t > > &neighboors, int32_t interiorMaterialId, NvcVec3 origin)</div></div> -<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html_a77957e191451f94d3753e31695c37914"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a77957e191451f94d3753e31695c37914">Nv::Blast::FractureToolImpl::mChunkIdCounter</a></div><div class="ttdeci">int32_t mChunkIdCounter</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:425</div></div> +<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html_a77957e191451f94d3753e31695c37914"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a77957e191451f94d3753e31695c37914">Nv::Blast::FractureToolImpl::mChunkIdCounter</a></div><div class="ttdeci">int32_t mChunkIdCounter</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:427</div></div> <div class="ttc" id="struct_nvc_vec2i_html"><div class="ttname"><a href="struct_nvc_vec2i.html">NvcVec2i</a></div><div class="ttdef"><b>Definition:</b> NvCTypes.h:106</div></div> <div class="ttc" id="namespace_nv_1_1_blast_html_ad2d1cde5813011ad60c5a70903063138"><div class="ttname"><a href="namespace_nv_1_1_blast.html#ad2d1cde5813011ad60c5a70903063138">Nv::Blast::kMaterialInteriorId</a></div><div class="ttdeci">const uint32_t kMaterialInteriorId</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:42</div></div> -<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html_a516359070dc5bf6cd0770d3e33b8c8d1"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a516359070dc5bf6cd0770d3e33b8c8d1">Nv::Blast::FractureToolImpl::mChunkData</a></div><div class="ttdeci">std::vector< ChunkInfo > mChunkData</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:426</div></div> -<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html_ac2202d728cefb26446a60593b03dcbe1"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2202d728cefb26446a60593b03dcbe1">Nv::Blast::FractureToolImpl::mChunkPostprocessors</a></div><div class="ttdeci">std::vector< Triangulator * > mChunkPostprocessors</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:420</div></div> -<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html_a3a9a2ccd3b9f5122f5153431b2eb2925"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3a9a2ccd3b9f5122f5153431b2eb2925">Nv::Blast::FractureToolImpl::mOffset</a></div><div class="ttdeci">NvcVec3 mOffset</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:417</div></div> +<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html_a516359070dc5bf6cd0770d3e33b8c8d1"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a516359070dc5bf6cd0770d3e33b8c8d1">Nv::Blast::FractureToolImpl::mChunkData</a></div><div class="ttdeci">std::vector< ChunkInfo > mChunkData</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:428</div></div> +<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html_ac2202d728cefb26446a60593b03dcbe1"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2202d728cefb26446a60593b03dcbe1">Nv::Blast::FractureToolImpl::mChunkPostprocessors</a></div><div class="ttdeci">std::vector< Triangulator * > mChunkPostprocessors</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:422</div></div> +<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html_a3a9a2ccd3b9f5122f5153431b2eb2925"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a3a9a2ccd3b9f5122f5153431b2eb2925">Nv::Blast::FractureToolImpl::mOffset</a></div><div class="ttdeci">NvcVec3 mOffset</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:419</div></div> <div class="ttc" id="struct_nv_1_1_blast_1_1_cutout_configuration_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_cutout_configuration.html">Nv::Blast::CutoutConfiguration</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureTool.h:133</div></div> <div class="ttc" id="struct_nv_1_1_blast_1_1_triangle_html"><div class="ttname"><a href="struct_nv_1_1_blast_1_1_triangle.html">Nv::Blast::Triangle</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringTypes.h:79</div></div> -<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html_ae9fdc3a9dd7eefe632a24c7abb6c4962"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ae9fdc3a9dd7eefe632a24c7abb6c4962">Nv::Blast::FractureToolImpl::mInteriorMaterialId</a></div><div class="ttdeci">int32_t mInteriorMaterialId</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:429</div></div> +<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html_ae9fdc3a9dd7eefe632a24c7abb6c4962"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ae9fdc3a9dd7eefe632a24c7abb6c4962">Nv::Blast::FractureToolImpl::mInteriorMaterialId</a></div><div class="ttdeci">int32_t mInteriorMaterialId</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:431</div></div> <div class="ttc" id="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl_html_ad37927c9e02c8259b2607099d484decc"><div class="ttname"><a href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#ad37927c9e02c8259b2607099d484decc">Nv::Blast::VoronoiSitesGeneratorImpl::release</a></div><div class="ttdeci">void release() override</div></div> <div class="ttc" id="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html">Nv::Blast::VoronoiSitesGeneratorImpl</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:48</div></div> <div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html">Nv::Blast::FractureToolImpl</a></div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:146</div></div> @@ -90,9 +90,9 @@ $(document).ready(function(){initNavTree('_nv_blast_ext_authoring_fracture_tool_ <div class="ttc" id="struct_nvc_vec3_html"><div class="ttname"><a href="struct_nvc_vec3.html">NvcVec3</a></div><div class="ttdef"><b>Definition:</b> NvCTypes.h:49</div></div> <div class="ttc" id="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl_html_a57ec8f7229999994e516d4edefdf9eed"><div class="ttname"><a href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a57ec8f7229999994e516d4edefdf9eed">Nv::Blast::VoronoiSitesGeneratorImpl::clusteredSitesGeneration</a></div><div class="ttdeci">void clusteredSitesGeneration(uint32_t numberOfClusters, uint32_t sitesPerCluster, float clusterRadius) override</div></div> <div class="ttc" id="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl_html_a7c248babbc4b16a16be9832f0aea767f"><div class="ttname"><a href="class_nv_1_1_blast_1_1_voronoi_sites_generator_impl.html#a7c248babbc4b16a16be9832f0aea767f">Nv::Blast::VoronoiSitesGeneratorImpl::~VoronoiSitesGeneratorImpl</a></div><div class="ttdeci">~VoronoiSitesGeneratorImpl()</div></div> -<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html_a1cf29d3d972240ac368f6acef7bcb93b"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a1cf29d3d972240ac368f6acef7bcb93b">Nv::Blast::FractureToolImpl::mPlaneIndexerOffset</a></div><div class="ttdeci">int64_t mPlaneIndexerOffset</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:424</div></div> +<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html_a1cf29d3d972240ac368f6acef7bcb93b"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a1cf29d3d972240ac368f6acef7bcb93b">Nv::Blast::FractureToolImpl::mPlaneIndexerOffset</a></div><div class="ttdeci">int64_t mPlaneIndexerOffset</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:426</div></div> <div class="ttc" id="struct_nvc_quat_html"><div class="ttname"><a href="struct_nvc_quat.html">NvcQuat</a></div><div class="ttdef"><b>Definition:</b> NvCTypes.h:61</div></div> -<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html_abcc6a73e16008d488bbf81623ec5a33e"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#abcc6a73e16008d488bbf81623ec5a33e">Nv::Blast::FractureToolImpl::mRemoveIslands</a></div><div class="ttdeci">bool mRemoveIslands</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:428</div></div> +<div class="ttc" id="class_nv_1_1_blast_1_1_fracture_tool_impl_html_abcc6a73e16008d488bbf81623ec5a33e"><div class="ttname"><a href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#abcc6a73e16008d488bbf81623ec5a33e">Nv::Blast::FractureToolImpl::mRemoveIslands</a></div><div class="ttdeci">bool mRemoveIslands</div><div class="ttdef"><b>Definition:</b> NvBlastExtAuthoringFractureToolImpl.h:430</div></div> </div><!-- fragment --></div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> diff --git a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool-members.html b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool-members.html index cf0f4d2..487ab3d 100755 --- a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool-members.html +++ b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool-members.html @@ -69,7 +69,7 @@ <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#251738022e498b819e88536577470735">setRemoveIslands</a>(bool isRemoveIslands)=0</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a></td><td><code> [pure virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#c14c1ff1d50756694be24c34476af965">setSourceMesh</a>(const Mesh *mesh)=0</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a></td><td><code> [pure virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#45e8a5d3b6d98da1b44b6888a5054cce">slicing</a>(uint32_t chunkId, const SlicingConfiguration &conf, bool replaceChunk, RandomGeneratorBase *rnd)=0</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a></td><td><code> [pure virtual]</code></td></tr> - <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#c0c886a68b51652184c126e965dc6209">uniteChunks</a>(uint32_t maxAtLevel, uint32_t maxGroupSize, const NvcVec2i *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false)=0</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a></td><td><code> [pure virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#e4bd5dab498f9e894c648d570c5b60ba">uniteChunks</a>(uint32_t threshold, uint32_t targetClusterSize, const uint32_t *chunksToMerge, uint32_t mergeChunkCount, const NvcVec2i *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false)=0</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a></td><td><code> [pure virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#384be45a1310ee0652d315127e62da22">updateBaseMesh</a>(int32_t chunkIndex, Triangle *output)=0</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a></td><td><code> [pure virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#4c3308b909153982aded9366f9d3ee7c">voronoiFracturing</a>(uint32_t chunkId, uint32_t cellCount, const NvcVec3 *cellPoints, bool replaceChunk)=0</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a></td><td><code> [pure virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#2d38fb6aac3c36d51d60dad428a43074">voronoiFracturing</a>(uint32_t chunkId, uint32_t cellCount, const NvcVec3 *cellPoints, const NvcVec3 &scale, const NvcQuat &rotation, bool replaceChunk)=0</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html">Nv::Blast::FractureTool</a></td><td><code> [pure virtual]</code></td></tr> diff --git a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool.html b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool.html index a73a96a..f7a110a 100755 --- a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool.html +++ b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool.html @@ -114,7 +114,7 @@ Inheritance diagram for Nv::Blast::FractureTool:</div> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#45e8a5d3b6d98da1b44b6888a5054cce">slicing</a> (uint32_t chunkId, const <a class="el" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a> &conf, bool replaceChunk, <a class="el" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a> *rnd)=0</td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#c0c886a68b51652184c126e965dc6209">uniteChunks</a> (uint32_t maxAtLevel, uint32_t maxGroupSize, const <a class="el" href="struct_nvc_vec2i.html">NvcVec2i</a> *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false)=0</td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#e4bd5dab498f9e894c648d570c5b60ba">uniteChunks</a> (uint32_t threshold, uint32_t targetClusterSize, const uint32_t *chunksToMerge, uint32_t mergeChunkCount, const <a class="el" href="struct_nvc_vec2i.html">NvcVec2i</a> *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false)=0</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#384be45a1310ee0652d315127e62da22">updateBaseMesh</a> (int32_t chunkIndex, <a class="el" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a> *output)=0</td></tr> @@ -1025,7 +1025,7 @@ Fractures specified chunk with slicing method. <dl compact><dt><b>Parameters:</b </div> </div><p> -<a class="anchor" name="c0c886a68b51652184c126e965dc6209"></a><!-- doxytag: member="Nv::Blast::FractureTool::uniteChunks" ref="c0c886a68b51652184c126e965dc6209" args="(uint32_t maxAtLevel, uint32_t maxGroupSize, const NvcVec2i *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false)=0" --> +<a class="anchor" name="e4bd5dab498f9e894c648d570c5b60ba"></a><!-- doxytag: member="Nv::Blast::FractureTool::uniteChunks" ref="e4bd5dab498f9e894c648d570c5b60ba" args="(uint32_t threshold, uint32_t targetClusterSize, const uint32_t *chunksToMerge, uint32_t mergeChunkCount, const NvcVec2i *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> @@ -1033,13 +1033,25 @@ Fractures specified chunk with slicing method. <dl compact><dt><b>Parameters:</b <td class="memname">virtual void Nv::Blast::FractureTool::uniteChunks </td> <td>(</td> <td class="paramtype">uint32_t </td> - <td class="paramname"> <em>maxAtLevel</em>, </td> + <td class="paramname"> <em>threshold</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> - <td class="paramname"> <em>maxGroupSize</em>, </td> + <td class="paramname"> <em>targetClusterSize</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const uint32_t * </td> + <td class="paramname"> <em>chunksToMerge</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t </td> + <td class="paramname"> <em>mergeChunkCount</em>, </td> </tr> <tr> <td class="paramkey"></td> @@ -1071,16 +1083,17 @@ Fractures specified chunk with slicing method. <dl compact><dt><b>Parameters:</b <p> Optimize chunk hierarhy for better runtime performance. It tries to unite chunks to groups of some size in order to transform flat hierarchy (all chunks are children of single root) to tree like hieracrhy with limited number of children for each chunk. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> - <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>maxAtLevel</em> </td><td>If number of children of some chunk less then maxAtLevel then it would be considered as already optimized and skipped. </td></tr> - <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>maxGroupSize</em> </td><td>Max number of children for processed chunks. </td></tr> - <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>removeOriginalChunks.</em> </td><td></td></tr> + <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>threshold</em> </td><td>If number of children of some chunk less then maxAtLevel then it would be considered as already optimized and skipped. </td></tr> + <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>targetClusterSize</em> </td><td>Target number of children for processed chunks. </td></tr> + <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>chunksToMerge</em> </td><td>Which chunks are merge candidate. If NULL, all chunks will be a merge candidate. </td></tr> + <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>mergeChunkCount</em> </td><td>size of chunksToMerge array, if chunksToMerge != NULL. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>adjChunks</em> </td><td>Optional index pairs to describe chunk adjacency. May be NULL. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>adjChunksSize</em> </td><td>If 'adjChunks' is not NULL, the number of index pairs in the adjChunks array. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>removeOriginalChunks</em> </td><td>If true, original chunks that are merged are removed. </td></tr> </table> </dl> -<p>Implemented in <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#c1c3a18e82a53972ea362acc1a0272f8">Nv::Blast::FractureToolImpl</a>.</p> +<p>Implemented in <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#7be81de54f32a49d2f5885275c59bece">Nv::Blast::FractureToolImpl</a>.</p> </div> </div><p> diff --git a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool.js b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool.js index 49ed0fd..8ade1d9 100755 --- a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool.js +++ b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool.js @@ -29,7 +29,7 @@ var class_nv_1_1_blast_1_1_fracture_tool = [ "setRemoveIslands", "class_nv_1_1_blast_1_1_fracture_tool.html#a251738022e498b819e88536577470735", null ], [ "setSourceMesh", "class_nv_1_1_blast_1_1_fracture_tool.html#ac14c1ff1d50756694be24c34476af965", null ], [ "slicing", "class_nv_1_1_blast_1_1_fracture_tool.html#a45e8a5d3b6d98da1b44b6888a5054cce", null ], - [ "uniteChunks", "class_nv_1_1_blast_1_1_fracture_tool.html#ac0c886a68b51652184c126e965dc6209", null ], + [ "uniteChunks", "class_nv_1_1_blast_1_1_fracture_tool.html#ae4bd5dab498f9e894c648d570c5b60ba", null ], [ "updateBaseMesh", "class_nv_1_1_blast_1_1_fracture_tool.html#a384be45a1310ee0652d315127e62da22", null ], [ "voronoiFracturing", "class_nv_1_1_blast_1_1_fracture_tool.html#a4c3308b909153982aded9366f9d3ee7c", null ], [ "voronoiFracturing", "class_nv_1_1_blast_1_1_fracture_tool.html#a2d38fb6aac3c36d51d60dad428a43074", null ] diff --git a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl-members.html b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl-members.html index b74f567..7caf780 100755 --- a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl-members.html +++ b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl-members.html @@ -78,7 +78,7 @@ <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#92dec92822ab9e0807400a7d63bfc553">setRemoveIslands</a>(bool isRemoveIslands) override</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html">Nv::Blast::FractureToolImpl</a></td><td><code> [virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#04d3620e1e76d15accb8a08039398680">setSourceMesh</a>(const Mesh *mesh) override</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html">Nv::Blast::FractureToolImpl</a></td><td><code> [virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#c2b3addf8c9d4e4c81511c8b0071f031">slicing</a>(uint32_t chunkId, const SlicingConfiguration &conf, bool replaceChunk, RandomGeneratorBase *rnd) override</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html">Nv::Blast::FractureToolImpl</a></td><td><code> [virtual]</code></td></tr> - <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#c1c3a18e82a53972ea362acc1a0272f8">uniteChunks</a>(uint32_t maxAtLevel, uint32_t maxGroupSize, const NvcVec2i *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false) override</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html">Nv::Blast::FractureToolImpl</a></td><td><code> [virtual]</code></td></tr> + <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#7be81de54f32a49d2f5885275c59bece">uniteChunks</a>(uint32_t threshold, uint32_t targetClusterSize, const uint32_t *chunksToMerge, uint32_t mergeChunkCount, const NvcVec2i *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false) override</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html">Nv::Blast::FractureToolImpl</a></td><td><code> [virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#0217eb658aa3890c3d1d2e030436b07b">updateBaseMesh</a>(int32_t chunkIndex, Triangle *output) override</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html">Nv::Blast::FractureToolImpl</a></td><td><code> [virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#f0d34972494741fc4c4b2bfe1eb801ad">voronoiFracturing</a>(uint32_t chunkId, uint32_t cellCount, const NvcVec3 *cellPoints, bool replaceChunk) override</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html">Nv::Blast::FractureToolImpl</a></td><td><code> [virtual]</code></td></tr> <tr class="memlist"><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#b0089baafc0bd7370c12602d7dd20440">voronoiFracturing</a>(uint32_t chunkId, uint32_t cellCount, const NvcVec3 *cellPoints, const NvcVec3 &scale, const NvcQuat &rotation, bool replaceChunk) override</td><td><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html">Nv::Blast::FractureToolImpl</a></td><td><code> [virtual]</code></td></tr> diff --git a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl.html b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl.html index 7d948ad..d94a2f0 100755 --- a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl.html +++ b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl.html @@ -116,7 +116,7 @@ Inheritance diagram for Nv::Blast::FractureToolImpl:</div> <tr><td class="memItemLeft" nowrap align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#c2b3addf8c9d4e4c81511c8b0071f031">slicing</a> (uint32_t chunkId, const <a class="el" href="struct_nv_1_1_blast_1_1_slicing_configuration.html">SlicingConfiguration</a> &conf, bool replaceChunk, <a class="el" href="class_nv_1_1_blast_1_1_random_generator_base.html">RandomGeneratorBase</a> *rnd) override</td></tr> -<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#c1c3a18e82a53972ea362acc1a0272f8">uniteChunks</a> (uint32_t maxAtLevel, uint32_t maxGroupSize, const <a class="el" href="struct_nvc_vec2i.html">NvcVec2i</a> *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false) override</td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#7be81de54f32a49d2f5885275c59bece">uniteChunks</a> (uint32_t threshold, uint32_t targetClusterSize, const uint32_t *chunksToMerge, uint32_t mergeChunkCount, const <a class="el" href="struct_nvc_vec2i.html">NvcVec2i</a> *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false) override</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#0217eb658aa3890c3d1d2e030436b07b">updateBaseMesh</a> (int32_t chunkIndex, <a class="el" href="struct_nv_1_1_blast_1_1_triangle.html">Triangle</a> *output) override</td></tr> @@ -1066,7 +1066,7 @@ Fractures specified chunk with slicing method. <dl compact><dt><b>Parameters:</b </div> </div><p> -<a class="anchor" name="c1c3a18e82a53972ea362acc1a0272f8"></a><!-- doxytag: member="Nv::Blast::FractureToolImpl::uniteChunks" ref="c1c3a18e82a53972ea362acc1a0272f8" args="(uint32_t maxAtLevel, uint32_t maxGroupSize, const NvcVec2i *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false) override" --> +<a class="anchor" name="7be81de54f32a49d2f5885275c59bece"></a><!-- doxytag: member="Nv::Blast::FractureToolImpl::uniteChunks" ref="7be81de54f32a49d2f5885275c59bece" args="(uint32_t threshold, uint32_t targetClusterSize, const uint32_t *chunksToMerge, uint32_t mergeChunkCount, const NvcVec2i *adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks=false) override" --> <div class="memitem"> <div class="memproto"> <table class="memname"> @@ -1074,13 +1074,25 @@ Fractures specified chunk with slicing method. <dl compact><dt><b>Parameters:</b <td class="memname">void Nv::Blast::FractureToolImpl::uniteChunks </td> <td>(</td> <td class="paramtype">uint32_t </td> - <td class="paramname"> <em>maxAtLevel</em>, </td> + <td class="paramname"> <em>threshold</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> - <td class="paramname"> <em>maxGroupSize</em>, </td> + <td class="paramname"> <em>targetClusterSize</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">const uint32_t * </td> + <td class="paramname"> <em>chunksToMerge</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">uint32_t </td> + <td class="paramname"> <em>mergeChunkCount</em>, </td> </tr> <tr> <td class="paramkey"></td> @@ -1112,16 +1124,17 @@ Fractures specified chunk with slicing method. <dl compact><dt><b>Parameters:</b <p> Optimize chunk hierarhy for better runtime performance. It tries to unite chunks to groups of some size in order to transform flat hierarchy (all chunks are children of single root) to tree like hieracrhy with limited number of children for each chunk. <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> - <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>maxAtLevel</em> </td><td>If number of children of some chunk less then maxAtLevel then it would be considered as already optimized and skipped. </td></tr> - <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>maxGroupSize</em> </td><td>Max number of children for processed chunks. </td></tr> - <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>removeOriginalChunks.</em> </td><td></td></tr> + <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>threshold</em> </td><td>If number of children of some chunk less then maxAtLevel then it would be considered as already optimized and skipped. </td></tr> + <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>targetClusterSize</em> </td><td>Target number of children for processed chunks. </td></tr> + <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>chunksToMerge</em> </td><td>Which chunks are merge candidate. If NULL, all chunks will be a merge candidate. </td></tr> + <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>mergeChunkCount</em> </td><td>size of chunksToMerge array, if chunksToMerge != NULL. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>adjChunks</em> </td><td>Optional index pairs to describe chunk adjacency. May be NULL. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>adjChunksSize</em> </td><td>If 'adjChunks' is not NULL, the number of index pairs in the adjChunks array. </td></tr> <tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>removeOriginalChunks</em> </td><td>If true, original chunks that are merged are removed. </td></tr> </table> </dl> -<p>Implements <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#c0c886a68b51652184c126e965dc6209">Nv::Blast::FractureTool</a>.</p> +<p>Implements <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#e4bd5dab498f9e894c648d570c5b60ba">Nv::Blast::FractureTool</a>.</p> </div> </div><p> diff --git a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl.js b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl.js index a7158fc..1144221 100755 --- a/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl.js +++ b/docs/source_docs/files/class_nv_1_1_blast_1_1_fracture_tool_impl.js @@ -30,7 +30,7 @@ var class_nv_1_1_blast_1_1_fracture_tool_impl = [ "setRemoveIslands", "class_nv_1_1_blast_1_1_fracture_tool_impl.html#a92dec92822ab9e0807400a7d63bfc553", null ], [ "setSourceMesh", "class_nv_1_1_blast_1_1_fracture_tool_impl.html#a04d3620e1e76d15accb8a08039398680", null ], [ "slicing", "class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2b3addf8c9d4e4c81511c8b0071f031", null ], - [ "uniteChunks", "class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac1c3a18e82a53972ea362acc1a0272f8", null ], + [ "uniteChunks", "class_nv_1_1_blast_1_1_fracture_tool_impl.html#a7be81de54f32a49d2f5885275c59bece", null ], [ "updateBaseMesh", "class_nv_1_1_blast_1_1_fracture_tool_impl.html#a0217eb658aa3890c3d1d2e030436b07b", null ], [ "voronoiFracturing", "class_nv_1_1_blast_1_1_fracture_tool_impl.html#af0d34972494741fc4c4b2bfe1eb801ad", null ], [ "voronoiFracturing", "class_nv_1_1_blast_1_1_fracture_tool_impl.html#ab0089baafc0bd7370c12602d7dd20440", null ], diff --git a/docs/source_docs/files/functions_0x75.html b/docs/source_docs/files/functions_0x75.html index 0eb6260..e626215 100755 --- a/docs/source_docs/files/functions_0x75.html +++ b/docs/source_docs/files/functions_0x75.html @@ -96,8 +96,8 @@ Here is a list of all class members with links to the classes they belong to: <li>Union() : <a class="el" href="struct_nv_1_1_blast_1_1_boolean_tool_v2_1_1_mode.html#13dbb61a60c4c47a3f1cc73a6830e4aa">Nv::Blast::BooleanToolV2::BooleanToolV2::Mode</a> <li>uniteChunks() -: <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#c0c886a68b51652184c126e965dc6209">Nv::Blast::FractureTool</a> -, <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#c1c3a18e82a53972ea362acc1a0272f8">Nv::Blast::FractureToolImpl</a> +: <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#e4bd5dab498f9e894c648d570c5b60ba">Nv::Blast::FractureTool</a> +, <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#7be81de54f32a49d2f5885275c59bece">Nv::Blast::FractureToolImpl</a> <li>Unlock() : <a class="el" href="class_v_h_a_c_d_1_1_mutex.html#8fb030351ef3a6d191fef6a55f7d1d68">VHACD::Mutex</a> <li>Unreferenced diff --git a/docs/source_docs/files/functions_func_0x75.html b/docs/source_docs/files/functions_func_0x75.html index 0650d0b..6c1abe1 100755 --- a/docs/source_docs/files/functions_func_0x75.html +++ b/docs/source_docs/files/functions_func_0x75.html @@ -90,8 +90,8 @@ <li>Union() : <a class="el" href="struct_nv_1_1_blast_1_1_boolean_tool_v2_1_1_mode.html#13dbb61a60c4c47a3f1cc73a6830e4aa">Nv::Blast::BooleanToolV2::BooleanToolV2::Mode</a> <li>uniteChunks() -: <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#c0c886a68b51652184c126e965dc6209">Nv::Blast::FractureTool</a> -, <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#c1c3a18e82a53972ea362acc1a0272f8">Nv::Blast::FractureToolImpl</a> +: <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#e4bd5dab498f9e894c648d570c5b60ba">Nv::Blast::FractureTool</a> +, <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#7be81de54f32a49d2f5885275c59bece">Nv::Blast::FractureToolImpl</a> <li>Unlock() : <a class="el" href="class_v_h_a_c_d_1_1_mutex.html#8fb030351ef3a6d191fef6a55f7d1d68">VHACD::Mutex</a> <li>unregisterActor() diff --git a/docs/source_docs/files/functions_func_u.html b/docs/source_docs/files/functions_func_u.html index 29c52bc..cb1956d 100755 --- a/docs/source_docs/files/functions_func_u.html +++ b/docs/source_docs/files/functions_func_u.html @@ -53,8 +53,8 @@ $(document).ready(function(){initNavTree('functions_func_u.html','');}); : <a class="el" href="struct_nv_1_1_blast_1_1_boolean_tool_v2_1_1_mode.html#ae829dba2deb73fa8d430f87b2ae5831e">Nv::Blast::BooleanToolV2::Mode</a> </li> <li>uniteChunks() -: <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#ac0c886a68b51652184c126e965dc6209">Nv::Blast::FractureTool</a> -, <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac1c3a18e82a53972ea362acc1a0272f8">Nv::Blast::FractureToolImpl</a> +: <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#ae4bd5dab498f9e894c648d570c5b60ba">Nv::Blast::FractureTool</a> +, <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a7be81de54f32a49d2f5885275c59bece">Nv::Blast::FractureToolImpl</a> </li> <li>Unlock() : <a class="el" href="class_v_h_a_c_d_1_1_mutex.html#a8fb030351ef3a6d191fef6a55f7d1d68">VHACD::Mutex</a> diff --git a/docs/source_docs/files/functions_u.html b/docs/source_docs/files/functions_u.html index f9d14e3..e9c071f 100755 --- a/docs/source_docs/files/functions_u.html +++ b/docs/source_docs/files/functions_u.html @@ -59,8 +59,8 @@ $(document).ready(function(){initNavTree('functions_u.html','');}); : <a class="el" href="struct_nv_1_1_blast_1_1_boolean_tool_v2_1_1_mode.html#ae829dba2deb73fa8d430f87b2ae5831e">Nv::Blast::BooleanToolV2::Mode</a> </li> <li>uniteChunks() -: <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#ac0c886a68b51652184c126e965dc6209">Nv::Blast::FractureTool</a> -, <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac1c3a18e82a53972ea362acc1a0272f8">Nv::Blast::FractureToolImpl</a> +: <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool.html#ae4bd5dab498f9e894c648d570c5b60ba">Nv::Blast::FractureTool</a> +, <a class="el" href="class_nv_1_1_blast_1_1_fracture_tool_impl.html#a7be81de54f32a49d2f5885275c59bece">Nv::Blast::FractureToolImpl</a> </li> <li>Unlock() : <a class="el" href="class_v_h_a_c_d_1_1_mutex.html#a8fb030351ef3a6d191fef6a55f7d1d68">VHACD::Mutex</a> diff --git a/docs/source_docs/files/navtreeindex7.js b/docs/source_docs/files/navtreeindex7.js index 196045f..003e76a 100755 --- a/docs/source_docs/files/navtreeindex7.js +++ b/docs/source_docs/files/navtreeindex7.js @@ -71,12 +71,12 @@ var NAVTREEINDEX7 = "class_nv_1_1_blast_1_1_fracture_tool.html#a9a113cc771fac30fd14a9c7b5b073e99":[3,0,2,0,119,14], "class_nv_1_1_blast_1_1_fracture_tool.html#aa9a87637d6d190d71678f0fb9a100bfd":[3,0,2,0,119,6], "class_nv_1_1_blast_1_1_fracture_tool.html#ab462c92fa47a5359bf3d19cf44af80f4":[3,0,2,0,119,23], -"class_nv_1_1_blast_1_1_fracture_tool.html#ac0c886a68b51652184c126e965dc6209":[3,0,2,0,119,29], "class_nv_1_1_blast_1_1_fracture_tool.html#ac14c1ff1d50756694be24c34476af965":[3,0,2,0,119,27], "class_nv_1_1_blast_1_1_fracture_tool.html#ac8c4f90133fdf32969cad6e4c520414f":[3,0,2,0,119,25], "class_nv_1_1_blast_1_1_fracture_tool.html#ac99cb91a13255929a52d9a2623ac207b":[3,0,2,0,119,11], "class_nv_1_1_blast_1_1_fracture_tool.html#adb1c311cbb3d84c7bfbfd12abe01af0b":[3,0,2,0,119,7], "class_nv_1_1_blast_1_1_fracture_tool.html#adc4037818bdb9424fe0543b59c1e2eac":[3,0,2,0,119,17], +"class_nv_1_1_blast_1_1_fracture_tool.html#ae4bd5dab498f9e894c648d570c5b60ba":[3,0,2,0,119,29], "class_nv_1_1_blast_1_1_fracture_tool.html#aea8f1d386c70af0ea67bed2c353e57a1":[3,0,2,0,119,8], "class_nv_1_1_blast_1_1_fracture_tool.html#aeaa46bf5fe4fe7035ac624f49ade64a8":[3,0,2,0,119,4], "class_nv_1_1_blast_1_1_fracture_tool.html#aecd9be996bba9329418fd91db8235ebe":[3,0,2,0,119,24], @@ -107,6 +107,7 @@ var NAVTREEINDEX7 = "class_nv_1_1_blast_1_1_fracture_tool_impl.html#a6cab6022e3cfb8bfc287428c507a9459":[3,0,2,0,120,8], "class_nv_1_1_blast_1_1_fracture_tool_impl.html#a7500f7cd8e670745e74ee83eed10c1ba":[3,0,2,0,120,13], "class_nv_1_1_blast_1_1_fracture_tool_impl.html#a77957e191451f94d3753e31695c37914":[3,0,2,0,120,35], +"class_nv_1_1_blast_1_1_fracture_tool_impl.html#a7be81de54f32a49d2f5885275c59bece":[3,0,2,0,120,30], "class_nv_1_1_blast_1_1_fracture_tool_impl.html#a7dcbf47203115afe634ca7b5af9bd56a":[3,0,2,0,120,19], "class_nv_1_1_blast_1_1_fracture_tool_impl.html#a7ffacc77ed102a8cd52c080055a08c3f":[3,0,2,0,120,2], "class_nv_1_1_blast_1_1_fracture_tool_impl.html#a820e9829bb02425ae53e47eb6be0b1c3":[3,0,2,0,120,15], @@ -116,7 +117,6 @@ var NAVTREEINDEX7 = "class_nv_1_1_blast_1_1_fracture_tool_impl.html#ab5cc06434628c2b5be10f755edcbe1da":[3,0,2,0,120,16], "class_nv_1_1_blast_1_1_fracture_tool_impl.html#abcc6a73e16008d488bbf81623ec5a33e":[3,0,2,0,120,40], "class_nv_1_1_blast_1_1_fracture_tool_impl.html#abe1f6bf365964825a2c939e22c85d96a":[3,0,2,0,120,23], -"class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac1c3a18e82a53972ea362acc1a0272f8":[3,0,2,0,120,30], "class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2202d728cefb26446a60593b03dcbe1":[3,0,2,0,120,36], "class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac2b3addf8c9d4e4c81511c8b0071f031":[3,0,2,0,120,29], "class_nv_1_1_blast_1_1_fracture_tool_impl.html#ac466495627ca99252433c7e1c702c7f9":[3,0,2,0,120,25], diff --git a/sdk/extensions/authoring/include/NvBlastExtAuthoringFractureTool.h b/sdk/extensions/authoring/include/NvBlastExtAuthoringFractureTool.h index b11851e..8f9e3bb 100755 --- a/sdk/extensions/authoring/include/NvBlastExtAuthoringFractureTool.h +++ b/sdk/extensions/authoring/include/NvBlastExtAuthoringFractureTool.h @@ -497,14 +497,17 @@ class FractureTool Optimize chunk hierarhy for better runtime performance.
It tries to unite chunks to groups of some size in order to transform flat hierarchy (all chunks are children of
single root) to tree like hieracrhy with limited number of children for each chunk.
- \param[in] maxAtLevel If number of children of some chunk less then maxAtLevel then it would be considered as already
+ \param[in] threshold If number of children of some chunk less then maxAtLevel then it would be considered as already
optimized and skipped.
- \param[in] maxGroupSize Max number of children for processed chunks. \param[in] removeOriginalChunks.
+ \param[in] targetClusterSize Target number of children for processed chunks.
+ \param[in] chunksToMerge Which chunks are merge candidate. If NULL, all chunks will be a merge candidate.
+ \param[in] mergeChunkCount size of chunksToMerge array, if chunksToMerge != NULL.
\param[in] adjChunks Optional index pairs to describe chunk adjacency. May be NULL.
\param[in] adjChunksSize If 'adjChunks' is not NULL, the number of index pairs in the adjChunks array.
\param[in] removeOriginalChunks If true, original chunks that are merged are removed.
*/
- virtual void uniteChunks(uint32_t maxAtLevel, uint32_t maxGroupSize,
+ virtual void uniteChunks(uint32_t threshold, uint32_t targetClusterSize,
+ const uint32_t* chunksToMerge, uint32_t mergeChunkCount,
const NvcVec2i* adjChunks, uint32_t adjChunksSize,
bool removeOriginalChunks = false) = 0;
diff --git a/sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.cpp b/sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.cpp index f8d9a2d..2354474 100755 --- a/sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.cpp +++ b/sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.cpp @@ -2402,51 +2402,70 @@ bool VecIntComp(const std::pair<NvcVec3, uint32_t>& a, const std::pair<NvcVec3, return a.second < b.second;
}
-void FractureToolImpl::uniteChunks(uint32_t maxChunksAtLevel, uint32_t maxGroup, const NvcVec2i* adjChunks,
- uint32_t adjChunksSize, bool removeOriginalChunks /*= false*/)
+void FractureToolImpl::uniteChunks(uint32_t threshold, uint32_t targetClusterSize, const uint32_t* chunksToMerge, uint32_t mergeChunkCount,
+ const NvcVec2i* adjChunks, uint32_t adjChunksSize, bool removeOriginalChunks /*= false*/)
{
- maxChunksAtLevel = std::max(maxChunksAtLevel, maxGroup);
-
std::vector<int32_t> depth(mChunkData.size(), 0);
std::vector<std::vector<uint32_t> > chunkGraph(mChunkData.size());
-
std::vector<uint32_t> atEachDepth;
std::vector<uint32_t> childNumber(mChunkData.size(), 0);
+ std::vector<uint32_t> chunksToRemove;
- for (uint32_t i = 0; i < mChunkData.size(); ++i)
+ enum ChunkFlags
+ {
+ Mergeable = (1 << 0),
+ Merged = (1 << 1)
+ };
+
+ std::vector<uint32_t> chunkFlags(mChunkData.size());
+
+ if (chunksToMerge == nullptr)
+ {
+ std::fill(chunkFlags.begin(), chunkFlags.end(), Mergeable);
+ }
+ else
+ {
+ // Seed all mergeable chunks with Mergeable flag
+ for (uint32_t chunkN = 0; chunkN < mergeChunkCount; ++chunkN)
+ {
+ const uint32_t chunkIndex = chunksToMerge[chunkN];
+ chunkFlags[chunkIndex] |= Mergeable;
+ }
+
+ // Make all descendants mergable too
+ std::vector<int32_t> treeWalk;
+ for (uint32_t chunkIndex = 0; chunkIndex < mChunkData.size(); ++chunkIndex)
+ {
+ treeWalk.clear();
+ int32_t walkIndex = (int32_t)chunkIndex;
+ do
+ {
+ if (chunkFlags[walkIndex] & Mergeable)
+ {
+ std::for_each(treeWalk.begin(), treeWalk.end(), [&chunkFlags](int32_t index) {chunkFlags[index] |= Mergeable; });
+ break;
+ }
+ treeWalk.push_back(walkIndex);
+ } while ((walkIndex = mChunkData[walkIndex].parent) >= 0);
+ }
+ }
+
+ int32_t maxDepth = 0;
+
+ for (uint32_t i = 0; i < mChunkData.size(); ++i)
{
if (mChunkData[i].parent != -1)
childNumber[getChunkIndex(mChunkData[i].parent)]++;
depth[i] = getChunkDepth(mChunkData[i].chunkId);
NVBLAST_ASSERT(depth[i] >= 0);
- if (depth[i] >= 0)
- {
- if ((size_t)depth[i] >= atEachDepth.size())
- {
- atEachDepth.resize(depth[i]+1, 0);
- }
- atEachDepth[depth[i]]++;
- }
+ maxDepth = std::max(maxDepth, depth[i]);
}
- std::vector<uint32_t> chunksToRemove;
-
- std::vector<uint32_t> chunkFlags(mChunkData.size(), 0);
-
- enum ChunkFlags
- {
- ChunkUsage = (1 << 0),
- MergedChunk = (1 << 1)
- };
-
- for (int32_t level = (int32_t)atEachDepth.size(); level--;) // go from leaves to trunk and rebuild hierarchy
+ for (int32_t level = maxDepth; level > 0; --level) // go from leaves to trunk and rebuild hierarchy
{
- if (atEachDepth[level] < maxChunksAtLevel)
- continue;
-
std::vector<uint32_t> cGroup;
std::vector<uint32_t> chunksToUnify;
@@ -2455,7 +2474,7 @@ void FractureToolImpl::uniteChunks(uint32_t maxChunksAtLevel, uint32_t maxGroup, for (uint32_t ch = 0; ch < depth.size(); ++ch)
{
- if (depth[ch] == level && childNumber[getChunkIndex(mChunkData[ch].parent)] > maxChunksAtLevel)
+ if (depth[ch] == level && childNumber[getChunkIndex(mChunkData[ch].parent)] > threshold && (chunkFlags[ch] & Mergeable) != 0)
{
chunksToUnify.push_back(ch);
NvcVec3 cp = fromPxShared(toPxShared(mChunkData[ch].meshData->getBoundingBox()).getCenter());
@@ -2480,42 +2499,43 @@ void FractureToolImpl::uniteChunks(uint32_t maxChunksAtLevel, uint32_t maxGroup, }
rebuildAdjGraph(chunksToUnify, adjChunks, adjChunksSize, chunkGraph);
-
- for (uint32_t iter = 0; iter < 32 && chunksToUnify.size() > maxChunksAtLevel; ++iter)
+ for (uint32_t iter = 0; iter < 32 && chunksToUnify.size() > threshold; ++iter)
{
std::vector<uint32_t> newChunksToUnify;
for (uint32_t c = 0; c < chunksToUnify.size(); ++c)
{
- if (chunkFlags[chunksToUnify[c]] & ChunkUsage)
+ if ((chunkFlags[chunksToUnify[c]] & Mergeable) == 0)
continue;
-
- chunkFlags[chunksToUnify[c]] |= ChunkUsage;
+ chunkFlags[chunksToUnify[c]] &= ~Mergeable;
cGroup.push_back(chunksToUnify[c]);
- for (uint32_t sc = 0; sc < cGroup.size() && cGroup.size() < maxGroup; ++sc)
+ for (uint32_t sc = 0; sc < cGroup.size() && cGroup.size() < targetClusterSize; ++sc)
{
uint32_t sid = cGroup[sc];
- for (uint32_t neighb = 0; neighb < chunkGraph[sid].size() && cGroup.size() < maxGroup; ++neighb)
+ for (uint32_t neighbN = 0; neighbN < chunkGraph[sid].size() && cGroup.size() < targetClusterSize; ++neighbN)
{
- if (chunkFlags[chunkGraph[sid][neighb]] & ChunkUsage)
+ const uint32_t chunkNeighb = chunkGraph[sid][neighbN];
+ if (mChunkData[chunkNeighb].parent != mChunkData[sid].parent)
+ continue;
+ if ((chunkFlags[chunkNeighb] & Mergeable) == 0)
continue;
- cGroup.push_back(chunkGraph[sid][neighb]);
- chunkFlags[chunkGraph[sid][neighb]] |= ChunkUsage;
- }
+ chunkFlags[chunkNeighb] &= ~Mergeable;
+ cGroup.push_back(chunkNeighb);
+ }
}
if (cGroup.size() > 1)
{
uint32_t newChunk = stretchGroup(cGroup, chunkGraph);
for (uint32_t chunk : cGroup)
{
- if (removeOriginalChunks && !(chunkFlags[chunk] & MergedChunk))
+ if (removeOriginalChunks && !(chunkFlags[chunk] & Merged))
{
chunksToRemove.push_back(chunk);
}
}
cGroup.clear();
newChunksToUnify.push_back(newChunk);
- chunkFlags.push_back(MergedChunk);
+ chunkFlags.push_back(Merged);
}
else
{
diff --git a/sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.h b/sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.h index fb3ba37..a8c59dc 100755 --- a/sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.h +++ b/sdk/extensions/authoring/source/NvBlastExtAuthoringFractureToolImpl.h @@ -375,7 +375,9 @@ public: bool deleteAllChildrenOfChunk(int32_t chunkId) override;
- void uniteChunks(uint32_t maxAtLevel, uint32_t maxGroupSize, const NvcVec2i* adjChunks, uint32_t adjChunksSize,
+ void uniteChunks(uint32_t threshold, uint32_t targetClusterSize,
+ const uint32_t* chunksToMerge, uint32_t mergeChunkCount,
+ const NvcVec2i* adjChunks, uint32_t adjChunksSize,
bool removeOriginalChunks = false) override;
|