30 lines
708 B
Plaintext
30 lines
708 B
Plaintext
|
import {
|
||
|
createSizedArray,
|
||
|
} from '../helpers/arrays';
|
||
|
import shapePool from '../pooling/shape_pool';
|
||
|
|
||
|
function ShapeCollection() {
|
||
|
this._length = 0;
|
||
|
this._maxLength = 4;
|
||
|
this.shapes = createSizedArray(this._maxLength);
|
||
|
}
|
||
|
|
||
|
ShapeCollection.prototype.addShape = function (shapeData) {
|
||
|
if (this._length === this._maxLength) {
|
||
|
this.shapes = this.shapes.concat(createSizedArray(this._maxLength));
|
||
|
this._maxLength *= 2;
|
||
|
}
|
||
|
this.shapes[this._length] = shapeData;
|
||
|
this._length += 1;
|
||
|
};
|
||
|
|
||
|
ShapeCollection.prototype.releaseShapes = function () {
|
||
|
var i;
|
||
|
for (i = 0; i < this._length; i += 1) {
|
||
|
shapePool.release(this.shapes[i]);
|
||
|
}
|
||
|
this._length = 0;
|
||
|
};
|
||
|
|
||
|
export default ShapeCollection;
|