2 // label = "libc3\n - lightweight scene graph library - Data Structure Hierarchy";
4 <font point-size="18">libc3</font> -
5 <font color="blue">http://github.com/buserror-uk/libc3</font>
6 - Lightweight C Scene Graph Library - Data Structure Flowchart
8 node [fontsize=24,shape=box];
11 c3context [shape=none, label=<
12 <table border="1" cellborder="0" cellpadding="4">
13 <tr><td>c3context</td></tr>
14 <tr><td color="gray" border="1" align="center"><font point-size="10">
15 Keeps track of a root c3object,<br/>
16 possible multiple views, and also stores <br/>
17 texture pixels and shader programs
21 c3context_view [shape=none, label=<
22 <table border="1" cellborder="0" cellpadding="4">
23 <tr><td>c3context_view</td></tr>
24 <tr><td color="gray" border="1" align="center"><font point-size="10">
25 Keep tracks of a scene point of view.<br/>
26 used for the eye(s), and the light(s)
30 c3camera [shape=none, label=<
31 <table border="1" cellborder="0" cellpadding="4">
32 <tr><td>c3camera</td></tr>
33 <tr><td color="gray" border="1" align="center"><font point-size="10">
34 Keeps an 'eye' point, a 'lookat'<br/>
35 point the related vectors, and a<br/>
40 c3object [shape=none, label=<
41 <table border="1" cellborder="0" cellpadding="4">
42 <tr><td>c3object</td></tr>
43 <tr><td color="gray" border="1" align="center"><font point-size="10">
44 Anchor point that holds optional<br/>
45 transform matrices, other sub-c3objects<br/>
50 c3transform [shape=none, label=<
51 <table border="1" cellborder="0" cellpadding="4">
52 <tr><td>c3transform</td></tr>
53 <tr><td color="gray" border="1" align="center"><font point-size="10">
54 Holds a matrix to be applies to<br/>
55 a c3object and it's descendants
59 c3cairo [shape=none, label=<
60 <table border="1" cellborder="0" cellpadding="4" color="gray">
61 <tr><td>c3cairo</td></tr>
62 <tr><td color="gray" border="1" align="center"><font point-size="10">
63 Maps a Cairo image surface<br/>
64 to a c3texture - Optional.
68 c3texture [shape=none, label=<
69 <table border="1" cellborder="0" cellpadding="4">
70 <tr><td>c3texture</td></tr>
71 <tr><td color="gray" border="1" align="center"><font point-size="10">
72 Provides a geometry to render a<br/>
73 c3pixel (and anonymous texture)
77 c3geometry [shape=none, label=<
78 <table border="1" cellborder="0" cellpadding="4">
79 <tr><td>c3geometry</td></tr>
80 <tr><td color="gray" border="1" align="center"><font point-size="10">
81 Contains the real drawing data, vertices,<br/>
82 tex coordinates, normals and a material.
86 c3pixels [shape=none, label=<
87 <table border="1" cellborder="0" cellpadding="4">
88 <tr><td>c3pixels</td></tr>
89 <tr><td color="gray" border="1" align="center"><font point-size="10">
90 Basic description of a pixmap<br/>
91 to be loaded as a texture.
95 c3program [shape=none, label=<
96 <table border="1" cellborder="0" cellpadding="4">
97 <tr><td>c3program</td></tr>
98 <tr><td color="gray" border="1" align="center"><font point-size="10">
99 Holds a vertex/fragment/... program,<br/>
100 also parses them for uniform/parameters
104 c3color [shape=none, label=<
105 <table border="1" cellborder="0" cellpadding="4">
106 <tr><td>c3color</td></tr>
107 <tr><td color="gray" border="1" align="center"><font point-size="10">
108 Base RGBA float color
112 c3vertex [shape=none, label=<
113 <table border="1" cellborder="0" cellpadding="4">
114 <tr><td>c3vertex</td></tr>
115 <tr><td color="gray" border="1" align="center"><font point-size="10">
116 Array of X,Y,Z coordinates,<br/>
117 with associated buffer object
121 c3normal [shape=none, label=<
122 <table border="1" cellborder="0" cellpadding="4">
123 <tr><td>c3normal</td></tr>
124 <tr><td color="gray" border="1" align="center"><font point-size="10">
125 Array of normals with<br/>
126 associated buffer object
130 c3tex [shape=none, label=<
131 <table border="1" cellborder="0" cellpadding="4">
132 <tr><td>c3tex</td></tr>
133 <tr><td color="gray" border="1" align="center"><font point-size="10">
134 Array of texture coordinates<br/>
135 with associated buffer object
139 c3indice [shape=none, label=<
140 <table border="1" cellborder="0" cellpadding="4">
141 <tr><td>c3indice</td></tr>
142 <tr><td color="gray" border="1" align="center"><font point-size="10">
143 Array of indices into<br/>
148 c3mat [shape=none, label=<
149 <table border="1" cellborder="0" cellpadding="4">
150 <tr><td>c3mat</td></tr>
151 <tr><td color="gray" border="1" align="center"><font point-size="10">
152 Geometry material related data<br/>
153 ie color, texture, program.
157 c3stl [shape=none, label=<
158 <table border="1" cellborder="0" cellpadding="4">
159 <tr><td>c3stl</td></tr>
160 <tr><td color="gray" border="1" align="center"><font point-size="10">
161 Loads ASCII STL model files<br/>
162 and generates corresponding c3object.
166 c3lines [shape=none, label=<
167 <table border="1" cellborder="0" cellpadding="4">
168 <tr><td>c3lines</td></tr>
169 <tr><td color="gray" border="1" align="center"><font point-size="10">
170 Converts segments into a textured<br/>
171 triangle mesh for wide, <br/>
176 c3sphere [shape=none, label=<
177 <table border="1" cellborder="0" cellpadding="4">
178 <tr><td>c3sphere</td></tr>
179 <tr><td color="gray" border="1" align="center"><font point-size="10">
180 Creares geometry for a sphere<br/>
181 with texture coordinaes&normals
185 c3context -> c3context_view;
186 c3context -> c3object [style=bold];
187 c3context -> c3pixels [style=dashed];
188 c3context -> c3program [style=dashed];
190 c3context_view -> c3camera;
192 { rank = same; c3object; c3stl; }
193 { rank = same; c3geometry; c3lines; c3sphere; }
194 c3stl -> c3object [ weight=0.1, color="gray" ];
195 c3lines -> c3geometry [ weight=0.1, color="gray" ];
196 c3sphere -> c3geometry [ weight=0.1, color="gray" ];
198 c3texture -> c3geometry;
199 { node [style=dashed]; c3cairo; }
200 c3cairo -> c3texture;
202 c3object -> c3geometry [style=bold];
203 c3object -> c3texture;
205 c3object -> c3transform;
207 c3object -> c3object;
209 c3geometry -> c3vertex;
210 c3geometry -> c3normal ;
213 c3geometry -> c3indice;
219 c3texture -> c3pixels;