package away3d.extrusions { import away3d.core.math.*; import away3d.containers.*; import away3d.core.base.*; import away3d.materials.*; import away3d.core.utils.*; public class SkinExtrude extends Mesh { private var varr:Array; public function SkinExtrude(aPoints:*, init:Object = null) { init = Init.parse(init); super(init); var subdivision:int = init.getInt("subdivision", 1, {min:1}); var scaling:Number = init.getNumber("scaling", 1); var coverall:Boolean = init.getBoolean("coverall", false); var recenter:Boolean = init.getBoolean("recenter", false); var closepath:Boolean = init.getBoolean("closepath", false); var flip:Boolean = init.getBoolean("flip", false); if(aPoints[0] is Array && aPoints[0].length>1){ if(closepath && aPoints.length <= 2) closepath = false; generate(aPoints, subdivision, scaling, coverall, closepath, flip); } else{ trace("SkinExtrude, at least 2 series of minimum 2 points are required per extrude!"); } if(recenter) { applyPosition( (this.minX+this.maxX)*.5, (this.minY+this.maxY)*.5, (this.minZ+this.maxZ)*.5); } else { x = aPoints[0][0].x; y = aPoints[0][0].y; z = aPoints[0][0].z; } varr = null; type = "SkinExtrude"; url = "Extrude"; } private function generate(aPoints:Array, subdivision:int = 1, scaling:Number = 1, coverall:Boolean = false, closepath:Boolean = false, flip:Boolean = false):void { var uvlength = (closepath)? aPoints.length : aPoints.length-1; for(var i:int = 0;i