UNPKG

awayjs-display

Version:
58 lines (46 loc) 1.54 kB
import ITraverser from "../ITraverser"; import DisplayObject from "../display/DisplayObject"; import DisplayObjectContainer from "../display/DisplayObjectContainer"; import BasicPartition from "../partition/BasicPartition"; import PartitionBase from "../partition/PartitionBase"; class Scene extends DisplayObjectContainer { private _expandedPartitions:Array<PartitionBase> = new Array<PartitionBase>(); private _partitions:Array<PartitionBase> = new Array<PartitionBase>(); public _iCollectionMark = 0; constructor(partition:PartitionBase = null) { super(); this.partition = partition || new BasicPartition(); this._iIsRoot = true; this._pScene = this; } public traversePartitions(traverser:ITraverser) { var i:number = 0; var len:number = this._partitions.length; while (i < len) this._partitions[i++].traverse(traverser); } /** * @internal */ public _iRegisterPartition(partition:PartitionBase) { this._expandedPartitions.push(partition); //ensure duplicates are not found in partitions array if (this._partitions.indexOf(partition) == -1) this._partitions.push(partition); } /** * @internal */ public _iUnregisterPartition(partition:PartitionBase) { this._expandedPartitions.splice(this._expandedPartitions.indexOf(partition), 1); //if no more partition references found, remove from partitions array if (this._expandedPartitions.indexOf(partition) == -1) this._partitions.splice(this._partitions.indexOf(partition), 1); } } export default Scene;