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;
|