1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import poolFactory from './pool_factory';
- import pointPool from './point_pool';
- import ShapePath from '../shapes/ShapePath';
- const shapePool = (function () {
- function create() {
- return new ShapePath();
- }
- function release(shapePath) {
- var len = shapePath._length;
- var i;
- for (i = 0; i < len; i += 1) {
- pointPool.release(shapePath.v[i]);
- pointPool.release(shapePath.i[i]);
- pointPool.release(shapePath.o[i]);
- shapePath.v[i] = null;
- shapePath.i[i] = null;
- shapePath.o[i] = null;
- }
- shapePath._length = 0;
- shapePath.c = false;
- }
- function clone(shape) {
- var cloned = factory.newElement();
- var i;
- var len = shape._length === undefined ? shape.v.length : shape._length;
- cloned.setLength(len);
- cloned.c = shape.c;
- for (i = 0; i < len; i += 1) {
- cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);
- }
- return cloned;
- }
- var factory = poolFactory(4, create, release);
- factory.clone = clone;
- return factory;
- }());
- export default shapePool;
|