File: openctm_8h_source.html

package info (click to toggle)
openctm 1.0.3%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 1,692 kB
  • sloc: ansic: 9,241; cpp: 5,199; python: 735; makefile: 30
file content (287 lines) | stat: -rw-r--r-- 43,816 bytes parent folder | download | duplicates (4)
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>OpenCTM: openctm.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
    </ul>
  </div>
<h1>openctm.h</h1><a href="openctm_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//-----------------------------------------------------------------------------</span>
<a name="l00002"></a>00002 <span class="comment">// Product:     OpenCTM</span>
<a name="l00003"></a>00003 <span class="comment">// File:        openctm.h</span>
<a name="l00004"></a>00004 <span class="comment">// Description: OpenCTM API definition.</span>
<a name="l00005"></a>00005 <span class="comment">//-----------------------------------------------------------------------------</span>
<a name="l00006"></a>00006 <span class="comment">// Copyright (c) 2009-2010 Marcus Geelnard</span>
<a name="l00007"></a>00007 <span class="comment">//</span>
<a name="l00008"></a>00008 <span class="comment">// This software is provided &apos;as-is&apos;, without any express or implied</span>
<a name="l00009"></a>00009 <span class="comment">// warranty. In no event will the authors be held liable for any damages</span>
<a name="l00010"></a>00010 <span class="comment">// arising from the use of this software.</span>
<a name="l00011"></a>00011 <span class="comment">//</span>
<a name="l00012"></a>00012 <span class="comment">// Permission is granted to anyone to use this software for any purpose,</span>
<a name="l00013"></a>00013 <span class="comment">// including commercial applications, and to alter it and redistribute it</span>
<a name="l00014"></a>00014 <span class="comment">// freely, subject to the following restrictions:</span>
<a name="l00015"></a>00015 <span class="comment">//</span>
<a name="l00016"></a>00016 <span class="comment">//     1. The origin of this software must not be misrepresented; you must not</span>
<a name="l00017"></a>00017 <span class="comment">//     claim that you wrote the original software. If you use this software</span>
<a name="l00018"></a>00018 <span class="comment">//     in a product, an acknowledgment in the product documentation would be</span>
<a name="l00019"></a>00019 <span class="comment">//     appreciated but is not required.</span>
<a name="l00020"></a>00020 <span class="comment">//</span>
<a name="l00021"></a>00021 <span class="comment">//     2. Altered source versions must be plainly marked as such, and must not</span>
<a name="l00022"></a>00022 <span class="comment">//     be misrepresented as being the original software.</span>
<a name="l00023"></a>00023 <span class="comment">//</span>
<a name="l00024"></a>00024 <span class="comment">//     3. This notice may not be removed or altered from any source</span>
<a name="l00025"></a>00025 <span class="comment">//     distribution.</span>
<a name="l00026"></a>00026 <span class="comment">//-----------------------------------------------------------------------------</span>
<a name="l00027"></a>00027 
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef __OPENCTM_H_</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define __OPENCTM_H_</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span>
<a name="l00117"></a>00117 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00118"></a>00118 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
<a name="l00119"></a>00119 <span class="preprocessor">#endif</span>
<a name="l00120"></a>00120 <span class="preprocessor"></span>
<a name="l00121"></a>00121 
<a name="l00122"></a>00122 <span class="comment">// Declare calling conventions etc.</span>
<a name="l00123"></a>00123 <span class="preprocessor">#if defined(WIN32) || defined(_WIN32)</span>
<a name="l00124"></a>00124 <span class="preprocessor"></span>  <span class="comment">// Windows</span>
<a name="l00125"></a>00125 <span class="preprocessor">  #if defined(OPENCTM_STATIC)</span>
<a name="l00126"></a>00126 <span class="preprocessor"></span><span class="preprocessor">    #define CTMEXPORT</span>
<a name="l00127"></a>00127 <span class="preprocessor"></span><span class="preprocessor">  #else</span>
<a name="l00128"></a>00128 <span class="preprocessor"></span><span class="preprocessor">    #if defined(OPENCTM_BUILD)</span>
<a name="l00129"></a>00129 <span class="preprocessor"></span><span class="preprocessor">      #define CTMEXPORT __declspec(dllexport)</span>
<a name="l00130"></a>00130 <span class="preprocessor"></span><span class="preprocessor">    #else</span>
<a name="l00131"></a>00131 <span class="preprocessor"></span><span class="preprocessor">      #define CTMEXPORT __declspec(dllimport)</span>
<a name="l00132"></a>00132 <span class="preprocessor"></span><span class="preprocessor">    #endif</span>
<a name="l00133"></a>00133 <span class="preprocessor"></span><span class="preprocessor">  #endif</span>
<a name="l00134"></a>00134 <span class="preprocessor"></span><span class="preprocessor">  #if defined(__MINGW32__)</span>
<a name="l00135"></a>00135 <span class="preprocessor"></span><span class="preprocessor">    #define CTMCALL __attribute__ ((__stdcall__))</span>
<a name="l00136"></a>00136 <span class="preprocessor"></span><span class="preprocessor">  #elif (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) &amp;&amp; !defined(MIDL_PASS)</span>
<a name="l00137"></a>00137 <span class="preprocessor"></span><span class="preprocessor">    #define CTMCALL __stdcall</span>
<a name="l00138"></a>00138 <span class="preprocessor"></span><span class="preprocessor">  #else</span>
<a name="l00139"></a>00139 <span class="preprocessor"></span><span class="preprocessor">    #define CTMCALL</span>
<a name="l00140"></a>00140 <span class="preprocessor"></span><span class="preprocessor">  #endif</span>
<a name="l00141"></a>00141 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00142"></a>00142 <span class="preprocessor"></span>  <span class="comment">// Unix</span>
<a name="l00143"></a>00143 <span class="preprocessor">  #if !defined(OPENCTM_STATIC) &amp;&amp; !defined(OPENCTM_BUILD)</span>
<a name="l00144"></a>00144 <span class="preprocessor"></span><span class="preprocessor">    #define CTMEXPORT extern</span>
<a name="l00145"></a>00145 <span class="preprocessor"></span><span class="preprocessor">  #else</span>
<a name="l00146"></a>00146 <span class="preprocessor"></span><span class="preprocessor">    #if defined(OPENCTM_BUILD) &amp;&amp; defined(__GNUC__) &amp;&amp; (__GNUC__ &gt;= 4)</span>
<a name="l00147"></a>00147 <span class="preprocessor"></span><span class="preprocessor">      #define CTMEXPORT __attribute__ ((visibility(&quot;default&quot;)))</span>
<a name="l00148"></a>00148 <span class="preprocessor"></span><span class="preprocessor">    #else</span>
<a name="l00149"></a>00149 <span class="preprocessor"></span><span class="preprocessor">      #define CTMEXPORT</span>
<a name="l00150"></a>00150 <span class="preprocessor"></span><span class="preprocessor">    #endif</span>
<a name="l00151"></a>00151 <span class="preprocessor"></span><span class="preprocessor">  #endif</span>
<a name="l00152"></a>00152 <span class="preprocessor"></span><span class="preprocessor">  #define CTMCALL</span>
<a name="l00153"></a>00153 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00154"></a>00154 <span class="preprocessor"></span>
<a name="l00155"></a>00155 
<a name="l00156"></a>00156 <span class="comment">// Get system specific type definitions for sized integers. We use the C99</span>
<a name="l00157"></a>00157 <span class="comment">// standard stdint.h for this.</span>
<a name="l00158"></a>00158 <span class="preprocessor">#ifdef _MSC_VER</span>
<a name="l00159"></a>00159 <span class="preprocessor"></span>  <span class="comment">// MS Visual Studio does not support C99</span>
<a name="l00160"></a>00160   <span class="keyword">typedef</span> <span class="keywordtype">int</span> int32_t;
<a name="l00161"></a>00161   <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> uint32_t;
<a name="l00162"></a>00162 <span class="preprocessor">#else</span>
<a name="l00163"></a>00163 <span class="preprocessor"></span><span class="preprocessor">  #include &lt;stdint.h&gt;</span>
<a name="l00164"></a>00164 <span class="preprocessor">#endif</span>
<a name="l00165"></a>00165 <span class="preprocessor"></span>
<a name="l00166"></a>00166 
<a name="l00168"></a><a class="code" href="openctm_8h.html#a909fd88252d88bd84095aba982900e7f">00168</a> <span class="preprocessor">#define CTM_API_VERSION 0x00000100</span>
<a name="l00169"></a>00169 <span class="preprocessor"></span>
<a name="l00171"></a><a class="code" href="openctm_8h.html#a2004bfa9db3f5d6e07411d1bea3a573a">00171</a> <span class="preprocessor">#define CTM_TRUE 1</span>
<a name="l00172"></a>00172 <span class="preprocessor"></span>
<a name="l00174"></a><a class="code" href="openctm_8h.html#aeab5b58ecb1449e95f577b59e4803314">00174</a> <span class="preprocessor">#define CTM_FALSE 0</span>
<a name="l00175"></a>00175 <span class="preprocessor"></span>
<a name="l00177"></a><a class="code" href="openctm_8h.html#af8b7eeaefac4d6ad39d11c3f7be8afa2">00177</a> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="openctm_8h.html#af8b7eeaefac4d6ad39d11c3f7be8afa2" title="Single precision floating point type (IEEE 754 32 bits wide).">CTMfloat</a>;
<a name="l00178"></a>00178 
<a name="l00180"></a><a class="code" href="openctm_8h.html#a4c1dde73baa8f68242cc922cf85f2096">00180</a> <span class="keyword">typedef</span> int32_t <a class="code" href="openctm_8h.html#a4c1dde73baa8f68242cc922cf85f2096" title="Signed integer (32 bits wide).">CTMint</a>;
<a name="l00181"></a>00181 
<a name="l00183"></a><a class="code" href="openctm_8h.html#ac5ea1beb64d415c241f2abf35eeb6c48">00183</a> <span class="keyword">typedef</span> uint32_t <a class="code" href="openctm_8h.html#ac5ea1beb64d415c241f2abf35eeb6c48" title="Unsigned integer (32 bits wide).">CTMuint</a>;
<a name="l00184"></a>00184 
<a name="l00186"></a><a class="code" href="openctm_8h.html#a7062b4f48dc6d1b736ac93955acf3888">00186</a> <span class="keyword">typedef</span> <span class="keywordtype">void</span> * <a class="code" href="openctm_8h.html#a7062b4f48dc6d1b736ac93955acf3888" title="OpenCTM context handle.">CTMcontext</a>;
<a name="l00187"></a>00187 
<a name="l00192"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625">00192</a> <span class="keyword">typedef</span> <span class="keyword">enum</span> {
<a name="l00193"></a>00193   <span class="comment">// Error codes (see ctmGetError())</span>
<a name="l00194"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625abf60b318c307c84b240d374d07ff6bf5">00194</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625abf60b318c307c84b240d374d07ff6bf5" title="No error has occured (everything is OK).">CTM_NONE</a>              = 0x0000, 
<a name="l00195"></a>00195 
<a name="l00196"></a>00196 
<a name="l00197"></a>00197 
<a name="l00198"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ae8246d2a7b2e7d3cced72f7460e9d5d1">00198</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ae8246d2a7b2e7d3cced72f7460e9d5d1" title="The OpenCTM context was invalid (e.g. NULL).">CTM_INVALID_CONTEXT</a>   = 0x0001, 
<a name="l00199"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625abdfdbc82040b419dbc9906baed538704">00199</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625abdfdbc82040b419dbc9906baed538704" title="A function argument was invalid.">CTM_INVALID_ARGUMENT</a>  = 0x0002, 
<a name="l00200"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625af38eb5e0bd49e7321c4ebd2d1a0a580b">00200</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625af38eb5e0bd49e7321c4ebd2d1a0a580b" title="The operation is not allowed.">CTM_INVALID_OPERATION</a> = 0x0003, 
<a name="l00201"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a245e25dc7e5bfd88c03d5c52eebfdf29">00201</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a245e25dc7e5bfd88c03d5c52eebfdf29" title="The mesh was invalid (e.g. no vertices).">CTM_INVALID_MESH</a>      = 0x0004, 
<a name="l00202"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a43202555b9cfdecf32bdf7b9807056f7">00202</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a43202555b9cfdecf32bdf7b9807056f7" title="Not enough memory to proceed.">CTM_OUT_OF_MEMORY</a>     = 0x0005, 
<a name="l00203"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a0280fc2383ee4d5c613744c9c68cdafb">00203</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a0280fc2383ee4d5c613744c9c68cdafb" title="File I/O error.">CTM_FILE_ERROR</a>        = 0x0006, 
<a name="l00204"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a607254e23f6dd9ea46f9ed3b01331844">00204</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a607254e23f6dd9ea46f9ed3b01331844" title="File format error (e.g. unrecognized format or corrupted file).">CTM_BAD_FORMAT</a>        = 0x0007, 
<a name="l00205"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a5492e61ffa160ff720c89221660dbbf8">00205</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a5492e61ffa160ff720c89221660dbbf8" title="An error occured within the LZMA library.">CTM_LZMA_ERROR</a>        = 0x0008, 
<a name="l00206"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a97d27f42581866aa1413999b6f448191">00206</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a97d27f42581866aa1413999b6f448191" title="An internal error occured (indicates a bug).">CTM_INTERNAL_ERROR</a>    = 0x0009, 
<a name="l00207"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ad3e0a5ee55e26e23f43b28dd61e72f16">00207</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ad3e0a5ee55e26e23f43b28dd61e72f16" title="Unsupported file format version.">CTM_UNSUPPORTED_FORMAT_VERSION</a> = 0x000A, 
<a name="l00208"></a>00208 
<a name="l00209"></a>00209   <span class="comment">// OpenCTM context modes</span>
<a name="l00210"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a98b76ddee5519228fb8864e7929e5f00">00210</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a98b76ddee5519228fb8864e7929e5f00" title="The OpenCTM context will be used for importing data.">CTM_IMPORT</a>            = 0x0101, 
<a name="l00211"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a4d156b19083ce49d4b8a6da287d6f5d3">00211</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a4d156b19083ce49d4b8a6da287d6f5d3" title="The OpenCTM context will be used for exporting data.">CTM_EXPORT</a>            = 0x0102, 
<a name="l00212"></a>00212 
<a name="l00213"></a>00213   <span class="comment">// Compression methods</span>
<a name="l00214"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a4ba5bf3da62c7292644723b227a5cce8">00214</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a4ba5bf3da62c7292644723b227a5cce8" title="Just store the raw data.">CTM_METHOD_RAW</a>        = 0x0201, 
<a name="l00215"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625aeb7ddc6f328ec73944a2fcb20472341b">00215</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625aeb7ddc6f328ec73944a2fcb20472341b" title="Lossless compression (floating point).">CTM_METHOD_MG1</a>        = 0x0202, 
<a name="l00216"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ae52e3f40682c9e56be588a4661f8dc0c">00216</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ae52e3f40682c9e56be588a4661f8dc0c" title="Lossless compression (fixed point).">CTM_METHOD_MG2</a>        = 0x0203, 
<a name="l00217"></a>00217 
<a name="l00218"></a>00218   <span class="comment">// Context queries</span>
<a name="l00219"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625af7d1a8887b82dc448f9d774e8874d98a">00219</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625af7d1a8887b82dc448f9d774e8874d98a" title="Number of vertices in the mesh (integer).">CTM_VERTEX_COUNT</a>      = 0x0301, 
<a name="l00220"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a6d97b09d2d5da53c7c3bad5c5f30e51d">00220</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a6d97b09d2d5da53c7c3bad5c5f30e51d" title="Number of triangles in the mesh (integer).">CTM_TRIANGLE_COUNT</a>    = 0x0302, 
<a name="l00221"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625adcbea5e453256bbbb3dc369e9f9fd872">00221</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625adcbea5e453256bbbb3dc369e9f9fd872" title="CTM_TRUE if the mesh has normals (integer).">CTM_HAS_NORMALS</a>       = 0x0303, 
<a name="l00222"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a87b3013d9d9c151ca9eae64e74f981bd">00222</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a87b3013d9d9c151ca9eae64e74f981bd" title="Number of UV coordinate sets (integer).">CTM_UV_MAP_COUNT</a>      = 0x0304, 
<a name="l00223"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625aa0b3c108352ad1dbdb60ca6f57e921a4">00223</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625aa0b3c108352ad1dbdb60ca6f57e921a4" title="Number of custom attribute sets (integer).">CTM_ATTRIB_MAP_COUNT</a>  = 0x0305, 
<a name="l00224"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a7b32280d8591167a42904920934b8f51">00224</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a7b32280d8591167a42904920934b8f51" title="Vertex precision - for MG2 (float).">CTM_VERTEX_PRECISION</a>  = 0x0306, 
<a name="l00225"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ae63ebc86a051e3f43492eb051eab9e97">00225</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ae63ebc86a051e3f43492eb051eab9e97" title="Normal precision - for MG2 (float).">CTM_NORMAL_PRECISION</a>  = 0x0307, 
<a name="l00226"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ae25493f9fd4ddc3e06043078a8c23e20">00226</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ae25493f9fd4ddc3e06043078a8c23e20" title="Compression method (integer).">CTM_COMPRESSION_METHOD</a> = 0x0308, 
<a name="l00227"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625aa4b62d1802dd335fd7bfee2ed25c4c4d">00227</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625aa4b62d1802dd335fd7bfee2ed25c4c4d" title="File comment (string).">CTM_FILE_COMMENT</a>      = 0x0309, 
<a name="l00228"></a>00228 
<a name="l00229"></a>00229   <span class="comment">// UV/attribute map queries</span>
<a name="l00230"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a3e3d28e72ec322ba63f94d77551c5ede">00230</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a3e3d28e72ec322ba63f94d77551c5ede" title="Unique name (UV/attrib map string).">CTM_NAME</a>              = 0x0501, 
<a name="l00231"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ae9adc5919726099c90ea9ba732e85b6c">00231</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ae9adc5919726099c90ea9ba732e85b6c" title="File name reference (UV map string).">CTM_FILE_NAME</a>         = 0x0502, 
<a name="l00232"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ada5784c8eb3143ee996d31214d46b0d4">00232</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ada5784c8eb3143ee996d31214d46b0d4" title="Value precision (UV/attrib map float).">CTM_PRECISION</a>         = 0x0503, 
<a name="l00233"></a>00233 
<a name="l00234"></a>00234   <span class="comment">// Array queries</span>
<a name="l00235"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625aa7ec8fe7061e8a336530ee0448073206">00235</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625aa7ec8fe7061e8a336530ee0448073206" title="Triangle indices (integer array).">CTM_INDICES</a>           = 0x0601, 
<a name="l00236"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625af7e80243674806368e9e29e9e2bf8d55">00236</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625af7e80243674806368e9e29e9e2bf8d55" title="Vertex point coordinates (float array).">CTM_VERTICES</a>          = 0x0602, 
<a name="l00237"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a02185a711fd216acee2171e46653855e">00237</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a02185a711fd216acee2171e46653855e" title="Per vertex normals (float array).">CTM_NORMALS</a>           = 0x0603, 
<a name="l00238"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a9096ee63af274788fe101c75c08b49f6">00238</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a9096ee63af274788fe101c75c08b49f6" title="Per vertex UV map 1 (float array).">CTM_UV_MAP_1</a>          = 0x0700, 
<a name="l00239"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a104b93d0bfa7344406c68a45da3f616f">00239</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a104b93d0bfa7344406c68a45da3f616f" title="Per vertex UV map 2 (float array).">CTM_UV_MAP_2</a>          = 0x0701, 
<a name="l00240"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a2543bac2bdc3931d37e0465f761060be">00240</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a2543bac2bdc3931d37e0465f761060be" title="Per vertex UV map 3 (float array).">CTM_UV_MAP_3</a>          = 0x0702, 
<a name="l00241"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625acc9b387f30b02c370decac35a253b7a0">00241</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625acc9b387f30b02c370decac35a253b7a0" title="Per vertex UV map 4 (float array).">CTM_UV_MAP_4</a>          = 0x0703, 
<a name="l00242"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ad96f31e47775ac51ca393b19525cd8cc">00242</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ad96f31e47775ac51ca393b19525cd8cc" title="Per vertex UV map 5 (float array).">CTM_UV_MAP_5</a>          = 0x0704, 
<a name="l00243"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625acda599be9fff226924d075c3b09dad7b">00243</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625acda599be9fff226924d075c3b09dad7b" title="Per vertex UV map 6 (float array).">CTM_UV_MAP_6</a>          = 0x0705, 
<a name="l00244"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a4ca0e7ec8e66c772f449be1f4749414b">00244</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a4ca0e7ec8e66c772f449be1f4749414b" title="Per vertex UV map 7 (float array).">CTM_UV_MAP_7</a>          = 0x0706, 
<a name="l00245"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625aeae61f9c3e9cded4a7f8059d0acc41a3">00245</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625aeae61f9c3e9cded4a7f8059d0acc41a3" title="Per vertex UV map 8 (float array).">CTM_UV_MAP_8</a>          = 0x0707, 
<a name="l00246"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a37c9dffce89ec51e9767e1f9a38e51bd">00246</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a37c9dffce89ec51e9767e1f9a38e51bd" title="Per vertex attribute map 1 (float array).">CTM_ATTRIB_MAP_1</a>      = 0x0800, 
<a name="l00247"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625adc4a982b27a02157edff941636063827">00247</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625adc4a982b27a02157edff941636063827" title="Per vertex attribute map 2 (float array).">CTM_ATTRIB_MAP_2</a>      = 0x0801, 
<a name="l00248"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ad991095653802528246723d3ed82b532">00248</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625ad991095653802528246723d3ed82b532" title="Per vertex attribute map 3 (float array).">CTM_ATTRIB_MAP_3</a>      = 0x0802, 
<a name="l00249"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a0f79e8024cea635758c0cf51b24853c6">00249</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a0f79e8024cea635758c0cf51b24853c6" title="Per vertex attribute map 4 (float array).">CTM_ATTRIB_MAP_4</a>      = 0x0803, 
<a name="l00250"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a224d8bba1ab7b7de0ea4ef6ac4b5dc7e">00250</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a224d8bba1ab7b7de0ea4ef6ac4b5dc7e" title="Per vertex attribute map 5 (float array).">CTM_ATTRIB_MAP_5</a>      = 0x0804, 
<a name="l00251"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a2ee3e625af252ef1771136c144cda838">00251</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a2ee3e625af252ef1771136c144cda838" title="Per vertex attribute map 6 (float array).">CTM_ATTRIB_MAP_6</a>      = 0x0805, 
<a name="l00252"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a99d3f4511629bb006cfcfa12b4db323a">00252</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a99d3f4511629bb006cfcfa12b4db323a" title="Per vertex attribute map 7 (float array).">CTM_ATTRIB_MAP_7</a>      = 0x0806, 
<a name="l00253"></a><a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a2d749b6c2b0a1384c28ad19f491db31e">00253</a>   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625a2d749b6c2b0a1384c28ad19f491db31e" title="Per vertex attribute map 8 (float array).">CTM_ATTRIB_MAP_8</a>      = 0x0807  
<a name="l00254"></a>00254 } <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a>;
<a name="l00255"></a>00255 
<a name="l00264"></a><a class="code" href="openctm_8h.html#ad2fb8fd3b5997a557d8aba2385ed849b">00264</a> <span class="keyword">typedef</span> <a class="code" href="openctm_8h.html#ac5ea1beb64d415c241f2abf35eeb6c48" title="Unsigned integer (32 bits wide).">CTMuint</a> (CTMCALL * <a class="code" href="openctm_8h.html#ad2fb8fd3b5997a557d8aba2385ed849b" title="Stream read() function pointer.">CTMreadfn</a>)(<span class="keywordtype">void</span> * aBuf, CTMuint aCount, <span class="keywordtype">void</span> * aUserData);
<a name="l00265"></a>00265 
<a name="l00273"></a><a class="code" href="openctm_8h.html#a2428bc1bf2cf2e1af05d132dca892f5b">00273</a> <span class="keyword">typedef</span> <a class="code" href="openctm_8h.html#ac5ea1beb64d415c241f2abf35eeb6c48" title="Unsigned integer (32 bits wide).">CTMuint</a> (CTMCALL * <a class="code" href="openctm_8h.html#a2428bc1bf2cf2e1af05d132dca892f5b" title="Stream write() function pointer.">CTMwritefn</a>)(<span class="keyword">const</span> <span class="keywordtype">void</span> * aBuf, CTMuint aCount, <span class="keywordtype">void</span> * aUserData);
<a name="l00274"></a>00274 
<a name="l00281"></a>00281 CTMEXPORT CTMcontext CTMCALL <a class="code" href="openctm_8h.html#a3ca20da713005b0c6afb9b5f21640837" title="Create a new OpenCTM context.">ctmNewContext</a>(<a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aMode);
<a name="l00282"></a>00282 
<a name="l00287"></a>00287 CTMEXPORT <span class="keywordtype">void</span> CTMCALL <a class="code" href="openctm_8h.html#aeb16fd3054a19415be90de4968b21a3a" title="Free an OpenCTM context.">ctmFreeContext</a>(CTMcontext aContext);
<a name="l00288"></a>00288 
<a name="l00297"></a>00297 CTMEXPORT <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> CTMCALL <a class="code" href="openctm_8h.html#a2bbaed33a6809affc4a61469f6676bdf" title="Returns the latest error.">ctmGetError</a>(CTMcontext aContext);
<a name="l00298"></a>00298 
<a name="l00305"></a>00305 CTMEXPORT <span class="keyword">const</span> <span class="keywordtype">char</span> * CTMCALL <a class="code" href="openctm_8h.html#a3071b834da6a9cdd684ec733de70cbf2" title="Converts an OpenCTM error code to a zero-terminated string.">ctmErrorString</a>(<a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aError);
<a name="l00306"></a>00306 
<a name="l00314"></a>00314 CTMEXPORT CTMuint CTMCALL <a class="code" href="openctm_8h.html#a4012ac28aa780819e40ee118d7c6578e" title="Get information about an OpenCTM context.">ctmGetInteger</a>(CTMcontext aContext, <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aProperty);
<a name="l00315"></a>00315 
<a name="l00323"></a>00323 CTMEXPORT CTMfloat CTMCALL <a class="code" href="openctm_8h.html#abe7389b3a396a86a3a1c5d5c6f68183d" title="Get information about an OpenCTM context.">ctmGetFloat</a>(CTMcontext aContext, <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aProperty);
<a name="l00324"></a>00324 
<a name="l00339"></a>00339 CTMEXPORT <span class="keyword">const</span> CTMuint * CTMCALL <a class="code" href="openctm_8h.html#ae202716acce7a97668654052dc4d0bef" title="Get an integer array from an OpenCTM context.">ctmGetIntegerArray</a>(CTMcontext aContext,
<a name="l00340"></a>00340   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aProperty);
<a name="l00341"></a>00341 
<a name="l00356"></a>00356 CTMEXPORT <span class="keyword">const</span> CTMfloat * CTMCALL <a class="code" href="openctm_8h.html#abdfcfede5d37c75e78cae989dc71e248" title="Get a floating point array from an OpenCTM context.">ctmGetFloatArray</a>(CTMcontext aContext,
<a name="l00357"></a>00357   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aProperty);
<a name="l00358"></a>00358 
<a name="l00366"></a>00366 CTMEXPORT <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> CTMCALL <a class="code" href="openctm_8h.html#a43c2d19741ba53f695a4119e594d6069" title="Get a reference to the named UV map.">ctmGetNamedUVMap</a>(CTMcontext aContext,
<a name="l00367"></a>00367   <span class="keyword">const</span> <span class="keywordtype">char</span> * aName);
<a name="l00368"></a>00368 
<a name="l00382"></a>00382 CTMEXPORT <span class="keyword">const</span> <span class="keywordtype">char</span> * CTMCALL <a class="code" href="openctm_8h.html#a2d689ee3371296b68899d564d5a1f998" title="Get information about a UV map.">ctmGetUVMapString</a>(CTMcontext aContext,
<a name="l00383"></a>00383   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aUVMap, <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aProperty);
<a name="l00384"></a>00384 
<a name="l00393"></a>00393 CTMEXPORT CTMfloat CTMCALL <a class="code" href="openctm_8h.html#afad1b100b9f2fe4bf0dfc36cb39ec615" title="Get information about a UV map.">ctmGetUVMapFloat</a>(CTMcontext aContext,
<a name="l00394"></a>00394   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aUVMap, <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aProperty);
<a name="l00395"></a>00395 
<a name="l00403"></a>00403 CTMEXPORT <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> CTMCALL <a class="code" href="openctm_8h.html#a15692de5d6e93adf8bed8d06d88c905c" title="Get a reference to the named vertex attribute map.">ctmGetNamedAttribMap</a>(CTMcontext aContext,
<a name="l00404"></a>00404   <span class="keyword">const</span> <span class="keywordtype">char</span> * aName);
<a name="l00405"></a>00405 
<a name="l00420"></a>00420 CTMEXPORT <span class="keyword">const</span> <span class="keywordtype">char</span> * CTMCALL <a class="code" href="openctm_8h.html#a841d7c1e0bafd57ee36ccbbc74470b68" title="Get information about a vertex attribute map.">ctmGetAttribMapString</a>(CTMcontext aContext,
<a name="l00421"></a>00421   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aAttribMap, <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aProperty);
<a name="l00422"></a>00422 
<a name="l00432"></a>00432 CTMEXPORT CTMfloat CTMCALL <a class="code" href="openctm_8h.html#a7c297f9b6d486f47596cff184602a65d" title="Get information about a vertex attribute map.">ctmGetAttribMapFloat</a>(CTMcontext aContext,
<a name="l00433"></a>00433   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aAttribMap, <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aProperty);
<a name="l00434"></a>00434 
<a name="l00449"></a>00449 CTMEXPORT <span class="keyword">const</span> <span class="keywordtype">char</span> * CTMCALL <a class="code" href="openctm_8h.html#a4e4269df157eb2d117259c69a331e339" title="Get information about an OpenCTM context.">ctmGetString</a>(CTMcontext aContext,
<a name="l00450"></a>00450   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aProperty);
<a name="l00451"></a>00451 
<a name="l00461"></a>00461 CTMEXPORT <span class="keywordtype">void</span> CTMCALL <a class="code" href="openctm_8h.html#af4ac8e534f59be4edacc39753cf54693" title="Set which compression method to use for the given OpenCTM context.">ctmCompressionMethod</a>(CTMcontext aContext,
<a name="l00462"></a>00462   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aMethod);
<a name="l00463"></a>00463 
<a name="l00471"></a>00471 CTMEXPORT <span class="keywordtype">void</span> CTMCALL <a class="code" href="openctm_8h.html#aa2902c49b904a7557fdd012e303c720e" title="Set which LZMA compression level to use for the given OpenCTM context.">ctmCompressionLevel</a>(CTMcontext aContext,
<a name="l00472"></a>00472   CTMuint aLevel);
<a name="l00473"></a>00473 
<a name="l00481"></a>00481 CTMEXPORT <span class="keywordtype">void</span> CTMCALL <a class="code" href="openctm_8h.html#af4191357f51161a16ff886d18ec848d8" title="Set the vertex coordinate precision (only used by the MG2 compression method).">ctmVertexPrecision</a>(CTMcontext aContext,
<a name="l00482"></a>00482   CTMfloat aPrecision);
<a name="l00483"></a>00483 
<a name="l00496"></a>00496 CTMEXPORT <span class="keywordtype">void</span> CTMCALL <a class="code" href="openctm_8h.html#ade23eb25fa9d5cd1d932bc1203476f27" title="Set the vertex coordinate precision, relative to the mesh dimensions (only used by...">ctmVertexPrecisionRel</a>(CTMcontext aContext,
<a name="l00497"></a>00497   CTMfloat aRelPrecision);
<a name="l00498"></a>00498 
<a name="l00510"></a>00510 CTMEXPORT <span class="keywordtype">void</span> CTMCALL <a class="code" href="openctm_8h.html#a07d8b47a0e642d0d8c77cf18e8d354a5" title="Set the normal precision (only used by the MG2 compression method).">ctmNormalPrecision</a>(CTMcontext aContext,
<a name="l00511"></a>00511   CTMfloat aPrecision);
<a name="l00512"></a>00512 
<a name="l00523"></a>00523 CTMEXPORT <span class="keywordtype">void</span> CTMCALL <a class="code" href="openctm_8h.html#ac1a75abbf04281acaff4f6f1f9516039" title="Set the coordinate precision for the specified UV map (only used by the MG2 compression...">ctmUVCoordPrecision</a>(CTMcontext aContext,
<a name="l00524"></a>00524   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aUVMap, CTMfloat aPrecision);
<a name="l00525"></a>00525 
<a name="l00537"></a>00537 CTMEXPORT <span class="keywordtype">void</span> CTMCALL <a class="code" href="openctm_8h.html#a8af7af38bd9340838b43805b81698777" title="Set the attribute value precision for the specified attribute map (only used by the...">ctmAttribPrecision</a>(CTMcontext aContext,
<a name="l00538"></a>00538   <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> aAttribMap, CTMfloat aPrecision);
<a name="l00539"></a>00539 
<a name="l00544"></a>00544 CTMEXPORT <span class="keywordtype">void</span> CTMCALL <a class="code" href="openctm_8h.html#a2225924b06488421ee6b9a8505782a25" title="Set the file comment for the given OpenCTM context.">ctmFileComment</a>(CTMcontext aContext,
<a name="l00545"></a>00545   <span class="keyword">const</span> <span class="keywordtype">char</span> * aFileComment);
<a name="l00546"></a>00546 
<a name="l00562"></a>00562 CTMEXPORT <span class="keywordtype">void</span> CTMCALL <a class="code" href="openctm_8h.html#a1cb648e89121ae67f5a8b9e5a8f41c4d" title="Define a triangle mesh.">ctmDefineMesh</a>(CTMcontext aContext,
<a name="l00563"></a>00563   <span class="keyword">const</span> CTMfloat * aVertices, CTMuint aVertexCount, <span class="keyword">const</span> CTMuint * aIndices,
<a name="l00564"></a>00564   CTMuint aTriangleCount, <span class="keyword">const</span> CTMfloat * aNormals);
<a name="l00565"></a>00565 
<a name="l00583"></a>00583 CTMEXPORT <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> CTMCALL <a class="code" href="openctm_8h.html#a44345560299ac49dfd502d0470f05e0f" title="Define a UV map.">ctmAddUVMap</a>(CTMcontext aContext,
<a name="l00584"></a>00584   <span class="keyword">const</span> CTMfloat * aUVCoords, <span class="keyword">const</span> <span class="keywordtype">char</span> * aName, <span class="keyword">const</span> <span class="keywordtype">char</span> * aFileName);
<a name="l00585"></a>00585 
<a name="l00602"></a>00602 CTMEXPORT <a class="code" href="openctm_8h.html#a0f5efe622ac5146c4505d49860ce5625" title="OpenCTM specific enumerators.">CTMenum</a> CTMCALL <a class="code" href="openctm_8h.html#a920a8fed6bef834db0b241fc5c9bba03" title="Define a custom vertex attribute map.">ctmAddAttribMap</a>(CTMcontext aContext,
<a name="l00603"></a>00603   <span class="keyword">const</span> CTMfloat * aAttribValues, <span class="keyword">const</span> <span class="keywordtype">char</span> * aName);
<a name="l00604"></a>00604 
<a name="l00610"></a>00610 CTMEXPORT <span class="keywordtype">void</span> CTMCALL <a class="code" href="openctm_8h.html#a99a57706d438c5654adbc9646058dc01" title="Load an OpenCTM format file into the context.">ctmLoad</a>(CTMcontext aContext, <span class="keyword">const</span> <span class="keywordtype">char</span> * aFileName);
<a name="l00611"></a>00611 
<a name="l00622"></a>00622 CTMEXPORT <span class="keywordtype">void</span> CTMCALL <a class="code" href="openctm_8h.html#a99699bcbd4cbe0942a22498671af107e" title="Load an OpenCTM format file using a custom stream read function.">ctmLoadCustom</a>(CTMcontext aContext, <a class="code" href="openctm_8h.html#ad2fb8fd3b5997a557d8aba2385ed849b" title="Stream read() function pointer.">CTMreadfn</a> aReadFn,
<a name="l00623"></a>00623   <span class="keywordtype">void</span> * aUserData);
<a name="l00624"></a>00624 
<a name="l00630"></a>00630 CTMEXPORT <span class="keywordtype">void</span> CTMCALL <a class="code" href="openctm_8h.html#acde994008b0b3321bad9f3bbfacb12db" title="Save an OpenCTM format file.">ctmSave</a>(CTMcontext aContext, <span class="keyword">const</span> <span class="keywordtype">char</span> * aFileName);
<a name="l00631"></a>00631 
<a name="l00642"></a>00642 CTMEXPORT <span class="keywordtype">void</span> CTMCALL <a class="code" href="openctm_8h.html#a7e62ca5548a34ed0e126fd4f7b77ef3f" title="Save an OpenCTM format file using a custom stream write function.">ctmSaveCustom</a>(CTMcontext aContext, <a class="code" href="openctm_8h.html#a2428bc1bf2cf2e1af05d132dca892f5b" title="Stream write() function pointer.">CTMwritefn</a> aWriteFn,
<a name="l00643"></a>00643   <span class="keywordtype">void</span> * aUserData);
<a name="l00644"></a>00644 
<a name="l00645"></a>00645 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00646"></a>00646 <span class="preprocessor"></span>}
<a name="l00647"></a>00647 <span class="preprocessor">#endif</span>
<a name="l00648"></a>00648 <span class="preprocessor"></span>
<a name="l00649"></a>00649 
<a name="l00650"></a>00650 <span class="comment">// C++ extensions to the API (to disable C++ extensions, define OPENCTM_NO_CPP)</span>
<a name="l00651"></a>00651 <span class="preprocessor">#if defined(__cplusplus) &amp;&amp; !defined(OPENCTM_NO_CPP)</span>
<a name="l00652"></a>00652 <span class="preprocessor"></span><span class="preprocessor">  #include &quot;<a class="code" href="openctmpp_8h.html">openctmpp.h</a>&quot;</span>
<a name="l00653"></a>00653 <span class="preprocessor">#endif</span>
<a name="l00654"></a>00654 <span class="preprocessor"></span>
<a name="l00655"></a>00655 <span class="preprocessor">#endif // __OPENCTM_H_</span>
</pre></div></div>
<div style="padding: 1em 1em 0.5em 1em; margin: 2em 0 0 0; border-top: 1px solid #84b0c7; color: #808080; text-align: center;">
  <p>Copyright &copy; 2009-2010 Marcus Geelnard &mdash;
  <a href="http://openctm.sourceforge.net" title="OpenCTM home page">openctm.sourceforge.net</a></p>
</div>
</body>
</html>