Changeset 18
- Timestamp:
- 02/01/07 21:48:23 (2 years ago)
- Files:
-
- trunk/bin/yage.exe (modified) (previous)
- trunk/doc/errors.txt (modified) (1 diff)
- trunk/doc/unresolved.txt (modified) (2 diffs)
- trunk/proj/buildme.d (modified) (2 diffs)
- trunk/proj/yage.cbp (modified) (1 diff)
- trunk/proj/yage.depend (modified) (25 diffs)
- trunk/proj/yage.layout (modified) (1 diff)
- trunk/proj/yage.map (modified) (2 diffs)
- trunk/src/yage/core/horde.d (modified) (2 diffs)
- trunk/src/yage/core/matrix.d (modified) (3 diffs)
- trunk/src/yage/core/quatrn.d (modified) (3 diffs)
- trunk/src/yage/gameobj.d (modified) (1 diff)
- trunk/src/yage/main.d (modified) (4 diffs)
- trunk/src/yage/node/basenode.d (modified) (6 diffs)
- trunk/src/yage/node/camera.d (modified) (1 diff)
- trunk/src/yage/node/graph.d (modified) (2 diffs)
- trunk/src/yage/node/light.d (modified) (3 diffs)
- trunk/src/yage/node/model.d (modified) (4 diffs)
- trunk/src/yage/node/node.d (modified) (16 diffs)
- trunk/src/yage/node/scene.d (modified) (1 diff)
- trunk/src/yage/node/sprite.d (modified) (1 diff)
- trunk/src/yage/resource/sound.d (modified) (2 diffs)
- trunk/src/yage/ship.d (modified) (7 diffs)
- trunk/src/yage/system/render.d (modified) (2 diffs)
- trunk/src/yage/universe.d (modified) (1 diff)
- trunk/src/yage/util/repeater.d (modified) (1 diff)
- trunk/src/yage/util/spring.d (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/doc/errors.txt
r17 r18 8 8 FATAL: fglX11FreeBuffer: firegl_FreeBuffer() failed! 9 9 10 [buildme.d with -D]11 Error: unrecognized file extension ddoctrunk/doc/unresolved.txt
r17 r18 5 5 6 6 [Unresolved] 7 8 Q: What happens when a light is added to a Node's list of lights and then9 light.remove() is called?10 A: In theory, nothing, since it should hang around as long as that11 reference to it exists.12 7 13 8 When the window is sized below about 1/4th the size of it's starting size, … … 34 29 std.perf and sdl_getticks inaccurate. Need to test on linux 35 30 36 The ship's rotation values are sometimes nan 31 The end of the spring following the ship is way too close half the time. 32 This is caused by tail.getAbsolutePosition() returning an incorrect result. 33 The sort in Universe.update() changes the order of update between the spring head and tail 34 if one is updated and the other isn't, positions will be different. 35 Need to ensure that both have been updated before calling spring.update(). trunk/proj/buildme.d
r16 r18 146 146 flags~="g"; 147 147 //flags~="gc"; 148 //flags~="unittest";148 149 149 }else if (_release) 150 150 { flags~="O"; … … 158 158 flags~="Dd"~doc_path; 159 159 } 160 if (!_release) 161 flags~="unittest"; 160 162 flags~="I"~imp_path; 161 163 flags~="od"~obj_path; // Set the object output directory trunk/proj/yage.cbp
r16 r18 1 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?><CodeBlocks_project_file><FileVersion major="1" minor="5" /><Project><Option title="Yage" /><Option pch_mode="2" /><Option default_target="" /><Option compiler="dmd" /><Option virtualFolders="" /><Build><Target title="Normal"><Option output="..\bin\yage.exe" prefix_auto="1" extension_auto="1" /><Option working_dir="..\bin" /><Option object_output="..\bin\obj\" /><Option type="1" /><Option compiler="dmd" /><Compiler><Add option="-unittest" /><Add option="-debug" /></Compiler></Target><Target title="Release"><Option output="..\bin\yage.exe" prefix_auto="1" extension_auto="1" /><Option object_output="..\bin\obj\" /><Option type="1" /><Option compiler="dmd" /><Compiler><Add option="-release" /><Add option="- O" /><Add option="-inline" /></Compiler></Target></Build><Compiler><Add directory="..\src" /></Compiler><Linker><Add library="..\lib\DerelictVorbis.lib" /><Add library="..\lib\derelictAL.lib" /><Add library="..\lib\derelictGL.lib" /><Add library="..\lib\DerelictGLU.lib" /><Add library="..\lib\DerelictOgg.lib" /><Add library="..\lib\DerelictSDL.lib" /><Add library="..\lib\DerelictSDLImage.lib" /><Add library="..\lib\DerelictUtil.lib" /></Linker><Unit filename="..\src\yage\all.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\all.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\freelist.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\horde.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\matrix.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\misc.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\plane.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\quatrn.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\timer.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\tree.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\vector.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\xml.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\gameobj.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\main.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\all.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\basenode.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\camera.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\graph.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\light.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\model.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\node.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\scene.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\sound.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\sprite.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\all.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\image.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\layer.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\material.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\model.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\resource.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\shader.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\sound.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\texture.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\ship.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\system\all.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\system\constant.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\system\device.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\system\input.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\system\log.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\system\render.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\universe.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\util\all.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\util\flyer.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\util\misc.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\util\repeater.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\util\spring.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit></Project></CodeBlocks_project_file>1 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?><CodeBlocks_project_file><FileVersion major="1" minor="5" /><Project><Option title="Yage" /><Option pch_mode="2" /><Option default_target="" /><Option compiler="dmd" /><Option virtualFolders="" /><Build><Target title="Normal"><Option output="..\bin\yage.exe" prefix_auto="1" extension_auto="1" /><Option working_dir="..\bin" /><Option object_output="..\bin\obj\" /><Option type="1" /><Option compiler="dmd" /><Compiler><Add option="-unittest" /><Add option="-debug" /></Compiler></Target><Target title="Release"><Option output="..\bin\yage.exe" prefix_auto="1" extension_auto="1" /><Option object_output="..\bin\obj\" /><Option type="1" /><Option compiler="dmd" /><Compiler><Add option="-release" /><Add option="-profile" /><Add option="-O" /></Compiler></Target></Build><Compiler><Add directory="..\src" /></Compiler><Linker><Add library="..\lib\DerelictVorbis.lib" /><Add library="..\lib\derelictAL.lib" /><Add library="..\lib\derelictGL.lib" /><Add library="..\lib\DerelictGLU.lib" /><Add library="..\lib\DerelictOgg.lib" /><Add library="..\lib\DerelictSDL.lib" /><Add library="..\lib\DerelictSDLImage.lib" /><Add library="..\lib\DerelictUtil.lib" /></Linker><Unit filename="..\src\yage\all.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\all.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\freelist.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\horde.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\matrix.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\misc.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\plane.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\quatrn.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\timer.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\tree.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\vector.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\core\xml.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\gameobj.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\main.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\all.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\basenode.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\camera.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\graph.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\light.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\model.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\node.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\scene.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\sound.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\node\sprite.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\all.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\image.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\layer.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\material.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\model.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\resource.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\shader.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\sound.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\resource\texture.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\ship.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\system\all.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\system\constant.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\system\device.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\system\input.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\system\log.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\system\render.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\universe.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\util\all.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\util\flyer.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\util\misc.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\util\repeater.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit><Unit filename="..\src\yage\util\spring.d"><Option compilerVar="CPP" /><Option target="Normal" /><Option target="Release" /></Unit></Project></CodeBlocks_project_file> trunk/proj/yage.depend
r16 r18 21 21 1169430011 c:\myfiles\eric\current\yage\src\yage\core\freelist.d 22 22 23 11 69430014 c:\myfiles\eric\current\yage\src\yage\core\horde.d24 25 1169 615795 c:\myfiles\eric\current\yage\src\yage\core\matrix.d23 1170136404 c:\myfiles\eric\current\yage\src\yage\core\horde.d 24 25 1169959015 c:\myfiles\eric\current\yage\src\yage\core\matrix.d 26 26 27 27 1169430019 c:\myfiles\eric\current\yage\src\yage\core\misc.d … … 29 29 1169430022 c:\myfiles\eric\current\yage\src\yage\core\plane.d 30 30 31 1169 615763c:\myfiles\eric\current\yage\src\yage\core\quatrn.d31 1169958881 c:\myfiles\eric\current\yage\src\yage\core\quatrn.d 32 32 33 33 1169430029 c:\myfiles\eric\current\yage\src\yage\core\timer.d … … 61 61 1168491929 c:\myfiles\eric\current\yage\src\yage\resource\shader.d 62 62 63 11 69481936 c:\myfiles\eric\current\yage\src\yage\resource\sound.d63 1170134326 c:\myfiles\eric\current\yage\src\yage\resource\sound.d 64 64 65 65 1168491929 c:\myfiles\eric\current\yage\src\yage\resource\texture.d … … 76 76 <yage/node/sound.d> 77 77 78 11 68491926c:\myfiles\eric\current\yage\src\yage\node\basenode.d79 80 116 8491926c:\myfiles\eric\current\yage\src\yage\node\camera.d81 82 116 8491926c:\myfiles\eric\current\yage\src\yage\node\graph.d83 84 11 68491926c:\myfiles\eric\current\yage\src\yage\node\light.d85 86 11 68491926c:\myfiles\eric\current\yage\src\yage\node\model.d87 88 11 68491926 c:\myfiles\eric\current\yage\src\yage\node\node.d89 90 11 68491926c:\myfiles\eric\current\yage\src\yage\node\scene.d91 92 116 8491926c:\myfiles\eric\current\yage\src\yage\node\sprite.d93 94 116 8491926c:\myfiles\eric\current\yage\src\yage\node\sound.d78 1170306974 c:\myfiles\eric\current\yage\src\yage\node\basenode.d 79 80 1169950067 c:\myfiles\eric\current\yage\src\yage\node\camera.d 81 82 1169963397 c:\myfiles\eric\current\yage\src\yage\node\graph.d 83 84 1170135882 c:\myfiles\eric\current\yage\src\yage\node\light.d 85 86 1170302990 c:\myfiles\eric\current\yage\src\yage\node\model.d 87 88 1170309336 c:\myfiles\eric\current\yage\src\yage\node\node.d 89 90 1170130324 c:\myfiles\eric\current\yage\src\yage\node\scene.d 91 92 1169950242 c:\myfiles\eric\current\yage\src\yage\node\sprite.d 93 94 1169957954 c:\myfiles\eric\current\yage\src\yage\node\sound.d 95 95 96 96 1168491932 c:\myfiles\eric\current\yage\src\yage\util\all.d … … 102 102 1169494192 c:\myfiles\eric\current\yage\src\yage\util\flyer.d 103 103 104 11 69606588c:\myfiles\eric\current\yage\src\yage\util\spring.d104 1170135636 c:\myfiles\eric\current\yage\src\yage\util\spring.d 105 105 106 106 1168491932 c:\myfiles\eric\current\yage\src\yage\util\misc.d 107 107 108 116 8491932c:\myfiles\eric\current\yage\src\yage\util\repeater.d108 1169948746 c:\myfiles\eric\current\yage\src\yage\util\repeater.d 109 109 110 110 1168491923 c:\myfiles\eric\current\yage\src\yage\system\all.d … … 204 204 <std/gc.d> 205 205 206 11 69430014 source:c:\myfiles\eric\current\yage\src\yage\core\horde.d207 <std/stdio.d> 208 <yage/core/misc.d> 209 210 1169 615795 source:c:\myfiles\eric\current\yage\src\yage\core\matrix.d206 1170136404 source:c:\myfiles\eric\current\yage\src\yage\core\horde.d 207 <std/stdio.d> 208 <yage/core/misc.d> 209 210 1169959015 source:c:\myfiles\eric\current\yage\src\yage\core\matrix.d 211 211 <std/math.d> 212 212 <std/stdio.d> … … 231 231 <yage/core/misc.d> 232 232 233 1169 615763source:c:\myfiles\eric\current\yage\src\yage\core\quatrn.d233 1169958881 source:c:\myfiles\eric\current\yage\src\yage\core\quatrn.d 234 234 <std/math.d> 235 235 <std/stdio.d> … … 263 263 <yage/core/misc.d> 264 264 265 11 69613989source:c:\myfiles\eric\current\yage\src\yage\main.d265 1170347618 source:c:\myfiles\eric\current\yage\src\yage\main.d 266 266 <std/string.d> 267 267 <std/math.d> … … 281 281 <yage/system/all.d> 282 282 283 1169 532538c:\myfiles\eric\current\yage\src\yage\universe.d284 285 11 69614674c:\myfiles\eric\current\yage\src\yage\ship.d283 1169963322 c:\myfiles\eric\current\yage\src\yage\universe.d 284 285 1170134863 c:\myfiles\eric\current\yage\src\yage\ship.d 286 286 287 287 1168491926 source:c:\myfiles\eric\current\yage\src\yage\node\all.d … … 296 296 <yage/node/sound.d> 297 297 298 1168491926 source:c:\myfiles\eric\current\yage\src\yage\node\basenode.d 299 <std/stdio.d> 298 1170306974 source:c:\myfiles\eric\current\yage\src\yage\node\basenode.d 299 <std/stdio.d> 300 <std/traits.d> 300 301 <yage/core/horde.d> 301 302 <yage/core/misc.d> … … 304 305 <yage/core/all.d> 305 306 306 116 8491926source:c:\myfiles\eric\current\yage\src\yage\node\camera.d307 1169950067 source:c:\myfiles\eric\current\yage\src\yage\node\camera.d 307 308 <std/math.d> 308 309 <derelict/opengl/gl.d> … … 537 538 1168491950 c:\myfiles\eric\current\yage\src\derelict\openal\almanual.d 538 539 539 11 68491923c:\myfiles\eric\current\yage\src\yage\system\render.d540 541 116 8491926source:c:\myfiles\eric\current\yage\src\yage\node\graph.d540 1170309509 c:\myfiles\eric\current\yage\src\yage\system\render.d 541 542 1169963397 source:c:\myfiles\eric\current\yage\src\yage\node\graph.d 542 543 <std/stdio.d> 543 544 <std/math.d> … … 554 555 <yage/node/basenode.d> 555 556 556 11 68491926source:c:\myfiles\eric\current\yage\src\yage\node\light.d557 1170135882 source:c:\myfiles\eric\current\yage\src\yage\node\light.d 557 558 <std/math.d> 558 559 <std/stdio.d> … … 568 569 <yage/system/constant.d> 569 570 570 11 68491926source:c:\myfiles\eric\current\yage\src\yage\node\model.d571 1170302990 source:c:\myfiles\eric\current\yage\src\yage\node\model.d 571 572 <derelict/opengl/gl.d> 572 573 <derelict/opengl/glext.d> … … 580 581 <yage/node/basenode.d> 581 582 582 1168491926 source:c:\myfiles\eric\current\yage\src\yage\node\node.d 583 <std/math.d> 584 <std/stdio.d> 583 1170309336 source:c:\myfiles\eric\current\yage\src\yage\node\node.d 584 <std/math.d> 585 <std/stdio.d> 586 <std/traits.d> 585 587 <derelict/opengl/gl.d> 586 588 <derelict/opengl/glu.d> … … 596 598 <yage/system/input.d> 597 599 598 11 68491926source:c:\myfiles\eric\current\yage\src\yage\node\scene.d600 1170130324 source:c:\myfiles\eric\current\yage\src\yage\node\scene.d 599 601 <derelict/opengl/gl.d> 600 602 <derelict/openal/al.d> … … 604 606 <yage/node/basenode.d> 605 607 606 116 8491926source:c:\myfiles\eric\current\yage\src\yage\node\sound.d608 1169957954 source:c:\myfiles\eric\current\yage\src\yage\node\sound.d 607 609 <std/math.d> 608 610 <std/string.d> … … 617 619 <yage/node/scene.d> 618 620 619 116 8491926source:c:\myfiles\eric\current\yage\src\yage\node\sprite.d621 1169950242 source:c:\myfiles\eric\current\yage\src\yage\node\sprite.d 620 622 <derelict/opengl/gl.d> 621 623 <yage/resource/resource.d> … … 724 726 <yage/resource/resource.d> 725 727 726 11 69481936 source:c:\myfiles\eric\current\yage\src\yage\resource\sound.d728 1170134326 source:c:\myfiles\eric\current\yage\src\yage\resource\sound.d 727 729 <std/mmfile.d> 728 730 <std/c/time.d> … … 756 758 <yage/system/log.d> 757 759 758 11 69614674source:c:\myfiles\eric\current\yage\src\yage\ship.d760 1170134863 source:c:\myfiles\eric\current\yage\src\yage\ship.d 759 761 <std/stdio.d> 760 762 <yage/core/all.d> … … 788 790 <std/stdio.d> 789 791 790 11 68491923source:c:\myfiles\eric\current\yage\src\yage\system\render.d792 1170309509 source:c:\myfiles\eric\current\yage\src\yage\system\render.d 791 793 <derelict/opengl/gl.d> 792 794 <derelict/opengl/glext.d> … … 801 803 <yage/system/device.d> 802 804 <yage/node/light.d> 803 804 1169532538 source:c:\myfiles\eric\current\yage\src\yage\universe.d 805 <yage/node/node.d> 806 807 1169963322 source:c:\myfiles\eric\current\yage\src\yage\universe.d 805 808 <std/math.d> 806 809 <std/random.d> … … 837 840 <yage/core/all.d> 838 841 839 116 8491932source:c:\myfiles\eric\current\yage\src\yage\util\repeater.d842 1169948746 source:c:\myfiles\eric\current\yage\src\yage\util\repeater.d 840 843 <std/thread.d> 841 844 <std/c/time.d> 842 845 <yage/core/timer.d> 843 846 844 11 69606588source:c:\myfiles\eric\current\yage\src\yage\util\spring.d847 1170135636 source:c:\myfiles\eric\current\yage\src\yage\util\spring.d 845 848 <std/stdio.d> 846 849 <yage/core/all.d> … … 1057 1060 1167043260 c:\myfiles\eric\current\yage\src\derelict\openal\alfuncs.d 1058 1061 1059 11 69490616source:c:\myfiles\eric\current\yage\src\yage\gameobj.d1062 1170139423 source:c:\myfiles\eric\current\yage\src\yage\gameobj.d 1060 1063 <std/math.d> 1061 1064 <std/stdio.d> … … 1070 1073 <yage/universe.d> 1071 1074 1072 11 69490616c:\myfiles\eric\current\yage\src\yage\gameobj.d1073 1075 1170139423 c:\myfiles\eric\current\yage\src\yage\gameobj.d 1076 trunk/proj/yage.layout
r16 r18 1 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?><CodeBlocks_layout_file><ActiveTarget name=" " /><File name="..\src\yage\main.d" open="1" top="1" tabpos="1"><Cursor position="593" topLine="11" /></File></CodeBlocks_layout_file>1 <?xml version="1.0" encoding="UTF-8" standalone="yes" ?><CodeBlocks_layout_file><ActiveTarget name="Normal" /><File name="..\src\yage\main.d" open="1" top="1" tabpos="1"><Cursor position="1970" topLine="55" /></File><File name="..\src\yage\node\basenode.d" open="1" top="0" tabpos="4"><Cursor position="3291" topLine="11" /></File><File name="..\src\yage\node\camera.d" open="0" top="0" tabpos="0"><Cursor position="1914" topLine="41" /></File><File name="..\src\yage\node\light.d" open="0" top="0" tabpos="0"><Cursor position="9721" topLine="254" /></File><File name="..\src\yage\node\model.d" open="0" top="0" tabpos="0"><Cursor position="697" topLine="21" /></File><File name="..\src\yage\node\node.d" open="1" top="0" tabpos="3"><Cursor position="5134" topLine="104" /></File><File name="..\src\yage\node\sprite.d" open="1" top="0" tabpos="2"><Cursor position="717" topLine="13" /></File><File name="..\src\yage\resource\image.d" open="0" top="0" tabpos="0"><Cursor position="1489" topLine="42" /></File><File name="..\src\yage\resource\layer.d" open="0" top="0" tabpos="0"><Cursor position="0" topLine="18" /></File><File name="..\src\yage\resource\material.d" open="0" top="0" tabpos="0"><Cursor position="0" topLine="51" /></File><File name="..\src\yage\system\render.d" open="1" top="0" tabpos="5"><Cursor position="369" topLine="9" /></File><File name="..\src\yage\universe.d" open="0" top="0" tabpos="0"><Cursor position="1234" topLine="39" /></File></CodeBlocks_layout_file> trunk/proj/yage.map
r16 r18 1 1 2 2 Start Length Name Class 3 0002:00000000 0005 3BFBH _TEXT CODE 32-bit4 0002:0005 3BFC 000001F8H ICODE ICODE 32-bit3 0002:00000000 0005459BH _TEXT CODE 32-bit 4 0002:0005459C 000001F2H ICODE ICODE 32-bit 5 5 0003:00000000 00000004H .CRT$XIA DATA 32-bit 6 6 0003:00000010 00000004H .CRT$XIZ DATA 32-bit … … 12 12 0003:00000070 00000004H .CRT$XTZ DATA 32-bit 13 13 0003:00000074 00000000H IMP__DATA IMP__DATA 32-bit 14 0003:00000080 00034 CC4H _DATA DATA 32-bit15 0003:00034 D44 00000000H FMB DATA 32-bit16 0003:00034 D44 000001A0H FM DATA 32-bit17 0003:00034 EE4 00000000H FME DATA 32-bit18 0003:00034 EE4 00000000H XIB DATA 32-bit19 0003:00034 EE4 00000018H XI DATA 32-bit20 0003:0003 4EFC 00000000H XIE DATA 32-bit21 0003:0003 4EFC 00000000H XCB DATA 32-bit22 0003:0003 4EFC 00000010H XC DATA 32-bit23 0003:0003 4F0C 00000000H XCE DATA 32-bit24 0003:0003 4F0C 00000000H XIFCB DATA 32-bit25 0003:0003 4F0C 00000004H XIFU DATA 32-bit26 0003:0003 4F10 00000000H XIFL DATA 32-bit27 0003:0003 4F10 00000004H XIFM DATA 32-bit28 0003:0003 4F14 00000000H XIFCE DATA 32-bit29 0003:0003 4F20 00000000H CONST CONST 32-bit30 0003:0003 4F20 00000000H EEND ENDBSS 32-bit31 0003:0003 4F20 00004C18H _BSS BSS 32-bit32 0003:00039 B38 00000000H XOB BSS 32-bit33 0003:00039 B38 00000004H XO BSS 32-bit34 0003:00039 B3C 00000000H XOE BSS 32-bit35 0003:00039 B3C 00000000H XOFB BSS 32-bit36 0003:00039 B3C 00000108H XOF BSS 32-bit37 0003:00039 C44 00000000H XOFE BSS 32-bit38 0003:00039 C50 0000042DH c_common BSS 32-bit39 0003:0003A 080 00000000H STACK STACK 32-bit14 0003:00000080 00034DD4H _DATA DATA 32-bit 15 0003:00034E54 00000000H FMB DATA 32-bit 16 0003:00034E54 000001A0H FM DATA 32-bit 17 0003:00034FF4 00000000H FME DATA 32-bit 18 0003:00034FF4 00000000H XIB DATA 32-bit 19 0003:00034FF4 00000018H XI DATA 32-bit 20 0003:0003500C 00000000H XIE DATA 32-bit 21 0003:0003500C 00000000H XCB DATA 32-bit 22 0003:0003500C 00000010H XC DATA 32-bit 23 0003:0003501C 00000000H XCE DATA 32-bit 24 0003:0003501C 00000000H XIFCB DATA 32-bit 25 0003:0003501C 00000004H XIFU DATA 32-bit 26 0003:00035020 00000000H XIFL DATA 32-bit 27 0003:00035020 00000004H XIFM DATA 32-bit 28 0003:00035024 00000000H XIFCE DATA 32-bit 29 0003:00035030 00000000H CONST CONST 32-bit 30 0003:00035030 00000000H EEND ENDBSS 32-bit 31 0003:00035030 00004C18H _BSS BSS 32-bit 32 0003:00039C48 00000000H XOB BSS 32-bit 33 0003:00039C48 00000004H XO BSS 32-bit 34 0003:00039C4C 00000000H XOE BSS 32-bit 35 0003:00039C4C 00000000H XOFB BSS 32-bit 36 0003:00039C4C 00000108H XOF BSS 32-bit 37 0003:00039D54 00000000H XOFE BSS 32-bit 38 0003:00039D60 0000042DH c_common BSS 32-bit 39 0003:0003A190 00000000H STACK STACK 32-bit 40 40 41 Program entry point at 00048 4A041 Program entry point at 00048E50 trunk/src/yage/core/horde.d
r15 r18 35 35 protected uint count; // number of elements currently in the horde. 36 36 protected uint _reserve; // reserve at least this much space in the array. 37 protected bool _ordered=false;// maintian order upon remove, sacrificing constant time removal.38 37 39 38 unittest … … 56 55 this(uint size) 57 56 { elements.length = size; 57 count=0; 58 58 _reserve = size; 59 count=0; 59 } 60 61 /// Construct from an existing array. 62 this (T[] array) 63 { elements = array; 64 count = elements.length; 65 _reserve = 0; 60 66 } 61 67 trunk/src/yage/core/matrix.d
r17 r18 57 57 58 58 // Matrices used in testing 59 Matrix[10] m; 60 m[ 0] = Matrix(); 61 m[ 1] = Vec3f(0, 0, 0).toMatrix().move(Vec3f(.1, 3, 0));//Matrix([0.0f,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0]); 62 m[ 2] = Vec3f(0, 0, 1).toMatrix().move(Vec3f(.1, 3, 0)); 63 m[ 3] = Vec3f(1, 3, -1).toMatrix().move(Vec3f(2, -1, 1)); 64 m[ 4] = Vec3f(-.75, -1, -1.7).toMatrix().move(Vec3f(-1, 0, 4)); 65 m[ 5] = Vec3f(-.371, .1, -1.570796).toMatrix().move(Vec3f(1000, 2000, 4000)); 66 m[ 6] = Vec3f(0.0001, 0.0001, 0.0001).toMatrix(); 67 m[ 7] = Matrix([1,0,0,0, 0,-1,0,0, 0,0,-1,0, 0,0,0,1]); // Branch B of toQuatrn(); 68 m[ 8] = Matrix([-1,0,0,0, 0,1,0,0, 0,0,-1,0, 0,0,0,1]); // Branch C of toQuatrn(); 69 m[ 9] = Matrix([-1,0,0,0, 0,-1,0,0, 0,0,1,0, 0,0,0,1]); // Branch D of toQuatrn(); 70 71 //if (1 + v[0] + v[5] + v[10] >= 0.00000001) 72 //else if ((v[0]>v[5]) && (v[0]>v[10])) 73 //else if (v[5]>v[10]) 74 //else 59 Matrix[] m; 60 m~= Matrix(); 61 m~= Vec3f(0, 0, 0).toMatrix().move(Vec3f(.1, 3, 0));//Matrix([0.0f,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0]); 62 m~= Vec3f(0, 0, 1).toMatrix().move(Vec3f(.1, 3, 0)); 63 m~= Vec3f(1, 3, -1).toMatrix().move(Vec3f(2, -1, 1)); 64 m~= Vec3f(-.75, -1, -1.7).toMatrix().move(Vec3f(-1, 0, 4)); 65 m~= Vec3f(-.371, .1, -1.570796).toMatrix().move(Vec3f(1000, 2000, 4000)); 66 m~= Vec3f(0.0001, 0.0001, 0.0001).toMatrix(); 67 m~= Matrix([1,0,0,0, 0,-1,0,0, 0,0,-1,0, 0,0,0,1]); // 7, Branch B of toQuatrn(); 68 m~= Matrix([-1,0,0,0, 0,1,0,0, 0,0,-1,0, 0,0,0,1]); // 8, Branch C of toQuatrn(); 69 m~= Matrix([-1,0,0,0, 0,-1,0,0, 0,0,1,0, 0,0,0,1]); // 9, Branch D of toQuatrn(); 70 75 71 foreach (Matrix c; m) 76 72 { test("Transpose", c, c.transpose().transpose()); … … 79 75 test("Inverse 2", Matrix(), c*c.inverse(), c); 80 76 test("Identity", c, c*Matrix()); // [Below] compared this way because non-rotation values are lost. 81 //test("toQuatrn & toAxis", c.toAxis().toMatrix(), c.toQuatrn().toMatrix(), c);77 test("toQuatrn & toAxis", c.toAxis().toMatrix(), c.toQuatrn().toMatrix(), c); 82 78 Matrix res = c; 83 79 res.set(c.toQuatrn()); … … 86 82 foreach (Matrix d; m) 87 83 { test("Multiply & Inverse", c, c*d*d.inverse(), d); 88 //test("MoveRelative", c, c.moveRelative(d.toAxis()).moveRelative(d.toAxis().inverse()), d);84 test("MoveRelative", c, c.moveRelative(d.toAxis()).moveRelative(d.toAxis().inverse()), d); 89 85 test("Rotate Matrix", c, c.rotate(d).rotate(d.inverse()), d); 90 //test("Rotate Quatrn", c, c.rotate(d.toQuatrn()).rotate(d.toQuatrn().inverse()), d);86 test("Rotate Quatrn", c, c.rotate(d.toQuatrn()).rotate(d.toQuatrn().inverse()), d); 91 87 test("Rotate Axis", c, c.rotate(d.toAxis()).rotate(d.toAxis().inverse()), d); 92 88 trunk/src/yage/core/quatrn.d
r15 r18 50 50 51 51 // Quaternions used in testing 52 Quatrn[ 13] q;53 q [ 0]= Vec3f(0, 0, 0).toQuatrn();54 q [ 1]= Vec3f(1, 0, 0).toQuatrn();55 q [ 2]= Vec3f(0, 1, 0).toQuatrn();56 q [ 3]= Vec3f(0, 0, 1).toQuatrn();57 q [ 4]= Vec3f(.5, 0.0001, 2).toQuatrn();58 q [ 5]= Vec3f(.5, 1, -2).toQuatrn();59 q [ 6]= Vec3f(.5, -1, -2).toQuatrn();60 q [ 7]= Vec3f(-.75, -1, -1.7).toQuatrn();61 q [ 8]= Vec3f(-.65, -1, 2).toQuatrn();62 q [ 9]= Vec3f(-.55, 0.005, 1).toQuatrn();63 q [10]= Vec3f(-.371, .1, -1.570796).toQuatrn();64 q [11]= Vec3f(1.971, -2, 1.2).toQuatrn();65 q [12]= Vec3f(0.0001, 0.0001, 0.0001).toQuatrn();52 Quatrn[] q; 53 q~= Vec3f(0, 0, 0).toQuatrn(); 54 q~= Vec3f(1, 0, 0).toQuatrn(); 55 q~= Vec3f(0, 1, 0).toQuatrn(); 56 q~= Vec3f(0, 0, 1).toQuatrn(); 57 q~= Vec3f(.5, 0.0001, 2).toQuatrn(); 58 q~= Vec3f(.5, 1, -2).toQuatrn(); 59 q~= Vec3f(.5, -1, -2).toQuatrn(); 60 q~= Vec3f(-.75, -1, -1.7).toQuatrn(); 61 q~= Vec3f(-.65, -1, 2).toQuatrn(); 62 q~= Vec3f(-.55, 0.005, 1).toQuatrn(); 63 q~= Vec3f(-.371, .1, -1.570796).toQuatrn(); 64 q~= Vec3f(1.971, -2, 1.2).toQuatrn(); 65 q~= Vec3f(0.0001, 0.0001, 0.0001).toQuatrn(); 66 66 67 67 foreach (Quatrn c; q) … … 315 315 { double angle = acos(w)*2; 316 316 double sin_a = sqrt(1.0 - w*w); 317 if (fabs(sin_a) < 0.0005) 317 if (fabs(sin_a) < 0.0005) // arbitrary small number 318 318 sin_a = 1; 319 319 Vec3f axis; … … 321 321 axis.y = y/sin_a; 322 322 axis.z = z/sin_a; 323 axis = axis.length(angle); 324 return axis; 323 if (angle>0) 324 return axis.length(angle); 325 return Vec3f(); // zero vector, no rotation 325 326 } 326 327 trunk/src/yage/gameobj.d
r17 r18 63 63 this (BaseNode parent) 64 64 { super(parent); 65 this.setLifetime(5); 65 66 66 67 SpriteNode flare = new SpriteNode(this); 67 68 flare.setMaterial("fx/flare1.xml"); 68 flare.setLifetime(5);69 69 flare.setScale(2); 70 70 71 71 LightNode light = new LightNode(this); 72 72 light.setDiffuse(1, .5, 0); 73 light.setLightRadius( 100);73 light.setLightRadius(256); 74 74 } 75 75 } trunk/src/yage/main.d
r17 r18 72 72 Ship ship = new Ship(scene); 73 73 ship.setPosition(Vec3f(0, 1000, 1300)); 74 ship.getCameraSpot().setPosition(0, 2000, 10000);74 ship.getCameraSpot().setPosition(0, 1000, 1300); 75 75 camera.setParent(ship.getCameraSpot()); 76 76 77 77 // Universe 78 scene.generate(300, 2000); 78 scene.generate(400, 2000); 79 80 void doSomething() 81 { // Why do some functions work and others cause access violations? 82 star.setVelocity(1, 2, 3); 83 star.setVisible(true); // causes access violation 84 } 85 star.onUpdate(&doSomething); 79 86 80 87 // main loop … … 84 91 Input.mousedx = Input.mousedy = 0; 85 92 86 87 93 int fps = 0; 88 94 //Input.setGrabMouse(true); … … 91 97 dtime = delta.get(); 92 98 delta.reset(); 93 dtime = 0.03;99 //dtime = 0.03; 94 100 95 101 // check for exit … … 120 126 121 127 Input.processInput(); 128 ship.getSpring().update(dtime); 122 129 scene.update(dtime); 123 130 camera.toTexture(); trunk/src/yage/node/basenode.d
r5 r18 8 8 9 9 import std.stdio; 10 import std.traits; 10 11 import yage.core.horde; 11 12 import yage.core.misc; … … 40 41 41 42 float lifetime = float.infinity; // in seconds 42 BaseNode[] path; // used in calcTransform 43 BaseNode[] path; // used in calcTransform 44 45 void delegate() on_update = null; // called on update 43 46 44 47 public: … … 46 49 /// Construct. 47 50 this() 48 { debug scope( failure) writef("Backtrace xx "__FILE__"(",__LINE__,")\n");51 { debug scope(failure) writef("Backtrace xx "__FILE__"(",__LINE__,")\n"); 49 52 children = new Horde!(Node); 50 53 } … … 92 95 } 93 96 97 /// Get the time before the Node will be removed. 98 float getLifetime() 99 { return lifetime; 100 } 94 101 /** 95 102 * The Node will be removed (along with all of its children) after a given time. … … 101 108 } 102 109 103 /// Get the time before the Node will be removed. 104 float getLifetime() 105 { return lifetime; 106 } 110 /** 111 * Set a function that will be called every time this Node is updated. 112 * Params: 113 * on_update = the function that will be called. Use null as an argument to clear 114 * the function. 115 * Bugs: 116 * Certain Node methods cause access violations. Perhaps this is a dmd bug? 117 * Example: 118 * -------------------------------- 119 * Node a = new Node(scene); 120 * 121 * void doSomething() 122 * { self.setScale(a.getLifetime()); // Get smaller over time 123 * } 124 * a.setLifetime(5); 125 * a.onUpdate(&doSomething); 126 * --------------------------------*/ 127 void onUpdate(void delegate() on_update) 128 { this.on_update = on_update; 129 } 130 131 /// Return a string representation of this Node for human reading. 132 char[] toString() 133 { return toString(false); 134 } 135 136 /** 137 * Return a string representation of this Node for human reading. 138 * Params: 139 * recurse = Print this Node's children as well. */ 140 char[] toString(bool recurse) 141 { static int indent; 142 char[] pad = new char[indent*3]; 143 pad[0..length] = ' '; 144 145 char[] result = pad ~ "[" ~ getType() ~ "]\n"; 146 if(parent) 147 result ~= pad~"Parent : " ~ parent.getType() ~ "\n"; 148 result ~= pad~"Position: " ~ Vec3f(transform.v[12..15]).toString() ~ "\n"; 149 result ~= pad~"Rotation: " ~ transform.toAxis().toString() ~ "\n"; 150 result ~= pad~"Velocity: " ~ transform.toAxis().toString() ~ "\n"; 151 result ~= pad~"Angular : " ~ transform.toAxis().toString() ~ "\n"; 152 result ~= pad~"Children: " ~ std.string.toString(children.length) ~ "\n"; 153 delete pad; 154 155 if (recurse) 156 { indent++; 157 foreach (Node c; children.array()) 158 result ~= c.toString(recurse); 159 indent--; 160 } 161 162 return result; 163 } 164 165 /// Update the positions and rotations of this Node and all children by delta seconds. 166 void update(float delta) 167 { 168 debug scope(failure) writef("Backtrace xx "__FILE__"(",__LINE__,")\n"); 169 170 // Call the onUpdate() function 171 if (on_update !is null) 172 on_update(); 173 174 // Decrement lifetime and remove children with < 0 lifetime. 175 // We iterate in reverse to ensure we hit all of them, since the last item 176 // is moved over the current item when removing from a Horde. 177 lifetime-= delta; 178 int i = children.length-1; 179 while (i>=0) 180 { if (children[i].lifetime<=0) 181 children[i].remove(); 182 else 183 children[i].update(delta); //may as well update it in the same loop 184 i--; 185 } 186 } 187 107 188 108 189 /** … … 178 259 } 179 260 180 /// Return a string representation of this Node for human reading.181 char[] toString()182 { return toString(false);183 }184 185 /**186 * Return a string representation of this Node for human reading.187 * Params:188 * recurse = Print this Node's children as well. */189 char[] toString(bool recurse)190 { static int indent;191 char[] pad = new char[indent*3];192 pad[0..length] = ' ';193 194 char[] result = pad ~ "[" ~ getType() ~ "]\n";195 if(parent)196 result ~= pad~"Parent : " ~ parent.getType() ~ "\n";197 result ~= pad~"Position: " ~ Vec3f(transform.v[12..15]).toString() ~ "\n";198 result ~= pad~"Rotation: " ~ transform.toAxis().toString() ~ "\n";199 result ~= pad~"Velocity: " ~ transform.toAxis().toString() ~ "\n";200 result ~= pad~"Angular : " ~ transform.toAxis().toString() ~ "\n";201 result ~= pad~"Children: " ~ std.string.toString(children.length) ~ "\n";202 delete pad;203 204 if (recurse)205 { indent++;206 foreach (Node c; children.array())207 result ~= c.toString(recurse);208 indent--;209 }210 211 return result;212 }213 214 /// Update the positions and rotations of this Node and all children by delta seconds.215 void update(float delta)216 {217 debug scope( failure ) writef("Backtrace xx "__FILE__"(",__LINE__,")\n");218 219 // Decrement lifetime and remove children with < 0 lifetime.220 // We iterate in reverse to ensure we hit all of them, since the last item221 // is moved over the current item when removing from a Horde.222 lifetime-= delta;223 int i = children.length-1;224 while (i>=0)225 { if (children[i].lifeti
