aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/ode-0.9/docs/config_8h-source.html
blob: 28440634cb51f84ec5775570278533baf9267127 (plain)
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Open Dynamics Engine: config.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
  </ul>
</div>
<h1>config.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* This file was autogenerated by Premake */</span>
<a name="l00002"></a>00002 <span class="preprocessor">#ifndef _ODE_CONFIG_H_</span>
<a name="l00003"></a>00003 <span class="preprocessor"></span><span class="preprocessor">#define _ODE_CONFIG_H_</span>
<a name="l00004"></a>00004 <span class="preprocessor"></span>
<a name="l00005"></a>00005 
<a name="l00006"></a>00006 <span class="comment">/******************************************************************</span>
<a name="l00007"></a>00007 <span class="comment"> * CONFIGURATON SETTINGS - you can change these, and then rebuild</span>
<a name="l00008"></a>00008 <span class="comment"> *   ODE to modify the behavior of the library.</span>
<a name="l00009"></a>00009 <span class="comment"> *</span>
<a name="l00010"></a>00010 <span class="comment"> *   dSINGLE/dDOUBLE   - force ODE to use single-precision (float)</span>
<a name="l00011"></a>00011 <span class="comment"> *                       or double-precision (double) for numbers.</span>
<a name="l00012"></a>00012 <span class="comment"> *                       Only one should be defined.</span>
<a name="l00013"></a>00013 <span class="comment"> *</span>
<a name="l00014"></a>00014 <span class="comment"> *   dTRIMESH_ENABLED  - enable/disable trimesh support</span>
<a name="l00015"></a>00015 <span class="comment"> *   dTRIMESH_OPCODE   - use the OPCODE trimesh engine</span>
<a name="l00016"></a>00016 <span class="comment"> *   dTRIMESH_GIMPACT  - use the GIMPACT trimesh engine</span>
<a name="l00017"></a>00017 <span class="comment"> *                       Only one trimesh engine should be enabled.</span>
<a name="l00018"></a>00018 <span class="comment"> *</span>
<a name="l00019"></a>00019 <span class="comment"> *   dUSE_MALLOC_FOR_ALLOCA (experimental)-</span>
<a name="l00020"></a>00020 <span class="comment"> *                       Use malloc() instead of alloca(). Slower,</span>
<a name="l00021"></a>00021 <span class="comment"> *                       but allows for larger systems and more</span>
<a name="l00022"></a>00022 <span class="comment"> *                       graceful out-of-memory handling.</span>
<a name="l00023"></a>00023 <span class="comment"> *</span>
<a name="l00024"></a>00024 <span class="comment"> *   dTRIMESH_OPCODE_USE_NEW_TRIMESH_TRIMESH_COLLIDER (experimental)-</span>
<a name="l00025"></a>00025 <span class="comment"> *                       Use an alternative trimesh-trimesh collider</span>
<a name="l00026"></a>00026 <span class="comment"> *                       which should yield better results.</span>
<a name="l00027"></a>00027 <span class="comment"> *</span>
<a name="l00028"></a>00028 <span class="comment"> ******************************************************************/</span>
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 <span class="preprocessor">#define dSINGLE</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="comment">/* #define dDOUBLE */</span>
<a name="l00032"></a>00032 
<a name="l00033"></a>00033 <span class="preprocessor">#define dTRIMESH_ENABLED 1</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#define dTRIMESH_OPCODE 1</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span>
<a name="l00036"></a>00036 <span class="preprocessor">#define dTRIMESH_OPCODE_USE_NEW_TRIMESH_TRIMESH_COLLIDER 0</span>
<a name="l00037"></a>00037 <span class="preprocessor"></span>
<a name="l00038"></a>00038 <span class="comment">/* #define dUSE_MALLOC_FOR_ALLOCA */</span>
<a name="l00039"></a>00039 
<a name="l00040"></a>00040 
<a name="l00041"></a>00041 <span class="comment">/******************************************************************</span>
<a name="l00042"></a>00042 <span class="comment"> * SYSTEM SETTINGS - you shouldn't need to change these. If you</span>
<a name="l00043"></a>00043 <span class="comment"> *   run into an issue with these settings, please report it to</span>
<a name="l00044"></a>00044 <span class="comment"> *   the ODE bug tracker at:</span>
<a name="l00045"></a>00045 <span class="comment"> *      http://sf.net/tracker/?group_id=24884&amp;atid=382799</span>
<a name="l00046"></a>00046 <span class="comment"> ******************************************************************/</span>
<a name="l00047"></a>00047 
<a name="l00048"></a>00048 <span class="comment">/* Try to identify the platform */</span>
<a name="l00049"></a>00049 <span class="preprocessor">#if defined(_XENON)</span>
<a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">  #define ODE_PLATFORM_XBOX360</span>
<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor">#elif defined(SN_TARGET_PSP_HW)</span>
<a name="l00052"></a>00052 <span class="preprocessor"></span><span class="preprocessor">  #define ODE_PLATFORM_PSP</span>
<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">#elif defined(SN_TARGET_PS3)</span>
<a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor">  #define ODE_PLATFORM_PS3</span>
<a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor">#elif defined(_MSC_VER) || defined(__CYGWIN32__) || defined(__MINGW32__)</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">  #define ODE_PLATFORM_WINDOWS</span>
<a name="l00057"></a>00057 <span class="preprocessor"></span><span class="preprocessor">#elif defined(__linux__)</span>
<a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor">  #define ODE_PLATFORM_LINUX</span>
<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor">#elif defined(__APPLE__) &amp;&amp; defined(__MACH__)</span>
<a name="l00060"></a>00060 <span class="preprocessor"></span><span class="preprocessor">  #define ODE_PLATFORM_OSX</span>
<a name="l00061"></a>00061 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00062"></a>00062 <span class="preprocessor"></span><span class="preprocessor">  #error "Need some help identifying the platform!"</span>
<a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00064"></a>00064 <span class="preprocessor"></span>
<a name="l00065"></a>00065 <span class="comment">/* Additional platform defines used in the code */</span>
<a name="l00066"></a>00066 <span class="preprocessor">#if defined(ODE_PLATFORM_WINDOWS) &amp;&amp; !defined(WIN32)</span>
<a name="l00067"></a>00067 <span class="preprocessor"></span><span class="preprocessor">  #define WIN32</span>
<a name="l00068"></a>00068 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00069"></a>00069 <span class="preprocessor"></span>
<a name="l00070"></a>00070 <span class="preprocessor">#if defined(__CYGWIN32__) || defined(__MINGW32__)</span>
<a name="l00071"></a>00071 <span class="preprocessor"></span><span class="preprocessor">  #define CYGWIN</span>
<a name="l00072"></a>00072 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00073"></a>00073 <span class="preprocessor"></span>
<a name="l00074"></a>00074 <span class="preprocessor">#if defined(ODE_PLATFORM_OSX)</span>
<a name="l00075"></a>00075 <span class="preprocessor"></span><span class="preprocessor">  #define macintosh</span>
<a name="l00076"></a>00076 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00077"></a>00077 <span class="preprocessor"></span>
<a name="l00078"></a>00078 
<a name="l00079"></a>00079 <span class="comment">/* Define a DLL export symbol for those platforms that need it */</span>
<a name="l00080"></a>00080 <span class="preprocessor">#if defined(ODE_PLATFORM_WINDOWS)</span>
<a name="l00081"></a>00081 <span class="preprocessor"></span><span class="preprocessor">  #if defined(ODE_DLL)</span>
<a name="l00082"></a>00082 <span class="preprocessor"></span><span class="preprocessor">    #define ODE_API __declspec(dllexport)</span>
<a name="l00083"></a>00083 <span class="preprocessor"></span><span class="preprocessor">  #elif !defined(ODE_LIB)</span>
<a name="l00084"></a>00084 <span class="preprocessor"></span><span class="preprocessor">    #define ODE_DLL_API __declspec(dllimport)</span>
<a name="l00085"></a>00085 <span class="preprocessor"></span><span class="preprocessor">  #endif</span>
<a name="l00086"></a>00086 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00087"></a>00087 <span class="preprocessor"></span>
<a name="l00088"></a>00088 <span class="preprocessor">#if !defined(ODE_API)</span>
<a name="l00089"></a>00089 <span class="preprocessor"></span><span class="preprocessor">  #define ODE_API</span>
<a name="l00090"></a>00090 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00091"></a>00091 <span class="preprocessor"></span>
<a name="l00092"></a>00092 
<a name="l00093"></a>00093 <span class="comment">/* Pull in the standard headers */</span>
<a name="l00094"></a>00094 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
<a name="l00095"></a>00095 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
<a name="l00096"></a>00096 <span class="preprocessor">#include &lt;stdarg.h&gt;</span>
<a name="l00097"></a>00097 <span class="preprocessor">#include &lt;math.h&gt;</span>
<a name="l00098"></a>00098 <span class="preprocessor">#include &lt;string.h&gt;</span>
<a name="l00099"></a>00099 <span class="preprocessor">#include &lt;float.h&gt;</span>
<a name="l00100"></a>00100 
<a name="l00101"></a>00101 <span class="preprocessor">#if !defined(ODE_PLATFORM_PS3)</span>
<a name="l00102"></a>00102 <span class="preprocessor"></span><span class="preprocessor">  #include &lt;malloc.h&gt;</span>
<a name="l00103"></a>00103 <span class="preprocessor">#endif</span>
<a name="l00104"></a>00104 <span class="preprocessor"></span>
<a name="l00105"></a>00105 <span class="preprocessor">#if !defined(ODE_PLATFORM_WINDOWS)</span>
<a name="l00106"></a>00106 <span class="preprocessor"></span><span class="preprocessor">  #include &lt;alloca.h&gt;</span>
<a name="l00107"></a>00107 <span class="preprocessor">#endif</span>
<a name="l00108"></a>00108 <span class="preprocessor"></span>
<a name="l00109"></a>00109 
<a name="l00110"></a>00110 <span class="comment">/* Visual C does not define these functions */</span>
<a name="l00111"></a>00111 <span class="preprocessor">#if defined(_MSC_VER)</span>
<a name="l00112"></a>00112 <span class="preprocessor"></span><span class="preprocessor">  #define copysignf _copysign</span>
<a name="l00113"></a>00113 <span class="preprocessor"></span><span class="preprocessor">  #define copysign _copysign</span>
<a name="l00114"></a>00114 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00115"></a>00115 <span class="preprocessor"></span>
<a name="l00116"></a>00116 
<a name="l00117"></a>00117 <span class="comment">/* Define a value for infinity */</span>
<a name="l00118"></a>00118 <span class="preprocessor">#if defined(HUGE_VALF)</span>
<a name="l00119"></a>00119 <span class="preprocessor"></span><span class="preprocessor">   #define ODE_INFINITY4 HUGE_VALF</span>
<a name="l00120"></a>00120 <span class="preprocessor"></span><span class="preprocessor">   #define ODE_INFINITY8 HUGE_VAL</span>
<a name="l00121"></a>00121 <span class="preprocessor"></span><span class="preprocessor">#elif defined(FLT_MAX)</span>
<a name="l00122"></a>00122 <span class="preprocessor"></span><span class="preprocessor">   #define ODE_INFINITY4 FLT_MAX</span>
<a name="l00123"></a>00123 <span class="preprocessor"></span><span class="preprocessor">   #define ODE_INFINITY8 DBL_MAX</span>
<a name="l00124"></a>00124 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00125"></a>00125 <span class="preprocessor"></span>   <span class="keyword">static</span> <span class="keyword">union </span>{ <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> __c[4]; <span class="keywordtype">float</span>  __f; }  __ode_huge_valf = {{0,0,0x80,0x7f}};
<a name="l00126"></a>00126    <span class="keyword">static</span> <span class="keyword">union </span>{ <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> __c[8]; <span class="keywordtype">double</span> __d; }  __ode_huge_val  = {{0,0,0,0,0,0,0xf0,0x7f}};
<a name="l00127"></a>00127 <span class="preprocessor">   #define ODE_INFINITY4 (__ode_huge_valf.__f)</span>
<a name="l00128"></a>00128 <span class="preprocessor"></span><span class="preprocessor">   #define ODE_INFINITY8 (__ode_huge_val.__d)</span>
<a name="l00129"></a>00129 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00130"></a>00130 <span class="preprocessor"></span>
<a name="l00131"></a>00131 <span class="preprocessor">#ifdef dSINGLE</span>
<a name="l00132"></a>00132 <span class="preprocessor"></span><span class="preprocessor">   #define dInfinity ODE_INFINITY4</span>
<a name="l00133"></a>00133 <span class="preprocessor"></span><span class="preprocessor">   #define dEpsilon  FLT_EPSILON</span>
<a name="l00134"></a>00134 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00135"></a>00135 <span class="preprocessor"></span><span class="preprocessor">   #define dInfinity ODE_INFINITY8</span>
<a name="l00136"></a>00136 <span class="preprocessor"></span><span class="preprocessor">   #define dEpsilon  DBL_EPSILON</span>
<a name="l00137"></a>00137 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00138"></a>00138 <span class="preprocessor"></span>
<a name="l00139"></a>00139 
<a name="l00140"></a>00140 <span class="comment">/* Well-defined common data types...need to define for 64 bit systems */</span>
<a name="l00141"></a>00141 <span class="preprocessor">#if defined(_M_IA64) || defined(__ia64__) || defined(_M_AMD64) || defined(__x86_64__)</span>
<a name="l00142"></a>00142 <span class="preprocessor"></span><span class="preprocessor">  #define X86_64_SYSTEM   1</span>
<a name="l00143"></a>00143 <span class="preprocessor"></span>  <span class="keyword">typedef</span> <span class="keywordtype">int</span>             int32;
<a name="l00144"></a>00144   <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    uint32;
<a name="l00145"></a>00145   <span class="keyword">typedef</span> <span class="keywordtype">short</span>           int16;
<a name="l00146"></a>00146   <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>  uint16;
<a name="l00147"></a>00147   <span class="keyword">typedef</span> <span class="keywordtype">char</span>            int8;
<a name="l00148"></a>00148   <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>   uint8;
<a name="l00149"></a>00149 <span class="preprocessor">#else</span>
<a name="l00150"></a>00150 <span class="preprocessor"></span>  <span class="keyword">typedef</span> <span class="keywordtype">int</span>             int32;
<a name="l00151"></a>00151   <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    uint32;
<a name="l00152"></a>00152   <span class="keyword">typedef</span> <span class="keywordtype">short</span>           int16;
<a name="l00153"></a>00153   <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>  uint16;
<a name="l00154"></a>00154   <span class="keyword">typedef</span> <span class="keywordtype">char</span>            int8;
<a name="l00155"></a>00155   <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>   uint8;
<a name="l00156"></a>00156 <span class="preprocessor">#endif</span>
<a name="l00157"></a>00157 <span class="preprocessor"></span>
<a name="l00158"></a>00158 <span class="comment">/* An integer type that can be safely cast to a pointer. This definition</span>
<a name="l00159"></a>00159 <span class="comment"> * should be safe even on 64-bit systems */</span>
<a name="l00160"></a>00160 <span class="keyword">typedef</span> <span class="keywordtype">size_t</span> intP;
<a name="l00161"></a>00161 
<a name="l00162"></a>00162 
<a name="l00163"></a>00163 <span class="comment">/* The efficient alignment. most platforms align data structures to some</span>
<a name="l00164"></a>00164 <span class="comment"> * number of bytes, but this is not always the most efficient alignment.</span>
<a name="l00165"></a>00165 <span class="comment"> * for example, many x86 compilers align to 4 bytes, but on a pentium it is</span>
<a name="l00166"></a>00166 <span class="comment"> * important to align doubles to 8 byte boundaries (for speed), and the 4</span>
<a name="l00167"></a>00167 <span class="comment"> * floats in a SIMD register to 16 byte boundaries. many other platforms have</span>
<a name="l00168"></a>00168 <span class="comment"> * similar behavior. setting a larger alignment can waste a (very) small</span>
<a name="l00169"></a>00169 <span class="comment"> * amount of memory. NOTE: this number must be a power of two. */</span>
<a name="l00170"></a>00170 <span class="preprocessor">#define EFFICIENT_ALIGNMENT 16</span>
<a name="l00171"></a>00171 <span class="preprocessor"></span>
<a name="l00172"></a>00172 
<a name="l00173"></a>00173 <span class="comment">/* Define this if your system supports anonymous memory maps (linux does) */</span>
<a name="l00174"></a>00174 <span class="preprocessor">#define MMAP_ANONYMOUS</span>
<a name="l00175"></a>00175 <span class="preprocessor"></span>
<a name="l00176"></a>00176 <span class="preprocessor">#endif</span>
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Fri Oct 12 08:36:51 2007 for Open Dynamics Engine by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.3 </small></address>
</body>
</html>