File: Castle3D.html

package info (click to toggle)
castle-game-engine 5.2.0-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 185,428 kB
  • sloc: pascal: 260,781; cpp: 1,363; objc: 713; makefile: 537; xml: 496; sh: 480; php: 4
file content (470 lines) | stat: -rw-r--r-- 25,654 bytes parent folder | download
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
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<title>Castle Game Engine: Castle3D</title>
<meta name="generator" content="PasDoc 0.13.0">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="StyleSheet" type="text/css" href="pasdoc.css">
</head>
<body>
<table class="container"><tr><td class="navigation">
<h2>Castle Game Engine</h2><p><a href="introduction.html" class="navigation">Introduction</a></p><p><a href="AllUnits.html" class="navigation">Units</a></p><p><a href="ClassHierarchy.html" class="navigation">Class Hierarchy</a></p><p><a href="AllClasses.html" class="navigation">Classes, Interfaces, Objects and Records</a></p><p><a href="AllTypes.html" class="navigation">Types</a></p><p><a href="AllVariables.html" class="navigation">Variables</a></p><p><a href="AllConstants.html" class="navigation">Constants</a></p><p><a href="AllFunctions.html" class="navigation">Functions and Procedures</a></p><p><a href="AllIdentifiers.html" class="navigation">Identifiers</a></p></td><td class="content">
<h1 class="unit">Unit Castle3D</h1>
<table class="sections wide_list">
<tr>
<td><a class="section" href="#PasDoc-Description">Description</a></td><td><a class="section" href="#PasDoc-Uses">Uses</a></td><td><a class="section" href="#PasDoc-Classes">Classes, Interfaces, Objects and Records</a></td><td><a class="section" href="#PasDoc-FuncsProcs">Functions and Procedures</a></td><td><a class="section" href="#PasDoc-Types">Types</a></td><td><a class="section" href="#PasDoc-Constants">Constants</a></td><td><a class="section" href="#PasDoc-Variables">Variables</a></td></tr></table>
<a name="PasDoc-Description"></a><h2 class="description">Description</h2>
<p>
Base 3D objects (<a class="normal" href="Castle3D.T3D.html">T3D</a>, <a class="normal" href="Castle3D.T3DList.html">T3DList</a>, <a class="normal" href="Castle3D.T3DTransform.html">T3DTransform</a>, <a class="normal" href="Castle3D.T3DOrient.html">T3DOrient</a>, <a class="normal" href="Castle3D.T3DMoving.html">T3DMoving</a>).</p>
<a name="PasDoc-Uses"></a><h2 class="uses">Uses</h2>
<ul class="useslist"><li>SysUtils</li><li>Classes</li><li>Math</li><li><a  href="CastleVectors.html">CastleVectors</a></li><li><a  href="CastleFrustum.html">CastleFrustum</a></li><li><a  href="CastleBoxes.html">CastleBoxes</a></li><li><a  href="CastleClassUtils.html">CastleClassUtils</a></li><li><a  href="CastleKeysMouse.html">CastleKeysMouse</a></li><li><a  href="CastleRectangles.html">CastleRectangles</a></li><li><a  href="CastleUtils.html">CastleUtils</a></li><li>FGL</li><li><a  href="CastleGenericLists.html">CastleGenericLists</a></li><li><a  href="CastleTimeUtils.html">CastleTimeUtils</a></li><li><a  href="CastleSoundEngine.html">CastleSoundEngine</a></li><li><a  href="CastleSectors.html">CastleSectors</a></li><li><a  href="CastleCameras.html">CastleCameras</a></li><li><a  href="CastleTriangles.html">CastleTriangles</a></li></ul><h2 class="overview">Overview</h2>
<a name="PasDoc-Classes"></a><h3 class="cio">Classes, Interfaces, Objects and Records</h3>
<table class="classestable wide_list">
<tr class="listheader">
<th class="itemname">Name</th>
<th class="itemdesc">Description</th>
</tr>
<tr class="list">
<td class="itemname">Class&nbsp;<a class="bold" href="Castle3D.TBaseShadowVolumeRenderer.html"><code>TBaseShadowVolumeRenderer</code></a></td>
<td class="itemdesc">Shadow volumes helper, not depending on OpenGL.</td>
</tr>
<tr class="list2">
<td class="itemname">Object&nbsp;<a class="bold" href="Castle3D.TRayCollisionNode.html"><code>TRayCollisionNode</code></a></td>
<td class="itemdesc">Information about ray collision with a single 3D object.</td>
</tr>
<tr class="list">
<td class="itemname">Class&nbsp;<a class="bold" href="Castle3D.TRayCollision.html"><code>TRayCollision</code></a></td>
<td class="itemdesc">Represents a collision with a 3D objects (<a class="normal" href="Castle3D.T3D.html">T3D</a> descendants) tree.</td>
</tr>
<tr class="list2">
<td class="itemname">record&nbsp;<a class="bold" href="Castle3D.TRenderStatistics.html"><code>TRenderStatistics</code></a></td>
<td class="itemdesc">Statistics about what was rendered during last frame.</td>
</tr>
<tr class="list">
<td class="itemname">Class&nbsp;<a class="bold" href="Castle3D.TRenderParams.html"><code>TRenderParams</code></a></td>
<td class="itemdesc">Information that 3D object needs to render.</td>
</tr>
<tr class="list2">
<td class="itemname">Class&nbsp;<a class="bold" href="Castle3D.T3D.html"><code>T3D</code></a></td>
<td class="itemdesc">Base 3D object, that can be managed by <a class="normal" href="CastleSceneManager.TCastleSceneManager.html">TCastleSceneManager</a>.</td>
</tr>
<tr class="list">
<td class="itemname">Class&nbsp;<a class="bold" href="Castle3D.T3DListCore.html"><code>T3DListCore</code></a></td>
<td class="itemdesc">List of 3D objects (<a class="normal" href="Castle3D.T3D.html">T3D</a> instances).</td>
</tr>
<tr class="list2">
<td class="itemname">Class&nbsp;<a class="bold" href="Castle3D.T3DList.html"><code>T3DList</code></a></td>
<td class="itemdesc">List of 3D objects (<a class="normal" href="Castle3D.T3D.html">T3D</a> instances), that can be treated like another, larger 3D object.</td>
</tr>
<tr class="list">
<td class="itemname">Class&nbsp;<a class="bold" href="Castle3D.T3DWorld.html"><code>T3DWorld</code></a></td>
<td class="itemdesc">3D world.</td>
</tr>
<tr class="list2">
<td class="itemname">Class&nbsp;<a class="bold" href="Castle3D.T3DCustomTransform.html"><code>T3DCustomTransform</code></a></td>
<td class="itemdesc">Transform (move, rotate, scale) other <a class="normal" href="Castle3D.T3D.html">T3D</a> objects.</td>
</tr>
<tr class="list">
<td class="itemname">Class&nbsp;<a class="bold" href="Castle3D.T3DTransform.html"><code>T3DTransform</code></a></td>
<td class="itemdesc">Transform (move, rotate, scale) other <a class="normal" href="Castle3D.T3D.html">T3D</a> objects.</td>
</tr>
<tr class="list2">
<td class="itemname">Class&nbsp;<a class="bold" href="Castle3D.T3DOrient.html"><code>T3DOrient</code></a></td>
<td class="itemdesc">Transform other 3D objects by changing their orientation.</td>
</tr>
<tr class="list">
<td class="itemname">Class&nbsp;<a class="bold" href="Castle3D.T3DMoving.html"><code>T3DMoving</code></a></td>
<td class="itemdesc">3D object moving and potentially pushing other 3D objects.</td>
</tr>
<tr class="list2">
<td class="itemname">Class&nbsp;<a class="bold" href="Castle3D.T3DLinearMoving.html"><code>T3DLinearMoving</code></a></td>
<td class="itemdesc">3D moving with constant speed between 2 points.</td>
</tr>
<tr class="list">
<td class="itemname">Class&nbsp;<a class="bold" href="Castle3D.T3DAlive.html"><code>T3DAlive</code></a></td>
<td class="itemdesc">Alive, oriented 3D object.</td>
</tr>
</table>
<a name="PasDoc-FuncsProcs"></a><h3 class="summary">Functions and Procedures</h3>
<table class="summary wide_list">
<tr class="list">
<td class="itemcode"><code>procedure <b><a  href="Castle3D.html#TransformMatricesMult">TransformMatricesMult</a></b>(var Transform, TransformInverse: <a  href="CastleVectors.html#TMatrix4Single">TMatrix4Single</a>; const Center: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const Rotation: <a  href="CastleVectors.html#TVector4Single">TVector4Single</a>; const Scale: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const ScaleOrientation: <a  href="CastleVectors.html#TVector4Single">TVector4Single</a>; const Translation: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>);</code></td>
</tr>
</table>
<a name="PasDoc-Types"></a><h3 class="summary">Types</h3>
<table class="summary wide_list">
<tr class="list">
<td class="itemcode"><code><b><a  href="Castle3D.html#TRenderFromViewFunction">TRenderFromViewFunction</a></b> = procedure of object;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a  href="Castle3D.html#TVisibleChange">TVisibleChange</a></b> = (...);</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a  href="Castle3D.html#TVisibleChanges">TVisibleChanges</a></b> = set of <a  href="Castle3D.html#TVisibleChange">TVisibleChange</a>;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a  href="Castle3D.html#TVisibleChangeEvent">TVisibleChangeEvent</a></b> = procedure (Sender: <a  href="Castle3D.T3D.html">T3D</a>; Changes: <a  href="Castle3D.html#TVisibleChanges">TVisibleChanges</a>) of object;</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a  href="Castle3D.html#TPrepareResourcesOption">TPrepareResourcesOption</a></b> = (...);</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a  href="Castle3D.html#TPrepareResourcesOptions">TPrepareResourcesOptions</a></b> = set of <a  href="Castle3D.html#TPrepareResourcesOption">TPrepareResourcesOption</a>;</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a  href="Castle3D.html#PRayCollisionNode">PRayCollisionNode</a></b> = &circ;<a  href="Castle3D.TRayCollisionNode.html">TRayCollisionNode</a>;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a  href="Castle3D.html#TAbstractLightInstancesList">TAbstractLightInstancesList</a></b> = TFPSList;</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a  href="Castle3D.html#TRenderingPass">TRenderingPass</a></b> = 0..1;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a  href="Castle3D.html#TRemoveType">TRemoveType</a></b> = (...);</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a  href="Castle3D.html#TOrientationType">TOrientationType</a></b> = (...);</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a  href="Castle3D.html#T3DExistsEvent">T3DExistsEvent</a></b> = function(const Item: <a  href="Castle3D.T3D.html">T3D</a>): boolean of object;</code></td>
</tr>
</table>
<a name="PasDoc-Constants"></a><h3 class="summary">Constants</h3>
<table class="summary wide_list">
<tr class="list">
<td class="itemcode"><code><b><a  href="Castle3D.html#MaxSingle">MaxSingle</a></b> = Math.MaxSingle;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a  href="Castle3D.html#DefaultFallMinHeightToDamage">DefaultFallMinHeightToDamage</a></b> = 5.0;</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a  href="Castle3D.html#DefaultFallDamageScaleMin">DefaultFallDamageScaleMin</a></b> = 0.8;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a  href="Castle3D.html#DefaultFallDamageScaleMax">DefaultFallDamageScaleMax</a></b> = 1.2;</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a  href="Castle3D.html#DefaultCreatureFallMinHeightToSound">DefaultCreatureFallMinHeightToSound</a></b> = 1.0;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a  href="Castle3D.html#DefaultPlayerFallMinHeightToSound">DefaultPlayerFallMinHeightToSound</a></b> = 4.0;</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a  href="Castle3D.html#DefaultCreatureFallSoundName">DefaultCreatureFallSoundName</a></b> = 'creature_fall';</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a  href="Castle3D.html#DefaultPlayerFallSoundName">DefaultPlayerFallSoundName</a></b> = 'player_fall';</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a  href="Castle3D.html#DirectionFromOrientation">DirectionFromOrientation</a></b>: array [<a  href="Castle3D.html#TOrientationType">TOrientationType</a>] of <a  href="CastleVectors.html#TVector3Single">TVector3Single</a> =
  ( (0, 0, -1),
    (0, -1, 0),
    (1, 0, 0) );</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a  href="Castle3D.html#UpFromOrientation">UpFromOrientation</a></b>: array [<a  href="Castle3D.html#TOrientationType">TOrientationType</a>] of <a  href="CastleVectors.html#TVector3Single">TVector3Single</a> =
  ( (0, 1, 0),
    (0, 0, 1),
    (0, 0, 1) );</code></td>
