package { import org.papervision3d.core.geom.TriangleMesh3D; import org.papervision3d.core.geom.renderables.Triangle3D; import org.papervision3d.core.geom.renderables.Vertex3D; import org.papervision3d.core.math.NumberUV; import org.papervision3d.core.proto.MaterialObject3D; import org.papervision3d.materials.*; public class CustomTriangle extends TriangleMesh3D { public var outCircle:Array; public var inCircle:Array; const outRadius:int=200; const inRadius:int=140; const thick:int=-50; public function CustomTriangle (triangleMaterial : MaterialObject3D) { super( triangleMaterial, new Array( ), new Array( ) ); outCircle=new Array() inCircle=new Array() var numSlices:int=60; var vGap:int=6; var uvFaceDisp:Number=(outRadius*2) var v1 : Vertex3D=new Vertex3D() var v2 : Vertex3D=new Vertex3D() var v3 : Vertex3D=new Vertex3D() //define in and out circles vertices for(var i:int=vGap;i<=numSlices-vGap;i++){ var dx:Number=Math.cos((i/numSlices)*2*Math.PI+Math.PI/2); var dy:Number=Math.sin((i/numSlices)*2*Math.PI+Math.PI/2); outCircle.push(new Array(dx*outRadius,dy*outRadius)) inCircle.push(new Array(dx*inRadius,dy*inRadius)) } var vX1:Number=Math.cos((vGap/numSlices)*2*Math.PI+Math.PI/2)*outRadius; var vY1:Number=Math.sin((vGap/numSlices)*2*Math.PI+Math.PI/2)*outRadius; var faceWidth:Number=outRadius-inRadius; var arcToPer:Number=(2*Math.PI*outRadius)/faceWidth; var vX2:Number=Math.cos((vGap/numSlices-arcToPer)*2*Math.PI+Math.PI/2)*outRadius; var vY2:Number=Math.sin((vGap/numSlices-arcToPer)*2*Math.PI+Math.PI/2)*outRadius; var leftVArray:Array=new Array() var vSegs:int=5 var triangleVertices2 : Array var uvArray2:Array var triangleFace2 : Triangle3D v1=new Vertex3D(0,-faceWidth,0) v2=new Vertex3D(0,25,0) for(var k:int=1;k