class point { //WORLD SPACE coordinates public var x, y, z:Number; //IMAGE SPACE coordinates public var xp, yp, zp:Number; //CAMERA SPACE coordinates public var xc, yc, zc; // //projection factor public var f; public var xOffset:Number = 400, yOffset:Number = 400; public var m, v:Number; public var q1, q2, q3:quaternion; //parent movieClip public var clip:MovieClip; function point(a, b, c) { x = a ? a : 0; y = b ? b : 0; z = c ? c : 0; zp = z; zc = z; xp = x; xc = x; yp = y; yc = y; //clip = _root.scene1.generateMC(); } //get set pentru coordonate. public function get _x():Number { return x; } public function get _y():Number { return y; } public function get _z():Number { return z; } public function get _xp():Number { return xp; } public function get _yp():Number { return yp; } public function get _zp():Number { return zp; } public function set _x(a:Number) { x = a; pPoint(); } public function set _y(b:Number) { y = b; pPoint(); } public function set _z(c:Number) { z = c; pPoint(); } public function zM(a:Number) { z += a; pPoint(); } public function rotate(q:quaternion) { q1 = q.copy(); q1.invert(); q2 = new quaternion(); q2.fromPoint(x, y, z); q3 = q.copy(); q2.concat(q1); q3.concat(q2); x = q3._x; y = q3._y; z = q3._z; } //transformarea in CAMERA SPACE public function worldToCamera(cam:camera) { var t:point; t = new point(); t.x = 0 - cam.c.x; t.y = 0 - cam.c.y; t.z = 0 - cam.c.z; var a41 = cam.u.x * t.x + cam.u.y * t.y + cam.u.z * t.z; var a42 = cam.v.x * t.x + cam.v.y * t.y + cam.v.z * t.z; var a43 = cam.w.x * t.x + cam.w.y * t.y + cam.w.z * t.z; xc = x*cam.u.x + y*cam.u.y + z*cam.u.z + a41; yc = x*cam.v.x + y*cam.v.y + z*cam.v.z + a42; zc = x*cam.w.x + y*cam.w.y + z*cam.w.z + a43; } //transformarea in IMAGE SPACE (2D-ul ecranului) public function pPoint() { //a = PROJECTION FACTOR (f) var a = _root.scene1.f; xp = ( a * xc / (zc - a))*3+ xOffset; yp = (a * yc / (zc - a))*3 + yOffset; zp = zp; } } //sfarsit.