</tr>
</table>
<a name="PasDoc-Variables"></a><h3 class="summary">Variables</h3>
<table class="summary wide_list">
<tr class="list">
<td class="itemcode"><code><b><a  href="Castle3D.html#RenderDebug3D">RenderDebug3D</a></b>: boolean = false;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a  href="Castle3D.html#RenderDebugCaptions">RenderDebugCaptions</a></b>: boolean = false;</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a  href="Castle3D.html#LogShadowVolumes">LogShadowVolumes</a></b>: boolean = false;</code></td>
</tr>
</table>
<h2 class="description">Description</h2>
<h3 class="detail">Functions and Procedures</h3>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TransformMatricesMult"></a><code>procedure <b>TransformMatricesMult</b>(var Transform, TransformInverse: <a  href="CastleVectors.html#TMatrix4Single">TMatrix4Single</a>; const Center: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const Rotation: <a  href="CastleVectors.html#TVector4Single">TVector4Single</a>; const Scale: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>; const ScaleOrientation: <a  href="CastleVectors.html#TVector4Single">TVector4Single</a>; const Translation: <a  href="CastleVectors.html#TVector3Single">TVector3Single</a>);</code></td>
</tr>
<tr><td colspan="1">
<p>
Apply transformation to a matrix. Calculates at the same time transformation matrix, and it's inverse, and multiplies given Transform, TransformInverse appropriately. The precise meaning of Center, Translation and such parameters follows exactly the X3D Transform node definition (see <a  href="http://www.web3d.org/files/specifications/19775-1/V3.2/Part01/components/group.html#Transform">http://www.web3d.org/files/specifications/19775-1/V3.2/Part01/components/group.html#Transform</a> ).</p>
</td></tr>
</table>
<h3 class="detail">Types</h3>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TRenderFromViewFunction"></a><code><b>TRenderFromViewFunction</b> = procedure of object;</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TVisibleChange"></a><code><b>TVisibleChange</b> = (...);</code></td>
</tr>
<tr><td colspan="1">
<p>
Describe what visible thing changed for <a class="normal" href="Castle3D.T3D.html#VisibleChangeHere">T3D.VisibleChangeHere</a>.</p>
<h6 class="description_section">Values</h6>
<ul>
<li>
vcVisibleGeometry: Something visible in the geometry changed. &quot;Geometry&quot; means that this is applicable only to actual 3D shape changes. (Think about &quot;does depth buffer from some point in space changes&quot; &mdash; this is actually why we have separate vcVisibleGeometry and vcVisibleNonGeometry for now, as GeneratedShadowMap does need to be updated only on geometry changes.) So it's not applicable when only light conditions, materials, textures and such change.</li>
<li>
vcVisibleNonGeometry: Something visible changed, but not geometry. For example, material or texture on visible surface changed.</li>
<li>
vcCamera: Camera view (the settings passed to <a class="normal" href="CastleSceneCore.TCastleSceneCore.html#CameraChanged">TCastleSceneCore.CameraChanged</a>) changed.</li>
</ul>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TVisibleChanges"></a><code><b>TVisibleChanges</b> = set of <a  href="Castle3D.html#TVisibleChange">TVisibleChange</a>;</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TVisibleChangeEvent"></a><code><b>TVisibleChangeEvent</b> = procedure (Sender: <a  href="Castle3D.T3D.html">T3D</a>; Changes: <a  href="Castle3D.html#TVisibleChanges">TVisibleChanges</a>) of object;</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TPrepareResourcesOption"></a><code><b>TPrepareResourcesOption</b> = (...);</code></td>
</tr>
<tr><td colspan="1">
<p>
Various things that <a class="normal" href="Castle3D.T3D.html#PrepareResources">T3D.PrepareResources</a> may prepare.</p>
<h6 class="description_section">Values</h6>
<ul>
<li>
prRender: &nbsp;</li>
<li>
prBackground: &nbsp;</li>
<li>
prBoundingBox: &nbsp;</li>
<li>
prTrianglesListShadowCasters: &nbsp;</li>
<li>
prManifoldAndBorderEdges: &nbsp;</li>
<li>
prSpatial: Prepare octrees (determined by things like <a class="normal" href="CastleSceneCore.TCastleSceneCore.html#Spatial">TCastleSceneCore.Spatial</a>).</li>
<li>
prScreenEffects: &nbsp;</li>
</ul>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TPrepareResourcesOptions"></a><code><b>TPrepareResourcesOptions</b> = set of <a  href="Castle3D.html#TPrepareResourcesOption">TPrepareResourcesOption</a>;</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="PRayCollisionNode"></a><code><b>PRayCollisionNode</b> = &circ;<a  href="Castle3D.TRayCollisionNode.html">TRayCollisionNode</a>;</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TAbstractLightInstancesList"></a><code><b>TAbstractLightInstancesList</b> = TFPSList;</code></td>
</tr>
<tr><td colspan="1">
<p>
List of lights. Always <a class="normal" href="X3DNodes.TLightInstancesList.html">TLightInstancesList</a>, but we cannot declare it here as such.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TRenderingPass"></a><code><b>TRenderingPass</b> = 0..1;</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TRemoveType"></a><code><b>TRemoveType</b> = (...);</code></td>
</tr>
<tr><td colspan="1">
&nbsp;<h6 class="description_section">Values</h6>
<ul>
<li>
rtNone: &nbsp;</li>
<li>
rtRemove: &nbsp;</li>
<li>
rtRemoveAndFree: &nbsp;</li>
</ul>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TOrientationType"></a><code><b>TOrientationType</b> = (...);</code></td>
</tr>
<tr><td colspan="1">
&nbsp;<h6 class="description_section">Values</h6>
<ul>
<li>
otUpYDirectionMinusZ: Sensible for worlds oriented around Y axis. That is when gravity pulls in -Y and GravityUp vector is +Y. Transformation makes -Z and +Y match (respectively) Direction and Up.

