STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228059
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2560 · P5120

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/73054195?noj=FRM73054195-26DC" width="1" height="1"></div>

Doom_the_wolf_Interactive_pregnant_3D_sapphire.swf

This is the info page for
Flash #98583

(Click the ID number above for more basic data on this flash file.)


Text
Growth speed: Select how fast
you want her to grow.
You can select a number
between '.1' and 50.
Examples:
"1", "2", "50", ".9", ".5".

Expand

continuous

Options

Total frames

+

Belly

Breasts

ActionScript [AS3]

Section 1
//Camera3D (graphics3d.Camera3D) package graphics3d { import flash.geom.*; public class Camera3D { protected var _x:Number; protected var _y:Number; protected var _world:World3D; protected var _maxAngle:Number; protected var _rX:Number; protected var _rY:Number; protected var _rZ:Number; protected var _height:Number; protected var _width:Number; protected var _distance:Number; protected var _horizon:uint; protected var _z:Number; public function Camera3D(_arg1:Number, _arg2:Number, _arg3:Number){ var _local4:Point3D; var _local5:Point3D; super(); if (isNaN(_arg1)){ _arg1 = 1; }; if (isNaN(_arg2)){ _arg2 = 1; }; if (isNaN(_arg3)){ _arg3 = 1; }; _width = _arg1; _height = _arg2; _distance = _arg3; _world = null; _horizon = 50000; _local4 = new Point3D(0, _arg3, 0); _local5 = new Point3D((_arg1 * 0.5), _arg3, (_arg2 * 0.5)); _maxAngle = Utils.angleBetween(_local4, _local5); _rX = (_rY = (_rZ = (_x = (_y = (_z = 0))))); } public function set z(_arg1:Number){ if (isNaN(_arg1)){ _arg1 = 0; }; _z = _arg1; } public function get horizon():uint{ return (_horizon); } public function set width(_arg1:Number){ if (((isNaN(_arg1)) || ((_arg1 <= 0)))){ return; }; _width = _arg1; } public function get height():Number{ return (_height); } public function get position():Point3D{ return (new Point3D(_x, _y, _z)); } public function get rX():Number{ return (_rX); } public function get rZ():Number{ return (_rZ); } public function lookAt(_arg1:Point3D){ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local2 = (_arg1.x - x); _local3 = (_arg1.y - y); _local4 = (_arg1.z - z); _local5 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); _local6 = (Math.atan2(_local3, _local2) - (Math.PI * 0.5)); _local7 = Math.atan2(_local4, _local5); rZ = _local6; rX = _local7; } public function set horizon(_arg1:uint){ if (((isNaN(_arg1)) || ((_arg1 == 0)))){ return; }; _horizon = _arg1; } public function get rY():Number{ return (_rY); } public function draw(_arg1, _arg2:Boolean=false, _arg3:Boolean=false){ var _local4:Point3D; var _local5:Array; var _local6:Array; var _local7:Array; var _local8:int; var _local9:int; var _local10:Point3D; var _local11:Array; var _local12:int; var _local13:Point3D; var _local14:Object; var _local15:Number; var _local16:Number; var _local17:Object; var _local18:Point3D; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Boolean; var _local26:Number; if (_world == null){ return; }; _local4 = new Point3D(0, 100, 0); _local4 = Utils.rotatePoint(_local4, new Point3D(), _rX, _rY, _rZ); _local4.offset(position); _local5 = new Array(); _local6 = new Array(); _local7 = _world.getVisibleShapes(this); _local8 = 0; while (_local8 < _local7.length) { _local9 = 0; while (_local9 < _local7[_local8].faces.length) { if (!_local7[_local8].visible){ } else { _local10 = Utils.getNormal(_local7[_local8].faces[_local9]); _local11 = new Array(); _local12 = 0; while (_local12 < 3) { _local11[_local12] = _local7[_local8].getPointAt(_local7[_local8].faces[_local9][_local12]); _local12++; }; _local13 = Utils.getAverage(_local11); _local10.offset(_local13); if ((((Utils.angleBetween(_local10, position, _local13) < (Math.PI * 0.5))) && (Boolean((((Utils.angleBetween(_local4, _local13, position) <= _maxAngle)) || (Boolean(((_arg3) && (Boolean((Utils.angleBetween(_local4, _local13, position) <= (Math.PI * 0.5)))))))))))){ _local14 = _local7[_local8].faces[_local9]; _local15 = 0; _local16 = 0; _local17 = new Object(); _local12 = 0; while (_local12 < 3) { _local21 = (_local11[_local12].x - _x); _local22 = (_local11[_local12].y - _y); _local23 = (_local11[_local12].z - _z); _local24 = Math.sqrt((((_local21 * _local21) + (_local22 * _local22)) + (_local23 * _local23))); _local15 = Math.max(_local15, _local24); _local16 = (_local16 + _local24); _local17[_local12] = Utils.unRotatePoint(_local11[_local12], position, -(_rX), -(_rY), -(_rZ)); _local17[_local12].offset(new Point3D(-(x), -(y), -(z))); _local12++; }; if (_local15 > _horizon){ } else { _local6[_local6.length] = _local17; _local6[(_local6.length - 1)].dist = _local15; _local18 = Utils.getNormal(_local14); _local19 = Utils.angleBetween(_local18, _world.light); _local20 = (Number((1 - Math.cos(_local19))) * 0.5); _local6[(_local6.length - 1)].color = Utils.setColorIntensity(_local14.color, _local20); }; }; }; _local9++; }; _local8++; }; _local6 = Utils.sortArray(_local6, "dist"); if (_arg2){ _arg1.lock(); _arg1.fillRect(new Rectangle(0, 0, _arg1.width, _arg1.height), 0xFFFFFF); } else { _arg1.graphics.clear(); }; _local8 = (_local6.length - 1); while (_local8 >= 0) { _local25 = true; _local9 = 0; while (_local9 < 3) { if (!_arg3){ _local26 = (_distance / _local6[_local8][_local9].y); if (_local6[_local8][_local9].y <= 0){ _local25 = false; break; }; _local6[_local8][_local9] = new Point3D(Math.round(((_local6[_local8][_local9].x * _local26) + (_width * 0.5))), Math.round(((_local6[_local8][_local9].z * -(_local26)) + (_height * 0.5))), Math.round((_local6[_local8][_local9].y * _local26))); } else { _local6[_local8][_local9].x = (_local6[_local8][_local9].x + (width * 0.5)); _local6[_local8][_local9].y = (-(_local6[_local8][_local9].z) + (height * 0.5)); }; _local9++; }; if (!_local25){ } else { if (_arg2){ Utils.drawFace(_arg1, _local6[_local8][0], _local6[_local8][1], _local6[_local8][2], _local6[_local8].color); } else { Utils.drawVectorFace(_arg1, _local6[_local8][0], _local6[_local8][1], _local6[_local8][2], _local6[_local8].color); }; }; _local8--; }; if (_arg2){ _arg1.unlock(); }; } public function set rX(_arg1:Number){ if (isNaN(_arg1)){ _arg1 = 0; }; _arg1 = Math.max(_arg1, (-(Math.PI) * 0.5)); _arg1 = Math.min(_arg1, (Math.PI * 0.5)); _rX = _arg1; } public function set rZ(_arg1:Number){ if (isNaN(_arg1)){ _arg1 = 0; }; _rZ = _arg1; } public function set position(_arg1:Point3D){ x = _arg1.x; y = _arg1.y; z = _arg1.z; } public function get width():Number{ return (_width); } public function setWorld(_arg1:World3D){ _world = _arg1; } public function set height(_arg1:Number){ if (((isNaN(_arg1)) || ((_arg1 <= 0)))){ return; }; _height = _arg1; } public function set rY(_arg1:Number){ if (isNaN(_arg1)){ _arg1 = 0; }; _rY = _arg1; } public function set distance(_arg1:Number){ if (((isNaN(_arg1)) || ((_arg1 <= 0)))){ return; }; _distance = _arg1; } public function toString():String{ return ("[Camera3D]"); } public function set x(_arg1:Number){ if (isNaN(_arg1)){ _arg1 = 0; }; _x = _arg1; } public function set y(_arg1:Number){ if (isNaN(_arg1)){ _arg1 = 0; }; _y = _arg1; } public function get distance():Number{ return (_distance); } public function get x():Number{ return (_x); } public function get y():Number{ return (_y); } public function get z():Number{ return (_z); } public function get rotation():Point3D{ return (new Point3D(_rX, _rY, _rZ)); } } }//package graphics3d
Section 2
//Point3D (graphics3d.Point3D) package graphics3d { public class Point3D { protected var _y:Number; protected var _x:Number; protected var _id:int; protected var _z:Number; public function Point3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ if (isNaN(_arg1)){ _arg1 = 0; }; if (isNaN(_arg3)){ _arg2 = 0; }; if (isNaN(_arg3)){ _arg3 = 0; }; _x = _arg1; _y = _arg2; _z = _arg3; _id = -1; } public function get y():Number{ return (_y); } public function get id():int{ return (_id); } public function clone():Point3D{ return (new Point3D(_x, _y, _z)); } public function set y(_arg1:Number){ if (((isNaN(_arg1)) || ((Math.abs(_arg1) < 1E-11)))){ _arg1 = 0; }; _y = _arg1; } public function offset(_arg1:Point3D){ x = (x + _arg1.x); y = (y + _arg1.y); z = (z + _arg1.z); } public function set z(_arg1:Number){ if (((isNaN(_arg1)) || ((Math.abs(_arg1) < 1E-11)))){ _arg1 = 0; }; _z = _arg1; } public function normalize(){ var _local1:Number; _local1 = Math.sqrt((((_x * _x) + (_y * _y)) + (_z * _z))); x = (x / _local1); y = (y / _local1); z = (z / _local1); } public function toString():String{ return ((((((("[Point3D x=" + x) + ", y=") + y) + ", z=") + z) + " ]")); } public function set x(_arg1:Number){ if (((isNaN(_arg1)) || ((Math.abs(_arg1) < 1E-11)))){ _arg1 = 0; }; _x = _arg1; } public function get x():Number{ return (_x); } public function get z():Number{ return (_z); } public function set id(_arg1:int){ if (((isNaN(_arg1)) || ((_arg1 < 0)))){ _arg1 = -1; }; _id = _arg1; } } }//package graphics3d
Section 3
//Shape3D (graphics3d.Shape3D) package graphics3d { public class Shape3D { protected var _x:Number; protected var _points:Array; protected var _y:Number; protected var _world:World3D; protected var _z:Number; protected var _faces:Array; protected var _id:uint; protected var _visible:Boolean; protected var _rX:Number; protected var _rY:Number; protected var _rZ:Number; protected var _frames:Array; protected var _bounds:Object; protected var _sX:Number; protected var _sY:Number; protected var _sZ:Number; protected static var shapeID:uint = 0; protected static var faceID:uint = 0; public function Shape3D(){ _id = shapeID; shapeID++; _points = new Array(); _faces = new Array(); _frames = new Array(); _x = (_y = (_z = 0)); _rX = (_rY = (_rZ = 0)); _sX = (_sY = (_sZ = 1)); _visible = true; _bounds = new Object(); _bounds.minX = 0; _bounds.minY = 0; _bounds.minZ = 0; _bounds.maxX = 0; _bounds.maxY = 0; _bounds.maxZ = 0; _world = null; } public function removeFace(_arg1:int){ var _local2:int; _local2 = 0; while (_local2 < _faces.length) { if (_faces[_local2].id == _arg1){ _faces.splice(_local2, 1); break; }; _local2++; }; } public function get numPoints():uint{ return (_points.length); } public function destroy(){ _points = new Array(); _faces = new Array(); _frames = new Array(); _x = (_y = (_z = 0)); _rX = (_rY = (_rZ = 0)); _sX = (_sY = (_sZ = 1)); _visible = true; _bounds = new Object(); _bounds.minX = 0; _bounds.minY = 0; _bounds.minZ = 0; _bounds.maxX = 0; _bounds.maxY = 0; _bounds.maxZ = 0; _world = null; } public function set scale(_arg1:Point3D){ _sX = _arg1.x; _sY = _arg1.y; _sZ = _arg1.z; updateBounds(); } public function set sZ(_arg1:Number){ if (!isNaN(_arg1)){ _sZ = _arg1; updateBounds(); }; } public function pushPoint(_arg1:Point3D){ var _local2:int; _local2 = 0; while ((((_local2 < _points.length)) && (!((_arg1.id == -1))))) { if (_points[_local2].id == _arg1.id){ throw ((("Error in Shape3D.pushPoint(): Point " + _arg1.toString()) + " already exists in this shape")); }; _local2++; }; _arg1.id = _points.length; _points.push(_arg1); updateBounds(); } public function pushFace(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint=0xFFFFFF, _arg5:int=1){ var _local6:Object; var _local7:Point3D; var _local8:Point3D; if ((((((_arg1 == _arg2)) || ((_arg1 == _arg3)))) || ((_arg2 == _arg3)))){ throw ((((((("Error in Shape3D.pushFace(): The face must contain three different points.[" + _arg1) + ",") + _arg2) + ",") + _arg3) + "]")); }; if ((((((_arg1 >= _points.length)) || ((_arg2 >= _points.length)))) || ((_arg3 >= _points.length)))){ throw ("Error in Shape3D.pushFace(): Point value out of range."); }; _local6 = new Object(); _local6.color = (_arg4 | 4278190080); _local6.shape = this; _local6[0] = _arg1; _local6[1] = _arg2; _local6[2] = _arg3; _local6.id = faceID; faceID++; if (_arg5 < 0){ _arg5 = -1; } else { _arg5 = 1; }; _local6.normal = _arg5; _local7 = Utils.getNormal(_local6); _local8 = Utils.getAverage([points[_arg1], points[_arg2], points[_arg3]]); _local7.offset(_local6.shape.position); if (Boolean((Utils.angleBetween(_local7, _local8, _local6.shape.position) > (Math.PI * 0.5))) == Boolean((_arg5 == 1))){ _local6.normal = -(_local6.normal); }; _faces.push(_local6); } public function set sX(_arg1:Number){ if (!isNaN(_arg1)){ _sX = _arg1; updateBounds(); }; } public function get id():uint{ return (_id); } public function setColor(_arg1:uint){ var _local2:int; _arg1 = (_arg1 | 4278190080); _local2 = 0; while (_local2 < _faces.length) { _faces[_local2].color = _arg1; _local2++; }; } public function interpolate(_arg1:uint, _arg2:Number=0.5, _arg3:Boolean=false){ var _local4:int; if (_frames[_arg1]){ _local4 = 0; while (_local4 < _points.length) { _points[_local4].x = ((_frames[_arg1].points[_local4].x * _arg2) + (_points[_local4].x * Number((1 - _arg2)))); _points[_local4].y = ((_frames[_arg1].points[_local4].y * _arg2) + (_points[_local4].y * Number((1 - _arg2)))); _points[_local4].z = ((_frames[_arg1].points[_local4].z * _arg2) + (_points[_local4].z * Number((1 - _arg2)))); _local4++; }; if (!_arg3){ x = ((_frames[_arg1].position.x * _arg2) + (position.x * Number((1 - _arg2)))); y = ((_frames[_arg1].position.y * _arg2) + (position.y * Number((1 - _arg2)))); z = ((_frames[_arg1].position.z * _arg2) + (position.z * Number((1 - _arg2)))); rX = ((_frames[_arg1].rotation.x * _arg2) + (rotation.x * Number((1 - _arg2)))); rY = ((_frames[_arg1].rotation.y * _arg2) + (rotation.y * Number((1 - _arg2)))); rZ = ((_frames[_arg1].rotation.z * _arg2) + (rotation.z * Number((1 - _arg2)))); sX = ((_frames[_arg1].scale.x * _arg2) + (scale.x * Number((1 - _arg2)))); sY = ((_frames[_arg1].scale.y * _arg2) + (scale.y * Number((1 - _arg2)))); sZ = ((_frames[_arg1].scale.z * _arg2) + (scale.z * Number((1 - _arg2)))); }; updateBounds(); }; } public function set sY(_arg1:Number){ if (!isNaN(_arg1)){ _sY = _arg1; updateBounds(); }; } public function get rX():Number{ return (_rX); } public function get rY():Number{ return (_rY); } public function get position():Point3D{ return (new Point3D(_x, _y, _z)); } public function get visible():Boolean{ return (_visible); } public function load(_arg1:String){ var _local2:Array; var _local3:int; var _local4:Array; var _local5:Point3D; var _local6:Object; var _local7:Point3D; destroy(); _local2 = _arg1.replace("\r", "").split("\n"); _local3 = 0; while (_local3 < _local2.length) { _local4 = _local2[_local3].split(","); switch (_local4[0]){ case "POS": x = Number(_local4[1]); y = Number(_local4[2]); z = Number(_local4[3]); break; case "ROT": rX = Number(_local4[1]); rY = Number(_local4[2]); rZ = Number(_local4[3]); break; case "SCA": sX = Number(_local4[1]); sY = Number(_local4[2]); sZ = Number(_local4[3]); break; case "P": _local5 = new Point3D(); _local5.id = Number(_local4[1]); _local5.x = Number(_local4[2]); _local5.y = Number(_local4[3]); _local5.z = Number(_local4[4]); _points[_local5.id] = _local5; break; case "F": pushFace(Number(_local4[1]), Number(_local4[2]), Number(_local4[3]), uint(_local4[4]), int(_local4[5])); _faces[(_faces.length - 1)].normal = int(_local4[5]); break; case "FP": if (!_frames[Number(_local4[1])]){ _frames[Number(_local4[1])] = new Object(); _frames[Number(_local4[1])].points = new Array(); }; _local6 = _frames[Number(_local4[1])]; _local7 = new Point3D(); _local6.points[Number(_local4[2])] = _local7; _local7.id = Number(_local4[2]); _local7.x = Number(_local4[3]); _local7.y = Number(_local4[4]); _local7.z = Number(_local4[5]); break; case "FPOS": _local6 = _frames[Number(_local4[1])]; _local6.position = new Point3D(); _local6.position.x = Number(_local4[2]); _local6.position.y = Number(_local4[3]); _local6.position.z = Number(_local4[4]); break; case "FROT": _local6 = _frames[Number(_local4[1])]; _local6.rotation = new Point3D(); _local6.rotation.x = Number(_local4[2]); _local6.rotation.y = Number(_local4[3]); _local6.rotation.z = Number(_local4[4]); break; case "FSCA": _local6 = _frames[Number(_local4[1])]; _local6.scale = new Point3D(); _local6.scale.x = Number(_local4[2]); _local6.scale.y = Number(_local4[3]); _local6.scale.z = Number(_local4[4]); break; }; _local3++; }; } public function get height():Number{ return ((_bounds.maxZ - _bounds.minZ)); } public function get rZ():Number{ return (_rZ); } public function getBounds():Object{ var _local1:Object; var _local2:String; _local1 = new Object(); for (_local2 in _bounds) { _local1[_local2] = _bounds[_local2]; }; return (_local1); } public function getPointAt(_arg1:uint){ var _local2:Point3D; if (_arg1 >= _points.length){ throw ("Error in Shape3D.getPointAt(): Point value out of range."); }; _local2 = _points[_arg1].clone(); _local2.x = (_local2.x * _sX); _local2.y = (_local2.y * _sY); _local2.z = (_local2.z * _sZ); _local2 = Utils.rotatePoint(_local2, new Point3D(), _rX, _rY, _rZ); _local2.offset(position); return (_local2); } public function get frames():Array{ return (_frames.concat()); } public function get faces():Array{ return (_faces.concat()); } public function insertFrame(_arg1:uint){ var _local2:Array; var _local3:int; _local2 = new Array(); _frames[_arg1] = new Object(); _local3 = 0; while (_local3 < points.length) { _local2[_local3] = points[_local3].clone(); _local3++; }; _frames[_arg1].points = _local2; _frames[_arg1].position = position; _frames[_arg1].rotation = rotation; _frames[_arg1].scale = scale; } public function removeFacesContaining(_arg1:int){ var _local2:int; _local2 = 0; while (_local2 < _faces.length) { if ((((((_faces[_local2][0] == _arg1)) || ((_faces[_local2][1] == _arg1)))) || ((_faces[_local2][2] == _arg1)))){ delete _faces[_local2]; _faces.splice(_local2, 1); _local2--; }; _local2++; }; } public function get depth():Number{ return ((_bounds.maxY - _bounds.minY)); } public function removeFrame(_arg1:uint){ if (_frames[_arg1]){ delete _frames[_arg1]; _frames[_arg1] = null; }; } public function get sY():Number{ return (_sY); } public function set rY(_arg1:Number){ if (!isNaN(_arg1)){ _rY = _arg1; updateBounds(); }; } public function destroyFrames(){ _frames = new Array(); } public function set rZ(_arg1:Number){ if (!isNaN(_arg1)){ _rZ = _arg1; updateBounds(); }; } public function get scale():Point3D{ return (new Point3D(_sX, _sY, _sZ)); } public function set position(_arg1:Point3D){ x = _arg1.x; y = _arg1.y; z = _arg1.z; updateBounds(); } public function set rX(_arg1:Number){ if (!isNaN(_arg1)){ _rX = _arg1; updateBounds(); }; } public function get width():Number{ return ((_bounds.maxX - _bounds.minX)); } public function get sZ():Number{ return (_sZ); } public function get numFaces():uint{ return (_faces.length); } function attachToWorld(_arg1:World3D){ _world = _arg1; } public function get sX():Number{ return (_sX); } protected function updateBounds(){ var _local1:int; var _local2:Point3D; _bounds.minX = 0; _bounds.minY = 0; _bounds.minZ = 0; _bounds.maxX = 0; _bounds.maxY = 0; _bounds.maxZ = 0; _local1 = 0; while (_local1 < numPoints) { _local2 = getPointAt(_local1); _bounds.minX = Math.min(_local2.x, _bounds.minX); _bounds.minY = Math.min(_local2.y, _bounds.minY); _bounds.minZ = Math.min(_local2.z, _bounds.minZ); _bounds.maxX = Math.min(_local2.x, _bounds.maxX); _bounds.maxY = Math.min(_local2.y, _bounds.maxY); _bounds.maxZ = Math.min(_local2.z, _bounds.maxZ); _local1++; }; if (_world != null){ _world.updateShape(id); }; } public function gotoFrame(_arg1:uint, _arg2:Boolean=false){ var _local3:int; if (_frames[_arg1]){ _local3 = 0; while (_local3 < _points.length) { _points[_local3].x = _frames[_arg1].points[_local3].x; _points[_local3].y = _frames[_arg1].points[_local3].y; _points[_local3].z = _frames[_arg1].points[_local3].z; _local3++; }; if (!_arg2){ position = _frames[_arg1].position; rotation = _frames[_arg1].rotation; scale = _frames[_arg1].scale; }; updateBounds(); }; } public function get points():Array{ return (_points.concat()); } public function set visible(_arg1:Boolean){ _visible = _arg1; } public function toString():String{ return ((((((("[Shape3D ID=" + id) + " Points=") + numPoints) + ", Faces=") + numFaces) + " ]")); } public function set x(_arg1:Number){ if (!isNaN(_arg1)){ _x = _arg1; updateBounds(); }; } public function set y(_arg1:Number){ if (!isNaN(_arg1)){ _y = _arg1; updateBounds(); }; } public function removePoint(_arg1:uint){ var _local2:int; var _local3:int; if (!_points[_arg1]){ return; }; removeFacesContaining(_arg1); _local2 = _arg1; while (_local2 < _points.length) { _points[_local2].id--; _local3 = 0; while (_local3 < _faces.length) { if (_faces[_local3][0] == _local2){ _faces[_local3][0] = (_local2 - 1); }; if (_faces[_local3][1] == _local2){ _faces[_local3][1] = (_local2 - 1); }; if (_faces[_local3][2] == _local2){ _faces[_local3][2] = (_local2 - 1); }; _local3++; }; _local2++; }; _points.splice(_arg1, 1); destroyFrames(); updateBounds(); } public function getFaceAt(_arg1:uint){ if (_arg1 >= _faces.length){ throw ("Error in Shape3D.getFaceAt(): Face value out of range."); }; return (_faces[_arg1]); } public function get x():Number{ return (_x); } public function get y():Number{ return (_y); } public function get z():Number{ return (_z); } public function set z(_arg1:Number){ if (!isNaN(_arg1)){ _z = _arg1; updateBounds(); }; } public function set rotation(_arg1:Point3D){ rX = _arg1.x; rY = _arg1.y; rZ = _arg1.z; updateBounds(); } public function save():String{ var _local1:String; var _local2:int; var _local3:Object; var _local4:int; var _local5:Point3D; _local1 = ""; _local1 = (_local1 + (((((("POS," + x) + ",") + y) + ",") + z) + "\n")); _local1 = (_local1 + (((((("ROT," + rX) + ",") + rY) + ",") + rZ) + "\n")); _local1 = (_local1 + (((((("SCA," + sX) + ",") + sY) + ",") + sZ) + "\n")); _local2 = 0; while (_local2 < _points.length) { _local1 = (_local1 + (((((((("P," + _points[_local2].id) + ",") + _points[_local2].x) + ",") + _points[_local2].y) + ",") + _points[_local2].z) + "\n")); _local2++; }; _local2 = 0; while (_local2 < _faces.length) { _local3 = _faces[_local2]; _local1 = (_local1 + (((((((((("F," + _local3[0]) + ",") + _local3[1]) + ",") + _local3[2]) + ",") + String(uint(_local3.color))) + ",") + _local3.normal) + "\n")); _local2++; }; _local2 = 0; while (_local2 < _frames.length) { if (!_frames[_local2]){ } else { _local4 = 0; while (_local4 < _frames[_local2].points.length) { _local5 = _frames[_local2].points[_local4]; _local1 = (_local1 + (((((((((("FP," + _local2) + ",") + _local4) + ",") + _local5.x) + ",") + _local5.y) + ",") + _local5.z) + "\n")); _local4++; }; _local1 = (_local1 + (((((((("FPOS," + _local2) + ",") + _frames[_local2].position.x) + ",") + _frames[_local2].position.y) + ",") + _frames[_local2].position.z) + "\n")); _local1 = (_local1 + (((((((("FROT," + _local2) + ",") + _frames[_local2].rotation.x) + ",") + _frames[_local2].rotation.y) + ",") + _frames[_local2].rotation.z) + "\n")); _local1 = (_local1 + (((((((("FSCA," + _local2) + ",") + _frames[_local2].scale.x) + ",") + _frames[_local2].scale.y) + ",") + _frames[_local2].scale.z) + "\n")); }; _local2++; }; return (_local1); } public function get rotation():Point3D{ return (new Point3D(_rX, _rY, _rZ)); } } }//package graphics3d
Section 4
//Utils (graphics3d.Utils) package graphics3d { import flash.display.*; public class Utils { public static function drawFace(_arg1:BitmapData, _arg2:Object, _arg3:Object, _arg4:Object, _arg5:uint){ var _local6:BitmapData; var _local7:uint; var _local8:uint; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:uint; _arg1.lock(); _local6 = new BitmapData(_arg1.width, _arg1.height, true, 0xFFFFFF); drawLine(_local6, _arg5, _arg2.x, _arg2.y, _arg3.x, _arg3.y); drawLine(_local6, _arg5, _arg2.x, _arg2.y, _arg4.x, _arg4.y); drawLine(_local6, _arg5, _arg3.x, _arg3.y, _arg4.x, _arg4.y); _local7 = (((_arg2.x + _arg3.x) + _arg4.x) / 3); _local8 = (((_arg2.y + _arg3.y) + _arg4.y) / 3); _local9 = Math.min(_arg2.x, _arg3.x, _arg4.x); _local10 = Math.min(_arg2.y, _arg3.y, _arg4.y); _local11 = Math.max(_arg2.x, _arg3.x, _arg4.x); _local12 = Math.max(_arg2.y, _arg3.y, _arg4.y); _local6.floodFill(_local7, _local8, _arg5); _local13 = Math.max(_local9, 0); while (_local13 <= Math.min(_local11, _arg1.width)) { _local14 = Math.max(_local10, 0); while (_local14 < Math.min(_local12, _arg1.height)) { _local15 = _local6.getPixel32(_local13, _local14); if ((_local15 & 4278190080)){ _arg1.setPixel32(_local13, _local14, _local15); }; _local14++; }; _local13++; }; _arg1.unlock(); } public static function unRotatePoint(_arg1:Point3D, _arg2:Point3D, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0):Point3D{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Point3D; var _local10:Point3D; var _local11:Point3D; _local6 = (_arg1.x - _arg2.x); _local7 = (_arg1.y - _arg2.y); _local9 = _arg1.clone(); _local9.x = ((_arg2.x + (_local6 * Math.cos(_arg5))) + (_local7 * -(Math.sin(_arg5)))); _local9.y = ((_arg2.y + (_local6 * Math.sin(_arg5))) + (_local7 * Math.cos(_arg5))); _local7 = (_local9.y - _arg2.y); _local8 = (_local9.z - _arg2.z); _local10 = _local9.clone(); _local10.y = ((_arg2.y + (_local7 * Math.cos(_arg3))) + (_local8 * -(Math.sin(_arg3)))); _local10.z = ((_arg2.z + (_local7 * Math.sin(_arg3))) + (_local8 * Math.cos(_arg3))); _local6 = (_local10.x - _arg2.x); _local8 = (_local10.z - _arg2.z); _local11 = _local10.clone(); _local11.x = ((_arg2.x + (_local6 * Math.cos(_arg4))) + (_local8 * -(Math.sin(_arg4)))); _local11.z = ((_arg2.z + (_local6 * Math.sin(_arg4))) + (_local8 * Math.cos(_arg4))); return (_local11); } public static function drawVectorFace(_arg1, _arg2:Object, _arg3:Object, _arg4:Object, _arg5:uint){ _arg1.graphics.beginFill((_arg5 & 0xFFFFFF)); _arg1.graphics.moveTo(_arg2.x, _arg2.y); _arg1.graphics.lineTo(_arg3.x, _arg3.y); _arg1.graphics.lineTo(_arg4.x, _arg4.y); _arg1.graphics.endFill(); } public static function getAverage(_arg1:Array):Point3D{ var _local2:Point3D; var _local3:int; _local2 = new Point3D(); _local3 = 0; while (_local3 < _arg1.length) { _local2.x = (_local2.x + _arg1[_local3].x); _local2.y = (_local2.y + _arg1[_local3].y); _local2.z = (_local2.z + _arg1[_local3].z); _local3++; }; _local2.x = (_local2.x / _arg1.length); _local2.y = (_local2.y / _arg1.length); _local2.z = (_local2.z / _arg1.length); return (_local2); } public static function makeSphere(_arg1:uint=100, _arg2:uint=4, _arg3:uint=8):Shape3D{ var _local4:Shape3D; var _local5:Point3D; var _local6:Point3D; var _local7:Number; var _local8:Number; var _local9:int; var _local10:int; var _local11:uint; if (_arg2 < 2){ _arg2 = 2; }; if (_arg3 < 3){ _arg3 = 3; }; _local4 = new Shape3D(); _local5 = new Point3D(0, _arg1, 0); _local4.pushPoint(new Point3D(0, 0, _arg1)); _local4.pushPoint(new Point3D(0, 0, -(_arg1))); _local9 = 1; while (_local9 < _arg2) { _local7 = (((Math.PI * _local9) / _arg2) - (Math.PI * 0.5)); _local10 = 0; while (_local10 < _arg3) { _local8 = (((Math.PI * 2) * _local10) / _arg3); _local6 = Utils.rotatePoint(_local5, new Point3D(), _local7, 0, _local8); _local4.pushPoint(_local6); _local10++; }; _local9++; }; _local9 = 0; while (_local9 < _arg3) { _local11 = (_local9 + 1); if (_local11 == _arg3){ _local11 = 0; }; _local4.pushFace((_local9 + 2), (_local11 + 2), 1); _local4.pushFace(((2 + ((_arg2 - 2) * _arg3)) + _local9), ((2 + ((_arg2 - 2) * _arg3)) + _local11), 0); _local9++; }; _local9 = 1; while (_local9 < (_arg2 - 1)) { _local10 = 0; while (_local10 < _arg3) { _local11 = (_local10 + 1); if (_local11 == _arg3){ _local11 = 0; }; _local4.pushFace(((2 + (uint((_local9 - 1)) * _arg3)) + _local10), ((2 + (uint((_local9 - 1)) * _arg3)) + _local11), ((2 + (_local9 * _arg3)) + _local10)); _local4.pushFace(((2 + (uint((_local9 - 1)) * _arg3)) + _local11), ((2 + (_local9 * _arg3)) + _local10), ((2 + (_local9 * _arg3)) + _local11)); _local10++; }; _local9++; }; return (_local4); } public static function makeCube(_arg1:uint=100):Shape3D{ var _local2:Shape3D; var _local3:Point3D; _local2 = new Shape3D(); _local3 = new Point3D(_arg1, _arg1, _arg1); _local2.pushPoint(_local3); _local3 = new Point3D(-(_arg1), _arg1, _arg1); _local2.pushPoint(_local3); _local3 = new Point3D(-(_arg1), -(_arg1), _arg1); _local2.pushPoint(_local3); _local3 = new Point3D(_arg1, -(_arg1), _arg1); _local2.pushPoint(_local3); _local3 = new Point3D(_arg1, _arg1, -(_arg1)); _local2.pushPoint(_local3); _local3 = new Point3D(-(_arg1), _arg1, -(_arg1)); _local2.pushPoint(_local3); _local3 = new Point3D(-(_arg1), -(_arg1), -(_arg1)); _local2.pushPoint(_local3); _local3 = new Point3D(_arg1, -(_arg1), -(_arg1)); _local2.pushPoint(_local3); _local2.pushFace(0, 1, 2); _local2.pushFace(0, 3, 2); _local2.pushFace(4, 5, 6); _local2.pushFace(4, 7, 6); _local2.pushFace(0, 1, 5); _local2.pushFace(0, 4, 5); _local2.pushFace(1, 2, 6); _local2.pushFace(1, 5, 6); _local2.pushFace(2, 3, 7); _local2.pushFace(2, 6, 7); _local2.pushFace(3, 0, 4); _local2.pushFace(3, 7, 4); return (_local2); } private static function drawPoint(_arg1:BitmapData, _arg2:uint, _arg3:Number, _arg4:Number){ _arg1.setPixel32(_arg3, _arg4, _arg2); } public static function makeTetrahedron(_arg1:uint=100):Shape3D{ var _local2:Shape3D; var _local3:Point3D; _local2 = new Shape3D(); _local3 = new Point3D(0, 0, _arg1); _local2.pushPoint(_local3); _local3 = rotatePoint(_local3, new Point3D(), 0, ((Math.PI * 2) / 3), 0); _local2.pushPoint(_local3); _local3 = rotatePoint(_local3, new Point3D(), 0, 0, ((Math.PI * 2) / 3)); _local2.pushPoint(_local3); _local3 = rotatePoint(_local3, new Point3D(), 0, 0, ((Math.PI * 2) / 3)); _local2.pushPoint(_local3); _local2.pushFace(0, 1, 2, 0xFFFFFF); _local2.pushFace(0, 1, 3, 0xFFFFFF); _local2.pushFace(0, 3, 2, 0xFFFFFF); _local2.pushFace(3, 1, 2, 0xFFFFFF); return (_local2); } public static function setColorIntensity(_arg1:uint, _arg2:Number):uint{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:uint; _arg2 = (Number((_arg2 + 2)) / 3); _local3 = (uint((_arg1 & 4278190080)) >>> 24); _local4 = (uint((_arg1 & 0xFF0000)) >>> 16); _local5 = (uint((_arg1 & 0xFF00)) >>> 8); _local6 = uint((_arg1 & 0xFF)); _local4 = (_local4 * _arg2); _local5 = (_local5 * _arg2); _local6 = (_local6 * _arg2); _local7 = (((uint((_local3 << 24)) + uint((Math.floor(_local4) << 16))) + uint((Math.floor(_local5) << 8))) + Math.floor(_local6)); return (_local7); } public static function makePrism(_arg1:uint=3, _arg2:uint=100, _arg3:uint=50):Shape3D{ var _local4:Shape3D; var _local5:Point3D; var _local6:int; var _local7:uint; var _local8:uint; if (_arg1 < 3){ _arg1 = 3; }; _local4 = new Shape3D(); _local5 = new Point3D(0, 0, (-(_arg2) * 0.5)); _local4.pushPoint(_local5); _local5 = new Point3D(0, 0, (_arg2 * 0.5)); _local4.pushPoint(_local5); _local6 = 0; while (_local6 < _arg1) { _local5 = new Point3D(0, _arg3, (-(_arg2) * 0.5)); _local5 = Utils.rotatePoint(_local5, new Point3D(), 0, 0, (((Math.PI * 2) * _local6) / _arg1)); _local4.pushPoint(_local5); _local5 = _local5.clone(); _local5.z = (_arg2 * 0.5); _local4.pushPoint(_local5); _local6++; }; _local6 = 2; while (_local6 < _local4.numPoints) { _local7 = (_local6 + 2); _local8 = (_local6 + 3); if (_local7 >= _local4.numPoints){ _local7 = (2 + uint((_local6 % 2))); _local8 = (_local7 + 1); } else { if (_local8 >= _local4.numPoints){ _local8 = (3 + uint((_local6 % 2))); }; }; _local4.pushFace(uint((_local6 % 2)), _local6, _local7); if (!uint((_local6 % 2))){ _local4.pushFace(_local6, (_local6 + 1), _local7); _local4.pushFace((_local6 + 1), _local7, _local8); }; _local6++; }; return (_local4); } public static function angleBetween(_arg1:Point3D, _arg2:Point3D, _arg3:Point3D=null):Number{ var _local4:Point3D; var _local5:Point3D; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; if (_arg3 == null){ _arg3 = new Point3D(0, 0, 0); }; _local4 = new Point3D((_arg1.x - _arg3.x), (_arg1.y - _arg3.y), (_arg1.z - _arg3.z)); _local5 = new Point3D((_arg2.x - _arg3.x), (_arg2.y - _arg3.y), (_arg2.z - _arg3.z)); _local6 = Math.sqrt((((_local4.x * _local4.x) + (_local4.y * _local4.y)) + (_local4.z * _local4.z))); _local7 = Math.sqrt((((_local5.x * _local5.x) + (_local5.y * _local5.y)) + (_local5.z * _local5.z))); _local8 = (((_local4.x * _local5.x) + (_local4.y * _local5.y)) + (_local4.z * _local5.z)); _local9 = (_local8 / Number((_local6 * _local7))); _local9 = (Boolean((_local9 < -1))) ? -1 : _local9; _local9 = (Boolean((_local9 > 1))) ? 1 : _local9; return (Math.acos(_local9)); } public static function getLineFromPoints(_arg1:Point3D, _arg2:Point3D):Object{ var _local3:Object; _local3 = new Object(); _local3.C = 2; if (Math.abs((_arg2.x - _arg1.x)) > 1){ _local3.B = 1; _local3.A = (Number(((_local3.B * Number((_arg1.y - _arg2.y))) + (_local3.C * Number((_arg1.z - _arg2.z))))) / Number((_arg2.x - _arg1.x))); } else { if (Math.abs((_arg2.y - _arg1.y)) > 1){ _local3.A = 1; _local3.B = (Number(((_local3.A * Number((_arg1.x - _arg2.x))) + (_local3.C * Number((_arg1.z - _arg2.z))))) / Number((_arg2.y - _arg1.y))); } else { _local3.A = 1; _local3.B = 2; _local3.C = (Number(((_local3.A * Number((_arg1.x - _arg2.x))) + (_local3.B * Number((_arg1.y - _arg2.y))))) / Number((_arg2.z - _arg1.z))); }; }; _local3.D = -(Number((((_local3.A * _arg1.x) + (_local3.B * _arg1.y)) + (_local3.C * _arg1.y)))); return (_local3); } public static function drawLine(_arg1:BitmapData, _arg2:uint, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number){ var _local7:Number; var _local8:int; var _local9:Number; var _local10:Number; _local7 = Math.sqrt((((_arg5 - _arg3) * (_arg5 - _arg3)) + ((_arg6 - _arg4) * (_arg6 - _arg4)))); _local8 = 0; while (_local8 <= _local7) { _local9 = (_arg3 + ((_arg5 - _arg3) * (_local8 / _local7))); _local10 = (_arg4 + ((_arg6 - _arg4) * (_local8 / _local7))); drawPoint(_arg1, _arg2, _local9, _local10); _local8++; }; } public static function sortArray(_arg1:Array, _arg2:String=null){ var _local3:Array; var _local4:int; var _local5:int; var _local6:*; _local3 = _arg1.concat(); if (_local3.length < 2){ return (_local3); }; if (_arg2 == null){ _local4 = 1; while (_local4 < _local3.length) { _local5 = (_local4 - 1); while ((((_local5 > 0)) && ((_local3[(_local5 + 1)] < _local3[_local5])))) { _local6 = _local3[(_local5 + 1)]; _local3[(_local5 + 1)] = _local3[_local5]; _local3[_local5] = _local6; _local5--; }; _local4++; }; } else { _local4 = 1; while (_local4 < _local3.length) { _local5 = (_local4 - 1); while ((((_local5 >= 0)) && ((_local3[(_local5 + 1)][_arg2] < _local3[_local5][_arg2])))) { _local6 = _local3[(_local5 + 1)]; _local3[(_local5 + 1)] = _local3[_local5]; _local3[_local5] = _local6; _local5--; }; _local4++; }; }; return (_local3); } public static function rotatePoint(_arg1:Point3D, _arg2:Point3D, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0):Point3D{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Point3D; var _local10:Point3D; var _local11:Point3D; _local6 = (_arg1.x - _arg2.x); _local8 = (_arg1.z - _arg2.z); _local9 = _arg1.clone(); _local9.x = ((_arg2.x + (_local6 * Math.cos(_arg4))) + (_local8 * -(Math.sin(_arg4)))); _local9.z = ((_arg2.z + (_local6 * Math.sin(_arg4))) + (_local8 * Math.cos(_arg4))); _local7 = (_local9.y - _arg2.y); _local8 = (_local9.z - _arg2.z); _local10 = _local9.clone(); _local10.y = ((_arg2.y + (_local7 * Math.cos(_arg3))) + (_local8 * -(Math.sin(_arg3)))); _local10.z = ((_arg2.z + (_local7 * Math.sin(_arg3))) + (_local8 * Math.cos(_arg3))); _local6 = (_local10.x - _arg2.x); _local7 = (_local10.y - _arg2.y); _local11 = _local10.clone(); _local11.x = ((_arg2.x + (_local6 * Math.cos(_arg5))) + (_local7 * -(Math.sin(_arg5)))); _local11.y = ((_arg2.y + (_local6 * Math.sin(_arg5))) + (_local7 * Math.cos(_arg5))); return (_local11); } public static function getNormal(_arg1:Object):Point3D{ var _local2:Array; var _local3:int; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:*; var _local11:*; var _local12:*; var _local13:Point3D; _local2 = new Array(); _local3 = 0; while (_local3 < 3) { _local2[_local3] = _arg1.shape.getPointAt(_arg1[_local3]); _local3++; }; _local4 = (((_local2[0].y * _local2[1].z) + (_local2[1].y * _local2[2].z)) + (_local2[2].y * _local2[0].z)); _local5 = (((_local2[0].z * _local2[1].y) + (_local2[1].z * _local2[2].y)) + (_local2[2].z * _local2[0].y)); _local6 = (((_local2[0].x * _local2[2].z) + (_local2[1].x * _local2[0].z)) + (_local2[2].x * _local2[1].z)); _local7 = (((_local2[0].z * _local2[2].x) + (_local2[1].z * _local2[0].x)) + (_local2[2].z * _local2[1].x)); _local8 = (((_local2[0].x * _local2[1].y) + (_local2[1].x * _local2[2].y)) + (_local2[2].x * _local2[0].y)); _local9 = (((_local2[0].y * _local2[1].x) + (_local2[1].y * _local2[2].x)) + (_local2[2].y * _local2[0].x)); _local10 = (_local4 - _local5); _local11 = (_local6 - _local7); _local12 = (_local8 - _local9); _local10 = (isNaN(_local10)) ? 0 : _local10; _local11 = (isNaN(_local11)) ? 0 : _local11; _local12 = (isNaN(_local12)) ? 0 : _local12; if (((((!(_local10)) && (!(_local11)))) && (!(_local12)))){ _local11 = 1; }; _local13 = new Point3D((_local10 * _arg1.normal), (_local11 * _arg1.normal), (_local12 * _arg1.normal)); _local13.normalize(); return (_local13); } } }//package graphics3d
Section 5
//World3D (graphics3d.World3D) package graphics3d { public class World3D { protected var _grid:Array; protected var _tiles:Array; protected var _shapes:Array; public var TILESIZE:uint; protected var _light:Point3D; public function World3D(){ _tiles = new Array(); _shapes = new Array(); _grid = new Array(); _light = new Point3D(); _light.z = -1; TILESIZE = 2000; } public function addShape(_arg1:Shape3D){ var _local2:int; _local2 = 0; while (_local2 < _shapes.length) { if (_arg1.id == _shapes[_local2].id){ return; }; _local2++; }; _arg1.attachToWorld(this); _tiles[_arg1.id] = new Array(); _tiles[_arg1.id].shape = _arg1; _shapes.push(_arg1); updateShape(_arg1.id); } public function get light():Point3D{ return (_light.clone()); } public function get shapes(){ return (_shapes.concat()); } public function getVisibleShapes(_arg1:Camera3D):Array{ var _local2:Array; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:String; var _local11:Boolean; var _local12:int; _local2 = new Array(); _local3 = Math.floor(((_arg1.horizon * 2) / TILESIZE)); _local4 = Math.floor((Number((_arg1.x - _arg1.horizon)) / TILESIZE)); _local5 = Math.floor((Number((_arg1.y - _arg1.horizon)) / TILESIZE)); _local6 = Math.floor((Number((_arg1.z - _arg1.horizon)) / TILESIZE)); _local7 = _local4; while (_local7 < (_local4 + _local3)) { if (!_grid[_local7]){ } else { _local8 = _local5; while (_local8 < (_local5 + _local3)) { if (!_grid[_local7][_local8]){ } else { _local9 = _local6; while (_local9 < (_local6 + _local3)) { if (!_grid[_local7][_local8][_local9]){ } else { for (_local10 in _grid[_local7][_local8][_local9]) { _local11 = true; _local12 = 0; while (_local12 < _local2.length) { if (_grid[_local7][_local8][_local9][_local10].id == _local2[_local12].id){ _local11 = false; break; }; _local12++; }; if (_local11){ _local2.push(_grid[_local7][_local8][_local9][_local10]); }; }; }; _local9++; }; }; _local8++; }; }; _local7++; }; return (_local2); } public function updateShape(_arg1:uint){ var _local2:Shape3D; var _local3:*; var _local4:Object; var _local5:String; var _local6:int; var _local7:int; var _local8:int; _local2 = _tiles[_arg1].shape; _local3 = 0; while (_local3 < _tiles[_arg1].length) { delete _tiles[_arg1][_local3][_arg1]; _local3++; }; delete _tiles[_arg1]; _tiles[_arg1] = new Array(); _tiles[_arg1].shape = _local2; _local4 = _local2.getBounds(); for (_local5 in _local4) { _local4[_local5] = Math.floor((_local4[_local5] / TILESIZE)); }; _local6 = _local4.minX; while (_local6 <= _local4.maxX) { if (!_grid[_local6]){ _grid[_local6] = new Array(); }; _local7 = _local4.minY; while (_local7 <= _local4.maxY) { if (!_grid[_local6][_local7]){ _grid[_local6][_local7] = new Array(); }; _local8 = _local4.minZ; while (_local8 <= _local4.maxZ) { if (!_grid[_local6][_local7][_local8]){ _grid[_local6][_local7][_local8] = new Object(); }; _grid[_local6][_local7][_local8][_arg1] = _tiles[_arg1].shape; _tiles[_arg1].push(_grid[_local6][_local7][_local8]); _local8++; }; _local7++; }; _local6++; }; } public function set light(_arg1:Point3D){ _light = _arg1.clone(); _light.normalize(); } public function removeShape(_arg1:uint){ var _local2:int; var _local3:int; _local2 = 0; while (_local2 < _tiles[_arg1].length) { delete _tiles[_arg1][_local2][_arg1]; _local2++; }; delete _tiles[_arg1]; _local3 = 0; while (_local3 < _shapes.length) { if (((_shapes[_local3]) && ((_shapes[_local3].id == _arg1)))){ _shapes.splice(_local3, 1); break; }; _local3++; }; } } }//package graphics3d
Section 6
//_btn1_3 (sInf_fla._btn1_3) package sInf_fla { import flash.display.*; import flash.text.*; public dynamic class _btn1_3 extends MovieClip { public var _txt:TextField; } }//package sInf_fla
Section 7
//_btn2_4 (sInf_fla._btn2_4) package sInf_fla { import flash.display.*; public dynamic class _btn2_4 extends MovieClip { public function _btn2_4(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package sInf_fla
Section 8
//_btn3_5 (sInf_fla._btn3_5) package sInf_fla { import flash.display.*; import flash.text.*; public dynamic class _btn3_5 extends MovieClip { public var _txt:TextField; } }//package sInf_fla
Section 9
//MainTimeline (sInf_fla.MainTimeline) package sInf_fla { import graphics3d.*; import flash.display.*; import flash.text.*; import flash.geom.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.events.*; import flash.external.*; import flash.filters.*; import flash.media.*; import flash.net.*; import flash.printing.*; import flash.system.*; import flash.ui.*; import flash.utils.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var size:Number; public var hRotation:Number; public var camDist:int; public var arm1State:int; public var belly_str:String; public var tail:Shape3D; public var arm1_str:String; public var headState:int; public var camSpin:Point3D; public var arm1Pos:Number; public var growthSpeed:Number; public var arm2State:int; public var camCenter:Point3D; public var _panel:MovieClip; public var arm2Pos:Number; public var camera:Camera3D; public var breast_str:String; public var reset:Boolean; public var clip:MovieClip; public var armSpeed:Number; public var arm1:Shape3D; public var leg2_str:String; public var arm2:Shape3D; public var head_str:String; public var wing2_str:String; public var bSize:Number; public var wing2:Shape3D; public var mX:Number; public var world:World3D; public var wing1:Shape3D; public var initGrowthSpeed:Number; public var mY:Number; public var tail_str:String; public var arm2_str:String; public var breasts:Shape3D; public var growth:int; public var leg1_str:String; public var belly:Shape3D; public var head:Shape3D; public var leg1:Shape3D; public var leg2:Shape3D; public var wing1_str:String; public function MainTimeline(){ addFrameScript(0, frame1); } public function expandRelease(_arg1){ if (reset){ head.gotoFrame(headState); arm1.gotoFrame(1); arm2.gotoFrame(1); belly.gotoFrame(1); breasts.gotoFrame(1); growth = 0; size = 0; bSize = 0; arm1State = 1; arm1Pos = 0; arm2State = 1; arm2Pos = 0; headState = 1; head.rX = 0; reset = false; camera.draw(clip); }; } public function eFrame(_arg1){ var _local2:Number; var _local3:Number; if (growth == 1){ _local2 = size; _local3 = bSize; if ((((_panel._belly.currentFrame - 1)) && (((1 - size) > 0.0001)))){ size = (size + growthSpeed); size = Math.min(size, 1); if ((1 - size) < 0.0001){ size = 1; }; }; if ((((_panel._breasts.currentFrame - 1)) && (((1 - bSize) > 0.0001)))){ bSize = (bSize + growthSpeed); bSize = Math.min(bSize, 1); if ((1 - bSize) < 0.0001){ bSize = 1; }; }; if ((((bSize == 1)) && ((size == 1)))){ growth = 0; }; if (((!((_local2 == size))) || (!((_local3 == bSize))))){ setSize(); }; } else { if (growth == -1){ if ((_panel._belly.currentFrame - 1)){ size = (size - growthSpeed); size = Math.max(size, 0); }; if ((_panel._breasts.currentFrame - 1)){ bSize = (bSize - growthSpeed); bSize = Math.max(bSize, 0); }; if ((((bSize == 0)) && ((size == 0)))){ growth = 0; }; setSize(); }; }; if (size > 0.8){ if (arm1State != 2){ arm1Pos = (arm1Pos + (Number((1 - arm1Pos)) * armSpeed)); goBetweenFrames(arm1, 1, 2, arm1Pos); if ((1 - arm1Pos) < 0.05){ arm1State = 2; arm1Pos = 0; arm1.gotoFrame(2); }; }; } else { if (arm1State != 1){ arm1Pos = (arm1Pos + (Number((1 - arm1Pos)) * armSpeed)); goBetweenFrames(arm1, 2, 1, arm1Pos); if ((1 - arm1Pos) < 0.05){ arm1State = 1; arm1Pos = 0; arm1.gotoFrame(1); }; }; }; if (bSize > 0.7){ if (arm2State != 2){ arm2Pos = (arm2Pos + (Number((1 - arm2Pos)) * armSpeed)); goBetweenFrames(arm2, 1, 2, arm2Pos); if ((1 - arm2Pos) < 0.05){ arm2State = 2; arm2Pos = 0; arm2.gotoFrame(2); }; }; } else { if (arm2State != 1){ arm2Pos = (arm2Pos + (Number((1 - arm2Pos)) * armSpeed)); goBetweenFrames(arm2, 2, 1, arm2Pos); if ((1 - arm2Pos) < 0.05){ arm2State = 1; arm2Pos = 0; arm2.gotoFrame(1); }; }; }; if (Math.max(size, bSize) < 0.1){ hRotation = 0; if (headState != 1){ headState = 1; head.gotoFrame(headState); camera.draw(clip); }; } else { if (Math.max(size, bSize) < 0.4){ hRotation = 0.3; if (headState != 2){ headState = 2; head.gotoFrame(headState); camera.draw(clip); }; } else { if (Math.max(size, bSize) < 0.8){ hRotation = -0.3; if (headState != 3){ headState = 3; head.gotoFrame(headState); camera.draw(clip); }; } else { hRotation = 0.3; if (headState != 1){ headState = 1; head.gotoFrame(headState); camera.draw(clip); }; }; }; }; if (head.rX != hRotation){ head.rX = (head.rX + (Number((hRotation - head.rX)) * 0.3)); if (Math.abs((head.rX - hRotation)) < 0.05){ head.rX = hRotation; camera.draw(clip); }; }; } function frame1(){ head_str = <![CDATA[ POS,0,0,107 ROT,0,0,0 SCA,1,1,1 P,0,0,1.6348773841961806,96 P,1,0,0,-4 P,2,31.560490940970197,41.16105648090791,-36.9368170697489 P,3,1.989454780275266,52.15263766819113,-116.33132320651114 P,4,-18.654437987113557,-4.257753738974392,-0.19397662556433912 P,5,-8.302005926645318,-17.239292941149348,-0.19397662556433912 P,6,8.302005926645315,-17.239292941149348,-0.19397662556433912 P,7,18.654437987113557,-4.2577537389743965,-0.19397662556433912 P,8,19.635326049648747,12.696763910154877,-6.45405844905936 P,9,26.30040911747516,64.98011988925143,-50.06077447721168 P,10,-29.277218143484777,61.60418428571856,-52.3477411633602 P,11,-34.46890689359052,-7.867303067823688,10.64466094067263 P,12,-15.340106708830016,-31.854059806588364,10.64466094067263 P,13,15.340106708830008,-31.854059806588367,10.64466094067263 P,14,34.46890689359052,-7.867303067823697,10.64466094067263 P,15,63.87803637843511,38.88822870418726,-94.97252199328403 P,16,10.683150437396788,62.46750088038608,14.841378300060551 P,17,-64.9604405856974,46.23046222872289,-100.5719273166763 P,18,-45.0357971869374,-2.1510645048072257,21.111675412005415 P,19,-12.671417966769498,-71.29087175860278,24.579524905923407 P,20,13.215413079851942,-71.29087175860278,24.579524905923407 P,21,45.0357971869374,-2.151064504807238,21.111675412005415 P,22,51.27809771395265,22.30819454900345,-2.5344306287271188 P,23,0,54,45 P,24,-45.90693967482652,32.590036556992786,29.278094145542724 P,25,-48.74639560909118,-13.421701643840391,37.72726810708667 P,26,-15.265198060495088,-76.28490439779922,30.56213141107165 P,27,16.340810731998893,-76.28490439779922,30.56213141107165 P,28,48.74639560909118,-13.421701643840406,37.72726810708667 P,29,48.38525442079924,32.00558302104888,33.20631716779757 P,30,0,46.19397662556434,65.13417161825448 P,31,-46.648742896642595,19.35133793474701,57.86847133348347 P,32,-39.70380431277213,-19.70282951878009,68.4295755108798 P,33,-12.333432142144602,-79.95784210417017,51.81493152291049 P,34,13.307882344314928,-79.95784210417017,51.81493152291049 P,35,40.6052582707405,-20.127086232688992,67.94913657273122 P,36,46.506719128965074,19.351337934746997,57.86847133348347 P,37,0,35.35533905932738,81.35533905932738 P,38,-27.641917149913763,24.43146793882668,79.92267430288037 P,39,-33.51080321828188,7.338643449647993,82.78527133362975 P,40,-15.340106708830016,-41.05817458731387,59.98180679872627 P,41,16.362620755711067,-41.05817458731388,59.43684767066087 P,42,35.42333353391307,7.338643449647986,82.24031220556435 P,43,27.64191714991377,24.43146793882667,79.92267430288037 P,44,0,19.13417161825449,92.19397662556436 P,45,-14.95969776209761,11.929960870996496,92.19397662556436 P,46,-18.654437987113557,-4.257753738974392,92.19397662556436 P,47,-16.048484799884754,-25.89844859380946,81.35117165418833 P,48,17.456935504110103,-26.988366849940245,80.80621252612293 P,49,18.654437987113557,-4.2577537389743965,92.19397662556436 P,50,14.959697762097612,11.929960870996492,92.19397662556436 P,51,0.46948356807511615,-35.612589707407885,100.40305176582578 P,52,0.6259780907668215,-57.29271724838759,81.34394186397122 P,53,-21.730861220111763,-30.313558268789365,68.80215025939742 P,54,23.06883476605509,-30.31355826878937,68.74544834744967 P,55,31.21046599476474,-26.2531042405392,59.090762400705515 P,56,-30.18795194788371,-26.25310424053919,59.635721528770915 P,57,58.00968664205688,3.0058919712341927,127.1884254920392 P,58,-58.51516145230699,2.590950322661173,127.27513406119846 P,59,1.6090717299663455,-79.9489411263638,42.80883693787366 P,60,-0.3253338148500431,-73.73986960215872,56.40060665316786 P,61,0.5378063357519023,-84.0602050463417,53.266633699022705 F,2,3,1,4287137928,-1 F,44,45,0,4287137928,1 F,3,4,1,4287137928,-1 F,45,46,0,4287137928,1 F,4,5,1,4291611852,-1 F,46,47,0,4287137928,1 F,5,6,1,4291611852,-1 F,6,7,1,4291611852,-1 F,48,49,0,4287137928,1 F,7,8,1,4287137928,-1 F,49,50,0,4287137928,1 F,8,2,1,4287137928,-1 F,50,44,0,4287137928,1 F,2,3,9,4287137928,1 F,3,9,10,4287137928,-1 F,3,4,10,4287137928,1 F,4,10,11,4287137928,-1 F,4,5,11,4291611852,1 F,5,11,12,4291611852,-1 F,5,6,12,4291611852,1 F,6,12,13,4291611852,-1 F,6,7,13,4291611852,1 F,7,13,14,4291611852,-1 F,7,8,14,4291611852,1 F,8,14,15,4287137928,-1 F,8,2,15,4287137928,1 F,2,15,9,4287137928,-1 F,9,10,16,4287137928,1 F,10,16,17,4287137928,-1 F,10,11,17,4287137928,1 F,11,17,18,4287137928,-1 F,11,12,18,4291611852,1 F,12,18,19,4291611852,-1 F,12,13,19,4291611852,1 F,13,14,20,4291611852,1 F,14,20,21,4291611852,-1 F,14,15,21,4287137928,1 F,15,21,22,4287137928,-1 F,15,9,22,4287137928,1 F,9,22,16,4287137928,-1 F,16,17,23,4287137928,1 F,17,23,24,4287137928,-1 F,17,18,24,4287137928,1 F,18,24,25,4287137928,-1 F,18,19,25,4291611852,1 F,19,25,26,4291611852,-1 F,20,26,27,4291611852,-1 F,20,21,27,4291611852,1 F,21,27,28,4291611852,-1 F,21,22,28,4287137928,1 F,22,28,29,4287137928,-1 F,22,16,29,4287137928,1 F,16,29,23,4287137928,-1 F,23,24,30,4287137928,1 F,24,30,31,4287137928,-1 F,24,25,31,4287137928,1 F,25,31,32,4287137928,-1 F,28,29,35,4287137928,1 F,29,35,36,4287137928,-1 F,29,23,36,4287137928,1 F,23,36,30,4287137928,-1 F,30,31,37,4287137928,1 F,31,37,38,4287137928,-1 F,35,36,42,4287137928,1 F,36,30,43,4287137928,1 F,30,43,37,4287137928,-1 F,37,38,44,4287137928,1 F,38,44,45,4287137928,-1 F,40,41,47,4291611852,1 F,41,47,48,4291611852,-1 F,42,48,49,4287137928,-1 F,43,37,50,4287137928,1 F,37,50,44,4287137928,-1 F,39,47,46,4287137928,1 F,51,48,0,4287137928,1 F,51,47,0,4287137928,-1 F,52,47,48,4287137928,1 F,47,40,53,4291611852,-1 F,47,39,53,4287137928,1 F,48,41,54,4291611852,1 F,48,42,54,4287137928,-1 F,54,35,55,4294967295,-1 F,54,41,55,4282664004,1 F,34,41,55,4291611852,-1 F,53,32,56,4294967295,1 F,53,40,56,4282664004,-1 F,33,40,56,4291611852,1 F,48,52,51,4287137928,-1 F,52,51,47,4287137928,1 F,50,43,57,4291611852,-1 F,50,49,57,4291611852,1 F,42,49,57,4291611852,-1 F,45,38,58,4291611852,1 F,39,32,31,4287137928,-1 F,31,38,58,4291611852,-1 F,43,36,57,4291611852,-1 F,58,39,31,4291611852,-1 F,42,36,57,4291611852,1 F,46,45,58,4291611852,1 F,46,58,39,4291611852,1 F,39,53,32,4287137928,-1 F,54,35,42,4287137928,1 F,56,32,25,4291611852,1 F,56,25,26,4291611852,1 F,56,26,33,4291611852,1 F,55,35,28,4291611852,-1 F,55,28,27,4291611852,-1 F,55,27,34,4291611852,-1 F,26,27,59,4291611852,1 F,26,33,59,4291611852,-1 F,34,27,59,4291611852,-1 F,20,19,13,4291611852,1 F,20,19,26,4291611852,-1 F,33,40,60,4291611852,-1 F,41,34,60,4291611852,-1 F,41,40,60,4291611852,1 F,60,33,61,4291611852,1 F,60,34,61,4291611852,-1 F,59,33,61,4278190080,-1 F,59,34,61,4278190080,1 FP,1,0,0,1.6348773841961806,96 FP,1,1,0,0,-4 FP,1,2,31.560490940970197,41.16105648090791,-36.9368170697489 FP,1,3,1.989454780275266,52.15263766819113,-116.33132320651114 FP,1,4,-18.654437987113557,-4.257753738974392,-0.19397662556433912 FP,1,5,-8.302005926645318,-17.239292941149348,-0.19397662556433912 FP,1,6,8.302005926645315,-17.239292941149348,-0.19397662556433912 FP,1,7,18.654437987113557,-4.2577537389743965,-0.19397662556433912 FP,1,8,19.635326049648747,12.696763910154877,-6.45405844905936 FP,1,9,26.30040911747516,64.98011988925143,-50.06077447721168 FP,1,10,-29.277218143484777,61.60418428571856,-52.3477411633602 FP,1,11,-34.46890689359052,-7.867303067823688,10.64466094067263 FP,1,12,-15.340106708830016,-31.854059806588364,10.64466094067263 FP,1,13,15.340106708830008,-31.854059806588367,10.64466094067263 FP,1,14,34.46890689359052,-7.867303067823697,10.64466094067263 FP,1,15,63.87803637843511,38.88822870418726,-94.97252199328403 FP,1,16,10.683150437396788,62.46750088038608,14.841378300060551 FP,1,17,-64.9604405856974,46.23046222872289,-100.5719273166763 FP,1,18,-45.0357971869374,-2.1510645048072257,21.111675412005415 FP,1,19,-12.671417966769498,-71.29087175860278,24.579524905923407 FP,1,20,13.215413079851942,-71.29087175860278,24.579524905923407 FP,1,21,45.0357971869374,-2.151064504807238,21.111675412005415 FP,1,22,51.27809771395265,22.30819454900345,-2.5344306287271188 FP,1,23,0,54,45 FP,1,24,-45.90693967482652,32.590036556992786,29.278094145542724 FP,1,25,-48.74639560909118,-13.421701643840391,37.72726810708667 FP,1,26,-15.265198060495088,-76.28490439779922,30.56213141107165 FP,1,27,16.340810731998893,-76.28490439779922,30.56213141107165 FP,1,28,48.74639560909118,-13.421701643840406,37.72726810708667 FP,1,29,48.38525442079924,32.00558302104888,33.20631716779757 FP,1,30,0,46.19397662556434,65.13417161825448 FP,1,31,-46.648742896642595,19.35133793474701,57.86847133348347 FP,1,32,-39.70380431277213,-19.70282951878009,68.4295755108798 FP,1,33,-12.333432142144602,-79.95784210417017,51.81493152291049 FP,1,34,13.307882344314928,-79.95784210417017,51.81493152291049 FP,1,35,40.6052582707405,-20.127086232688992,67.94913657273122 FP,1,36,46.506719128965074,19.351337934746997,57.86847133348347 FP,1,37,0,35.35533905932738,81.35533905932738 FP,1,38,-27.641917149913763,24.43146793882668,79.92267430288037 FP,1,39,-33.51080321828188,7.338643449647993,82.78527133362975 FP,1,40,-15.340106708830016,-41.05817458731387,59.98180679872627 FP,1,41,16.362620755711067,-41.05817458731388,59.43684767066087 FP,1,42,35.42333353391307,7.338643449647986,82.24031220556435 FP,1,43,27.64191714991377,24.43146793882667,79.92267430288037 FP,1,44,0,19.13417161825449,92.19397662556436 FP,1,45,-14.95969776209761,11.929960870996496,92.19397662556436 FP,1,46,-18.654437987113557,-4.257753738974392,92.19397662556436 FP,1,47,-16.048484799884754,-25.89844859380946,81.35117165418833 FP,1,48,17.456935504110103,-26.988366849940245,80.80621252612293 FP,1,49,18.654437987113557,-4.2577537389743965,92.19397662556436 FP,1,50,14.959697762097612,11.929960870996492,92.19397662556436 FP,1,51,0.46948356807511615,-35.612589707407885,100.40305176582578 FP,1,52,0.6259780907668215,-57.29271724838759,81.34394186397122 FP,1,53,-21.730861220111763,-30.313558268789365,68.80215025939742 FP,1,54,23.06883476605509,-30.31355826878937,68.74544834744967 FP,1,55,31.21046599476474,-26.2531042405392,59.090762400705515 FP,1,56,-30.18795194788371,-26.25310424053919,59.635721528770915 FP,1,57,58.00968664205688,3.0058919712341927,127.1884254920392 FP,1,58,-58.51516145230699,2.590950322661173,127.27513406119846 FP,1,59,1.6090717299663455,-79.9489411263638,42.80883693787366 FP,1,60,-0.3253338148500431,-73.73986960215872,56.40060665316786 FP,1,61,0.5378063357519023,-84.0602050463417,53.266633699022705 FPOS,1,0,0,107 FROT,1,0,0,0 FSCA,1,1,1,1 FP,2,0,0,1.6348773841961806,96 FP,2,1,0,0,-4 FP,2,2,31.560490940970197,41.16105648090791,-36.9368170697489 FP,2,3,1.989454780275266,52.15263766819113,-116.33132320651114 FP,2,4,-18.654437987113557,-4.257753738974392,-0.19397662556433912 FP,2,5,-8.302005926645318,-17.239292941149348,-0.19397662556433912 FP,2,6,8.302005926645315,-17.239292941149348,-0.19397662556433912 FP,2,7,18.654437987113557,-4.2577537389743965,-0.19397662556433912 FP,2,8,19.635326049648747,12.696763910154877,-6.45405844905936 FP,2,9,26.30040911747516,64.98011988925143,-50.06077447721168 FP,2,10,-29.277218143484777,61.60418428571856,-52.3477411633602 FP,2,11,-34.46890689359052,-7.867303067823688,10.64466094067263 FP,2,12,-15.340106708830016,-31.854059806588364,10.64466094067263 FP,2,13,15.340106708830008,-31.854059806588367,10.64466094067263 FP,2,14,34.46890689359052,-7.867303067823697,10.64466094067263 FP,2,15,63.87803637843511,38.88822870418726,-94.97252199328403 FP,2,16,10.683150437396788,62.46750088038608,14.841378300060551 FP,2,17,-64.9604405856974,46.23046222872289,-100.5719273166763 FP,2,18,-45.0357971869374,-2.1510645048072257,21.111675412005415 FP,2,19,-12.671417966769498,-71.29087175860278,24.579524905923407 FP,2,20,13.215413079851942,-71.29087175860278,24.579524905923407 FP,2,21,45.0357971869374,-2.151064504807238,21.111675412005415 FP,2,22,51.27809771395265,22.30819454900345,-2.5344306287271188 FP,2,23,0,54,45 FP,2,24,-45.90693967482652,32.590036556992786,29.278094145542724 FP,2,25,-48.74639560909118,-13.421701643840391,37.72726810708667 FP,2,26,-15.265198060495088,-76.28490439779922,30.56213141107165 FP,2,27,16.340810731998893,-76.28490439779922,30.56213141107165 FP,2,28,48.74639560909118,-13.421701643840406,37.72726810708667 FP,2,29,48.38525442079924,32.00558302104888,33.20631716779757 FP,2,30,0,46.19397662556434,65.13417161825448 FP,2,31,-46.648742896642595,19.35133793474701,57.86847133348347 FP,2,32,-39.70380431277213,-19.70282951878009,68.4295755108798 FP,2,33,-12.333432142144602,-79.95784210417017,51.81493152291049 FP,2,34,13.307882344314928,-79.95784210417017,51.81493152291049 FP,2,35,40.6052582707405,-20.127086232688992,67.94913657273122 FP,2,36,46.506719128965074,19.351337934746997,57.86847133348347 FP,2,37,0,35.35533905932738,81.35533905932738 FP,2,38,-27.641917149913763,24.43146793882668,79.92267430288037 FP,2,39,-33.51080321828188,7.338643449647993,82.78527133362975 FP,2,40,-15.340106708830016,-41.05817458731387,59.98180679872627 FP,2,41,16.362620755711067,-41.05817458731388,59.43684767066087 FP,2,42,35.42333353391307,7.338643449647986,82.24031220556435 FP,2,43,27.64191714991377,24.43146793882667,79.92267430288037 FP,2,44,0,19.13417161825449,92.19397662556436 FP,2,45,-14.95969776209761,11.929960870996496,92.19397662556436 FP,2,46,-18.654437987113557,-4.257753738974392,92.19397662556436 FP,2,47,-16.048484799884754,-25.89844859380946,81.35117165418833 FP,2,48,17.456935504110103,-26.988366849940245,80.80621252612293 FP,2,49,18.654437987113557,-4.2577537389743965,92.19397662556436 FP,2,50,14.959697762097612,11.929960870996492,92.19397662556436 FP,2,51,0.46948356807511615,-35.612589707407885,100.40305176582578 FP,2,52,0.6259780907668215,-57.29271724838759,81.34394186397122 FP,2,53,-19.814234483168786,-30.313558268789365,75.51034383869788 FP,2,54,19.714737976404866,-30.31355826878937,75.93279861098587 FP,2,55,32.16877936323624,-26.2531042405392,50.94509876869783 FP,2,56,-29.708795263647964,-26.25310424053919,50.052587844056006 FP,2,57,58.00968664205688,3.0058919712341927,127.1884254920392 FP,2,58,-58.51516145230699,2.590950322661173,127.27513406119846 FP,2,59,1.6090717299663455,-79.9489411263638,42.80883693787366 FP,2,60,-0.3253338148500431,-73.73986960215872,56.40060665316786 FP,2,61,0.5378063357519023,-84.0602050463417,53.266633699022705 FPOS,2,0,0,107 FROT,2,0,0,0 FSCA,2,1,1,1 FP,3,0,0,1.6348773841961806,96 FP,3,1,0,0,-4 FP,3,2,31.560490940970197,41.16105648090791,-36.9368170697489 FP,3,3,1.989454780275266,52.15263766819113,-116.33132320651114 FP,3,4,-18.654437987113557,-4.257753738974392,-0.19397662556433912 FP,3,5,-8.302005926645318,-17.239292941149348,-0.19397662556433912 FP,3,6,8.302005926645315,-17.239292941149348,-0.19397662556433912 FP,3,7,18.654437987113557,-4.2577537389743965,-0.19397662556433912 FP,3,8,19.635326049648747,12.696763910154877,-6.45405844905936 FP,3,9,26.30040911747516,64.98011988925143,-50.06077447721168 FP,3,10,-29.277218143484777,61.60418428571856,-52.3477411633602 FP,3,11,-34.46890689359052,-7.867303067823688,10.64466094067263 FP,3,12,-15.340106708830016,-31.854059806588364,10.64466094067263 FP,3,13,15.340106708830008,-31.854059806588367,10.64466094067263 FP,3,14,34.46890689359052,-7.867303067823697,10.64466094067263 FP,3,15,63.87803637843511,38.88822870418726,-94.97252199328403 FP,3,16,10.683150437396788,62.46750088038608,14.841378300060551 FP,3,17,-64.9604405856974,46.23046222872289,-100.5719273166763 FP,3,18,-45.0357971869374,-2.1510645048072257,21.111675412005415 FP,3,19,-12.671417966769498,-71.29087175860278,24.579524905923407 FP,3,20,13.215413079851942,-71.29087175860278,24.579524905923407 FP,3,21,45.0357971869374,-2.151064504807238,21.111675412005415 FP,3,22,51.27809771395265,22.30819454900345,-2.5344306287271188 FP,3,23,0,54,45 FP,3,24,-45.90693967482652,32.590036556992786,29.278094145542724 FP,3,25,-48.74639560909118,-13.421701643840391,37.72726810708667 FP,3,26,-15.265198060495088,-76.28490439779922,30.56213141107165 FP,3,27,16.340810731998893,-76.28490439779922,30.56213141107165 FP,3,28,48.74639560909118,-13.421701643840406,37.72726810708667 FP,3,29,48.38525442079924,32.00558302104888,33.20631716779757 FP,3,30,0,46.19397662556434,65.13417161825448 FP,3,31,-46.648742896642595,19.35133793474701,57.86847133348347 FP,3,32,-39.70380431277213,-19.70282951878009,68.4295755108798 FP,3,33,-12.333432142144602,-79.95784210417017,51.81493152291049 FP,3,34,13.307882344314928,-79.95784210417017,51.81493152291049 FP,3,35,40.6052582707405,-20.127086232688992,67.94913657273122 FP,3,36,46.506719128965074,19.351337934746997,57.86847133348347 FP,3,37,0,35.35533905932738,81.35533905932738 FP,3,38,-27.641917149913763,24.43146793882668,79.92267430288037 FP,3,39,-33.51080321828188,7.338643449647993,82.78527133362975 FP,3,40,-15.340106708830016,-41.05817458731387,59.98180679872627 FP,3,41,16.362620755711067,-41.05817458731388,59.43684767066087 FP,3,42,35.42333353391307,7.338643449647986,82.24031220556435 FP,3,43,27.64191714991377,24.43146793882667,79.92267430288037 FP,3,44,0,19.13417161825449,92.19397662556436 FP,3,45,-14.95969776209761,11.929960870996496,92.19397662556436 FP,3,46,-18.654437987113557,-4.257753738974392,92.19397662556436 FP,3,47,-16.048484799884754,-25.89844859380946,81.35117165418833 FP,3,48,17.456935504110103,-26.988366849940245,80.80621252612293 FP,3,49,18.654437987113557,-4.2577537389743965,92.19397662556436 FP,3,50,14.959697762097612,11.929960870996492,92.19397662556436 FP,3,51,0.46948356807511615,-35.612589707407885,100.40305176582578 FP,3,52,0.6259780907668215,-57.29271724838759,81.34394186397122 FP,3,53,-27.480741430940718,-30.313558268789365,57.781546521975294 FP,3,54,28.818714976884042,-30.31355826878937,60.12062803120625 FP,3,55,29.29383925782176,-26.2531042405392,60.04907576917701 FP,3,56,-27.79216852670498,-26.25310424053919,57.719094791827935 FP,3,57,58.00968664205688,3.0058919712341927,127.1884254920392 FP,3,58,-58.51516145230699,2.590950322661173,127.27513406119846 FP,3,59,1.6090717299663455,-79.9489411263638,42.80883693787366 FP,3,60,-0.3253338148500431,-73.73986960215872,56.40060665316786 FP,3,61,0.5378063357519023,-84.0602050463417,53.266633699022705 FPOS,3,0,0,107 FROT,3,0,0,0 FSCA,3,1,1,1 ]]> ; belly_str = <![CDATA[ POS,0,0,-51 ROT,0,0,0 SCA,1,1,1 P,0,0.033315844437396214,2.4221008511187674,-65.33320898134113 P,1,-29.01763696559234,40.57463692809109,-25.23243117669552 P,2,-45.60269305090932,35.09511121060579,64.79236908241847 P,3,-47.64663758526837,-20.891080030877315,-24.26845612199045 P,4,-42.63067715216096,-32.9459467755923,46.96021071288083 P,5,-0.9312082730615332,-29.73623648166738,-20.95738986959938 P,6,-0.9978399619363088,-32.75573143755852,46.8952372521296 P,7,45.26504338434181,-21.683418428697056,-21.947359815191913 P,8,41.035752046822765,-32.88086028341237,46.9253259213754 P,9,29.758793031975543,40.08494486764684,-25.151767974394147 P,10,51.97979956148037,34.59422394102602,64.82980788111067 P,11,-28.352684224111755,-36.84246851641133,11.360794466572964 P,12,31.717391415474324,-27.839409643871583,11.30645888176667 P,13,-0.14305642856135492,-36.88546777500722,10.740219716780592 P,14,45.61480078239497,-27.282139356054714,8.847142965468542 P,15,-45.13865736871467,-27.12512497348274,9.62577374073047 P,16,-14.36812368560745,-33.402906212820724,-9.77381897055502 P,17,-14.675262093024031,-36.60506791067056,29.843227849369008 P,18,15.359775726769008,-36.439277996555155,29.53088212260854 P,19,15.119269008227208,-33.305248526974125,-8.443229319440368 P,20,0.2510194936887318,-36.169765385035234,30.03516411491865 P,21,-14.521692889315744,-36.70369929651146,10.936953377895396 P,22,15.513344930477295,-36.87986417364405,11.149542034337022 P,23,-1.0847774767698204,-33.56067029865631,-8.622856909626293 F,0,1,3,4291611852,-1 F,1,2,3,4291611852,-1 F,0,3,5,4291611852,-1 F,0,5,7,4291611852,-1 F,0,7,9,4291611852,-1 F,8,9,10,4291611852,1 F,0,9,1,4291611852,-1 F,9,10,1,4291611852,-1 F,10,1,2,4291611852,1 F,12,8,14,4291611852,-1 F,12,7,14,4291611852,1 F,9,8,14,4291611852,1 F,9,7,14,4291611852,-1 F,11,3,15,4291611852,-1 F,11,4,15,4291611852,1 F,2,3,15,4291611852,1 F,2,4,15,4291611852,-1 F,3,11,16,4291611852,-1 F,3,5,16,4291611852,1 F,4,11,17,4291611852,1 F,4,6,17,4291611852,-1 F,8,12,18,4291611852,-1 F,8,6,18,4291611852,1 F,7,12,19,4291611852,1 F,7,5,19,4291611852,-1 F,17,13,20,4291611852,1 F,17,6,20,4291611852,-1 F,18,13,20,4291611852,-1 F,18,6,20,4291611852,1 F,16,13,21,4291611852,1 F,16,11,21,4291611852,-1 F,17,13,21,4291611852,-1 F,17,11,21,4291611852,1 F,18,13,22,4291611852,1 F,18,12,22,4291611852,-1 F,19,13,22,4291611852,-1 F,19,12,22,4291611852,1 F,16,13,23,4291611852,-1 F,16,5,23,4291611852,1 F,19,13,23,4291611852,1 F,19,5,23,4291611852,-1 FP,1,0,0.033315844437396214,2.4221008511187674,-65.33320898134113 FP,1,1,-29.01763696559234,40.57463692809109,-25.23243117669552 FP,1,2,-45.60269305090932,35.09511121060579,64.79236908241847 FP,1,3,-47.64663758526837,-20.891080030877315,-24.26845612199045 FP,1,4,-42.63067715216096,-32.9459467755923,46.96021071288083 FP,1,5,-0.9312082730615332,-29.73623648166738,-20.95738986959938 FP,1,6,-0.9978399619363088,-32.75573143755852,46.8952372521296 FP,1,7,45.26504338434181,-21.683418428697056,-21.947359815191913 FP,1,8,41.035752046822765,-32.88086028341237,46.9253259213754 FP,1,9,29.758793031975543,40.08494486764684,-25.151767974394147 FP,1,10,51.97979956148037,34.59422394102602,64.82980788111067 FP,1,11,-28.352684224111755,-36.84246851641133,11.360794466572964 FP,1,12,31.717391415474324,-27.839409643871583,11.30645888176667 FP,1,13,-0.14305642856135492,-36.88546777500722,10.740219716780592 FP,1,14,45.61480078239497,-27.282139356054714,8.847142965468542 FP,1,15,-45.13865736871467,-27.12512497348274,9.62577374073047 FP,1,16,-14.36812368560745,-33.402906212820724,-9.77381897055502 FP,1,17,-14.675262093024031,-36.60506791067056,29.843227849369008 FP,1,18,15.359775726769008,-36.439277996555155,29.53088212260854 FP,1,19,15.119269008227208,-33.305248526974125,-8.443229319440368 FP,1,20,0.2510194936887318,-36.169765385035234,30.03516411491865 FP,1,21,-14.521692889315744,-36.70369929651146,10.936953377895396 FP,1,22,15.513344930477295,-36.87986417364405,11.149542034337022 FP,1,23,-1.0847774767698204,-33.56067029865631,-8.622856909626293 FPOS,1,0,0,-51 FROT,1,0,0,0 FSCA,1,1,1,1 FP,2,0,-0.9666841555626036,3.054611920062468,-64.28934915977325 FP,2,1,-29.01763696559234,40.57463692809109,-25.23243117669552 FP,2,2,-45.60269305090932,35.09511121060579,64.79236908241847 FP,2,3,-47.64663758526837,-20.891080030877315,-25.26845612199045 FP,2,4,-43.63067715216096,-29.706277354104685,48.19988013436843 FP,2,5,-0.9312082730615332,-10.29094868913117,-105.918806694393 FP,2,6,-0.9978399619363088,-29.449946313591564,48.134906673617195 FP,2,7,46.26504338434181,-21.683418428697056,-23.947359815191913 FP,2,8,42.035752046822765,-29.707306564404107,48.164995342863 FP,2,9,29.758793031975543,40.08494486764684,-25.151767974394147 FP,2,10,51.97979956148037,34.59422394102602,64.82980788111067 FP,2,11,-80.35268422411175,-68.84246851641133,-23.63920553342704 FP,2,12,85.71739141547432,-68.83940964387159,-23.693541118233327 FP,2,13,-0.14305642856135492,-209.8854677750072,-98.2597802832194 FP,2,14,52.61480078239497,-29.282139356054714,1.8471429654685425 FP,2,15,-57.13865736871467,-30.12512497348274,0.6257737407304695 FP,2,16,-77.36812368560746,-86.40290621282072,-101.77381897055504 FP,2,17,-54.67526209302403,-148.60506791067056,8.843227849369008 FP,2,18,50.35977572676901,-148.43927799655515,9.53088212260854 FP,2,19,81.1192690082272,-86.30524852697414,-98.44322931944038 FP,2,20,0.2510194936887318,-157.16976538503525,27.03516411491865 FP,2,21,-72.52169288931574,-151.70369929651145,-77.06304662210461 FP,2,22,74.5133449304773,-151.87986417364405,-75.85045796566297 FP,2,23,-0.08477747676982039,-89.5606702986563,-145.6228569096263 FPOS,2,0,0,-51 FROT,2,0,0,0 FSCA,2,1,1,1 ]]> ; arm1_str = <![CDATA[ POS,-69,0,46 ROT,-0.5235987755982988,0,0 SCA,1,1,1 P,0,12.953608682599192,-19.28247744201833,35.78615160125544 P,1,-10.173536732391424,-28.916959582541118,-147.55441032799854 P,2,27.475671666860862,18.076035795967336,31.31460205872147 P,3,-18.51886446195827,-29.972840702931066,-145.4873782528425 P,4,-15.544182533047808,3.511064949849515,10.47995490347507 P,5,-12.163594342315774,-35.923080575732925,-131.94653889227664 P,6,7.220649959438337,-17.489358282881636,7.552779840471609 P,7,-2.9715685974405295,-35.07043119924084,-132.8938825540695 P,8,22.412147840898037,-6.953464919187634,-9.170145991478082 P,9,-14.80582749960827,12.217379370279346,-66.03825886607572 P,10,-34.21203311158072,-5.982481227474452,-65.1545969546713 P,11,-8.596991168000798,-17.73421287493413,-63.725186832175986 P,12,-1.187194154268509,-1.5749047100155407,-60.38760302401829 P,13,-14.597756960031305,-53.227605628463635,-165.25751677704116 P,14,-8.996750289427924,-61.33819395434089,-146.87866458009177 P,15,8.334846434801777,-65.49354694433538,-184.52113156796437 P,16,9.74666909268578,-76.57508504249311,-165.9219631529859 P,17,-5.334220596173683,-48.52420596654084,-168.86111897009928 P,18,3.3611526315951994,-61.36561337640986,-148.8413334466259 P,19,10.902920067833792,-71.10851026366154,-148.74766117764494 F,0,2,4,4291611852,1 F,0,4,6,4291611852,1 F,0,6,8,4291611852,1 F,0,8,2,4291611852,1 F,6,12,8,4291611852,1 F,6,12,11,4291611852,-1 F,6,11,10,4291611852,-1 F,6,10,4,4291611852,-1 F,10,4,9,4291611852,1 F,4,9,2,4291611852,-1 F,9,2,12,4291611852,1 F,2,12,8,4291611852,-1 F,5,10,11,4287137928,-1 F,5,10,3,4287137928,1 F,10,3,1,4287137928,-1 F,10,1,9,4287137928,-1 F,1,9,7,4287137928,1 F,9,7,12,4287137928,-1 F,7,12,11,4287137928,1 F,7,11,5,4287137928,1 F,13,5,14,4287137928,-1 F,13,5,3,4287137928,1 F,15,13,14,4287137928,-1 F,15,14,16,4287137928,-1 F,17,13,3,4287137928,1 F,17,3,1,4287137928,1 F,18,17,1,4287137928,1 F,7,18,1,4287137928,1 F,17,13,15,4287137928,-1 F,17,15,18,4287137928,-1 F,15,18,16,4287137928,1 F,19,7,5,4287137928,1 F,19,5,14,4287137928,1 F,18,7,19,4287137928,1 F,19,18,14,4287137928,-1 F,18,14,16,4287137928,1 FP,1,0,18.92014481965722,-13.88896703015288,35.62840545787052 FP,1,1,-27.7397400457186,-44.71282983032088,-138.04176047221645 FP,1,2,21.848228190074348,25.964194688066573,30.17905606365014 FP,1,3,-33.98288518279609,-47.267549813479626,-132.60774298429504 FP,1,4,-15.615996674560453,-0.909177530073151,10.912959569272177 FP,1,5,-21.516750719836907,-53.84536575589874,-124.83104880198144 FP,1,6,12.181433428072811,-14.471239982273318,7.566757252301511 FP,1,7,-13.982789921333705,-51.50292487775216,-129.7167640706221 FP,1,8,23.21922299364152,-0.36462916256288064,-9.771455975187305 FP,1,9,-17.033679856498864,15.192953690748643,-76.37467034948997 FP,1,10,-32.09528318809135,-5.365939732698203,-68.6872386138183 FP,1,11,-4.5387951765868815,-11.179578675537112,-66.9213522931064 FP,1,12,-0.5496549359354521,6.366884668941322,-68.75879129108351 FP,1,13,-40.75265507497475,-67.41841219406551,-154.53827984411598 FP,1,14,-26.47871248372519,-76.83666504393744,-142.6015213665851 FP,1,15,-35.059664327444516,-78.20474707716042,-179.96482071673503 FP,1,16,-24.743188369976153,-89.11426026815313,-167.22616477053342 FP,1,17,-30.722260727960187,-63.114982439751465,-159.79924884916878 FP,1,18,-16.5924955182951,-74.75167359582538,-149.98299210645405 FP,1,19,-10.710428560029458,-81.28514347726896,-156.0417122121276 FPOS,1,-69,0,46 FROT,1,0,0,0 FSCA,1,1,1,1 FP,2,0,12.953608682599192,-19.28247744201833,35.78615160125544 FP,2,1,-10.173536732391424,-28.916959582541118,-147.55441032799854 FP,2,2,27.475671666860862,18.076035795967336,31.31460205872147 FP,2,3,-18.51886446195827,-29.972840702931066,-145.4873782528425 FP,2,4,-15.544182533047808,3.511064949849515,10.47995490347507 FP,2,5,-12.163594342315774,-35.923080575732925,-131.94653889227664 FP,2,6,7.220649959438337,-17.489358282881636,7.552779840471609 FP,2,7,-2.9715685974405295,-35.07043119924084,-132.8938825540695 FP,2,8,22.412147840898037,-6.953464919187634,-9.170145991478082 FP,2,9,-14.80582749960827,12.217379370279346,-66.03825886607572 FP,2,10,-34.21203311158072,-5.982481227474452,-65.1545969546713 FP,2,11,-8.596991168000798,-17.73421287493413,-63.725186832175986 FP,2,12,-1.187194154268509,-1.5749047100155407,-60.38760302401829 FP,2,13,-14.597756960031305,-53.227605628463635,-165.25751677704116 FP,2,14,-8.996750289427924,-61.33819395434089,-146.87866458009177 FP,2,15,8.334846434801777,-65.49354694433538,-184.52113156796437 FP,2,16,9.74666909268578,-76.57508504249311,-165.9219631529859 FP,2,17,-5.334220596173683,-48.52420596654084,-168.86111897009928 FP,2,18,3.3611526315951994,-61.36561337640986,-148.8413334466259 FP,2,19,10.902920067833792,-71.10851026366154,-148.74766117764494 FPOS,2,-69,0,46 FROT,2,-0.5235987755982988,0,0 FSCA,2,1,1,1 ]]> ; arm2_str = <![CDATA[ POS,77.35000000000002,0,49.849999999999994 ROT,0,0,0 SCA,-1,1,1 P,0,21.40241432320331,0.05520983642759947,32.67385363517315 P,1,7.090668493385824,-71.03474670579156,3.031049209791874 P,2,27.167377126244528,26.372742293407345,4.9461874879180145 P,3,3.838792732697925,-68.96837761359755,10.919356459139898 P,4,-15.615996674560453,-0.9091775300731512,7.209255865568474 P,5,3.084461533762494,-52.73059587601731,5.371147331331951 P,6,19.27363200963305,-22.435892333901695,6.35566902047995 P,7,6.167259662374075,-53.10669141426616,-3.3737206557541075 P,8,23.21922299364152,-12.2275465615084,-11.108762042529802 P,9,-61.89811571718108,-49.60866565622304,-50.67230669772578 P,10,-79.19009673671799,-28.261122849528792,-33.168209799602245 P,11,-60.95959080306338,-36.9454213627261,-12.675508003907748 P,12,-38.972575241652336,-39.14765620719097,-25.74479530532034 P,13,32.746965508256636,-73.35593831032483,17.937652593979752 P,14,30.694304915987512,-50.851334578326956,15.528682861754818 P,15,59.77996393548744,-78.08779750108033,7.4430530062626215 P,16,57.642790734379716,-56.228892857941624,13.295875154863673 P,17,35.14837996725441,-74.47099240809206,7.218878432650872 P,18,36.10820813201508,-51.27120882490398,4.255531434831411 P,19,45.450134548439294,-41.80856459529213,6.982065501028577 F,0,2,4,4291611852,-1 F,0,4,6,4291611852,-1 F,0,6,8,4291611852,-1 F,0,8,2,4291611852,-1 F,6,12,8,4291611852,-1 F,6,12,11,4291611852,1 F,6,11,10,4291611852,1 F,6,10,4,4291611852,1 F,10,4,9,4291611852,-1 F,4,9,2,4291611852,1 F,9,2,12,4291611852,-1 F,2,12,8,4291611852,1 F,5,10,11,4287137928,1 F,5,10,3,4287137928,-1 F,10,3,1,4287137928,1 F,10,1,9,4287137928,1 F,1,9,7,4287137928,-1 F,9,7,12,4287137928,1 F,7,12,11,4287137928,-1 F,7,11,5,4287137928,-1 F,13,5,14,4287137928,1 F,13,5,3,4287137928,-1 F,15,13,14,4287137928,1 F,15,14,16,4287137928,1 F,17,13,3,4287137928,-1 F,17,3,1,4287137928,-1 F,18,17,1,4287137928,-1 F,7,18,1,4287137928,-1 F,17,13,15,4287137928,1 F,17,15,18,4287137928,1 F,15,18,16,4287137928,-1 F,19,7,5,4287137928,-1 F,19,5,14,4287137928,-1 F,18,7,19,4287137928,-1 F,19,18,14,4287137928,1 F,18,14,16,4287137928,-1 FP,1,0,21.40241432320331,-14.004544117878202,31.79511901302904 FP,1,1,-27.7397400457186,-44.71282983032088,-138.04176047221645 FP,1,2,27.167377126244528,25.494007671263233,26.03581841937672 FP,1,3,-33.98288518279609,-47.267549813479626,-132.60774298429504 FP,1,4,-15.615996674560453,-0.9091775300731512,7.209255865568474 FP,1,5,-21.516750719836907,-53.84536575589874,-124.83104880198144 FP,1,6,19.27363200963305,-14.527280734604684,3.7194651540476142 FP,1,7,-13.982789921333705,-51.50292487775216,-129.7167640706221 FP,1,8,23.21922299364152,-0.364629162562881,-13.74496590896214 FP,1,9,-17.033679856498864,15.192953690748643,-76.37467034948997 FP,1,10,-32.09528318809135,-5.365939732698203,-68.6872386138183 FP,1,11,-4.5387951765868815,-11.179578675537112,-66.9213522931064 FP,1,12,-0.5496549359354521,6.366884668941322,-68.75879129108351 FP,1,13,-40.75265507497475,-67.41841219406551,-154.53827984411598 FP,1,14,-26.47871248372519,-76.83666504393744,-142.6015213665851 FP,1,15,-35.059664327444516,-78.20474707716042,-179.96482071673503 FP,1,16,-24.743188369976153,-89.11426026815313,-167.22616477053342 FP,1,17,-30.722260727960187,-63.114982439751465,-159.79924884916878 FP,1,18,-16.5924955182951,-74.75167359582538,-149.98299210645405 FP,1,19,-10.710428560029458,-81.28514347726896,-156.0417122121276 FPOS,1,77.35000000000002,0,49.849999999999994 FROT,1,0,0,0 FSCA,1,-1,1,1 FP,2,0,21.40241432320331,0.05520983642759947,32.67385363517315 FP,2,1,7.090668493385824,-71.03474670579156,3.031049209791874 FP,2,2,27.167377126244528,26.372742293407345,4.9461874879180145 FP,2,3,3.838792732697925,-68.96837761359755,10.919356459139898 FP,2,4,-15.615996674560453,-0.9091775300731512,7.209255865568474 FP,2,5,3.084461533762494,-52.73059587601731,5.371147331331951 FP,2,6,19.27363200963305,-22.435892333901695,6.35566902047995 FP,2,7,6.167259662374075,-53.10669141426616,-3.3737206557541075 FP,2,8,23.21922299364152,-12.2275465615084,-11.108762042529802 FP,2,9,-61.89811571718108,-49.60866565622304,-50.67230669772578 FP,2,10,-79.19009673671799,-28.261122849528792,-33.168209799602245 FP,2,11,-60.95959080306338,-36.9454213627261,-12.675508003907748 FP,2,12,-38.972575241652336,-39.14765620719097,-25.74479530532034 FP,2,13,32.746965508256636,-73.35593831032483,17.937652593979752 FP,2,14,30.694304915987512,-50.851334578326956,15.528682861754818 FP,2,15,59.77996393548744,-78.08779750108033,7.4430530062626215 FP,2,16,57.642790734379716,-56.228892857941624,13.295875154863673 FP,2,17,35.14837996725441,-74.47099240809206,7.218878432650872 FP,2,18,36.10820813201508,-51.27120882490398,4.255531434831411 FP,2,19,45.450134548439294,-41.80856459529213,6.982065501028577 FPOS,2,77.35000000000002,0,49.849999999999994 FROT,2,0,0,0 FSCA,2,-1,1,1 ]]> ; breast_str = <![CDATA[ POS,0.8000000000000114,0,43.55000000000001 ROT,0,0,0 SCA,1,1,1 P,0,0.06294419822780484,-2.0095110938871175,-39.999949344555375 P,1,-0.0709877207581629,-4.481861465678116,67.55240216521906 P,2,-46.09351761664816,35.01268150736205,-30.73562069035821 P,3,-46.5761336398035,33.90007070039697,31.492882827601207 P,4,-77.41850306303112,-15.329005905502015,-44.94038762812994 P,5,-52.82173089040133,-14.434401200414838,38.28546411646959 P,6,-0.8406065626748551,-56.004406470353686,-39.98235018021275 P,7,-0.966494959130442,-45.87708935170396,26.064553117193014 P,8,75.86330580960265,-15.588593640495354,-43.459382556369654 P,9,57.637417413147105,-15.569571452721116,40.12531145437857 P,10,51.160920916602166,34.52478424970803,-30.96686037919276 P,11,47.46190183060723,32.87549245810037,32.10980769483983 P,12,-0.4700632107666445,-27.005795723821993,46.90249421274346 P,13,28.55452961762591,-8.018286748205613,46.951701002471815 P,14,21.64334439040068,24.170849961045676,47.03007114967794 P,15,-20.770306865700263,24.638693577458632,46.74837049566341 P,16,-28.01414506488988,-8.504750197535444,46.06331615719242 P,17,-0.48582041775147106,-19.406598647624534,66.09642038946926 P,18,24.683155263180147,-5.762010286804112,66.13178081464474 P,19,15.40506576223365,19.901904144880973,66.1880982810263 P,20,-15.977843750269004,18.659918535798106,65.98566575183368 P,21,-24.31636620686916,-6.555673906523515,65.4933797723914 P,22,-52.612402955021594,-38.94762569111176,11.553686034124386 P,23,50.356740310350986,-38.93592899134385,11.957256437727196 P,24,-88.05448946306066,-161.10394801059925,-24.817809734963326 P,25,82.73579454803347,-160.6544566817325,-24.61521348956694 P,26,-16.373072996930578,-49.31242161068662,12.464164416086142 P,27,15.35915644362064,-49.30657326080267,12.945748162935114 P,28,-30.66207637807078,-120.44470005471563,-95.62974032041713 P,29,31.582500869560025,-120.78251404905387,-95.63059900485327 P,30,-43.29256416314976,-33.66272199060585,-50.34998360355507 P,31,39.79863325988537,-32.43203974396362,-50.46657225849115 P,32,-91.36857578462391,-93.38629574888951,12.989707958142255 P,33,-31.61218663496293,-118.3617073741552,14.943860417089297 P,34,-5.44812525255125,-110.27081713955009,-21.181237816593594 P,35,-2.824005177167905,-115.53575161826373,-58.784581131012786 P,36,-119.84955273571153,-91.24340524742595,-22.939796359882436 P,37,-108.72398738558208,-101.35180449314583,-90.41967352235595 P,38,89.7719453291322,-92.15313209954655,12.949390518335427 P,39,28.37660821329412,-117.26047869753324,15.230935420594065 P,40,5.073465568083279,-109.72503166580596,-21.237936398307493 P,41,1.8911530931881584,-116.10791526656405,-59.24855125436302 P,42,123.8735539823993,-91.8412362264986,-23.40721700045499 P,43,109.67600097533386,-100.21566204196674,-89.09483961903189 F,2,3,4,4291611852,-1 F,3,4,5,4291611852,1 F,8,9,10,4291611852,-1 F,9,10,11,4291611852,1 F,10,11,2,4291611852,-1 F,11,2,3,4291611852,1 F,5,7,12,4291611852,1 F,9,7,12,4291611852,-1 F,12,9,13,4291611852,1 F,11,9,13,4291611852,-1 F,13,11,14,4291611852,1 F,3,11,14,4291611852,-1 F,14,3,15,4291611852,1 F,5,3,15,4291611852,-1 F,16,15,5,4291611852,1 F,16,5,12,4291611852,1 F,20,15,16,4291611852,1 F,20,16,21,4291611852,1 F,16,21,12,4291611852,-1 F,21,12,17,4291611852,1 F,12,17,13,4291611852,-1 F,17,13,18,4291611852,1 F,13,18,14,4291611852,-1 F,18,14,19,4291611852,1 F,14,19,15,4291611852,-1 F,19,15,20,4291611852,1 F,1,19,18,4291611852,-1 F,1,19,20,4291611852,1 F,1,20,21,4291611852,1 F,1,21,17,4291611852,1 F,1,17,18,4291611852,1 F,7,5,22,4291611852,1 F,4,5,22,4291611852,-1 F,9,7,23,4291611852,1 F,9,8,23,4291611852,-1 F,7,6,26,4291611852,-1 F,7,22,26,4291611852,1 F,7,6,27,4291611852,1 F,7,23,27,4291611852,-1 F,4,22,32,4291611852,-1 F,26,22,32,4291611852,1 F,32,26,33,4291611852,-1 F,32,24,33,4291611852,1 F,6,26,33,4291611852,1 F,33,6,34,4291611852,-1 F,33,24,34,4291611852,1 F,34,6,35,4291611852,-1 F,32,4,36,4291611852,1 F,32,24,36,4291611852,-1 F,36,4,37,4291611852,1 F,27,23,38,4291611852,-1 F,8,23,38,4291611852,1 F,6,27,39,4291611852,-1 F,38,25,39,4291611852,-1 F,38,27,39,4291611852,1 F,39,6,40,4291611852,1 F,39,25,40,4291611852,-1 F,40,6,41,4291611852,1 F,38,8,42,4291611852,-1 F,38,25,42,4291611852,1 F,42,8,43,4291611852,-1 F,31,8,10,4291611852,-1 F,30,4,2,4291611852,1 F,30,31,6,4291611852,1 F,24,37,36,4291611852,-1 F,24,37,28,4291611852,1 F,24,28,35,4291611852,1 F,24,35,34,4291611852,1 F,25,40,41,4291611852,1 F,25,41,29,4291611852,1 F,25,29,43,4291611852,1 F,25,43,42,4291611852,1 F,28,4,37,4291611852,-1 F,28,4,30,4291611852,1 F,28,30,6,4291611852,1 F,28,6,35,4291611852,1 F,6,41,29,4291611852,-1 F,29,6,31,4291611852,1 F,29,31,8,4291611852,1 F,29,8,43,4291611852,1 FP,1,0,0.06294419822780484,-2.0095110938871175,-39.999949344555375 FP,1,1,-0.0709877207581629,-4.481861465678116,67.55240216521906 FP,1,2,-46.09351761664816,35.01268150736205,-30.73562069035821 FP,1,3,-46.5761336398035,33.90007070039697,31.492882827601207 FP,1,4,-77.41850306303112,-14.329005905502015,-44.94038762812994 FP,1,5,-52.82173089040133,-14.434401200414838,38.28546411646959 FP,1,6,-0.8406065626748551,-56.004406470353686,-39.98235018021275 FP,1,7,-0.966494959130442,-45.87708935170396,26.064553117193014 FP,1,8,75.86330580960265,-15.588593640495354,-40.459382556369654 FP,1,9,57.637417413147105,-15.569571452721116,40.12531145437857 FP,1,10,51.160920916602166,34.52478424970803,-30.96686037919276 FP,1,11,47.46190183060723,32.87549245810037,32.10980769483983 FP,1,12,-0.4700632107666445,-27.005795723821993,46.90249421274346 FP,1,13,28.55452961762591,-8.018286748205613,46.951701002471815 FP,1,14,21.64334439040068,24.170849961045676,47.03007114967794 FP,1,15,-20.770306865700263,24.638693577458632,46.74837049566341 FP,1,16,-28.01414506488988,-8.504750197535444,46.06331615719242 FP,1,17,-0.48582041775147106,-19.406598647624534,66.09642038946926 FP,1,18,24.683155263180147,-5.762010286804112,66.13178081464474 FP,1,19,15.40506576223365,19.901904144880973,66.1880982810263 FP,1,20,-15.977843750269004,18.659918535798106,65.98566575183368 FP,1,21,-24.31636620686916,-6.555673906523515,65.4933797723914 FP,1,22,-52.612402955021594,-41.94762569111176,2.553686034124385 FP,1,23,50.356740310350986,-41.93592899134385,2.957256437727196 FP,1,24,-54.05448946306066,-94.44009998117733,-30.85561618970557 FP,1,25,50.73579454803347,-94.0577996202799,-30.54427372965104 FP,1,26,-27.373072996930578,-55.31242161068662,3.4641644160861427 FP,1,27,25.35915644362064,-55.30657326080267,3.945748162935115 FP,1,28,-45.66207637807078,-64.94304004266773,-63.83485433582646 FP,1,29,43.582500869560015,-64.26927935020105,-63.92252956796118 FP,1,30,-43.29256416314976,-33.66272199060585,-50.34998360355507 FP,1,31,39.79863325988537,-32.43203974396362,-50.46657225849115 FP,1,32,-63.36857578462392,-74.718017006879,-13.909918576663664 FP,1,33,-40.61218663496293,-82.35637909394761,-12.442137828947375 FP,1,34,-25.44812525255125,-82.25036366596525,-37.273060194292206 FP,1,35,-20.8240051771679,-66.67125532946794,-53.96606657916213 FP,1,36,-70.84955273571153,-77.41037230273564,-38.080935996182745 FP,1,37,-66.72398738558208,-61.83126396623834,-56.89148586858121 FP,1,38,63.7719453291322,-72.51593518507781,-14.631858554890584 FP,1,39,40.37660821329412,-81.36596413756125,-12.881606946642 FP,1,40,27.07346556808328,-80.70834595124899,-40.1875423046301 FP,1,41,23.89115309318816,-67.10491084966588,-55.56153480299929 FP,1,42,71.8735539823993,-76.86794541328564,-37.68633733684349 FP,1,43,68.67600097533386,-61.07389631871762,-56.31909953333864 FPOS,1,0.8000000000000114,0,43.55000000000001 FROT,1,0,0,0 FSCA,1,1,1,1 FP,2,0,0.06294419822780484,-2.0095110938871175,-39.999949344555375 FP,2,1,-0.0709877207581629,-4.481861465678116,67.55240216521906 FP,2,2,-46.09351761664816,35.01268150736205,-30.73562069035821 FP,2,3,-46.5761336398035,33.90007070039697,31.492882827601207 FP,2,4,-77.41850306303112,-15.329005905502015,-44.94038762812994 FP,2,5,-52.82173089040133,-14.434401200414838,38.28546411646959 FP,2,6,-0.8406065626748551,-56.004406470353686,-39.98235018021275 FP,2,7,-0.966494959130442,-45.87708935170396,26.064553117193014 FP,2,8,75.86330580960265,-15.588593640495354,-43.459382556369654 FP,2,9,57.637417413147105,-15.569571452721116,40.12531145437857 FP,2,10,51.160920916602166,34.52478424970803,-30.96686037919276 FP,2,11,47.46190183060723,32.87549245810037,32.10980769483983 FP,2,12,-0.4700632107666445,-27.005795723821993,46.90249421274346 FP,2,13,28.55452961762591,-8.018286748205613,46.951701002471815 FP,2,14,21.64334439040068,24.170849961045676,47.03007114967794 FP,2,15,-20.770306865700263,24.638693577458632,46.74837049566341 FP,2,16,-28.01414506488988,-8.504750197535444,46.06331615719242 FP,2,17,-0.48582041775147106,-19.406598647624534,66.09642038946926 FP,2,18,24.683155263180147,-5.762010286804112,66.13178081464474 FP,2,19,15.40506576223365,19.901904144880973,66.1880982810263 FP,2,20,-15.977843750269004,18.659918535798106,65.98566575183368 FP,2,21,-24.31636620686916,-6.555673906523515,65.4933797723914 FP,2,22,-52.612402955021594,-38.94762569111176,11.553686034124386 FP,2,23,50.356740310350986,-38.93592899134385,11.957256437727196 FP,2,24,-88.05448946306066,-158.44009998117733,-64.85561618970557 FP,2,25,82.73579454803347,-158.0577996202799,-64.54427372965104 FP,2,26,-16.373072996930578,-49.31242161068662,12.464164416086142 FP,2,27,15.35915644362064,-49.30657326080267,12.945748162935114 FP,2,28,-30.66207637807078,-100.94304004266776,-122.83485433582646 FP,2,29,31.582500869560025,-101.26927935020105,-122.9225295679612 FP,2,30,-43.29256416314976,-33.66272199060585,-50.34998360355507 FP,2,31,39.79863325988537,-32.43203974396362,-50.46657225849115 FP,2,32,-91.36857578462391,-102.718017006879,-10.909918576663664 FP,2,33,-31.61218663496293,-127.3563790939476,-15.442137828947375 FP,2,34,-5.44812525255125,-110.25036366596528,-48.27306019429221 FP,2,35,-2.824005177167905,-105.67125532946795,-85.96606657916212 FP,2,36,-119.84955273571153,-91.41037230273564,-45.080935996182745 FP,2,37,-108.72398738558208,-83.83126396623834,-112.8914858685812 FP,2,38,89.7719453291322,-101.5159351850778,-10.631858554890584 FP,2,39,28.37660821329412,-126.36596413756124,-14.881606946642002 FP,2,40,5.073465568083279,-109.708345951249,-48.1875423046301 FP,2,41,1.8911530931881584,-106.10491084966588,-86.56153480299929 FP,2,42,123.8735539823993,-91.86794541328564,-45.68633733684349 FP,2,43,109.67600097533386,-83.07389631871763,-111.31909953333864 FPOS,2,0.8000000000000114,0,43.55000000000001 FROT,2,0,0,0 FSCA,2,1,1,1 FP,3,0,0.06294419822780484,-2.0095110938871175,-39.999949344555375 FP,3,1,-0.0709877207581629,-4.481861465678116,67.55240216521906 FP,3,2,-46.09351761664816,35.01268150736205,-30.73562069035821 FP,3,3,-46.5761336398035,33.90007070039697,31.492882827601207 FP,3,4,-77.41850306303112,-15.329005905502015,-44.94038762812994 FP,3,5,-52.82173089040133,-14.434401200414838,38.28546411646959 FP,3,6,-0.8406065626748551,-56.004406470353686,-39.98235018021275 FP,3,7,-0.966494959130442,-45.87708935170396,26.064553117193014 FP,3,8,75.86330580960265,-15.588593640495354,-43.459382556369654 FP,3,9,57.637417413147105,-15.569571452721116,40.12531145437857 FP,3,10,51.160920916602166,34.52478424970803,-30.96686037919276 FP,3,11,47.46190183060723,32.87549245810037,32.10980769483983 FP,3,12,-0.4700632107666445,-27.005795723821993,46.90249421274346 FP,3,13,28.55452961762591,-8.018286748205613,46.951701002471815 FP,3,14,21.64334439040068,24.170849961045676,47.03007114967794 FP,3,15,-20.770306865700263,24.638693577458632,46.74837049566341 FP,3,16,-28.01414506488988,-8.504750197535444,46.06331615719242 FP,3,17,-0.48582041775147106,-19.406598647624534,66.09642038946926 FP,3,18,24.683155263180147,-5.762010286804112,66.13178081464474 FP,3,19,15.40506576223365,19.901904144880973,66.1880982810263 FP,3,20,-15.977843750269004,18.659918535798106,65.98566575183368 FP,3,21,-24.31636620686916,-6.555673906523515,65.4933797723914 FP,3,22,-52.612402955021594,-38.94762569111176,11.553686034124386 FP,3,23,50.356740310350986,-38.93592899134385,11.957256437727196 FP,3,24,-88.05448946306066,-161.10394801059925,-24.817809734963326 FP,3,25,82.73579454803347,-160.6544566817325,-24.61521348956694 FP,3,26,-16.373072996930578,-49.31242161068662,12.464164416086142 FP,3,27,15.35915644362064,-49.30657326080267,12.945748162935114 FP,3,28,-30.66207637807078,-120.44470005471563,-95.62974032041713 FP,3,29,31.582500869560025,-120.78251404905387,-95.63059900485327 FP,3,30,-43.29256416314976,-33.66272199060585,-50.34998360355507 FP,3,31,39.79863325988537,-32.43203974396362,-50.46657225849115 FP,3,32,-91.36857578462391,-93.38629574888951,12.989707958142255 FP,3,33,-31.61218663496293,-118.3617073741552,14.943860417089297 FP,3,34,-5.44812525255125,-110.27081713955009,-21.181237816593594 FP,3,35,-2.824005177167905,-115.53575161826373,-58.784581131012786 FP,3,36,-119.84955273571153,-91.24340524742595,-22.939796359882436 FP,3,37,-108.72398738558208,-101.35180449314583,-90.41967352235595 FP,3,38,89.7719453291322,-92.15313209954655,12.949390518335427 FP,3,39,28.37660821329412,-117.26047869753324,15.230935420594065 FP,3,40,5.073465568083279,-109.72503166580596,-21.237936398307493 FP,3,41,1.8911530931881584,-116.10791526656405,-59.24855125436302 FP,3,42,123.8735539823993,-91.8412362264986,-23.40721700045499 FP,3,43,109.67600097533386,-100.21566204196674,-89.09483961903189 FPOS,3,0.8000000000000114,0,43.55000000000001 FROT,3,0,0,0 FSCA,3,1,1,1 ]]> ; wing1_str = <![CDATA[ POS,-16.400000000000006,43.85000000000002,41.80000000000001 ROT,0,0,0 SCA,1,1,1 P,0,-14.031116422758208,7.554252562524712,24.58020982475878 P,1,-7.876582813929219,-10.81660431428291,-8.269335897403622 P,2,8.976321202098896,-11.439446537987909,15.401213131002985 P,3,-111.07436407532296,12.507171987651517,130.1202048581791 P,4,-120.93863579417777,-5.136883574929472,152.2372951546633 P,5,-128.2960616878398,-8.100134706483988,193.07584923796014 P,6,-166.9511220941136,28.073288584504514,123.71842509489795 P,7,-161.39151679122318,7.086624873161918,148.27328023246085 P,8,-167.83351576074517,8.159541173995851,180.423857299733 P,9,-102.8577036285283,47.19315103160923,-0.4472937089405733 P,10,-191.0329022053082,78.55863729602935,-68.12174709820084 P,11,-138.26071545481156,30.13755366879702,125.26423364060184 P,12,-139.60910598730723,5.65504880523996,138.82936282687643 P,13,-307.4010658304498,42.79086068058888,-174.0266871209696 F,0,1,2,4287137928,-1 F,0,3,2,4287137928,1 F,3,2,5,4287137928,-1 F,1,3,0,4287137928,1 F,1,3,4,4287137928,-1 F,8,13,6,4287137928,-1 F,13,6,7,4287137928,1 F,13,7,8,4287137928,1 F,4,1,5,4287137928,1 F,1,5,2,4287137928,-1 F,6,11,10,4287137928,1 F,6,7,10,4287137928,-1 F,10,11,12,4287137928,1 F,12,7,10,4287137928,1 F,9,11,3,4287137928,1 F,11,12,9,4287137928,-1 F,9,3,4,4287137928,1 F,9,4,12,4287137928,1 F,4,7,12,4287137928,1 F,11,6,3,4287137928,1 F,6,8,3,4287137928,1 F,8,3,5,4287137928,-1 F,7,4,5,4287137928,1 F,7,5,8,4287137928,1 F,9,10,11,16777215,-1 F,10,6,13,16777215,1 F,10,6,13,16777215,-1 F,10,9,11,16777215,-1 F,9,3,1,16777215,-1 F,9,3,1,16777215,1 ]]> ; wing2_str = <![CDATA[ POS,28.55000000000001,43.85000000000002,45.099999999999994 ROT,0,0,0 SCA,-1,1,1 P,0,-14.031116422758208,7.554252562524712,24.58020982475878 P,1,-7.876582813929219,-10.81660431428291,-8.269335897403622 P,2,8.976321202098896,-11.439446537987909,15.401213131002985 P,3,-111.07436407532296,12.507171987651517,130.1202048581791 P,4,-120.93863579417777,-5.136883574929472,152.2372951546633 P,5,-128.2960616878398,-8.100134706483988,193.07584923796014 P,6,-166.9511220941136,28.073288584504514,123.71842509489795 P,7,-161.39151679122318,7.086624873161918,148.27328023246085 P,8,-167.83351576074517,8.159541173995851,180.423857299733 P,9,-102.8577036285283,47.19315103160923,-0.4472937089405733 P,10,-191.0329022053082,78.55863729602935,-68.12174709820084 P,11,-138.26071545481156,30.13755366879702,125.26423364060184 P,12,-139.60910598730723,5.65504880523996,138.82936282687643 P,13,-307.4010658304498,42.79086068058888,-174.0266871209696 F,0,1,2,4287137928,1 F,0,3,2,4287137928,-1 F,3,2,5,4287137928,1 F,1,3,0,4287137928,-1 F,1,3,4,4287137928,1 F,8,13,6,4287137928,1 F,13,6,7,4287137928,-1 F,13,7,8,4287137928,-1 F,4,1,5,4287137928,-1 F,1,5,2,4287137928,1 F,6,11,10,4287137928,-1 F,6,7,10,4287137928,1 F,10,11,12,4287137928,-1 F,12,7,10,4287137928,-1 F,9,11,3,4287137928,-1 F,11,12,9,4287137928,1 F,9,3,4,4287137928,-1 F,9,4,12,4287137928,-1 F,4,7,12,4287137928,-1 F,11,6,3,4287137928,-1 F,6,8,3,4287137928,-1 F,8,3,5,4287137928,1 F,7,4,5,4287137928,-1 F,7,5,8,4287137928,-1 F,9,10,11,16777215,1 F,10,6,13,16777215,-1 F,10,6,13,16777215,1 F,10,9,11,16777215,1 F,9,3,1,16777215,1 F,9,3,1,16777215,-1 ]]> ; leg1_str = <![CDATA[ POS,-29.34999999999999,15.349999999999994,-103.15000000000003 ROT,0,0,0 SCA,1,1,1 P,0,-15.99094231025697,32.724984266834554,-334.7550524750547 P,1,-7.938143059949591,23.059968072766893,48.9349461725526 P,2,-14.8892690516794,22.110222542884628,-302.9168463748074 P,3,-54.436988198694046,5.317308826526192,-21.872269889998854 P,4,-28.03845238818705,-0.0768315206446335,-303.94214994363034 P,5,-17.95726455452663,-36.341879282105715,27.940569648971433 P,6,-13.540516525341618,-15.01929222055985,-303.0559553797662 P,7,29.553544578034252,-12.34650132374382,-12.607192983850576 P,8,-1.5453331082297268,-0.7061581411606819,-303.5984996561418 P,9,33.13931983910965,24.955037740645277,27.187351892837324 P,10,13.425460594088356,-5.909108601937316,-138.27685756750697 P,11,-17.746447049177043,20.92840082249716,-133.15352629100758 P,12,-18.733516162622458,-38.6557266283091,-141.50974373669493 P,13,-39.85982532429235,-5.909108601937316,-138.22761919227668 P,14,17.370125882431,-8.272752042712241,-191.06279058999328 P,15,-15.38280360840211,31.564796305984324,-189.8809688696058 P,16,-12.247407600987264,-28.01933114482195,-195.2965429148205 P,17,-42.22031303283658,-8.272752042712241,-190.2246191570943 P,18,-15.753137349624792,-2.8692249968324672,56.50071841096059 P,19,-4.731836247278212,52.55561425517681,-13.916703937001904 P,20,-33.75015999590362,7.580475611560065,-343.58468387711764 P,21,0.7188140120282686,6.951148991044015,-343.7669029788061 P,22,-52.00063199086897,-66.40316189630651,-344.2140104976337 P,23,-4.945125572616165,-78.98969430662758,-343.7669029788061 P,24,-45.07803916519246,-60.10989569114602,-328.61929684124607 P,25,-13.126371639324793,-71.43777486043491,-326.9135360813864 F,0,2,4,8947848,-1 F,1,5,7,4291611852,1 F,1,7,9,4291611852,1 F,0,8,2,8947848,-1 F,7,9,10,4291611852,-1 F,5,7,12,4291611852,-1 F,3,5,13,4291611852,-1 F,13,12,5,4291611852,1 F,10,9,11,4291611852,-1 F,10,7,12,4291611852,1 F,3,11,13,4291611852,1 F,16,12,14,4287137928,-1 F,12,14,10,4291611852,1 F,14,10,11,4291611852,-1 F,14,11,15,4291611852,-1 F,11,15,17,4291611852,1 F,11,17,13,4291611852,1 F,6,16,17,4287137928,1 F,6,16,14,4287137928,-1 F,6,14,8,4287137928,-1 F,14,8,15,4287137928,1 F,8,15,2,4287137928,-1 F,15,2,4,4287137928,1 F,15,4,17,4287137928,1 F,4,17,6,4287137928,-1 F,16,12,17,4287137928,1 F,12,17,13,4291611852,-1 F,18,1,3,4291611852,1 F,18,3,5,4291611852,1 F,18,1,5,4291611852,-1 F,11,9,19,4291611852,-1 F,11,3,19,4291611852,1 F,1,9,19,4291611852,1 F,1,3,19,4291611852,-1 F,4,20,0,8947848,-1 F,20,22,4,8947848,1 F,22,4,24,8947848,-1 F,24,23,22,8947848,-1 F,24,23,25,8947848,1 F,24,4,25,8947848,-1 F,4,25,6,8947848,1 F,6,8,25,8947848,-1 F,21,8,0,8947848,-1 F,25,21,8,8947848,1 F,25,21,23,8947848,-1 F,23,22,20,8947848,1 F,23,20,21,8947848,1 F,20,21,0,8947848,-1 ]]> ; leg2_str = <![CDATA[ POS,29.400000000000006,15.349999999999994,-102.45000000000005 ROT,0,0,0 SCA,-1,1,1 P,0,-15.99094231025697,32.724984266834554,-334.7550524750547 P,1,-7.938143059949591,23.059968072766893,48.9349461725526 P,2,-14.8892690516794,22.110222542884628,-302.9168463748074 P,3,-54.436988198694046,5.317308826526192,-21.872269889998854 P,4,-28.03845238818705,-0.0768315206446335,-303.94214994363034 P,5,-15.818227121371558,-36.341879282105715,29.54484772383774 P,6,-13.540516525341618,-15.01929222055985,-303.0559553797662 P,7,29.553544578034252,-12.34650132374382,-12.607192983850576 P,8,-1.5453331082297268,-0.7061581411606819,-303.5984996561418 P,9,33.13931983910965,24.955037740645277,27.187351892837324 P,10,13.425460594088356,-5.909108601937316,-138.27685756750697 P,11,-17.746447049177043,20.92840082249716,-133.15352629100758 P,12,-18.733516162622458,-38.6557266283091,-141.50974373669493 P,13,-39.85982532429235,-5.909108601937316,-138.22761919227668 P,14,17.370125882431,-8.272752042712241,-191.06279058999328 P,15,-15.38280360840211,31.564796305984324,-189.8809688696058 P,16,-12.247407600987264,-28.01933114482195,-195.2965429148205 P,17,-42.22031303283658,-8.272752042712241,-190.2246191570943 P,18,-8.801265691870793,-2.8692249968324672,60.24403391898196 P,19,-4.731836247278212,52.55561425517681,-13.916703937001904 P,20,-33.75015999590362,7.580475611560065,-343.58468387711764 P,21,0.7188140120282686,6.951148991044015,-343.7669029788061 P,22,-52.00063199086897,-66.40316189630651,-344.2140104976337 P,23,-4.945125572616165,-78.98969430662758,-343.7669029788061 P,24,-45.07803916519246,-60.10989569114602,-328.61929684124607 P,25,-13.126371639324793,-71.43777486043491,-326.9135360813864 F,0,2,4,8947848,1 F,1,5,7,4291611852,-1 F,1,7,9,4291611852,-1 F,0,8,2,8947848,1 F,7,9,10,4291611852,1 F,5,7,12,4291611852,1 F,3,5,13,4291611852,1 F,13,12,5,4291611852,-1 F,10,9,11,4291611852,1 F,10,7,12,4291611852,-1 F,3,11,13,4291611852,-1 F,16,12,14,4287137928,1 F,12,14,10,4291611852,-1 F,14,10,11,4291611852,1 F,14,11,15,4291611852,1 F,11,15,17,4291611852,-1 F,11,17,13,4291611852,-1 F,6,16,17,4287137928,-1 F,6,16,14,4287137928,1 F,6,14,8,4287137928,1 F,14,8,15,4287137928,-1 F,8,15,2,4287137928,1 F,15,2,4,4287137928,-1 F,15,4,17,4287137928,-1 F,4,17,6,4287137928,1 F,16,12,17,4287137928,-1 F,12,17,13,4291611852,1 F,18,1,3,4291611852,-1 F,18,3,5,4291611852,-1 F,18,1,5,4291611852,1 F,11,9,19,4291611852,1 F,11,3,19,4291611852,-1 F,1,9,19,4291611852,-1 F,1,3,19,4291611852,1 F,4,20,0,8947848,1 F,20,22,4,8947848,-1 F,22,4,24,8947848,1 F,24,23,22,8947848,1 F,24,23,25,8947848,-1 F,24,4,25,8947848,1 F,4,25,6,8947848,-1 F,6,8,25,8947848,1 F,21,8,0,8947848,1 F,25,21,8,8947848,-1 F,25,21,23,8947848,1 F,23,22,20,8947848,-1 F,23,20,21,8947848,-1 F,20,21,0,8947848,1 ]]> ; tail_str = <![CDATA[ POS,0,37.19999999999999,-42.450000000000045 ROT,0,0,0 SCA,1,1,1 P,0,0.1559886124923619,-4.280333571683383,3.16917561772067 P,1,-0.6192443446623124,172.88869724562457,-235.56003016038616 P,2,4.096604412039409,144.6357791555449,-175.19590352696252 P,3,-25.643669766302118,120.19541818679973,-170.94422627255025 P,4,-10.45176610486798,117.0672575755335,-204.28176559018118 P,5,15.491902463538624,118.48735901030857,-205.38205158790916 P,6,28.309214144566496,121.27709461553044,-172.00111930777575 P,7,1.3168811894016805,109.6588505672265,-60.03463699416596 P,8,-37.039147024407164,92.39185844874808,-88.04307650321566 P,9,-22.22118814935037,53.34025116293257,-122.2698771997749 P,10,28.192009165298042,53.25018629008803,-122.55564031786925 P,11,40.503532633384,92.2419328241157,-88.46891764102163 P,12,0.07474950964339577,8.741296084491374,4.958993828925641 P,13,-16.723068557356026,6.1882659423468125,-4.969158823974015 P,14,-9.444354100909774,-0.4755710817146712,-23.211662041862557 P,15,10.259927021978163,-1.353272269676989,-22.780539132268885 P,16,19.628810236971045,4.7602930220048645,-4.29098392734339 F,2,3,1,8947848,-1 F,12,13,0,4291611852,1 F,3,4,1,8947848,-1 F,13,14,0,4291611852,1 F,4,5,1,8947848,-1 F,14,15,0,4291611852,1 F,5,6,1,8947848,-1 F,15,16,0,4291611852,1 F,6,2,1,8947848,-1 F,16,12,0,4291611852,1 F,2,3,7,4291611852,1 F,3,7,8,4291611852,-1 F,3,4,8,4291611852,1 F,4,8,9,4291611852,-1 F,4,5,9,4291611852,1 F,5,9,10,4291611852,-1 F,5,6,10,4291611852,1 F,6,10,11,4291611852,-1 F,6,2,11,4291611852,1 F,2,11,7,4291611852,-1 F,7,8,12,4291611852,1 F,8,12,13,4291611852,-1 F,8,9,13,4291611852,1 F,9,13,14,4291611852,-1 F,9,10,14,4291611852,1 F,10,14,15,4291611852,-1 F,10,11,15,4291611852,1 F,11,15,16,4291611852,-1 F,11,7,16,4291611852,1 F,7,16,12,4291611852,-1 ]]> ; head = new Shape3D(); head.load(head_str); breasts = new Shape3D(); breasts.load(breast_str); belly = new Shape3D(); belly.load(belly_str); arm1 = new Shape3D(); arm1.load(arm1_str); arm2 = new Shape3D(); arm2.load(arm2_str); leg1 = new Shape3D(); leg1.load(leg1_str); leg2 = new Shape3D(); leg2.load(leg2_str); tail = new Shape3D(); tail.load(tail_str); wing1 = new Shape3D(); wing1.load(wing1_str); wing2 = new Shape3D(); wing2.load(wing2_str); head.gotoFrame(1); belly.gotoFrame(1); breasts.gotoFrame(1); arm1.gotoFrame(1); arm2.gotoFrame(1); world = new World3D(); camDist = -800; camCenter = new Point3D(); camSpin = new Point3D(); camera = new Camera3D(stage.stageWidth, stage.stageHeight, 500); clip = new MovieClip(); camera.setWorld(world); world.addShape(head); world.addShape(belly); world.addShape(breasts); world.addShape(arm1); world.addShape(arm2); world.addShape(leg1); world.addShape(leg2); world.addShape(wing1); world.addShape(wing2); world.addShape(tail); updateCamera(); stage.addChildAt(clip, 0); size = 0; bSize = 0; initGrowthSpeed = 100; growthSpeed = (1 / initGrowthSpeed); growth = 0; headState = 1; arm1State = 1; arm1Pos = 0; armSpeed = 0.6; arm2State = 1; arm2Pos = 0; hRotation = 0; stage.addEventListener("enterFrame", eFrame); stage.addEventListener("mouseDown", mDown); stage.addEventListener("keyDown", kDown); reset = false; _panel._expand._txt.text = "Expand"; _panel._revert._txt.text = "Revert"; _panel._info.text = "Interactive pregnant 3D Sapphire. Drag the mouse to look around.\nHold Shift while dragging to scroll.\nHold Ctrl while dragging to zoom.\nProgrammed and animated by Doom the wolf"; _panel._cont_txt.text = "continuous"; _panel._speed_txt.text = initGrowthSpeed.toString(); stage.addEventListener("enterFrame", panelFrame); _panel._cont.addEventListener("click", contUp); _panel._expand.addEventListener("mouseDown", expandPress); _panel._expand.addEventListener("mouseUp", expandRelease); _panel._expand.addEventListener("mouseOut", stopReset); _panel._expand.addEventListener("mouseOut", expandStop); stage.addEventListener("mouseUp", expandStop); _panel._revert.addEventListener("mouseDown", revertDown); _panel._speed_txt.background = true; _panel._speed_txt.backgroundColor = 0xFFFFFF; _panel._speed_txt.border = true; _panel._speed_txt.restrict = "1234567890"; _panel._speed_txt.addEventListener("change", textChanged_event); _panel._speed_txt.addEventListener("focusOut", textChanged); _panel._belly.addEventListener("click", swap); _panel._breasts.addEventListener("click", swap); _panel._belly.gotoAndStop(2); } public function stopReset(_arg1){ reset = false; } public function revertDown(_arg1){ growth = -1; } public function mDown(_arg1){ if (_panel.y < (stage.stageHeight - 90)){ return; }; mX = stage.mouseX; mY = stage.mouseY; stage.addEventListener("mouseMove", mMove); stage.addEventListener("mouseUp", mUp); } public function goBetweenFrames(_arg1:Shape3D, _arg2:int, _arg3:int, _arg4:Number){ _arg1.gotoFrame(_arg2); _arg1.interpolate(_arg3, _arg4); camera.draw(clip); } public function textChanged(_arg1=null){ var _local2:Number; _local2 = uint(_panel._speed_txt.text); if (((isNaN(_local2)) || ((_local2 < 1)))){ _local2 = initGrowthSpeed; }; _panel._speed_txt.text = _local2.toString(); growthSpeed = (1 / _local2); } public function textChanged_event(_arg1){ var _local2:String; _local2 = _panel._speed_txt.text.charAt((_panel._speed_txt.text.length - 1)); if ((((_local2 == "\n")) || ((_local2 == "\n")))){ textChanged(); }; } public function updateCamera(_arg1=null){ var _local2:Point3D; _local2 = new Point3D(); _local2.y = camDist; _local2 = Utils.rotatePoint(_local2, new Point3D(), camSpin.x, camSpin.y, camSpin.z); _local2.offset(camCenter); camera.position = _local2; camera.lookAt(camCenter); camera.draw(clip); } public function contUp(_arg1){ growth = 0; _panel._cont.gotoAndStop((3 - _panel._cont.currentFrame)); } public function setSize(){ goBetweenFrames(belly, 1, 2, size); if (size > 0.5){ goBetweenFrames(breasts, 1, 3, bSize); } else { goBetweenFrames(breasts, 1, 2, bSize); }; } public function swap(_arg1){ _arg1.currentTarget.gotoAndStop((3 - _arg1.currentTarget.currentFrame)); } public function kDown(_arg1){ if (_arg1.keyCode == Keyboard.SPACE){ camDist = -800; camCenter = new Point3D(); camSpin = new Point3D(); updateCamera(); }; } public function expandStop(_arg1){ if (!Boolean((_panel._cont.currentFrame - 1))){ growth = 0; }; } public function panelFrame(_arg1){ if (_panel.hitTestPoint(stage.mouseX, stage.mouseY)){ if (Math.abs((_panel.y - 500)) > 1){ _panel.y = (_panel.y + ((500 - _panel.y) * 0.4)); }; } else { if (Math.abs((_panel.y - 600)) > 1){ _panel.y = (_panel.y + ((600 - _panel.y) * 0.4)); }; }; if (((growth) && ((_panel._cont.currentFrame == 2)))){ _panel._cont_txt.text = "stop"; } else { _panel._cont_txt.text = "continuous"; }; if (((((1 - size) > 0.0001)) || (((1 - bSize) > 0.0001)))){ _panel._expand._txt.text = "Expand"; } else { _panel._expand._txt.text = "Reset"; }; } public function expandPress(_arg1){ if ((((size >= (1 - 0.0001))) && ((bSize >= (1 - 0.0001))))){ growth = 0; reset = true; } else { growth = 1; }; } public function mMove(_arg1){ var _local2:Number; var _local3:Number; _local2 = (stage.mouseX - mX); _local3 = (stage.mouseY - mY); if (_arg1.shiftKey){ camCenter.z = (camCenter.z + _local3); camCenter.y = (camCenter.y + (Math.sin(camSpin.z) * -(_local2))); camCenter.x = (camCenter.x + (Math.cos(camSpin.z) * -(_local2))); } else { if (_arg1.ctrlKey){ camDist = (camDist + _local3); if (camDist > -200){ camDist = -200; }; } else { camSpin.z = (camSpin.z - (_local2 / 100)); camSpin.x = (camSpin.x - (_local3 / 100)); if (camSpin.x > ((Math.PI * 0.5) - 0.001)){ camSpin.x = ((Math.PI * 0.5) - 0.001); } else { if (camSpin.x < ((-(Math.PI) * 0.5) + 0.001)){ camSpin.x = ((-(Math.PI) * 0.5) + 0.001); }; }; }; }; updateCamera(); mX = stage.mouseX; mY = stage.mouseY; } public function mUp(_arg1){ stage.removeEventListener("mouseMove", mMove); stage.removeEventListener("mouseUp", mUp); } } }//package sInf_fla
Section 10
//panel_1 (sInf_fla.panel_1) package sInf_fla { import flash.display.*; import flash.text.*; public dynamic class panel_1 extends MovieClip { public var _belly_txt:TextField; public var _tip:MovieClip; public var _revert:MovieClip; public var _cont:MovieClip; public var _cont_txt:TextField; public var _breasts:MovieClip; public var _ok:MovieClip; public var _info:TextField; public var _expand:MovieClip; public var _belly:MovieClip; public var _breasts_txt:TextField; public var _speed_txt:TextField; } }//package sInf_fla

