text: import { Path } from './Path.js';
  import * as MathUtils from '../../math/MathUtils.js';
  
  class Shape extends Path {
  
  	constructor( points ) {
  
  		super( points );
  
  		this.uuid = MathUtils.generateUUID();
  
  		this.type = 'Shape';
  
  		this.holes = [];
  
  	}
  
  	getPointsHoles( divisions ) {
  
  		const holesPts = [];
  
  		for ( let i = 0, l = this.holes.length; i < l; i ++ ) {
  
  			holesPts[ i ] = this.holes[ i ].getPoints( divisions );
  
  		}
  
  		return holesPts;
  
  	}
  
  	// get points of shape and holes (keypoints based on segments parameter)
  
  	extractPoints( divisions ) {
  
  		return {
  
  			shape: this.getPoints( divisions ),
  			holes: this.getPointsHoles( divisions )
  
  		};
  
  	}
  
  	copy( source ) {
  
  		super.copy( source );
  
  		this.holes = [];
  
  		for ( let i = 0, l = source.holes.length; i < l; i ++ ) {
  
  			const hole = source.holes[ i ];
  
  			this.holes.push( hole.clone() );
  
  		}
  
  		return this;
  
  	}
  
  	toJSON() {
  
  		const data = super.toJSON();
  
  		data.uuid = this.uuid;
  		data.holes = [];
  
  		for ( let i = 0, l = this.holes.length; i < l; i ++ ) {
  
  			const hole = this.holes[ i ];
  			data.holes.push( hole.toJSON() );
  
  		}
  
  		return data;
  
  	}
  
  	fromJSON( json ) {
  
  		super.fromJSON( json );
  
  		this.uuid = json.uuid;
  		this.holes = [];
  
  		for ( let i = 0, l = json.holes.length; i < l; i ++ ) {
  
  			const hole = json.holes[ i ];
  			this.holes.push( new Path().fromJSON( hole ) );
  
  		}
  
  		return this;
  
  	}
  
  }
  
  
  export { Shape };
  