/** * R3.Curve.Path.D2 * @param graphics R3.GraphicsRuntime * @param apiCurvePathD2 * @constructor */ R3.Curve.Path.D2.Shape = function( graphics, apiCurvePathD2 ) { this.graphics = graphics; this.graphics.isNotThreeThrow(); if (R3.Utils.UndefinedOrNull(apiCurvePathD2)) { apiCurvePathD2 = { curveType : R3.API.Curve.CURVE_TYPE_PATH_2D_SHAPE }; } R3.API.Curve.Path.D2.call( this, apiCurvePathD2, apiCurvePathD2.points ); R3.Curve.Path.D2.call( this, this.graphics, this ); }; R3.Curve.Path.D2.Shape.prototype = Object.create(R3.Curve.Path.D2.prototype); R3.Curve.Path.D2.Shape.prototype.constructor = R3.Curve.Path.D2.Shape; /** * Creates a camera instance * @returns {*} */ R3.Curve.Path.D2.Shape.prototype.createInstance = function() { this.instance = new THREE.Shape( this.points.map( function(point) { return point.instance; } ) ); R3.Curve.Path.D2.prototype.createInstance.call(this); }; /** * Updates the instance with the current state */ R3.Curve.Path.D2.Shape.prototype.updateInstance = function(property) { R3.Curve.Path.D2.prototype.updateInstance.call(this, property); }; /** * Converts a R3.Curve to a R3.API.Curve * @returns {R3.API.Curve} */ R3.Curve.Path.D2.Shape.prototype.toApiObject = function() { var apiCurvePathD2 = R3.Curve.Path.D2.prototype.toApiObject.call(this); return new R3.API.Curve.Path.D2.Shape( apiCurvePathD2 ); };