Library Items

Symbol 1 GraphicUsed by:4
Symbol 2 FontUsed by:3 7 12 13 14 15 16 17 19 20
Symbol 3 TextUses:2Used by:4
Symbol 4 MovieClipUses:1 3Used by:21
Symbol 5 GraphicUsed by:21
Symbol 6 GraphicUsed by:8
Symbol 7 EditableTextUses:2Used by:8
Symbol 8 MovieClip {sInf_fla._btn1_3}Uses:6 7Used by:21
Symbol 9 GraphicUsed by:11 18
Symbol 10 GraphicUsed by:11
Symbol 11 MovieClip {sInf_fla._btn2_4}Uses:9 10Used by:21
Symbol 12 EditableTextUses:2Used by:21
Symbol 13 EditableTextUses:2Used by:21
Symbol 14 TextUses:2Used by:21
Symbol 15 EditableTextUses:2Used by:21
Symbol 16 TextUses:2Used by:21
Symbol 17 EditableTextUses:2Used by:18
Symbol 18 MovieClip {sInf_fla._btn3_5}Uses:9 17Used by:21
Symbol 19 EditableTextUses:2Used by:21
Symbol 20 EditableTextUses:2Used by:21
Symbol 21 MovieClip {sInf_fla.panel_1}Uses:4 5 8 11 12 13 14 15 16 18 19 20Used by:Timeline