<p>This matches default direction/up of OpenGL and VRML/X3D cameras.

<p>For example, using this value for <a class="normal" href="Castle3D.T3DOrient.html#Orientation">T3DOrient.Orientation</a> (or even <a class="normal" href="Castle3D.T3DOrient.html#DefaultOrientation">T3DOrient.DefaultOrientation</a>) is sensible if you use default Blender X3D exporter, and you let the exporter to make a transformation (to make +Z up into +Y up). This is the default setting. Then you can follow the standard Blender view names (&quot;front&quot;, &quot;top&quot; and such) when modelling, and Blender tools like &quot;X-axis mirror&quot; will work best.</li>
<li>
otUpZDirectionMinusY: Sensible for worlds oriented around Z axis. Transformation makes -Y and +Z match (respectively) Direction and Up.

<p>Using this value for <a class="normal" href="Castle3D.T3DOrient.html#Orientation">T3DOrient.Orientation</a> (or even <a class="normal" href="Castle3D.T3DOrient.html#DefaultOrientation">T3DOrient.DefaultOrientation</a>) is sensible if you export your models from Blender <i>without transforming them during export</i>. Note that <i>this is not the default Blender X3D exporter behavior</i>. But you can configure the exporter to work like this (not transform), and then you can follow the standard Blender view names (&quot;front&quot;, &quot;top&quot; and such) when modelling.</li>
<li>
otUpZDirectionX: <p class="hint_directive">Warning: this symbol is deprecated.</p> Up in +Z (like otUpZDirectionMinusY) and direction in +X. Should not be used in new models.</li>
</ul>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="T3DExistsEvent"></a><code><b>T3DExistsEvent</b> = function(const Item: <a  href="Castle3D.T3D.html">T3D</a>): boolean of object;</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<h3 class="detail">Constants</h3>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="MaxSingle"></a><code><b>MaxSingle</b> = Math.MaxSingle;</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="DefaultFallMinHeightToDamage"></a><code><b>DefaultFallMinHeightToDamage</b> = 5.0;</code></td>
</tr>
<tr><td colspan="1">
<p>
Default values common to <a class="normal" href="CastlePlayer.TPlayer.html">TPlayer</a> and <a class="normal" href="CastleCreatures.TCreature.html">TCreature</a> classes.

