diff options
| author | Bryan Galdrikian <[email protected]> | 2019-06-10 14:37:48 -0700 |
|---|---|---|
| committer | Bryan Galdrikian <[email protected]> | 2019-06-10 14:37:48 -0700 |
| commit | d9bdbd6020285b81adf98e23c205993e71af6e3f (patch) | |
| tree | a258da4542328bd4ed7392011458826c1d165852 /docs/source_docs | |
| parent | Blast SDK 1.1.5 prerelease #1 (diff) | |
| download | blast-1.1.5_pre2.tar.xz blast-1.1.5_pre2.zip | |
Hierarchy optimization bugfixes and improvementsv1.1.5_pre2
Takes a selection set and only merges those chunks
Diffstat (limited to 'docs/source_docs')
15 files changed, 127 insertions, 98 deletions
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], |