Changeset 73
- Timestamp:
- 06/07/08 00:24:28 (6 months ago)
- Files:
-
- trunk/bin/yage3d.exe (modified) (previous)
- trunk/src/demo1/gameobj.d (modified) (1 diff)
- trunk/src/demo2/gameobj.d (modified) (1 diff)
- trunk/src/demo2/main.d (modified) (1 diff)
- trunk/src/yage/all.d (modified) (1 diff)
- trunk/src/yage/core/array.d (modified) (4 diffs)
- trunk/src/yage/core/tree.d (modified) (6 diffs)
- trunk/src/yage/gui/surface.d (modified) (9 diffs)
- trunk/src/yage/node (deleted)
- trunk/src/yage/resource/layer.d (modified) (1 diff)
- trunk/src/yage/resource/model.d (modified) (1 diff)
- trunk/src/yage/scene (added)
- trunk/src/yage/scene/all.d (copied) (copied from trunk/src/yage/node/all.d) (1 diff)
- trunk/src/yage/scene/camera.d (copied) (copied from trunk/src/yage/node/camera.d) (2 diffs)
- trunk/src/yage/scene/graph.d (copied) (copied from trunk/src/yage/node/graph.d) (2 diffs)
- trunk/src/yage/scene/light.d (copied) (copied from trunk/src/yage/node/light.d) (2 diffs)
- trunk/src/yage/scene/model.d (copied) (copied from trunk/src/yage/node/model.d) (2 diffs)
- trunk/src/yage/scene/movable.d (copied) (copied from trunk/src/yage/node/movable.d) (3 diffs)
- trunk/src/yage/scene/node.d (copied) (copied from trunk/src/yage/node/node.d) (5 diffs)
- trunk/src/yage/scene/scene.d (copied) (copied from trunk/src/yage/node/scene.d) (1 diff)
- trunk/src/yage/scene/sound.d (copied) (copied from trunk/src/yage/node/sound.d) (2 diffs)
- trunk/src/yage/scene/sprite.d (copied) (copied from trunk/src/yage/node/sprite.d) (1 diff)
- trunk/src/yage/scene/terrain.d (copied) (copied from trunk/src/yage/node/terrain.d) (2 diffs)
- trunk/src/yage/scene/visible.d (copied) (copied from trunk/src/yage/node/visible.d) (3 diffs)
- trunk/src/yage/system/device.d (modified) (1 diff)
- trunk/src/yage/system/render.d (modified) (2 diffs)
- trunk/src/yage/util/flyer.d (modified) (1 diff)
- trunk/src/yage/util/misc.d (modified) (2 diffs)
- trunk/src/yage/util/spring.d (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/demo1/gameobj.d
r71 r73 16 16 import yage.resource.resource; 17 17 import yage.resource.model; 18 import yage. node.all;18 import yage.scene.all; 19 19 20 20 trunk/src/demo2/gameobj.d
r71 r73 16 16 import yage.resource.resource; 17 17 import yage.resource.model; 18 import yage. node.all;18 import yage.scene.all; 19 19 20 20 trunk/src/demo2/main.d
r71 r73 20 20 import demo2.gameobj; 21 21 22 // Current program entry point. This may change in the future. 23 int main(){ 22 // program entry point. 23 int main() 24 { 25 /* 26 Object[] array1; 27 Object[uint] array2; 28 29 Timer a = new Timer(); 30 for (int j=0; j<100; j++) 31 for (int i=0; i<1000; i++) 32 array1 ~= new Object(); 33 writefln("array create: " ~ a.toString()); 34 35 36 a.reset(); 37 for (int j=0; j<100; j++) 38 for (int i=0; i<1000; i++) 39 {}; 40 writefln("array loop: " ~ a.toString()); 41 42 a.reset(); 43 for (int j=0; j<100; j++) 44 for (int i=0; i<1000; i++) 45 { Object b = new Object; 46 array2[b.toHash()] = b; 47 } 48 writefln("aa create: " ~ a.toString()); 49 //array2.rehash; 50 51 Timer c = new Timer(); 52 for (int j=0; j<100; j++) 53 foreach (i; array2) 54 {} 55 writefln("aa loop: " ~ c.toString()); 56 57 return 0; 58 */ 24 59 25 60 // Init (resolution, depth, fullscreen, aa-samples) trunk/src/yage/all.d
r36 r73 13 13 { import yage.core.all; 14 14 import yage.resource.all; 15 import yage. node.all;15 import yage.scene.all; 16 16 import yage.util.all; 17 17 import yage.system.all; trunk/src/yage/core/array.d
r68 r73 69 69 70 70 71 /// Return the maximum value of an array.72 T amax(T)(T[] array )71 /// Return the element with the maximum value of an array. 72 T amax(T)(T[] array, ) 73 73 { T m = array[0]; 74 74 foreach (T a; array) 75 75 if (a>m) 76 76 m=a; 77 return m; 78 } 79 /// 80 T amax(T, K)(T[] array, K delegate(T elem) getKey) 81 { T m = array[0]; 82 K mk = getKey(array[0]); 83 foreach (T a; array) 84 if (getKey(a)>mk) 85 m=a; 86 return m; 87 } 88 T amax(T, K)(T[T] array, K delegate(T elem) getKey) 89 { T m; 90 K mk; 91 foreach (T a; array) 92 { m = a; 93 mk = getKey(a); 94 break; 95 } 96 foreach (T a; array) 97 { if (getKey(a)>mk) 98 m=a; 99 } 77 100 return m; 78 101 } … … 169 192 * -------------------------------- 170 193 */ 171 void radixSort(T)(inout T[] array )172 { radixSort(array, (T a) { return a; });194 void radixSort(T)(inout T[] array, bool increasing=true) 195 { radixSort(array, increasing, (T a) { return a; }); 173 196 } 174 197 175 198 /// ditto 176 void radixSort(T, K)(inout T[] array, K delegate(T elem) getKey, bool signed=true)199 void radixSort(T, K)(inout T[] array, bool increasing, K delegate(T elem) getKey, bool signed=true) 177 200 { // Are we sorting floats? 178 201 bool isfloat = false; … … 255 278 // Move everything back again 256 279 // Radix is not in place, if odd number of passes, move data back to return buffer 257 static if (K.sizeof % 2 == 1) 258 for (size_t i=0; i<count; i++) 259 array[i] = elem_copy[i].data; 280 if (increasing) 281 { static if (K.sizeof % 2 == 1) 282 for (size_t i=0; i<count; i++) 283 array[i] = elem_copy[i].data; 284 else 285 for (size_t i=0; i<count; i++) 286 array[i] = elem[i].data; 287 } 260 288 else 261 for (size_t i=0; i<count; i++) 262 array[i] = elem[i].data; 289 { static if (K.sizeof % 2 == 1) 290 for (size_t i=0; i<count; i++) 291 array[count-i-1] = elem_copy[i].data; 292 else 293 for (size_t i=0; i<count; i++) 294 array[count-i-1] = elem[i].data; 295 } 263 296 264 297 // free memory … … 281 314 test2.radixSort(); 282 315 assert(test2 == [-4, -1, 0, 2, 3, 5, 7]); 316 test2.radixSort(false); 317 assert(test2 == [7, 5, 3, 2, 0, -1, -4]); 283 318 284 319 // Sort doubles trunk/src/yage/core/tree.d
r72 r73 7 7 8 8 import std.gc; 9 import std.stdio; 10 import yage.core.array; 9 11 10 12 /** … … 19 21 { 20 22 T parent; 21 T[T] children; 23 T[] children; 24 int index=-1; 22 25 23 26 /// Ensure that child is removed from its parent. 24 ~this()25 { remove();26 }27 // ~this() 28 // { remove(); 29 // } 27 30 28 31 /** … … 40 43 41 44 /// Get an array of this element's children 42 T[ T] getChildren()45 T[] getChildren() 43 46 { return children; 44 47 } … … 53 56 in { assert(_parent !is null); 54 57 }body 55 { if (parent && cast(T)this in parent.children)56 parent.children.remove(cast(T)this);58 { if (parent && parent.isChild(cast(T)this)) 59 yage.core.array.remove(parent.children, index); 57 60 58 61 // Add to new parent 59 62 parent = _parent; 60 parent.children[cast(T)this] = cast(T)this; 63 parent.children ~= cast(T)this; 64 index = parent.children.length-1; 61 65 return cast(T)this; 62 66 } … … 64 68 /// Is elem a child of this element? 65 69 bool isChild(T elem) 66 { return cast(bool)(elem in children); 70 { if (elem.index < 0 || elem.index >= children.length) 71 return false; 72 return cast(bool)(children[elem.index] == elem); 67 73 } 68 74 … … 70 76 void remove() 71 77 { // this needs to happen because some children (like lights) may need to do more in their remove() function. 72 foreach (T c; children)78 foreach_reverse(T c; children) 73 79 c.remove(); 74 if (parent && cast(T)this in parent.children) 75 parent.children.remove(cast(T)this); 80 81 if (index > 0) 82 { yage.core.all.remove(parent.children, index, false); 83 if (index < parent.children.length) 84 parent.children[index].index = index; 85 index = -1; // so remove can't be called twice. 86 } 87 76 88 } 77 89 } trunk/src/yage/gui/surface.d
r71 r73 33 33 * Surfacs are positioned relative to their parent. 34 34 * A style struct defines most of the styles associated with the Surface. */ 35 class Surface{ 35 class Surface : Tree!(Surface) 36 { 36 37 static final Style defaultStyle; 37 38 Style style; … … 40 41 protected GPUTexture texture; 41 42 42 Surface parent;43 Surface[] children;43 //Surface parent; 44 //Surface[] children; 44 45 //Not sure if I should have a reference to Parent or not, but for now, I will. 45 46 … … 106 107 void mouseleave(Surface next, byte buttons, Vec2i coordinates){ 107 108 if(mouseIn == true){ 108 if(is Sub(next))109 if(isChild(next)) 109 110 return; 110 111 else{ … … 477 478 } 478 479 479 //I am clueless about this, so it's commented 480 // Sort subs 481 //if (!subs.ordered(true, (Surface s){return s.style.zIndex;} )) 482 // subs.radixSort((Surface s){return s.style.zIndex;} ); 480 // Using a zbuffer might make this unecessary. tradeoffs? 481 if (!children.sorted(true, (Surface s){return s.style.zIndex;} )) 482 children.radixSort(true, (Surface s){return s.style.zIndex;} ); 483 483 484 foreach(sub; children) 485 sub.draw(); 484 if (children.length) 485 { writefln("zIndices:"); 486 foreach(surf; children) 487 writefln(surf.style.zIndex); 488 writefln("end"); 489 } 490 491 foreach(surf; children) 492 surf.draw(); 486 493 } 487 494 } … … 491 498 } 492 499 493 void raise(){ //Could be cleaner, whatever, I'll fix it later 494 if(parent is null){ 495 uint index = findIndex(this, Device.children); 496 for(; index < Device.children.length - 1; index++) 497 Device.children[index] = Device.children[index+1]; 498 Device.children[$-1] = this; 499 } 500 else{ 501 uint index = findIndex(this, parent.children); 502 for(; index < parent.children.length - 1; index++) 503 parent.children[index] = parent.children[index+1]; 504 parent.children[$-1] = this; 505 } 506 if(onFocus) onFocus(this); 500 void raise() 501 { this.style.zIndex = amax(parent.children, (Surface s){return s.style.zIndex;}).style.zIndex + 1; 502 writefln(this.style.zIndex); 507 503 } 508 504 … … 534 530 Input.grabbed = grab; 535 531 } 536 537 bool isSub(Surface surf){ 538 foreach(sub; children){ 539 if (sub == surf) return true; 540 } 541 return false; 542 } 532 543 533 } 544 534 545 535 //Perhaps put into yage.system.input 546 536 //Could be better, a method perhaps... 537 /* 547 538 Surface findSurface(int x, int y){ 548 foreach _reverse(sub; Device.children){539 foreach(sub; Device.children){ 549 540 if(sub.position1.x <= x && x <= sub.position2.x && sub.position1.y <= y && y <= sub.position2.y){ 550 541 return findSurface(sub, x, y); … … 553 544 return null; 554 545 } 546 */ 555 547 //Could be better, a method perhaps... 548 //TODO: Modify to search from highest to lowest z-index. 549 /* 556 550 Surface findSurface(Surface surface,int x, int y){ 557 foreach _reverse(sub; surface.children){551 foreach(sub; surface.children){ 558 552 if(sub.position1.x <= x && x <= sub.position2.x && sub.position1.y <= y && y <= sub.position2.y){ 559 553 return findSurface(sub, x, y); … … 562 556 return surface; 563 557 } 564 558 */ 559 560 561 Surface findSurface(int x, int y, Surface self=null) 562 { // Get children as array. 563 Surface[] children_sorted; 564 if (self is null) 565 children_sorted = Device.children; 566 else 567 children_sorted = self.children; 568 569 // Sort 570 if (!children_sorted.sorted(false, (Surface s){return s.style.zIndex;} )) 571 children_sorted.radixSort(false, (Surface s){return s.style.zIndex;} ); 572 573 foreach(surf; children_sorted) 574 if(surf.position1.x <= x && x <= surf.position2.x && surf.position1.y <= y && y <= surf.position2.y) 575 return findSurface(x, y, surf); 576 return self; 577 } 578 579 /* 565 580 uint findIndex(Surface surface, Surface[] array){ //perhaps put into a template 566 581 foreach(uint index, Surface current; array){ … … 569 584 return 1 << 8; //Implement this for not in subs 570 585 } 586 */ trunk/src/yage/resource/layer.d
r68 r73 21 21 import yage.resource.resource; 22 22 import yage.resource.shader; 23 import yage. node.light;23 import yage.scene.light; 24 24 25 25 // Used as default values for function params trunk/src/yage/resource/model.d
r70 r73 21 21 import yage.resource.mesh; 22 22 import yage.resource.resource; 23 import yage. node.visible;23 import yage.scene.visible; 24 24 import yage.system.constant; 25 25 import yage.system.device; trunk/src/yage/scene/all.d
r70 r73 10 10 */ 11 11 12 module yage. node.all;12 module yage.scene.all; 13 13 14 14 public 15 { import yage. node.movable;16 import yage. node.camera;17 import yage. node.graph;18 import yage. node.light;19 import yage. node.model;20 import yage. node.visible;21 import yage. node.node;22 import yage. node.movable;23 import yage. node.scene;24 import yage. node.sprite;25 import yage. node.sound;26 import yage. node.terrain;15 { import yage.scene.movable; 16 import yage.scene.camera; 17 import yage.scene.graph; 18 import yage.scene.light; 19 import yage.scene.model; 20 import yage.scene.visible; 21 import yage.scene.node; 22 import yage.scene.movable; 23 import yage.scene.scene; 24 import yage.scene.sprite; 25 import yage.scene.sound; 26 import yage.scene.terrain; 27 27 } trunk/src/yage/scene/camera.d
r70 r73 5 5 */ 6 6 7 module yage. node.camera;7 module yage.scene.camera; 8 8 9 9 import std.math; … … 17 17 import yage.core.vector; 18 18 import yage.resource.texture; 19 import yage. node.visible;20 import yage. node.node;21 import yage. node.scene;22 import yage. node.movable;19 import yage.scene.visible; 20 import yage.scene.node; 21 import yage.scene.scene; 22 import yage.scene.movable; 23 23 import yage.system.constant; 24 24 import yage.system.device; trunk/src/yage/scene/graph.d
r71 r73 5 5 */ 6 6 7 module yage. node.graph;7 module yage.scene.graph; 8 8 9 9 import std.stdio; … … 15 15 import yage.resource.mesh; 16 16 import yage.resource.model; 17 import yage. node.node;18 import yage. node.visible;19 import yage. node.scene;17 import yage.scene.node; 18 import yage.scene.visible; 19 import yage.scene.scene; 20 20 21 21 /** trunk/src/yage/scene/light.d
r70 r73 5 5 */ 6 6 7 module yage. node.light;7 module yage.scene.light; 8 8 9 9 import std.math; … … 13 13 import yage.core.all; 14 14 import yage.resource.material; 15 import yage. node.node;16 import yage. node.movable;17 import yage. node.scene;15 import yage.scene.node; 16 import yage.scene.movable; 17 import yage.scene.scene; 18 18 import yage.system.device; 19 19 import yage.system.constant; 20 20 import yage.system.render; 21 import yage. node.camera: CameraNode;21 import yage.scene.camera: CameraNode; 22 22 23 23 /** trunk/src/yage/scene/model.d
r72 r73 5 5 */ 6 6 7 module yage. node.model;7 module yage.scene.model; 8 8 9 9 import yage.core.vector; … … 13 13 import yage.resource.model; 14 14 import yage.resource.material; 15 import yage. node.visible;16 import yage. node.node;15 import yage.scene.visible; 16 import yage.scene.node; 17 17 18 18 trunk/src/yage/scene/movable.d
r70 r73 5 5 */ 6 6 7 module yage. node.movable;7 module yage.scene.movable; 8 8 9 9 import std.stdio; … … 11 11 import yage.core.vector; 12 12 import yage.core.misc; 13 import yage. node.all;14 import yage. node.scene;15 import yage. node.light;16 import yage. node.node;17 import yage. node.movable;13 import yage.scene.all; 14 import yage.scene.scene; 15 import yage.scene.light; 16 import yage.scene.node; 17 import yage.scene.movable; 18 18 19 19 … … 21 21 * This class adds numerous methods for getting and setting position, rotation, velocity, and angular velocity. 22 22 * See_Also: 23 * yage. node.visible24 * yage. node.node */23 * yage.scene.visible 24 * yage.scene.node */ 25 25 class MovableNode : Node 26 26 { trunk/src/yage/scene/node.d
r72 r73 5 5 */ 6 6 7 module yage. node.node;7 module yage.scene.node; 8 8 9 9 import std.stdio; … … 12 12 import yage.core.all; 13 13 import yage.core.tree; 14 import yage. node.visible;15 import yage. node.scene;16 import yage. node.movable;17 import yage. node.all;18 import yage. node.light;19 import yage. node.node;14 import yage.scene.visible; 15 import yage.scene.scene; 16 import yage.scene.movable; 17 import yage.scene.all; 18 import yage.scene.light; 19 import yage.scene.node; 20 20 21 21 /** … … 107 107 // Is there a better way to do this? 108 108 switch (c.classinfo.name) 109 { case "yage. node.camera.CameraNode": new CameraNode(this, cast(CameraNode)c); break;110 case "yage. node.graph.GraphNode": new GraphNode(this, cast(GraphNode)c); break;111 case "yage. node.light.LightNode": new LightNode(this, cast(LightNode)c); break;112 case "yage. node.model.ModelNode": new ModelNode(this, cast(ModelNode)c); break;113 case "yage. node.sound.SoundNode": new SoundNode(this, cast(SoundNode)c); break;114 case "yage. node.sprite.SpriteNode": new SpriteNode(this, cast(SpriteNode)c); break;115 case "yage. node.terrain.TerrainNode": new TerrainNode(this, cast(TerrainNode)c); break;109 { case "yage.scene.camera.CameraNode": new CameraNode(this, cast(CameraNode)c); break; 110 case "yage.scene.graph.GraphNode": new GraphNode(this, cast(GraphNode)c); break; 111 case "yage.scene.light.LightNode": new LightNode(this, cast(LightNode)c); break; 112 case "yage.scene.model.ModelNode": new ModelNode(this, cast(ModelNode)c); break; 113 case "yage.scene.sound.SoundNode": new SoundNode(this, cast(SoundNode)c); break; 114 case "yage.scene.sprite.SpriteNode": new SpriteNode(this, cast(SpriteNode)c); break; 115 case "yage.scene.terrain.TerrainNode": new TerrainNode(this, cast(TerrainNode)c); break; 116 116 default: 117 117 } … … 153 153 } 154 154 155 /// Get the type of this Node as a string; i.e. "yage. node.visible.ModelNode".155 /// Get the type of this Node as a string; i.e. "yage.scene.visible.ModelNode". 156 156 char[] getType() 157 157 { return this.classinfo.name; … … 237 237 on_update(this); 238 238 239 foreach(Node c; children) 239 // We iterate in reverse in case a child deletes itself. 240 // What about one child deleting another? 241 // I guess the preferred way to remove an object would be to set its lifetime to 0. 242 // Perhaps we should override remove to do this so that items are removed in a controlled way? 243 foreach_reverse(Node c; children) 240 244 c.update(delta); 241 245 trunk/src/yage/scene/scene.d
r70 r73 5 5 */ 6 6 7 module yage. node.scene;7 module yage.scene.scene; 8 8 9 9 import derelict.opengl.gl; 10 10 import derelict.openal.al; 11 11 import yage.core.all; 12 import yage. node.visible;13 import yage. node.light;14 import yage. node.node;12 import yage.scene.visible; 13 import yage.scene.light; 14 import yage.scene.node; 15 15 16 16 trunk/src/yage/scene/sound.d
r70 r73 5 5 */ 6 6 7 module yage. node.sound;7 module yage.scene.sound; 8 8 9 9 import std.math; … … 14 14 import yage.resource.resource; 15 15 import yage.resource.sound; 16 import yage. node.node;17 import yage. node.movable;18 import yage. node.scene;16 import yage.scene.node; 17 import yage.scene.movable; 18 import yage.scene.scene; 19 19 20 20 trunk/src/yage/scene/sprite.d
r71 r73 5 5 */ 6 6 7 module yage. node.sprite;7 module yage.scene.sprite; 8 8 9 9 import yage.resource.resource; 10 10 import yage.resource.material; 11 import yage. node.node;12 import yage. node.visible;11 import yage.scene.node; 12 import yage.scene.visible; 13 13 14 14 trunk/src/yage/scene/terrain.d
r71 r73 5 5 */ 6 6 7 module yage. node.terrain;7 module yage.scene.terrain; 8 8 9 9 import std.conv; … … 18 18 import yage.resource.mesh; 19 19 import yage.resource.image; 20 import yage. node.node;21 import yage. node.visible;20 import yage.scene.node; 21 import yage.scene.visible; 22 22 import yage.core.matrix; 23 23 import yage.core.vector; trunk/src/yage/scene/visible.d
r72 r73 5 5 */ 6 6 7 module yage. node.visible;7 module yage.scene.visible; 8 8 9 9 import std.math; … … 15 15 import derelict.sdl.sdl; 16 16 import yage.core.all; 17 import yage. node.all;18 import yage. node.scene;19 import yage. node.light;20 import yage. node.node;21 import yage. node.movable;17 import yage.scene.all; 18 import yage.scene.scene; 19 import yage.scene.light; 20 import yage.scene.node; 21 import yage.scene.movable; 22 22 import yage.system.constant; 23 23 import yage.system.device; … … 28 28 * VisibleNode is the parent of all Nodes that are visible and can be rendered. 29 29 * See_Also: 30 * yage. node.MovableNode31 * yage. node.Node */30 * yage.scene.MovableNode 31 * yage.scene.Node */ 32 32 abstract class VisibleNode : MovableNode 33 33 { trunk/src/yage/system/device.d
r71 r73 238 238 /** 239 239 * Get the number from the hardware specified by constant. 240 * Params: constant is a DEVICE constant defined in yage.device.constant.*/ 240 * Params: constant is a DEVICE constant defined in yage.device.constant, can be 241 * DEVICE_MAX_LIGHTS, DEVICE_MAX_TEXTURE_SIZE, or DEVICE_MAX_TEXTURES. */ 241 242 static int getLimit(int constant) 242 243 { int result; trunk/src/yage/system/render.d
r71 r73 18 18 import yage.resource.model; 19 19 import yage.resource.mesh; 20 import yage. node.all;21 import yage. node.camera: CameraNode;20 import yage.scene.all; 21 import yage.scene.camera: CameraNode; 22 22 23 23 private struct Attribute2 … … 88 88 89 89 switch(n.getType()) 90 { case "yage. node.model.ModelNode":90 { case "yage.scene.model.ModelNode": 91 91 model((cast(ModelNode)n).getModel(), n); 92 92 break; 93 case "yage. node.sprite.SpriteNode":93 case "yage.scene.sprite.SpriteNode": 94 94 sprite((cast(SpriteNode)n).getMaterial(), n); 95 95 break; 96 case "yage. node.graph.GraphNode":96 case "yage.scene.graph.GraphNode": 97 97 model((cast(GraphNode)n).getModel(), n); 98 98 break; 99 case "yage. node.terrain.TerrainNode":99 case "yage.scene.terrain.TerrainNode": 100 100 model((cast(TerrainNode)n).getModel(), n); 101 101 break; 102 case "yage. node.terrain.LightNode":102 case "yage.scene.terrain.LightNode": 103 103 cube(n); // todo: render as color of light? 104 104 break; trunk/src/yage/util/flyer.d
r70 r73 8 8 9 9 import yage.core.all; 10 import yage. node.node;11 import yage. node.camera;12 import yage. node.movable;10 import yage.scene.node; 11 import yage.scene.camera; 12 import yage.scene.movable; 13 13 import yage.system.input; 14 14 trunk/src/yage/util/misc.d
r71 r73 13 13 import yage.resource.resource; 14 14 import yage.system.input; 15 import yage. node.all;15 import yage.scene.all; 16 16 import yage.core.all; 17 17 … … 27 27 if (instance.getType() == "SoundNode") 28 28 a = new SoundNode(instance.getParent(), cast(SoundNode)instance); 29 if (instance.getType() == "yage. node.model.ModelNode")29 if (instance.getType() == "yage.scene.model.ModelNode") 30 30 a = new ModelNode(instance.getParent(), cast(ModelNode)instance); 31 31 if (instance.getType() == "LightNode") trunk/src/yage/util/spring.d
r71 r73 9 9 import std.stdio; 10 10 import yage.core.all; 11 import yage. node.all;11 import yage.scene.all; 12 12 13 13
