Jelajahi Sumber

SpriteManager Interface

sebastien 7 tahun lalu
induk
melakukan
dc17d3a63b

+ 2 - 2
src/Rendering/babylon.renderingGroup.ts

@@ -6,7 +6,7 @@
         private _alphaTestSubMeshes = new SmartArray<SubMesh>(256);
         private _depthOnlySubMeshes = new SmartArray<SubMesh>(256);
         private _particleSystems = new SmartArray<IParticleSystem>(256);
-        private _spriteManagers = new SmartArray<SpriteManager>(256);
+        private _spriteManagers = new SmartArray<ISpriteManager>(256);
 
         private _opaqueSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number>;
         private _alphaTestSortCompareFn: Nullable<(a: SubMesh, b: SubMesh) => number>;
@@ -350,7 +350,7 @@
             }
         }
 
-        public dispatchSprites(spriteManager: SpriteManager) {
+        public dispatchSprites(spriteManager: ISpriteManager) {
             this._spriteManagers.push(spriteManager);
         }
 

+ 1 - 1
src/Rendering/babylon.renderingManager.ts

@@ -158,7 +158,7 @@
             }
         }
 
-        public dispatchSprites(spriteManager: SpriteManager) {
+        public dispatchSprites(spriteManager: ISpriteManager) {
             var renderingGroupId = spriteManager.renderingGroupId || 0;
 
             this._prepareRenderingGroup(renderingGroupId);

+ 2 - 2
src/Sprites/babylon.sprite.ts

@@ -19,7 +19,7 @@
         private _toIndex = 0;
         private _delay = 0;
         private _direction = 1;
-        private _manager: SpriteManager;
+        private _manager: ISpriteManager;
         private _time = 0;
         private _onAnimationEnd: () => void;
         /**
@@ -36,7 +36,7 @@
             this.height = value;
         }
 
-        constructor(public name: string, manager: SpriteManager) {
+        constructor(public name: string, manager: ISpriteManager) {
             this._manager = manager;
 
             this._manager.sprites.push(this);

+ 15 - 1
src/Sprites/babylon.spriteManager.ts

@@ -1,5 +1,19 @@
 module BABYLON {
-    export class SpriteManager {
+    export interface ISpriteManager extends IDisposable {
+        layerMask: number;
+
+        isPickable: boolean;
+
+        renderingGroupId: number;
+
+        sprites: Array<Sprite>;
+
+        intersects(ray: Ray, camera:Camera, predicate?: (sprite: Sprite) => boolean, fastCheck?: boolean): Nullable<PickingInfo>;
+
+        render(): void;
+    }
+
+    export class SpriteManager implements ISpriteManager {
         public sprites = new Array<Sprite>();
         public renderingGroupId = 0;
         public layerMask: number = 0x0FFFFFFF;

+ 1 - 1
src/babylon.scene.ts

@@ -809,7 +809,7 @@
         * All of the sprite managers added to this scene
         * @see http://doc.babylonjs.com/babylon101/sprites
         */
-        public spriteManagers = new Array<SpriteManager>();
+        public spriteManagers = new Array<ISpriteManager>();
 
         // Skeletons
         private _skeletonsEnabled = true;