Instance Names

"_panel"Frame 1Symbol 21 MovieClip {sInf_fla.panel_1}
"_txt"Symbol 8 MovieClip {sInf_fla._btn1_3} Frame 1Symbol 7 EditableText
"_txt"Symbol 18 MovieClip {sInf_fla._btn3_5} Frame 1Symbol 17 EditableText
"_tip"Symbol 21 MovieClip {sInf_fla.panel_1} Frame 1Symbol 4 MovieClip
"_revert"Symbol 21 MovieClip {sInf_fla.panel_1} Frame 1Symbol 8 MovieClip {sInf_fla._btn1_3}
"_expand"Symbol 21 MovieClip {sInf_fla.panel_1} Frame 1Symbol 8 MovieClip {sInf_fla._btn1_3}
"_cont"Symbol 21 MovieClip {sInf_fla.panel_1} Frame 1Symbol 11 MovieClip {sInf_fla._btn2_4}
"_cont_txt"Symbol 21 MovieClip {sInf_fla.panel_1} Frame 1Symbol 12 EditableText
"_info"Symbol 21 MovieClip {sInf_fla.panel_1} Frame 1Symbol 13 EditableText
"_speed_txt"Symbol 21 MovieClip {sInf_fla.panel_1} Frame 1Symbol 15 EditableText
"_ok"Symbol 21 MovieClip {sInf_fla.panel_1} Frame 1Symbol 18 MovieClip {sInf_fla._btn3_5}
"_belly"Symbol 21 MovieClip {sInf_fla.panel_1} Frame 1Symbol 11 MovieClip {sInf_fla._btn2_4}
"_belly_txt"Symbol 21 MovieClip {sInf_fla.panel_1} Frame 1Symbol 19 EditableText
"_breasts"Symbol 21 MovieClip {sInf_fla.panel_1} Frame 1Symbol 11 MovieClip {sInf_fla._btn2_4}
"_breasts_txt"Symbol 21 MovieClip {sInf_fla.panel_1} Frame 1Symbol 20 EditableText

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.

Labels

"off"Symbol 11 MovieClip {sInf_fla._btn2_4} Frame 1
"on"Symbol 11 MovieClip {sInf_fla._btn2_4} Frame 2




http://swfchan.com/20/98583/info.shtml
Created: 10/8 -2019 16:19:04 Last modified: 10/8 -2019 16:19:04 Server time: 26/04 -2024 13:00:20