1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
<html>
<head>
<title>NVIDIA(R) Blast(R) SDK 1.1 Source Reference: NvBlastSupportGraph Struct Reference</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK HREF="NVIDIA.css" REL="stylesheet" TYPE="text/css">
</head>
<body bgcolor="#FFFFFF">
<div id="header">
<hr class="first">
<img alt="" src="blast_logo.png">
<br>
<center>
<a class="qindex" href="main.html">Main Page</a>
<!-- <a class="qindex" href="hierarchy.html">Class Hierarchy</a> //-->
<a class="qindex" href="annotated.html">Class List</a>
<a class="qindex" href="functions.html">Class Members</a>
</center>
<hr class="second">
</div>
<!-- Generated by Doxygen 1.5.8 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main Page</span></a></li>
<li><a href="pages.html"><span>User's Guide</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Class List</span></a></li>
<li><a href="classes.html"><span>Class Index</span></a></li>
<li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>NvBlastSupportGraph Struct Reference</h1><!-- doxytag: class="NvBlastSupportGraph" --><code>#include <<a class="el" href="_nv_blast_types_8h-source.html">NvBlastTypes.h</a>></code>
<p>
<p>
<a href="struct_nv_blast_support_graph-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_nv_blast_support_graph.html#a1f5c4dc460ae44650e955b3ef1f7d57">adjacencyPartition</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_nv_blast_support_graph.html#e659d7f25dd6ae780f8cf14d7bf3925a">adjacentBondIndices</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_nv_blast_support_graph.html#a7c1f66e9cd717b941272e739aed2931">adjacentNodeIndices</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_nv_blast_support_graph.html#6d9d5cbbbc94137fdec50d7b7a20e307">chunkIndices</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="struct_nv_blast_support_graph.html#ac2f6bdd02cc6ed2b30af8f3099d072f">nodeCount</a></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Describes the connectivity between support chunks via bonds.<p>
Vertices in the support graph are termed "nodes," and represent particular chunks (<a class="el" href="struct_nv_blast_chunk.html">NvBlastChunk</a>) in an <a class="el" href="struct_nv_blast_asset.html">NvBlastAsset</a>. The indexing for nodes is not the same as that for chunks. Only some chunks are represented by nodes in the graph, and these chunks are called "support chunks."<p>
Adjacent node indices and adjacent bond indices are stored for each node, and therefore each bond is represented twice in this graph, going from node[i] -> node[j] and from node[j] -> node[i]. Therefore the size of the adjacentNodeIndices and adjacentBondIndices arrays are twice the number of bonds stored in the corresponding <a class="el" href="struct_nv_blast_asset.html">NvBlastAsset</a>.<p>
The graph is used as follows. Given a <a class="el" href="struct_nv_blast_support_graph.html">NvBlastSupportGraph</a> "graph" and node index i, (0 <= i < graph.nodeCount), one may find all adjacent bonds and nodes using:<p>
adj is the lookup value in graph.adjacentNodeIndices and graph.adjacentBondIndices for (uint32_t adj = graph.adjacencyPartition[i]; adj < graph.adjacencyPartition[i+1]; ++adj) { An adjacent node: uint32_t adjacentNodeIndex = graph.adjacentNodeIndices[adj];<p>
The corresponding bond (that connects node index i with node indexed adjacentNodeIndex: uint32_t adjacentBondIndex = graph.adjacentBondIndices[adj]; }<p>
For a graph node with index i, the corresponding asset chunk index is found using graph.chunkIndices[i]. The reverse mapping (obtaining a graph node index from an asset chunk index) can be done using the<p>
NvBlastAssetGetChunkToGraphNodeMap(asset, logFn)<p>
function. See the documentation for its use. The returned "node index" for a non-support chunk is the invalid value 0xFFFFFFFF. <hr><h2>Member Data Documentation</h2>
<a class="anchor" name="a1f5c4dc460ae44650e955b3ef1f7d57"></a><!-- doxytag: member="NvBlastSupportGraph::adjacencyPartition" ref="a1f5c4dc460ae44650e955b3ef1f7d57" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t* <a class="el" href="struct_nv_blast_support_graph.html#a1f5c4dc460ae44650e955b3ef1f7d57">NvBlastSupportGraph::adjacencyPartition</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Partitions both the adjacentNodeIndices and the adjacentBondIndices arrays into subsets corresponding to each node. The size of this array is nodeCount+1. For 0 <= i < nodeCount, adjacencyPartition[i] is the index of the first element in adjacentNodeIndices (or adjacentBondIndices) for nodes adjacent to the node with index i. adjacencyPartition[nodeCount] is the size of the adjacentNodeIndices and adjacentBondIndices arrays. This allows one to easily count the number of nodes adjacent to a node with index i, using adjacencyPartition[i+1] - adjacencyPartition[i].
</div>
</div><p>
<a class="anchor" name="e659d7f25dd6ae780f8cf14d7bf3925a"></a><!-- doxytag: member="NvBlastSupportGraph::adjacentBondIndices" ref="e659d7f25dd6ae780f8cf14d7bf3925a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t* <a class="el" href="struct_nv_blast_support_graph.html#e659d7f25dd6ae780f8cf14d7bf3925a">NvBlastSupportGraph::adjacentBondIndices</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Array composed of subarrays holding the indices of bonds (<a class="el" href="struct_nv_blast_bond.html">NvBlastBond</a>) for a given node. The subarrays may be accessed through the adjacencyPartition array.
</div>
</div><p>
<a class="anchor" name="a7c1f66e9cd717b941272e739aed2931"></a><!-- doxytag: member="NvBlastSupportGraph::adjacentNodeIndices" ref="a7c1f66e9cd717b941272e739aed2931" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t* <a class="el" href="struct_nv_blast_support_graph.html#a7c1f66e9cd717b941272e739aed2931">NvBlastSupportGraph::adjacentNodeIndices</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Array composed of subarrays holding the indices of nodes adjacent to a given node. The subarrays may be accessed through the adjacencyPartition array.
</div>
</div><p>
<a class="anchor" name="6d9d5cbbbc94137fdec50d7b7a20e307"></a><!-- doxytag: member="NvBlastSupportGraph::chunkIndices" ref="6d9d5cbbbc94137fdec50d7b7a20e307" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t* <a class="el" href="struct_nv_blast_support_graph.html#6d9d5cbbbc94137fdec50d7b7a20e307">NvBlastSupportGraph::chunkIndices</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Indices of chunks represented by the nodes, an array of size nodeCount.
</div>
</div><p>
<a class="anchor" name="ac2f6bdd02cc6ed2b30af8f3099d072f"></a><!-- doxytag: member="NvBlastSupportGraph::nodeCount" ref="ac2f6bdd02cc6ed2b30af8f3099d072f" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t <a class="el" href="struct_nv_blast_support_graph.html#ac2f6bdd02cc6ed2b30af8f3099d072f">NvBlastSupportGraph::nodeCount</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Total number of nodes in the support graph.
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li>sdk/lowlevel/include/<a class="el" href="_nv_blast_types_8h-source.html">NvBlastTypes.h</a></ul>
</div>
<!-- start footer part -->
<div class="footer">
Copyright © 2015-2017 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. <a href="http://www.nvidia.com ">www.nvidia.com</a>
</div>
</body>
</html>
|