<p>Note that FallMinHeightToSound is usually better to be larger for player, to avoid making &quot;fall&quot; sound when player merely jumps or walks down a steep hill. No such need for creature.

<p></p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="DefaultFallDamageScaleMin"></a><code><b>DefaultFallDamageScaleMin</b> = 0.8;</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="DefaultFallDamageScaleMax"></a><code><b>DefaultFallDamageScaleMax</b> = 1.2;</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="DefaultCreatureFallMinHeightToSound"></a><code><b>DefaultCreatureFallMinHeightToSound</b> = 1.0;</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="DefaultPlayerFallMinHeightToSound"></a><code><b>DefaultPlayerFallMinHeightToSound</b> = 4.0;</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="DefaultCreatureFallSoundName"></a><code><b>DefaultCreatureFallSoundName</b> = 'creature_fall';</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="DefaultPlayerFallSoundName"></a><code><b>DefaultPlayerFallSoundName</b> = 'player_fall';</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="DirectionFromOrientation"></a><code><b>DirectionFromOrientation</b>: array [<a  href="Castle3D.html#TOrientationType">TOrientationType</a>] of <a  href="CastleVectors.html#TVector3Single">TVector3Single</a> =
  ( (0, 0, -1),
    (0, -1, 0),
    (1, 0, 0) );</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="UpFromOrientation"></a><code><b>UpFromOrientation</b>: array [<a  href="Castle3D.html#TOrientationType">TOrientationType</a>] of <a  href="CastleVectors.html#TVector3Single">TVector3Single</a> =
  ( (0, 1, 0),
    (0, 0, 1),
    (0, 0, 1) );</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<h3 class="detail">Variables</h3>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="RenderDebug3D"></a><code><b>RenderDebug3D</b>: boolean = false;</code></td>
