class TParticle3D { var v:TVector3D; var pr:MovieClip; var mcname:String; var dist:Number; function TParticle3D(x1:Number, y1:Number, z1:Number, dist1:Number, panel1:MovieClip, id1:String, mcname1:String, dep1:Number) { v = new TVector3D(x1, y1, z1); pr = panel1; mcname = mcname1; dist = dist1; pr.attachMovie(id1, mcname, dep1,{id:dep1}); } public function rotate(a:Number, b:Number, c:Number) { a = a/180*Math.PI; b = b/180*Math.PI; c = c/180*Math.PI; var sa:Number = Math.sin(a); var ca:Number = Math.cos(a); var sb:Number = Math.sin(b); var cb:Number = Math.cos(b); var sc:Number = Math.sin(c); var cc:Number = Math.cos(c); v.rotateX(ca, sa); v.rotateY(cb, sb); v.rotateZ(cc, sc); } public function rotateAxis(tar:TVector3D,pos:TVector3D,ank:Number){ v.rotateAxis(tar,pos,ank); } public function forward(dis:Number) { dist += dis; } public function render() { var per:Number = v.getPerspective(dist); var v1:TVector3D = v.to2d(per); pr[mcname]._x = v1.x; pr[mcname]._y = v1.y; pr[mcname].swapDepths(1000000-v.z*100); pr[mcname]._xscale = pr[mcname]._yscale=100*per; } }