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
|
<!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: CastleSceneCore</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 CastleSceneCore</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>Functions and Procedures</td><td><a class="section" href="#PasDoc-Types">Types</a></td><td>Constants</td><td><a class="section" href="#PasDoc-Variables">Variables</a></td></tr></table>
<a name="PasDoc-Description"></a><h2 class="description">Description</h2>
<p>
3D scenes (<a class="normal" href="CastleSceneCore.TCastleSceneCore.html">TCastleSceneCore</a>).</p>
<a name="PasDoc-Uses"></a><h2 class="uses">Uses</h2>
<ul class="useslist"><li>SysUtils</li><li>Classes</li><li><a href="CastleVectors.html">CastleVectors</a></li><li><a href="CastleBoxes.html">CastleBoxes</a></li><li><a href="CastleTriangles.html">CastleTriangles</a></li><li><a href="X3DFields.html">X3DFields</a></li><li><a href="X3DNodes.html">X3DNodes</a></li><li><a href="CastleClassUtils.html">CastleClassUtils</a></li><li><a href="CastleUtils.html">CastleUtils</a></li><li><a href="CastleShapes.html">CastleShapes</a></li><li><a href="CastleTriangleOctree.html">CastleTriangleOctree</a></li><li><a href="CastleProgress.html">CastleProgress</a></li><li><a href="CastleOctree.html">CastleOctree</a></li><li><a href="CastleShapeOctree.html">CastleShapeOctree</a></li><li><a href="CastleKeysMouse.html">CastleKeysMouse</a></li><li><a href="X3DTime.html">X3DTime</a></li><li><a href="CastleCameras.html">CastleCameras</a></li><li><a href="X3DTriangles.html">X3DTriangles</a></li><li>Contnrs</li><li><a href="CastleRenderingCamera.html">CastleRenderingCamera</a></li><li><a href="Castle3D.html">Castle3D</a></li><li><a href="X3DShadowMaps.html">X3DShadowMaps</a></li><li>FGL</li><li><a href="CastleGenericLists.html">CastleGenericLists</a></li><li><a href="CastleRays.html">CastleRays</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">record <a class="bold" href="CastleSceneCore.TManifoldEdge.html"><code>TManifoldEdge</code></a></td>
<td class="itemdesc">Scene edge that is between exactly two triangles.</td>
</tr>
<tr class="list2">
<td class="itemname">record <a class="bold" href="CastleSceneCore.TBorderEdge.html"><code>TBorderEdge</code></a></td>
<td class="itemdesc">Scene edge that has one neighbor, i.e.</td>
</tr>
<tr class="list">
<td class="itemname">Class <a class="bold" href="CastleSceneCore.TX3DBindableStack.html"><code>TX3DBindableStack</code></a></td>
<td class="itemdesc">Stack of bindable nodes (only the top, bound, node is used for rendering/navigation).</td>
</tr>
<tr class="list2">
<td class="itemname">Class <a class="bold" href="CastleSceneCore.TBackgroundStack.html"><code>TBackgroundStack</code></a></td>
<td class="itemdesc"> </td>
</tr>
<tr class="list">
<td class="itemname">Class <a class="bold" href="CastleSceneCore.TFogStack.html"><code>TFogStack</code></a></td>
<td class="itemdesc"> </td>
</tr>
<tr class="list2">
<td class="itemname">Class <a class="bold" href="CastleSceneCore.TNavigationInfoStack.html"><code>TNavigationInfoStack</code></a></td>
<td class="itemdesc"> </td>
</tr>
<tr class="list">
<td class="itemname">Class <a class="bold" href="CastleSceneCore.TViewpointStack.html"><code>TViewpointStack</code></a></td>
<td class="itemdesc"> </td>
</tr>
<tr class="list2">
<td class="itemname">Class <a class="bold" href="CastleSceneCore.TTransformInstancesList.html"><code>TTransformInstancesList</code></a></td>
<td class="itemdesc">List of transform nodes (<a class="normal" href="X3DNodes.ITransformNode.html">ITransformNode</a>), used to extract <a class="normal" href="CastleShapes.html#TShapeTreeList">TShapeTreeList</a> for this node.</td>
</tr>
<tr class="list">
<td class="itemname">Class <a class="bold" href="CastleSceneCore.TTimeDependentHandlerList.html"><code>TTimeDependentHandlerList</code></a></td>
<td class="itemdesc"> </td>
</tr>
<tr class="list2">
<td class="itemname">Class <a class="bold" href="CastleSceneCore.TTrianglesShadowCastersList.html"><code>TTrianglesShadowCastersList</code></a></td>
<td class="itemdesc">Triangles array for shadow casting object.</td>
</tr>
<tr class="list">
<td class="itemname">Class <a class="bold" href="CastleSceneCore.TCastleSceneCore.html"><code>TCastleSceneCore</code></a></td>
<td class="itemdesc">3D scene processing (except rendering, for which see <a class="normal" href="CastleScene.TCastleScene.html">TCastleScene</a>).</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="CastleSceneCore.html#TTriangle3SingleList">TTriangle3SingleList</a></b> = specialize <a href="CastleGenericLists.TGenericStructList.html">TGenericStructList</a><<a href="CastleTriangles.html#TTriangle3Single">TTriangle3Single</a>>;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#PManifoldEdge">PManifoldEdge</a></b> = ˆ<a href="CastleSceneCore.TManifoldEdge.html">TManifoldEdge</a>;</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#TManifoldEdgeList">TManifoldEdgeList</a></b> = specialize <a href="CastleGenericLists.TGenericStructList.html">TGenericStructList</a><<a href="CastleSceneCore.TManifoldEdge.html">TManifoldEdge</a>>;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#PBorderEdge">PBorderEdge</a></b> = ˆ<a href="CastleSceneCore.TBorderEdge.html">TBorderEdge</a>;</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#TBorderEdgeList">TBorderEdgeList</a></b> = specialize <a href="CastleGenericLists.TGenericStructList.html">TGenericStructList</a><<a href="CastleSceneCore.TBorderEdge.html">TBorderEdge</a>>;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#TSceneFreeResource">TSceneFreeResource</a></b> = (...);</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#TSceneFreeResources">TSceneFreeResources</a></b> = set of <a href="CastleSceneCore.html#TSceneFreeResource">TSceneFreeResource</a>;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#TSceneNotification">TSceneNotification</a></b> = procedure (Scene: <a href="CastleSceneCore.TCastleSceneCore.html">TCastleSceneCore</a>) of object;</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#TSceneGeometryChanged">TSceneGeometryChanged</a></b> = procedure (Scene: <a href="CastleSceneCore.TCastleSceneCore.html">TCastleSceneCore</a>; const SomeLocalGeometryChanged: boolean; OnlyShapeChanged: <a href="CastleShapes.TShape.html">TShape</a>) of object;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#PGeneratedTexture">PGeneratedTexture</a></b> = ˆTGeneratedTexture;</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#TCompiledScriptHandler">TCompiledScriptHandler</a></b> = procedure ( Value: <a href="X3DFields.TX3DField.html">TX3DField</a>; const Time: <a href="X3DTime.TX3DTime.html">TX3DTime</a>) of object;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#PCompiledScriptHandlerInfo">PCompiledScriptHandlerInfo</a></b> = ˆTCompiledScriptHandlerInfo;</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#TCompiledScriptHandlerInfoList">TCompiledScriptHandlerInfoList</a></b> = specialize <a href="CastleGenericLists.TGenericStructList.html">TGenericStructList</a><TCompiledScriptHandlerInfo>;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#TSceneSpatialStructure">TSceneSpatialStructure</a></b> = (...);</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#TSceneSpatialStructures">TSceneSpatialStructures</a></b> = set of <a href="CastleSceneCore.html#TSceneSpatialStructure">TSceneSpatialStructure</a>;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#TGeometryChange">TGeometryChange</a></b> = (...);</code></td>
</tr>
<tr class="list">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#TPlayAnimationLooping">TPlayAnimationLooping</a></b> = (...);</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="CastleSceneCore.html#LogChanges">LogChanges</a></b>: boolean = false;</code></td>
</tr>
<tr class="list2">
<td class="itemcode"><code><b><a href="CastleSceneCore.html#OptimizeExtensiveTransformations">OptimizeExtensiveTransformations</a></b>: boolean = false;</code></td>
</tr>
</table>
<h2 class="description">Description</h2>
<h3 class="detail">Types</h3>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TTriangle3SingleList"></a><code><b>TTriangle3SingleList</b> = specialize <a href="CastleGenericLists.TGenericStructList.html">TGenericStructList</a><<a href="CastleTriangles.html#TTriangle3Single">TTriangle3Single</a>>;</code></td>
</tr>
<tr><td colspan="1">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="PManifoldEdge"></a><code><b>PManifoldEdge</b> = ˆ<a href="CastleSceneCore.TManifoldEdge.html">TManifoldEdge</a>;</code></td>
</tr>
<tr><td colspan="1">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TManifoldEdgeList"></a><code><b>TManifoldEdgeList</b> = specialize <a href="CastleGenericLists.TGenericStructList.html">TGenericStructList</a><<a href="CastleSceneCore.TManifoldEdge.html">TManifoldEdge</a>>;</code></td>
</tr>
<tr><td colspan="1">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="PBorderEdge"></a><code><b>PBorderEdge</b> = ˆ<a href="CastleSceneCore.TBorderEdge.html">TBorderEdge</a>;</code></td>
</tr>
<tr><td colspan="1">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TBorderEdgeList"></a><code><b>TBorderEdgeList</b> = specialize <a href="CastleGenericLists.TGenericStructList.html">TGenericStructList</a><<a href="CastleSceneCore.TBorderEdge.html">TBorderEdge</a>>;</code></td>
</tr>
<tr><td colspan="1">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TSceneFreeResource"></a><code><b>TSceneFreeResource</b> = (...);</code></td>
</tr>
<tr><td colspan="1">
<p>
These are various features that may be freed by <a class="normal" href="CastleSceneCore.TCastleSceneCore.html#FreeResources">TCastleSceneCore.FreeResources</a>.
<p><i>Warning</i>: This is for experienced usage of <a class="normal" href="CastleSceneCore.TCastleSceneCore.html">TCastleSceneCore</a>. Everything is explained in detail below, but still — if you have some doubts, or you just don't observe any memory shortage in your program, it's probably best to not use <a class="normal" href="CastleSceneCore.TCastleSceneCore.html#FreeResources">TCastleSceneCore.FreeResources</a>.
<p></p>
<ul class="paragraph_spacing">
<li><p>For frTextureDataInNodes, frBackgroundImageInNodes and TrianglesList, if you will free them unnecessarily (i.e. you will use it after you freed it), it will be automatically recreated on next use. So everything will work correctly, but you will experience unnecessary slowdown if we will need to recreate exactly the same resource over and over again.</p></li>
<li><p>For frTextureDataInNodes and frBackgroundImageInNodes note that freeing these resources too eagerly may make texture cache (see TextureImages) less effective. In normal circumstances, if you will use the same cache instance throughout the program, loaded images are reused. If you free frTextureDataInNodes too early, you may remove them from the cache too early, and lose a chance to reuse them. So you may cause unnecessary slowdown of preparing models, e.g. inside PrepareResources.</p></li>
</ul>
<p></p>
<h6 class="description_section">Values</h6>
<ul>
<li>
frTextureDataInNodes: Unloads the texture images/videos allocated in texture nodes.
<p>It's useful if you know that you already prepared everything that needed the texture images, and you will not need texture images later. For <a class="normal" href="CastleScene.TCastleScene.html">TCastleScene</a> this means that you use Optimization method other than roNone, and you already did PrepareResources (so textures are already loaded to OpenGL), and your code will not access TextureImage / TextureVideo anymore. This is commonly <code>True</code> for various games.
<p>Then you can call this to free some resources.
<p>Note that if you made an accident and you will use some TextureImage or TextureVideo after FreeResources, then you will get no crash, but texture image will be simply reloaded. So you may experience slowdown if you inappropriately use this feature.</li>
<li>
frBackgroundImageInNodes: Unloads the background images allocated in VRML/X3D Background nodes. The same comments as for frTextureDataInNodes apply.</li>
<li>
frTrianglesListShadowCasters: Free triangle list created by TrianglesListShadowCasters call. This list is also implicitly created by ManifoldEdges or BorderEdges.</li>
<li>
frManifoldAndBorderEdges: Free edges lists in ManifoldEdges and BorderEdges.
<p>Frees memory, but next call to ManifoldEdges and BorderEdges will need to calculate them again (or you will need to call <a class="normal" href="CastleSceneCore.TCastleSceneCore.html#ShareManifoldAndBorderEdges">TCastleSceneCore.ShareManifoldAndBorderEdges</a> again). Note that using this scene as shadow caster for shadow volumes algorithm requires ManifoldEdges and BorderEdges.</li>
</ul>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TSceneFreeResources"></a><code><b>TSceneFreeResources</b> = set of <a href="CastleSceneCore.html#TSceneFreeResource">TSceneFreeResource</a>;</code></td>
</tr>
<tr><td colspan="1">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TSceneNotification"></a><code><b>TSceneNotification</b> = procedure (Scene: <a href="CastleSceneCore.TCastleSceneCore.html">TCastleSceneCore</a>) of object;</code></td>
</tr>
<tr><td colspan="1">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TSceneGeometryChanged"></a><code><b>TSceneGeometryChanged</b> = procedure (Scene: <a href="CastleSceneCore.TCastleSceneCore.html">TCastleSceneCore</a>; const SomeLocalGeometryChanged: boolean; OnlyShapeChanged: <a href="CastleShapes.TShape.html">TShape</a>) of object;</code></td>
</tr>
<tr><td colspan="1">
<p>
Callback for <a class="normal" href="CastleSceneCore.TCastleSceneCore.html#OnGeometryChanged">TCastleSceneCore.OnGeometryChanged</a>.
<p>SomeLocalGeometryChanged means that octree, triangles, bounding volumes local to some shape changed (not just e.g. shape transformation).
<p>OnlyShapeChanged is meaningful when SomeLocalGeometryChanged = <code>True</code>. If nil, it indicates that only the given shape geometry changed. If not nil, assume that every shape's geometry potentially changed.</p>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="PGeneratedTexture"></a><code><b>PGeneratedTexture</b> = ˆTGeneratedTexture;</code></td>
</tr>
<tr><td colspan="1">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TCompiledScriptHandler"></a><code><b>TCompiledScriptHandler</b> = procedure ( Value: <a href="X3DFields.TX3DField.html">TX3DField</a>; const Time: <a href="X3DTime.TX3DTime.html">TX3DTime</a>) of object;</code></td>
</tr>
<tr><td colspan="1">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="PCompiledScriptHandlerInfo"></a><code><b>PCompiledScriptHandlerInfo</b> = ˆTCompiledScriptHandlerInfo;</code></td>
</tr>
<tr><td colspan="1">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TCompiledScriptHandlerInfoList"></a><code><b>TCompiledScriptHandlerInfoList</b> = specialize <a href="CastleGenericLists.TGenericStructList.html">TGenericStructList</a><TCompiledScriptHandlerInfo>;</code></td>
</tr>
<tr><td colspan="1">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TSceneSpatialStructure"></a><code><b>TSceneSpatialStructure</b> = (...);</code></td>
</tr>
<tr><td colspan="1">
<p>
Possible spatial structure types that may be managed by <a class="normal" href="CastleSceneCore.TCastleSceneCore.html">TCastleSceneCore</a>, see <a class="normal" href="CastleSceneCore.TCastleSceneCore.html#Spatial">TCastleSceneCore.Spatial</a>.</p>
<h6 class="description_section">Values</h6>
<ul>
<li>
ssRendering: Create and keep current the <a class="normal" href="CastleSceneCore.TCastleSceneCore.html#OctreeRendering">TCastleSceneCore.OctreeRendering</a>. This is a dynamic octree containing all visible shapes.</li>
<li>
ssDynamicCollisions: Create and keep current the <a class="normal" href="CastleSceneCore.TCastleSceneCore.html#OctreeDynamicCollisions">TCastleSceneCore.OctreeDynamicCollisions</a>. This is a dynamic octree containing all collidable items.</li>
<li>
ssVisibleTriangles: Create the <a class="normal" href="CastleSceneCore.TCastleSceneCore.html#OctreeVisibleTriangles">TCastleSceneCore.OctreeVisibleTriangles</a>. This is an octree containing all visible triangles, suitable only for scenes that stay static.</li>
<li>
ssCollidableTriangles: Create the <a class="normal" href="CastleSceneCore.TCastleSceneCore.html#OctreeCollidableTriangles">TCastleSceneCore.OctreeCollidableTriangles</a>. This is an octree containing all collidable triangles, suitable only for scenes that stay static.</li>
</ul>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TSceneSpatialStructures"></a><code><b>TSceneSpatialStructures</b> = set of <a href="CastleSceneCore.html#TSceneSpatialStructure">TSceneSpatialStructure</a>;</code></td>
</tr>
<tr><td colspan="1">
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TGeometryChange"></a><code><b>TGeometryChange</b> = (...);</code></td>
</tr>
<tr><td colspan="1">
<h6 class="description_section">Values</h6>
<ul>
<li>
gcAll: Everything changed. All octrees must be rebuild, old State pointers may be invalid.
<p>Every ChangedAll call does this. ChangedAll must take into account that everything could change. Note that ChangedAll traverses the VRML/X3D graph again, recalculating State values... so the old States are not correct anymore. You have to rebuild the octree or your pointers will be bad.
<p>When DoGeometryChanged with gcAll is called, we know that ChangedAll called this, and every <a class="normal" href="CastleShapes.TShape.html">TShape</a> will be (or already is) destroyed and created new.</li>
<li>
gcCollidableTransformChanged: Transformation of some shape changed. </li>
<li>
gcVisibleTransformChanged: </li>
<li>
gcLocalGeometryChanged: Local geometry change happened (actual octree free is already done by TShape.LocalGeometryChanged, octree create will be done at next demand). We should update stuff at higher (<a class="normal" href="CastleSceneCore.TCastleSceneCore.html">TCastleSceneCore</a>) level accordingly.
<p>gcLocalGeometryChangedCoord means that coordinates changed. Compared to gcLocalGeometryChanged, this means that model edges structure remains the same (this is helpful e.g. to avoid recalculating Manifold/BorderEdges in parent scene).
<p>In this case, DoGeometryChanged parameter LocalGeometryShape is non-nil and indicated the (only) shape that changed.
<p></li>
<li>
gcLocalGeometryChangedCoord: </li>
<li>
gcActiveShapesChanged: What is considered "active" shapes changed. Like after Switch.whichChoice change.</li>
</ul>
</td></tr>
</table>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="TPlayAnimationLooping"></a><code><b>TPlayAnimationLooping</b> = (...);</code></td>
</tr>
<tr><td colspan="1">
<p>
Looping mode to use with <a class="normal" href="CastleSceneCore.TCastleSceneCore.html#PlayAnimation">TCastleSceneCore.PlayAnimation</a>.</p>
<h6 class="description_section">Values</h6>
<ul>
<li>
paDefault: Use current TimeSensor.FdLoop value to determine whether animation should loop. Suitable when X3D model already has sensible "TimeSensor.loop" values.</li>
<li>
paForceLooping: Force TimeSensor.FdLoop to be <code>True</code>, to force looping.</li>
<li>
paForceNotLooping: Force TimeSensor.FdLoop to be <code>False</code>, to force not looping.</li>
</ul>
</td></tr>
</table>
<h3 class="detail">Variables</h3>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="LogChanges"></a><code><b>LogChanges</b>: boolean = false;</code></td>
</tr>
<tr><td colspan="1">
<p>
Log changes to fields. This debugs what and why happens through <a class="normal" href="CastleSceneCore.TCastleSceneCore.html#ChangedField">TCastleSceneCore.ChangedField</a> method and friends, which is central to VRML/X3D dynamic changes and events engine.
<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>
<table class="detail wide_list">
<tr class="list">
<td class="itemcode"><a name="OptimizeExtensiveTransformations"></a><code><b>OptimizeExtensiveTransformations</b>: boolean = false;</code></td>
</tr>
<tr><td colspan="1">
<p>
Set this to optimize animating transformations for scenes where you have many transformations (many Transform nodes), and many of them are animated at the same time. Often particularly effective for skeletal animations of characters, 3D and 2D (e.g. from Spine).</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&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:11</em>
</span>
</td></tr></table></body></html>
|