</tr>
<tr><td colspan="1">
<p>
Creatures, items and possibly other 3D stuff may look at these variables to display additional features of 3D objects, helpful to debug collisions, AI and other things. </p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="RenderDebugCaptions"></a><code><b>RenderDebugCaptions</b>: boolean = false;</code></td>
</tr>
<tr><td colspan="1">
&nbsp;</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="LogShadowVolumes"></a><code><b>LogShadowVolumes</b>: boolean = false;</code></td>
</tr>
<tr><td colspan="1">
<p>
Log shadow volume information.

<p>Meaningful only if you initialized log (see <a class="normal" href="CastleLog.html">CastleLog</a> unit) by <a class="normal" href="CastleLog.html#InitializeLog">InitializeLog</a> first.</p>
</td></tr>
</table>
<!-- Piwik -->
<script type="text/javascript">
  var _paq = _paq || [];
  _paq.push(["trackPageView"]);
  _paq.push(["enableLinkTracking"]);

  (function() {
    var u=(("https:" == document.location.protocol) ? "https" : "http") + "://michalis.ii.uni.wroc.pl/piwik-castle-engine/";
    _paq.push(["setTrackerUrl", u+"piwik.php"]);
    _paq.push(["setSiteId", "1"]);
    var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
    g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Piwik Code -->

<noscript>
<!-- Piwik Image Tracker -->
<img src="http://michalis.ii.uni.wroc.pl/piwik-castle-engine/piwik.php?idsite=1&amp;rec=1" style="border:0" alt="" />
<!-- End Piwik -->
</noscript>
<hr noshade size="1"><span class="appinfo"><em>Generated by <a  href="http://pasdoc.sourceforge.net/">PasDoc 0.13.0</a> on 2015-06-15 04:43:07</em>
</span>
</td></tr></table></body></html>