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

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

Zone - HentaiKey Girl IV.swf

This is the info page for
Flash #44029

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


Text
You need to upgrade your flash player to 9 or above.

You need to upgrade your flash player to 9 or above.

You need to upgrade your flash player to 9 or above.

Quality

HIGH

Viewport 1

Free viewport

<p align="left"><font face="_sans" size="14" color="#fe5656" letterSpacing="0.000000" kerning="1">0%</font></p>

Rendered Clip

Interactive Mode

ActionScript [AS3]

Section 1
//MainTimeline (As7_3D20080530_fla.MainTimeline) package As7_3D20080530_fla { import flash.display.*; import flash.geom.*; import flash.events.*; import flash.utils.*; import flash.ui.*; import flash.text.*; import flash.net.*; import flash.filters.*; import flash.system.*; import adobe.utils.*; import flash.accessibility.*; import flash.errors.*; import flash.external.*; import flash.media.*; import flash.printing.*; import flash.xml.*; public dynamic class MainTimeline extends MovieClip { public var link:ContextMenuItem; public var p3d:papervision; public var Status:TextField; public var permit:Boolean; public var Percent:TextField; public var ButtonRendered:SimpleButton; public var ButtonInteractive:SimpleButton; public var Background:MovieClip; public var menu:ContextMenu; public var ButtonViewpoint0:SimpleButton; public var ButtonViewpoint1:SimpleButton; public var ButtonQuality:SimpleButton; public var location:String; public var ver:Array; public var now:Number; public var Getflashplayer:SimpleButton; public var qualitylevel:String; public function MainTimeline(){ addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4); } public function quality(_arg1:MouseEvent){ if (qualitylevel == "LOW"){ p3d.quality("HIGH"); Status.text = "HIGH"; qualitylevel = "HIGH"; } else { if (qualitylevel == "HIGH"){ p3d.quality("LOW"); Status.text = "LOW"; qualitylevel = "LOW"; }; }; } public function init(_arg1:Event){ ButtonRendered.enabled = true; } function frame1(){ ver = Capabilities.version.split(" "); ver = ver[1].split(","); qualitylevel = "HIGH"; Getflashplayer.visible = false; Getflashplayer.mouseEnabled = false; if (ver[0] < 9){ Getflashplayer.visible = true; Getflashplayer.mouseEnabled = true; Getflashplayer.addEventListener(MouseEvent.CLICK, Getfp); stop(); } else { location = stage.loaderInfo.url; if (location.substr(0, 4) == "file"){ permit = true; } else { if (((((((!((location.search("Latias_3D_Model_by_MBRSL.swf") == -1))) || (!((location.search("mbrsl.deviantart.com") == -1))))) || (!((location.search("www.deviantart.com/deviation/44720990") == -1))))) || (!((location.search("mbrsl.myweb.hinet.net") == -1))))){ permit = true; } else { permit = false; }; }; if (!permit){ stop(); } else { menu = new ContextMenu(); link = new ContextMenuItem("By MBRSL"); link.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, geturl); menu.hideBuiltInItems(); menu.customItems.push(link); Background.contextMenu = menu; p3d = new papervision(); root.loaderInfo.addEventListener(ProgressEvent.PROGRESS, update); root.loaderInfo.addEventListener(Event.COMPLETE, init); gotoAndPlay("Interactive"); }; }; stop(); } function frame3(){ Percent.text = (now + "%"); if (Percent.text == "100%"){ ButtonRendered.enabled = true; } else { ButtonRendered.enabled = false; }; if (qualitylevel == "HIGH"){ Status.text = "HIGH"; } else { Status.text = "LOW"; }; ButtonRendered.addEventListener(MouseEvent.CLICK, Rendered); ButtonViewpoint0.addEventListener(MouseEvent.CLICK, viewpoint0); ButtonViewpoint1.addEventListener(MouseEvent.CLICK, viewpoint1); ButtonQuality.addEventListener(MouseEvent.CLICK, quality); stage.frameRate = 60; p3d.create3D(stage, qualitylevel); stop(); } public function geturl(_arg1:ContextMenuEvent){ navigateToURL(new URLRequest("http://mbrsl.deviantart.com/")); } function frame4(){ stage.frameRate = 25; p3d.clean3D(); ButtonInteractive.addEventListener(MouseEvent.CLICK, Interactive); stop(); } public function Getfp(_arg1:MouseEvent){ navigateToURL(new URLRequest("http://www.adobe.com/go/gntray_dl_getflashplayer")); } public function viewpoint1(_arg1:MouseEvent){ p3d.changeport(1); } public function viewpoint0(_arg1:MouseEvent){ p3d.changeport(0); } function frame2(){ prevFrame(); } public function Interactive(_arg1:MouseEvent){ gotoAndStop("Interactive"); } public function update(_arg1:ProgressEvent){ now = Math.floor(((_arg1.bytesLoaded / _arg1.bytesTotal) * 100)); Percent.text = (String(now) + "%"); } public function Rendered(_arg1:MouseEvent){ if (ButtonRendered.enabled){ gotoAndStop("Rendered"); }; } } }//package As7_3D20080530_fla
Section 2
//DebugDispatcher (com.blitzagency.xray.logger.events.DebugDispatcher) package com.blitzagency.xray.logger.events { import flash.events.*; public class DebugDispatcher extends EventDispatcher { public static var TRACE:String = "trace"; public function sendEvent(_arg1:String, _arg2:Object):void{ trace(_arg2.message); dispatchEvent(new DebugEvent(DebugDispatcher.TRACE, false, false, _arg2)); } } }//package com.blitzagency.xray.logger.events
Section 3
//DebugEvent (com.blitzagency.xray.logger.events.DebugEvent) package com.blitzagency.xray.logger.events { import flash.events.*; public class DebugEvent extends Event { public var obj:Object; public function DebugEvent(_arg1:String, _arg2:Boolean, _arg3:Boolean, _arg4:Object):void{ obj = new Object(); super(_arg1, _arg2, _arg3); obj = _arg4; } } }//package com.blitzagency.xray.logger.events
Section 4
//ObjectTools (com.blitzagency.xray.logger.util.ObjectTools) package com.blitzagency.xray.logger.util { import com.blitzagency.xray.logger.*; import flash.utils.*; public class ObjectTools { private static var log:XrayLog = new XrayLog(); public function resolveBaseType(_arg1:Object):String{ return (""); } public static function getImmediateClassPath(_arg1:Object):String{ var _local2:String; var _local3:String; _local2 = getQualifiedClassName(_arg1); _local3 = getQualifiedSuperclassName(_arg1); _local2 = ((_local2.indexOf("::") > -1)) ? _local2.split("::").join(".") : _local2; if (_local3 == null){ return (_local2); }; _local3 = ((_local3.indexOf("::") > -1)) ? _local3.split("::").join(".") : _local3; return (((_local3 + ".") + _local2)); } public static function getFullClassPath(_arg1:Object):String{ var _local2:XML; var _local3:Array; var _local4:String; var _local5:XML; var _local6:String; _local2 = describeType(_arg1); _local3 = []; _local4 = getQualifiedClassName(_arg1); _local4 = ((_local4.indexOf("::") > -1)) ? _local4.split("::").join(".") : _local4; _local3.push(_local4); for each (_local5 in _local2.extendsClass) { _local6 = ((_local5.@type.toString().indexOf("::") > -1)) ? _local5.@type.toString().split("::")[1] : _local5.@type.toString(); _local3.push(_local6); }; return (_local3.join(".")); } } }//package com.blitzagency.xray.logger.util
Section 5
//PropertyTools (com.blitzagency.xray.logger.util.PropertyTools) package com.blitzagency.xray.logger.util { import flash.utils.*; public class PropertyTools { private static function getVariables():void{ } public static function getProperties(_arg1:Object):Array{ var ary:Array; var xmlDoc:XML; var item:XML; var name:String; var type:String; var value:Object; var obj = _arg1; ary = []; try { xmlDoc = describeType(obj); for each (item in xmlDoc.variable) { name = item.@name.toString(); type = item.@type.toString(); value = ((obj[name])!=null) ? obj[name] : ""; ary.push({name:name, type:type, value:value}); }; } catch(e:Error) { }; return (ary); } private static function getMethods():void{ } } }//package com.blitzagency.xray.logger.util
Section 6
//Debug (com.blitzagency.xray.logger.Debug) package com.blitzagency.xray.logger { import flash.events.*; import flash.utils.*; import com.blitzagency.xray.logger.events.*; import flash.net.*; public class Debug { private static var connected:Boolean = false; private static var xrayLC:LocalConnection; private static var ed:DebugDispatcher = new DebugDispatcher(); public static function traceObject(_arg1:Object, _arg2:Number=254, _arg3:Number=0, _arg4:String="", _arg5:Number=0):void{ var recurseDepth:Number; var indent:Number; var prop:String; var lead:String; var i:Number; var obj:String; var o = _arg1; var pRecurseDepth = _arg2; var pIndent = _arg3; var pPackage = _arg4; var pLevel = _arg5; try { recurseDepth = pRecurseDepth; indent = pIndent; for (prop in o) { lead = ""; i = 0; while (i < indent) { lead = (lead + " "); i = (i + 1); }; obj = o[prop].toString(); if ((o[prop] is Array)){ obj = "[Array]"; }; if (obj == "[object Object]"){ obj = "[Object]"; }; Debug.trace((((lead + prop) + ": ") + obj), pPackage, pLevel); if (recurseDepth > 0){ Debug.traceObject(o[prop], (recurseDepth - 1), (indent + 1), pPackage, pLevel); }; }; } catch(e:Error) { }; } public static function trace(_arg1:Object, _arg2:String="", _arg3:Number=0):void{ var msg:String; var pMsg = _arg1; var pPackage = _arg2; var pLevel = _arg3; ed.sendEvent(DebugDispatcher.TRACE, {message:pMsg, classPackage:pPackage}); if (!connected){ makeConnection(); }; if (connected){ try { msg = ((String(pMsg).length >= 39995)) ? (String(pMsg).substr(0, 39995) + "...") : String(pMsg); xrayLC.send("_xray_view_conn", "setTrace", msg, pLevel, pPackage); } catch(e:LogError) { LogError("No Xray Interface running"); }; }; } private static function makeConnection():void{ var err:LogError; xrayLC = new LocalConnection(); xrayLC.addEventListener("status", statusHandler); xrayLC.allowDomain("*"); try { xrayLC.connect(("_xray_standAlone_debug" + getTimer())); connected = true; } catch(e:Error) { err = new LogError("log"); setTimeout(makeConnection, 1000); }; } public static function addEventListener(_arg1:String, _arg2:Function):void{ ed.addEventListener(_arg1, _arg2); } private static function initialize():Boolean{ ed = new DebugDispatcher(); return (true); } private static function statusHandler(_arg1:StatusEvent):void{ if ((((((_arg1.code == null)) && ((_arg1.level == "error")))) && (connected))){ connected = false; } else { if ((((_arg1.level == "status")) && ((_arg1.code == null)))){ connected = true; }; }; } } }//package com.blitzagency.xray.logger class LogError extends Error { private function LogError(_arg1:String){ super(_arg1); } }
Section 7
//Log (com.blitzagency.xray.logger.Log) package com.blitzagency.xray.logger { import com.blitzagency.xray.logger.util.*; public class Log { private var level:Number; private var caller:String;// = "" private var classPackage:String; private var dump:Object; private var message:String; public function Log(_arg1:String, _arg2:Object, _arg3:Number, ... _args){ var err:LogError; var nullArray:Array; var str:String; var p_message = _arg1; var p_dump = _arg2; var p_level = _arg3; var rest = _args; caller = ""; super(); try { nullArray.push("bogus"); } catch(e:Error) { err = new LogError("log"); } finally { if (err.hasOwnProperty("getStackTrace")){ str = err.getStackTrace(); setCaller(resolveCaller(str)); } else { setCaller(""); }; setMessage(p_message); setDump(p_dump); setLevel(p_level); setClassPackage(p_dump); }; } public function setLevel(_arg1:Number):void{ level = _arg1; } public function getCaller():String{ return (caller); } public function setMessage(_arg1:String):void{ message = _arg1; } public function getLevel():Number{ return (level); } public function getDump():Object{ return (dump); } public function setCaller(_arg1:String):void{ caller = _arg1; } public function setClassPackage(_arg1:Object):void{ classPackage = ObjectTools.getImmediateClassPath(_arg1); } public function getMessage():String{ return (message); } public function getClassPackage():String{ return (classPackage); } public function setDump(_arg1:Object):void{ dump = _arg1; } private function resolveCaller(_arg1:String):String{ var ary:Array; var str = _arg1; ary = []; try { str = str.split("\n").join(""); ary = str.split("\tat "); str = ary[3]; } catch(e:Error) { } finally { str = ""; }; return (str); } } }//package com.blitzagency.xray.logger class LogError extends Error { private function LogError(_arg1:String){ super(_arg1); } }
Section 8
//Logger (com.blitzagency.xray.logger.Logger) package com.blitzagency.xray.logger { public interface Logger { function setLevel(_arg1:Number=0):void; function debug(_arg1:Log):void; function fatal(_arg1:Log):void; function warn(_arg1:Log):void; function error(_arg1:Log):void; function log(_arg1:String, _arg2:String, _arg3:String, _arg4:Number, _arg5:Object=null):void; function info(_arg1:Log):void; } }//package com.blitzagency.xray.logger
Section 9
//XrayLog (com.blitzagency.xray.logger.XrayLog) package com.blitzagency.xray.logger { public class XrayLog { private var logger:XrayLogger; public function XrayLog(){ logger = XrayLogger.getInstance(); } public function debug(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){ logger.debug(new Log(_arg1, null, XrayLogger.DEBUG)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; }; logger.debug(new Log(_arg1, _args[_local3], XrayLogger.DEBUG)); _local3++; }; } public function fatal(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){ logger.fatal(new Log(_arg1, null, XrayLogger.FATAL)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; }; logger.fatal(new Log(_arg1, _args[_local3], XrayLogger.FATAL)); _local3++; }; } public function info(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){ logger.info(new Log(_arg1, null, XrayLogger.INFO)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; }; logger.info(new Log(_arg1, _args[_local3], XrayLogger.INFO)); _local3++; }; } public function warn(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){ logger.warn(new Log(_arg1, null, XrayLogger.WARN)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; }; logger.warn(new Log(_arg1, _args[_local3], XrayLogger.WARN)); _local3++; }; } public function error(_arg1:String, ... _args):void{ var _local3:Number; if (_args.length == 0){ logger.error(new Log(_arg1, null, XrayLogger.ERROR)); }; _local3 = 0; while (_local3 < _args.length) { if (_local3 > 0){ _arg1 = ""; }; logger.error(new Log(_arg1, _args[_local3], XrayLogger.ERROR)); _local3++; }; } } }//package com.blitzagency.xray.logger
Section 10
//XrayLogger (com.blitzagency.xray.logger.XrayLogger) package com.blitzagency.xray.logger { import flash.events.*; import flash.utils.*; import com.blitzagency.xray.logger.util.*; public class XrayLogger extends EventDispatcher implements Logger { private var displayObjectRecursionDepth:Number;// = 3 private var level:Number;// = 0 private var indentation:Number;// = 0 private var objectRecursionDepth:Number;// = 254 private var filters:Array; public static var FATAL:Number = 4; public static var WARN:Number = 2; public static var ERROR:Number = 3; public static var INFO:Number = 1; public static var DEBUG:Number = 0; private static var _instance:XrayLogger = null; public static var NONE:Number = 5; public function XrayLogger(){ level = 0; displayObjectRecursionDepth = 3; objectRecursionDepth = 254; indentation = 0; filters = []; super(); } public function checkFilters():Boolean{ var _local1:uint; if (filters.length == 0){ return (true); }; _local1 = 0; while (_local1 < filters.length) { _local1++; }; return (true); } public function debug(_arg1:Log):void{ if (_arg1.getLevel() == level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 0, _arg1.getDump()); }; } public function setIndentation(_arg1:Number=0):void{ indentation = _arg1; } public function error(_arg1:Log):void{ if (_arg1.getLevel() >= level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 3, _arg1.getDump()); }; } public function setLevel(_arg1:Number=0):void{ level = _arg1; } public function fatal(_arg1:Log):void{ if (_arg1.getLevel() >= level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 4, _arg1.getDump()); }; } public function warn(_arg1:Log):void{ if (_arg1.getLevel() >= level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 2, _arg1.getDump()); }; } public function setObjectRecursionDepth(_arg1:Number):void{ objectRecursionDepth = _arg1; } public function setDisplayClipRecursionDepth(_arg1:Number):void{ displayObjectRecursionDepth = _arg1; } public function info(_arg1:Log):void{ if (_arg1.getLevel() >= level){ log(_arg1.getMessage(), _arg1.getCaller(), _arg1.getClassPackage(), 1, _arg1.getDump()); }; } public function log(_arg1:String, _arg2:String, _arg3:String, _arg4:Number, _arg5:Object=null):void{ var _local6:String; var _local7:String; var _local8:String; var _local9:Object; _local6 = (("(" + getTimer()) + ") "); if (_arg3.length > 0){ _local6 = (_local6 + (_arg2 + "\n")); }; _local6 = (_local6 + _arg1); if (_arg1.length > 0){ Debug.trace(_local6, _arg3, _arg4); }; if (_arg5 == null){ return; }; _local7 = typeof(_arg5); if ((((((((((_local7 == "string")) || ((_local7 == "number")))) || ((_local7 == "boolean")))) || ((_local7 == "undefined")))) || ((_local7 == "null")))){ Debug.trace(_arg5, _arg3, _arg4); } else { if (_local7 == "xml"){ Debug.trace(_arg5.toString(), _arg3, _arg4); } else { _local8 = ObjectTools.getImmediateClassPath(_arg5); if ((((_local8 == "Object")) || ((_local8 == "Object.Array")))){ Debug.traceObject(_arg5, objectRecursionDepth, indentation, _arg3, _arg4); } else { _local9 = PropertyTools.getProperties(_arg5); Debug.traceObject(_local9, displayObjectRecursionDepth, indentation, _arg3, _arg4); }; }; }; } public function setFilters(_arg1:Array):void{ filters = _arg1; } public static function getInstance():XrayLogger{ if (_instance == null){ _instance = new (XrayLogger); }; return (_instance); } public static function resolveLevelAsName(_arg1:Number):String{ switch (_arg1){ case 0: return ("debug"); case 1: return ("info"); case 2: return ("warn"); case 3: return ("error"); case 4: return ("fatal"); default: return ("debug"); }; } } }//package com.blitzagency.xray.logger
Section 11
//swf (HighRes.swf) package HighRes { import flash.display.*; public dynamic class swf extends MovieClip { } }//package HighRes
Section 12
//Camera3D (org.papervision3d.cameras.Camera3D) package org.papervision3d.cameras { import org.papervision3d.core.proto.*; import org.papervision3d.core.math.*; import org.papervision3d.objects.*; public class Camera3D extends CameraObject3D { public var goto:Number3D; public var target:DisplayObject3D; public static const TYPE:String = "CAMERA3D"; public function Camera3D(_arg1:DisplayObject3D=null, _arg2:Number=2, _arg3:Number=100, _arg4:Object=null){ super(_arg2, _arg3, _arg4); this.target = ((_arg1) || (DisplayObject3D.ZERO)); this.goto = new Number3D(this.x, this.y, this.z); } public function hover(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:DisplayObject3D; var _local5:Number3D; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local4 = this.target; _local5 = this.goto; _local6 = 8; switch (_arg1){ case 0: _local7 = (_local5.x - _local4.x); _local8 = (_local5.z - _local4.z); _local9 = Math.atan2(_local8, _local7); _local10 = Math.sqrt(((_local7 * _local7) + (_local8 * _local8))); _local11 = (0.5 * _arg2); _local12 = (_local10 * Math.cos((_local9 - _local11))); _local13 = (_local10 * Math.sin((_local9 - _local11))); _local14 = (_local5.y - (300 * _arg3)); this.x = (this.x - ((this.x - _local12) / _local6)); this.y = (this.y - ((this.y - _local14) / _local6)); this.z = (this.z - ((this.z - _local13) / _local6)); break; case 1: this.x = (this.x - ((this.x - (1000 * _arg2)) / _local6)); this.y = (this.y - ((this.y - (1000 * _arg3)) / _local6)); break; }; } override public function transformView(_arg1:Matrix3D=null):void{ this.lookAt(this.target); super.transformView(); } } }//package org.papervision3d.cameras
Section 13
//CoordinateTools (org.papervision3d.core.components.as3.utils.CoordinateTools) package org.papervision3d.core.components.as3.utils { import flash.display.*; import flash.geom.*; public class CoordinateTools { public static function random(_arg1:Number):Number{ return (Math.floor((Math.random() * _arg1))); } public static function localToLocal(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Point=null):Point{ var _local4:Point; _local4 = (_arg3) ? _arg3 : new Point(); _local4 = _arg1.localToGlobal(_local4); _local4 = _arg2.globalToLocal(_local4); return (_local4); } } }//package org.papervision3d.core.components.as3.utils
Section 14
//DefaultParticleCuller (org.papervision3d.core.culling.DefaultParticleCuller) package org.papervision3d.core.culling { import org.papervision3d.core.geom.renderables.*; public class DefaultParticleCuller implements IParticleCuller { public function testParticle(_arg1:Particle):Boolean{ if (_arg1.material.invisible == false){ if (_arg1.vertex3D.vertex3DInstance.visible == true){ return (true); }; }; return (false); } } }//package org.papervision3d.core.culling
Section 15
//DefaultTriangleCuller (org.papervision3d.core.culling.DefaultTriangleCuller) package org.papervision3d.core.culling { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; public class DefaultTriangleCuller implements ITriangleCuller { private static var y2:Number; private static var y1:Number; private static var y0:Number; private static var x0:Number; private static var x1:Number; private static var x2:Number; public function testFace(_arg1:Triangle3D, _arg2:Vertex3DInstance, _arg3:Vertex3DInstance, _arg4:Vertex3DInstance):Boolean{ var _local5:MaterialObject3D; if (((((_arg2.visible) && (_arg3.visible))) && (_arg4.visible))){ _local5 = (_arg1.material) ? _arg1.material : _arg1.instance.material; if (_local5.invisible){ return (false); }; x0 = _arg2.x; y0 = _arg2.y; x1 = _arg3.x; y1 = _arg3.y; x2 = _arg4.x; y2 = _arg4.y; if (_local5.oneSide){ if (_local5.opposite){ if ((((x2 - x0) * (y1 - y0)) - ((y2 - y0) * (x1 - x0))) > 0){ return (false); }; } else { if ((((x2 - x0) * (y1 - y0)) - ((y2 - y0) * (x1 - x0))) < 0){ return (false); }; }; }; return (true); }; return (false); } } }//package org.papervision3d.core.culling
Section 16
//FrustumTestMethod (org.papervision3d.core.culling.FrustumTestMethod) package org.papervision3d.core.culling { public class FrustumTestMethod { public static const BOUNDING_SPHERE:int = 0; public static const BOUNDING_BOX:int = 1; } }//package org.papervision3d.core.culling
Section 17
//IObjectCuller (org.papervision3d.core.culling.IObjectCuller) package org.papervision3d.core.culling { import org.papervision3d.objects.*; public interface IObjectCuller { function testObject(_arg1:DisplayObject3D):int; } }//package org.papervision3d.core.culling
Section 18
//IParticleCuller (org.papervision3d.core.culling.IParticleCuller) package org.papervision3d.core.culling { import org.papervision3d.core.geom.renderables.*; public interface IParticleCuller { function testParticle(_arg1:Particle):Boolean; } }//package org.papervision3d.core.culling
Section 19
//ITriangleCuller (org.papervision3d.core.culling.ITriangleCuller) package org.papervision3d.core.culling { import org.papervision3d.core.geom.renderables.*; public interface ITriangleCuller { function testFace(_arg1:Triangle3D, _arg2:Vertex3DInstance, _arg3:Vertex3DInstance, _arg4:Vertex3DInstance):Boolean; } }//package org.papervision3d.core.culling
Section 20
//RectangleParticleCuller (org.papervision3d.core.culling.RectangleParticleCuller) package org.papervision3d.core.culling { import org.papervision3d.core.geom.renderables.*; import flash.geom.*; public class RectangleParticleCuller implements IParticleCuller { public var cullingRectangle:Rectangle; private static var vInstance:Vertex3DInstance; private static var testPoint:Point; public function RectangleParticleCuller(_arg1:Rectangle=null){ this.cullingRectangle = _arg1; testPoint = new Point(); } public function testParticle(_arg1:Particle):Boolean{ vInstance = _arg1.vertex3D.vertex3DInstance; if (_arg1.material.invisible == false){ if (vInstance.visible){ if (_arg1.renderRect.intersects(cullingRectangle)){ return (true); }; }; }; return (false); } } }//package org.papervision3d.core.culling
Section 21
//RectangleTriangleCuller (org.papervision3d.core.culling.RectangleTriangleCuller) package org.papervision3d.core.culling { import org.papervision3d.core.geom.renderables.*; import flash.geom.*; public class RectangleTriangleCuller extends DefaultTriangleCuller implements ITriangleCuller { public var cullingRectangle:Rectangle; private static const DEFAULT_RECT_X:Number = -((DEFAULT_RECT_W / 2)); private static const DEFAULT_RECT_W:Number = 640; private static const DEFAULT_RECT_H:Number = 480; private static const DEFAULT_RECT_Y:Number = -((DEFAULT_RECT_H / 2)); private static var hitRect:Rectangle = new Rectangle(); public function RectangleTriangleCuller(_arg1:Rectangle=null):void{ cullingRectangle = new Rectangle(DEFAULT_RECT_X, DEFAULT_RECT_Y, DEFAULT_RECT_W, DEFAULT_RECT_H); super(); if (_arg1){ this.cullingRectangle = _arg1; }; } override public function testFace(_arg1:Triangle3D, _arg2:Vertex3DInstance, _arg3:Vertex3DInstance, _arg4:Vertex3DInstance):Boolean{ if (super.testFace(_arg1, _arg2, _arg3, _arg4)){ hitRect.x = Math.min(_arg4.x, Math.min(_arg3.x, _arg2.x)); hitRect.width = (Math.max(_arg4.x, Math.max(_arg3.x, _arg2.x)) + Math.abs(hitRect.x)); hitRect.y = Math.min(_arg4.y, Math.min(_arg3.y, _arg2.y)); hitRect.height = (Math.max(_arg4.y, Math.max(_arg3.y, _arg2.y)) + Math.abs(hitRect.y)); return (cullingRectangle.intersects(hitRect)); }; return (false); } } }//package org.papervision3d.core.culling
Section 22
//ViewportObjectFilter (org.papervision3d.core.culling.ViewportObjectFilter) package org.papervision3d.core.culling { import org.papervision3d.objects.*; import flash.utils.*; public class ViewportObjectFilter implements IObjectCuller { protected var _mode:int; protected var objects:Dictionary; public function ViewportObjectFilter(_arg1:int):void{ this.mode = _arg1; init(); } public function addObject(_arg1:DisplayObject3D):void{ objects[_arg1] = _arg1; } public function removeObject(_arg1:DisplayObject3D):void{ delete objects[_arg1]; } public function set mode(_arg1:int):void{ _mode = _arg1; } public function get mode():int{ return (_mode); } private function init():void{ objects = new Dictionary(true); } public function testObject(_arg1:DisplayObject3D):int{ if (objects[_arg1]){ if (_mode == ViewportObjectFilterMode.INCLUSIVE){ return (1); }; if (_mode == ViewportObjectFilterMode.EXCLUSIVE){ return (0); }; } else { if (_mode == ViewportObjectFilterMode.INCLUSIVE){ return (0); }; if (_mode == ViewportObjectFilterMode.EXCLUSIVE){ return (1); }; }; return (0); } public function destroy():void{ objects = null; } } }//package org.papervision3d.core.culling
Section 23
//ViewportObjectFilterMode (org.papervision3d.core.culling.ViewportObjectFilterMode) package org.papervision3d.core.culling { public class ViewportObjectFilterMode { public static const INCLUSIVE:int = 0; public static const EXCLUSIVE:int = 1; } }//package org.papervision3d.core.culling
Section 24
//UserData (org.papervision3d.core.data.UserData) package org.papervision3d.core.data { public class UserData { public var data; public function UserData(_arg1=null){ this.data = _arg1; } } }//package org.papervision3d.core.data
Section 25
//AbstractRenderable (org.papervision3d.core.geom.renderables.AbstractRenderable) package org.papervision3d.core.geom.renderables { import org.papervision3d.core.render.command.*; import org.papervision3d.core.data.*; public class AbstractRenderable implements IRenderable { public var _userData:UserData; public function get userData():UserData{ return (_userData); } public function set userData(_arg1:UserData):void{ _userData = _arg1; } public function getRenderListItem():IRenderListItem{ return (null); } } }//package org.papervision3d.core.geom.renderables
Section 26
//IRenderable (org.papervision3d.core.geom.renderables.IRenderable) package org.papervision3d.core.geom.renderables { import org.papervision3d.core.render.command.*; public interface IRenderable { function getRenderListItem():IRenderListItem; } }//package org.papervision3d.core.geom.renderables
Section 27
//Particle (org.papervision3d.core.geom.renderables.Particle) package org.papervision3d.core.geom.renderables { import org.papervision3d.core.render.command.*; import flash.geom.*; import org.papervision3d.materials.special.*; import org.papervision3d.core.geom.*; public class Particle extends AbstractRenderable implements IRenderable { public var size:Number; public var renderScale:Number; public var renderCommand:RenderParticle; public var renderRect:Rectangle; public var instance:Particles; public var material:ParticleMaterial; public var vertex3D:Vertex3D; public function Particle(_arg1:ParticleMaterial, _arg2:Number=1, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0){ this.material = _arg1; this.size = _arg2; this.renderCommand = new RenderParticle(this); this.renderRect = new Rectangle(); vertex3D = new Vertex3D(_arg3, _arg4, _arg5); } public function get y():Number{ return (vertex3D.y); } public function updateRenderRect():void{ material.updateRenderRect(this); } override public function getRenderListItem():IRenderListItem{ return (renderCommand); } public function set z(_arg1:Number):void{ vertex3D.z = _arg1; } public function set x(_arg1:Number):void{ vertex3D.x = _arg1; } public function set y(_arg1:Number):void{ vertex3D.y = _arg1; } public function get x():Number{ return (vertex3D.x); } public function get z():Number{ return (vertex3D.z); } } }//package org.papervision3d.core.geom.renderables
Section 28
//Triangle3D (org.papervision3d.core.geom.renderables.Triangle3D) package org.papervision3d.core.geom.renderables { import org.papervision3d.core.proto.*; import org.papervision3d.core.render.command.*; import org.papervision3d.core.math.*; import org.papervision3d.objects.*; public class Triangle3D extends AbstractRenderable implements IRenderable { public var vertices:Array; public var v1:Vertex3D; public var face3DInstance:Triangle3DInstance; private var _uvArray:Array; public var id:Number; public var material:MaterialObject3D; public var faceNormal:Number3D; public var instance:DisplayObject3D; public var screenZ:Number; public var uv0:NumberUV; public var uv1:NumberUV; public var _materialName:String; public var visible:Boolean; public var renderCommand:RenderTriangle; public var uv2:NumberUV; public var v0:Vertex3D; public var v2:Vertex3D; private static var _totalFaces:Number = 0; public function Triangle3D(_arg1:DisplayObject3D, _arg2:Array, _arg3:MaterialObject3D=null, _arg4:Array=null){ this.instance = _arg1; this.renderCommand = new RenderTriangle(this); face3DInstance = new Triangle3DInstance(this, _arg1); if (((_arg2) && ((_arg2.length == 3)))){ this.vertices = _arg2; v0 = _arg2[0]; v1 = _arg2[1]; v2 = _arg2[2]; createNormal(); }; this.material = _arg3; this.uv = _arg4; this.id = _totalFaces++; } override public function getRenderListItem():IRenderListItem{ return (renderCommand); } public function set uv(_arg1:Array):void{ if (_arg1){ uv0 = NumberUV(_arg1[0]); uv1 = NumberUV(_arg1[1]); uv2 = NumberUV(_arg1[2]); }; _uvArray = _arg1; } public function createNormal():void{ var _local1:Number3D; var _local2:Number3D; var _local3:Number3D; var _local4:Number3D; var _local5:Number3D; _local1 = v0.toNumber3D(); _local2 = v1.toNumber3D(); _local3 = v2.toNumber3D(); _local4 = Number3D.sub(_local2, _local1); _local5 = Number3D.sub(_local3, _local1); faceNormal = Number3D.cross(_local4, _local5); faceNormal.normalize(); } public function get uv():Array{ return (_uvArray); } public function updateVertices():void{ v0 = vertices[0]; v1 = vertices[1]; v2 = vertices[2]; } } }//package org.papervision3d.core.geom.renderables
Section 29
//Triangle3DInstance (org.papervision3d.core.geom.renderables.Triangle3DInstance) package org.papervision3d.core.geom.renderables { import flash.display.*; import org.papervision3d.core.math.*; import org.papervision3d.objects.*; public class Triangle3DInstance { public var container:Sprite; public var faceNormal:Number3D; public var screenZ:Number; public var visible:Boolean;// = false public var instance:DisplayObject3D; public function Triangle3DInstance(_arg1:Triangle3D, _arg2:DisplayObject3D){ visible = false; super(); this.instance = _arg2; faceNormal = new Number3D(); } } }//package org.papervision3d.core.geom.renderables
Section 30
//Vertex3D (org.papervision3d.core.geom.renderables.Vertex3D) package org.papervision3d.core.geom.renderables { import org.papervision3d.core.render.command.*; import org.papervision3d.core.math.*; import flash.utils.*; public class Vertex3D extends AbstractRenderable implements IRenderable { public var vertex3DInstance:Vertex3DInstance; public var extra:Object; public var normal:Number3D; public var connectedFaces:Dictionary; public var x:Number; public var y:Number; public var z:Number; public function Vertex3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.vertex3DInstance = new Vertex3DInstance(); this.normal = new Number3D(); this.connectedFaces = new Dictionary(); } override public function getRenderListItem():IRenderListItem{ return (null); } public function toNumber3D():Number3D{ return (new Number3D(x, y, z)); } public function clone():Vertex3D{ var _local1:Vertex3D; _local1 = new Vertex3D(x, y, z); _local1.extra = extra; _local1.vertex3DInstance = vertex3DInstance.clone(); _local1.normal = normal.clone(); return (_local1); } public function calculateNormal():void{ var _local1:Triangle3D; var _local2:Number; normal = new Number3D(); _local2 = 0; for each (_local1 in connectedFaces) { _local2++; normal = Number3D.add(_local1.faceNormal, normal); }; normal.x = (normal.x / _local2); normal.y = (normal.y / _local2); normal.z = (normal.z / _local2); normal.normalize(); } } }//package org.papervision3d.core.geom.renderables
Section 31
//Vertex3DInstance (org.papervision3d.core.geom.renderables.Vertex3DInstance) package org.papervision3d.core.geom.renderables { import org.papervision3d.core.math.*; public class Vertex3DInstance { public var visible:Boolean; public var normal:Number3D; public var extra:Object; public var x:Number; public var y:Number; public var z:Number; public function Vertex3DInstance(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.visible = false; this.normal = new Number3D(); } public function clone():Vertex3DInstance{ var _local1:Vertex3DInstance; _local1 = new Vertex3DInstance(x, y, z); _local1.visible = visible; _local1.extra = extra; return (_local1); } public static function cross(_arg1:Vertex3DInstance, _arg2:Vertex3DInstance):Number{ return (((_arg1.x * _arg2.y) - (_arg2.x * _arg1.y))); } public static function dot(_arg1:Vertex3DInstance, _arg2:Vertex3DInstance):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function sub(_arg1:Vertex3DInstance, _arg2:Vertex3DInstance):Vertex3DInstance{ return (new Vertex3DInstance((_arg2.x - _arg1.x), (_arg2.y - _arg1.y))); } } }//package org.papervision3d.core.geom.renderables
Section 32
//Particles (org.papervision3d.core.geom.Particles) package org.papervision3d.core.geom { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.objects.*; public class Particles extends Vertices3D { public var particles:Array; private var vertices:Array; public function Particles(_arg1:String="VertexParticles"){ this.vertices = new Array(); this.particles = new Array(); super(vertices, _arg1); } override public function project(_arg1:DisplayObject3D, _arg2:RenderSessionData):Number{ var _local3:Particle; var _local4:Number; super.project(_arg1, _arg2); _local4 = (_arg2.camera.focus * _arg2.camera.zoom); for each (_local3 in particles) { _local3.renderScale = (_local4 / (_arg2.camera.focus + _local3.vertex3D.vertex3DInstance.z)); _local3.updateRenderRect(); if (_arg2.viewPort.particleCuller.testParticle(_local3)){ _local3.renderCommand.screenDepth = _local3.vertex3D.vertex3DInstance.z; _arg2.renderer.addToRenderList(_local3.renderCommand); } else { _arg2.renderStatistics.culledParticles++; }; }; return (1); } public function removeParticle(_arg1:Particle):void{ _arg1.instance = null; particles.splice(particles.indexOf(_arg1, 0)); vertices.splice(vertices.indexOf(_arg1.vertex3D, 0)); } public function addParticle(_arg1:Particle):void{ _arg1.instance = this; particles.push(_arg1); vertices.push(_arg1.vertex3D); } public function removeAllParticles():void{ particles = new Array(); vertices = new Array(); geometry.vertices = vertices; } } }//package org.papervision3d.core.geom
Section 33
//TriangleMesh3D (org.papervision3d.core.geom.TriangleMesh3D) package org.papervision3d.core.geom { import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.render.command.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.objects.*; import org.papervision3d.core.culling.*; import org.papervision3d.core.render.draw.*; import flash.utils.*; public class TriangleMesh3D extends Vertices3D { public function TriangleMesh3D(_arg1:MaterialObject3D, _arg2:Array, _arg3:Array, _arg4:String=null, _arg5:Object=null){ super(_arg2, _arg4, _arg5); this.geometry.faces = ((_arg3) || (new Array())); this.material = ((_arg1) || (MaterialObject3D.DEFAULT)); } override public function project(_arg1:DisplayObject3D, _arg2:RenderSessionData):Number{ var _local3:Array; var _local4:Number; var _local5:Number; var _local6:ITriangleCuller; var _local7:Vertex3DInstance; var _local8:Vertex3DInstance; var _local9:Vertex3DInstance; var _local10:Triangle3DInstance; var _local11:Triangle3D; var _local12:MaterialObject3D; var _local13:RenderTriangle; super.project(_arg1, _arg2); if (!this.culled){ _local3 = this.geometry.faces; _local4 = 0; _local5 = 0; _local6 = _arg2.triangleCuller; for each (_local11 in _local3) { _local12 = (_local11.material) ? _local11.material : material; _local10 = _local11.face3DInstance; _local7 = _local11.v0.vertex3DInstance; _local8 = _local11.v1.vertex3DInstance; _local9 = _local11.v2.vertex3DInstance; if ((_local10.visible = _local6.testFace(_local11, _local7, _local8, _local9))){ _local4 = (_local4 + (_local10.screenZ = (((_local7.z + _local8.z) + _local9.z) / 3))); _local13 = _local11.renderCommand; _local5++; _local13.renderer = (_local12 as ITriangleDrawer); _local13.screenDepth = _local10.screenZ; _arg2.renderer.addToRenderList(_local13); } else { _arg2.renderStatistics.culledTriangles++; }; }; return ((this.screenZ = (_local4 / _local5))); //unresolved jump }; return (0); } override public function set material(_arg1:MaterialObject3D):void{ var _local2:Triangle3D; super.material = _arg1; for each (_local2 in geometry.faces) { _local2.material = _arg1; }; } public function mergeVertices():void{ var _local1:Dictionary; var _local2:Array; var _local3:Vertex3D; var _local4:Triangle3D; var _local5:Vertex3D; _local1 = new Dictionary(); _local2 = new Array(); for each (_local3 in this.geometry.vertices) { for each (_local5 in _local1) { if ((((((_local3.x == _local5.x)) && ((_local3.y == _local5.y)))) && ((_local3.z == _local5.z)))){ _local1[_local3] = _local5; break; }; }; if (!_local1[_local3]){ _local1[_local3] = _local3; _local2.push(_local3); }; }; this.geometry.vertices = _local2; for each (_local4 in geometry.faces) { _local4.v0 = _local1[_local4.v0]; _local4.v1 = _local1[_local4.v1]; _local4.v2 = _local1[_local4.v2]; }; } public function quarterFaces():void{ var _local1:Array; var _local2:Array; var _local3:Array; var _local4:Triangle3D; var _local5:int; var _local6:Vertex3D; var _local7:Vertex3D; var _local8:Vertex3D; var _local9:Vertex3D; var _local10:Vertex3D; var _local11:Vertex3D; var _local12:NumberUV; var _local13:NumberUV; var _local14:NumberUV; var _local15:NumberUV; var _local16:NumberUV; var _local17:NumberUV; var _local18:Triangle3D; var _local19:Triangle3D; var _local20:Triangle3D; var _local21:Triangle3D; _local1 = new Array(); _local2 = new Array(); _local3 = this.geometry.faces; _local5 = _local3.length; while ((_local4 = _local3[--_local5])) { _local6 = _local4.v0; _local7 = _local4.v1; _local8 = _local4.v2; _local9 = new Vertex3D(((_local6.x + _local7.x) / 2), ((_local6.y + _local7.y) / 2), ((_local6.z + _local7.z) / 2)); _local10 = new Vertex3D(((_local7.x + _local8.x) / 2), ((_local7.y + _local8.y) / 2), ((_local7.z + _local8.z) / 2)); _local11 = new Vertex3D(((_local8.x + _local6.x) / 2), ((_local8.y + _local6.y) / 2), ((_local8.z + _local6.z) / 2)); this.geometry.vertices.push(_local9, _local10, _local11); _local12 = _local4.uv[0]; _local13 = _local4.uv[1]; _local14 = _local4.uv[2]; _local15 = new NumberUV(((_local12.u + _local13.u) / 2), ((_local12.v + _local13.v) / 2)); _local16 = new NumberUV(((_local13.u + _local14.u) / 2), ((_local13.v + _local14.v) / 2)); _local17 = new NumberUV(((_local14.u + _local12.u) / 2), ((_local14.v + _local12.v) / 2)); _local18 = new Triangle3D(this, [_local6, _local9, _local11], _local4.material, [_local12, _local15, _local17]); _local19 = new Triangle3D(this, [_local9, _local7, _local10], _local4.material, [_local15, _local13, _local16]); _local20 = new Triangle3D(this, [_local11, _local10, _local8], _local4.material, [_local17, _local16, _local14]); _local21 = new Triangle3D(this, [_local9, _local10, _local11], _local4.material, [_local15, _local16, _local17]); _local2.push(_local18, _local19, _local20, _local21); }; this.geometry.faces = _local2; this.mergeVertices(); this.geometry.ready = true; } override public function clone():DisplayObject3D{ var _local1:DisplayObject3D; var _local2:TriangleMesh3D; _local1 = super.clone(); _local2 = new TriangleMesh3D(this.material, [], [], _local1.name); if (this.materials){ _local2.materials = this.materials.clone(); }; if (_local1.geometry){ _local2.geometry = _local1.geometry.clone(_local2); }; _local2.copyTransform(this.transform); return (_local2); } public function projectTexture(_arg1:String="x", _arg2:String="y"):void{ var _local3:Array; var _local4:Object; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:MaterialObject3D; var _local10:String; var _local11:Triangle3D; var _local12:Array; var _local13:Vertex3D; var _local14:Vertex3D; var _local15:Vertex3D; var _local16:NumberUV; var _local17:NumberUV; var _local18:NumberUV; _local3 = this.geometry.faces; _local4 = this.boundingBox(); _local5 = _local4.min[_arg1]; _local6 = _local4.size[_arg1]; _local7 = _local4.min[_arg2]; _local8 = _local4.size[_arg2]; _local9 = this.material; for (_local10 in _local3) { _local11 = _local3[Number(_local10)]; _local12 = _local11.vertices; _local13 = _local12[0]; _local14 = _local12[1]; _local15 = _local12[2]; _local16 = new NumberUV(((_local13[_arg1] - _local5) / _local6), ((_local13[_arg2] - _local7) / _local8)); _local17 = new NumberUV(((_local14[_arg1] - _local5) / _local6), ((_local14[_arg2] - _local7) / _local8)); _local18 = new NumberUV(((_local15[_arg1] - _local5) / _local6), ((_local15[_arg2] - _local7) / _local8)); _local11.uv = [_local16, _local17, _local18]; }; } } }//package org.papervision3d.core.geom
Section 34
//Vertices3D (org.papervision3d.core.geom.Vertices3D) package org.papervision3d.core.geom { import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import flash.geom.*; import org.papervision3d.core.math.*; import org.papervision3d.objects.*; import org.papervision3d.core.culling.*; public class Vertices3D extends DisplayObject3D { public function Vertices3D(_arg1:Array, _arg2:String=null, _arg3:Object=null){ super(_arg2, new GeometryObject3D(), _arg3); this.geometry.vertices = ((_arg1) || (new Array())); } public function projectFrustum(_arg1:DisplayObject3D, _arg2:RenderSessionData):Number{ var _local3:Matrix3D; var _local4:Rectangle; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Vertex3D; var _local27:Vertex3DInstance; var _local28:Array; var _local29:int; _local3 = this.view; _local4 = _arg2.camera.viewport; _local5 = _local3.n11; _local6 = _local3.n12; _local7 = _local3.n13; _local8 = _local3.n21; _local9 = _local3.n22; _local10 = _local3.n23; _local11 = _local3.n31; _local12 = _local3.n32; _local13 = _local3.n33; _local14 = _local3.n41; _local15 = _local3.n42; _local16 = _local3.n43; _local24 = (_local4.width / 2); _local25 = (_local4.height / 2); _local28 = this.geometry.vertices; _local29 = _local28.length; while ((_local26 = _local28[--_local29])) { _local17 = _local26.x; _local18 = _local26.y; _local19 = _local26.z; _local22 = ((((_local17 * _local11) + (_local18 * _local12)) + (_local19 * _local13)) + _local3.n34); _local23 = ((((_local17 * _local14) + (_local18 * _local15)) + (_local19 * _local16)) + _local3.n44); _local27 = _local26.vertex3DInstance; _local22 = (_local22 / _local23); if ((_local27.visible = (((_local22 > 0)) && ((_local22 < 1))))){ _local20 = (((((_local17 * _local5) + (_local18 * _local6)) + (_local19 * _local7)) + _local3.n14) / _local23); _local21 = (((((_local17 * _local8) + (_local18 * _local9)) + (_local19 * _local10)) + _local3.n24) / _local23); _local27.x = (_local20 * _local24); _local27.y = (_local21 * _local25); _local27.z = (_local22 * _local23); }; }; return (0); } override public function project(_arg1:DisplayObject3D, _arg2:RenderSessionData):Number{ var _local3:Matrix3D; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Vertex3D; var _local20:Vertex3DInstance; var _local21:Number; var _local22:Array; var _local23:int; var _local24:Number; var _local25:Number; super.project(_arg1, _arg2); if (this.culled){ return (0); }; if ((_arg2.camera is IObjectCuller)){ return (projectFrustum(_arg1, _arg2)); }; _local3 = this.view; _local4 = _local3.n11; _local5 = _local3.n12; _local6 = _local3.n13; _local7 = _local3.n21; _local8 = _local3.n22; _local9 = _local3.n23; _local10 = _local3.n31; _local11 = _local3.n32; _local12 = _local3.n33; _local22 = this.geometry.vertices; _local23 = _local22.length; _local24 = _arg2.camera.focus; _local25 = (_local24 * _arg2.camera.zoom); while ((_local19 = _local22[--_local23])) { _local13 = _local19.x; _local14 = _local19.y; _local15 = _local19.z; _local18 = ((((_local13 * _local10) + (_local14 * _local11)) + (_local15 * _local12)) + _local3.n34); _local20 = _local19.vertex3DInstance; if ((_local20.visible = (_local18 > 0))){ _local16 = ((((_local13 * _local4) + (_local14 * _local5)) + (_local15 * _local6)) + _local3.n14); _local17 = ((((_local13 * _local7) + (_local14 * _local8)) + (_local15 * _local9)) + _local3.n24); _local21 = (_local25 / (_local24 + _local18)); _local20.x = (_local16 * _local21); _local20.y = (_local17 * _local21); _local20.z = _local18; }; }; return (0); } override public function clone():DisplayObject3D{ var _local1:DisplayObject3D; var _local2:Vertices3D; _local1 = super.clone(); _local2 = new Vertices3D(null, _local1.name); _local2.material = _local1.material; if (_local1.materials){ _local2.materials = _local1.materials.clone(); }; if (this.geometry){ _local2.geometry = this.geometry.clone(_local2); }; _local2.copyTransform(this.transform); return (_local2); } public function transformVertices(_arg1:Matrix3D):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Array; var _local15:int; var _local16:Vertex3D; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; _local2 = _arg1.n11; _local3 = _arg1.n12; _local4 = _arg1.n13; _local5 = _arg1.n21; _local6 = _arg1.n22; _local7 = _arg1.n23; _local8 = _arg1.n31; _local9 = _arg1.n32; _local10 = _arg1.n33; _local11 = _arg1.n14; _local12 = _arg1.n24; _local13 = _arg1.n34; _local14 = this.geometry.vertices; _local15 = _local14.length; while ((_local16 = _local14[--_local15])) { _local17 = _local16.x; _local18 = _local16.y; _local19 = _local16.z; _local20 = ((((_local17 * _local2) + (_local18 * _local3)) + (_local19 * _local4)) + _local11); _local21 = ((((_local17 * _local5) + (_local18 * _local6)) + (_local19 * _local7)) + _local12); _local22 = ((((_local17 * _local8) + (_local18 * _local9)) + (_local19 * _local10)) + _local13); _local16.x = _local20; _local16.y = _local21; _local16.z = _local22; }; } public function boundingBox():Object{ var _local1:Array; var _local2:Object; var _local3:Vertex3D; _local1 = this.geometry.vertices; _local2 = new Object(); _local2.min = new Number3D(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE); _local2.max = new Number3D(Number.MIN_VALUE, Number.MIN_VALUE, Number.MIN_VALUE); _local2.size = new Number3D(); for each (_local3 in _local1) { _local2.min.x = Math.min(_local3.x, _local2.min.x); _local2.min.y = Math.min(_local3.y, _local2.min.y); _local2.min.z = Math.min(_local3.z, _local2.min.z); _local2.max.x = Math.max(_local3.x, _local2.max.x); _local2.max.y = Math.max(_local3.y, _local2.max.y); _local2.max.z = Math.max(_local3.z, _local2.max.z); }; _local2.size.x = (_local2.max.x - _local2.min.x); _local2.size.y = (_local2.max.y - _local2.min.y); _local2.size.z = (_local2.max.z - _local2.min.z); return (_local2); } } }//package org.papervision3d.core.geom
Section 35
//AbstractLightShadeMaterial (org.papervision3d.core.material.AbstractLightShadeMaterial) package org.papervision3d.core.material { import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.math.*; import org.papervision3d.materials.utils.*; import org.papervision3d.objects.*; import org.papervision3d.core.render.material.*; import org.papervision3d.core.render.draw.*; import flash.utils.*; public class AbstractLightShadeMaterial extends TriangleMaterial implements ITriangleDrawer, IUpdateBeforeMaterial { public var lightMatrices:Dictionary; private var _light:LightObject3D; protected static var lightMatrix:Matrix3D; public function AbstractLightShadeMaterial(){ init(); } public function get light():LightObject3D{ return (_light); } protected function init():void{ lightMatrices = new Dictionary(); } public function set light(_arg1:LightObject3D):void{ _light = _arg1; } public function updateBeforeRender(_arg1:RenderSessionData):void{ var _local2:DisplayObject3D; for each (_local2 in objects) { lightMatrices[_local2] = LightMatrix.getLightMatrix(light, _local2, _arg1); }; } } }//package org.papervision3d.core.material
Section 36
//AbstractSmoothShadeMaterial (org.papervision3d.core.material.AbstractSmoothShadeMaterial) package org.papervision3d.core.material { import flash.geom.*; import org.papervision3d.core.render.material.*; import org.papervision3d.core.render.draw.*; public class AbstractSmoothShadeMaterial extends AbstractLightShadeMaterial implements ITriangleDrawer, IUpdateBeforeMaterial { protected var triMatrix:Matrix; protected var transformMatrix:Matrix; override protected function init():void{ super.init(); transformMatrix = new Matrix(); triMatrix = new Matrix(); } } }//package org.papervision3d.core.material
Section 37
//TriangleMaterial (org.papervision3d.core.material.TriangleMaterial) package org.papervision3d.core.material { import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.render.draw.*; public class TriangleMaterial extends MaterialObject3D implements ITriangleDrawer { override public function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData, _arg4:BitmapData=null, _arg5:Matrix=null):void{ } } }//package org.papervision3d.core.material
Section 38
//AxisAlignedBoundingBox (org.papervision3d.core.math.AxisAlignedBoundingBox) package org.papervision3d.core.math { import org.papervision3d.core.geom.renderables.*; public class AxisAlignedBoundingBox { public var minX:Number; public var minY:Number; public var minZ:Number; public var maxX:Number; public var maxY:Number; protected var _vertices:Array; public var maxZ:Number; public function AxisAlignedBoundingBox(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number){ this.minX = _arg1; this.minY = _arg2; this.minZ = _arg3; this.maxX = _arg4; this.maxY = _arg5; this.maxZ = _arg6; createBoxVertices(); } protected function createBoxVertices():void{ _vertices = new Array(); _vertices.push(new Vertex3D(minX, minY, minZ)); _vertices.push(new Vertex3D(minX, minY, maxZ)); _vertices.push(new Vertex3D(minX, maxY, minZ)); _vertices.push(new Vertex3D(minX, maxY, maxZ)); _vertices.push(new Vertex3D(maxX, minY, minZ)); _vertices.push(new Vertex3D(maxX, minY, maxZ)); _vertices.push(new Vertex3D(maxX, maxY, minZ)); _vertices.push(new Vertex3D(maxX, maxY, maxZ)); } public function getBoxVertices():Array{ return (_vertices); } public static function createFromVertices(_arg1:Array):AxisAlignedBoundingBox{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Vertex3D; _local2 = 0; _local3 = 0; _local4 = 0; _local5 = 0; _local6 = 0; _local7 = 0; for each (_local8 in _arg1) { _local2 = ((_local8.x)<_local2) ? _local8.x : _local2; _local4 = ((_local8.y)<_local4) ? _local8.y : _local4; _local6 = ((_local8.z)<_local6) ? _local8.z : _local6; _local3 = ((_local8.x)>_local3) ? _local8.x : _local3; _local5 = ((_local8.y)>_local5) ? _local8.y : _local5; _local7 = ((_local8.z)>_local7) ? _local8.z : _local7; }; return (new AxisAlignedBoundingBox(_local2, _local4, _local6, _local3, _local5, _local7)); } } }//package org.papervision3d.core.math
Section 39
//BoundingSphere (org.papervision3d.core.math.BoundingSphere) package org.papervision3d.core.math { import org.papervision3d.core.geom.renderables.*; public class BoundingSphere { public var maxDistance:Number; public var radius:Number; public function BoundingSphere(_arg1:Number){ this.maxDistance = _arg1; this.radius = Math.sqrt(_arg1); } public static function getFromVertices(_arg1:Array):BoundingSphere{ var _local2:Number; var _local3:Number; var _local4:Vertex3D; _local2 = 0; for each (_local4 in _arg1) { _local3 = (((_local4.x * _local4.x) + (_local4.y * _local4.y)) + (_local4.z * _local4.z)); _local2 = ((_local3)>_local2) ? _local3 : _local2; }; return (new BoundingSphere(_local2)); } } }//package org.papervision3d.core.math
Section 40
//Matrix3D (org.papervision3d.core.math.Matrix3D) package org.papervision3d.core.math { public class Matrix3D { public var n31:Number; public var n32:Number; public var n11:Number; public var n13:Number; public var n14:Number; public var n33:Number; public var n12:Number; public var n42:Number; public var n21:Number; public var n22:Number; public var n23:Number; public var n24:Number; public var n34:Number; public var n41:Number; public var n43:Number; public var n44:Number; private static var _cos:Function = Math.cos; private static var _sin:Function = Math.sin; private static var temp:Matrix3D = Matrix3D.IDENTITY; private static var n3Di:Number3D = Number3D.ZERO; private static var n3Dj:Number3D = Number3D.ZERO; private static var n3Dk:Number3D = Number3D.ZERO; private static var toDEGREES:Number = 57.2957795130823; private static var toRADIANS:Number = 0.0174532925199433; public function Matrix3D(_arg1:Array=null){ reset(_arg1); } public function calculateMultiply3x3(_arg1:Matrix3D, _arg2:Matrix3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local3 = _arg1.n11; _local4 = _arg2.n11; _local5 = _arg1.n21; _local6 = _arg2.n21; _local7 = _arg1.n31; _local8 = _arg2.n31; _local9 = _arg1.n12; _local10 = _arg2.n12; _local11 = _arg1.n22; _local12 = _arg2.n22; _local13 = _arg1.n32; _local14 = _arg2.n32; _local15 = _arg1.n13; _local16 = _arg2.n13; _local17 = _arg1.n23; _local18 = _arg2.n23; _local19 = _arg1.n33; _local20 = _arg2.n33; this.n11 = (((_local3 * _local4) + (_local9 * _local6)) + (_local15 * _local8)); this.n12 = (((_local3 * _local10) + (_local9 * _local12)) + (_local15 * _local14)); this.n13 = (((_local3 * _local16) + (_local9 * _local18)) + (_local15 * _local20)); this.n21 = (((_local5 * _local4) + (_local11 * _local6)) + (_local17 * _local8)); this.n22 = (((_local5 * _local10) + (_local11 * _local12)) + (_local17 * _local14)); this.n23 = (((_local5 * _local16) + (_local11 * _local18)) + (_local17 * _local20)); this.n31 = (((_local7 * _local4) + (_local13 * _local6)) + (_local19 * _local8)); this.n32 = (((_local7 * _local10) + (_local13 * _local12)) + (_local19 * _local14)); this.n33 = (((_local7 * _local16) + (_local13 * _local18)) + (_local19 * _local20)); } public function calculateMultiply4x4(_arg1:Matrix3D, _arg2:Matrix3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; _local3 = _arg1.n11; _local4 = _arg2.n11; _local5 = _arg1.n21; _local6 = _arg2.n21; _local7 = _arg1.n31; _local8 = _arg2.n31; _local9 = _arg1.n41; _local10 = _arg2.n41; _local11 = _arg1.n12; _local12 = _arg2.n12; _local13 = _arg1.n22; _local14 = _arg2.n22; _local15 = _arg1.n32; _local16 = _arg2.n32; _local17 = _arg1.n42; _local18 = _arg2.n42; _local19 = _arg1.n13; _local20 = _arg2.n13; _local21 = _arg1.n23; _local22 = _arg2.n23; _local23 = _arg1.n33; _local24 = _arg2.n33; _local25 = _arg1.n43; _local26 = _arg2.n43; _local27 = _arg1.n14; _local28 = _arg2.n14; _local29 = _arg1.n24; _local30 = _arg2.n24; _local31 = _arg1.n34; _local32 = _arg2.n34; _local33 = _arg1.n44; _local34 = _arg2.n44; this.n11 = (((_local3 * _local4) + (_local11 * _local6)) + (_local19 * _local8)); this.n12 = (((_local3 * _local12) + (_local11 * _local14)) + (_local19 * _local16)); this.n13 = (((_local3 * _local20) + (_local11 * _local22)) + (_local19 * _local24)); this.n14 = ((((_local3 * _local28) + (_local11 * _local30)) + (_local19 * _local32)) + _local27); this.n21 = (((_local5 * _local4) + (_local13 * _local6)) + (_local21 * _local8)); this.n22 = (((_local5 * _local12) + (_local13 * _local14)) + (_local21 * _local16)); this.n23 = (((_local5 * _local20) + (_local13 * _local22)) + (_local21 * _local24)); this.n24 = ((((_local5 * _local28) + (_local13 * _local30)) + (_local21 * _local32)) + _local29); this.n31 = (((_local7 * _local4) + (_local15 * _local6)) + (_local23 * _local8)); this.n32 = (((_local7 * _local12) + (_local15 * _local14)) + (_local23 * _local16)); this.n33 = (((_local7 * _local20) + (_local15 * _local22)) + (_local23 * _local24)); this.n34 = ((((_local7 * _local28) + (_local15 * _local30)) + (_local23 * _local32)) + _local31); this.n41 = (((_local9 * _local4) + (_local17 * _local6)) + (_local25 * _local8)); this.n42 = (((_local9 * _local12) + (_local17 * _local14)) + (_local25 * _local16)); this.n43 = (((_local9 * _local20) + (_local17 * _local22)) + (_local25 * _local24)); this.n44 = ((((_local9 * _local28) + (_local17 * _local30)) + (_local25 * _local32)) + _local33); } public function get det():Number{ return ((((((this.n11 * this.n22) - (this.n21 * this.n12)) * this.n33) - (((this.n11 * this.n32) - (this.n31 * this.n12)) * this.n23)) + (((this.n21 * this.n32) - (this.n31 * this.n22)) * this.n13))); } public function copy(_arg1:Matrix3D):Matrix3D{ this.n11 = _arg1.n11; this.n12 = _arg1.n12; this.n13 = _arg1.n13; this.n14 = _arg1.n14; this.n21 = _arg1.n21; this.n22 = _arg1.n22; this.n23 = _arg1.n23; this.n24 = _arg1.n24; this.n31 = _arg1.n31; this.n32 = _arg1.n32; this.n33 = _arg1.n33; this.n34 = _arg1.n34; return (this); } public function copy3x3(_arg1:Matrix3D):Matrix3D{ this.n11 = _arg1.n11; this.n12 = _arg1.n12; this.n13 = _arg1.n13; this.n21 = _arg1.n21; this.n22 = _arg1.n22; this.n23 = _arg1.n23; this.n31 = _arg1.n31; this.n32 = _arg1.n32; this.n33 = _arg1.n33; return (this); } public function calculateAdd(_arg1:Matrix3D, _arg2:Matrix3D):void{ this.n11 = (_arg1.n11 + _arg2.n11); this.n12 = (_arg1.n12 + _arg2.n12); this.n13 = (_arg1.n13 + _arg2.n13); this.n14 = (_arg1.n14 + _arg2.n14); this.n21 = (_arg1.n21 + _arg2.n21); this.n22 = (_arg1.n22 + _arg2.n22); this.n23 = (_arg1.n23 + _arg2.n23); this.n24 = (_arg1.n24 + _arg2.n24); this.n31 = (_arg1.n31 + _arg2.n31); this.n32 = (_arg1.n32 + _arg2.n32); this.n33 = (_arg1.n33 + _arg2.n33); this.n34 = (_arg1.n34 + _arg2.n34); } public function calculateMultiply(_arg1:Matrix3D, _arg2:Matrix3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; _local3 = _arg1.n11; _local4 = _arg2.n11; _local5 = _arg1.n21; _local6 = _arg2.n21; _local7 = _arg1.n31; _local8 = _arg2.n31; _local9 = _arg1.n12; _local10 = _arg2.n12; _local11 = _arg1.n22; _local12 = _arg2.n22; _local13 = _arg1.n32; _local14 = _arg2.n32; _local15 = _arg1.n13; _local16 = _arg2.n13; _local17 = _arg1.n23; _local18 = _arg2.n23; _local19 = _arg1.n33; _local20 = _arg2.n33; _local21 = _arg1.n14; _local22 = _arg2.n14; _local23 = _arg1.n24; _local24 = _arg2.n24; _local25 = _arg1.n34; _local26 = _arg2.n34; this.n11 = (((_local3 * _local4) + (_local9 * _local6)) + (_local15 * _local8)); this.n12 = (((_local3 * _local10) + (_local9 * _local12)) + (_local15 * _local14)); this.n13 = (((_local3 * _local16) + (_local9 * _local18)) + (_local15 * _local20)); this.n14 = ((((_local3 * _local22) + (_local9 * _local24)) + (_local15 * _local26)) + _local21); this.n21 = (((_local5 * _local4) + (_local11 * _local6)) + (_local17 * _local8)); this.n22 = (((_local5 * _local10) + (_local11 * _local12)) + (_local17 * _local14)); this.n23 = (((_local5 * _local16) + (_local11 * _local18)) + (_local17 * _local20)); this.n24 = ((((_local5 * _local22) + (_local11 * _local24)) + (_local17 * _local26)) + _local23); this.n31 = (((_local7 * _local4) + (_local13 * _local6)) + (_local19 * _local8)); this.n32 = (((_local7 * _local10) + (_local13 * _local12)) + (_local19 * _local14)); this.n33 = (((_local7 * _local16) + (_local13 * _local18)) + (_local19 * _local20)); this.n34 = ((((_local7 * _local22) + (_local13 * _local24)) + (_local19 * _local26)) + _local25); } public function invert():void{ temp.copy(this); calculateInverse(temp); } public function calculateInverse(_arg1:Matrix3D):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; _local2 = _arg1.det; if (Math.abs(_local2) > 0.001){ _local2 = (1 / _local2); _local3 = _arg1.n11; _local4 = _arg1.n21; _local5 = _arg1.n31; _local6 = _arg1.n12; _local7 = _arg1.n22; _local8 = _arg1.n32; _local9 = _arg1.n13; _local10 = _arg1.n23; _local11 = _arg1.n33; _local12 = _arg1.n14; _local13 = _arg1.n24; _local14 = _arg1.n34; this.n11 = (_local2 * ((_local7 * _local11) - (_local8 * _local10))); this.n12 = (-(_local2) * ((_local6 * _local11) - (_local8 * _local9))); this.n13 = (_local2 * ((_local6 * _local10) - (_local7 * _local9))); this.n14 = (-(_local2) * (((_local6 * ((_local10 * _local14) - (_local11 * _local13))) - (_local7 * ((_local9 * _local14) - (_local11 * _local12)))) + (_local8 * ((_local9 * _local13) - (_local10 * _local12))))); this.n21 = (-(_local2) * ((_local4 * _local11) - (_local5 * _local10))); this.n22 = (_local2 * ((_local3 * _local11) - (_local5 * _local9))); this.n23 = (-(_local2) * ((_local3 * _local10) - (_local4 * _local9))); this.n24 = (_local2 * (((_local3 * ((_local10 * _local14) - (_local11 * _local13))) - (_local4 * ((_local9 * _local14) - (_local11 * _local12)))) + (_local5 * ((_local9 * _local13) - (_local10 * _local12))))); this.n31 = (_local2 * ((_local4 * _local8) - (_local5 * _local7))); this.n32 = (-(_local2) * ((_local3 * _local8) - (_local5 * _local6))); this.n33 = (_local2 * ((_local3 * _local7) - (_local4 * _local6))); this.n34 = (-(_local2) * (((_local3 * ((_local7 * _local14) - (_local8 * _local13))) - (_local4 * ((_local6 * _local14) - (_local8 * _local12)))) + (_local5 * ((_local6 * _local13) - (_local7 * _local12))))); }; } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + ((((((((int((n11 * 1000)) / 1000) + "\t\t") + (int((n12 * 1000)) / 1000)) + "\t\t") + (int((n13 * 1000)) / 1000)) + "\t\t") + (int((n14 * 1000)) / 1000)) + "\n")); _local1 = (_local1 + ((((((((int((n21 * 1000)) / 1000) + "\t\t") + (int((n22 * 1000)) / 1000)) + "\t\t") + (int((n23 * 1000)) / 1000)) + "\t\t") + (int((n24 * 1000)) / 1000)) + "\n")); _local1 = (_local1 + ((((((((int((n31 * 1000)) / 1000) + "\t\t") + (int((n32 * 1000)) / 1000)) + "\t\t") + (int((n33 * 1000)) / 1000)) + "\t\t") + (int((n34 * 1000)) / 1000)) + "\n")); _local1 = (_local1 + ((((((((int((n41 * 1000)) / 1000) + "\t\t") + (int((n42 * 1000)) / 1000)) + "\t\t") + (int((n43 * 1000)) / 1000)) + "\t\t") + (int((n44 * 1000)) / 1000)) + "\n")); return (_local1); } public function reset(_arg1:Array=null):void{ if (((!(_arg1)) || ((_arg1.length < 12)))){ n11 = (n22 = (n33 = (n44 = 1))); n12 = (n13 = (n14 = (n21 = (n23 = (n24 = (n31 = (n32 = (n34 = (n41 = (n42 = (n43 = 0))))))))))); } else { n11 = _arg1[0]; n12 = _arg1[1]; n13 = _arg1[2]; n14 = _arg1[3]; n21 = _arg1[4]; n22 = _arg1[5]; n23 = _arg1[6]; n24 = _arg1[7]; n31 = _arg1[8]; n32 = _arg1[9]; n33 = _arg1[10]; n34 = _arg1[11]; if (_arg1.length == 16){ n41 = _arg1[12]; n42 = _arg1[13]; n43 = _arg1[14]; n44 = _arg1[15]; } else { n41 = (n42 = (n43 = 0)); n44 = 1; }; }; } public static function rotationMatrixWithReference(_arg1:Number3D, _arg2:Number, _arg3:Number3D):Matrix3D{ var _local4:Matrix3D; _local4 = Matrix3D.translationMatrix(_arg3.x, -(_arg3.y), _arg3.z); Matrix3D.translationMatrix(_arg3.x, -(_arg3.y), _arg3.z).calculateMultiply(_local4, Matrix3D.rotationMatrix(_arg1.x, _arg1.y, _arg1.z, _arg2)); _local4.calculateMultiply(_local4, Matrix3D.translationMatrix(-(_arg3.x), _arg3.y, -(_arg3.z))); return (_local4); } public static function multiplyVector(_arg1:Matrix3D, _arg2:Number3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = _arg2.x; _local4 = _arg2.y; _local5 = _arg2.z; _arg2.x = ((((_local3 * _arg1.n11) + (_local4 * _arg1.n12)) + (_local5 * _arg1.n13)) + _arg1.n14); _arg2.y = ((((_local3 * _arg1.n21) + (_local4 * _arg1.n22)) + (_local5 * _arg1.n23)) + _arg1.n24); _arg2.z = ((((_local3 * _arg1.n31) + (_local4 * _arg1.n32)) + (_local5 * _arg1.n33)) + _arg1.n34); } public static function multiplyVector4x4(_arg1:Matrix3D, _arg2:Number3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local3 = _arg2.x; _local4 = _arg2.y; _local5 = _arg2.z; _local6 = (1 / ((((_local3 * _arg1.n41) + (_local4 * _arg1.n42)) + (_local5 * _arg1.n43)) + _arg1.n44)); _arg2.x = ((((_local3 * _arg1.n11) + (_local4 * _arg1.n12)) + (_local5 * _arg1.n13)) + _arg1.n14); _arg2.y = ((((_local3 * _arg1.n21) + (_local4 * _arg1.n22)) + (_local5 * _arg1.n23)) + _arg1.n24); _arg2.z = ((((_local3 * _arg1.n31) + (_local4 * _arg1.n32)) + (_local5 * _arg1.n33)) + _arg1.n34); _arg2.x = (_arg2.x * _local6); _arg2.y = (_arg2.y * _local6); _arg2.z = (_arg2.z * _local6); } public static function multiply3x3(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ var _local3:Matrix3D; _local3 = new (Matrix3D); _local3.calculateMultiply3x3(_arg1, _arg2); return (_local3); } public static function normalizeQuaternion(_arg1:Object):Object{ var _local2:Number; _local2 = magnitudeQuaternion(_arg1); _arg1.x = (_arg1.x / _local2); _arg1.y = (_arg1.y / _local2); _arg1.z = (_arg1.z / _local2); _arg1.w = (_arg1.w / _local2); return (_arg1); } public static function multiplyVector3x3(_arg1:Matrix3D, _arg2:Number3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = _arg2.x; _local4 = _arg2.y; _local5 = _arg2.z; _arg2.x = (((_local3 * _arg1.n11) + (_local4 * _arg1.n12)) + (_local5 * _arg1.n13)); _arg2.y = (((_local3 * _arg1.n21) + (_local4 * _arg1.n22)) + (_local5 * _arg1.n23)); _arg2.z = (((_local3 * _arg1.n31) + (_local4 * _arg1.n32)) + (_local5 * _arg1.n33)); } public static function axis2quaternion(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Object{ var _local5:Number; var _local6:Number; var _local7:Object; _local5 = Math.sin((_arg4 / 2)); _local6 = Math.cos((_arg4 / 2)); _local7 = new Object(); _local7.x = (_arg1 * _local5); _local7.y = (_arg2 * _local5); _local7.z = (_arg3 * _local5); _local7.w = _local6; return (normalizeQuaternion(_local7)); } public static function translationMatrix(_arg1:Number, _arg2:Number, _arg3:Number):Matrix3D{ var _local4:Matrix3D; _local4 = IDENTITY; _local4.n14 = _arg1; _local4.n24 = _arg2; _local4.n34 = _arg3; return (_local4); } public static function magnitudeQuaternion(_arg1:Object):Number{ return (Math.sqrt(((((_arg1.w * _arg1.w) + (_arg1.x * _arg1.x)) + (_arg1.y * _arg1.y)) + (_arg1.z * _arg1.z)))); } public static function rotationX(_arg1:Number):Matrix3D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; _local2 = IDENTITY; _local3 = Math.cos(_arg1); _local4 = Math.sin(_arg1); _local2.n22 = _local3; _local2.n23 = -(_local4); _local2.n32 = _local4; _local2.n33 = _local3; return (_local2); } public static function rotationY(_arg1:Number):Matrix3D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; _local2 = IDENTITY; _local3 = Math.cos(_arg1); _local4 = Math.sin(_arg1); _local2.n11 = _local3; _local2.n13 = -(_local4); _local2.n31 = _local4; _local2.n33 = _local3; return (_local2); } public static function rotationZ(_arg1:Number):Matrix3D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; _local2 = IDENTITY; _local3 = Math.cos(_arg1); _local4 = Math.sin(_arg1); _local2.n11 = _local3; _local2.n12 = -(_local4); _local2.n21 = _local4; _local2.n22 = _local3; return (_local2); } public static function clone(_arg1:Matrix3D):Matrix3D{ return (new Matrix3D([_arg1.n11, _arg1.n12, _arg1.n13, _arg1.n14, _arg1.n21, _arg1.n22, _arg1.n23, _arg1.n24, _arg1.n31, _arg1.n32, _arg1.n33, _arg1.n34])); } public static function rotationMatrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Matrix3D=null):Matrix3D{ var _local6:Matrix3D; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; if (!_arg5){ _local6 = IDENTITY; } else { _local6 = _arg5; }; _local7 = Math.cos(_arg4); _local8 = Math.sin(_arg4); _local9 = (1 - _local7); _local10 = ((_arg1 * _arg2) * _local9); _local11 = ((_arg2 * _arg3) * _local9); _local12 = ((_arg1 * _arg3) * _local9); _local13 = (_local8 * _arg3); _local14 = (_local8 * _arg2); _local15 = (_local8 * _arg1); _local6.n11 = (_local7 + ((_arg1 * _arg1) * _local9)); _local6.n12 = (-(_local13) + _local10); _local6.n13 = (_local14 + _local12); _local6.n21 = (_local13 + _local10); _local6.n22 = (_local7 + ((_arg2 * _arg2) * _local9)); _local6.n23 = (-(_local15) + _local11); _local6.n31 = (-(_local14) + _local12); _local6.n32 = (_local15 + _local11); _local6.n33 = (_local7 + ((_arg3 * _arg3) * _local9)); return (_local6); } public static function add(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ var _local3:Matrix3D; _local3 = new (Matrix3D); _local3.calculateAdd(_arg1, _arg2); return (_local3); } public static function multiply(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ var _local3:Matrix3D; _local3 = new (Matrix3D); _local3.calculateMultiply(_arg1, _arg2); return (_local3); } public static function euler2quaternion(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Quaternion=null):Quaternion{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Quaternion; _local5 = Math.sin((_arg1 * 0.5)); _local6 = Math.cos((_arg1 * 0.5)); _local7 = Math.sin((_arg2 * 0.5)); _local8 = Math.cos((_arg2 * 0.5)); _local9 = Math.sin((_arg3 * 0.5)); _local10 = Math.cos((_arg3 * 0.5)); _local11 = (_local6 * _local8); _local12 = (_local5 * _local7); if (!_arg4){ _local13 = new Quaternion(); } else { _local13 = _arg4; }; _local13.x = ((_local9 * _local11) - (_local10 * _local12)); _local13.y = (((_local10 * _local5) * _local8) + ((_local9 * _local6) * _local7)); _local13.z = (((_local10 * _local6) * _local7) - ((_local9 * _local5) * _local8)); _local13.w = ((_local10 * _local11) + (_local9 * _local12)); return (_local13); } public static function quaternion2matrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Matrix3D=null):Matrix3D{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Matrix3D; _local6 = (_arg1 * _arg1); _local7 = (_arg1 * _arg2); _local8 = (_arg1 * _arg3); _local9 = (_arg1 * _arg4); _local10 = (_arg2 * _arg2); _local11 = (_arg2 * _arg3); _local12 = (_arg2 * _arg4); _local13 = (_arg3 * _arg3); _local14 = (_arg3 * _arg4); if (!_arg5){ _local15 = IDENTITY; } else { _local15 = _arg5; }; _local15.n11 = (1 - (2 * (_local10 + _local13))); _local15.n12 = (2 * (_local7 - _local14)); _local15.n13 = (2 * (_local8 + _local12)); _local15.n21 = (2 * (_local7 + _local14)); _local15.n22 = (1 - (2 * (_local6 + _local13))); _local15.n23 = (2 * (_local11 - _local9)); _local15.n31 = (2 * (_local8 - _local12)); _local15.n32 = (2 * (_local11 + _local9)); _local15.n33 = (1 - (2 * (_local6 + _local10))); return (_local15); } public static function inverse(_arg1:Matrix3D):Matrix3D{ var _local2:Matrix3D; _local2 = new (Matrix3D); _local2.calculateInverse(_arg1); return (_local2); } public static function euler2matrix(_arg1:Number3D):Matrix3D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; temp.reset(); _local2 = temp; _local2 = temp; _local3 = (_arg1.x * toRADIANS); _local4 = (_arg1.y * toRADIANS); _local5 = (_arg1.z * toRADIANS); _local6 = Math.cos(_local3); _local7 = Math.sin(_local3); _local8 = Math.cos(_local4); _local9 = Math.sin(_local4); _local10 = Math.cos(_local5); _local11 = Math.sin(_local5); _local12 = (_local6 * _local9); _local13 = (_local7 * _local9); _local2.n11 = (_local8 * _local10); _local2.n12 = (-(_local8) * _local11); _local2.n13 = _local9; _local2.n21 = ((_local13 * _local10) + (_local6 * _local11)); _local2.n22 = ((-(_local13) * _local11) + (_local6 * _local10)); _local2.n23 = (-(_local7) * _local8); _local2.n31 = ((-(_local12) * _local10) + (_local7 * _local11)); _local2.n32 = ((_local12 * _local11) + (_local7 * _local10)); _local2.n33 = (_local6 * _local8); return (_local2); } public static function scaleMatrix(_arg1:Number, _arg2:Number, _arg3:Number):Matrix3D{ var _local4:Matrix3D; _local4 = IDENTITY; _local4.n11 = _arg1; _local4.n22 = _arg2; _local4.n33 = _arg3; return (_local4); } public static function rotateAxis(_arg1:Matrix3D, _arg2:Number3D):void{ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = _arg2.x; _local4 = _arg2.y; _local5 = _arg2.z; _arg2.x = (((_local3 * _arg1.n11) + (_local4 * _arg1.n12)) + (_local5 * _arg1.n13)); _arg2.y = (((_local3 * _arg1.n21) + (_local4 * _arg1.n22)) + (_local5 * _arg1.n23)); _arg2.z = (((_local3 * _arg1.n31) + (_local4 * _arg1.n32)) + (_local5 * _arg1.n33)); _arg2.normalize(); } public static function matrix2euler(_arg1:Matrix3D, _arg2:Number3D=null):Number3D{ var _local3:Matrix3D; var _local4:Matrix3D; var _local5:Matrix3D; var _local6:Number; if (!_arg2){ _arg2 = Number3D.ZERO; }; n3Di.reset(_arg1.n11, _arg1.n21, _arg1.n31); n3Dj.reset(_arg1.n12, _arg1.n22, _arg1.n32); n3Dk.reset(_arg1.n13, _arg1.n23, _arg1.n33); n3Di.normalize(); n3Dj.normalize(); n3Dk.normalize(); temp.reset([n3Di.x, n3Dj.x, n3Dk.x, 0, n3Di.y, n3Dj.y, n3Dk.y, 0, n3Di.z, n3Dj.z, n3Dk.z, 0]); _local3 = temp; _arg2.x = Math.atan2(_local3.n23, _local3.n33); _local4 = Matrix3D.rotationX(-(_arg2.x)); _local5 = Matrix3D.multiply(_local4, _local3); _local6 = Math.sqrt(((_local5.n11 * _local5.n11) + (_local5.n21 * _local5.n21))); _arg2.y = Math.atan2(-(_local5.n31), _local6); _arg2.z = Math.atan2(-(_local5.n12), _local5.n11); if (_arg2.x == Math.PI){ if (_arg2.y > 0){ _arg2.y = (_arg2.y - Math.PI); } else { _arg2.y = (_arg2.y + Math.PI); }; _arg2.x = 0; _arg2.z = (_arg2.z + Math.PI); }; _arg2.x = (_arg2.x * toDEGREES); _arg2.y = (_arg2.y * toDEGREES); _arg2.z = (_arg2.z * toDEGREES); return (_arg2); } public static function multiplyQuaternion(_arg1:Object, _arg2:Object):Object{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Object; _local3 = _arg1.x; _local4 = _arg1.y; _local5 = _arg1.z; _local6 = _arg1.w; _local7 = _arg2.x; _local8 = _arg2.y; _local9 = _arg2.z; _local10 = _arg2.w; _local11 = new Object(); _local11.x = ((((_local6 * _local7) + (_local3 * _local10)) + (_local4 * _local9)) - (_local5 * _local8)); _local11.y = ((((_local6 * _local8) + (_local4 * _local10)) + (_local5 * _local7)) - (_local3 * _local9)); _local11.z = ((((_local6 * _local9) + (_local5 * _local10)) + (_local3 * _local8)) - (_local4 * _local7)); _local11.w = ((((_local6 * _local10) - (_local3 * _local7)) - (_local4 * _local8)) - (_local5 * _local9)); return (_local11); } public static function get IDENTITY():Matrix3D{ return (new Matrix3D([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1])); } } }//package org.papervision3d.core.math
Section 41
//Number3D (org.papervision3d.core.math.Number3D) package org.papervision3d.core.math { import org.papervision3d.*; public class Number3D { public var z:Number; public var x:Number; public var y:Number; public static var toDEGREES:Number = 57.2957795130823; private static var temp:Number3D = Number3D.ZERO; public static var toRADIANS:Number = 0.0174532925199433; public function Number3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } public function normalize():void{ var _local1:Number; _local1 = this.modulo; if (((!((_local1 == 0))) && (!((_local1 == 1))))){ this.x = (this.x / _local1); this.y = (this.y / _local1); this.z = (this.z / _local1); }; } public function copyTo(_arg1:Number3D):void{ _arg1.x = x; _arg1.y = y; _arg1.z = z; } public function get moduloSquared():Number{ return ((((this.x * this.x) + (this.y * this.y)) + (this.z * this.z))); } public function reset(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):void{ x = _arg1; y = _arg2; z = _arg3; } public function isModuloGreaterThan(_arg1:Number):Boolean{ return ((moduloSquared > (_arg1 * _arg1))); } public function rotateX(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (Papervision3D.useDEGREES){ _arg1 = (_arg1 * toRADIANS); }; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); temp.copyFrom(this); this.y = ((temp.y * _local2) - (temp.z * _local3)); this.z = ((temp.y * _local3) + (temp.z * _local2)); } public function rotateY(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (Papervision3D.useDEGREES){ _arg1 = (_arg1 * toRADIANS); }; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); temp.copyFrom(this); this.x = ((temp.x * _local2) + (temp.z * _local3)); this.z = ((temp.x * -(_local3)) + (temp.z * _local2)); } public function rotateZ(_arg1:Number):void{ var _local2:Number; var _local3:Number; if (Papervision3D.useDEGREES){ _arg1 = (_arg1 * toRADIANS); }; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); temp.copyFrom(this); this.x = ((temp.x * _local2) - (temp.y * _local3)); this.y = ((temp.x * _local3) + (temp.y * _local2)); } public function clone():Number3D{ return (new Number3D(this.x, this.y, this.z)); } public function plusEq(_arg1:Number3D):void{ x = (x + _arg1.x); y = (y + _arg1.y); z = (z + _arg1.z); } public function toString():String{ return (((((("x:" + (Math.round((x * 100)) / 100)) + " y:") + (Math.round((y * 100)) / 100)) + " z:") + (Math.round((z * 100)) / 100))); } public function isModuloEqualTo(_arg1:Number):Boolean{ return ((moduloSquared == (_arg1 * _arg1))); } public function multiplyEq(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); z = (z * _arg1); } public function get modulo():Number{ return (Math.sqrt((((this.x * this.x) + (this.y * this.y)) + (this.z * this.z)))); } public function isModuloLessThan(_arg1:Number):Boolean{ return ((moduloSquared < (_arg1 * _arg1))); } public function minusEq(_arg1:Number3D):void{ x = (x - _arg1.x); y = (y - _arg1.y); z = (z - _arg1.z); } public function copyFrom(_arg1:Number3D):void{ x = _arg1.x; y = _arg1.y; z = _arg1.z; } public static function sub(_arg1:Number3D, _arg2:Number3D):Number3D{ return (new Number3D((_arg1.x - _arg2.x), (_arg1.y - _arg2.y), (_arg1.z - _arg2.z))); } public static function add(_arg1:Number3D, _arg2:Number3D):Number3D{ return (new Number3D((_arg1.x + _arg2.x), (_arg1.y + _arg2.y), (_arg1.z + _arg2.z))); } public static function cross(_arg1:Number3D, _arg2:Number3D, _arg3:Number3D=null):Number3D{ if (!_arg3){ _arg3 = ZERO; }; _arg3.reset(((_arg2.y * _arg1.z) - (_arg2.z * _arg1.y)), ((_arg2.z * _arg1.x) - (_arg2.x * _arg1.z)), ((_arg2.x * _arg1.y) - (_arg2.y * _arg1.x))); return (_arg3); } public static function dot(_arg1:Number3D, _arg2:Number3D):Number{ return ((((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y)) + (_arg2.z * _arg1.z))); } public static function get ZERO():Number3D{ return (new Number3D(0, 0, 0)); } } }//package org.papervision3d.core.math
Section 42
//NumberUV (org.papervision3d.core.math.NumberUV) package org.papervision3d.core.math { public class NumberUV { public var u:Number; public var v:Number; public function NumberUV(_arg1:Number=0, _arg2:Number=0){ this.u = _arg1; this.v = _arg2; } public function toString():String{ return (((("u:" + u) + " v:") + v)); } public function clone():NumberUV{ return (new NumberUV(this.u, this.v)); } public static function get ZERO():NumberUV{ return (new NumberUV(0, 0)); } } }//package org.papervision3d.core.math
Section 43
//Quaternion (org.papervision3d.core.math.Quaternion) package org.papervision3d.core.math { public class Quaternion { private var _matrix:Matrix3D; public var w:Number; public var x:Number; public var y:Number; public var z:Number; public static const EPSILON:Number = 1E-6; public static const DEGTORAD:Number = 0.0174532925199433; public static const RADTODEG:Number = 57.2957795130823; public function Quaternion(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=1):void{ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.w = _arg4; _matrix = Matrix3D.IDENTITY; } public function normalize():void{ var _local1:Number; var _local2:Number; _local1 = this.modulo; if (Math.abs(_local1) < EPSILON){ x = (y = (z = 0)); w = 1; } else { _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); z = (z * _local2); w = (w * _local2); }; } public function get modulo():Number{ return (Math.sqrt(((((x * x) + (y * y)) + (z * z)) + (w * w)))); } public function toMatrix():Matrix3D{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; _local1 = (x * x); _local2 = (x * y); _local3 = (x * z); _local4 = (x * w); _local5 = (y * y); _local6 = (y * z); _local7 = (y * w); _local8 = (z * z); _local9 = (z * w); _matrix.n11 = (1 - (2 * (_local5 + _local8))); _matrix.n12 = (2 * (_local2 - _local9)); _matrix.n13 = (2 * (_local3 + _local7)); _matrix.n21 = (2 * (_local2 + _local9)); _matrix.n22 = (1 - (2 * (_local1 + _local8))); _matrix.n23 = (2 * (_local6 - _local4)); _matrix.n31 = (2 * (_local3 - _local7)); _matrix.n32 = (2 * (_local6 + _local4)); _matrix.n33 = (1 - (2 * (_local1 + _local5))); return (_matrix); } public function mult(_arg1:Quaternion):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = this.w; _local3 = this.x; _local4 = this.y; _local5 = this.z; x = ((((_local2 * _arg1.x) + (_local3 * _arg1.w)) + (_local4 * _arg1.z)) - (_local5 * _arg1.y)); y = ((((_local2 * _arg1.y) - (_local3 * _arg1.z)) + (_local4 * _arg1.w)) + (_local5 * _arg1.x)); z = ((((_local2 * _arg1.z) + (_local3 * _arg1.y)) - (_local4 * _arg1.x)) + (_local5 * _arg1.w)); w = ((((_local2 * _arg1.w) - (_local3 * _arg1.x)) - (_local4 * _arg1.y)) - (_local5 * _arg1.z)); } public static function createFromEuler(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Boolean=false):Quaternion{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Quaternion; if (_arg4){ _arg1 = (_arg1 * DEGTORAD); _arg2 = (_arg2 * DEGTORAD); _arg3 = (_arg3 * DEGTORAD); }; _local5 = Math.sin((_arg1 * 0.5)); _local6 = Math.cos((_arg1 * 0.5)); _local7 = Math.sin((_arg2 * 0.5)); _local8 = Math.cos((_arg2 * 0.5)); _local9 = Math.sin((_arg3 * 0.5)); _local10 = Math.cos((_arg3 * 0.5)); _local11 = (_local6 * _local8); _local12 = (_local5 * _local7); _local13 = new (Quaternion); _local13.x = ((_local9 * _local11) - (_local10 * _local12)); _local13.y = (((_local10 * _local5) * _local8) + ((_local9 * _local6) * _local7)); _local13.z = (((_local10 * _local6) * _local7) - ((_local9 * _local5) * _local8)); _local13.w = ((_local10 * _local11) + (_local9 * _local12)); return (_local13); } public static function createFromMatrix(_arg1:Matrix3D):Quaternion{ var _local2:Quaternion; var _local3:Number; var _local4:Array; var _local5:int; var _local6:int; var _local7:int; var _local8:Number; var _local9:Array; var _local10:Array; _local2 = new (Quaternion); _local4 = new Array(4); _local8 = ((_arg1.n11 + _arg1.n22) + _arg1.n33); if (_local8 > 0){ _local3 = Math.sqrt((_local8 + 1)); _local2.w = (_local3 / 2); _local3 = (0.5 / _local3); _local2.x = ((_arg1.n32 - _arg1.n23) * _local3); _local2.y = ((_arg1.n13 - _arg1.n31) * _local3); _local2.z = ((_arg1.n21 - _arg1.n12) * _local3); } else { _local9 = [1, 2, 0]; _local10 = [[_arg1.n11, _arg1.n12, _arg1.n13, _arg1.n14], [_arg1.n21, _arg1.n22, _arg1.n23, _arg1.n24], [_arg1.n31, _arg1.n32, _arg1.n33, _arg1.n34]]; _local5 = 0; if (_local10[1][1] > _local10[0][0]){ _local5 = 1; }; if (_local10[2][2] > _local10[_local5][_local5]){ _local5 = 2; }; _local6 = _local9[_local5]; _local7 = _local9[_local6]; _local3 = Math.sqrt(((_local10[_local5][_local5] - (_local10[_local6][_local6] + _local10[_local7][_local7])) + 1)); _local4[_local5] = (_local3 * 0.5); if (_local3 != 0){ _local3 = (0.5 / _local3); }; _local4[3] = ((_local10[_local7][_local6] - _local10[_local6][_local7]) * _local3); _local4[_local6] = ((_local10[_local6][_local5] + _local10[_local5][_local6]) * _local3); _local4[_local7] = ((_local10[_local7][_local5] + _local10[_local5][_local7]) * _local3); _local2.x = _local4[0]; _local2.y = _local4[1]; _local2.z = _local4[2]; _local2.w = _local4[3]; }; return (_local2); } public static function dot(_arg1:Quaternion, _arg2:Quaternion):Number{ return (((((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y)) + (_arg1.z * _arg2.z)) + (_arg1.w * _arg2.w))); } public static function multiply(_arg1:Quaternion, _arg2:Quaternion):Quaternion{ var _local3:Quaternion; _local3 = new (Quaternion); _local3.x = ((((_arg1.w * _arg2.x) + (_arg1.x * _arg2.w)) + (_arg1.y * _arg2.z)) - (_arg1.z * _arg2.y)); _local3.y = ((((_arg1.w * _arg2.y) - (_arg1.x * _arg2.z)) + (_arg1.y * _arg2.w)) + (_arg1.z * _arg2.x)); _local3.z = ((((_arg1.w * _arg2.z) + (_arg1.x * _arg2.y)) - (_arg1.y * _arg2.x)) + (_arg1.z * _arg2.w)); _local3.w = ((((_arg1.w * _arg2.w) - (_arg1.x * _arg2.x)) - (_arg1.y * _arg2.y)) - (_arg1.z * _arg2.z)); return (_local3); } public static function createFromAxisAngle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Quaternion{ var _local5:Number; var _local6:Number; var _local7:Quaternion; _local5 = Math.sin((_arg4 / 2)); _local6 = Math.cos((_arg4 / 2)); _local7 = new (Quaternion); _local7.x = (_arg1 * _local5); _local7.y = (_arg2 * _local5); _local7.z = (_arg3 * _local5); _local7.w = _local6; _local7.normalize(); return (_local7); } public static function slerp(_arg1:Quaternion, _arg2:Quaternion, _arg3:Number):Quaternion{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local6 = ((((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y)) + (_arg1.z * _arg2.z)) + (_arg1.w * _arg2.w)); if (_local6 < 0){ _local6 = -(_local6); }; if ((1 - _local6) > EPSILON){ _local7 = Math.acos(_local6); _local8 = Math.sin(_local7); _local4 = (Math.sin(((1 - _arg3) * _local7)) / _local8); _local5 = (Math.sin((_arg3 * _local7)) / _local8); } else { _local4 = (1 - _arg3); _local5 = _arg3; }; return (new Quaternion(((_local4 * _arg1.x) + (_local5 * _arg2.x)), ((_local4 * _arg1.y) + (_local5 * _arg2.y)), ((_local4 * _arg1.z) + (_local5 * _arg2.z)), ((_local4 * _arg1.w) + (_local5 * _arg2.w)))); } public static function createFromOrthoMatrix(_arg1:Matrix3D):Quaternion{ var _local2:Quaternion; _local2 = new (Quaternion); _local2.w = (Math.sqrt(Math.max(0, (((1 + _arg1.n11) + _arg1.n22) + _arg1.n33))) / 2); _local2.x = (Math.sqrt(Math.max(0, (((1 + _arg1.n11) - _arg1.n22) - _arg1.n33))) / 2); _local2.y = (Math.sqrt(Math.max(0, (((1 - _arg1.n11) + _arg1.n22) - _arg1.n33))) / 2); _local2.z = (Math.sqrt(Math.max(0, (((1 - _arg1.n11) - _arg1.n22) + _arg1.n33))) / 2); _local2.x = (((_arg1.n32 - _arg1.n23) < 0)) ? ((_local2.x < 0)) ? _local2.x : -(_local2.x) : ((_local2.x < 0)) ? -(_local2.x) : _local2.x; _local2.y = (((_arg1.n13 - _arg1.n31) < 0)) ? ((_local2.y < 0)) ? _local2.y : -(_local2.y) : ((_local2.y < 0)) ? -(_local2.y) : _local2.y; _local2.z = (((_arg1.n21 - _arg1.n12) < 0)) ? ((_local2.z < 0)) ? _local2.z : -(_local2.z) : ((_local2.z < 0)) ? -(_local2.z) : _local2.z; return (_local2); } public static function conjugate(_arg1:Quaternion):Quaternion{ var _local2:Quaternion; _local2 = new (Quaternion); _local2.x = -(_arg1.x); _local2.y = -(_arg1.y); _local2.z = -(_arg1.z); _local2.w = _arg1.w; return (_local2); } public static function slerpOld(_arg1:Quaternion, _arg2:Quaternion, _arg3:Number):Quaternion{ var _local4:Quaternion; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; _local4 = new (Quaternion); _local5 = ((((_arg1.w * _arg2.w) + (_arg1.x * _arg2.x)) + (_arg1.y * _arg2.y)) + (_arg1.z * _arg2.z)); if (Math.abs(_local5) >= 1){ _local4.w = _arg1.w; _local4.x = _arg1.x; _local4.y = _arg1.y; _local4.z = _arg1.z; return (_local4); }; _local6 = Math.acos(_local5); _local7 = Math.sqrt((1 - (_local5 * _local5))); if (Math.abs(_local7) < 0.001){ _local4.w = ((_arg1.w * 0.5) + (_arg2.w * 0.5)); _local4.x = ((_arg1.x * 0.5) + (_arg2.x * 0.5)); _local4.y = ((_arg1.y * 0.5) + (_arg2.y * 0.5)); _local4.z = ((_arg1.z * 0.5) + (_arg2.z * 0.5)); return (_local4); }; _local8 = (Math.sin(((1 - _arg3) * _local6)) / _local7); _local9 = (Math.sin((_arg3 * _local6)) / _local7); _local4.w = ((_arg1.w * _local8) + (_arg2.w * _local9)); _local4.x = ((_arg1.x * _local8) + (_arg2.x * _local9)); _local4.y = ((_arg1.y * _local8) + (_arg2.y * _local9)); _local4.z = ((_arg1.z * _local8) + (_arg2.z * _local9)); return (_local4); } } }//package org.papervision3d.core.math
Section 44
//pv3dview (org.papervision3d.core.ns.pv3dview) package org.papervision3d.core.ns { public namespace pv3dview; }//package org.papervision3d.core.ns
Section 45
//CameraObject3D (org.papervision3d.core.proto.CameraObject3D) package org.papervision3d.core.proto { import flash.geom.*; import org.papervision3d.core.math.*; import org.papervision3d.objects.*; public class CameraObject3D extends DisplayObject3D { public var eye:Matrix3D; public var sort:Boolean; public var viewport:Rectangle; public var zoom:Number; public var focus:Number; public static const TYPE:String = "ABSTRACT"; public static var DEFAULT_POS:Number3D = new Number3D(0, 0, -1000); private static var _flipY:Matrix3D = Matrix3D.scaleMatrix(1, -1, 1); public function CameraObject3D(_arg1:Number=3, _arg2:Number=500, _arg3:Object=null){ this.x = (_arg3) ? ((_arg3.x) || (DEFAULT_POS.x)) : DEFAULT_POS.x; this.y = (_arg3) ? ((_arg3.y) || (DEFAULT_POS.y)) : DEFAULT_POS.y; this.z = (_arg3) ? ((_arg3.z) || (DEFAULT_POS.z)) : DEFAULT_POS.z; this.zoom = _arg1; this.focus = _arg2; this.eye = Matrix3D.IDENTITY; this.sort = (_arg3) ? !((_arg3.sort == false)) : true; } public function transformView(_arg1:Matrix3D=null):void{ eye.calculateMultiply(((_arg1) || (this.transform)), _flipY); eye.invert(); } public function pan(_arg1:Number):void{ super.yaw(_arg1); } public function tilt(_arg1:Number):void{ super.pitch(_arg1); } } }//package org.papervision3d.core.proto
Section 46
//DisplayObjectContainer3D (org.papervision3d.core.proto.DisplayObjectContainer3D) package org.papervision3d.core.proto { import org.papervision3d.objects.*; import flash.events.*; import flash.utils.*; public class DisplayObjectContainer3D extends EventDispatcher { private var _childrenTotal:int; public var root:DisplayObjectContainer3D; protected var _children:Dictionary; protected var _childrenByName:Object; public function DisplayObjectContainer3D():void{ this._children = new Dictionary(false); this._childrenByName = new Dictionary(true); this._childrenTotal = 0; } public function addChild(_arg1:DisplayObject3D, _arg2:String=null):DisplayObject3D{ _arg2 = ((((_arg2) || (_arg1.name))) || (String(_arg1.id))); this._children[_arg1] = _arg2; this._childrenByName[_arg2] = _arg1; this._childrenTotal++; _arg1.parent = this; _arg1.root = this.root; return (_arg1); } private function findChildByName(_arg1:String, _arg2:DisplayObject3D=null):DisplayObject3D{ var _local3:DisplayObject3D; var _local4:DisplayObject3D; _arg2 = ((_arg2) || (DisplayObject3D(this))); if (!_arg2){ return (null); }; if (_arg2.name == _arg1){ return (_arg2); }; for each (_local3 in _arg2.children) { _local4 = findChildByName(_arg1, _local3); if (_local4){ return (_local4); }; }; return (null); } public function getChildByName(_arg1:String, _arg2:Boolean=false):DisplayObject3D{ if (_arg2){ return (findChildByName(_arg1)); }; return (this._childrenByName[_arg1]); } public function get numChildren():int{ return (this._childrenTotal); } public function addChildren(_arg1:DisplayObject3D):DisplayObjectContainer3D{ var _local2:DisplayObject3D; for each (_local2 in _arg1.children) { _arg1.removeChild(_local2); this.addChild(_local2); }; return (this); } public function removeChildByName(_arg1:String):DisplayObject3D{ return (removeChild(getChildByName(_arg1))); } override public function toString():String{ return (childrenList()); } public function removeChild(_arg1:DisplayObject3D):DisplayObject3D{ if (_arg1){ delete this._childrenByName[this._children[_arg1]]; delete this._children[_arg1]; _arg1.parent = null; _arg1.root = null; return (_arg1); }; return (null); } public function childrenList():String{ var _local1:String; var _local2:String; _local1 = ""; for (_local2 in this._children) { _local1 = (_local1 + (_local2 + "\n")); }; return (_local1); } public function get children():Object{ return (this._childrenByName); } } }//package org.papervision3d.core.proto
Section 47
//GeometryObject3D (org.papervision3d.core.proto.GeometryObject3D) package org.papervision3d.core.proto { import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.objects.*; import flash.events.*; import flash.utils.*; public class GeometryObject3D extends EventDispatcher { protected var _boundingSphereDirty:Boolean;// = true public var dirty:Boolean; protected var _aabbDirty:Boolean;// = true public var _ready:Boolean;// = false protected var _boundingSphere:BoundingSphere; public var faces:Array; private var _numInstances:uint;// = 0 public var vertices:Array; protected var _aabb:AxisAlignedBoundingBox; public function GeometryObject3D(_arg1:Object=null):void{ _boundingSphereDirty = true; _aabbDirty = true; _numInstances = 0; _ready = false; super(); dirty = true; } public function transformVertices(_arg1:Matrix3D):void{ } private function createVertexNormals():void{ var _local1:Dictionary; var _local2:Triangle3D; var _local3:Vertex3D; _local1 = new Dictionary(true); for each (_local2 in faces) { _local2.v0.connectedFaces[_local2] = _local2; _local2.v1.connectedFaces[_local2] = _local2; _local2.v2.connectedFaces[_local2] = _local2; _local1[_local2.v0] = _local2.v0; _local1[_local2.v1] = _local2.v1; _local1[_local2.v2] = _local2.v2; }; for each (_local3 in _local1) { _local3.calculateNormal(); }; } public function get boundingSphere():BoundingSphere{ if (_boundingSphereDirty){ _boundingSphere = BoundingSphere.getFromVertices(vertices); _boundingSphereDirty = false; }; return (_boundingSphere); } public function transformUV(_arg1:MaterialObject3D):void{ var _local2:String; if (_arg1.bitmap){ for (_local2 in this.faces) { faces[_local2].transformUV(_arg1); }; }; } public function clone(_arg1:DisplayObject3D=null):GeometryObject3D{ var _local2:Dictionary; var _local3:GeometryObject3D; var _local4:int; var _local5:Vertex3D; var _local6:Triangle3D; var _local7:Vertex3D; var _local8:Vertex3D; var _local9:Vertex3D; _local2 = new Dictionary(); _local3 = new GeometryObject3D(); _local3.vertices = new Array(); _local3.faces = new Array(); _local4 = 0; while (_local4 < this.vertices.length) { _local5 = this.vertices[_local4]; _local2[_local5] = _local5.clone(); _local3.vertices.push(_local2[_local5]); _local4++; }; _local4 = 0; while (_local4 < this.faces.length) { _local6 = this.faces[_local4]; _local7 = _local2[_local6.v0]; _local8 = _local2[_local6.v1]; _local9 = _local2[_local6.v2]; _local3.faces.push(new Triangle3D(_arg1, [_local7, _local8, _local9], _local6.material, _local6.uv)); _local4++; }; return (_local3); } public function set ready(_arg1:Boolean):void{ if (_arg1){ createVertexNormals(); this.dirty = false; }; _ready = _arg1; } public function get ready():Boolean{ return (_ready); } public function get aabb():AxisAlignedBoundingBox{ if (_aabbDirty){ _aabb = AxisAlignedBoundingBox.createFromVertices(vertices); _aabbDirty = false; }; return (_aabb); } } }//package org.papervision3d.core.proto
Section 48
//LightObject3D (org.papervision3d.core.proto.LightObject3D) package org.papervision3d.core.proto { import org.papervision3d.core.math.*; import org.papervision3d.objects.*; import org.papervision3d.objects.primitives.*; import org.papervision3d.materials.*; public class LightObject3D extends DisplayObject3D { private var displaySphere:Sphere; public var lightMatrix:Matrix3D; public var flipped:Boolean; private var _showLight:Boolean; public function LightObject3D(_arg1:Boolean=false, _arg2:Boolean=false){ this.lightMatrix = Matrix3D.IDENTITY; this.showLight = _arg1; this.flipped = _arg2; } public function get showLight():Boolean{ return (_showLight); } public function set showLight(_arg1:Boolean):void{ if (_showLight){ removeChild(displaySphere); }; if (_arg1){ displaySphere = new Sphere(new WireframeMaterial(0xFFFF00), 10, 3, 2); addChild(displaySphere); }; _showLight = _arg1; } } }//package org.papervision3d.core.proto
Section 49
//MaterialObject3D (org.papervision3d.core.proto.MaterialObject3D) package org.papervision3d.core.proto { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.objects.*; import org.papervision3d.core.render.material.*; import flash.events.*; import org.papervision3d.core.render.draw.*; import flash.utils.*; import org.papervision3d.materials.*; public class MaterialObject3D extends EventDispatcher implements ITriangleDrawer { public var widthOffset:Number;// = 0 public var name:String; public var heightOffset:Number;// = 0 public var fillAlpha:Number;// = 0 public var fillColor:Number; public var id:Number; protected var objects:Dictionary; public var invisible:Boolean;// = false public var smooth:Boolean;// = false public var bitmap:BitmapData; public var lineColor:Number; public var lineAlpha:Number;// = 0 public var oneSide:Boolean;// = true public var lineThickness:Number;// = 1 public var interactive:Boolean;// = false public var opposite:Boolean;// = false public var maxU:Number; public var tiled:Boolean;// = false public var maxV:Number; public static var DEFAULT_COLOR:int = 0; public static var DEBUG_COLOR:int = 0xFF00FF; private static var _totalMaterialObjects:Number = 0; public function MaterialObject3D(){ smooth = false; tiled = false; lineColor = DEFAULT_COLOR; lineAlpha = 0; lineThickness = 1; fillColor = DEFAULT_COLOR; fillAlpha = 0; oneSide = true; invisible = false; opposite = false; widthOffset = 0; heightOffset = 0; interactive = false; super(); this.id = _totalMaterialObjects++; MaterialManager.registerMaterial(this); objects = new Dictionary(true); } public function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData, _arg4:BitmapData=null, _arg5:Matrix=null):void{ } public function get doubleSided():Boolean{ return (!(this.oneSide)); } public function unregisterObject(_arg1:DisplayObject3D):void{ if (((objects) && (!((objects[_arg1] == null))))){ delete objects[_arg1]; }; } public function set doubleSided(_arg1:Boolean):void{ this.oneSide = !(_arg1); } public function registerObject(_arg1:DisplayObject3D):void{ objects[_arg1] = _arg1; } public function updateBitmap():void{ } override public function toString():String{ return (((((("[MaterialObject3D] bitmap:" + this.bitmap) + " lineColor:") + this.lineColor) + " fillColor:") + fillColor)); } public function copy(_arg1:MaterialObject3D):void{ this.bitmap = _arg1.bitmap; this.smooth = _arg1.smooth; this.lineColor = _arg1.lineColor; this.lineAlpha = _arg1.lineAlpha; this.fillColor = _arg1.fillColor; this.fillAlpha = _arg1.fillAlpha; this.oneSide = _arg1.oneSide; this.opposite = _arg1.opposite; this.invisible = _arg1.invisible; this.name = _arg1.name; this.maxU = _arg1.maxU; this.maxV = _arg1.maxV; } public function destroy():void{ objects = null; bitmap = null; MaterialManager.unRegisterMaterial(this); } public function clone():MaterialObject3D{ var _local1:MaterialObject3D; _local1 = new MaterialObject3D(); _local1.copy(this); return (_local1); } public static function get DEFAULT():MaterialObject3D{ var _local1:MaterialObject3D; _local1 = new WireframeMaterial(); _local1.lineColor = (0xFFFFFF * Math.random()); _local1.lineAlpha = 1; _local1.fillColor = DEFAULT_COLOR; _local1.fillAlpha = 1; _local1.doubleSided = false; return (_local1); } public static function get DEBUG():MaterialObject3D{ var _local1:MaterialObject3D; _local1 = new (MaterialObject3D); _local1.lineColor = (0xFFFFFF * Math.random()); _local1.lineAlpha = 1; _local1.fillColor = DEBUG_COLOR; _local1.fillAlpha = 0.37; _local1.doubleSided = true; return (_local1); } } }//package org.papervision3d.core.proto
Section 50
//SceneObject3D (org.papervision3d.core.proto.SceneObject3D) package org.papervision3d.core.proto { import org.papervision3d.materials.utils.*; import org.papervision3d.objects.*; import org.papervision3d.*; public class SceneObject3D extends DisplayObjectContainer3D { public var objects:Array; public var materials:MaterialsList; public function SceneObject3D(){ this.objects = new Array(); this.materials = new MaterialsList(); Papervision3D.log((((((Papervision3D.NAME + " ") + Papervision3D.VERSION) + " (") + Papervision3D.DATE) + ")\n")); this.root = this; } override public function removeChild(_arg1:DisplayObject3D):DisplayObject3D{ var _local2:int; super.removeChild(_arg1); _local2 = 0; while (_local2 < this.objects.length) { if (this.objects[_local2] === _arg1){ this.objects.splice(_local2, 1); return (_arg1); }; _local2++; }; return (_arg1); } override public function addChild(_arg1:DisplayObject3D, _arg2:String=null):DisplayObject3D{ var _local3:DisplayObject3D; _local3 = super.addChild(_arg1, (_arg2) ? _arg2 : _arg1.name); _arg1.scene = this; this.objects.push(_local3); return (_local3); } } }//package org.papervision3d.core.proto
Section 51
//AbstractRenderListItem (org.papervision3d.core.render.command.AbstractRenderListItem) package org.papervision3d.core.render.command { import org.papervision3d.core.render.data.*; public class AbstractRenderListItem implements IRenderListItem { public var screenDepth:Number; public function render(_arg1:RenderSessionData):void{ } } }//package org.papervision3d.core.render.command
Section 52
//IRenderListItem (org.papervision3d.core.render.command.IRenderListItem) package org.papervision3d.core.render.command { import org.papervision3d.core.render.data.*; public interface IRenderListItem { function render(_arg1:RenderSessionData):void; } }//package org.papervision3d.core.render.command
Section 53
//RenderableListItem (org.papervision3d.core.render.command.RenderableListItem) package org.papervision3d.core.render.command { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.geom.*; public class RenderableListItem extends AbstractRenderListItem { public var renderableInstance:IRenderable; public var renderable:Class; public function hitTestPoint2D(_arg1:Point, _arg2:RenderHitData):RenderHitData{ return (_arg2); } } }//package org.papervision3d.core.render.command
Section 54
//RenderParticle (org.papervision3d.core.render.command.RenderParticle) package org.papervision3d.core.render.command { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.geom.*; import org.papervision3d.materials.special.*; public class RenderParticle extends RenderableListItem implements IRenderListItem { public var particle:Particle; public var renderMat:ParticleMaterial; public function RenderParticle(_arg1:Particle){ this.particle = _arg1; } override public function hitTestPoint2D(_arg1:Point, _arg2:RenderHitData):RenderHitData{ renderMat = particle.material; if (renderMat.interactive){ if (particle.renderRect.contains(_arg1.x, _arg1.y)){ _arg2.displayObject3D = particle.instance; _arg2.material = renderMat; _arg2.renderable = particle; _arg2.hasHit = true; _arg2.x = particle.x; _arg2.y = particle.y; _arg2.z = particle.z; _arg2.u = 0; _arg2.v = 0; return (_arg2); }; }; return (_arg2); } override public function render(_arg1:RenderSessionData):void{ particle.material.drawParticle(particle, _arg1.container.graphics, _arg1); } } }//package org.papervision3d.core.render.command
Section 55
//RenderTriangle (org.papervision3d.core.render.command.RenderTriangle) package org.papervision3d.core.render.command { import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.math.*; import org.papervision3d.core.render.draw.*; import org.papervision3d.materials.*; public class RenderTriangle extends RenderableListItem implements IRenderListItem { public var renderer:ITriangleDrawer; public var triangle:Triangle3D; private var position:Number3D; public var renderMat:MaterialObject3D; public var container:Sprite; public function RenderTriangle(_arg1:Triangle3D):void{ position = new Number3D(); super(); this.triangle = _arg1; renderableInstance = _arg1; renderable = Triangle3D; } override public function hitTestPoint2D(_arg1:Point, _arg2:RenderHitData):RenderHitData{ var _local3:Vertex3DInstance; var _local4:Vertex3DInstance; var _local5:Vertex3DInstance; var _local6:Vertex3DInstance; renderMat = triangle.material; if (!renderMat){ renderMat = triangle.instance.material; }; if (renderMat.interactive){ _local3 = new Vertex3DInstance(_arg1.x, _arg1.y); _local4 = triangle.v0.vertex3DInstance; _local5 = triangle.v1.vertex3DInstance; _local6 = triangle.v2.vertex3DInstance; if (sameSide(_local3, _local4, _local5, _local6)){ if (sameSide(_local3, _local5, _local4, _local6)){ if (sameSide(_local3, _local6, _local4, _local5)){ return (deepHitTest(triangle, _local3, _arg2)); }; }; }; }; return (_arg2); } public function sameSide(_arg1:Vertex3DInstance, _arg2:Vertex3DInstance, _arg3:Vertex3DInstance, _arg4:Vertex3DInstance):Boolean{ var _local5:Number; _local5 = (Vertex3DInstance.cross(Vertex3DInstance.sub(_arg4, _arg3), Vertex3DInstance.sub(_arg1, _arg3)) * Vertex3DInstance.cross(Vertex3DInstance.sub(_arg4, _arg3), Vertex3DInstance.sub(_arg2, _arg3))); return ((_local5 > 0)); } private function deepHitTest(_arg1:Triangle3D, _arg2:Vertex3DInstance, _arg3:RenderHitData):RenderHitData{ var _local4:Vertex3DInstance; var _local5:Vertex3DInstance; var _local6:Vertex3DInstance; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Array; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:BitmapData; var _local40:Number; var _local41:Number; _local4 = _arg1.v0.vertex3DInstance; _local5 = _arg1.v1.vertex3DInstance; _local6 = _arg1.v2.vertex3DInstance; _local7 = (_local6.x - _local4.x); _local8 = (_local6.y - _local4.y); _local9 = (_local5.x - _local4.x); _local10 = (_local5.y - _local4.y); _local11 = (_arg2.x - _local4.x); _local12 = (_arg2.y - _local4.y); _local13 = ((_local7 * _local7) + (_local8 * _local8)); _local14 = ((_local7 * _local9) + (_local8 * _local10)); _local15 = ((_local7 * _local11) + (_local8 * _local12)); _local16 = ((_local9 * _local9) + (_local10 * _local10)); _local17 = ((_local9 * _local11) + (_local10 * _local12)); _local18 = (1 / ((_local13 * _local16) - (_local14 * _local14))); _local19 = (((_local16 * _local15) - (_local14 * _local17)) * _local18); _local20 = (((_local13 * _local17) - (_local14 * _local15)) * _local18); _local21 = (_arg1.v2.x - _arg1.v0.x); _local22 = (_arg1.v2.y - _arg1.v0.y); _local23 = (_arg1.v2.z - _arg1.v0.z); _local24 = (_arg1.v1.x - _arg1.v0.x); _local25 = (_arg1.v1.y - _arg1.v0.y); _local26 = (_arg1.v1.z - _arg1.v0.z); _local27 = ((_arg1.v0.x + (_local21 * _local19)) + (_local24 * _local20)); _local28 = ((_arg1.v0.y + (_local22 * _local19)) + (_local25 * _local20)); _local29 = ((_arg1.v0.z + (_local23 * _local19)) + (_local26 * _local20)); _local30 = _arg1.uv; _local31 = _local30[0].u; _local32 = _local30[1].u; _local33 = _local30[2].u; _local34 = _local30[0].v; _local35 = _local30[1].v; _local36 = _local30[2].v; _local37 = ((((_local32 - _local31) * _local20) + ((_local33 - _local31) * _local19)) + _local31); _local38 = ((((_local35 - _local34) * _local20) + ((_local36 - _local34) * _local19)) + _local34); if (triangle.material){ renderMat = _arg1.material; } else { renderMat = _arg1.instance.material; }; _local39 = renderMat.bitmap; _local40 = 1; _local41 = 1; if (_local39){ _local40 = (BitmapMaterial.AUTO_MIP_MAPPING) ? renderMat.widthOffset : _local39.width; _local41 = (BitmapMaterial.AUTO_MIP_MAPPING) ? renderMat.heightOffset : _local39.height; }; _arg3.displayObject3D = _arg1.instance; _arg3.material = renderMat; _arg3.renderable = _arg1; _arg3.hasHit = true; position.x = _local27; position.y = _local28; position.z = _local29; Matrix3D.multiplyVector(_arg1.instance.world, position); _arg3.x = position.x; _arg3.y = position.y; _arg3.z = position.z; _arg3.u = (_local37 * _local40); _arg3.v = (_local41 - (_local38 * _local41)); return (_arg3); } override public function render(_arg1:RenderSessionData):void{ renderer.drawTriangle(triangle, _arg1.container.graphics, _arg1); } } }//package org.papervision3d.core.render.command
Section 56
//RenderHitData (org.papervision3d.core.render.data.RenderHitData) package org.papervision3d.core.render.data { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.objects.*; public class RenderHitData { public var y:Number; public var endTime:int;// = 0 public var displayObject3D:DisplayObject3D; public var startTime:int;// = 0 public var hasHit:Boolean;// = false public var material:MaterialObject3D; public var renderable:IRenderable; public var u:Number; public var v:Number; public var x:Number; public var z:Number; public function RenderHitData(){ startTime = 0; endTime = 0; hasHit = false; super(); } public function toString():String{ return (((displayObject3D + " ") + renderable)); } } }//package org.papervision3d.core.render.data
Section 57
//RenderSessionData (org.papervision3d.core.render.data.RenderSessionData) package org.papervision3d.core.render.data { import org.papervision3d.core.proto.*; import org.papervision3d.view.*; import flash.display.*; import org.papervision3d.core.culling.*; import org.papervision3d.core.render.*; public class RenderSessionData { public var renderer:IRenderEngine; public var particleCuller:IParticleCuller; public var viewPort:Viewport3D; public var triangleCuller:ITriangleCuller; public var container:Sprite; public var scene:SceneObject3D; public var camera:CameraObject3D; public var renderStatistics:RenderStatistics; public var sorted:Boolean; public function RenderSessionData():void{ this.renderStatistics = new RenderStatistics(); } } }//package org.papervision3d.core.render.data
Section 58
//RenderStatistics (org.papervision3d.core.render.data.RenderStatistics) package org.papervision3d.core.render.data { public class RenderStatistics { public var renderTime:int;// = 0 public var culledObjects:int;// = 0 public var shadedTriangles:int;// = 0 public var culledParticles:int;// = 0 public var culledTriangles:int;// = 0 public var triangles:int;// = 0 public var particles:int;// = 0 public var rendered:int;// = 0 public var projectionTime:int;// = 0 public var filteredObjects:int;// = 0 public var lines:int;// = 0 public function RenderStatistics(){ projectionTime = 0; renderTime = 0; rendered = 0; triangles = 0; culledTriangles = 0; particles = 0; culledParticles = 0; lines = 0; shadedTriangles = 0; filteredObjects = 0; culledObjects = 0; super(); } public function clear():void{ projectionTime = 0; renderTime = 0; rendered = 0; particles = 0; triangles = 0; culledTriangles = 0; culledParticles = 0; lines = 0; shadedTriangles = 0; filteredObjects = 0; culledObjects = 0; } public function toString():String{ return (new String((((((((((((((((((("ProjectionTime:" + projectionTime) + " RenderTime:") + renderTime) + " Particles:") + particles) + " CulledParticles :") + culledParticles) + " Triangles:") + triangles) + " ShadedTriangles :") + shadedTriangles) + " CulledTriangles:") + culledTriangles) + " FilteredObjects:") + filteredObjects) + " CulledObjects:") + culledObjects) + ""))); } } }//package org.papervision3d.core.render.data
Section 59
//IParticleDrawer (org.papervision3d.core.render.draw.IParticleDrawer) package org.papervision3d.core.render.draw { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; public interface IParticleDrawer { function updateRenderRect(_arg1:Particle):void; function drawParticle(_arg1:Particle, _arg2:Graphics, _arg3:RenderSessionData):void; } }//package org.papervision3d.core.render.draw
Section 60
//ITriangleDrawer (org.papervision3d.core.render.draw.ITriangleDrawer) package org.papervision3d.core.render.draw { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; public interface ITriangleDrawer { function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData, _arg4:BitmapData=null, _arg5:Matrix=null):void; } }//package org.papervision3d.core.render.draw
Section 61
//BasicRenderFilter (org.papervision3d.core.render.filter.BasicRenderFilter) package org.papervision3d.core.render.filter { public class BasicRenderFilter implements IRenderFilter { public function filter(_arg1:Array):int{ return (0); } } }//package org.papervision3d.core.render.filter
Section 62
//IRenderFilter (org.papervision3d.core.render.filter.IRenderFilter) package org.papervision3d.core.render.filter { public interface IRenderFilter { function filter(_arg1:Array):int; } }//package org.papervision3d.core.render.filter
Section 63
//IUpdateAfterMaterial (org.papervision3d.core.render.material.IUpdateAfterMaterial) package org.papervision3d.core.render.material { import org.papervision3d.core.render.data.*; public interface IUpdateAfterMaterial { function updateAfterRender(_arg1:RenderSessionData):void; } }//package org.papervision3d.core.render.material
Section 64
//IUpdateBeforeMaterial (org.papervision3d.core.render.material.IUpdateBeforeMaterial) package org.papervision3d.core.render.material { import org.papervision3d.core.render.data.*; public interface IUpdateBeforeMaterial { function updateBeforeRender(_arg1:RenderSessionData):void; } }//package org.papervision3d.core.render.material
Section 65
//MaterialManager (org.papervision3d.core.render.material.MaterialManager) package org.papervision3d.core.render.material { import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import flash.utils.*; public class MaterialManager { private var materials:Dictionary; private static var instance:MaterialManager; public function MaterialManager():void{ if (instance){ throw (new Error("Only 1 instance of materialmanager allowed")); }; init(); } private function init():void{ materials = new Dictionary(true); } private function _unRegisterMaterial(_arg1:MaterialObject3D):void{ delete materials[_arg1]; } public function updateMaterialsAfterRender(_arg1:RenderSessionData):void{ var _local2:IUpdateAfterMaterial; var _local3:MaterialObject3D; for each (_local3 in materials) { if ((_local3 is IUpdateAfterMaterial)){ _local2 = (_local3 as IUpdateAfterMaterial); _local2.updateAfterRender(_arg1); }; }; } private function _registerMaterial(_arg1:MaterialObject3D):void{ materials[_arg1] = _arg1; } public function updateMaterialsBeforeRender(_arg1:RenderSessionData):void{ var _local2:IUpdateBeforeMaterial; var _local3:MaterialObject3D; for each (_local3 in materials) { if ((_local3 is IUpdateBeforeMaterial)){ _local2 = (_local3 as IUpdateBeforeMaterial); _local2.updateBeforeRender(_arg1); }; }; } public static function getInstance():MaterialManager{ if (!instance){ instance = new (MaterialManager); }; return (instance); } public static function unRegisterMaterial(_arg1:MaterialObject3D):void{ getInstance()._unRegisterMaterial(_arg1); } public static function registerMaterial(_arg1:MaterialObject3D):void{ getInstance()._registerMaterial(_arg1); } } }//package org.papervision3d.core.render.material
Section 66
//BasicProjectionPipeline (org.papervision3d.core.render.project.BasicProjectionPipeline) package org.papervision3d.core.render.project { import org.papervision3d.core.render.data.*; import org.papervision3d.objects.*; import org.papervision3d.core.culling.*; public class BasicProjectionPipeline extends ProjectionPipeline { public function BasicProjectionPipeline(){ init(); } protected function init():void{ } protected function projectObject(_arg1:DisplayObject3D, _arg2:RenderSessionData):void{ _arg1.project(_arg2.camera, _arg2); } override public function project(_arg1:RenderSessionData):void{ var _local2:Array; var _local3:DisplayObject3D; var _local4:Number; _arg1.camera.transformView(); _local2 = _arg1.scene.objects; _local4 = _local2.length; if ((_arg1.camera is IObjectCuller)){ for each (_local3 in _local2) { if (_local3.visible){ if (_arg1.viewPort.viewportObjectFilter){ if (_arg1.viewPort.viewportObjectFilter.testObject(_local3)){ _local3.view.calculateMultiply4x4(_arg1.camera.eye, _local3.transform); projectObject(_local3, _arg1); } else { _arg1.renderStatistics.filteredObjects++; }; } else { _local3.view.calculateMultiply4x4(_arg1.camera.eye, _local3.transform); projectObject(_local3, _arg1); }; }; }; } else { for each (_local3 in _local2) { if (_local3.visible){ if (_arg1.viewPort.viewportObjectFilter){ if (_arg1.viewPort.viewportObjectFilter.testObject(_local3)){ _local3.view.calculateMultiply(_arg1.camera.eye, _local3.transform); projectObject(_local3, _arg1); } else { _arg1.renderStatistics.filteredObjects++; }; } else { _local3.view.calculateMultiply(_arg1.camera.eye, _local3.transform); projectObject(_local3, _arg1); }; }; }; }; } } }//package org.papervision3d.core.render.project
Section 67
//ProjectionPipeline (org.papervision3d.core.render.project.ProjectionPipeline) package org.papervision3d.core.render.project { import org.papervision3d.core.render.data.*; public class ProjectionPipeline { public function project(_arg1:RenderSessionData):void{ } } }//package org.papervision3d.core.render.project
Section 68
//BasicRenderSorter (org.papervision3d.core.render.sort.BasicRenderSorter) package org.papervision3d.core.render.sort { public class BasicRenderSorter implements IRenderSorter { public function sort(_arg1:Array):void{ _arg1.sortOn("screenDepth", Array.NUMERIC); } } }//package org.papervision3d.core.render.sort
Section 69
//IRenderSorter (org.papervision3d.core.render.sort.IRenderSorter) package org.papervision3d.core.render.sort { public interface IRenderSorter { function sort(_arg1:Array):void; } }//package org.papervision3d.core.render.sort
Section 70
//AbstractRenderEngine (org.papervision3d.core.render.AbstractRenderEngine) package org.papervision3d.core.render { import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.view.*; import org.papervision3d.core.render.command.*; import flash.events.*; public class AbstractRenderEngine extends EventDispatcher implements IRenderEngine { public function AbstractRenderEngine(_arg1:IEventDispatcher=null){ super(_arg1); } public function removeFromRenderList(_arg1:IRenderListItem):int{ return (0); } public function addToRenderList(_arg1:IRenderListItem):int{ return (0); } public function renderScene(_arg1:SceneObject3D, _arg2:CameraObject3D, _arg3:Viewport3D, _arg4:Boolean=true):RenderStatistics{ return (null); } } }//package org.papervision3d.core.render
Section 71
//IRenderEngine (org.papervision3d.core.render.IRenderEngine) package org.papervision3d.core.render { import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.view.*; import org.papervision3d.core.render.command.*; public interface IRenderEngine { function addToRenderList(_arg1:IRenderListItem):int; function removeFromRenderList(_arg1:IRenderListItem):int; function renderScene(_arg1:SceneObject3D, _arg2:CameraObject3D, _arg3:Viewport3D, _arg4:Boolean=true):RenderStatistics; } }//package org.papervision3d.core.render
Section 72
//IVirtualMouseEvent (org.papervision3d.core.utils.virtualmouse.IVirtualMouseEvent) package org.papervision3d.core.utils.virtualmouse { public interface IVirtualMouseEvent { } }//package org.papervision3d.core.utils.virtualmouse
Section 73
//VirtualMouse (org.papervision3d.core.utils.virtualmouse.VirtualMouse) package org.papervision3d.core.utils.virtualmouse { import flash.display.*; import flash.geom.*; import com.blitzagency.xray.logger.*; import flash.events.*; import flash.utils.*; import org.papervision3d.core.components.as3.utils.*; public class VirtualMouse extends EventDispatcher { private var _container:Sprite; private var lastDownTarget:DisplayObject; private var target:InteractiveObject; private var updateMouseDown:Boolean;// = false private var eventEvent:Class; private var _lastEvent:Event; private var mouseEventEvent:Class; private var location:Point; private var delta:int;// = 0 private var disabledEvents:Object; private var log:XrayLog; private var ignoredInstances:Dictionary; private var isLocked:Boolean;// = false private var lastWithinStage:Boolean;// = true private var lastLocation:Point; private var isDoubleClickEvent:Boolean;// = false private var lastMouseDown:Boolean;// = false private var altKey:Boolean;// = false private var _useNativeEvents:Boolean;// = false private var ctrlKey:Boolean;// = false private var shiftKey:Boolean;// = false private var _stage:Stage; public static const UPDATE:String = "update"; private static var _mouseIsDown:Boolean = false; public function VirtualMouse(_arg1:Stage=null, _arg2:Sprite=null, _arg3:Number=0, _arg4:Number=0){ altKey = false; ctrlKey = false; shiftKey = false; delta = 0; isLocked = false; isDoubleClickEvent = false; disabledEvents = new Object(); ignoredInstances = new Dictionary(true); lastMouseDown = false; updateMouseDown = false; lastWithinStage = true; _useNativeEvents = false; eventEvent = VirtualMouseEvent; mouseEventEvent = VirtualMouseMouseEvent; log = new XrayLog(); super(); this.stage = _arg1; this.container = _arg2; location = new Point(_arg3, _arg4); lastLocation = location.clone(); addEventListener(UPDATE, handleUpdate); update(); } public function get mouseIsDown():Boolean{ return (_mouseIsDown); } public function get stage():Stage{ return (_stage); } public function exitContainer():void{ var _local1:Point; _local1 = target.globalToLocal(location); if (!disabledEvents[MouseEvent.MOUSE_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); container.dispatchEvent(new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta)); dispatchEvent(new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta)); }; if (!disabledEvents[MouseEvent.ROLL_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); container.dispatchEvent(new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta)); dispatchEvent(new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta)); }; if (target != container){ if (!disabledEvents[MouseEvent.MOUSE_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); target.dispatchEvent(new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta)); dispatchEvent(new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta)); }; if (!disabledEvents[MouseEvent.ROLL_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); target.dispatchEvent(new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta)); dispatchEvent(new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local1.x, _local1.y, container, ctrlKey, altKey, shiftKey, _mouseIsDown, delta)); }; }; target = _stage; } public function release():void{ updateMouseDown = true; _mouseIsDown = false; if (!isLocked){ update(); }; } public function click():void{ press(); release(); } public function get container():Sprite{ return (_container); } public function set container(_arg1:Sprite):void{ _container = _arg1; } public function get y():Number{ return (location.y); } public function set x(_arg1:Number):void{ location.x = _arg1; if (!isLocked){ update(); }; } public function disableEvent(_arg1:String):void{ disabledEvents[_arg1] = true; } public function get lastEvent():Event{ return (_lastEvent); } private function handleUpdate(_arg1:Event):void{ var _local2:Point; var _local3:Array; var _local4:InteractiveObject; var _local5:DisplayObject; var _local6:int; var _local7:Point; var _local8:Point; var _local9:Boolean; if (!container){ return; }; _local2 = CoordinateTools.localToLocal(container, stage, location); _local3 = container.getObjectsUnderPoint(location); _local6 = _local3.length; while (_local6--) { _local5 = _local3[_local6]; while (_local5) { if (ignoredInstances[_local5]){ _local4 = null; break; }; if (((_local4) && ((_local5 is SimpleButton)))){ _local4 = null; } else { if (((_local4) && (!(DisplayObjectContainer(_local5).mouseChildren)))){ _local4 = null; }; }; if (((((!(_local4)) && ((_local5 is InteractiveObject)))) && (InteractiveObject(_local5).mouseEnabled))){ _local4 = InteractiveObject(_local5); }; _local5 = _local5.parent; }; if (_local4){ break; }; }; if (!_local4){ _local4 = _stage; }; _local7 = target.globalToLocal(location); _local8 = _local4.globalToLocal(location); if (((!((lastLocation.x == location.x))) || (!((lastLocation.y == location.y))))){ _local9 = false; if (stage){ _local9 = (((((((location.x >= 0)) && ((location.y >= 0)))) && ((location.x <= stage.stageWidth)))) && ((location.y <= stage.stageHeight))); }; if (((((!(_local9)) && (lastWithinStage))) && (!(disabledEvents[Event.MOUSE_LEAVE])))){ _lastEvent = new eventEvent(Event.MOUSE_LEAVE, false, false); stage.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (((_local9) && (!(disabledEvents[MouseEvent.MOUSE_MOVE])))){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_MOVE, true, false, _local8.x, _local8.y, _local4, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local4.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; lastWithinStage = _local9; }; if (_local4 != target){ if (!disabledEvents[MouseEvent.MOUSE_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_OUT, true, false, _local7.x, _local7.y, _local4, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); target.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (!disabledEvents[MouseEvent.ROLL_OUT]){ _lastEvent = new mouseEventEvent(MouseEvent.ROLL_OUT, false, false, _local7.x, _local7.y, _local4, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); target.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (!disabledEvents[MouseEvent.MOUSE_OVER]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_OVER, true, false, _local8.x, _local8.y, target, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local4.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (!disabledEvents[MouseEvent.ROLL_OVER]){ _lastEvent = new mouseEventEvent(MouseEvent.ROLL_OVER, false, false, _local8.x, _local8.y, target, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local4.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; }; if (updateMouseDown){ if (_mouseIsDown){ if (!disabledEvents[MouseEvent.MOUSE_DOWN]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_DOWN, true, false, _local8.x, _local8.y, _local4, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local4.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; lastDownTarget = _local4; updateMouseDown = false; } else { if (!disabledEvents[MouseEvent.MOUSE_UP]){ _lastEvent = new mouseEventEvent(MouseEvent.MOUSE_UP, true, false, _local8.x, _local8.y, _local4, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local4.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; if (((!(disabledEvents[MouseEvent.CLICK])) && ((_local4 == lastDownTarget)))){ _lastEvent = new mouseEventEvent(MouseEvent.CLICK, true, false, _local8.x, _local8.y, _local4, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local4.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; lastDownTarget = null; updateMouseDown = false; }; }; if (((((isDoubleClickEvent) && (!(disabledEvents[MouseEvent.DOUBLE_CLICK])))) && (_local4.doubleClickEnabled))){ _lastEvent = new mouseEventEvent(MouseEvent.DOUBLE_CLICK, true, false, _local8.x, _local8.y, _local4, ctrlKey, altKey, shiftKey, _mouseIsDown, delta); _local4.dispatchEvent(_lastEvent); dispatchEvent(_lastEvent); }; lastLocation = location.clone(); lastMouseDown = _mouseIsDown; target = _local4; } public function getLocation():Point{ return (location.clone()); } public function get x():Number{ return (location.x); } public function lock():void{ isLocked = true; } public function get useNativeEvents():Boolean{ return (_useNativeEvents); } public function setLocation(_arg1, _arg2=null):void{ var _local3:Point; if ((_arg1 is Point)){ _local3 = (_arg1 as Point); trace(_local3); location.x = _local3.x; location.y = _local3.y; } else { location.x = Number(_arg1); location.y = Number(_arg2); }; if (!isLocked){ update(); }; } private function keyHandler(_arg1:KeyboardEvent):void{ altKey = _arg1.altKey; ctrlKey = _arg1.ctrlKey; shiftKey = _arg1.shiftKey; } public function unignore(_arg1:DisplayObject):void{ if ((_arg1 in ignoredInstances)){ delete ignoredInstances[_arg1]; }; } public function doubleClick():void{ if (isLocked){ release(); } else { click(); press(); isDoubleClickEvent = true; release(); isDoubleClickEvent = false; }; } public function update():void{ dispatchEvent(new Event(UPDATE, false, false)); } public function ignore(_arg1:DisplayObject):void{ ignoredInstances[_arg1] = true; } public function unlock():void{ isLocked = false; update(); } public function enableEvent(_arg1:String):void{ if ((_arg1 in disabledEvents)){ delete disabledEvents[_arg1]; }; } public function press():void{ updateMouseDown = true; _mouseIsDown = true; if (!isLocked){ update(); }; } public function set useNativeEvents(_arg1:Boolean):void{ if (_arg1 == _useNativeEvents){ return; }; _useNativeEvents = _arg1; if (_useNativeEvents){ eventEvent = VirtualMouseEvent; mouseEventEvent = VirtualMouseMouseEvent; } else { eventEvent = Event; mouseEventEvent = MouseEvent; }; } public function set y(_arg1:Number):void{ location.y = _arg1; if (!isLocked){ update(); }; } public function set stage(_arg1:Stage):void{ var _local2:Boolean; if (_stage){ _local2 = true; _stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyHandler); _stage.removeEventListener(KeyboardEvent.KEY_UP, keyHandler); } else { _local2 = false; }; _stage = _arg1; if (_stage){ _stage.addEventListener(KeyboardEvent.KEY_DOWN, keyHandler); _stage.addEventListener(KeyboardEvent.KEY_UP, keyHandler); target = _stage; if (!_local2){ update(); }; }; } } }//package org.papervision3d.core.utils.virtualmouse
Section 74
//VirtualMouseEvent (org.papervision3d.core.utils.virtualmouse.VirtualMouseEvent) package org.papervision3d.core.utils.virtualmouse { import flash.events.*; public class VirtualMouseEvent extends Event implements IVirtualMouseEvent { public function VirtualMouseEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } } }//package org.papervision3d.core.utils.virtualmouse
Section 75
//VirtualMouseMouseEvent (org.papervision3d.core.utils.virtualmouse.VirtualMouseMouseEvent) package org.papervision3d.core.utils.virtualmouse { import flash.display.*; import flash.events.*; public class VirtualMouseMouseEvent extends MouseEvent implements IVirtualMouseEvent { public function VirtualMouseMouseEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Number=NaN, _arg5:Number=NaN, _arg6:InteractiveObject=null, _arg7:Boolean=false, _arg8:Boolean=false, _arg9:Boolean=false, _arg10:Boolean=false, _arg11:int=0){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11); } } }//package org.papervision3d.core.utils.virtualmouse
Section 76
//InteractiveSceneManager (org.papervision3d.core.utils.InteractiveSceneManager) package org.papervision3d.core.utils { import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.view.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.objects.*; import com.blitzagency.xray.logger.*; import flash.events.*; import org.papervision3d.events.*; import org.papervision3d.core.utils.virtualmouse.*; import org.papervision3d.materials.*; public class InteractiveSceneManager extends EventDispatcher { protected var log:XrayLog; public var container:Sprite; public var debug:Boolean;// = false public var mouse3D:Mouse3D; public var enableOverOut:Boolean;// = true public var currentMaterial:MaterialObject3D; public var currentDisplayObject3D:DisplayObject3D; public var virtualMouse:VirtualMouse; public var viewport:Viewport3D; public var renderHitData:RenderHitData; public var currentMouseDO3D:DisplayObject3D;// = null public static var MOUSE_IS_DOWN:Boolean = false; public function InteractiveSceneManager(_arg1:Viewport3D){ virtualMouse = new VirtualMouse(); mouse3D = new Mouse3D(); enableOverOut = true; currentMouseDO3D = null; debug = false; log = new XrayLog(); super(); this.viewport = _arg1; this.container = _arg1.containerSprite; init(); } protected function resolveRenderHitData():void{ var _local1:Point; _local1 = new Point(); _local1.x = container.mouseX; _local1.y = container.mouseY; renderHitData = (viewport.hitTestPoint2D(_local1) as RenderHitData); } public function initListeners():void{ if (viewport.interactive){ container.addEventListener(MouseEvent.MOUSE_DOWN, handleMousePress); container.addEventListener(MouseEvent.MOUSE_UP, handleMouseRelease); container.addEventListener(MouseEvent.CLICK, handleMouseClick); container.stage.addEventListener(MouseEvent.MOUSE_MOVE, handleMouseMove); }; } public function init():void{ if (container){ if (container.stage){ initVirtualMouse(); } else { container.addEventListener(Event.ADDED_TO_STAGE, handleAddedToStage); }; }; } protected function dispatchObjectEvent(_arg1:String, _arg2:DisplayObject3D):void{ var _local3:Number; var _local4:Number; if (debug){ log.debug(_arg1, _arg2.name); }; if (((renderHitData) && (renderHitData.hasHit))){ _local3 = (renderHitData.u) ? renderHitData.u : 0; _local4 = (renderHitData.v) ? renderHitData.v : 0; dispatchEvent(new InteractiveScene3DEvent(_arg1, _arg2, container, (renderHitData.renderable as Triangle3D), _local3, _local4)); _arg2.dispatchEvent(new InteractiveScene3DEvent(_arg1, _arg2, container, (renderHitData.renderable as Triangle3D), _local3, _local4)); } else { dispatchEvent(new InteractiveScene3DEvent(_arg1, _arg2, container)); if (_arg2){ _arg2.dispatchEvent(new InteractiveScene3DEvent(_arg1, _arg2, container)); }; }; } protected function handleMouseClick(_arg1:MouseEvent):void{ if ((_arg1 is IVirtualMouseEvent)){ return; }; if (((renderHitData) && (renderHitData.hasHit))){ dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_CLICK, currentDisplayObject3D); }; } public function updateRenderHitData():void{ resolveRenderHitData(); currentDisplayObject3D = renderHitData.displayObject3D; currentMaterial = renderHitData.material; manageOverOut(); } protected function handleMouseOver(_arg1:DisplayObject3D):void{ dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_OVER, _arg1); } protected function handleMouseRelease(_arg1:MouseEvent):void{ if ((_arg1 is IVirtualMouseEvent)){ return; }; MOUSE_IS_DOWN = false; if (virtualMouse){ virtualMouse.release(); }; if (((((Mouse3D.enabled) && (renderHitData))) && (!((renderHitData.renderable == null))))){ mouse3D.updatePosition(renderHitData); }; if (((renderHitData) && (renderHitData.hasHit))){ dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_RELEASE, currentDisplayObject3D); }; } protected function handleAddedToStage(_arg1:Event):void{ initVirtualMouse(); initListeners(); } protected function handleMouseMove(_arg1:MouseEvent):void{ var _local2:MovieMaterial; updateRenderHitData(); if ((_arg1 is IVirtualMouseEvent)){ return; }; if (((virtualMouse) && (renderHitData))){ _local2 = (currentMaterial as MovieMaterial); if (_local2){ virtualMouse.container = (_local2.movie as Sprite); }; if (virtualMouse.container){ virtualMouse.setLocation(renderHitData.u, renderHitData.v); }; if (((((Mouse3D.enabled) && (renderHitData))) && (renderHitData.hasHit))){ mouse3D.updatePosition(renderHitData); }; dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_MOVE, currentDisplayObject3D); } else { if (((renderHitData) && (renderHitData.hasHit))){ dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_MOVE, currentDisplayObject3D); }; }; } protected function handleMouseOut(_arg1:DisplayObject3D):void{ var _local2:MovieMaterial; if (_arg1){ _local2 = (_arg1.material as MovieMaterial); if (_local2){ virtualMouse.exitContainer(); }; }; dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_OUT, _arg1); } protected function manageOverOut():void{ if (!enableOverOut){ return; }; if (((renderHitData) && (renderHitData.hasHit))){ if (((!(currentMouseDO3D)) && (currentDisplayObject3D))){ handleMouseOver(currentDisplayObject3D); currentMouseDO3D = currentDisplayObject3D; } else { if (((currentMouseDO3D) && (!((currentMouseDO3D == currentDisplayObject3D))))){ handleMouseOut(currentMouseDO3D); handleMouseOver(currentDisplayObject3D); currentMouseDO3D = currentDisplayObject3D; }; }; } else { if (currentMouseDO3D != null){ handleMouseOut(currentMouseDO3D); currentMouseDO3D = null; }; }; } protected function initVirtualMouse():void{ virtualMouse.stage = container.stage; virtualMouse.container = container; } protected function handleMousePress(_arg1:MouseEvent):void{ if ((_arg1 is IVirtualMouseEvent)){ return; }; MOUSE_IS_DOWN = true; if (virtualMouse){ virtualMouse.press(); }; if (((((Mouse3D.enabled) && (renderHitData))) && (!((renderHitData.renderable == null))))){ mouse3D.updatePosition(renderHitData); }; if (((renderHitData) && (renderHitData.hasHit))){ dispatchObjectEvent(InteractiveScene3DEvent.OBJECT_PRESS, currentDisplayObject3D); }; } } }//package org.papervision3d.core.utils
Section 77
//Mouse3D (org.papervision3d.core.utils.Mouse3D) package org.papervision3d.core.utils { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.objects.*; public class Mouse3D extends DisplayObject3D { public static var enabled:Boolean = false; private static var UP:Number3D = new Number3D(0, 1, 0); public function Mouse3D(_arg1:Object=null):void{ } public function updatePosition(_arg1:RenderHitData):void{ var _local2:Triangle3D; var _local3:Number3D; var _local4:Number3D; var _local5:Number3D; var _local6:Matrix3D; var _local7:Number3D; var _local8:Number3D; var _local9:Matrix3D; _local2 = (_arg1.renderable as Triangle3D); _local3 = new Number3D(0, 0, 0); _local4 = new Number3D(_local2.faceNormal.x, _local2.faceNormal.y, _local2.faceNormal.z); _local5 = Number3D.sub(_local4, _local3); _local5.normalize(); if (_local5.modulo > 0.1){ _local7 = Number3D.cross(_local5, UP); _local7.normalize(); _local8 = Number3D.cross(_local5, _local7); _local8.normalize(); _local9 = this.transform; _local9.n11 = _local7.x; _local9.n21 = _local7.y; _local9.n31 = _local7.z; _local9.n12 = -(_local8.x); _local9.n22 = -(_local8.y); _local9.n32 = -(_local8.z); _local9.n13 = _local5.x; _local9.n23 = _local5.y; _local9.n33 = _local5.z; }; _local6 = Matrix3D.IDENTITY; this.transform = Matrix3D.multiply(_local2.instance.world, _local9); x = _arg1.x; y = _arg1.y; z = _arg1.z; } } }//package org.papervision3d.core.utils
Section 78
//StopWatch (org.papervision3d.core.utils.StopWatch) package org.papervision3d.core.utils { import flash.events.*; import flash.utils.*; public class StopWatch extends EventDispatcher { private var startTime:int; private var elapsedTime:int; private var stopTime:int; private var isRunning:Boolean; public function stop():int{ if (isRunning){ stopTime = getTimer(); elapsedTime = (stopTime - startTime); isRunning = false; return (elapsedTime); }; return (0); } public function start():void{ if (!isRunning){ startTime = getTimer(); isRunning = true; }; } public function reset():void{ isRunning = false; } } }//package org.papervision3d.core.utils
Section 79
//IViewport3D (org.papervision3d.core.view.IViewport3D) package org.papervision3d.core.view { public interface IViewport3D { function updateAfterRender():void; function updateBeforeRender():void; } }//package org.papervision3d.core.view
Section 80
//InteractiveScene3DEvent (org.papervision3d.events.InteractiveScene3DEvent) package org.papervision3d.events { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import org.papervision3d.objects.*; import flash.events.*; public class InteractiveScene3DEvent extends Event { public var sprite:Sprite;// = null public var displayObject3D:DisplayObject3D;// = null public var face3d:Triangle3D;// = null public var renderHitData:RenderHitData; public var x:Number;// = 0 public var y:Number;// = 0 public static const OBJECT_ADDED:String = "objectAdded"; public static const OBJECT_PRESS:String = "mousePress"; public static const OBJECT_RELEASE:String = "mouseRelease"; public static const OBJECT_CLICK:String = "mouseClick"; public static const OBJECT_RELEASE_OUTSIDE:String = "mouseReleaseOutside"; public static const OBJECT_OUT:String = "mouseOut"; public static const OBJECT_MOVE:String = "mouseMove"; public static const OBJECT_OVER:String = "mouseOver"; public function InteractiveScene3DEvent(_arg1:String, _arg2:DisplayObject3D=null, _arg3:Sprite=null, _arg4:Triangle3D=null, _arg5:Number=0, _arg6:Number=0, _arg7:RenderHitData=null, _arg8:Boolean=false, _arg9:Boolean=false){ displayObject3D = null; sprite = null; face3d = null; x = 0; y = 0; super(_arg1, _arg8, _arg9); this.displayObject3D = _arg2; this.sprite = _arg3; this.face3d = _arg4; this.x = _arg5; this.y = _arg6; this.renderHitData = _arg7; } } }//package org.papervision3d.events
Section 81
//RendererEvent (org.papervision3d.events.RendererEvent) package org.papervision3d.events { import org.papervision3d.core.render.data.*; import flash.events.*; public class RendererEvent extends Event { public var renderSessionData:RenderSessionData; public static const RENDER_DONE:String = "renderDone"; public function RendererEvent(_arg1:String, _arg2:RenderSessionData){ super(_arg1); this.renderSessionData = _arg2; } } }//package org.papervision3d.events
Section 82
//PointLight3D (org.papervision3d.lights.PointLight3D) package org.papervision3d.lights { import org.papervision3d.core.proto.*; import org.papervision3d.core.math.*; public class PointLight3D extends LightObject3D { public static var DEFAULT_POS:Number3D = new Number3D(0, 0, -1000); public function PointLight3D(_arg1:Boolean=false, _arg2:Boolean=false){ super(_arg1, _arg2); x = DEFAULT_POS.x; y = DEFAULT_POS.y; z = DEFAULT_POS.z; } } }//package org.papervision3d.lights
Section 83
//GouraudMaterial (org.papervision3d.materials.shadematerials.GouraudMaterial) package org.papervision3d.materials.shadematerials { import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.math.*; import org.papervision3d.materials.utils.*; import org.papervision3d.core.render.material.*; import org.papervision3d.core.render.draw.*; import org.papervision3d.core.material.*; public class GouraudMaterial extends AbstractSmoothShadeMaterial implements ITriangleDrawer, IUpdateBeforeMaterial { private var gouraudMap:BitmapData; public function GouraudMaterial(_arg1:LightObject3D, _arg2:int=0xFFFFFF, _arg3:int=0){ this.light = _arg1; gouraudMap = LightMaps.getGouraudMap(_arg2, _arg3); } override public function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData, _arg4:BitmapData=null, _arg5:Matrix=null):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; lightMatrix = Matrix3D(lightMatrices[_arg1.instance]); _local6 = ((((_arg1.v0.normal.x * lightMatrix.n31) + (_arg1.v0.normal.y * lightMatrix.n32)) + (_arg1.v0.normal.z * lightMatrix.n33)) * 0xFF); transformMatrix.tx = _local6; transformMatrix.ty = 1; transformMatrix.a = (((((_arg1.v1.normal.x * lightMatrix.n31) + (_arg1.v1.normal.y * lightMatrix.n32)) + (_arg1.v1.normal.z * lightMatrix.n33)) * 0xFF) - _local6); transformMatrix.c = (((((_arg1.v2.normal.x * lightMatrix.n31) + (_arg1.v2.normal.y * lightMatrix.n32)) + (_arg1.v2.normal.z * lightMatrix.n33)) * 0xFF) - _local6); transformMatrix.b = 2; transformMatrix.d = 3; transformMatrix.invert(); _local7 = _arg1.v0.vertex3DInstance.x; _local8 = _arg1.v0.vertex3DInstance.y; _local9 = _arg1.v1.vertex3DInstance.x; _local10 = _arg1.v1.vertex3DInstance.y; _local11 = _arg1.v2.vertex3DInstance.x; _local12 = _arg1.v2.vertex3DInstance.y; triMatrix.a = (_local9 - _local7); triMatrix.b = (_local10 - _local8); triMatrix.c = (_local11 - _local7); triMatrix.d = (_local12 - _local8); triMatrix.tx = _local7; triMatrix.ty = _local8; transformMatrix.concat(triMatrix); _arg2.beginBitmapFill(gouraudMap, transformMatrix, false, false); _arg2.moveTo(_local7, _local8); _arg2.lineTo(_local9, _local10); _arg2.lineTo(_local11, _local12); _arg2.lineTo(_local7, _local8); _arg2.endFill(); _arg3.renderStatistics.shadedTriangles++; } } }//package org.papervision3d.materials.shadematerials
Section 84
//ParticleMaterial (org.papervision3d.materials.special.ParticleMaterial) package org.papervision3d.materials.special { import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.render.draw.*; public class ParticleMaterial extends MaterialObject3D implements IParticleDrawer { public var shape:int; public static var SHAPE_SQUARE:int = 0; public static var SHAPE_CIRCLE:int = 1; public function ParticleMaterial(_arg1:Number, _arg2:Number, _arg3:int=0){ this.shape = _arg3; this.fillAlpha = _arg2; this.fillColor = _arg1; } public function updateRenderRect(_arg1:Particle):void{ var _local2:Rectangle; _local2 = _arg1.renderRect; if (_arg1.size == 0){ _local2.width = 1; _local2.height = 1; } else { _local2.width = (_arg1.renderScale * _arg1.size); _local2.height = (_arg1.renderScale * _arg1.size); }; _local2.x = (_arg1.vertex3D.vertex3DInstance.x - (_local2.width / 2)); _local2.y = (_arg1.vertex3D.vertex3DInstance.y - (_local2.width / 2)); } public function drawParticle(_arg1:Particle, _arg2:Graphics, _arg3:RenderSessionData):void{ var _local4:Rectangle; _arg2.beginFill(fillColor, fillAlpha); _local4 = _arg1.renderRect; if (shape == SHAPE_SQUARE){ _arg2.drawRect(_local4.x, _local4.y, _local4.width, _local4.height); } else { if (shape == SHAPE_CIRCLE){ _arg2.drawCircle((_local4.x + (_local4.width / 2)), (_local4.y + (_local4.width / 2)), (_local4.width / 2)); } else { trace("warning - Particle material has no valid shape - Must be ParticleMaterial.SHAPE_SQUARE or ParticleMaterial.SHAPE_CIRCLE"); }; }; _arg2.endFill(); _arg3.renderStatistics.particles++; } } }//package org.papervision3d.materials.special
Section 85
//LightMaps (org.papervision3d.materials.utils.LightMaps) package org.papervision3d.materials.utils { import flash.display.*; import flash.geom.*; import flash.filters.*; public class LightMaps { private static var origin:Point = new Point(); public static function getPhongMap(_arg1:int, _arg2:int, _arg3:int, _arg4:int=0xFF, _arg5:int=0xFF):BitmapData{ var _local6:Number; var _local7:Number; var _local8:Sprite; var _local9:Matrix; var _local10:BitmapData; _local6 = _arg4; _local7 = _arg5; _local8 = new Sprite(); _local9 = new Matrix(); _local9.createGradientBox(_local6, _local6, 0, 0, 0); _local8.graphics.beginGradientFill(GradientType.RADIAL, [_arg1, _arg2, _arg2], [1, 1, 1], [0, (0xFF - _arg3), 0xFF], _local9); _local8.graphics.drawRect(0, 0, _local6, _local6); _local8.graphics.endFill(); _local10 = new BitmapData(_local6, _local6, false, 0xFF); _local10.draw(_local8); return (_local10); } public static function getCellMap(_arg1:int, _arg2:int, _arg3:int):BitmapData{ var _local4:BitmapData; var _local5:Number; var _local6:int; var _local7:int; var _local8:int; var _local9:Array; var _local10:Array; var _local11:Array; var _local12:int; _local4 = LightMaps.getPhongMap(_arg1, _arg2, 0, 0xFF, 0xFF); _local5 = 0; _local6 = ((_arg1 & 0xFF0000) >> 16); _local7 = ((_arg2 & 0xFF0000) >> 16); _local8 = (_local7 - _local6); _local9 = new Array(); _local10 = new Array(); _local11 = new Array(); _local12 = 0; while (_local12 <= 0xFF) { _local9[_local12] = ((_local12 - (_local12 % Math.round((0x0100 / _arg3)))) << 16); _local10[_local12] = ((_local12 - (_local12 % Math.round((0x0100 / _arg3)))) << 8); _local11[_local12] = (_local12 - (_local12 % Math.round((0x0100 / _arg3)))); _local12++; }; _local4.paletteMap(_local4, _local4.rect, origin, _local9, _local10, _local11); _local4.applyFilter(_local4, _local4.rect, origin, new BlurFilter(2, 2, 2)); return (_local4); } public static function getGouraudMap(_arg1:int, _arg2:int):BitmapData{ var _local3:BitmapData; var _local4:Sprite; var _local5:Matrix; _local3 = new BitmapData(0x0100, 3, false, 0xFFFFFF); _local4 = new Sprite(); _local5 = new Matrix(); _local5.createGradientBox(0x0100, 3, 0, 0, 0); _local4.graphics.beginGradientFill(GradientType.LINEAR, [_arg2, _arg1], [1, 1], [0, 0xFF], _local5); _local4.graphics.drawRect(0, 0, 0x0100, 3); _local4.graphics.endFill(); _local3.draw(_local4); return (_local3); } public static function getFlatMapArray(_arg1:int, _arg2:int, _arg3:int):Array{ var _local4:Array; var _local5:BitmapData; var _local6:Sprite; var _local7:Matrix; var _local8:int; _local4 = new Array(); _local5 = new BitmapData(0xFF, 1, false, 0); _local6 = new Sprite(); _local7 = new Matrix(); _local7.createGradientBox(0xFF, 1, 0, 0, 0); _local6.graphics.beginGradientFill(GradientType.LINEAR, [_arg1, _arg2], [1, 1], [0, 0xFF], _local7); _local6.graphics.drawRect(0, 0, 0xFF, 1); _local6.graphics.endFill(); _local5.draw(_local6); _local8 = 0xFF; while (_local8--) { _local4.push(_local5.getPixel(_local8, 0)); }; return (_local4); } public static function getFlatMap(_arg1:int, _arg2:int, _arg3:int):BitmapData{ var _local4:Array; var _local5:BitmapData; var _local6:Sprite; var _local7:Matrix; _local4 = new Array(); _local5 = new BitmapData(0xFF, 1, false, 0); _local6 = new Sprite(); _local7 = new Matrix(); _local7.createGradientBox(0xFF, 1, 0, 0, 0); _local6.graphics.beginGradientFill(GradientType.LINEAR, [_arg2, _arg1], [1, 1], [0, 0xFF], _local7); _local6.graphics.drawRect(0, 0, 0xFF, 1); _local6.graphics.endFill(); _local5.draw(_local6); return (_local5); } } }//package org.papervision3d.materials.utils
Section 86
//LightMatrix (org.papervision3d.materials.utils.LightMatrix) package org.papervision3d.materials.utils { import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.math.*; import org.papervision3d.objects.*; import org.papervision3d.lights.*; public class LightMatrix { private static var _targetPos:Number3D; private static var _lightSide:Number3D; private static var _lightUp:Number3D; private static var _lightDir:Number3D; private static var lightMatrix:Matrix3D = Matrix3D.IDENTITY; protected static var UP:Number3D = new Number3D(0, 1, 0); private static var _lightPos:Number3D; public static function getLightMatrix(_arg1:LightObject3D, _arg2:DisplayObject3D, _arg3:RenderSessionData):Matrix3D{ var _local4:Matrix3D; var _local5:Matrix3D; var _local6:Matrix3D; _local4 = Matrix3D.IDENTITY; if (_arg1 == null){ _arg1 = new PointLight3D(); _arg1.copyPosition(_arg3.camera); }; _targetPos = new Number3D(); _lightPos = new Number3D(); _lightDir = new Number3D(); _lightUp = new Number3D(); _lightSide = new Number3D(); _local5 = _arg1.transform; _local6 = _arg2.world; _lightPos.x = -(_local5.n14); _lightPos.y = -(_local5.n24); _lightPos.z = -(_local5.n34); _targetPos.x = -(_local6.n14); _targetPos.y = -(_local6.n24); _targetPos.z = -(_local6.n34); _lightDir.x = (_targetPos.x - _lightPos.x); _lightDir.y = (_targetPos.y - _lightPos.y); _lightDir.z = (_targetPos.z - _lightPos.z); Matrix3D.multiplyVector3x3(Matrix3D.inverse(_arg2.world), _lightDir); _lightDir.normalize(); _lightSide.x = ((_lightDir.y * UP.z) - (_lightDir.z * UP.y)); _lightSide.y = ((_lightDir.z * UP.x) - (_lightDir.x * UP.z)); _lightSide.z = ((_lightDir.x * UP.y) - (_lightDir.y * UP.x)); _lightSide.normalize(); _lightUp.x = ((_lightSide.y * _lightDir.z) - (_lightSide.z * _lightDir.y)); _lightUp.y = ((_lightSide.z * _lightDir.x) - (_lightSide.x * _lightDir.z)); _lightUp.z = ((_lightSide.x * _lightDir.y) - (_lightSide.y * _lightDir.x)); _lightUp.normalize(); if (_arg1.flipped){ _lightDir.x = -(_lightDir.x); _lightDir.y = -(_lightDir.y); _lightDir.z = -(_lightDir.z); }; _local4.n11 = _lightSide.x; _local4.n12 = _lightSide.y; _local4.n13 = _lightSide.z; _local4.n21 = _lightUp.x; _local4.n22 = _lightUp.y; _local4.n23 = _lightUp.z; _local4.n31 = _lightDir.x; _local4.n32 = _lightDir.y; _local4.n33 = _lightDir.z; return (_local4); } } }//package org.papervision3d.materials.utils
Section 87
//MaterialsList (org.papervision3d.materials.utils.MaterialsList) package org.papervision3d.materials.utils { import org.papervision3d.core.proto.*; import flash.utils.*; public class MaterialsList { protected var _materials:Dictionary; public var materialsByName:Dictionary; private var _materialsTotal:int; public function MaterialsList(_arg1=null):void{ var _local2:String; var _local3:String; super(); this.materialsByName = new Dictionary(true); this._materials = new Dictionary(false); this._materialsTotal = 0; if (_arg1){ if ((_arg1 is Array)){ for (_local2 in _arg1) { this.addMaterial(_arg1[_local2]); }; } else { if ((_arg1 is Object)){ for (_local3 in _arg1) { this.addMaterial(_arg1[_local3], _local3); }; }; }; }; } public function get numMaterials():int{ return (_materialsTotal); } public function addMaterial(_arg1:MaterialObject3D, _arg2:String=null):MaterialObject3D{ _arg2 = ((((_arg2) || (_arg1.name))) || (String(_arg1.id))); this._materials[_arg1] = _arg2; this.materialsByName[_arg2] = _arg1; this._materialsTotal++; return (_arg1); } public function removeMaterial(_arg1:MaterialObject3D):MaterialObject3D{ delete this.materialsByName[this._materials[_arg1]]; delete this._materials[_arg1]; return (_arg1); } public function toString():String{ var _local1:String; var _local2:MaterialObject3D; _local1 = ""; for each (_local2 in this.materialsByName) { _local1 = (_local1 + (this._materials[_local2] + "\n")); }; return (_local1); } public function removeMaterialByName(_arg1:String):MaterialObject3D{ return (removeMaterial(getMaterialByName(_arg1))); } public function clone():MaterialsList{ var _local1:MaterialsList; var _local2:MaterialObject3D; _local1 = new MaterialsList(); for each (_local2 in this.materialsByName) { _local1.addMaterial(_local2.clone(), this._materials[_local2]); }; return (_local1); } public function getMaterialByName(_arg1:String):MaterialObject3D{ return ((this.materialsByName[_arg1]) ? this.materialsByName[_arg1] : this.materialsByName["all"]); } } }//package org.papervision3d.materials.utils
Section 88
//BitmapMaterial (org.papervision3d.materials.BitmapMaterial) package org.papervision3d.materials { import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.render.draw.*; import flash.utils.*; import org.papervision3d.*; import org.papervision3d.core.material.*; public class BitmapMaterial extends TriangleMaterial implements ITriangleDrawer { private var _precise:Boolean; protected var tempTriangleMatrix:Matrix; public var uvMatrices:Dictionary; public var focus:Number;// = 200 protected var _texture:Object; public var minimumRenderSize:Number;// = 2 public var precision:Number;// = 8 protected static var _triMap:Matrix; public static var AUTO_MIP_MAPPING:Boolean = false; protected static var _localMatrix:Matrix = new Matrix(); public static var MIP_MAP_DEPTH:Number = 8; protected static var _triMatrix:Matrix = new Matrix(); public function BitmapMaterial(_arg1:BitmapData=null, _arg2:Boolean=false){ focus = 200; minimumRenderSize = 2; precision = 8; uvMatrices = new Dictionary(); tempTriangleMatrix = new Matrix(); super(); if (_arg1){ texture = _arg1; }; this.precise = _arg2; } override public function toString():String{ return (((((("Texture:" + this.texture) + " lineColor:") + this.lineColor) + " lineAlpha:") + this.lineAlpha)); } protected function extendBitmapEdges(_arg1:BitmapData, _arg2:Number, _arg3:Number):void{ var _local4:Rectangle; var _local5:Point; var _local6:int; _local4 = new Rectangle(); _local5 = new Point(); if (_arg1.width > _arg2){ _local4.x = (_arg2 - 1); _local4.y = 0; _local4.width = 1; _local4.height = _arg3; _local5.y = 0; _local6 = _arg2; while (_local6 < _arg1.width) { _local5.x = _local6; _arg1.copyPixels(_arg1, _local4, _local5); _local6++; }; }; if (_arg1.height > _arg3){ _local4.x = 0; _local4.y = (_arg3 - 1); _local4.width = _arg1.width; _local4.height = 1; _local5.x = 0; _local6 = _arg3; while (_local6 < _arg1.height) { _local5.y = _local6; _arg1.copyPixels(_arg1, _local4, _local5); _local6++; }; }; } public function resetMapping():void{ uvMatrices = new Dictionary(); } public function set texture(_arg1:Object):void{ if ((_arg1 is BitmapData) == false){ Papervision3D.log("Error: BitmapMaterial.texture requires a BitmapData object for the texture"); return; }; bitmap = createBitmap(BitmapData(_arg1)); _texture = _arg1; } public function renderRec(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number, _arg13:Number, _arg14:Number, _arg15:Number, _arg16:Number, _arg17:Number, _arg18:RenderSessionData, _arg19:BitmapData):void{ var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local30:Number; var _local31:Number; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; if ((((((_arg10 <= 0)) && ((_arg13 <= 0)))) && ((_arg16 <= 0)))){ return; }; if ((((((((_arg17 >= 100)) || ((focus == Infinity)))) || (((Math.max(Math.max(_arg8, _arg11), _arg14) - Math.min(Math.min(_arg8, _arg11), _arg14)) < minimumRenderSize)))) || (((Math.max(Math.max(_arg9, _arg12), _arg15) - Math.min(Math.min(_arg9, _arg12), _arg15)) < minimumRenderSize)))){ renderTriangleBitmap(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg11, _arg12, _arg14, _arg15, smooth, tiled, _arg19); _arg18.renderStatistics.triangles++; return; }; _local20 = (focus + _arg10); _local21 = (focus + _arg13); _local22 = (focus + _arg16); _local23 = (2 / (_local20 + _local21)); _local24 = (2 / (_local21 + _local22)); _local25 = (2 / (_local22 + _local20)); _local26 = (((_arg8 * _local20) + (_arg11 * _local21)) * _local23); _local27 = (((_arg9 * _local20) + (_arg12 * _local21)) * _local23); _local28 = (((_arg11 * _local21) + (_arg14 * _local22)) * _local24); _local29 = (((_arg12 * _local21) + (_arg15 * _local22)) * _local24); _local30 = (((_arg14 * _local22) + (_arg8 * _local20)) * _local25); _local31 = (((_arg15 * _local22) + (_arg9 * _local20)) * _local25); _local32 = ((_arg8 + _arg11) - _local26); _local33 = ((_arg9 + _arg12) - _local27); _local34 = ((_arg11 + _arg14) - _local28); _local35 = ((_arg12 + _arg15) - _local29); _local36 = ((_arg14 + _arg8) - _local30); _local37 = ((_arg15 + _arg9) - _local31); _local38 = ((_local32 * _local32) + (_local33 * _local33)); _local39 = ((_local34 * _local34) + (_local35 * _local35)); _local40 = ((_local36 * _local36) + (_local37 * _local37)); if ((((((_local38 <= precision)) && ((_local40 <= precision)))) && ((_local39 <= precision)))){ renderTriangleBitmap(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg11, _arg12, _arg14, _arg15, smooth, tiled, _arg19); _arg18.renderStatistics.triangles++; return; }; if ((((((_local38 > precision)) && ((_local40 > precision)))) && ((_local39 > precision)))){ renderRec(_arg1, (_arg2 * 2), (_arg3 * 2), (_arg4 * 2), (_arg5 * 2), (_arg6 * 2), (_arg7 * 2), _arg8, _arg9, _arg10, (_local26 * 0.5), (_local27 * 0.5), ((_arg10 + _arg13) * 0.5), (_local30 * 0.5), (_local31 * 0.5), ((_arg16 + _arg10) * 0.5), (_arg17 + 1), _arg18, _arg19); renderRec(_arg1, (_arg2 * 2), (_arg3 * 2), (_arg4 * 2), (_arg5 * 2), ((_arg6 * 2) - 1), (_arg7 * 2), (_local26 * 0.5), (_local27 * 0.5), ((_arg10 + _arg13) * 0.5), _arg11, _arg12, _arg13, (_local28 * 0.5), (_local29 * 0.5), ((_arg13 + _arg16) * 0.5), (_arg17 + 1), _arg18, _arg19); renderRec(_arg1, (_arg2 * 2), (_arg3 * 2), (_arg4 * 2), (_arg5 * 2), (_arg6 * 2), ((_arg7 * 2) - 1), (_local30 * 0.5), (_local31 * 0.5), ((_arg16 + _arg10) * 0.5), (_local28 * 0.5), (_local29 * 0.5), ((_arg13 + _arg16) * 0.5), _arg14, _arg15, _arg16, (_arg17 + 1), _arg18, _arg19); renderRec(_arg1, (-(_arg2) * 2), (-(_arg3) * 2), (-(_arg4) * 2), (-(_arg5) * 2), ((-(_arg6) * 2) + 1), ((-(_arg7) * 2) + 1), (_local28 * 0.5), (_local29 * 0.5), ((_arg13 + _arg16) * 0.5), (_local30 * 0.5), (_local31 * 0.5), ((_arg16 + _arg10) * 0.5), (_local26 * 0.5), (_local27 * 0.5), ((_arg10 + _arg13) * 0.5), (_arg17 + 1), _arg18, _arg19); return; }; _local41 = Math.max(_local38, Math.max(_local40, _local39)); if (_local38 == _local41){ renderRec(_arg1, (_arg2 * 2), (_arg3 * 1), (_arg4 * 2), (_arg5 * 1), (_arg6 * 2), (_arg7 * 1), _arg8, _arg9, _arg10, (_local26 * 0.5), (_local27 * 0.5), ((_arg10 + _arg13) * 0.5), _arg14, _arg15, _arg16, (_arg17 + 1), _arg18, _arg19); renderRec(_arg1, ((_arg2 * 2) + _arg3), (_arg3 * 1), ((2 * _arg4) + _arg5), (_arg5 * 1), (((_arg6 * 2) + _arg7) - 1), (_arg7 * 1), (_local26 * 0.5), (_local27 * 0.5), ((_arg10 + _arg13) * 0.5), _arg11, _arg12, _arg13, _arg14, _arg15, _arg16, (_arg17 + 1), _arg18, _arg19); return; }; if (_local40 == _local41){ renderRec(_arg1, (_arg2 * 1), (_arg3 * 2), (_arg4 * 1), (_arg5 * 2), (_arg6 * 1), (_arg7 * 2), _arg8, _arg9, _arg10, _arg11, _arg12, _arg13, (_local30 * 0.5), (_local31 * 0.5), ((_arg16 + _arg10) * 0.5), (_arg17 + 1), _arg18, _arg19); renderRec(_arg1, (_arg2 * 1), ((_arg3 * 2) + _arg2), (_arg4 * 1), ((_arg5 * 2) + _arg4), _arg6, (((_arg7 * 2) + _arg6) - 1), (_local30 * 0.5), (_local31 * 0.5), ((_arg16 + _arg10) * 0.5), _arg11, _arg12, _arg13, _arg14, _arg15, _arg16, (_arg17 + 1), _arg18, _arg19); return; }; renderRec(_arg1, (_arg2 - _arg3), (_arg3 * 2), (_arg4 - _arg5), (_arg5 * 2), (_arg6 - _arg7), (_arg7 * 2), _arg8, _arg9, _arg10, _arg11, _arg12, _arg13, (_local28 * 0.5), (_local29 * 0.5), ((_arg13 + _arg16) * 0.5), (_arg17 + 1), _arg18, _arg19); renderRec(_arg1, (2 * _arg2), (_arg3 - _arg2), (_arg4 * 2), (_arg5 - _arg4), (2 * _arg6), (_arg7 - _arg6), _arg8, _arg9, _arg10, (_local28 * 0.5), (_local29 * 0.5), ((_arg13 + _arg16) * 0.5), _arg14, _arg15, _arg16, (_arg17 + 1), _arg18, _arg19); } public function transformUV(_arg1:Triangle3D):Matrix{ var _local2:Array; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Matrix; var _local16:Matrix; if (!_arg1.uv){ Papervision3D.log("MaterialObject3D: transformUV() uv not found!"); } else { if (bitmap){ _local2 = _arg1.uv; _local3 = (bitmap.width * maxU); _local4 = (bitmap.height * maxV); _local5 = (_local3 * _arg1.uv0.u); _local6 = (_local4 * (1 - _arg1.uv0.v)); _local7 = (_local3 * _arg1.uv1.u); _local8 = (_local4 * (1 - _arg1.uv1.v)); _local9 = (_local3 * _arg1.uv2.u); _local10 = (_local4 * (1 - _arg1.uv2.v)); if ((((((_local5 == _local7)) && ((_local6 == _local8)))) || ((((_local5 == _local9)) && ((_local6 == _local10)))))){ _local5 = (_local5 - ((_local5)>0.05) ? 0.05 : -0.05); _local6 = (_local6 - ((_local6)>0.07) ? 0.07 : -0.07); }; if ((((_local9 == _local7)) && ((_local10 == _local8)))){ _local9 = (_local9 - ((_local9)>0.05) ? 0.04 : -0.04); _local10 = (_local10 - ((_local10)>0.06) ? 0.06 : -0.06); }; _local11 = (_local7 - _local5); _local12 = (_local8 - _local6); _local13 = (_local9 - _local5); _local14 = (_local10 - _local6); _local15 = new Matrix(_local11, _local12, _local13, _local14, _local5, _local6); _local15.invert(); _local16 = ((uvMatrices[_arg1]) || ((uvMatrices[_arg1] = _local15.clone()))); _local16.a = _local15.a; _local16.b = _local15.b; _local16.c = _local15.c; _local16.d = _local15.d; _local16.tx = _local15.tx; _local16.ty = _local15.ty; } else { Papervision3D.log("MaterialObject3D: transformUV() material.bitmap not found!"); }; }; return (_local16); } public function resetUVS():void{ uvMatrices = new Dictionary(false); } protected function correctBitmap(_arg1:BitmapData):BitmapData{ var _local2:BitmapData; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Boolean; _local3 = (1 << MIP_MAP_DEPTH); _local4 = (_arg1.width / _local3); _local4 = ((_local4 == uint(_local4))) ? _local4 : (uint(_local4) + 1); _local5 = (_arg1.height / _local3); _local5 = ((_local5 == uint(_local5))) ? _local5 : (uint(_local5) + 1); _local6 = (_local3 * _local4); _local7 = (_local3 * _local5); _local8 = true; if (_local6 > 2880){ _local6 = _arg1.width; _local8 = false; }; if (_local7 > 2880){ _local7 = _arg1.height; _local8 = false; }; if (!_local8){ Papervision3D.log((("Material " + this.name) + ": Texture too big for mip mapping. Resizing recommended for better performance and quality.")); }; if (((_arg1) && (((!(((_arg1.width % _local3) == 0))) || (!(((_arg1.height % _local3) == 0))))))){ _local2 = new BitmapData(_local6, _local7, _arg1.transparent, 0); widthOffset = _arg1.width; heightOffset = _arg1.height; this.maxU = (_arg1.width / _local6); this.maxV = (_arg1.height / _local7); _local2.draw(_arg1); extendBitmapEdges(_local2, _arg1.width, _arg1.height); } else { this.maxU = (this.maxV = 1); _local2 = _arg1; }; return (_local2); } public function renderTriangleBitmap(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number, _arg13:Number, _arg14:Boolean, _arg15:Boolean, _arg16:BitmapData):void{ var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local17 = (_arg10 - _arg8); _local18 = (_arg11 - _arg9); _local19 = (_arg12 - _arg8); _local20 = (_arg13 - _arg9); tempTriangleMatrix.a = ((_arg2 * _local17) + (_arg3 * _local19)); tempTriangleMatrix.b = ((_arg2 * _local18) + (_arg3 * _local20)); tempTriangleMatrix.c = ((_arg4 * _local17) + (_arg5 * _local19)); tempTriangleMatrix.d = ((_arg4 * _local18) + (_arg5 * _local20)); tempTriangleMatrix.tx = (((_arg6 * _local17) + (_arg7 * _local19)) + _arg8); tempTriangleMatrix.ty = (((_arg6 * _local18) + (_arg7 * _local20)) + _arg9); _arg1.beginBitmapFill(_arg16, tempTriangleMatrix, _arg15, _arg14); _arg1.moveTo(_arg8, _arg9); _arg1.lineTo(_arg10, _arg11); _arg1.lineTo(_arg12, _arg13); _arg1.endFill(); } public function get texture():Object{ return (this._texture); } protected function createBitmap(_arg1:BitmapData):BitmapData{ resetMapping(); if (AUTO_MIP_MAPPING){ return (correctBitmap(_arg1)); }; this.maxU = (this.maxV = 1); return (_arg1); } public function get precise():Boolean{ return (_precise); } public function set precise(_arg1:Boolean):void{ _precise = _arg1; } override public function copy(_arg1:MaterialObject3D):void{ super.copy(_arg1); this.maxU = _arg1.maxU; this.maxV = _arg1.maxV; } override public function destroy():void{ super.destroy(); if (uvMatrices){ uvMatrices = null; }; if (bitmap){ bitmap.dispose(); }; } override public function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData, _arg4:BitmapData=null, _arg5:Matrix=null):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; if (!_precise){ if (lineAlpha){ _arg2.lineStyle(lineThickness, lineColor, lineAlpha); }; if (bitmap){ _triMap = (_arg5) ? _arg5 : ((uvMatrices[_arg1]) || (transformUV(_arg1))); _local6 = _arg1.v0.vertex3DInstance.x; _local7 = _arg1.v0.vertex3DInstance.y; _local8 = _arg1.v1.vertex3DInstance.x; _local9 = _arg1.v1.vertex3DInstance.y; _local10 = _arg1.v2.vertex3DInstance.x; _local11 = _arg1.v2.vertex3DInstance.y; _triMatrix.a = (_local8 - _local6); _triMatrix.b = (_local9 - _local7); _triMatrix.c = (_local10 - _local6); _triMatrix.d = (_local11 - _local7); _triMatrix.tx = _local6; _triMatrix.ty = _local7; _localMatrix.a = _triMap.a; _localMatrix.b = _triMap.b; _localMatrix.c = _triMap.c; _localMatrix.d = _triMap.d; _localMatrix.tx = _triMap.tx; _localMatrix.ty = _triMap.ty; _localMatrix.concat(_triMatrix); _arg2.beginBitmapFill((_arg4) ? _arg4 : bitmap, _localMatrix, tiled, smooth); }; _arg2.moveTo(_local6, _local7); _arg2.lineTo(_local8, _local9); _arg2.lineTo(_local10, _local11); _arg2.lineTo(_local6, _local7); if (bitmap){ _arg2.endFill(); }; if (lineAlpha){ _arg2.lineStyle(); }; _arg3.renderStatistics.triangles++; } else { _triMap = (_arg5) ? _arg5 : ((uvMatrices[_arg1]) || (transformUV(_arg1))); focus = _arg3.camera.focus; renderRec(_arg2, _triMap.a, _triMap.b, _triMap.c, _triMap.d, _triMap.tx, _triMap.ty, _arg1.v0.vertex3DInstance.x, _arg1.v0.vertex3DInstance.y, _arg1.v0.vertex3DInstance.z, _arg1.v1.vertex3DInstance.x, _arg1.v1.vertex3DInstance.y, _arg1.v1.vertex3DInstance.z, _arg1.v2.vertex3DInstance.x, _arg1.v2.vertex3DInstance.y, _arg1.v2.vertex3DInstance.z, 0, _arg3, (_arg4) ? _arg4 : bitmap); }; } override public function clone():MaterialObject3D{ var _local1:MaterialObject3D; _local1 = super.clone(); _local1.maxU = this.maxU; _local1.maxV = this.maxV; return (_local1); } } }//package org.papervision3d.materials
Section 89
//ColorMaterial (org.papervision3d.materials.ColorMaterial) package org.papervision3d.materials { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.render.draw.*; import org.papervision3d.core.material.*; public class ColorMaterial extends TriangleMaterial implements ITriangleDrawer { public function ColorMaterial(_arg1:Number=0xFF00FF, _arg2:Number=1, _arg3:Boolean=false){ this.fillColor = _arg1; this.fillAlpha = _arg2; this.interactive = _arg3; } override public function toString():String{ return (((("ColorMaterial - color:" + this.fillColor) + " alpha:") + this.fillAlpha)); } override public function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData, _arg4:BitmapData=null, _arg5:Matrix=null):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _local6 = _arg1.v0.vertex3DInstance.x; _local7 = _arg1.v0.vertex3DInstance.y; _local8 = _arg1.v1.vertex3DInstance.x; _local9 = _arg1.v1.vertex3DInstance.y; _local10 = _arg1.v2.vertex3DInstance.x; _local11 = _arg1.v2.vertex3DInstance.y; _arg2.beginFill(fillColor, fillAlpha); _arg2.moveTo(_local6, _local7); _arg2.lineTo(_local8, _local9); _arg2.lineTo(_local10, _local11); _arg2.lineTo(_local6, _local7); _arg2.endFill(); _arg3.renderStatistics.triangles++; } } }//package org.papervision3d.materials
Section 90
//MovieMaterial (org.papervision3d.materials.MovieMaterial) package org.papervision3d.materials { import org.papervision3d.core.render.data.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.render.material.*; import org.papervision3d.core.render.draw.*; import org.papervision3d.*; public class MovieMaterial extends BitmapMaterial implements ITriangleDrawer, IUpdateBeforeMaterial { private var _animated:Boolean; public var movieTransparent:Boolean; public var allowAutoResize:Boolean;// = true public var movie:DisplayObject; public function MovieMaterial(_arg1:DisplayObject=null, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Boolean=false){ allowAutoResize = true; super(); movieTransparent = _arg2; this.animated = _arg3; this.interactive = interactive; this.precise = _arg4; if (_arg1){ texture = _arg1; }; } public function updateBeforeRender(_arg1:RenderSessionData):void{ var _local2:int; var _local3:int; if (_animated){ _local2 = int(movie.width); _local3 = int(movie.height); if (((allowAutoResize) && (((!((_local2 == bitmap.width))) || (!((_local3 == bitmap.height))))))){ initBitmap(movie); }; drawBitmap(); }; } public function drawBitmap():void{ var _local1:Matrix; bitmap.fillRect(bitmap.rect, this.fillColor); _local1 = new Matrix(); _local1.scale(movie.scaleX, movie.scaleY); bitmap.draw(movie, _local1, movie.transform.colorTransform); } public function get animated():Boolean{ return (_animated); } public function set animated(_arg1:Boolean):void{ _animated = _arg1; } override public function set texture(_arg1:Object):void{ if ((_arg1 is DisplayObject) == false){ Papervision3D.log("Error: MovieMaterial.texture requires a Sprite to be passed as the object"); return; }; bitmap = createBitmapFromSprite(DisplayObject(_arg1)); _texture = _arg1; } protected function createBitmapFromSprite(_arg1:DisplayObject):BitmapData{ movie = _arg1; initBitmap(movie); drawBitmap(); bitmap = super.createBitmap(bitmap); return (bitmap); } override public function get texture():Object{ return (this._texture); } protected function initBitmap(_arg1:DisplayObject):void{ if (bitmap){ bitmap.dispose(); }; bitmap = new BitmapData(_arg1.width, _arg1.height, this.movieTransparent); } } }//package org.papervision3d.materials
Section 91
//WireframeMaterial (org.papervision3d.materials.WireframeMaterial) package org.papervision3d.materials { import org.papervision3d.core.render.data.*; import org.papervision3d.core.geom.renderables.*; import flash.display.*; import flash.geom.*; import org.papervision3d.core.render.draw.*; import org.papervision3d.core.material.*; public class WireframeMaterial extends TriangleMaterial implements ITriangleDrawer { public function WireframeMaterial(_arg1:Number=0xFF00FF, _arg2:Number=100, _arg3:Number=0){ this.lineColor = _arg1; this.lineAlpha = _arg2; this.lineThickness = _arg3; this.doubleSided = false; } override public function toString():String{ return (((("WireframeMaterial - color:" + this.lineColor) + " alpha:") + this.lineAlpha)); } override public function drawTriangle(_arg1:Triangle3D, _arg2:Graphics, _arg3:RenderSessionData, _arg4:BitmapData=null, _arg5:Matrix=null):void{ var _local6:Number; var _local7:Number; _local6 = _arg1.v0.vertex3DInstance.x; _local7 = _arg1.v0.vertex3DInstance.y; if (lineAlpha){ _arg2.lineStyle(lineThickness, lineColor, lineAlpha); _arg2.moveTo(_local6, _local7); _arg2.lineTo(_arg1.v1.vertex3DInstance.x, _arg1.v1.vertex3DInstance.y); _arg2.lineTo(_arg1.v2.vertex3DInstance.x, _arg1.v2.vertex3DInstance.y); _arg2.lineTo(_local6, _local7); _arg2.lineStyle(); _arg3.renderStatistics.triangles++; }; } } }//package org.papervision3d.materials
Section 92
//Sphere (org.papervision3d.objects.primitives.Sphere) package org.papervision3d.objects.primitives { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.core.geom.*; public class Sphere extends TriangleMesh3D { private var segmentsH:Number; private var segmentsW:Number; public static var MIN_SEGMENTSW:Number = 3; public static var DEFAULT_SCALE:Number = 1; public static var DEFAULT_RADIUS:Number = 100; public static var DEFAULT_SEGMENTSH:Number = 6; public static var MIN_SEGMENTSH:Number = 2; public static var DEFAULT_SEGMENTSW:Number = 8; public function Sphere(_arg1:MaterialObject3D=null, _arg2:Number=100, _arg3:int=8, _arg4:int=6, _arg5:Object=null){ var _local6:Number; super(_arg1, new Array(), new Array(), null, _arg5); this.segmentsW = Math.max(MIN_SEGMENTSW, ((_arg3) || (DEFAULT_SEGMENTSW))); this.segmentsH = Math.max(MIN_SEGMENTSH, ((_arg4) || (DEFAULT_SEGMENTSH))); if (_arg2 == 0){ _arg2 = DEFAULT_RADIUS; }; _local6 = DEFAULT_SCALE; buildSphere(_arg2); } private function buildSphere(_arg1:Number):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Array; var _local8:Array; var _local9:Array; var _local10:int; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Array; var _local15:Vertex3D; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:int; var _local20:Boolean; var _local21:Vertex3D; var _local22:Vertex3D; var _local23:Vertex3D; var _local24:Vertex3D; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:NumberUV; var _local30:NumberUV; var _local31:NumberUV; var _local32:NumberUV; _local5 = Math.max(3, this.segmentsW); _local6 = Math.max(2, this.segmentsH); _local7 = this.geometry.vertices; _local8 = this.geometry.faces; _local9 = new Array(); _local3 = 0; while (_local3 < (_local6 + 1)) { _local11 = Number((_local3 / _local6)); _local12 = (-(_arg1) * Math.cos((_local11 * Math.PI))); _local13 = (_arg1 * Math.sin((_local11 * Math.PI))); _local14 = new Array(); _local2 = 0; while (_local2 < _local5) { _local16 = Number(((2 * _local2) / _local5)); _local17 = (_local13 * Math.sin((_local16 * Math.PI))); _local18 = (_local13 * Math.cos((_local16 * Math.PI))); if (!(((((_local3 == 0)) || ((_local3 == _local6)))) && ((_local2 > 0)))){ _local15 = new Vertex3D(_local18, _local12, _local17); _local7.push(_local15); }; _local14.push(_local15); _local2++; }; _local9.push(_local14); _local3++; }; _local10 = _local9.length; _local3 = 0; while (_local3 < _local10) { _local19 = _local9[_local3].length; if (_local3 > 0){ _local2 = 0; while (_local2 < _local19) { _local20 = (_local2 == (_local19 - 0)); _local21 = _local9[_local3][(_local20) ? 0 : _local2]; _local22 = _local9[_local3][(((_local2 == 0)) ? _local19 : _local2 - 1)]; _local23 = _local9[(_local3 - 1)][(((_local2 == 0)) ? _local19 : _local2 - 1)]; _local24 = _local9[(_local3 - 1)][(_local20) ? 0 : _local2]; _local25 = (_local3 / (_local10 - 1)); _local26 = ((_local3 - 1) / (_local10 - 1)); _local27 = ((_local2 + 1) / _local19); _local28 = (_local2 / _local19); _local29 = new NumberUV(_local27, _local26); _local30 = new NumberUV(_local27, _local25); _local31 = new NumberUV(_local28, _local25); _local32 = new NumberUV(_local28, _local26); if (_local3 < (_local9.length - 1)){ _local8.push(new Triangle3D(this, new Array(_local21, _local22, _local23), material, new Array(_local30, _local31, _local32))); }; if (_local3 > 1){ _local8.push(new Triangle3D(this, new Array(_local21, _local23, _local24), material, new Array(_local30, _local32, _local29))); }; _local2++; }; }; _local3++; }; this.geometry.ready = true; } } }//package org.papervision3d.objects.primitives
Section 93
//DisplayObject3D (org.papervision3d.objects.DisplayObject3D) package org.papervision3d.objects { import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.core.math.*; import org.papervision3d.materials.utils.*; import org.papervision3d.core.data.*; import org.papervision3d.view.layer.*; import org.papervision3d.core.culling.*; import org.papervision3d.*; import org.papervision3d.core.ns.*; public class DisplayObject3D extends DisplayObjectContainer3D { public var extra:Object; public var frustumTestMethod:int;// = 0 private var _rotationX:Number; private var _rotationY:Number; private var _rotationZ:Number; private var position:Number3D; public var meshSort:uint;// = 1 public var materials:MaterialsList; public var id:int; private var xAxis:Number3D; private var zAxis:Number3D; private var _scaleDirty:Boolean;// = false private var _numClones:uint;// = 0 private var _scaleX:Number; private var _scaleY:Number; private var _scaleZ:Number; public var screen:Number3D; protected var _userData:UserData; public var screenZ:Number; protected var _useOwnContainer:Boolean; public var transform:Matrix3D; protected var _containerSortMode:int; public var name:String; private var target:Number3D; public var world:Matrix3D; private var _material:MaterialObject3D; public var culled:Boolean; public var visible:Boolean; public var parent:DisplayObjectContainer3D; public var geometry:GeometryObject3D; public var view:Matrix3D; protected var _scene:SceneObject3D;// = null protected var _containerBlendMode:int; public var faces:Array; private var yAxis:Number3D; protected var _filters:Array; private var _rotation:Number3D; protected var _sorted:Array; protected var _transformDirty:Boolean;// = false private var _rotationDirty:Boolean;// = false public static const MESH_SORT_CLOSE:uint = 3; public static const MESH_SORT_CENTER:uint = 1; public static const MESH_SORT_FAR:uint = 2; private static var entry_count:uint = 0; private static var LEFT:Number3D = new Number3D(-1, 0, 0); private static var _totalDisplayObjects:int = 0; private static var _tempMatrix:Matrix3D = Matrix3D.IDENTITY; public static var sortedArray:Array = new Array(); private static var BACKWARD:Number3D = new Number3D(0, 0, -1); private static var FORWARD:Number3D = new Number3D(0, 0, 1); private static var DOWN:Number3D = new Number3D(0, -1, 0); private static var _tempQuat:Quaternion = new Quaternion(); private static var toDEGREES:Number = 57.2957795130823; public static var faceLevelMode:Boolean; private static var UP:Number3D = new Number3D(0, 1, 0); private static var toRADIANS:Number = 0.0174532925199433; private static var RIGHT:Number3D = new Number3D(1, 0, 0); public function DisplayObject3D(_arg1:String=null, _arg2:GeometryObject3D=null, _arg3:Object=null):void{ var _local4:Number; _transformDirty = false; position = Number3D.ZERO; target = Number3D.ZERO; zAxis = Number3D.ZERO; xAxis = Number3D.ZERO; yAxis = Number3D.ZERO; _rotation = Number3D.ZERO; _rotationDirty = false; _scaleDirty = false; _numClones = 0; frustumTestMethod = FrustumTestMethod.BOUNDING_SPHERE; screen = new Number3D(); _scene = null; meshSort = MESH_SORT_CENTER; faces = new Array(); super(); if (_arg1 != null){ Papervision3D.log(("DisplayObject3D: " + _arg1)); }; this.culled = false; this.transform = Matrix3D.IDENTITY; this.world = Matrix3D.IDENTITY; this.view = Matrix3D.IDENTITY; if (_arg3 != null){ this.x = (_arg3.x) ? ((_arg3.x) || (0)) : 0; this.y = (_arg3.y) ? ((_arg3.y) || (0)) : 0; this.z = (_arg3.z) ? ((_arg3.z) || (0)) : 0; }; rotationX = (_arg3) ? ((_arg3.rotationX) || (0)) : 0; rotationY = (_arg3) ? ((_arg3.rotationY) || (0)) : 0; rotationZ = (_arg3) ? ((_arg3.rotationZ) || (0)) : 0; _local4 = (Papervision3D.usePERCENT) ? 100 : 1; scaleX = (_arg3) ? ((_arg3.scaleX) || (_local4)) : _local4; scaleY = (_arg3) ? ((_arg3.scaleY) || (_local4)) : _local4; scaleZ = (_arg3) ? ((_arg3.scaleZ) || (_local4)) : _local4; if (((_arg3) && (_arg3.extra))){ this.extra = _arg3.extra; }; this.visible = true; this.id = _totalDisplayObjects++; this.name = ((_arg1) || (String(this.id))); _numClones = 0; if (_arg2){ addGeometry(_arg2); }; } public function get containerSortMode():int{ return (_containerSortMode); } public function set z(_arg1:Number):void{ this.transform.n34 = _arg1; } public function set containerSortMode(_arg1:int):void{ _containerSortMode = _arg1; } public function get filters():Array{ return (_filters); } public function moveDown(_arg1:Number):void{ translate(_arg1, DOWN); } public function set scene(_arg1:SceneObject3D):void{ var _local2:DisplayObject3D; _scene = _arg1; for each (_local2 in this._childrenByName) { if (_local2.scene == null){ _local2.scene = _scene; }; }; } public function project(_arg1:DisplayObject3D, _arg2:RenderSessionData):Number{ var _local3:Number; var _local4:Number; var _local5:DisplayObject3D; if (this._transformDirty){ updateTransform(); }; this.world.calculateMultiply(_arg1.world, this.transform); if ((_arg2.camera is IObjectCuller)){ if (this === _arg2.camera){ this.culled = true; } else { this.culled = (IObjectCuller(_arg2.camera).testObject(this) < 0); }; if (this.culled){ _arg2.renderStatistics.culledObjects++; return (0); }; if (_arg1 !== _arg2.camera){ this.view.calculateMultiply4x4(_arg1.view, this.transform); }; } else { if (_arg1 !== _arg2.camera){ this.view.calculateMultiply(_arg1.view, this.transform); }; }; _local3 = 0; _local4 = 0; if (_useOwnContainer){ }; for each (_local5 in this._childrenByName) { if (_local5.visible){ _local3 = (_local3 + _local5.project(this, _arg2)); _local4++; }; }; return ((this.screenZ = (_local3 / _local4))); } public function set containerBlendMode(_arg1:int):void{ _containerBlendMode = _arg1; } public function get material():MaterialObject3D{ return (_material); } pv3dview function setLayerForViewport(_arg1:ViewportLayer):void{ } private function calculateScreenCoords(_arg1:CameraObject3D):void{ var _local2:Number; _local2 = ((_arg1.focus * _arg1.zoom) / (_arg1.focus + view.n34)); screen.x = (view.n14 * _local2); screen.y = (view.n24 * _local2); screen.z = view.n34; } public function lookAt(_arg1:DisplayObject3D, _arg2:Number3D=null):void{ var _local3:Matrix3D; position.reset(this.x, this.y, this.z); target.reset(_arg1.x, _arg1.y, _arg1.z); zAxis.copyFrom(target); zAxis.minusEq(position); zAxis.normalize(); if (zAxis.modulo > 0.1){ xAxis = Number3D.cross(zAxis, ((_arg2) || (UP)), xAxis); xAxis.normalize(); yAxis = Number3D.cross(zAxis, xAxis, yAxis); yAxis.normalize(); _local3 = this.transform; _local3.n11 = (xAxis.x * _scaleX); _local3.n21 = (xAxis.y * _scaleX); _local3.n31 = (xAxis.z * _scaleX); _local3.n12 = (-(yAxis.x) * _scaleY); _local3.n22 = (-(yAxis.y) * _scaleY); _local3.n32 = (-(yAxis.z) * _scaleY); _local3.n13 = (zAxis.x * _scaleZ); _local3.n23 = (zAxis.y * _scaleZ); _local3.n33 = (zAxis.z * _scaleZ); this._transformDirty = false; this._rotationDirty = true; } else { trace("lookAt error"); }; } public function set rotationX(_arg1:Number):void{ this._rotationX = (Papervision3D.useDEGREES) ? (-(_arg1) * toRADIANS) : -(_arg1); this._transformDirty = true; } public function get containerBlendMode():int{ return (_containerBlendMode); } public function get userData():UserData{ return (_userData); } public function set rotationZ(_arg1:Number):void{ this._rotationZ = (Papervision3D.useDEGREES) ? (-(_arg1) * toRADIANS) : -(_arg1); this._transformDirty = true; } public function set rotationY(_arg1:Number):void{ this._rotationY = (Papervision3D.useDEGREES) ? (-(_arg1) * toRADIANS) : -(_arg1); this._transformDirty = true; } public function addGeometry(_arg1:GeometryObject3D=null):void{ if (_arg1){ this.geometry = _arg1; }; } public function get sceneX():Number{ return (this.world.n14); } public function get sceneY():Number{ return (this.world.n24); } public function get scaleY():Number{ if (Papervision3D.usePERCENT){ return ((this._scaleY * 100)); }; return (this._scaleY); } public function get scaleZ():Number{ if (Papervision3D.usePERCENT){ return ((this._scaleZ * 100)); }; return (this._scaleZ); } public function moveUp(_arg1:Number):void{ translate(_arg1, UP); } public function get scaleX():Number{ if (Papervision3D.usePERCENT){ return ((this._scaleX * 100)); }; return (this._scaleX); } public function distanceTo(_arg1:DisplayObject3D):Number{ var _local2:Number; var _local3:Number; var _local4:Number; _local2 = (this.x - _arg1.x); _local3 = (this.y - _arg1.y); _local4 = (this.z - _arg1.z); return (Math.sqrt((((_local2 * _local2) + (_local3 * _local3)) + (_local4 * _local4)))); } public function get scale():Number{ if ((((this._scaleX == this._scaleY)) && ((this._scaleX == this._scaleZ)))){ if (Papervision3D.usePERCENT){ return ((this._scaleX * 100)); }; return (this._scaleX); //unresolved jump }; return (NaN); } public function set userData(_arg1:UserData):void{ _userData = _arg1; } public function get sceneZ():Number{ return (this.world.n34); } private function updateRotation():void{ _rotation = Matrix3D.matrix2euler(this.transform, _rotation); this._rotationX = (_rotation.x * toRADIANS); this._rotationY = (_rotation.y * toRADIANS); this._rotationZ = (_rotation.z * toRADIANS); this._rotationDirty = false; } public function hitTestObject(_arg1:DisplayObject3D, _arg2:Number=1):Boolean{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local3 = (this.x - _arg1.x); _local4 = (this.y - _arg1.y); _local5 = (this.z - _arg1.z); _local6 = (((_local3 * _local3) + (_local4 * _local4)) + (_local5 * _local5)); _local7 = (this.geometry) ? this.geometry.boundingSphere.maxDistance : 0; _local8 = (_arg1.geometry) ? _arg1.geometry.boundingSphere.maxDistance : 0; _local7 = (_local7 * _arg2); return (((_local7 + _local8) > _local6)); } override public function toString():String{ return (((((((this.name + ": x:") + Math.round(this.x)) + " y:") + Math.round(this.y)) + " z:") + Math.round(this.z))); } public function set material(_arg1:MaterialObject3D):void{ if (_material){ _material.unregisterObject(this); }; _material = _arg1; _material.registerObject(this); } public function copyTransform(_arg1):void{ var _local2:Matrix3D; var _local3:Matrix3D; _local2 = this.transform; _local3 = ((_arg1 is DisplayObject3D)) ? _arg1.transform : _arg1; _local2.n11 = _local3.n11; _local2.n12 = _local3.n12; _local2.n13 = _local3.n13; _local2.n14 = _local3.n14; _local2.n21 = _local3.n21; _local2.n22 = _local3.n22; _local2.n23 = _local3.n23; _local2.n24 = _local3.n24; _local2.n31 = _local3.n31; _local2.n32 = _local3.n32; _local2.n33 = _local3.n33; _local2.n34 = _local3.n34; this._transformDirty = false; this._rotationDirty = true; } public function get y():Number{ return (this.transform.n24); } public function get z():Number{ return (this.transform.n34); } public function roll(_arg1:Number):void{ var _local2:Number3D; _arg1 = (Papervision3D.useDEGREES) ? (_arg1 * toRADIANS) : _arg1; _local2 = FORWARD.clone(); if (this._transformDirty){ updateTransform(); }; Matrix3D.rotateAxis(transform, _local2); _tempMatrix = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, _arg1, _tempMatrix); this.transform.calculateMultiply3x3(_tempMatrix, transform); this._rotationDirty = true; } public function yaw(_arg1:Number):void{ var _local2:Number3D; _arg1 = (Papervision3D.useDEGREES) ? (_arg1 * toRADIANS) : _arg1; _local2 = UP.clone(); if (this._transformDirty){ updateTransform(); }; Matrix3D.rotateAxis(transform, _local2); _tempMatrix = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, _arg1, _tempMatrix); this.transform.calculateMultiply3x3(_tempMatrix, transform); this._rotationDirty = true; } public function get x():Number{ return (this.transform.n14); } public function moveLeft(_arg1:Number):void{ translate(_arg1, LEFT); } public function get scene():SceneObject3D{ return (_scene); } public function set useOwnContainer(_arg1:Boolean):void{ _useOwnContainer = _arg1; } public function set scale(_arg1:Number):void{ if (Papervision3D.usePERCENT){ _arg1 = (_arg1 / 100); }; this._scaleX = (this._scaleY = (this._scaleZ = _arg1)); this._transformDirty = true; } public function clone():DisplayObject3D{ var _local1:String; var _local2:DisplayObject3D; var _local3:DisplayObject3D; _local1 = ((this.name + "_") + _numClones++); _local2 = new DisplayObject3D(_local1); if (this.material){ _local2.material = this.material; }; if (this.materials){ _local2.materials = this.materials.clone(); }; if (this.geometry){ _local2.geometry = this.geometry.clone(_local2); _local2.geometry.ready = true; }; _local2.copyTransform(this.transform); for each (_local3 in this.children) { _local2.addChild(_local3.clone()); }; return (_local2); } public function getMaterialByName(_arg1:String):MaterialObject3D{ var _local2:MaterialObject3D; var _local3:DisplayObject3D; _local2 = this.materials.getMaterialByName(_arg1); if (_local2){ return (_local2); }; for each (_local3 in this._childrenByName) { _local2 = _local3.getMaterialByName(_arg1); if (_local2){ return (_local2); }; }; return (null); } public function get rotationY():Number{ if (this._rotationDirty){ updateRotation(); }; return ((Papervision3D.useDEGREES) ? (-(this._rotationY) * toDEGREES) : -(this._rotationY)); } public function get rotationZ():Number{ if (this._rotationDirty){ updateRotation(); }; return ((Papervision3D.useDEGREES) ? (-(this._rotationZ) * toDEGREES) : -(this._rotationZ)); } public function set scaleY(_arg1:Number):void{ if (Papervision3D.usePERCENT){ this._scaleY = (_arg1 / 100); } else { this._scaleY = _arg1; }; this._transformDirty = true; } public function set scaleZ(_arg1:Number):void{ if (Papervision3D.usePERCENT){ this._scaleZ = (_arg1 / 100); } else { this._scaleZ = _arg1; }; this._transformDirty = true; } public function get rotationX():Number{ if (this._rotationDirty){ updateRotation(); }; return ((Papervision3D.useDEGREES) ? (-(this._rotationX) * toDEGREES) : -(this._rotationX)); } public function translate(_arg1:Number, _arg2:Number3D):void{ var _local3:Number3D; _local3 = _arg2.clone(); if (this._transformDirty){ updateTransform(); }; Matrix3D.rotateAxis(transform, _local3); this.x = (this.x + (_arg1 * _local3.x)); this.y = (this.y + (_arg1 * _local3.y)); this.z = (this.z + (_arg1 * _local3.z)); } public function set scaleX(_arg1:Number):void{ if (Papervision3D.usePERCENT){ this._scaleX = (_arg1 / 100); } else { this._scaleX = _arg1; }; this._transformDirty = true; } public function pitch(_arg1:Number):void{ var _local2:Number3D; _arg1 = (Papervision3D.useDEGREES) ? (_arg1 * toRADIANS) : _arg1; _local2 = RIGHT.clone(); if (this._transformDirty){ updateTransform(); }; Matrix3D.rotateAxis(transform, _local2); _tempMatrix = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, _arg1, _tempMatrix); this.transform.calculateMultiply3x3(_tempMatrix, transform); this._rotationDirty = true; } public function moveForward(_arg1:Number):void{ translate(_arg1, FORWARD); } protected function updateTransform():void{ var _local1:Matrix3D; _tempQuat = Matrix3D.euler2quaternion(-(this._rotationY), -(this._rotationZ), this._rotationX, _tempQuat); _tempMatrix = Matrix3D.quaternion2matrix(_tempQuat.x, _tempQuat.y, _tempQuat.z, _tempQuat.w, _tempMatrix); _local1 = this.transform; _tempMatrix.n14 = _local1.n14; _tempMatrix.n24 = _local1.n24; _tempMatrix.n34 = _local1.n34; _local1.copy(_tempMatrix); _tempMatrix.reset(); _tempMatrix.n11 = this._scaleX; _tempMatrix.n22 = this._scaleY; _tempMatrix.n33 = this._scaleZ; this.transform.calculateMultiply(_local1, _tempMatrix); this._transformDirty = false; } public function copyPosition(_arg1):void{ var _local2:Matrix3D; var _local3:Matrix3D; _local2 = this.transform; _local3 = ((_arg1 is DisplayObject3D)) ? _arg1.transform : _arg1; _local2.n14 = _local3.n14; _local2.n24 = _local3.n24; _local2.n34 = _local3.n34; } public function get useOwnContainer():Boolean{ return (_useOwnContainer); } public function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = (this.x - _arg1); _local5 = (this.y - _arg2); _local6 = (this.z - _arg3); _local7 = (((_local4 * _local4) + (_local5 * _local5)) + (_local6 * _local6)); _local8 = (this.geometry) ? this.geometry.boundingSphere.maxDistance : 0; return ((_local8 > _local7)); } public function moveRight(_arg1:Number):void{ translate(_arg1, RIGHT); } public function moveBackward(_arg1:Number):void{ translate(_arg1, BACKWARD); } public function set x(_arg1:Number):void{ this.transform.n14 = _arg1; } public function materialsList():String{ var _local1:String; var _local2:String; var _local3:DisplayObject3D; _local1 = ""; for (_local2 in this.materials) { _local1 = (_local1 + (_local2 + "\n")); }; for each (_local3 in this._childrenByName) { for (_local2 in _local3.materials.materialsByName) { _local1 = (_local1 + (("+ " + _local2) + "\n")); }; }; return (_local1); } public function set y(_arg1:Number):void{ this.transform.n24 = _arg1; } public function set filters(_arg1:Array):void{ _filters = _arg1; } override public function addChild(_arg1:DisplayObject3D, _arg2:String=null):DisplayObject3D{ _arg1 = super.addChild(_arg1, _arg2); if (_arg1.scene == null){ _arg1.scene = scene; }; return (_arg1); } public static function get ZERO():DisplayObject3D{ return (new (DisplayObject3D)); } } }//package org.papervision3d.objects
Section 94
//BasicRenderEngine (org.papervision3d.render.BasicRenderEngine) package org.papervision3d.render { import org.papervision3d.core.render.data.*; import org.papervision3d.core.proto.*; import org.papervision3d.view.*; import org.papervision3d.core.render.command.*; import flash.geom.*; import org.papervision3d.core.render.material.*; import org.papervision3d.events.*; import org.papervision3d.core.render.*; import org.papervision3d.core.render.sort.*; import org.papervision3d.core.render.filter.*; import org.papervision3d.core.render.project.*; import org.papervision3d.core.utils.*; public class BasicRenderEngine extends AbstractRenderEngine implements IRenderEngine { public var sorter:IRenderSorter; public var projectionPipeline:ProjectionPipeline; protected var renderStatistics:RenderStatistics; protected var renderList:Array; protected var renderSessionData:RenderSessionData; protected var stopWatch:StopWatch; public var filter:IRenderFilter; protected var cleanRHD:RenderHitData; public function BasicRenderEngine():void{ cleanRHD = new RenderHitData(); super(); init(); } override public function removeFromRenderList(_arg1:IRenderListItem):int{ return (renderList.splice(renderList.indexOf(_arg1), 1)); } protected function doRender(_arg1:RenderSessionData):RenderStatistics{ var _local2:IRenderListItem; stopWatch.reset(); stopWatch.start(); MaterialManager.getInstance().updateMaterialsBeforeRender(_arg1); filter.filter(renderList); sorter.sort(renderList); while ((_local2 = renderList.pop())) { _local2.render(_arg1); _arg1.viewPort.lastRenderList.push(_local2); }; MaterialManager.getInstance().updateMaterialsAfterRender(_arg1); _arg1.renderStatistics.renderTime = stopWatch.stop(); _arg1.viewPort.updateAfterRender(); return (renderStatistics); } protected function init():void{ renderStatistics = new RenderStatistics(); projectionPipeline = new BasicProjectionPipeline(); stopWatch = new StopWatch(); sorter = new BasicRenderSorter(); filter = new BasicRenderFilter(); renderList = new Array(); renderSessionData = new RenderSessionData(); renderSessionData.renderer = this; } override public function renderScene(_arg1:SceneObject3D, _arg2:CameraObject3D, _arg3:Viewport3D, _arg4:Boolean=true):RenderStatistics{ _arg3.updateBeforeRender(); _arg3.lastRenderer = this; renderSessionData.scene = _arg1; renderSessionData.camera = _arg2; renderSessionData.viewPort = _arg3; renderSessionData.container = _arg3.containerSprite; renderSessionData.triangleCuller = _arg3.triangleCuller; renderSessionData.particleCuller = _arg3.particleCuller; renderSessionData.renderStatistics.clear(); projectionPipeline.project(renderSessionData); doRender(renderSessionData); dispatchEvent(new RendererEvent(RendererEvent.RENDER_DONE, renderSessionData)); return (renderSessionData.renderStatistics); } public function hitTestPoint2D(_arg1:Point, _arg2:Viewport3D):RenderHitData{ return (_arg2.hitTestPoint2D(_arg1)); } override public function addToRenderList(_arg1:IRenderListItem):int{ return (renderList.push(_arg1)); } } }//package org.papervision3d.render
Section 95
//Scene3D (org.papervision3d.scenes.Scene3D) package org.papervision3d.scenes { import org.papervision3d.core.proto.*; public class Scene3D extends SceneObject3D { } }//package org.papervision3d.scenes
Section 96
//ViewportBaseLayer (org.papervision3d.view.layer.ViewportBaseLayer) package org.papervision3d.view.layer { import org.papervision3d.view.*; public class ViewportBaseLayer extends ViewportLayer { public function ViewportBaseLayer(_arg1:Viewport3D){ super(_arg1, null); } } }//package org.papervision3d.view.layer
Section 97
//ViewportLayer (org.papervision3d.view.layer.ViewportLayer) package org.papervision3d.view.layer { import org.papervision3d.view.*; import flash.display.*; import org.papervision3d.objects.*; import org.papervision3d.core.ns.*; public class ViewportLayer extends Sprite { private var childLayers:Array; protected var _displayObject3D:DisplayObject3D; protected var viewport:Viewport3D; public function ViewportLayer(_arg1:Viewport3D, _arg2:DisplayObject3D){ this.viewport = _arg1; this.displayObject3D = _arg2; init(); } private function init():void{ childLayers = new Array(); } pv3dview function getChildLayerFor(_arg1:DisplayObject3D):ViewportLayer{ var _local2:ViewportLayer; if (_arg1){ _local2 = new ViewportLayer(viewport, _arg1); addChild(_local2); return (_local2); }; trace("Needs to be a do3d"); return (null); } pv3dview function clear():void{ var _local1:ViewportLayer; for each (_local1 in childLayers) { _local1.clear(); removeChild(_local1); }; graphics.clear(); } public function set displayObject3D(_arg1:DisplayObject3D):void{ _displayObject3D = _arg1; } public function get displayObject3D():DisplayObject3D{ return (_displayObject3D); } } }//package org.papervision3d.view.layer
Section 98
//Viewport3D (org.papervision3d.view.Viewport3D) package org.papervision3d.view { import org.papervision3d.core.render.data.*; import org.papervision3d.core.render.command.*; import flash.display.*; import flash.geom.*; import flash.events.*; import org.papervision3d.view.layer.*; import org.papervision3d.events.*; import org.papervision3d.render.*; import org.papervision3d.core.culling.*; import org.papervision3d.core.view.*; import org.papervision3d.core.render.*; import org.papervision3d.core.utils.*; public class Viewport3D extends Sprite implements IViewport3D { protected var _interactive:Boolean; public var cullingRectangle:Rectangle; protected var _viewportObjectFilter:ViewportObjectFilter; protected var _hWidth:Number; protected var _autoScaleToStage:Boolean; protected var _lastRenderer:IRenderEngine; public var sizeRectangle:Rectangle; protected var _hHeight:Number; protected var _containerSprite:ViewportBaseLayer; protected var _autoClipping:Boolean; protected var _height:Number; public var interactiveSceneManager:InteractiveSceneManager; public var lastRenderList:Array; protected var _autoCulling:Boolean; public var particleCuller:IParticleCuller; protected var _width:Number; public var triangleCuller:ITriangleCuller; public function Viewport3D(_arg1:Number=640, _arg2:Number=480, _arg3:Boolean=false, _arg4:Boolean=false, _arg5:Boolean=true, _arg6:Boolean=true){ this.interactive = _arg4; init(); this.viewportWidth = _arg1; this.viewportHeight = _arg2; this.autoClipping = _arg5; this.autoCulling = _arg6; this.autoScaleToStage = _arg3; } public function set autoCulling(_arg1:Boolean):void{ if (_arg1){ triangleCuller = new RectangleTriangleCuller(cullingRectangle); particleCuller = new RectangleParticleCuller(cullingRectangle); } else { if (!_arg1){ triangleCuller = new DefaultTriangleCuller(); particleCuller = new DefaultParticleCuller(); }; }; _autoCulling = _arg1; } protected function onStageResize(_arg1:Event=null):void{ if (_autoScaleToStage){ viewportWidth = stage.stageWidth; viewportHeight = stage.stageHeight; }; } public function hitTestMouse():RenderHitData{ var _local1:Point; _local1 = new Point(containerSprite.mouseX, containerSprite.mouseY); return (hitTestPoint2D(_local1)); } protected function init():void{ lastRenderList = new Array(); sizeRectangle = new Rectangle(); cullingRectangle = new Rectangle(); _containerSprite = new ViewportBaseLayer(this); addChild(_containerSprite); if (interactive){ interactiveSceneManager = new InteractiveSceneManager(this); }; addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); addEventListener(Event.REMOVED_FROM_STAGE, onRemovedFromStage); } public function set autoClipping(_arg1:Boolean):void{ if (_arg1){ scrollRect = sizeRectangle; } else { scrollRect = null; }; _autoClipping = _arg1; } public function updateAfterRender():void{ } public function get viewportHeight():Number{ return (_height); } public function hitTestPoint2D(_arg1:Point):RenderHitData{ var _local2:RenderableListItem; var _local3:RenderHitData; var _local4:IRenderListItem; var _local5:uint; if (interactive){ _local3 = new RenderHitData(); _local5 = lastRenderList.length; while ((_local4 = lastRenderList[--_local5])) { if ((_local4 is RenderableListItem)){ _local2 = (_local4 as RenderableListItem); _local3 = _local2.hitTestPoint2D(_arg1, _local3); if (_local3.hasHit){ return (_local3); }; }; }; }; return (new RenderHitData()); } public function get autoCulling():Boolean{ return (_autoCulling); } public function get viewportObjectFilter():ViewportObjectFilter{ return (_viewportObjectFilter); } public function updateBeforeRender():void{ lastRenderList.length = 0; _containerSprite.clear(); } protected function handleRenderDone(_arg1:RendererEvent):void{ interactiveSceneManager.updateRenderHitData(); } protected function onAddedToStage(_arg1:Event):void{ stage.addEventListener(Event.RESIZE, onStageResize); onStageResize(); } public function set viewportWidth(_arg1:Number):void{ _width = _arg1; _hWidth = (_arg1 / 2); containerSprite.x = _hWidth; cullingRectangle.x = -(_hWidth); cullingRectangle.width = _arg1; sizeRectangle.width = _arg1; if (_autoClipping){ scrollRect = sizeRectangle; }; } public function get autoClipping():Boolean{ return (_autoClipping); } public function get containerSprite():ViewportLayer{ return (_containerSprite); } public function set viewportObjectFilter(_arg1:ViewportObjectFilter):void{ _viewportObjectFilter = _arg1; } public function get viewportWidth():Number{ return (_width); } public function set autoScaleToStage(_arg1:Boolean):void{ _autoScaleToStage = _arg1; if (((_arg1) && (!((stage == null))))){ onStageResize(); }; } public function set interactive(_arg1:Boolean):void{ _interactive = _arg1; } public function set viewportHeight(_arg1:Number):void{ _height = _arg1; _hHeight = (_arg1 / 2); containerSprite.y = _hHeight; cullingRectangle.y = -(_hHeight); cullingRectangle.height = _arg1; sizeRectangle.height = _arg1; if (_autoClipping){ scrollRect = sizeRectangle; }; } public function get autoScaleToStage():Boolean{ return (_autoScaleToStage); } public function get interactive():Boolean{ return (_interactive); } public function set lastRenderer(_arg1:BasicRenderEngine):void{ if (!interactive){ return; }; _arg1.removeEventListener(RendererEvent.RENDER_DONE, handleRenderDone); _arg1.addEventListener(RendererEvent.RENDER_DONE, handleRenderDone); } protected function onRemovedFromStage(_arg1:Event):void{ stage.removeEventListener(Event.RESIZE, onStageResize); } } }//package org.papervision3d.view
Section 99
//Papervision3D (org.papervision3d.Papervision3D) package org.papervision3d { public class Papervision3D { public static var useDEGREES:Boolean = true; public static var VERBOSE:Boolean = true; public static var AUTHOR:String = "(c) 2006-2007 Copyright by Carlos Ulloa - | John Grden | Ralph Hauwert | Tim Knip | Andy Zupko"; public static var DATE:String = "24.03.08"; public static var NAME:String = "Papervision3D"; public static var VERSION:String = "Public Alpha 2.0 - Great White"; public static var usePERCENT:Boolean = false; public static function log(_arg1:String):void{ if (Papervision3D.VERBOSE){ trace(_arg1); }; } } }//package org.papervision3d
Section 100
//black (black) package { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.core.geom.*; public class black extends TriangleMesh3D { private var ve:Array; private var fa:Array; public function black(_arg1:MaterialObject3D, _arg2:Object=null){ super(_arg1, new Array(), new Array(), null, _arg2); ve = this.geometry.vertices; fa = this.geometry.faces; v(0.340393, 0.951679, 3.483663); v(0.950101, -0.651271, 1.014491); v(1.056463, -0.468207, 1.078831); v(1.084342, -0.800503, 0.922188); v(1.025527, -0.779726, 0.925886); v(0.956473, -0.637619, 0.986771); v(0.978805, -0.72021, 0.949484); v(0.973093, -0.736304, 0.976101); v(1.001408, -0.492246, 1.061402); v(1.016821, -0.647116, 1.450056); v(1.0447, -0.979412, 1.293413); v(0.961766, -0.671156, 1.432628); v(0.916832, -0.816529, 1.357997); v(1.021197, -0.79758, 0.951805); v(-1.056463, -0.468207, 1.078831); v(-1.084342, -0.800503, 0.922188); v(-1.025527, -0.779726, 0.925886); v(-0.956473, -0.637619, 0.986771); v(-0.978805, -0.72021, 0.949484); v(-0.964873, -0.554148, 1.027765); v(-1.001408, -0.492246, 1.061402); v(-1.016821, -0.647116, 1.450056); v(-1.0447, -0.979412, 1.293413); v(-0.961766, -0.671156, 1.432628); v(-0.916832, -0.816529, 1.357997); v(-0.925231, -0.733057, 1.39899); v(-0.939163, -0.899119, 1.320709); v(-0.985885, -0.958636, 1.297111); v(-0.996365, -0.5016, 1.091329); v(-0.958749, -0.565332, 1.056696); v(-0.950101, -0.651271, 1.014491); v(-0.973093, -0.736304, 0.976101); v(-1.021197, -0.79758, 0.951805); v(-0.96273, -0.653399, 1.406302); v(-0.925115, -0.717131, 1.37167); v(-0.916467, -0.80307, 1.329465); v(-0.939459, -0.888103, 1.291075); v(-0.987562, -0.949379, 1.266779); v(-1.019412, -0.628648, 1.424246); v(-1.048116, -0.97077, 1.262972); v(-1.08175, -0.818971, 0.947998); v(-1.053047, -0.476849, 1.109273); v(0.987562, -0.949379, 1.266779); v(1.019412, -0.628648, 1.424246); v(0.332908, 1.028881, 3.469695); v(0.3287, 1.004957, 3.491114); v(0.342716, 0.970298, 3.475237); v(1.048116, -0.97077, 1.262972); v(0.96273, -0.653399, 1.406302); v(1.08175, -0.818971, 0.947998); v(0.964873, -0.554148, 1.027765); v(0.303032, 0.997256, 3.520582); v(1.053047, -0.476849, 1.109273); v(0.916467, -0.80307, 1.329465); v(0.341869, 0.993308, 3.470974); v(0.925115, -0.717131, 1.37167); v(0.325405, 0.951109, 3.507307); v(-0.341869, 0.993308, 3.470974); v(0.939459, -0.888103, 1.291075); v(0.925231, -0.733057, 1.39899); v(-0.340393, 0.951679, 3.483663); v(-0.317201, 0.970814, 3.51394); v(-0.303032, 0.997256, 3.520582); v(-0.325405, 0.951109, 3.507307); v(0.939163, -0.899119, 1.320709); v(0.317201, 0.970814, 3.51394); v(0.985885, -0.958636, 1.297111); v(-0.332908, 1.028881, 3.469695); v(-0.3287, 1.004957, 3.491114); v(-0.342716, 0.970298, 3.475237); v(0.996365, -0.5016, 1.091329); v(0.958749, -0.565332, 1.056696); f2(32, 16, 40); f2(16, 15, 40); f2(31, 18, 16); f2(31, 16, 32); f2(30, 17, 18); f2(30, 18, 31); f2(29, 19, 30); f2(19, 17, 30); f2(28, 20, 29); f2(20, 19, 29); f2(41, 14, 28); f2(14, 20, 28); f2(27, 37, 22); f2(37, 39, 22); f2(26, 36, 27); f2(36, 37, 27); f2(24, 35, 26); f2(35, 36, 26); f2(25, 34, 35); f2(25, 35, 24); f2(23, 33, 34); f2(23, 34, 25); f2(21, 38, 23); f2(38, 33, 23); f2(4, 13, 49); f2(3, 4, 49); f2(6, 7, 4); f2(4, 7, 13); f2(5, 1, 6); f2(6, 1, 7); f2(50, 71, 1); f2(5, 50, 1); f2(8, 70, 71); f2(50, 8, 71); f2(2, 52, 70); f2(8, 2, 70); f2(42, 66, 10); f2(47, 42, 10); f2(58, 64, 66); f2(42, 58, 66); f2(53, 12, 64); f2(58, 53, 64); f2(55, 59, 53); f2(53, 59, 12); f2(48, 11, 55); f2(55, 11, 59); f2(43, 9, 11); f2(48, 43, 11); f2(45, 65, 51); f2(65, 0, 56); f2(45, 0, 65); f2(46, 0, 45); f2(45, 44, 54); f2(46, 45, 54); f2(61, 68, 62); f2(60, 61, 63); f2(68, 61, 60); f2(60, 69, 68); f2(67, 68, 57); f2(68, 69, 57); this.x = 0; this.y = 0; this.z = 0; this.rotationX = 0; this.rotationY = 0; this.rotationZ = 0; this.scaleX = 1; this.scaleY = 1; this.scaleZ = 1; this.geometry.ready = true; } public function f(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number):void{ var _local13:Triangle3D; _local13 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, [new NumberUV(_arg4, _arg5), new NumberUV(_arg6, _arg7), new NumberUV(_arg8, _arg9)]); _local13.faceNormal = new Number3D(_arg10, _arg11, _arg12); fa.push(_local13); } public function f2(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Triangle3D; _local4 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, []); fa.push(_local4); } public function v(_arg1:Number, _arg2:Number, _arg3:Number):void{ ve.push(new Vertex3D(_arg1, _arg2, _arg3)); } } }//package
Section 101
//blackl (blackl) package { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.core.geom.*; public class blackl extends TriangleMesh3D { private var ve:Array; private var fa:Array; public function blackl(_arg1:MaterialObject3D, _arg2:Object=null){ super(_arg1, new Array(), new Array(), null, _arg2); ve = this.geometry.vertices; fa = this.geometry.faces; v(-1.028059, -0.789783, 0.964753); v(-0.97226, -0.736358, 0.991347); v(-0.942352, -0.652928, 1.032373); v(-0.954134, -0.535809, 1.090311); v(-0.964184, -0.668541, 1.490601); v(-0.916056, -0.720373, 1.465472); v(-0.91232, -0.89115, 1.381119); v(-1.019425, -0.971238, 1.341604); v(-1.038255, -0.808984, 0.98746); v(-1.00821, -0.792997, 0.995263); v(-0.99692, -0.960487, 1.314756); v(-0.988259, -0.496299, 1.14008); v(-1.049698, -0.459685, 1.127908); v(-1.046213, -0.470408, 1.152717); v(-1.069439, -0.812643, 0.985674); v(-1.072974, -0.798079, 0.960613); v(-1.000772, -0.639456, 1.475272); v(-0.997615, -0.65603, 1.497213); v(-1.023476, -0.964504, 1.312748); v(-1.004106, -0.474906, 1.120397); v(-1.009195, -0.482439, 1.146845); v(1.028059, -0.789783, 0.964753); v(0.97226, -0.736358, 0.991347); v(0.942352, -0.652928, 1.032373); v(0.954134, -0.535809, 1.090311); v(0.964184, -0.668541, 1.490601); v(0.916056, -0.720373, 1.465472); v(0.91232, -0.89115, 1.381119); v(1.019425, -0.971238, 1.341604); v(1.038255, -0.808984, 0.98746); v(1.00821, -0.792997, 0.995263); v(0.99692, -0.960487, 1.314756); v(0.988259, -0.496299, 1.14008); v(1.049698, -0.459685, 1.127908); v(1.046213, -0.470408, 1.152717); v(1.069439, -0.812643, 0.985674); v(1.072974, -0.798079, 0.960613); v(1.000772, -0.639456, 1.475272); v(0.997615, -0.65603, 1.497213); v(1.023476, -0.964504, 1.312748); v(1.004106, -0.474906, 1.120397); v(1.009195, -0.482439, 1.146845); v(-0.962202, -0.525038, 1.126053); v(-0.942726, -0.576464, 1.100952); v(-0.938198, -0.663264, 1.058585); v(-0.958193, -0.731003, 1.025522); v(-0.979621, -0.766935, 1.007984); v(-0.946388, -0.665937, 1.462032); v(-0.967451, -0.945976, 1.322012); v(-0.940336, -0.920178, 1.334911); v(-0.920365, -0.887615, 1.351193); v(-0.924797, -0.692415, 1.448793); v(-0.93882, -0.929307, 1.362304); v(-0.972282, -0.647462, 1.471269); v(-0.909436, -0.726722, 1.431639); v(-0.899851, -0.807895, 1.391053); v(-0.899574, -0.820089, 1.416222); v(-0.321206, 0.909768, 3.448249); v(-0.307712, 0.875309, 3.465341); v(-0.29242, 0.879449, 3.493208); v(-0.324148, 0.943102, 3.445557); v(-0.312916, 1.021541, 3.449333); v(-0.288508, 0.906794, 3.503684); v(-0.310479, 0.989794, 3.473488); v(-0.285051, 0.997699, 3.506628); v(-0.283838, 0.954874, 3.510079); v(0.962202, -0.525038, 1.126053); v(0.942726, -0.576464, 1.100952); v(0.938198, -0.663264, 1.058585); v(0.958193, -0.731003, 1.025522); v(0.979621, -0.766935, 1.007984); v(0.946388, -0.665937, 1.462032); v(0.967451, -0.945976, 1.322012); v(0.940336, -0.920178, 1.334911); v(0.920365, -0.887615, 1.351193); v(0.924797, -0.692415, 1.448793); v(0.93882, -0.929307, 1.362304); v(0.972282, -0.647462, 1.471269); v(0.909436, -0.726722, 1.431639); v(0.899851, -0.807895, 1.391053); v(0.899574, -0.820089, 1.416222); v(0.321206, 0.909768, 3.448249); v(0.307712, 0.875309, 3.465341); v(0.29242, 0.879449, 3.493208); v(0.324148, 0.943102, 3.445557); v(0.312916, 1.021541, 3.449333); v(0.288508, 0.906794, 3.503684); v(0.310479, 0.989794, 3.473488); v(0.285051, 0.997699, 3.506628); v(0.283838, 0.954874, 3.510079); f2(63, 65, 62); f2(63, 64, 65); f2(57, 63, 62); f2(57, 62, 59); f2(61, 63, 60); f2(57, 59, 58); f2(60, 63, 57); f2(10, 18, 7); f2(7, 48, 10); f2(52, 48, 7); f2(52, 49, 48); f2(6, 49, 52); f2(6, 50, 49); f2(56, 50, 6); f2(56, 55, 50); f2(5, 55, 56); f2(5, 54, 55); f2(5, 51, 54); f2(4, 51, 5); f2(4, 47, 51); f2(4, 53, 47); f2(17, 53, 4); f2(16, 53, 17); f2(42, 3, 43); f2(43, 2, 44); f2(43, 3, 2); f2(44, 1, 45); f2(44, 2, 1); f2(45, 1, 46); f2(46, 0, 9); f2(1, 0, 46); f2(9, 0, 8); f2(0, 15, 8); f2(8, 15, 14); f2(3, 42, 11); f2(11, 19, 3); f2(20, 19, 11); f2(13, 19, 20); f2(12, 19, 13); f2(89, 87, 86); f2(88, 87, 89); f2(87, 81, 86); f2(86, 81, 83); f2(87, 85, 84); f2(83, 81, 82); f2(87, 84, 81); f2(39, 31, 28); f2(72, 28, 31); f2(72, 76, 28); f2(73, 76, 72); f2(73, 27, 76); f2(74, 27, 73); f2(74, 80, 27); f2(79, 80, 74); f2(79, 26, 80); f2(78, 26, 79); f2(75, 26, 78); f2(75, 25, 26); f2(71, 25, 75); f2(77, 25, 71); f2(77, 38, 25); f2(77, 37, 38); f2(24, 66, 67); f2(23, 67, 68); f2(24, 67, 23); f2(22, 68, 69); f2(23, 68, 22); f2(22, 69, 70); f2(21, 70, 30); f2(22, 70, 21); f2(21, 30, 29); f2(36, 21, 29); f2(36, 29, 35); f2(66, 24, 32); f2(40, 32, 24); f2(40, 41, 32); f2(40, 34, 41); f2(40, 33, 34); this.x = 0; this.y = 0; this.z = 0; this.rotationX = 0; this.rotationY = 0; this.rotationZ = 0; this.scaleX = 1; this.scaleY = 1; this.scaleZ = 1; this.geometry.ready = true; } public function f(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number):void{ var _local13:Triangle3D; _local13 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, [new NumberUV(_arg4, _arg5), new NumberUV(_arg6, _arg7), new NumberUV(_arg8, _arg9)]); _local13.faceNormal = new Number3D(_arg10, _arg11, _arg12); fa.push(_local13); } public function f2(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Triangle3D; _local4 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, []); fa.push(_local4); } public function v(_arg1:Number, _arg2:Number, _arg3:Number):void{ ve.push(new Vertex3D(_arg1, _arg2, _arg3)); } } }//package
Section 102
//blue (blue) package { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.core.geom.*; public class blue extends TriangleMesh3D { private var ve:Array; private var fa:Array; public function blue(_arg1:MaterialObject3D, _arg2:Object=null){ super(_arg1, new Array(), new Array(), null, _arg2); ve = this.geometry.vertices; fa = this.geometry.faces; v(-0.23196, -0.838472, 0.904508); v(-0.19066, -0.777476, 0.971936); v(0.120496, -0.831659, 0.94364); v(0.140237, -0.714831, 1.038933); v(0.23196, -0.838472, 0.904508); v(0.19066, -0.777476, 0.971936); v(0, -0.638232, 1.12605); v(0, -0.723002, 1.050025); v(0, -0.862257, 0.926139); v(-0.120496, -0.831659, 0.94364); v(-0.140237, -0.714831, 1.038933); v(-0.255962, -0.901482, 0.832066); v(0, -0.948811, 0.83146); v(0.255962, -0.901482, 0.832066); f2(7, 10, 6); f2(10, 7, 9); f2(8, 11, 9); f2(8, 12, 11); f2(10, 9, 1); f2(9, 0, 1); f2(11, 0, 9); f2(3, 7, 6); f2(7, 3, 2); f2(13, 8, 2); f2(12, 8, 13); f2(2, 3, 5); f2(4, 2, 5); f2(4, 13, 2); this.x = 0; this.y = 0; this.z = 0; this.rotationX = 0; this.rotationY = 0; this.rotationZ = 0; this.scaleX = 1; this.scaleY = 1; this.scaleZ = 1; this.geometry.ready = true; } public function f(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number):void{ var _local13:Triangle3D; _local13 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, [new NumberUV(_arg4, _arg5), new NumberUV(_arg6, _arg7), new NumberUV(_arg8, _arg9)]); _local13.faceNormal = new Number3D(_arg10, _arg11, _arg12); fa.push(_local13); } public function f2(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Triangle3D; _local4 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, []); fa.push(_local4); } public function v(_arg1:Number, _arg2:Number, _arg3:Number):void{ ve.push(new Vertex3D(_arg1, _arg2, _arg3)); } } }//package
Section 103
//bluel (bluel) package { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.core.geom.*; public class bluel extends TriangleMesh3D { private var ve:Array; private var fa:Array; public function bluel(_arg1:MaterialObject3D, _arg2:Object=null){ super(_arg1, new Array(), new Array(), null, _arg2); ve = this.geometry.vertices; fa = this.geometry.faces; v(0.070849, -0.471195, 1.254381); v(0.189312, -0.610377, 1.12218); v(0.248162, -0.727948, 1.00483); v(-0.093081, -0.657593, 1.083644); v(-0.134396, -0.779515, 0.977683); v(-0.070849, -0.471195, 1.254381); v(-0.189312, -0.610377, 1.12218); v(-0.248162, -0.727948, 1.00483); v(0.093081, -0.657593, 1.083644); v(0.134396, -0.779515, 0.977683); v(0, -0.793027, 0.972985); v(0, -0.690649, 1.057591); v(0, -0.520112, 1.210722); v(0, -0.442341, 1.282039); f2(10, 4, 11); f2(4, 3, 11); f2(4, 6, 3); f2(3, 6, 12); f2(5, 12, 6); f2(7, 6, 4); f2(12, 5, 13); f2(9, 10, 11); f2(8, 9, 11); f2(1, 9, 8); f2(1, 8, 12); f2(12, 0, 1); f2(1, 2, 9); f2(0, 12, 13); this.x = 0; this.y = 0; this.z = 0; this.rotationX = 0; this.rotationY = 0; this.rotationZ = 0; this.scaleX = 1; this.scaleY = 1; this.scaleZ = 1; this.geometry.ready = true; } public function f(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number):void{ var _local13:Triangle3D; _local13 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, [new NumberUV(_arg4, _arg5), new NumberUV(_arg6, _arg7), new NumberUV(_arg8, _arg9)]); _local13.faceNormal = new Number3D(_arg10, _arg11, _arg12); fa.push(_local13); } public function f2(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Triangle3D; _local4 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, []); fa.push(_local4); } public function v(_arg1:Number, _arg2:Number, _arg3:Number):void{ ve.push(new Vertex3D(_arg1, _arg2, _arg3)); } } }//package
Section 104
//bright (bright) package { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.core.geom.*; public class bright extends TriangleMesh3D { private var ve:Array; private var fa:Array; public function bright(_arg1:MaterialObject3D, _arg2:Object=null){ super(_arg1, new Array(), new Array(), null, _arg2); ve = this.geometry.vertices; fa = this.geometry.faces; v(-0.26283, 1.03365, 3.526517); v(0.30539, 1.06908, 3.472873); v(0.284567, 1.087155, 3.471694); v(0.271131, 1.072901, 3.497926); v(0.322814, 1.045925, 3.472574); v(0.303032, 0.997256, 3.520582); v(0.332908, 1.028881, 3.469695); v(0.311246, 1.032373, 3.497732); v(0.3287, 1.004957, 3.491114); v(0.269808, 1.022363, 3.527216); v(0.281643, 1.009809, 3.529164); v(0.26283, 1.03365, 3.526517); v(-0.30539, 1.06908, 3.472873); v(-0.284567, 1.087155, 3.471694); v(-0.271131, 1.072901, 3.497926); v(-0.322814, 1.045925, 3.472574); v(-0.303032, 0.997256, 3.520582); v(-0.332908, 1.028881, 3.469695); v(-0.311246, 1.032373, 3.497732); v(-0.3287, 1.004957, 3.491114); v(-0.269808, 1.022363, 3.527216); v(-0.281643, 1.009809, 3.529164); f2(2, 1, 3); f2(7, 1, 4); f2(7, 4, 6); f2(3, 9, 11); f2(8, 7, 6); f2(8, 5, 7); f2(5, 10, 7); f2(7, 10, 9); f2(7, 9, 3); f2(7, 3, 1); f2(12, 13, 14); f2(12, 18, 15); f2(15, 18, 17); f2(14, 0, 20); f2(18, 19, 17); f2(16, 19, 18); f2(21, 16, 18); f2(21, 18, 20); f2(20, 18, 14); f2(14, 18, 12); this.x = 0; this.y = 0; this.z = 0; this.rotationX = 0; this.rotationY = 0; this.rotationZ = 0; this.scaleX = 1; this.scaleY = 1; this.scaleZ = 1; this.geometry.ready = true; } public function f(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number):void{ var _local13:Triangle3D; _local13 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, [new NumberUV(_arg4, _arg5), new NumberUV(_arg6, _arg7), new NumberUV(_arg8, _arg9)]); _local13.faceNormal = new Number3D(_arg10, _arg11, _arg12); fa.push(_local13); } public function f2(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Triangle3D; _local4 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, []); fa.push(_local4); } public function v(_arg1:Number, _arg2:Number, _arg3:Number):void{ ve.push(new Vertex3D(_arg1, _arg2, _arg3)); } } }//package
Section 105
//iris1 (iris1) package { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.core.geom.*; public class iris1 extends TriangleMesh3D { private var ve:Array; private var fa:Array; public function iris1(_arg1:MaterialObject3D, _arg2:Object=null){ super(_arg1, new Array(), new Array(), null, _arg2); ve = this.geometry.vertices; fa = this.geometry.faces; v(-0.322714, 1.064236, 3.441005); v(-0.337782, 0.876889, 3.440976); v(-0.356404, 0.993553, 3.41582); v(-0.344434, 1.032869, 3.424522); v(-0.359484, 0.948553, 3.415129); v(-0.353384, 0.908439, 3.42228); v(-0.319415, 0.867361, 3.479494); v(-0.291206, 0.842774, 3.501906); v(-0.302891, 0.87789, 3.515872); v(-0.359593, 1.000829, 3.379836); v(-0.364387, 0.955139, 3.372185); v(-0.34836, 1.03866, 3.394109); v(-0.361877, 0.915586, 3.371029); v(-0.343212, 0.868673, 3.380402); v(-0.30747, 1.096933, 3.428099); v(-0.26283, 1.03365, 3.526517); v(-0.273713, 0.858292, 3.54597); v(0.284567, 1.087155, 3.471694); v(0.27849, 0.977884, 3.540697); v(0.284654, 0.938484, 3.54143); v(0.331132, 1.066965, 3.41222); v(0.263765, 0.893572, 3.563177); v(0.257383, 0.970864, 3.553974); v(0.269808, 1.022363, 3.527216); v(0.290957, 0.912991, 3.536918); v(0.304785, 1.077832, 3.455468); v(0.316536, 0.843312, 3.442919); v(0.281643, 1.009809, 3.529164); v(0.322714, 1.064236, 3.441005); v(0.337782, 0.876889, 3.440976); v(0.356404, 0.993553, 3.41582); v(0.344434, 1.032869, 3.424522); v(0.359484, 0.948553, 3.415129); v(0.353384, 0.908439, 3.42228); v(0.319415, 0.867361, 3.479494); v(0.291206, 0.842774, 3.501906); v(0.302891, 0.87789, 3.515872); v(0.359593, 1.000829, 3.379836); v(0.364387, 0.955139, 3.372185); v(0.34836, 1.03866, 3.394109); v(0.361877, 0.915586, 3.371029); v(0.343212, 0.868673, 3.380402); v(0.30747, 1.096933, 3.428099); v(0.26283, 1.03365, 3.526517); v(0.273713, 0.858292, 3.54597); v(-0.284567, 1.087155, 3.471694); v(-0.27849, 0.977884, 3.540697); v(-0.284654, 0.938484, 3.54143); v(-0.331132, 1.066965, 3.41222); v(-0.263765, 0.893572, 3.563177); v(-0.257383, 0.970864, 3.553974); v(-0.269808, 1.022363, 3.527216); v(-0.290957, 0.912991, 3.536918); v(-0.304785, 1.077832, 3.455468); v(-0.316536, 0.843312, 3.442919); v(-0.281643, 1.009809, 3.529164); f2(23, 27, 22); f2(27, 18, 22); f2(24, 36, 21); f2(17, 42, 25); f2(43, 23, 22); f2(22, 18, 19); f2(22, 19, 21); f2(21, 19, 24); f2(28, 25, 42); f2(33, 41, 29); f2(26, 34, 29); f2(35, 36, 34); f2(34, 26, 35); f2(29, 41, 26); f2(40, 41, 33); f2(38, 40, 32); f2(37, 38, 30); f2(39, 37, 31); f2(20, 39, 31); f2(42, 20, 28); f2(32, 40, 33); f2(30, 38, 32); f2(31, 37, 30); f2(28, 20, 31); f2(21, 36, 44); f2(35, 44, 36); f2(55, 51, 50); f2(46, 55, 50); f2(8, 52, 49); f2(14, 45, 53); f2(51, 15, 50); f2(46, 50, 47); f2(47, 50, 49); f2(47, 49, 52); f2(53, 0, 14); f2(13, 5, 1); f2(6, 54, 1); f2(8, 7, 6); f2(54, 6, 7); f2(13, 1, 54); f2(13, 12, 5); f2(12, 10, 4); f2(10, 9, 2); f2(9, 11, 3); f2(11, 48, 3); f2(14, 0, 48); f2(12, 4, 5); f2(10, 2, 4); f2(9, 3, 2); f2(48, 0, 3); f2(8, 49, 16); f2(16, 7, 8); this.x = 0; this.y = 0; this.z = 0; this.rotationX = 0; this.rotationY = 0; this.rotationZ = 0; this.scaleX = 1; this.scaleY = 1; this.scaleZ = 1; this.geometry.ready = true; } public function f(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number):void{ var _local13:Triangle3D; _local13 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, [new NumberUV(_arg4, _arg5), new NumberUV(_arg6, _arg7), new NumberUV(_arg8, _arg9)]); _local13.faceNormal = new Number3D(_arg10, _arg11, _arg12); fa.push(_local13); } public function f2(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Triangle3D; _local4 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, []); fa.push(_local4); } public function v(_arg1:Number, _arg2:Number, _arg3:Number):void{ ve.push(new Vertex3D(_arg1, _arg2, _arg3)); } } }//package
Section 106
//iris2 (iris2) package { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.core.geom.*; public class iris2 extends TriangleMesh3D { private var ve:Array; private var fa:Array; public function iris2(_arg1:MaterialObject3D, _arg2:Object=null){ super(_arg1, new Array(), new Array(), null, _arg2); ve = this.geometry.vertices; fa = this.geometry.faces; v(-0.338393, 1.031013, 3.44977); v(-0.348949, 0.997095, 3.446351); v(-0.304277, 1.075267, 3.462557); v(-0.322714, 1.064236, 3.441005); v(-0.337782, 0.876889, 3.440976); v(-0.356404, 0.993553, 3.41582); v(-0.344434, 1.032869, 3.424522); v(-0.359484, 0.948553, 3.415129); v(-0.353384, 0.908439, 3.42228); v(-0.319415, 0.867361, 3.479494); v(-0.302891, 0.87789, 3.515872); v(0.286978, 0.986876, 3.535494); v(0.284567, 1.087155, 3.471694); v(0.27849, 0.977884, 3.540697); v(0.284654, 0.938484, 3.54143); v(0.331314, 0.904344, 3.488576); v(0.318832, 0.909529, 3.509017); v(0.312275, 0.923003, 3.518822); v(0.299411, 0.949333, 3.53056); v(0.340774, 0.911067, 3.4705); v(0.351575, 0.962702, 3.447894); v(0.348482, 0.932109, 3.455333); v(0.320132, 1.060453, 3.456326); v(0.290957, 0.912991, 3.536918); v(0.304785, 1.077832, 3.455468); v(0.281643, 1.009809, 3.529164); v(0.338393, 1.031013, 3.44977); v(0.348949, 0.997095, 3.446351); v(0.304277, 1.075267, 3.462557); v(0.322714, 1.064236, 3.441005); v(0.337782, 0.876889, 3.440976); v(0.356404, 0.993553, 3.41582); v(0.344434, 1.032869, 3.424522); v(0.359484, 0.948553, 3.415129); v(0.353384, 0.908439, 3.42228); v(0.319415, 0.867361, 3.479494); v(0.302891, 0.87789, 3.515872); v(-0.286978, 0.986876, 3.535494); v(-0.284567, 1.087155, 3.471694); v(-0.27849, 0.977884, 3.540697); v(-0.284654, 0.938484, 3.54143); v(-0.331314, 0.904344, 3.488576); v(-0.318832, 0.909529, 3.509017); v(-0.312275, 0.923003, 3.518822); v(-0.299411, 0.949333, 3.53056); v(-0.340774, 0.911067, 3.4705); v(-0.351575, 0.962702, 3.447894); v(-0.348482, 0.932109, 3.455333); v(-0.320132, 1.060453, 3.456326); v(-0.290957, 0.912991, 3.536918); v(-0.304785, 1.077832, 3.455468); v(-0.281643, 1.009809, 3.529164); f2(14, 13, 11); f2(25, 11, 13); f2(17, 16, 36); f2(23, 17, 36); f2(11, 18, 14); f2(18, 17, 14); f2(23, 14, 17); f2(16, 15, 36); f2(24, 28, 12); f2(24, 29, 28); f2(29, 22, 28); f2(29, 32, 22); f2(22, 32, 26); f2(26, 32, 31); f2(31, 27, 26); f2(27, 31, 33); f2(33, 20, 27); f2(20, 33, 34); f2(34, 21, 20); f2(21, 34, 30); f2(30, 19, 21); f2(19, 30, 15); f2(30, 35, 15); f2(36, 15, 35); f2(39, 40, 37); f2(37, 51, 39); f2(42, 43, 10); f2(43, 49, 10); f2(44, 37, 40); f2(43, 44, 40); f2(40, 49, 43); f2(41, 42, 10); f2(2, 50, 38); f2(3, 50, 2); f2(48, 3, 2); f2(6, 3, 48); f2(48, 0, 6); f2(6, 0, 5); f2(5, 0, 1); f2(5, 1, 7); f2(46, 7, 1); f2(7, 46, 8); f2(47, 8, 46); f2(8, 47, 4); f2(45, 4, 47); f2(4, 45, 41); f2(9, 4, 41); f2(41, 10, 9); this.x = 0; this.y = 0; this.z = 0; this.rotationX = 0; this.rotationY = 0; this.rotationZ = 0; this.scaleX = 1; this.scaleY = 1; this.scaleZ = 1; this.geometry.ready = true; } public function f(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number):void{ var _local13:Triangle3D; _local13 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, [new NumberUV(_arg4, _arg5), new NumberUV(_arg6, _arg7), new NumberUV(_arg8, _arg9)]); _local13.faceNormal = new Number3D(_arg10, _arg11, _arg12); fa.push(_local13); } public function f2(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Triangle3D; _local4 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, []); fa.push(_local4); } public function v(_arg1:Number, _arg2:Number, _arg3:Number):void{ ve.push(new Vertex3D(_arg1, _arg2, _arg3)); } } }//package
Section 107
//iris3 (iris3) package { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.core.geom.*; public class iris3 extends TriangleMesh3D { private var ve:Array; private var fa:Array; public function iris3(_arg1:MaterialObject3D, _arg2:Object=null){ super(_arg1, new Array(), new Array(), null, _arg2); ve = this.geometry.vertices; fa = this.geometry.faces; v(-0.338393, 1.031013, 3.44977); v(-0.348949, 0.997095, 3.446351); v(-0.304277, 1.075267, 3.462557); v(-0.341869, 0.993308, 3.470974); v(0.30539, 1.06908, 3.472873); v(0.286978, 0.986876, 3.535494); v(0.284567, 1.087155, 3.471694); v(0.331314, 0.904344, 3.488576); v(0.318832, 0.909529, 3.509017); v(0.322814, 1.045925, 3.472574); v(0.340393, 0.951679, 3.483663); v(0.317201, 0.970814, 3.51394); v(0.303032, 0.997256, 3.520582); v(0.312275, 0.923003, 3.518822); v(0.299411, 0.949333, 3.53056); v(0.340774, 0.911067, 3.4705); v(0.351575, 0.962702, 3.447894); v(0.348482, 0.932109, 3.455333); v(0.320132, 1.060453, 3.456326); v(0.332908, 1.028881, 3.469695); v(0.342716, 0.970298, 3.475237); v(0.281643, 1.009809, 3.529164); v(0.338393, 1.031013, 3.44977); v(0.348949, 0.997095, 3.446351); v(0.304277, 1.075267, 3.462557); v(0.341869, 0.993308, 3.470974); v(0.325405, 0.951109, 3.507307); v(-0.30539, 1.06908, 3.472873); v(-0.286978, 0.986876, 3.535494); v(-0.284567, 1.087155, 3.471694); v(-0.331314, 0.904344, 3.488576); v(-0.318832, 0.909529, 3.509017); v(-0.322814, 1.045925, 3.472574); v(-0.340393, 0.951679, 3.483663); v(-0.317201, 0.970814, 3.51394); v(-0.303032, 0.997256, 3.520582); v(-0.325405, 0.951109, 3.507307); v(-0.312275, 0.923003, 3.518822); v(-0.299411, 0.949333, 3.53056); v(-0.340774, 0.911067, 3.4705); v(-0.351575, 0.962702, 3.447894); v(-0.348482, 0.932109, 3.455333); v(-0.320132, 1.060453, 3.456326); v(-0.332908, 1.028881, 3.469695); v(-0.342716, 0.970298, 3.475237); v(-0.281643, 1.009809, 3.529164); f2(8, 10, 7); f2(12, 11, 5); f2(13, 11, 26); f2(26, 10, 13); f2(13, 10, 8); f2(14, 5, 11); f2(11, 13, 14); f2(15, 10, 17); f2(16, 17, 10); f2(4, 18, 9); f2(10, 15, 7); f2(9, 18, 19); f2(10, 20, 16); f2(24, 18, 4); f2(6, 24, 4); f2(25, 23, 16); f2(19, 18, 22); f2(19, 22, 23); f2(19, 23, 25); f2(5, 21, 12); f2(25, 16, 20); f2(33, 31, 30); f2(34, 35, 28); f2(34, 37, 36); f2(33, 36, 37); f2(33, 37, 31); f2(28, 38, 34); f2(37, 34, 38); f2(33, 39, 41); f2(41, 40, 33); f2(42, 27, 32); f2(39, 33, 30); f2(42, 32, 43); f2(44, 33, 40); f2(42, 2, 27); f2(2, 29, 27); f2(1, 3, 40); f2(43, 0, 42); f2(0, 43, 1); f2(1, 43, 3); f2(45, 28, 35); f2(40, 3, 44); this.x = 0; this.y = 0; this.z = 0; this.rotationX = 0; this.rotationY = 0; this.rotationZ = 0; this.scaleX = 1; this.scaleY = 1; this.scaleZ = 1; this.geometry.ready = true; } public function f(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number):void{ var _local13:Triangle3D; _local13 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, [new NumberUV(_arg4, _arg5), new NumberUV(_arg6, _arg7), new NumberUV(_arg8, _arg9)]); _local13.faceNormal = new Number3D(_arg10, _arg11, _arg12); fa.push(_local13); } public function f2(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Triangle3D; _local4 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, []); fa.push(_local4); } public function v(_arg1:Number, _arg2:Number, _arg3:Number):void{ ve.push(new Vertex3D(_arg1, _arg2, _arg3)); } } }//package
Section 108
//papervision (papervision) package { import org.papervision3d.view.*; import flash.display.*; import org.papervision3d.objects.*; import flash.events.*; import org.papervision3d.render.*; import flash.utils.*; import org.papervision3d.scenes.*; import org.papervision3d.materials.*; import org.papervision3d.lights.*; import org.papervision3d.cameras.*; import org.papervision3d.materials.shadematerials.*; public class papervision extends Sprite { private var active:Boolean;// = false private var containerl:DisplayObject3D; private var camera:Camera3D; private var Model_blackl; private var Model_black; private var Model_red; private var typenow;// = 0 private var pointLight:PointLight3D; private var Model_yellowl; private var st:Stage; private var Model_whitel; private var stageWidth;// = 680 private var Model_white; private var target:DisplayObject3D; private var scene:Scene3D; private var viewport:Viewport3D; private var Model_redl; private var container:DisplayObject3D; private var Model_bluel; private var renderer:BasicRenderEngine; private var stageHeight;// = 440 private var Model_iris1; private var Model_iris2; private var Model_iris3; private var time:Timer; private var Model_blue; private var qualitylevel:String; private var myMaterials; private var Model_bright; private var Model_tongue; public function papervision(){ stageWidth = 680; stageHeight = 440; typenow = 0; active = false; super(); } public function changeport(_arg1:Number){ if (_arg1 == 0){ typenow = 0; } else { if (_arg1 == 1){ reset(target); typenow = 1; }; }; } private function reset(_arg1:DisplayObject3D){ _arg1.rotationX = 0; _arg1.rotationY = 180; } public function create3D(_arg1:Stage, _arg2:String){ qualitylevel = _arg2; if (!active){ active = true; st = _arg1; init3D(); } else { scene.addChild(target); time.addEventListener(TimerEvent.TIMER, render); time.reset(); time.start(); }; } private function render(_arg1:TimerEvent):void{ if (typenow == 0){ target.rotationY = ((-(((st.mouseX - (st.stageWidth / 2)) / stageWidth)) * 360) + 180); target.rotationX = (-(((st.mouseY - (st.stageHeight / 2)) / (stageHeight * 2.5))) * 360); } else { if (typenow == 1){ target.rotationY = (target.rotationY + 1.5); }; }; renderer.renderScene(scene, camera, viewport); } public function clean3D(){ scene.removeChild(target); renderer.renderScene(scene, camera, viewport); time.removeEventListener(TimerEvent.TIMER, render); time.stop(); } private function init3D():void{ time = new Timer((1000 / st.frameRate), 0); time.reset(); time.start(); scene = new Scene3D(); pointLight = new PointLight3D(); scene.addChild(pointLight); Model_white = new white(new GouraudMaterial(pointLight, 0xFFFFFF, 0x777777)); Model_bright = new bright(new GouraudMaterial(pointLight, 0xFFFFFF, 0xFFFFFF)); Model_black = new black(new ColorMaterial(0)); Model_blue = new blue(new GouraudMaterial(pointLight, 1344220, 670830)); Model_iris1 = new iris1(new GouraudMaterial(pointLight, 0xFFFF00, 0xC8C800)); Model_iris2 = new iris2(new GouraudMaterial(pointLight, 15124610, 11834960)); Model_iris3 = new iris3(new GouraudMaterial(pointLight, 8803362, 0x501E00)); Model_red = new red(new GouraudMaterial(pointLight, 0xFF0000, 0x820000)); Model_tongue = new tongue(new GouraudMaterial(pointLight, 0xBE0000, 0xA00000)); Model_whitel = new whitel(new GouraudMaterial(pointLight, 0xFFFFFF, 0x777777)); Model_blackl = new blackl(new ColorMaterial(0)); Model_bluel = new bluel(new GouraudMaterial(pointLight, 1344220, 670830)); Model_yellowl = new yellowl(new GouraudMaterial(pointLight, 0xFFFF00, 0x828200)); Model_redl = new redl(new GouraudMaterial(pointLight, 0xFF0000, 0x820000)); container = new DisplayObject3D(); container.addChild(Model_white); container.addChild(Model_bright); container.addChild(Model_black); container.addChild(Model_blue); container.addChild(Model_iris1); container.addChild(Model_iris2); container.addChild(Model_iris3); container.addChild(Model_red); container.addChild(Model_tongue); containerl = new DisplayObject3D(); containerl.addChild(Model_whitel); containerl.addChild(Model_blackl); containerl.addChild(Model_bluel); containerl.addChild(Model_yellowl); containerl.addChild(Model_redl); if (qualitylevel == "HIGH"){ target = container; } else { target = containerl; }; scene.addChild(target); camera = new Camera3D(); camera.zoom = 90; camera.focus = 9; camera.z = -5; viewport = new Viewport3D(stageWidth, stageHeight); st.addChild(viewport); renderer = new BasicRenderEngine(); time.addEventListener(TimerEvent.TIMER, render); } public function quality(_arg1:String){ if (_arg1 == "HIGH"){ qualitylevel = "HIGH"; target = container; scene.removeChild(container); scene.removeChild(containerl); scene.addChild(container); } else { if (_arg1 == "LOW"){ qualitylevel = "LOW"; target = containerl; scene.removeChild(container); scene.removeChild(containerl); scene.addChild(containerl); }; }; reset(target); } } }//package
Section 109
//red (red) package { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.core.geom.*; public class red extends TriangleMesh3D { private var ve:Array; private var fa:Array; public function red(_arg1:MaterialObject3D, _arg2:Object=null){ super(_arg1, new Array(), new Array(), null, _arg2); ve = this.geometry.vertices; fa = this.geometry.faces; v(-1.10618, -1.952935, -1.714549); v(-1.191225, -2.073671, -1.911019); v(0.091925, -1.143922, 0.580936); v(-1.110204, -2.064277, -1.911797); v(-1.188921, -2.07431, -1.878621); v(-1.156317, -2.10192, -1.92998); v(-1.511453, -1.981507, -1.294303); v(0.105995, 0.963283, 3.649982); v(0.169869, 0.886039, 3.634872); v(-1.403414, -2.126603, -1.773699); v(-1.267956, -2.048758, -1.740495); v(1.254703, 0.176454, -1.12596); v(0.872428, -0.150824, -1.111036); v(1.182648, 0.109111, -1.22063); v(2.009745, 0.988047, -0.997808); v(1.434563, 0.644897, -0.604595); v(1.717743, 0.539584, -1.399808); v(1.484521, 0.379013, -1.339728); v(1.696938, 0.506987, -1.358853); v(2.047061, 1.016894, -1.070203); v(2.629995, 1.331481, -1.430573); v(2.476314, 1.128972, -1.591019); v(2.46275, 1.071907, -1.588277); v(2.124825, 0.986901, -1.101418); v(2.166577, 0.923386, -1.27005); v(2.037031, 0.984125, -1.011375); v(2.132521, 0.947381, -1.407699); v(2.446574, 1.095559, -1.594055); v(1.561051, 0.667289, -0.719293); v(1.543451, 0.493175, -0.952357); v(1.159642, 0.516076, -0.435137); v(0.745454, 0.309059, -0.220174); v(0.78993, 0.313244, -0.171163); v(0.897161, 0.351088, -0.487521); v(0.689279, -0.325117, -1.10817); v(0.992611, -0.031519, -1.201338); v(0.850918, -0.136688, -0.908263); v(0.648952, -0.310051, -1.12134); v(0.755671, -0.172742, -1.13926); v(0.670485, -0.073351, -1.02112); v(0.132435, -1.343436, -1.385728); v(1.43935, 0.3506, -1.06656); v(1.437307, 0.397107, -1.283477); v(0.934008, 0.173065, -0.951243); v(2.646428, 1.288616, -1.576997); v(2.670359, 1.245936, -1.666278); v(2.628357, 1.305437, -1.39753); v(2.084111, 0.992492, -1.241492); v(2.00823, 0.748635, -1.357992); v(0.710516, 0.132547, -0.763234); v(0.786741, 0.011962, -1.014854); v(0.776362, 0.154574, -0.772735); v(0.915458, 0.274376, -0.732524); v(0.938147, 0.047632, -1.126034); v(0.961833, 0.325634, -0.312589); v(0.790541, 0.264247, -0.153128); v(0.898254, 0.345587, -0.238151); v(0.996465, 0.067203, -0.776956); v(0.953878, 0.122764, -0.580244); v(0.972699, 0.244496, -0.419824); v(0.739999, 0.272465, -0.444491); v(2.880954, 1.389492, -1.726628); v(3.131364, 1.580023, -1.782877); v(3.281747, 1.692171, -1.822496); v(1.602692, 0.620723, -1.176326); v(2.395894, 1.034495, -1.58987); v(2.508356, 1.103774, -1.579163); v(2.714607, 1.374834, -1.449324); v(3.177567, 1.631847, -1.775526); v(2.660143, 1.269609, -1.493956); v(1.572907, 0.717228, -0.910034); v(1.525932, 0.580065, -0.777287); v(0.907224, 0.386245, -0.337922); v(1.700666, 0.821318, -0.864781); v(2.66697, 1.214416, -1.654423); v(2.659527, 1.224264, -1.666565); v(2.654357, 0.983854, -2.021646); v(2.63005, 1.216124, -1.661702); v(2.633719, 1.194845, -1.612384); v(2.831447, 1.114007, -2.071171); v(2.671646, 1.220051, -1.653968); v(2.833864, 1.346475, -1.686215); v(2.860808, 1.354437, -1.736088); v(2.854687, 1.354337, -1.748166); v(2.822959, 1.351812, -1.722156); v(2.459997, 1.07619, -1.611757); v(2.487895, 1.080582, -1.641505); v(1.191225, -2.073671, -1.911019); v(1.160218, -2.059278, -1.937163); v(1.110204, -2.064277, -1.911797); v(1.188921, -2.07431, -1.878621); v(-1.514098, -2.087043, -1.567671); v(1.511453, -1.981507, -1.294303); v(1.388677, -1.933359, -1.284193); v(1.475846, -1.973993, -1.352985); v(1.403414, -2.126603, -1.773699); v(1.267956, -2.048758, -1.740495); v(-1.389682, -2.035605, -1.537473); v(1.304738, -2.035759, -1.682627); v(1.281188, -2.039798, -1.673551); v(1.33142, -1.992485, -1.557572); v(1.514098, -2.087043, -1.567671); v(1.389682, -2.035605, -1.537473); v(-1.419714, -2.014126, -1.508565); v(1.409712, -2.028905, -1.515081); v(0.05447, -1.122516, -1.622402); v(0.064048, -0.943389, -1.483275); v(0.152472, -0.996429, -1.473851); v(0.217731, -1.067188, -1.431954); v(0.15656, -1.2037, -1.561732); v(0.234983, -1.166412, -1.397764); v(0.036881, -1.388553, -1.501193); v(0.062012, -1.348255, -1.218458); v(0.408759, -1.303234, -1.081616); v(0.371642, -1.336817, -1.145089); v(0.156501, -1.271183, -1.541625); v(0.096646, -1.348461, -1.599639); v(0.126811, -1.146482, -1.584018); v(0.196679, -1.273913, -1.381779); v(0.340714, -0.643184, -1.133418); v(0.3611, -0.326293, -1.062097); v(0.49632, -0.457444, -1.112515); v(0.337799, -0.524407, -1.116795); v(0.659504, -0.490208, -0.980039); v(0.54015, -0.717645, -1.004955); v(0.467933, -0.657833, -1.086385); v(0.585639, -0.497945, -1.076845); v(0.626215, 0.077171, -0.830942); v(-0.349385, -1.116325, -1.058524); v(0.83232, -0.327147, -0.382782); v(0.800117, -0.507105, -0.534345); v(0.828707, -0.451827, -0.381024); v(0.826244, -0.604533, -0.438252); v(0.859003, -0.114884, -0.427181); v(0.824292, -0.180251, -0.23023); v(0.344681, -1.031747, -1.135181); v(0.324594, -0.955889, -1.200799); v(0.259292, -0.822959, -1.247416); v(0.135395, -0.722332, -1.269223); v(0.01588, -1.392496, -1.77633); v(0.024816, -1.37517, -1.778039); v(0.019575, -1.353653, -1.780211); v(0, -1.38159, -1.79); v(-6.3E-5, -1.071053, -1.597733); v(-0.05447, -1.122516, -1.622402); v(-0.126811, -1.146482, -1.584018); v(-0.15656, -1.2037, -1.561732); v(-0.156501, -1.271183, -1.541625); v(-0.096646, -1.348461, -1.599639); v(-0.132435, -1.343436, -1.385728); v(-0.036881, -1.388553, -1.501193); v(4E-6, -1.388656, -1.46463); v(0, -1.343011, -1.781111); v(-0.019575, -1.353653, -1.780211); v(-0.024816, -1.37517, -1.778039); v(-0.01588, -1.392496, -1.77633); v(0.603727, -0.031963, -0.951032); v(0.695659, 0.267052, -0.067294); v(0.658831, 0.289023, -0.12551); v(0.730262, -0.50442, -0.869104); v(0.794291, -0.439878, -0.785726); v(0.646823, -0.674043, -0.882234); v(0.226245, -1.457512, -0.438039); v(0.304872, -1.410158, -0.533049); v(0.171612, -1.454731, -0.538708); v(0.515353, -1.275166, -0.512966); v(0.480164, -1.324618, -0.436465); v(0.401918, -1.306013, -0.676151); v(0.228583, -1.28403, -0.927532); v(0.090692, -1.342176, -0.88723); v(0.251431, -1.410534, -0.064565); v(0.20655, -1.45984, -0.266365); v(0.613181, -1.2295, -0.093377); v(0.623241, -1.178489, 0.072072); v(0.277314, -1.317635, 0.199409); v(0.49199, -1.267486, 0.094842); v(0.559556, -1.28403, -0.171377); v(0.425339, -1.373595, -0.340242); v(0.408547, -1.374569, -0.163717); v(0.561513, -1.191409, -0.597138); v(0.690649, -1.083245, -0.454414); v(0.488598, -1.151051, -0.805817); v(0.610425, -1.048784, -0.708654); v(0.549338, -1.028972, -0.850619); v(0.470203, 0.343165, -0.330155); v(0.573124, 0.319611, -0.35704); v(0.467165, 0.260121, -0.652953); v(0.33993, 0.23759, -0.673076); v(0.450813, 0.314429, -0.519033); v(0.327533, 0.043111, -0.883524); v(0.355414, 0.140939, -0.801493); v(0.84416, -0.35493, -0.699246); v(0.416525, -0.129716, -0.988026); v(0.53346, -0.029611, -0.943666); v(0.62961, -1.113363, 0.21441); v(0.869769, -0.224636, -0.509802); v(0.854183, -0.349463, -0.586726); v(0.773101, -0.943975, -0.441186); v(0.769213, -0.779583, -0.556612); v(0.526243, -0.303921, -1.091353); v(0.221275, -0.381114, -1.076939); v(0.146503, -0.171394, -0.975112); v(0.700293, -0.373049, -1.007594); v(0.585159, -0.198345, -1.070387); v(0.378291, 0.339891, -0.353752); v(0.487924, 0.339168, -0.107945); v(0.359544, 0.327515, -0.093857); v(0.27437, -1.296863, -1.144629); v(0.215467, -1.284723, -1.138191); v(0.1568, -1.322916, -1.263344); v(0.170999, -1.329924, -1.380518); v(0.146602, -1.329778, -1.416569); v(0.977203, -0.027787, -0.986276); v(0.44947, -0.834008, -1.059385); v(0.403178, -0.933082, -1.087262); v(0.396552, -0.746771, -1.109952); v(0.274175, -0.725526, -1.186664); v(0.3357, -0.848156, -1.16926); v(0.142293, -0.637965, -1.211636); v(0.231176, -0.555307, -1.144929); v(0.336605, -1.442637, -1.436498); v(0.402323, -1.474077, -1.482023); v(0.214062, -1.324184, -1.381884); v(1.118308, -0.934301, 1.2883); v(0.294122, -1.372318, -1.409295); v(0.632738, 0.258868, 0.013707); v(0.314629, -1.351906, -1.372776); v(-1.388677, -1.933359, -1.284193); v(0.22818, -1.266142, -1.320951); v(0.292065, -1.213031, -1.174691); v(0.375955, -1.050633, 0.615238); v(0.329143, -1.211781, 0.389898); v(0.546268, -1.084203, 0.4008); v(0.502924, -1.188227, 0.275627); v(0.547677, 0.304059, -0.005411); v(0.12176, -1.402638, 0.053696); v(0.771979, -0.586892, -0.638183); v(0.723071, -0.633415, -0.753028); v(0.631006, -0.894705, -0.806819); v(0.507299, -0.959889, -0.963486); v(0.389242, -1.299946, 0.150669); v(0.615728, -1.242279, -0.26905); v(0.108141, -1.334682, 0.234141); v(0.261005, -1.375204, -0.696387); v(0.123461, -1.419706, -0.690069); v(-1.475846, -1.973993, -1.352985); v(1.420677, -1.921693, -1.268554); v(0.710095, -1.740808, -1.629296); v(0.748294, 0.174818, -0.122157); v(1.064516, -2.035728, -1.85552); v(1.601052, -2.013159, -1.313756); v(0.807063, -1.533164, -1.164528); v(0.155172, -1.030652, 0.716099); v(1.458148, -1.913141, -1.305433); v(0.451208, -1.06161, 0.540855); v(0.209067, 0.829329, 3.607319); v(0.124131, 0.796747, 3.665851); v(0.163451, 1.060346, 3.572802); v(0.131968, 1.246115, 3.399005); v(0.192929, 1.102495, 3.522398); v(0.400967, 0.991577, 3.204843); v(0.366058, 1.143878, 3.197206); v(0.282877, 1.251968, 3.204626); v(0.154402, 1.326713, 3.212447); v(0.250055, 1.176705, 3.395227); v(0.922657, -1.798041, -1.6569); v(0.645945, -1.594937, -1.542571); v(1.085114, -1.976643, -1.867451); v(1.235271, -1.966687, -1.671564); v(0.839702, -0.128238, -0.724699); v(1.029001, -1.778183, -1.502959); v(-0.845081, -0.576071, -0.373682); v(1.202812, -1.934554, -1.570781); v(0.893962, -1.72093, -1.530863); v(-1.323826, -2.088248, -1.733009); v(0.394799, -1.330163, -1.265692); v(1.234536, -2.144927, -1.994576); v(1.277257, -1.898375, -1.409215); v(1.189974, -1.837675, -1.405002); v(1.292473, -1.924025, -1.518666); v(-1.304738, -2.035759, -1.682627); v(0.920952, -1.58742, -1.208451); v(0.418665, -1.274574, -1.118778); v(1.489491, -1.964425, -1.345915); v(0.996937, -1.684594, -1.339646); v(-0.327157, -1.145256, -1.055457); v(-1.281188, -2.039798, -1.673551); v(1.094587, -1.89011, -1.53161); v(0.96332, -1.801778, -1.469722); v(0.57054, -1.525195, -1.308143); v(0.660059, -1.696666, -1.631475); v(1.233434, -1.953622, -1.49653); v(-1.33142, -1.992485, -1.557572); v(0.893001, -1.666919, -1.265437); v(1.187047, -1.857061, -1.394475); v(1.041996, -1.911131, -1.667446); v(0.82881, -1.780049, -1.581843); v(1.10618, -1.952935, -1.714549); v(1.156317, -2.10192, -1.92998); v(1.323826, -2.088248, -1.733009); v(0.306133, -1.191867, -1.038769); v(-1.409712, -2.028905, -1.515081); v(1.419714, -2.014126, -1.508565); v(-0.064048, -0.943389, -1.483275); v(-1.160218, -2.059278, -1.937163); v(-0.152472, -0.996429, -1.473851); v(-0.344681, -1.031747, -1.135181); v(0.326366, -1.202056, -0.968945); v(-0.217731, -1.067188, -1.431954); v(1.104261, -0.478608, 0.678322); v(1.132248, -0.520599, 0.689209); v(1.104987, -0.534961, 0.679344); v(1.135702, -0.457761, 0.73076); v(1.09732, -0.451643, 0.711166); v(1.158169, -0.647277, 0.796528); v(1.176218, -0.551869, 0.804082); v(1.095571, -0.434055, 0.750507); v(1.083648, -0.424645, 0.853854); v(1.136862, -0.453952, 0.896908); v(1.096292, -0.705844, 0.801549); v(1.182196, -0.580075, 1.007713); v(1.072732, -0.434062, 0.936245); v(1.098135, -0.497901, 1.142124); v(1.181206, -0.721096, 1.016937); v(1.089011, -0.766375, 0.875488); v(-1.6E-5, -1.350042, -1.202541); v(1.004734, -0.741687, 1.570536); v(1.063874, -0.637783, 1.424395); v(1.011924, -0.688813, 1.507103); v(1.151626, -0.7661, 1.357681); v(1.119245, -0.684919, 1.398325); v(0.000105, -0.700761, -1.283944); v(1.150395, -0.858221, 1.320661); v(1.079571, -0.961634, 1.259715); v(1.04134, -0.826491, 1.639351); v(1.000015, -0.799918, 1.628094); v(1.101853, -0.941202, 1.530144); v(1.053096, -1.013484, 1.499383); v(1.018548, -1.022982, 1.521337); v(1.028576, -1.013499, 1.435585); v(0.996527, -0.857439, 1.669959); v(0.995074, -0.9125, 1.69269); v(1.074018, -0.901472, 1.624857); v(1.030088, -0.996501, 1.650021); v(1.016318, -0.930515, 1.691592); v(1.002349, -1.002832, 1.650123); v(0.995581, -0.96875, 1.694231); v(-0.324594, -0.955889, -1.200799); v(1.009475, -1.019655, 1.593421); v(1.058131, -0.932467, 1.170754); v(1.150427, -0.540271, 1.098349); v(1.143193, -0.815779, 1.011267); v(1.06961, -0.882111, 1.063588); v(1.031552, -0.565508, 1.308656); v(1.043031, -0.515153, 1.201492); v(1.106754, -0.590824, 0.702754); v(1.056463, -0.468207, 1.078831); v(1.084342, -0.800503, 0.922188); v(-0.062012, -1.348255, -1.218458); v(-0.306133, -1.191867, -1.038769); v(1.016821, -0.647116, 1.450056); v(1.0447, -0.979412, 1.293413); v(-0.164492, -1.270068, -0.999839); v(0.000258, -1.299332, -1.000024); v(1.019412, -0.628648, 1.424246); v(1.048116, -0.97077, 1.262972); v(1.08175, -0.818971, 0.947998); v(1.053047, -0.476849, 1.109273); v(0.135151, -1.300384, -1.002051); v(-0.408759, -1.303234, -1.081616); v(0.2442, -1.236163, -1.017966); v(0.327157, -1.145256, -1.055457); v(0.176556, -1.304215, -1.402711); v(0.349385, -1.116325, -1.058524); v(0.823319, 0.058913, -0.337715); v(0.779611, -0.056312, -0.082965); v(-0.371642, -1.336817, -1.145089); v(0.463687, 0.146642, -0.801009); v(0.633173, 0.165917, -0.730681); v(0.599245, 0.262041, -0.5836); v(0.707599, 0.186251, -0.662917); v(0.680956, 0.262505, -0.437405); v(1.114223, -0.792707, 0.920365); v(-0.196679, -1.273913, -1.381779); v(0.338829, 0.311345, -0.489665); v(0.663303, 0.288436, -0.284905); v(0.419267, 0.349573, -0.186702); v(0.821811, 0.16304, -0.277015); v(0.742887, -0.998991, 0.13329); v(0.760132, -1.021961, -0.06655); v(0.779434, -0.960931, -0.361957); v(0.704313, -0.953809, 0.333292); v(0.245214, -0.560389, 1.133921); v(0.538455, -0.817057, 0.732258); v(0.090505, -0.381736, 1.325263); v(0.641906, -0.888524, 0.533206); v(0.75843, -0.032346, 0.002009); v(0.823626, -0.208277, -0.143108); v(0.845308, -0.380863, -0.261093); v(0.845081, -0.576071, -0.373682); v(0.587316, 0.206008, 0.169704); v(0.518214, 0.254124, 0.14969); v(0.349493, 0.318012, 0.023346); v(0.178152, 0.287448, -0.4177); v(0.145851, 0.2155, -0.614128); v(0.863826, -0.731841, -0.291152); v(0.820035, -0.778682, -0.436779); v(0.126189, 0.093035, -0.79609); v(0.119417, -0.073534, -0.917787); v(0.263753, 0.324366, -0.140467); v(0.211068, 0.312719, -0.27947); v(0.643935, 0.141133, 0.152896); v(0.863643, -0.780682, -0.197716); v(0.829076, -0.839068, -0.366433); v(0.871306, -0.217389, -0.595264); v(-0.091925, -1.143922, 0.580936); v(0.805769, -0.241454, -0.830279); v(-0.872428, -0.150824, -1.111036); v(-1.182648, 0.109111, -1.22063); v(-2.009745, 0.988047, -0.997808); v(-1.434563, 0.644897, -0.604595); v(-1.717743, 0.539584, -1.399808); v(0.759072, -0.313594, -0.908743); v(-1.696938, 0.506987, -1.358853); v(-2.047061, 1.016894, -1.070203); v(-2.629995, 1.331481, -1.430573); v(-2.476314, 1.128972, -1.591019); v(-2.46275, 1.071907, -1.588277); v(0.774287, -0.252623, -1.009831); v(-2.166577, 0.923386, -1.27005); v(-2.037031, 0.984125, -1.011375); v(-2.132521, 0.947381, -1.407699); v(-2.446574, 1.095559, -1.594055); v(-1.561051, 0.667289, -0.719293); v(0.875879, 0.040314, -0.54355); v(-1.159642, 0.516076, -0.435137); v(-0.745454, 0.309059, -0.220174); v(-0.78993, 0.313244, -0.171163); v(-0.897161, 0.351088, -0.487521); v(-0.689279, -0.325117, -1.10817); v(0.853056, -0.045887, -0.573487); v(-0.850918, -0.136688, -0.908263); v(-0.648952, -0.310051, -1.12134); v(-0.755671, -0.172742, -1.13926); v(-0.670485, -0.073351, -1.02112); v(-0.977203, -0.027787, -0.986276); v(0, -1.3988, -1.774965); v(-1.437307, 0.397107, -1.283477); v(-0.934008, 0.173065, -0.951243); v(-2.646428, 1.288616, -1.576997); v(-2.670359, 1.245936, -1.666278); v(-2.628357, 1.305437, -1.39753); v(-2.084111, 0.992492, -1.241492); v(-2.00823, 0.748635, -1.357992); v(-0.710516, 0.132547, -0.763234); v(-0.786741, 0.011962, -1.014854); v(-0.776362, 0.154574, -0.772735); v(-0.915458, 0.274376, -0.732524); v(-0.938147, 0.047632, -1.126034); v(-0.961833, 0.325634, -0.312589); v(-0.790541, 0.264247, -0.153128); v(-0.898254, 0.345587, -0.238151); v(-0.996465, 0.067203, -0.776956); v(-0.953878, 0.122764, -0.580244); v(-0.972699, 0.244496, -0.419824); v(-0.739999, 0.272465, -0.444491); v(-2.880954, 1.389492, -1.726628); v(-3.131364, 1.580023, -1.782877); v(-3.281747, 1.692171, -1.822496); v(-1.602692, 0.620723, -1.176326); v(-2.395894, 1.034495, -1.58987); v(-2.508356, 1.103774, -1.579163); v(-2.714607, 1.374834, -1.449324); v(-3.177567, 1.631847, -1.775526); v(-2.660143, 1.269609, -1.493956); v(-1.572907, 0.717228, -0.910034); v(-1.525932, 0.580065, -0.777287); v(-0.907224, 0.386245, -0.337922); v(-1.700666, 0.821318, -0.864781); v(-2.66697, 1.214416, -1.654423); v(-2.659527, 1.224264, -1.666565); v(-2.654357, 0.983854, -2.021646); v(-2.63005, 1.216124, -1.661702); v(-2.633719, 1.194845, -1.612384); v(-2.831447, 1.114007, -2.071171); v(-2.671646, 1.220051, -1.653968); v(-2.833864, 1.346475, -1.686215); v(-2.860808, 1.354437, -1.736088); v(-2.854687, 1.354337, -1.748166); v(-2.822959, 1.351812, -1.722156); v(-2.459997, 1.07619, -1.611757); v(-2.487895, 1.080582, -1.641505); v(1.443683, -1.906648, -1.317494); v(0.293151, -1.168501, -1.148953); v(-0.326366, -1.202056, -0.968945); v(-0.340714, -0.643184, -1.133418); v(-0.3611, -0.326293, -1.062097); v(-0.49632, -0.457444, -1.112515); v(-0.337799, -0.524407, -1.116795); v(-0.659504, -0.490208, -0.980039); v(-0.54015, -0.717645, -1.004955); v(-0.467933, -0.657833, -1.086385); v(-0.585639, -0.497945, -1.076845); v(-0.626215, 0.077171, -0.830942); v(-0.83232, -0.327147, -0.382782); v(-0.800117, -0.507105, -0.534345); v(-0.828707, -0.451827, -0.381024); v(-0.826244, -0.604533, -0.438252); v(-0.859003, -0.114884, -0.427181); v(-0.824292, -0.180251, -0.23023); v(-0.823319, 0.058913, -0.337715); v(-0.779611, -0.056312, -0.082965); v(-0.463687, 0.146642, -0.801009); v(-0.633173, 0.165917, -0.730681); v(-0.599245, 0.262041, -0.5836); v(-0.707599, 0.186251, -0.662917); v(-0.680956, 0.262505, -0.437405); v(-0.338829, 0.311345, -0.489665); v(-0.663303, 0.288436, -0.284905); v(-0.419267, 0.349573, -0.186702); v(-0.821811, 0.16304, -0.277015); v(-0.724487, 0.242103, -0.085012); v(-0.748294, 0.174818, -0.122157); v(-0.680678, 0.195702, 0.015804); v(-0.839702, -0.128238, -0.724699); v(-0.871306, -0.217389, -0.595264); v(-0.805769, -0.241454, -0.830279); v(-0.759072, -0.313594, -0.908743); v(-0.774287, -0.252623, -1.009831); v(-0.875879, 0.040314, -0.54355); v(-0.853056, -0.045887, -0.573487); v(-0.603727, -0.031963, -0.951032); v(-0.695659, 0.267052, -0.067294); v(-0.658831, 0.289023, -0.12551); v(-0.730262, -0.50442, -0.869104); v(-0.794291, -0.439878, -0.785726); v(-0.646823, -0.674043, -0.882234); v(-0.226245, -1.457512, -0.438039); v(-0.304872, -1.410158, -0.533049); v(-0.171612, -1.454731, -0.538708); v(-0.515353, -1.275166, -0.512966); v(-0.480164, -1.324618, -0.436465); v(-0.401918, -1.306013, -0.676151); v(-0.228583, -1.28403, -0.927532); v(-0.090692, -1.342176, -0.88723); v(-0.251431, -1.410534, -0.064565); v(-0.20655, -1.45984, -0.266365); v(-0.623241, -1.178489, 0.072072); v(-0.277314, -1.317635, 0.199409); v(-0.49199, -1.267486, 0.094842); v(-0.559556, -1.28403, -0.171377); v(-0.425339, -1.373595, -0.340242); v(-0.408547, -1.374569, -0.163717); v(-0.561513, -1.191409, -0.597138); v(-0.690649, -1.083245, -0.454414); v(-0.488598, -1.151051, -0.805817); v(-0.610425, -1.048784, -0.708654); v(-0.549338, -1.028972, -0.850619); v(-0.470203, 0.343165, -0.330155); v(-0.573124, 0.319611, -0.35704); v(-0.467165, 0.260121, -0.652953); v(-0.33993, 0.23759, -0.673076); v(-0.450813, 0.314429, -0.519033); v(-0.327533, 0.043111, -0.883524); v(-0.355414, 0.140939, -0.801493); v(-0.84416, -0.35493, -0.699246); v(-0.416525, -0.129716, -0.988026); v(-0.53346, -0.029611, -0.943666); v(-0.62961, -1.113363, 0.21441); v(-0.869769, -0.224636, -0.509802); v(-0.854183, -0.349463, -0.586726); v(0.19143, -1.344387, -1.331735); v(-0.773101, -0.943975, -0.441186); v(-0.769213, -0.779583, -0.556612); v(-0.526243, -0.303921, -1.091353); v(-0.221275, -0.381114, -1.076939); v(-0.146503, -0.171394, -0.975112); v(-0.700293, -0.373049, -1.007594); v(-0.585159, -0.198345, -1.070387); v(-0.378291, 0.339891, -0.353752); v(-0.487924, 0.339168, -0.107945); v(-0.359544, 0.327515, -0.093857); v(-0.44947, -0.834008, -1.059385); v(-0.403178, -0.933082, -1.087262); v(-0.396552, -0.746771, -1.109952); v(-0.274175, -0.725526, -1.186664); v(-0.3357, -0.848156, -1.16926); v(-0.142293, -0.637965, -1.211636); v(-0.231176, -0.555307, -1.144929); v(-0.632738, 0.258868, 0.013707); v(-0.375955, -1.050633, 0.615238); v(-0.329143, -1.211781, 0.389898); v(-0.546268, -1.084203, 0.4008); v(-0.502924, -1.188227, 0.275627); v(-0.547677, 0.304059, -0.005411); v(-0.12176, -1.402638, 0.053696); v(-0.771979, -0.586892, -0.638183); v(-0.723071, -0.633415, -0.753028); v(-0.631006, -0.894705, -0.806819); v(-0.507299, -0.959889, -0.963486); v(-0.389242, -1.299946, 0.150669); v(-0.108141, -1.334682, 0.234141); v(-0.261005, -1.375204, -0.696387); v(-0.123461, -1.419706, -0.690069); v(0.339322, -1.208775, -1.074742); v(0.31671, -1.176637, -1.058839); v(-0.155172, -1.030652, 0.716099); v(-0.161675, -0.607451, 1.129342); v(-0.451208, -1.06161, 0.540855); v(-0.131968, 1.246115, 3.399005); v(-0.282877, 1.251968, 3.204626); v(-0.154402, 1.326713, 3.212447); v(0.203714, -1.343205, -1.37322); v(-1.254703, 0.176454, -1.12596); v(-1.484521, 0.379013, -1.339728); v(-2.124825, 0.986901, -1.101418); v(-1.543451, 0.493175, -0.952357); v(0.724487, 0.242103, -0.085012); v(-0.992611, -0.031519, -1.201338); v(1.179195, -1.991863, -1.637857); v(-1.43935, 0.3506, -1.06656); v(-0.176556, -1.304215, -1.402711); v(0.273951, -1.391262, -1.367719); v(0.436172, -1.287802, -1.09); v(-1.104261, -0.478608, 0.678322); v(-1.132248, -0.520599, 0.689209); v(-1.104987, -0.534961, 0.679344); v(-1.135702, -0.457761, 0.73076); v(-1.09732, -0.451643, 0.711166); v(-1.158169, -0.647277, 0.796528); v(-1.176218, -0.551869, 0.804082); v(-1.095571, -0.434055, 0.750507); v(-1.083648, -0.424645, 0.853854); v(-1.136862, -0.453952, 0.896908); v(-1.096292, -0.705844, 0.801549); v(-1.182196, -0.580075, 1.007713); v(-1.072732, -0.434062, 0.936245); v(-1.098135, -0.497901, 1.142124); v(-1.181206, -0.721096, 1.016937); v(-1.089011, -0.766375, 0.875488); v(-0.234983, -1.166412, -1.397764); v(-1.004734, -0.741687, 1.570536); v(-1.063874, -0.637783, 1.424395); v(-1.011924, -0.688813, 1.507103); v(-1.151626, -0.7661, 1.357681); v(-1.119245, -0.684919, 1.398325); v(-1.118308, -0.934301, 1.2883); v(-1.150395, -0.858221, 1.320661); v(-1.079571, -0.961634, 1.259715); v(-1.04134, -0.826491, 1.639351); v(-1.000015, -0.799918, 1.628094); v(-1.101853, -0.941202, 1.530144); v(-1.053096, -1.013484, 1.499383); v(-1.018548, -1.022982, 1.521337); v(-1.028576, -1.013499, 1.435585); v(-0.996527, -0.857439, 1.669959); v(-0.995074, -0.9125, 1.69269); v(-1.074018, -0.901472, 1.624857); v(-1.030088, -0.996501, 1.650021); v(-1.016318, -0.930515, 1.691592); v(-1.002349, -1.002832, 1.650123); v(-0.995581, -0.96875, 1.694231); v(-1.009475, -1.019655, 1.593421); v(-1.058131, -0.932467, 1.170754); v(-1.150427, -0.540271, 1.098349); v(-1.143193, -0.815779, 1.011267); v(-1.06961, -0.882111, 1.063588); v(-1.031552, -0.565508, 1.308656); v(-1.043031, -0.515153, 1.201492); v(-1.106754, -0.590824, 0.702754); v(-1.056463, -0.468207, 1.078831); v(-1.084342, -0.800503, 0.922188); v(-1.016821, -0.647116, 1.450056); v(-1.0447, -0.979412, 1.293413); v(-1.019412, -0.628648, 1.424246); v(-1.048116, -0.97077, 1.262972); v(-1.08175, -0.818971, 0.947998); v(-1.053047, -0.476849, 1.109273); v(-0.135395, -0.722332, -1.269223); v(-0.259292, -0.822959, -1.247416); v(-1.114223, -0.792707, 0.920365); v(0.272728, -1.234351, -1.041522); v(-0.742887, -0.998991, 0.13329); v(-0.704313, -0.953809, 0.333292); v(-0.245214, -0.560389, 1.133921); v(-0.40358, -0.712669, 0.93354); v(-0.538455, -0.817057, 0.732258); v(-0.120496, -0.831659, 0.94364); v(-0.140237, -0.714831, 1.038933); v(-0.090505, -0.381736, 1.325263); v(-0.255962, -0.901482, 0.832066); v(-0.641906, -0.888524, 0.533206); v(-0.75843, -0.032346, 0.002009); v(-0.823626, -0.208277, -0.143108); v(-0.845308, -0.380863, -0.261093); v(0.680678, 0.195702, 0.015804); v(-0.587316, 0.206008, 0.169704); v(-0.518214, 0.254124, 0.14969); v(-0.349493, 0.318012, 0.023346); v(-0.178152, 0.287448, -0.4177); v(-0.145851, 0.2155, -0.614128); v(-0.863826, -0.731841, -0.291152); v(-0.820035, -0.778682, -0.436779); v(-0.126189, 0.093035, -0.79609); v(-0.119417, -0.073534, -0.917787); v(-0.263753, 0.324366, -0.140467); v(-0.211068, 0.312719, -0.27947); v(-0.643935, 0.141133, 0.152896); v(-0.863643, -0.780682, -0.197716); v(-0.829076, -0.839068, -0.366433); v(0, 1.354173, 3.214158); v(0, 0.872425, 3.714234); v(0, -0.468723, 1.271612); v(0, -0.29411, 1.417028); v(0, 0.063679, -0.822175); v(0, -1.430751, -0.690458); v(0, -0.175579, -0.990781); v(0, 0.197865, -0.670407); v(0, 1.270211, 3.399992); v(-0.2442, -1.236163, -1.017966); v(0.709405, -1.483019, -1.248954); v(0, -0.575772, 1.181116); v(0, -1.477056, -0.537706); v(0, -0.567314, -1.193208); v(0, -1.356348, -0.866743); v(0, -1.489449, -0.419147); v(0, -1.173329, 0.536876); v(0, -1.402333, 0.066646); v(0, -1.322493, 0.266646); v(0, -1.473924, -0.211372); v(0, 0.76688, 3.733641); v(-0.124131, 0.796747, 3.665851); v(0, 0.781954, 3.733871); v(-0.23196, -0.838472, 0.904508); v(-0.19066, -0.777476, 0.971936); v(0.120496, -0.831659, 0.94364); v(0.140237, -0.714831, 1.038933); v(0.23196, -0.838472, 0.904508); v(0.19066, -0.777476, 0.971936); v(0, -0.638232, 1.12605); v(0, -0.723002, 1.050025); v(0, -0.862257, 0.926139); v(0, -0.948811, 0.83146); v(0.255962, -0.901482, 0.832066); v(0.40358, -0.712669, 0.93354); v(0.161675, -0.607451, 1.129342); v(0.284567, 1.087155, 3.471694); v(0.271131, 1.072901, 3.497926); v(0.181153, 1.022861, 3.593344); v(0.35238, 1.07137, 3.322805); v(0.848679, -1.589194, -1.179063); v(0.332027, 1.077936, 3.393457); v(0.263765, 0.893572, 3.563177); v(0.257383, 0.970864, 3.553974); v(0.36628, 0.967616, 3.345458); v(0.366814, 0.941222, 3.343815); v(2.986225, 1.507676, -1.643153); v(-2.986225, 1.507676, -1.643153); v(0.34784, 1.048287, 3.372696); v(0.30747, 1.096933, 3.428099); v(0.26283, 1.03365, 3.526517); v(0.273713, 0.858292, 3.54597); v(-0.284567, 1.087155, 3.471694); v(-0.271131, 1.072901, 3.497926); v(-0.181153, 1.022861, 3.593344); v(-0.35238, 1.07137, 3.322805); v(-0.332027, 1.077936, 3.393457); v(-0.263765, 0.893572, 3.563177); v(-0.257383, 0.970864, 3.553974); v(-0.36628, 0.967616, 3.345458); v(-0.366814, 0.941222, 3.343815); v(-0.34784, 1.048287, 3.372696); v(-0.30747, 1.096933, 3.428099); v(-0.26283, 1.03365, 3.526517); v(-0.273713, 0.858292, 3.54597); v(0, 0.971928, 3.665738); v(-0.163451, 1.060346, 3.572802); v(-0.192929, 1.102495, 3.522398); v(-0.250055, 1.176705, 3.395227); v(-0.366058, 1.143878, 3.197206); v(-0.400967, 0.991577, 3.204843); v(-0.209067, 0.829329, 3.607319); v(-0.169869, 0.886039, 3.634872); v(-0.105995, 0.963283, 3.649982); v(0.77077, -0.99754, -0.310849); v(0.762858, -1.025169, -0.195877); v(-0.77077, -0.99754, -0.310849); v(-0.762858, -1.025169, -0.195877); v(-0.779434, -0.960931, -0.361957); v(-0.615728, -1.242279, -0.26905); v(-0.613181, -1.2295, -0.093377); v(-0.760132, -1.021961, -0.06655); v(-0.272728, -1.234351, -1.041522); v(-0.293151, -1.168501, -1.148953); v(-0.31671, -1.176637, -1.058839); v(-0.339322, -1.208775, -1.074742); v(-0.19143, -1.344387, -1.331735); v(-0.27437, -1.296863, -1.144629); v(-0.215467, -1.284723, -1.138191); v(-0.1568, -1.322916, -1.263344); v(-0.170999, -1.329924, -1.380518); v(-0.146602, -1.329778, -1.416569); v(-0.203714, -1.343205, -1.37322); v(-0.336605, -1.442637, -1.436498); v(-0.402323, -1.474077, -1.482023); v(-0.214062, -1.324184, -1.381884); v(-0.294122, -1.372318, -1.409295); v(-0.314629, -1.351906, -1.372776); v(-0.22818, -1.266142, -1.320951); v(-0.292065, -1.213031, -1.174691); v(-0.273951, -1.391262, -1.367719); v(-0.436172, -1.287802, -1.09); v(-0.848679, -1.589194, -1.179063); v(-1.420677, -1.921693, -1.268554); v(-0.710095, -1.740808, -1.629296); v(-1.064516, -2.035728, -1.85552); v(-1.601052, -2.013159, -1.313756); v(-0.807063, -1.533164, -1.164528); v(-1.458148, -1.913141, -1.305433); v(-0.709405, -1.483019, -1.248954); v(-1.443683, -1.906648, -1.317494); v(-0.922657, -1.798041, -1.6569); v(-0.645945, -1.594937, -1.542571); v(-1.085114, -1.976643, -1.867451); v(-1.235271, -1.966687, -1.671564); v(-1.029001, -1.778183, -1.502959); v(-1.202812, -1.934554, -1.570781); v(-0.893962, -1.72093, -1.530863); v(-0.394799, -1.330163, -1.265692); v(-1.234536, -2.144927, -1.994576); v(-1.277257, -1.898375, -1.409215); v(-1.189974, -1.837675, -1.405002); v(-1.292473, -1.924025, -1.518666); v(-0.920952, -1.58742, -1.208451); v(-0.418665, -1.274574, -1.118778); v(-1.489491, -1.964425, -1.345915); v(-0.996937, -1.684594, -1.339646); v(-1.179195, -1.991863, -1.637857); v(-1.094587, -1.89011, -1.53161); v(-0.96332, -1.801778, -1.469722); v(-0.57054, -1.525195, -1.308143); v(-0.660059, -1.696666, -1.631475); v(-1.233434, -1.953622, -1.49653); v(-0.893001, -1.666919, -1.265437); v(-1.187047, -1.857061, -1.394475); v(-1.041996, -1.911131, -1.667446); v(-0.82881, -1.780049, -1.581843); f2(150, 151, 446); f2(150, 446, 155); f2(149, 150, 155); f2(148, 149, 155); f2(148, 155, 154); f2(147, 148, 154); f2(147, 154, 153); f2(146, 147, 153); f2(145, 146, 153); f2(145, 153, 152); f2(144, 145, 152); f2(143, 144, 152); f2(151, 111, 446); f2(446, 111, 139); f2(111, 40, 139); f2(40, 116, 139); f2(139, 116, 140); f2(116, 115, 140); f2(140, 115, 141); f2(115, 109, 141); f2(109, 117, 141); f2(141, 117, 152); f2(117, 105, 152); f2(105, 143, 152); f2(141, 152, 142); f2(152, 153, 142); f2(153, 154, 142); f2(154, 155, 142); f2(155, 446, 142); f2(446, 139, 142); f2(139, 140, 142); f2(140, 141, 142); f2(0x0303, 769, 765); f2(0x0303, 765, 766); f2(765, 778, 766); f2(766, 778, 772); f2(767, 781, 774); f2(772, 778, 762); f2(762, 778, 763); f2(778, 777, 763); f2(777, 776, 763); f2(763, 776, 773); f2(773, 776, 764); f2(773, 764, 0x0300); f2(764, 782, 0x0300); f2(0x0300, 782, 767); f2(782, 781, 767); f2(769, 770, 780); f2(769, 780, 779); f2(765, 769, 779); f2(764, 775, 783); f2(776, 775, 764); f2(779, 778, 765); f2(764, 783, 782); f2(754, 758, 749); f2(749, 758, 751); f2(264, 749, 751); f2(264, 751, 759); f2(0xFF, 752, 761); f2(264, 759, 746); f2(264, 746, 747); f2(259, 264, 747); f2(0x0101, 259, 747); f2(0x0101, 747, 760); f2(0x0101, 760, 748); f2(748, 760, 753); f2(8, 748, 753); f2(8, 753, 752); f2(0xFF, 8, 752); f2(755, 754, 260); f2(260, 754, 261); f2(754, 749, 261); f2(775, 748, 7); f2(775, 0x0101, 748); f2(264, 261, 749); f2(7, 748, 8); f2(737, 744, 743); f2(744, 737, 738); f2(745, 744, 738); f2(736, 745, 738); f2(739, 745, 736); f2(741, 740, 735); f2(685, 733, 690); f2(733, 685, 734); f2(685, 607, 734); f2(607, 688, 734); f2(732, 0x0100, 730); f2(731, 732, 730); f2(732, 8, 0x0100); f2(782, 732, 731); f2(415, 742, 726); f2(742, 2, 726); f2(601, 415, 728); f2(415, 726, 728); f2(728, 726, 2); f2(2, 242, 728); f2(727, 601, 728); f2(242, 727, 728); f2(595, 601, 727); f2(727, 242, 235); f2(714, 408, 407); f2(717, 714, 407); f2(399, 398, 131); f2(399, 131, 132); f2(413, 197, 390); f2(180, 390, 197); f2(197, 413, 406); f2(197, 406, 198); f2(406, 132, 198); f2(197, 198, 238); f2(130, 198, 132); f2(130, 132, 131); f2(134, 131, 398); f2(375, 134, 397); f2(695, 248, 375); f2(375, 396, 695); f2(411, 225, 695); f2(401, 234, 225); f2(234, 206, 205); f2(234, 402, 206); f2(206, 409, 386); f2(386, 409, 410); f2(204, 386, 410); f2(204, 403, 384); f2(384, 403, 404); f2(187, 384, 404); f2(187, 407, 190); f2(189, 190, 407); f2(201, 408, 716); f2(408, 201, 189); f2(189, 407, 408); f2(714, 716, 408); f2(187, 404, 407); f2(204, 410, 403); f2(206, 402, 409); f2(234, 401, 402); f2(225, 400, 401); f2(225, 411, 400); f2(695, 396, 411); f2(375, 397, 396); f2(134, 398, 397); f2(132, 406, 399); f2(413, 405, 406); f2(413, 390, 412); f2(2, 742, 252); f2(742, 743, 252); f2(241, 390, 180); f2(389, 172, 173); f2(388, 173, 194); f2(391, 194, 232); f2(395, 232, 254); f2(230, 393, 254); f2(230, 743, 393); f2(745, 394, 392); f2(745, 712, 394); f2(232, 395, 391); f2(173, 388, 389); f2(388, 194, 391); f2(254, 393, 395); f2(743, 744, 393); f2(744, 745, 392); f2(394, 712, 713); f2(712, 745, 721); f2(745, 739, 721); f2(335, 326, 334); f2(334, 326, 328); f2(324, 357, 382); f2(366, 382, 357); f2(333, 361, 339); f2(361, 333, 365); f2(328, 360, 327); f2(360, 364, 327); f2(310, 309, 311); f2(312, 309, 310); f2(312, 316, 313); f2(312, 313, 309); f2(310, 355, 314); f2(310, 311, 355); f2(315, 310, 314); f2(312, 310, 315); f2(317, 316, 318); f2(316, 312, 318); f2(382, 355, 319); f2(314, 355, 382); f2(320, 312, 315); f2(318, 312, 320); f2(317, 318, 322); f2(321, 317, 322); f2(315, 314, 323); f2(382, 319, 324); f2(351, 314, 382); f2(327, 330, 334); f2(328, 327, 334); f2(342, 329, 336); f2(342, 330, 329); f2(334, 330, 342); f2(337, 333, 339); f2(223, 333, 337); f2(336, 223, 337); f2(337, 339, 338); f2(340, 334, 341); f2(341, 334, 344); f2(335, 334, 340); f2(344, 342, 343); f2(334, 342, 344); f2(342, 336, 343); f2(336, 337, 343); f2(345, 343, 348); f2(348, 337, 338); f2(343, 337, 348); f2(346, 343, 345); f2(346, 344, 343); f2(341, 344, 346); f2(223, 351, 333); f2(333, 349, 365); f2(354, 367, 322); f2(322, 318, 350); f2(318, 320, 350); f2(323, 314, 351); f2(320, 315, 323); f2(336, 329, 332); f2(336, 332, 223); f2(327, 322, 330); f2(382, 366, 352); f2(333, 382, 352); f2(351, 382, 333); f2(323, 351, 223); f2(329, 323, 332); f2(329, 320, 323); f2(330, 320, 329); f2(330, 350, 320); f2(322, 350, 330); f2(353, 354, 322); f2(333, 352, 349); f2(332, 323, 223); f2(353, 322, 327); f2(364, 353, 327); f2(322, 367, 356); f2(356, 321, 322); f2(711, 775, 7); f2(264, 258, 262); f2(718, 263, 258); f2(263, 718, 710); f2(262, 258, 263); f2(261, 264, 262); f2(732, 711, 7); f2(7, 8, 732); f2(8, 0xFF, 0x0100); f2(743, 230, 252); f2(252, 230, 2); f2(380, 378, 49); f2(380, 379, 378); f2(49, 378, 127); f2(244, 715, 722); f2(164, 244, 722); f2(243, 244, 164); f2(163, 243, 164); f2(231, 174, 242); f2(242, 174, 235); f2(241, 165, 166); f2(232, 194, 233); f2(231, 233, 240); f2(240, 233, 175); f2(231, 240, 174); f2(238, 161, 239); f2(161, 124, 239); f2(183, 238, 239); f2(198, 237, 238); f2(236, 237, 198); f2(237, 161, 238); f2(201, 716, 200); f2(205, 386, 184); f2(184, 386, 204); f2(374, 387, 434); f2(374, 434, 440); f2(133, 374, 440); f2(133, 440, 414); f2(174, 170, 235); f2(230, 254, 231); f2(254, 233, 231); f2(254, 232, 233); f2(2, 230, 231); f2(2, 231, 242); f2(239, 373, 183); f2(214, 373, 239); f2(225, 157, 695); f2(157, 617, 695); f2(234, 157, 225); f2(217, 137, 136); f2(218, 723, 331); f2(723, 218, 219); f2(218, 331, 138); f2(216, 218, 138); f2(119, 218, 216); f2(219, 218, 119); f2(216, 138, 137); f2(215, 119, 216); f2(215, 216, 217); f2(216, 137, 217); f2(239, 213, 214); f2(373, 214, 135); f2(239, 124, 213); f2(214, 136, 135); f2(213, 215, 217); f2(213, 217, 214); f2(125, 215, 213); f2(214, 217, 136); f2(124, 125, 213); f2(133, 414, 195); f2(134, 374, 133); f2(386, 205, 206); f2(184, 204, 188); f2(188, 204, 384); f2(38, 203, 199); f2(192, 199, 203); f2(37, 199, 121); f2(37, 38, 199); f2(422, 428, 202); f2(422, 202, 123); f2(202, 428, 34); f2(202, 34, 126); f2(202, 126, 123); f2(160, 422, 159); f2(416, 422, 160); f2(422, 123, 159); f2(191, 416, 160); f2(200, 716, 723); f2(120, 200, 122); f2(122, 219, 119); f2(192, 201, 120); f2(192, 120, 199); f2(120, 201, 200); f2(130, 236, 198); f2(195, 196, 129); f2(134, 195, 129); f2(134, 133, 195); f2(189, 201, 192); f2(193, 189, 192); f2(195, 414, 196); f2(196, 414, 191); f2(196, 191, 236); f2(186, 187, 190); f2(377, 186, 190); f2(377, 190, 189); f2(377, 189, 193); f2(378, 186, 377); f2(188, 187, 186); f2(188, 384, 187); f2(185, 188, 379); f2(185, 184, 188); f2(183, 373, 181); f2(182, 181, 179); f2(182, 183, 181); f2(238, 182, 197); f2(238, 183, 182); f2(197, 182, 180); f2(241, 179, 165); f2(241, 180, 179); f2(180, 182, 179); f2(175, 176, 178); f2(240, 178, 170); f2(175, 172, 176); f2(176, 177, 178); f2(178, 177, 162); f2(241, 177, 176); f2(241, 166, 177); f2(175, 178, 240); f2(174, 240, 170); f2(233, 173, 175); f2(233, 194, 173); f2(173, 172, 175); f2(172, 241, 176); f2(729, 171, 725); f2(178, 162, 171); f2(171, 162, 725); f2(235, 170, 729); f2(170, 178, 171); f2(170, 171, 729); f2(167, 307, 168); f2(167, 168, 243); f2(181, 307, 167); f2(181, 373, 307); f2(168, 368, 169); f2(368, 363, 169); f2(244, 169, 715); f2(243, 168, 244); f2(168, 169, 244); f2(168, 370, 368); f2(179, 167, 165); f2(179, 181, 167); f2(167, 243, 163); f2(166, 167, 163); f2(166, 163, 177); f2(166, 165, 167); f2(177, 163, 162); f2(162, 164, 722); f2(162, 722, 725); f2(163, 164, 162); f2(159, 123, 161); f2(123, 124, 161); f2(160, 159, 237); f2(236, 160, 237); f2(236, 191, 160); f2(159, 161, 237); f2(60, 31, 385); f2(31, 158, 385); f2(31, 32, 158); f2(158, 32, 157); f2(193, 192, 203); f2(156, 193, 39); f2(39, 193, 203); f2(440, 434, 269); f2(434, 36, 269); f2(36, 428, 422); f2(414, 269, 191); f2(414, 440, 269); f2(269, 416, 191); f2(617, 248, 695); f2(617, 55, 248); f2(55, 387, 248); f2(248, 387, 374); f2(157, 32, 617); f2(205, 185, 385); f2(234, 205, 158); f2(205, 184, 185); f2(205, 385, 158); f2(234, 158, 157); f2(60, 381, 380); f2(381, 379, 380); f2(60, 380, 49); f2(60, 385, 381); f2(385, 185, 381); f2(185, 379, 381); f2(60, 49, 51); f2(379, 188, 186); f2(379, 186, 378); f2(127, 377, 193); f2(378, 377, 127); f2(127, 193, 156); f2(375, 374, 134); f2(248, 374, 375); f2(131, 129, 130); f2(134, 129, 131); f2(129, 196, 130); f2(130, 196, 236); f2(49, 156, 39); f2(49, 127, 156); f2(50, 51, 49); f2(124, 126, 125); f2(123, 126, 124); f2(126, 34, 125); f2(121, 122, 119); f2(120, 122, 121); f2(121, 119, 125); f2(125, 119, 215); f2(34, 121, 125); f2(37, 121, 34); f2(199, 120, 121); f2(66, 76, 86); f2(22, 66, 86); f2(22, 86, 85); f2(21, 86, 76); f2(86, 27, 85); f2(21, 27, 86); f2(61, 84, 83); f2(82, 61, 83); f2(79, 83, 84); f2(81, 82, 79); f2(82, 83, 79); f2(81, 61, 82); f2(78, 81, 80); f2(80, 81, 79); f2(79, 45, 75); f2(44, 45, 79); f2(75, 80, 79); f2(78, 80, 74); f2(79, 84, 44); f2(76, 77, 21); f2(77, 44, 21); f2(78, 76, 66); f2(78, 74, 76); f2(75, 45, 77); f2(76, 75, 77); f2(74, 75, 76); f2(80, 75, 74); f2(73, 14, 72); f2(14, 30, 72); f2(70, 33, 52); f2(64, 52, 43); f2(73, 72, 33); f2(70, 73, 33); f2(15, 28, 54); f2(56, 15, 54); f2(59, 71, 58); f2(71, 29, 58); f2(28, 71, 59); f2(54, 28, 59); f2(64, 70, 52); f2(25, 23, 15); f2(14, 25, 15); f2(15, 23, 28); f2(30, 14, 15); f2(68, 44, 84); f2(69, 81, 78); f2(46, 756, 69); f2(67, 63, 46); f2(63, 756, 46); f2(68, 63, 20); f2(67, 46, 25); f2(67, 14, 19); f2(20, 19, 47); f2(21, 26, 42); f2(24, 66, 48); f2(66, 22, 48); f2(27, 21, 42); f2(85, 27, 65); f2(26, 64, 42); f2(26, 47, 64); f2(29, 24, 41); f2(24, 48, 41); f2(41, 48, 11); f2(47, 70, 64); f2(47, 73, 70); f2(47, 19, 73); f2(63, 68, 62); f2(62, 68, 61); f2(61, 68, 84); f2(63, 62, 81); f2(62, 61, 81); f2(69, 63, 81); f2(756, 63, 69); f2(52, 33, 60); f2(52, 60, 51); f2(59, 58, 434); f2(54, 434, 387); f2(54, 59, 434); f2(46, 69, 23); f2(23, 69, 24); f2(58, 57, 36); f2(57, 212, 36); f2(58, 36, 434); f2(55, 54, 387); f2(56, 54, 55); f2(617, 32, 55); f2(32, 56, 55); f2(32, 30, 56); f2(30, 15, 56); f2(43, 50, 53); f2(43, 51, 50); f2(52, 51, 43); f2(50, 49, 39); f2(24, 69, 66); f2(20, 47, 44); f2(44, 47, 26); f2(69, 78, 66); f2(45, 44, 77); f2(68, 20, 44); f2(42, 43, 53); f2(42, 64, 43); f2(41, 11, 212); f2(29, 41, 57); f2(57, 41, 212); f2(58, 29, 57); f2(53, 39, 38); f2(35, 17, 37); f2(17, 38, 37); f2(53, 50, 39); f2(39, 203, 38); f2(35, 37, 34); f2(17, 42, 53); f2(17, 53, 38); f2(16, 17, 35); f2(12, 35, 34); f2(212, 12, 36); f2(12, 13, 35); f2(12, 34, 428); f2(36, 12, 428); f2(212, 11, 12); f2(11, 13, 12); f2(33, 72, 60); f2(72, 31, 60); f2(72, 30, 32); f2(72, 32, 31); f2(23, 24, 29); f2(71, 23, 29); f2(28, 23, 71); f2(20, 67, 19); f2(21, 44, 26); f2(25, 46, 23); f2(14, 67, 25); f2(22, 85, 18); f2(48, 22, 18); f2(85, 65, 18); f2(65, 16, 18); f2(27, 42, 17); f2(65, 27, 17); f2(63, 67, 20); f2(19, 14, 73); f2(11, 48, 18); f2(16, 65, 17); f2(11, 18, 13); f2(18, 16, 13); f2(16, 35, 13); f2(416, 36, 422); f2(36, 416, 269); f2(704, 714, 703); f2(714, 717, 703); f2(694, 271, 506); f2(506, 271, 507); f2(572, 709, 788); f2(788, 554, 572); f2(709, 572, 702); f2(702, 572, 573); f2(507, 702, 573); f2(573, 572, 598); f2(573, 505, 507); f2(507, 505, 506); f2(506, 509, 694); f2(509, 511, 693); f2(522, 523, 511); f2(692, 511, 523); f2(589, 707, 523); f2(594, 697, 589); f2(581, 594, 580); f2(698, 594, 581); f2(705, 581, 519); f2(705, 519, 706); f2(519, 579, 706); f2(699, 579, 517); f2(699, 517, 700); f2(517, 561, 700); f2(703, 561, 564); f2(564, 563, 703); f2(704, 576, 716); f2(576, 704, 563); f2(703, 563, 704); f2(716, 714, 704); f2(700, 561, 703); f2(706, 579, 699); f2(698, 581, 705); f2(697, 594, 698); f2(696, 589, 697); f2(707, 589, 696); f2(692, 523, 707); f2(693, 511, 692); f2(694, 509, 693); f2(702, 507, 271); f2(701, 709, 702); f2(788, 709, 708); f2(742, 415, 606); f2(690, 742, 606); f2(788, 789, 554); f2(790, 791, 547); f2(547, 682, 568); f2(568, 683, 592); f2(592, 691, 608); f2(686, 590, 608); f2(690, 590, 686); f2(607, 739, 688); f2(689, 607, 684); f2(712, 607, 689); f2(691, 592, 683); f2(682, 547, 791); f2(568, 682, 683); f2(686, 608, 691); f2(685, 690, 686); f2(607, 685, 684); f2(712, 689, 713); f2(607, 712, 721); f2(739, 607, 721); f2(740, 741, 687); f2(641, 650, 649); f2(641, 649, 643); f2(671, 639, 680); f2(680, 676, 671); f2(673, 648, 654); f2(648, 673, 675); f2(672, 643, 642); f2(674, 672, 642); f2(624, 625, 626); f2(624, 627, 625); f2(631, 627, 628); f2(628, 627, 624); f2(669, 625, 629); f2(626, 625, 669); f2(625, 630, 629); f2(625, 627, 630); f2(631, 632, 633); f2(627, 631, 633); f2(669, 680, 634); f2(669, 629, 680); f2(627, 635, 630); f2(627, 633, 635); f2(633, 632, 637); f2(632, 636, 637); f2(629, 630, 638); f2(634, 680, 639); f2(629, 665, 680); f2(645, 642, 649); f2(642, 643, 649); f2(644, 657, 651); f2(645, 657, 644); f2(645, 649, 657); f2(648, 652, 654); f2(648, 646, 652); f2(646, 651, 652); f2(654, 652, 653); f2(649, 655, 656); f2(649, 656, 659); f2(649, 650, 655); f2(657, 659, 658); f2(657, 649, 659); f2(651, 657, 658); f2(652, 651, 658); f2(658, 660, 662); f2(652, 662, 653); f2(652, 658, 662); f2(658, 661, 660); f2(659, 661, 658); f2(659, 656, 661); f2(665, 646, 648); f2(663, 648, 675); f2(677, 668, 637); f2(633, 637, 664); f2(635, 633, 664); f2(629, 638, 665); f2(630, 635, 638); f2(644, 651, 647); f2(647, 651, 646); f2(637, 642, 645); f2(676, 680, 666); f2(680, 648, 666); f2(680, 665, 648); f2(665, 638, 646); f2(638, 644, 647); f2(635, 644, 638); f2(635, 645, 644); f2(664, 645, 635); f2(664, 637, 645); f2(668, 667, 637); f2(666, 648, 663); f2(638, 647, 646); f2(637, 667, 642); f2(667, 674, 642); f2(677, 637, 670); f2(636, 670, 637); f2(775, 711, 783); f2(609, 778, 610); f2(611, 718, 609); f2(718, 611, 710); f2(609, 610, 611); f2(778, 779, 610); f2(711, 732, 783); f2(782, 783, 732); f2(781, 782, 731); f2(590, 690, 606); f2(590, 606, 415); f2(513, 515, 454); f2(0x0202, 515, 513); f2(513, 454, 503); f2(715, 603, 722); f2(603, 539, 722); f2(603, 602, 539); f2(602, 538, 539); f2(548, 591, 601); f2(548, 601, 595); f2(540, 789, 541); f2(568, 592, 593); f2(593, 591, 600); f2(593, 600, 549); f2(600, 591, 548); f2(536, 598, 599); f2(500, 536, 599); f2(598, 557, 599); f2(597, 573, 598); f2(597, 596, 573); f2(536, 597, 598); f2(716, 576, 575); f2(519, 580, 558); f2(519, 558, 579); f2(520, 510, 529); f2(529, 510, 530); f2(510, 508, 530); f2(530, 508, 525); f2(545, 548, 595); f2(608, 590, 591); f2(593, 608, 591); f2(592, 608, 593); f2(590, 415, 591); f2(591, 415, 601); f2(128, 599, 557); f2(128, 583, 599); f2(532, 589, 523); f2(521, 532, 523); f2(532, 594, 589); f2(679, 586, 347); f2(723, 587, 331); f2(587, 723, 588); f2(331, 587, 678); f2(587, 585, 678); f2(587, 495, 585); f2(587, 588, 495); f2(678, 585, 679); f2(495, 584, 585); f2(585, 584, 586); f2(679, 585, 586); f2(582, 599, 583); f2(583, 128, 306); f2(500, 599, 582); f2(347, 583, 306); f2(584, 582, 586); f2(586, 582, 583); f2(584, 501, 582); f2(586, 583, 347); f2(501, 500, 582); f2(525, 508, 569); f2(510, 509, 508); f2(580, 519, 581); f2(579, 558, 562); f2(579, 562, 517); f2(578, 443, 574); f2(574, 566, 578); f2(574, 442, 497); f2(443, 442, 574); f2(528, 527, 577); f2(577, 527, 499); f2(528, 577, 439); f2(439, 577, 502); f2(502, 577, 499); f2(527, 535, 534); f2(527, 526, 535); f2(499, 527, 534); f2(526, 565, 535); f2(716, 575, 723); f2(575, 496, 498); f2(588, 498, 495); f2(576, 566, 496); f2(496, 566, 574); f2(576, 496, 575); f2(596, 505, 573); f2(570, 569, 504); f2(569, 509, 504); f2(508, 509, 569); f2(576, 563, 566); f2(563, 567, 566); f2(525, 569, 570); f2(525, 570, 565); f2(565, 570, 596); f2(561, 560, 564); f2(560, 0x0200, 564); f2(564, 0x0200, 563); f2(563, 0x0200, 567); f2(560, 513, 0x0200); f2(561, 562, 560); f2(517, 562, 561); f2(562, 559, 0x0202); f2(558, 559, 562); f2(128, 557, 555); f2(555, 556, 553); f2(557, 556, 555); f2(556, 598, 572); f2(557, 598, 556); f2(556, 572, 554); f2(553, 789, 540); f2(554, 789, 553); f2(556, 554, 553); f2(550, 549, 552); f2(552, 600, 545); f2(790, 549, 550); f2(551, 550, 552); f2(551, 552, 537); f2(551, 789, 550); f2(541, 789, 551); f2(552, 549, 600); f2(600, 548, 545); f2(547, 593, 549); f2(568, 593, 547); f2(790, 547, 549); f2(789, 790, 550); f2(546, 729, 725); f2(537, 552, 546); f2(537, 546, 725); f2(545, 595, 729); f2(552, 545, 546); f2(546, 545, 729); f2(494, 542, 543); f2(543, 542, 602); f2(494, 555, 542); f2(128, 555, 494); f2(362, 543, 544); f2(363, 362, 544); f2(544, 603, 715); f2(543, 602, 603); f2(544, 543, 603); f2(542, 553, 540); f2(555, 553, 542); f2(602, 542, 538); f2(542, 541, 538); f2(538, 541, 551); f2(540, 541, 542); f2(538, 551, 537); f2(539, 537, 722); f2(722, 537, 725); f2(539, 538, 537); f2(499, 534, 536); f2(500, 499, 536); f2(534, 535, 597); f2(535, 596, 597); f2(565, 596, 535); f2(536, 534, 597); f2(436, 465, 518); f2(533, 436, 518); f2(437, 436, 533); f2(437, 533, 532); f2(566, 567, 578); f2(567, 531, 444); f2(567, 444, 578); f2(529, 530, 524); f2(441, 529, 524); f2(528, 441, 527); f2(524, 525, 565); f2(530, 525, 524); f2(526, 524, 565); f2(522, 521, 523); f2(460, 521, 522); f2(520, 460, 522); f2(520, 522, 510); f2(437, 532, 521); f2(559, 580, 518); f2(580, 594, 533); f2(558, 580, 559); f2(518, 580, 533); f2(533, 594, 532); f2(516, 465, 515); f2(0x0202, 516, 515); f2(515, 465, 454); f2(518, 465, 516); f2(559, 518, 516); f2(0x0202, 559, 516); f2(454, 465, 456); f2(562, 0x0202, 560); f2(560, 0x0202, 513); f2(0x0200, 503, 567); f2(0x0200, 513, 503); f2(567, 503, 531); f2(510, 511, 509); f2(510, 522, 511); f2(504, 506, 505); f2(504, 509, 506); f2(570, 504, 505); f2(570, 505, 596); f2(531, 454, 444); f2(503, 454, 531); f2(456, 455, 454); f2(502, 500, 501); f2(502, 499, 500); f2(439, 502, 501); f2(498, 497, 495); f2(498, 496, 497); f2(495, 497, 501); f2(495, 501, 584); f2(497, 439, 501); f2(497, 442, 439); f2(496, 574, 497); f2(481, 471, 491); f2(471, 427, 491); f2(491, 427, 490); f2(491, 426, 481); f2(432, 491, 490); f2(432, 426, 491); f2(489, 466, 488); f2(466, 487, 488); f2(488, 484, 489); f2(487, 486, 484); f2(488, 487, 484); f2(466, 486, 487); f2(486, 483, 485); f2(486, 485, 484); f2(450, 484, 480); f2(450, 449, 484); f2(485, 480, 484); f2(485, 483, 479); f2(489, 484, 449); f2(482, 481, 426); f2(449, 482, 426); f2(481, 483, 471); f2(479, 483, 481); f2(450, 480, 482); f2(480, 481, 482); f2(480, 479, 481); f2(480, 485, 479); f2(419, 478, 477); f2(435, 419, 477); f2(438, 475, 457); f2(457, 469, 448); f2(477, 478, 438); f2(478, 475, 438); f2(433, 420, 459); f2(420, 461, 459); f2(476, 464, 463); f2(616, 476, 463); f2(476, 433, 464); f2(433, 459, 464); f2(475, 469, 457); f2(615, 430, 420); f2(430, 419, 420); f2(615, 420, 433); f2(419, 435, 420); f2(449, 473, 489); f2(486, 474, 483); f2(757, 451, 474); f2(468, 472, 451); f2(757, 468, 451); f2(468, 473, 425); f2(451, 472, 430); f2(419, 472, 424); f2(424, 425, 452); f2(431, 426, 447); f2(471, 429, 453); f2(427, 471, 453); f2(426, 432, 447); f2(432, 490, 470); f2(469, 431, 447); f2(452, 431, 469); f2(429, 616, 620); f2(453, 429, 620); f2(453, 620, 613); f2(475, 452, 469); f2(478, 452, 475); f2(424, 452, 478); f2(473, 468, 467); f2(473, 467, 466); f2(473, 466, 489); f2(467, 468, 486); f2(466, 467, 486); f2(468, 474, 486); f2(468, 757, 474); f2(438, 457, 465); f2(465, 457, 456); f2(463, 464, 529); f2(529, 459, 520); f2(464, 459, 529); f2(474, 451, 615); f2(474, 615, 429); f2(462, 463, 441); f2(445, 462, 441); f2(441, 463, 529); f2(459, 460, 520); f2(459, 461, 460); f2(437, 521, 460); f2(461, 437, 460); f2(435, 437, 461); f2(420, 435, 461); f2(455, 448, 458); f2(456, 448, 455); f2(456, 457, 448); f2(454, 455, 444); f2(474, 429, 471); f2(452, 425, 449); f2(452, 449, 431); f2(483, 474, 471); f2(449, 450, 482); f2(425, 473, 449); f2(448, 447, 458); f2(469, 447, 448); f2(613, 620, 445); f2(620, 616, 462); f2(620, 462, 445); f2(616, 463, 462); f2(444, 458, 443); f2(614, 618, 442); f2(443, 614, 442); f2(455, 458, 444); f2(578, 444, 443); f2(442, 618, 439); f2(447, 614, 458); f2(458, 614, 443); f2(614, 421, 618); f2(618, 417, 439); f2(417, 445, 441); f2(418, 417, 618); f2(439, 417, 528); f2(417, 441, 528); f2(613, 445, 417); f2(418, 613, 417); f2(477, 438, 465); f2(436, 477, 465); f2(435, 477, 437); f2(437, 477, 436); f2(429, 615, 616); f2(615, 476, 616); f2(615, 433, 476); f2(472, 425, 424); f2(449, 426, 431); f2(451, 430, 615); f2(472, 419, 430); f2(490, 427, 423); f2(427, 453, 423); f2(470, 490, 423); f2(421, 470, 423); f2(447, 432, 614); f2(432, 470, 614); f2(472, 468, 425); f2(419, 424, 478); f2(453, 613, 423); f2(470, 421, 614); f2(423, 613, 418); f2(421, 423, 418); f2(618, 421, 418); f2(441, 526, 527); f2(526, 441, 524); f2(715, 169, 724); f2(544, 715, 724); f2(363, 544, 724); f2(169, 363, 724); f2(729, 595, 727); f2(235, 729, 727); f2(172, 389, 785); f2(241, 172, 785); f2(784, 241, 785); f2(241, 784, 390); f2(791, 790, 787); f2(790, 789, 787); f2(789, 786, 787); f2(786, 789, 788); f2(128, 285, 793); f2(793, 285, 794); f2(795, 794, 359); f2(798, 799, 796); f2(797, 798, 796); f2(799, 149, 796); f2(149, 800, 796); f2(801, 800, 149); f2(799, 358, 150); f2(149, 799, 150); f2(796, 802, 810); f2(810, 802, 803); f2(805, 804, 803); f2(802, 805, 803); f2(805, 806, 804); f2(808, 809, 828); f2(808, 828, 807); f2(805, 808, 806); f2(808, 807, 806); f2(809, 834, 828); f2(809, 795, 834); f2(828, 834, 819); f2(797, 796, 376); f2(796, 810, 376); f2(369, 792, 376); f2(792, 797, 376); f2(792, 798, 797); f2(798, 719, 799); f2(792, 719, 798); f2(719, 362, 799); f2(795, 359, 811); f2(795, 811, 834); f2(362, 358, 799); f2(358, 363, 325); f2(362, 363, 358); f2(679, 347, 305); f2(305, 347, 308); f2(812, 376, 843); f2(369, 376, 812); f2(812, 843, 227); f2(813, 812, 227); f2(846, 814, 815); f2(818, 833, 816); f2(833, 817, 816); f2(817, 813, 816); f2(819, 833, 820); f2(820, 833, 818); f2(836, 819, 820); f2(807, 822, 823); f2(807, 823, 806); f2(828, 822, 807); f2(806, 823, 304); f2(822, 821, 823); f2(825, 826, 824); f2(821, 822, 827); f2(822, 819, 827); f2(828, 819, 822); f2(806, 304, 804); f2(804, 304, 829); f2(825, 831, 832); f2(826, 825, 292); f2(827, 836, 825); f2(827, 819, 836); f2(834, 811, 833); f2(833, 811, 817); f2(834, 833, 819); f2(831, 820, 835); f2(831, 835, 830); f2(831, 836, 820); f2(825, 836, 831); f2(838, 839, 837); f2(814, 846, 840); f2(840, 810, 814); f2(803, 841, 814); f2(803, 804, 841); f2(814, 841, 815); f2(841, 3, 815); f2(841, 829, 3); f2(841, 804, 829); f2(810, 803, 814); f2(844, 839, 842); f2(842, 839, 838); f2(838, 826, 842); f2(843, 840, 839); f2(376, 840, 843); f2(813, 817, 812); f2(843, 844, 227); f2(843, 839, 844); f2(839, 845, 837); f2(840, 846, 839); f2(839, 846, 845); f2(845, 846, 815); f2(827, 825, 824); f2(0, 827, 824); f2(827, 0, 821); f2(821, 0, 823); f2(823, 1, 304); f2(815, 3, 5); f2(5, 3, 829); f2(823, 0, 1); f2(1, 0, 4); f2(304, 1, 829); f2(1, 4, 829); f2(4, 5, 829); f2(845, 815, 4); f2(4, 815, 5); f2(0, 845, 4); f2(820, 818, 816); f2(813, 6, 816); f2(813, 227, 6); f2(820, 816, 835); f2(830, 835, 245); f2(245, 835, 816); f2(227, 844, 245); f2(844, 830, 245); f2(227, 245, 6); f2(6, 245, 816); f2(0, 9, 10); f2(0, 824, 9); f2(845, 0, 10); f2(845, 10, 274); f2(274, 10, 9); f2(837, 845, 274); f2(824, 280, 9); f2(824, 826, 280); f2(826, 838, 286); f2(280, 826, 286); f2(838, 837, 286); f2(286, 837, 274); f2(280, 286, 9); f2(286, 274, 9); f2(842, 292, 97); f2(842, 826, 292); f2(97, 292, 91); f2(825, 91, 292); f2(825, 832, 91); f2(831, 830, 103); f2(832, 831, 103); f2(91, 832, 103); f2(830, 844, 103); f2(103, 844, 301); f2(844, 842, 301); f2(301, 842, 97); f2(103, 301, 91); f2(91, 301, 97); f2(143, 303, 144); f2(303, 305, 144); f2(305, 145, 144); f2(305, 308, 145); f2(145, 308, 146); f2(308, 640, 146); f2(146, 640, 147); f2(640, 793, 383); f2(640, 383, 147); f2(150, 358, 151); f2(358, 325, 151); f2(143, 331, 303); f2(331, 678, 303); f2(678, 679, 303); f2(303, 679, 305); f2(308, 306, 640); f2(347, 306, 308); f2(128, 793, 640); f2(306, 128, 640); f2(359, 792, 811); f2(811, 792, 369); f2(811, 369, 817); f2(817, 369, 812); f2(376, 810, 840); f2(801, 149, 148); f2(809, 794, 795); f2(793, 794, 809); f2(148, 621, 801); f2(383, 621, 148); f2(147, 383, 148); f2(383, 808, 805); f2(383, 805, 621); f2(383, 793, 808); f2(793, 809, 808); f2(801, 621, 800); f2(621, 805, 800); f2(796, 800, 802); f2(800, 805, 802); f2(794, 285, 359); f2(359, 719, 792); f2(371, 373, 493); f2(371, 493, 605); f2(605, 604, 300); f2(209, 208, 571); f2(208, 207, 571); f2(40, 209, 571); f2(210, 40, 571); f2(210, 211, 40); f2(112, 209, 111); f2(209, 40, 111); f2(612, 571, 622); f2(612, 622, 220); f2(221, 222, 220); f2(222, 612, 220); f2(224, 222, 221); f2(229, 228, 275); f2(275, 228, 226); f2(228, 222, 224); f2(226, 228, 224); f2(282, 229, 275); f2(604, 229, 282); f2(282, 275, 720); f2(571, 207, 114); f2(622, 571, 114); f2(681, 113, 114); f2(207, 681, 114); f2(208, 681, 207); f2(370, 208, 209); f2(370, 681, 208); f2(368, 370, 209); f2(300, 604, 623); f2(623, 604, 282); f2(112, 368, 209); f2(363, 112, 325); f2(363, 368, 112); f2(136, 107, 108); f2(114, 750, 293); f2(114, 113, 750); f2(293, 750, 93); f2(750, 246, 93); f2(247, 296, 249); f2(281, 253, 250); f2(251, 281, 250); f2(246, 251, 250); f2(281, 720, 492); f2(281, 492, 253); f2(720, 284, 492); f2(266, 226, 267); f2(267, 226, 224); f2(266, 275, 226); f2(267, 224, 88); f2(265, 266, 267); f2(272, 270, 268); f2(266, 265, 273); f2(720, 266, 273); f2(720, 275, 266); f2(88, 224, 221); f2(88, 221, 276); f2(278, 270, 279); f2(270, 272, 100); f2(284, 273, 270); f2(720, 273, 284); f2(623, 282, 281); f2(623, 281, 251); f2(281, 282, 720); f2(492, 278, 283); f2(283, 278, 277); f2(284, 278, 492); f2(284, 270, 278); f2(288, 287, 619); f2(296, 247, 289); f2(622, 289, 247); f2(290, 220, 247); f2(221, 220, 290); f2(290, 247, 249); f2(89, 290, 249); f2(276, 290, 89); f2(221, 290, 276); f2(220, 622, 247); f2(288, 294, 291); f2(288, 291, 287); f2(272, 287, 291); f2(289, 293, 288); f2(289, 114, 293); f2(251, 246, 750); f2(294, 293, 93); f2(288, 293, 294); f2(295, 288, 619); f2(296, 289, 288); f2(296, 288, 295); f2(296, 295, 249); f2(270, 273, 268); f2(273, 297, 268); f2(297, 273, 265); f2(297, 265, 267); f2(87, 267, 88); f2(89, 249, 298); f2(89, 298, 276); f2(297, 267, 87); f2(297, 87, 90); f2(87, 88, 276); f2(90, 87, 276); f2(298, 90, 276); f2(249, 295, 90); f2(249, 90, 298); f2(295, 297, 90); f2(253, 492, 250); f2(92, 246, 250); f2(93, 246, 92); f2(250, 492, 283); f2(283, 277, 94); f2(283, 94, 250); f2(294, 93, 94); f2(277, 294, 94); f2(94, 93, 92); f2(94, 92, 250); f2(95, 297, 96); f2(268, 297, 95); f2(297, 295, 96); f2(96, 295, 299); f2(96, 299, 95); f2(295, 619, 299); f2(98, 268, 95); f2(272, 268, 98); f2(287, 272, 99); f2(272, 98, 99); f2(619, 287, 99); f2(619, 99, 299); f2(99, 98, 95); f2(299, 99, 95); f2(100, 291, 102); f2(272, 291, 100); f2(100, 102, 101); f2(101, 270, 100); f2(279, 270, 101); f2(277, 278, 302); f2(278, 279, 302); f2(279, 101, 302); f2(294, 277, 302); f2(294, 302, 104); f2(291, 294, 104); f2(291, 104, 102); f2(104, 302, 101); f2(104, 101, 102); f2(106, 143, 105); f2(107, 106, 105); f2(117, 107, 105); f2(108, 107, 117); f2(108, 117, 109); f2(110, 108, 109); f2(110, 109, 115); f2(493, 110, 118); f2(118, 110, 115); f2(112, 111, 151); f2(325, 112, 151); f2(331, 143, 106); f2(138, 331, 106); f2(136, 137, 107); f2(137, 138, 106); f2(137, 106, 107); f2(135, 108, 110); f2(135, 136, 108); f2(493, 373, 110); f2(373, 135, 110); f2(681, 300, 623); f2(681, 623, 113); f2(113, 623, 251); f2(113, 251, 750); f2(622, 114, 289); f2(40, 211, 116); f2(605, 229, 604); f2(605, 493, 229); f2(372, 116, 211); f2(372, 118, 116); f2(118, 115, 116); f2(228, 118, 222); f2(222, 118, 372); f2(493, 118, 228); f2(229, 493, 228); f2(372, 211, 210); f2(222, 372, 210); f2(210, 571, 612); f2(222, 210, 612); f2(371, 605, 300); f2(370, 300, 681); f2(285, 128, 494); f2(359, 285, 494); f2(719, 359, 494); f2(543, 719, 494); f2(362, 719, 543); f2(370, 168, 307); f2(300, 370, 307); f2(300, 307, 371); f2(307, 373, 371); f2(588, 723, 575); f2(588, 575, 498); f2(219, 122, 200); f2(219, 200, 723); this.x = 0; this.y = 0; this.z = 0; this.rotationX = 0; this.rotationY = 0; this.rotationZ = 0; this.scaleX = 1; this.scaleY = 1; this.scaleZ = 1; this.geometry.ready = true; } public function f(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number):void{ var _local13:Triangle3D; _local13 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, [new NumberUV(_arg4, _arg5), new NumberUV(_arg6, _arg7), new NumberUV(_arg8, _arg9)]); _local13.faceNormal = new Number3D(_arg10, _arg11, _arg12); fa.push(_local13); } public function f2(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Triangle3D; _local4 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, []); fa.push(_local4); } public function v(_arg1:Number, _arg2:Number, _arg3:Number):void{ ve.push(new Vertex3D(_arg1, _arg2, _arg3)); } } }//package
Section 110
//redl (redl) package { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.core.geom.*; public class redl extends TriangleMesh3D { private var ve:Array; private var fa:Array; public function redl(_arg1:MaterialObject3D, _arg2:Object=null){ super(_arg1, new Array(), new Array(), null, _arg2); ve = this.geometry.vertices; fa = this.geometry.faces; v(-0.368247, 1.141258, 3.20341); v(-0.329784, 1.19972, 3.210593); v(-0.280029, 1.248456, 3.216421); v(-0.22098, 1.291622, 3.217068); v(-0.152802, 1.325366, 3.218138); v(-0.668897, 0.099141, 0.085683); v(-0.70233, 0.189518, -0.035852); v(-0.397669, -0.34463, -1.071585); v(-0.465178, -0.429917, -1.10205); v(-0.451983, -0.653343, -1.095175); v(-0.598775, -0.533536, -1.041103); v(-0.376205, 0.338529, -0.390385); v(-0.212126, 0.308412, -0.308632); v(-0.196889, 0.287442, -0.413151); v(-0.219696, -1.258276, -1.022207); v(-0.378278, -1.232539, 0.321709); v(-0.580901, -0.913876, -0.887117); v(-0.569635, -0.713813, -0.975048); v(-0.726694, -0.633442, -0.752506); v(-0.147416, -0.083324, -0.923803); v(-0.445006, 0.260267, -0.65757); v(-0.695864, 0.170179, -0.706453); v(-0.186654, 0.25699, -0.513809); v(-0.179185, 0.2155, -0.613017); v(-0.675311, 0.294937, -0.292173); v(-0.630461, 0.233208, 0.008501); v(-0.636839, 0.284263, -0.083408); v(-0.762423, 0.15635, -0.133949); v(-0.863162, -0.305493, -0.61432); v(-0.815491, 0.090219, -0.300522); v(-0.855422, -0.076505, -0.635214); v(-0.803599, -0.227951, -0.847038); v(-0.589447, -0.084718, -0.999959); v(-0.809269, -0.430974, -0.76021); v(-0.337945, -1.384923, -0.586103); v(-0.52413, -1.139659, -0.771818); v(-0.097032, -1.306633, -0.999903); v(-0.314638, -1.395225, -0.078669); v(-0.322206, -1.423576, -0.360701); v(-0.495659, 0.318177, -0.48796); v(-0.383589, 0.140606, -0.805562); v(-0.309646, -0.032014, -0.926554); v(-0.867999, -0.161012, -0.479184); v(-0.222665, -0.343937, -1.061303); v(-0.168149, 0.093082, -0.795981); v(-0.152987, 0.014436, -0.862807); v(-0.736576, -0.343339, -0.944268); v(-0.333493, 0.322457, 0.01179); v(-0.463392, 0.276425, 0.083882); v(-0.473454, 0.345137, -0.189768); v(-0.272008, 0.328163, -0.105281); v(-0.249893, -0.346485, 1.299893); v(-0.304869, -0.977259, 0.748424); v(-0.207436, 0.829281, 3.604215); v(-0.148513, 0.807638, 3.650396); v(-0.218965, 0.990975, 3.5801); v(-0.401708, 0.990672, 3.206774); v(-0.386261, 0.953386, 3.278677); v(-0.392861, 1.070601, 3.199768); v(-0.247206, 0.848347, 3.560709); v(-0.234124, 0.321143, -0.209498); v(-0.174064, 0.1619, -0.709668); v(-1.144359, -0.521395, 0.718582); v(-1.150508, -0.442255, 0.774726); v(-1.023257, -0.760617, 1.613489); v(-1.005348, -0.914973, 1.697415); v(-0.97489, -0.994824, 1.648364); v(-1.13954, -0.653897, 0.805786); v(-1.041177, -0.9914, 1.539485); v(-1.003556, -0.990792, 1.64844); v(-1.122257, -0.884, 1.298819); v(-0.975209, -0.801156, 1.653917); v(-0.970549, -0.858667, 1.690592); v(-0.967937, -0.907775, 1.706207); v(-0.967766, -0.953103, 1.706631); v(-0.989616, -1.009029, 1.553993); v(-0.980217, -1.00286, 1.621039); v(-1.098861, -0.643254, 0.776619); v(-1.051354, -0.884172, 1.114321); v(-1.088764, -0.71181, 0.846353); v(-1.026833, -0.530043, 1.290692); v(-1.070697, -0.41993, 0.978399); v(-1.124303, -0.798696, 1.001572); v(-1.053045, -0.899076, 1.630102); v(-1.112063, -0.800615, 1.483811); v(-1.169766, -0.527711, 1.022679); v(-1.18024, -0.630714, 0.925718); v(-1.066735, -0.617354, 1.423614); v(-0.576419, 0.206197, 0.105986); v(-0.760792, -0.041695, -0.011329); v(-0.696605, -0.890735, 0.445577); v(-0.619003, -0.774422, 0.692767); v(-0.569442, -0.714234, 0.799102); v(-0.313207, -0.43253, 1.199985); v(-0.354865, -0.864337, -1.145978); v(-0.118567, -0.632078, -1.210089); v(-0.241684, -0.773962, -1.235995); v(-0.351608, -1.064595, -1.106084); v(-1.176748, -1.964262, -1.640818); v(-1.568082, -2.032735, -1.394712); v(-1.046602, -1.84243, -1.598118); v(-0.877706, -1.622223, -1.24349); v(-1.0262, -2.050961, -1.920185); v(-1.410704, -1.977666, -1.352193); v(-1.077143, -1.987852, -1.787508); v(-1.370711, -2.150613, -1.84877); v(-1.483638, -2.111245, -1.640952); v(-0.271991, -1.430843, -1.525964); v(-0.282608, -1.281098, -1.097801); v(-1.218461, -2.178016, -2.074872); v(-0.131342, -1.053108, -1.534444); v(-0.180192, -1.210631, -1.527784); v(-0.20994, -1.270998, -1.360957); v(-0.151336, -1.324557, -1.489028); v(-0.391846, -0.957504, -1.094357); v(-0.337167, -0.701234, -1.140437); v(-0.246645, -0.619366, -1.163321); v(-0.38365, -1.283827, -1.143322); v(-0.275162, -1.404166, -1.507673); v(-1.259609, -1.92446, -1.481866); v(-0.912805, -1.840053, -1.735407); v(-1.156066, -2.023339, -1.713686); v(-1.039918, -1.770694, -1.309685); v(-0.407009, -1.340865, -1.13245); v(-1.071748, -1.911508, -1.568054); v(-1.072234, -0.941528, 1.274011); v(-0.997821, -1.00715, 1.495496); v(-0.517237, -0.644001, 0.90374); v(-0.171649, -1.38468, -1.475497); v(-0.162038, -1.350292, -1.336117); v(-0.116194, -1.362423, -1.472744); v(-0.098299, -1.365059, -1.407651); v(-0.305881, -1.194682, -1.069833); v(-0.321347, -1.233672, -1.103108); v(-0.228816, -1.260166, -1.076104); v(-0.315838, -1.182298, -1.02598); v(-0.078712, 1.347079, 3.214291); v(-0.643396, -1.019745, 0.375994); v(-0.457157, -0.832526, 0.813566); v(-1.170108, 0.104519, -1.259938); v(-2.822255, 1.324555, -1.778405); v(-0.788942, 0.324856, -0.283827); v(-1.273875, 0.169377, -1.228471); v(-0.774154, 0.132314, -0.817724); v(-2.868354, 1.432328, -1.543799); v(-1.026864, 0.016723, -0.977187); v(-2.82588, 1.314952, -1.721296); v(-2.812257, 1.394286, -1.6945); v(-3.048028, 1.244588, -2.206323); v(-3.065737, 1.477295, -1.839098); v(-3.046581, 1.492795, -1.848688); v(-3.304839, 1.662506, -1.927585); v(-3.792437, 2.030867, -2.062776); v(-2.42687, 1.233662, -1.348263); v(-2.908418, 1.527284, -1.520878); v(-0.658066, -0.340114, -1.109521); v(-0.686735, -0.204469, -1.11703); v(-0.743703, -0.044967, -1.040069); v(-0.794447, 0.287647, -0.486318); v(-0.776288, 0.301465, -0.166089); v(-0.834904, 0.285811, -0.196112); v(-0.884768, 0.187433, -0.346678); v(-0.907398, 0.008875, -0.691382); v(-0.816821, -0.207517, -1.032292); v(-0.793462, -0.533033, -0.56637); v(-0.834747, -0.329969, -0.316952); v(-0.81646, -0.197999, -0.129542); v(-0.842984, -0.329005, -0.219077); v(-0.758178, -1.013909, -4.3E-5); v(-0.761087, -1.023626, -0.099524); v(-0.762352, -1.02504, -0.195889); v(-0.72654, -0.94345, 0.299957); v(-0.742181, -0.97361, 0.199957); v(-0.627203, -1.231714, -0.156803); v(-0.752363, -0.997154, 0.099956); v(-0.611476, -1.189779, -0.474241); v(-0.845922, -0.749092, -0.366009); v(-0.864428, -0.731994, -0.291137); v(-0.847048, -0.820222, -0.291776); v(-0.832377, -0.869921, -0.280004); v(-0.827366, -0.843187, -0.374052); v(-0.866204, -0.77987, -0.199182); v(-0.77972, -0.961004, -0.36195); v(-0.848176, -0.789429, -0.329693); v(-0.819765, -0.778087, -0.437652); v(-0.845986, -0.586227, -0.380921); v(-0.767333, -1.009144, -0.282296); v(-0.131758, 1.245901, 3.399701); v(-0.067278, 1.264064, 3.399953); v(-0.337751, 1.046591, 3.390706); v(-0.200089, 1.118112, 3.501159); v(-1.10166, -0.41891, 0.757631); v(-1.093581, -0.406707, 0.815288); v(-1.106797, -0.439224, 0.72091); v(-1.109101, -0.529901, 0.704094); v(-1.109791, -0.458682, 0.698091); v(-1.104665, -0.510016, 0.698213); v(-1.080299, -0.407052, 0.909408); v(-1.105425, -0.583368, 0.730074); v(-1.019425, -0.971238, 1.341604); v(-1.049698, -0.459685, 1.127908); v(-1.046213, -0.470408, 1.152717); v(-1.069439, -0.812643, 0.985674); v(-0.083982, 1.014574, 3.633521); v(-0.149042, 1.058493, 3.580708); v(-0.24905, 1.174074, 3.398861); v(-0.191631, 1.215999, 3.399173); v(-0.318552, 1.087182, 3.407881); v(-0.346839, 1.008114, 3.375202); v(-0.356, 0.93906, 3.369481); v(-0.348739, 0.906699, 3.375266); v(-0.285561, 1.081024, 3.456715); v(-0.255292, 1.004872, 3.531349); v(-0.269302, 0.860544, 3.527016); v(-1.072974, -0.798079, 0.960613); v(-1.000772, -0.639456, 1.475272); v(-0.997615, -0.65603, 1.497213); v(-1.023476, -0.964504, 1.312748); v(-0.093081, -0.657593, 1.083644); v(-0.134396, -0.779515, 0.977683); v(-0.070849, -0.471195, 1.254381); v(-0.189312, -0.610377, 1.12218); v(-0.248162, -0.727948, 1.00483); v(-0.264744, 1.053374, 3.499142); v(-0.265017, 0.932659, 3.53599); v(-0.971483, -0.974935, 1.684199); v(-1.131294, -0.46855, 1.052657); v(0.368247, 1.141258, 3.20341); v(0.329784, 1.19972, 3.210593); v(0.280029, 1.248456, 3.216421); v(0.22098, 1.291622, 3.217068); v(0.152802, 1.325366, 3.218138); v(0.668897, 0.099141, 0.085683); v(0.70233, 0.189518, -0.035852); v(0.397669, -0.34463, -1.071585); v(0.465178, -0.429917, -1.10205); v(0.451983, -0.653343, -1.095175); v(0.598775, -0.533536, -1.041103); v(0.376205, 0.338529, -0.390385); v(0.212126, 0.308412, -0.308632); v(0.196889, 0.287442, -0.413151); v(0.219696, -1.258276, -1.022207); v(0.378278, -1.232539, 0.321709); v(0.580901, -0.913876, -0.887117); v(0.569635, -0.713813, -0.975048); v(0.726694, -0.633442, -0.752506); v(0.147416, -0.083324, -0.923803); v(0.445006, 0.260267, -0.65757); v(0.695864, 0.170179, -0.706453); v(0.186654, 0.25699, -0.513809); v(0.179185, 0.2155, -0.613017); v(0.675311, 0.294937, -0.292173); v(0.630461, 0.233208, 0.008501); v(0.636839, 0.284263, -0.083408); v(0.762423, 0.15635, -0.133949); v(0.863162, -0.305493, -0.61432); v(0.815491, 0.090219, -0.300522); v(0.855422, -0.076505, -0.635214); v(0.803599, -0.227951, -0.847038); v(0.589447, -0.084718, -0.999959); v(0.809269, -0.430974, -0.76021); v(0.337945, -1.384923, -0.586103); v(0.52413, -1.139659, -0.771818); v(0.097032, -1.306633, -0.999903); v(0.314638, -1.395225, -0.078669); v(0.322206, -1.423576, -0.360701); v(0.495659, 0.318177, -0.48796); v(0.383589, 0.140606, -0.805562); v(0.309646, -0.032014, -0.926554); v(0.867999, -0.161012, -0.479184); v(0.222665, -0.343937, -1.061303); v(0.168149, 0.093082, -0.795981); v(0.152987, 0.014436, -0.862807); v(0.736576, -0.343339, -0.944268); v(0.333493, 0.322457, 0.01179); v(0.463392, 0.276425, 0.083882); v(0.473454, 0.345137, -0.189768); v(0.272008, 0.328163, -0.105281); v(0.249893, -0.346485, 1.299893); v(0.304869, -0.977259, 0.748424); v(0.207436, 0.829281, 3.604215); v(0.148513, 0.807638, 3.650396); v(0.218965, 0.990975, 3.5801); v(0.401708, 0.990672, 3.206774); v(0.386261, 0.953386, 3.278677); v(0.392861, 1.070601, 3.199768); v(0.247206, 0.848347, 3.560709); v(0.234124, 0.321143, -0.209498); v(0.174064, 0.1619, -0.709668); v(1.144359, -0.521395, 0.718582); v(1.150508, -0.442255, 0.774726); v(1.023257, -0.760617, 1.613489); v(1.005348, -0.914973, 1.697415); v(0.97489, -0.994824, 1.648364); v(1.13954, -0.653897, 0.805786); v(1.041177, -0.9914, 1.539485); v(1.003556, -0.990792, 1.64844); v(1.122257, -0.884, 1.298819); v(0.975209, -0.801156, 1.653917); v(0.970549, -0.858667, 1.690592); v(0.967937, -0.907775, 1.706207); v(0.967766, -0.953103, 1.706631); v(0.989616, -1.009029, 1.553993); v(0.980217, -1.00286, 1.621039); v(1.098861, -0.643254, 0.776619); v(1.051354, -0.884172, 1.114321); v(1.088764, -0.71181, 0.846353); v(1.026833, -0.530043, 1.290692); v(1.070697, -0.41993, 0.978399); v(1.124303, -0.798696, 1.001572); v(1.053045, -0.899076, 1.630102); v(1.112063, -0.800615, 1.483811); v(1.169766, -0.527711, 1.022679); v(1.18024, -0.630714, 0.925718); v(1.066735, -0.617354, 1.423614); v(0.576419, 0.206197, 0.105986); v(0.760792, -0.041695, -0.011329); v(0.696605, -0.890735, 0.445577); v(0.619003, -0.774422, 0.692767); v(0.569442, -0.714234, 0.799102); v(0.313207, -0.43253, 1.199985); v(0.354865, -0.864337, -1.145978); v(0.118567, -0.632078, -1.210089); v(0.241684, -0.773962, -1.235995); v(0.351608, -1.064595, -1.106084); v(1.176748, -1.964262, -1.640818); v(1.568082, -2.032735, -1.394712); v(1.046602, -1.84243, -1.598118); v(0.877706, -1.622223, -1.24349); v(1.0262, -2.050961, -1.920185); v(1.410704, -1.977666, -1.352193); v(1.077143, -1.987852, -1.787508); v(1.370711, -2.150613, -1.84877); v(1.483638, -2.111245, -1.640952); v(0.271991, -1.430843, -1.525964); v(0.282608, -1.281098, -1.097801); v(1.218461, -2.178016, -2.074872); v(0.131342, -1.053108, -1.534444); v(0.180192, -1.210631, -1.527784); v(0.20994, -1.270998, -1.360957); v(0.151336, -1.324557, -1.489028); v(0.391846, -0.957504, -1.094357); v(0.337167, -0.701234, -1.140437); v(0.246645, -0.619366, -1.163321); v(0.38365, -1.283827, -1.143322); v(0.275162, -1.404166, -1.507673); v(1.259609, -1.92446, -1.481866); v(0.912805, -1.840053, -1.735407); v(1.156066, -2.023339, -1.713686); v(1.039918, -1.770694, -1.309685); v(0.407009, -1.340865, -1.13245); v(1.071748, -1.911508, -1.568054); v(1.072234, -0.941528, 1.274011); v(0.997821, -1.00715, 1.495496); v(0.517237, -0.644001, 0.90374); v(0.171649, -1.38468, -1.475497); v(0.162038, -1.350292, -1.336117); v(0.116194, -1.362423, -1.472744); v(0.098299, -1.365059, -1.407651); v(0.305881, -1.194682, -1.069833); v(0.321347, -1.233672, -1.103108); v(0.228816, -1.260166, -1.076104); v(0.315838, -1.182298, -1.02598); v(0.078712, 1.347079, 3.214291); v(0.643396, -1.019745, 0.375994); v(0.457157, -0.832526, 0.813566); v(1.170108, 0.104519, -1.259938); v(2.822255, 1.324555, -1.778405); v(0.788942, 0.324856, -0.283827); v(1.273875, 0.169377, -1.228471); v(0.774154, 0.132314, -0.817724); v(2.868354, 1.432328, -1.543799); v(1.026864, 0.016723, -0.977187); v(2.82588, 1.314952, -1.721296); v(2.812257, 1.394286, -1.6945); v(3.048028, 1.244588, -2.206323); v(3.065737, 1.477295, -1.839098); v(3.046581, 1.492795, -1.848688); v(3.304839, 1.662506, -1.927585); v(3.792437, 2.030867, -2.062776); v(2.42687, 1.233662, -1.348263); v(2.908418, 1.527284, -1.520878); v(0.658066, -0.340114, -1.109521); v(0.686735, -0.204469, -1.11703); v(0.743703, -0.044967, -1.040069); v(0.794447, 0.287647, -0.486318); v(0.776288, 0.301465, -0.166089); v(0.834904, 0.285811, -0.196112); v(0.884768, 0.187433, -0.346678); v(0.907398, 0.008875, -0.691382); v(0.816821, -0.207517, -1.032292); v(0.793462, -0.533033, -0.56637); v(0.834747, -0.329969, -0.316952); v(0.81646, -0.197999, -0.129542); v(0.842984, -0.329005, -0.219077); v(0.758178, -1.013909, -4.3E-5); v(0.761087, -1.023626, -0.099524); v(0.762352, -1.02504, -0.195889); v(0.72654, -0.94345, 0.299957); v(0.742181, -0.97361, 0.199957); v(0.627203, -1.231714, -0.156803); v(0.752363, -0.997154, 0.099956); v(0.611476, -1.189779, -0.474241); v(0.845922, -0.749092, -0.366009); v(0.864428, -0.731994, -0.291137); v(0.847048, -0.820222, -0.291776); v(0.832377, -0.869921, -0.280004); v(0.827366, -0.843187, -0.374052); v(0.866204, -0.77987, -0.199182); v(0.77972, -0.961004, -0.36195); v(0.848176, -0.789429, -0.329693); v(0.819765, -0.778087, -0.437652); v(0.845986, -0.586227, -0.380921); v(0.767333, -1.009144, -0.282296); v(0.131758, 1.245901, 3.399701); v(0.067278, 1.264064, 3.399953); v(0.337751, 1.046591, 3.390706); v(0.200089, 1.118112, 3.501159); v(1.10166, -0.41891, 0.757631); v(1.093581, -0.406707, 0.815288); v(1.106797, -0.439224, 0.72091); v(1.109101, -0.529901, 0.704094); v(1.109791, -0.458682, 0.698091); v(1.104665, -0.510016, 0.698213); v(1.080299, -0.407052, 0.909408); v(1.105425, -0.583368, 0.730074); v(1.019425, -0.971238, 1.341604); v(1.049698, -0.459685, 1.127908); v(1.046213, -0.470408, 1.152717); v(1.069439, -0.812643, 0.985674); v(0.083982, 1.014574, 3.633521); v(0.149042, 1.058493, 3.580708); v(0.24905, 1.174074, 3.398861); v(0.191631, 1.215999, 3.399173); v(0.318552, 1.087182, 3.407881); v(0.346839, 1.008114, 3.375202); v(0.356, 0.93906, 3.369481); v(0.348739, 0.906699, 3.375266); v(0.285561, 1.081024, 3.456715); v(0.255292, 1.004872, 3.531349); v(0.269302, 0.860544, 3.527016); v(1.072974, -0.798079, 0.960613); v(1.000772, -0.639456, 1.475272); v(0.997615, -0.65603, 1.497213); v(1.023476, -0.964504, 1.312748); v(0.093081, -0.657593, 1.083644); v(0.134396, -0.779515, 0.977683); v(0.070849, -0.471195, 1.254381); v(0.189312, -0.610377, 1.12218); v(0.248162, -0.727948, 1.00483); v(0.264744, 1.053374, 3.499142); v(0.265017, 0.932659, 3.53599); v(0.971483, -0.974935, 1.684199); v(2.859245, 1.317088, -1.818184); v(3.258586, 1.397423, -2.270713); v(1.131294, -0.46855, 1.052657); v(0, 1.354173, 3.214158); v(0, 1.270211, 3.399992); v(0, 0.967043, 3.66727); v(0, 0.760489, 3.747782); v(0, -0.793027, 0.972985); v(0, -0.690649, 1.057591); v(0, -0.520112, 1.210722); v(0, -0.442341, 1.282039); v(0, -0.076061, 1.614273); v(0, -1.222325, 0.459373); v(0, -1.374171, 0.153553); v(0, -1.489289, -0.34954); v(0, -1.462749, -0.150462); v(0, -1.449478, -0.63717); v(0, 0.063679, -0.822175); v(0, -0.638599, -1.236798); v(0, -0.163516, -0.982245); v(0, -0.985647, -1.53053); v(0, -1.317804, -0.99564); v(0, -1.395611, -1.498635); v(0, -1.399428, -1.823582); v(-3.258586, 1.397423, -2.270713); v(-2.859245, 1.317088, -1.818184); f2(57, 209, 210); f2(223, 205, 55); f2(211, 205, 223); f2(207, 205, 211); f2(224, 55, 59); f2(213, 224, 59); f2(212, 55, 224); f2(3, 4, 206); f2(223, 55, 212); f2(203, 458, 459); f2(59, 55, 53); f2(57, 208, 209); f2(58, 208, 57); f2(56, 58, 57); f2(58, 0, 208); f2(54, 55, 459); f2(136, 456, 457); f2(4, 136, 457); f2(55, 204, 203); f2(55, 203, 459); f2(53, 55, 54); f2(115, 9, 94); f2(114, 16, 97); f2(114, 17, 16); f2(94, 17, 114); f2(9, 17, 94); f2(52, 460, 465); f2(15, 52, 465); f2(138, 222, 52); f2(137, 52, 15); f2(137, 138, 52); f2(92, 127, 138); f2(91, 138, 137); f2(91, 92, 138); f2(221, 222, 138); f2(93, 51, 221); f2(51, 464, 221); f2(44, 61, 40); f2(23, 20, 40); f2(23, 40, 61); f2(30, 29, 42); f2(49, 11, 12); f2(50, 49, 12); f2(60, 50, 12); f2(49, 50, 47); f2(25, 48, 88); f2(26, 48, 25); f2(26, 47, 48); f2(49, 47, 26); f2(11, 49, 39); f2(32, 157, 7); f2(157, 156, 7); f2(7, 156, 8); f2(156, 155, 8); f2(155, 46, 10); f2(163, 46, 155); f2(163, 31, 46); f2(46, 33, 10); f2(31, 33, 46); f2(43, 95, 471); f2(45, 41, 19); f2(45, 40, 41); f2(44, 40, 45); f2(95, 43, 116); f2(43, 7, 116); f2(41, 32, 43); f2(43, 32, 7); f2(40, 32, 41); f2(11, 39, 20); f2(39, 49, 24); f2(16, 35, 97); f2(97, 35, 135); f2(37, 468, 467); f2(38, 37, 467); f2(37, 466, 468); f2(37, 15, 466); f2(474, 36, 469); f2(14, 135, 34); f2(135, 35, 34); f2(469, 38, 467); f2(34, 38, 469); f2(33, 18, 17); f2(10, 33, 17); f2(24, 141, 158); f2(159, 141, 26); f2(141, 24, 26); f2(163, 30, 31); f2(162, 30, 163); f2(162, 161, 30); f2(161, 29, 30); f2(30, 42, 28); f2(31, 30, 28); f2(31, 28, 33); f2(160, 159, 27); f2(159, 6, 27); f2(161, 160, 29); f2(160, 27, 29); f2(26, 25, 6); f2(159, 26, 6); f2(49, 26, 24); f2(22, 20, 23); f2(22, 11, 20); f2(13, 11, 22); f2(21, 158, 143); f2(24, 158, 21); f2(20, 39, 21); f2(20, 21, 32); f2(40, 20, 32); f2(17, 18, 16); f2(15, 465, 466); f2(36, 34, 469); f2(36, 14, 34); f2(12, 11, 13); f2(21, 143, 32); f2(32, 143, 157); f2(9, 10, 17); f2(9, 155, 10); f2(8, 9, 115); f2(7, 8, 115); f2(116, 7, 115); f2(8, 155, 9); f2(19, 41, 43); f2(27, 6, 89); f2(6, 25, 5); f2(25, 88, 5); f2(0, 1, 207); f2(1, 2, 207); f2(3, 206, 2); f2(39, 24, 21); f2(214, 82, 202); f2(202, 82, 78); f2(200, 201, 80); f2(70, 84, 68); f2(84, 64, 83); f2(125, 70, 68); f2(84, 87, 64); f2(63, 85, 86); f2(78, 125, 217); f2(87, 80, 215); f2(87, 216, 64); f2(87, 215, 216); f2(77, 67, 79); f2(198, 62, 67); f2(195, 62, 196); f2(77, 198, 67); f2(65, 74, 69); f2(74, 225, 69); f2(69, 225, 66); f2(69, 66, 76); f2(68, 69, 75); f2(126, 68, 75); f2(69, 76, 75); f2(65, 73, 74); f2(64, 72, 65); f2(64, 71, 72); f2(65, 72, 73); f2(64, 216, 71); f2(86, 84, 70); f2(82, 86, 70); f2(78, 82, 125); f2(214, 67, 82); f2(67, 86, 82); f2(82, 70, 125); f2(68, 83, 69); f2(83, 65, 69); f2(83, 64, 65); f2(84, 83, 68); f2(125, 68, 126); f2(62, 86, 67); f2(62, 63, 86); f2(79, 67, 214); f2(195, 63, 62); f2(97, 132, 112); f2(94, 114, 97); f2(95, 116, 96); f2(96, 115, 94); f2(116, 115, 96); f2(118, 120, 109); f2(118, 100, 120); f2(107, 118, 109); f2(119, 117, 99); f2(100, 119, 106); f2(100, 117, 119); f2(118, 117, 100); f2(117, 101, 99); f2(117, 123, 101); f2(108, 104, 124); f2(128, 107, 102); f2(102, 107, 109); f2(108, 129, 102); f2(129, 128, 102); f2(122, 108, 124); f2(101, 123, 122); f2(101, 103, 99); f2(101, 122, 103); f2(122, 119, 103); f2(122, 124, 119); f2(124, 104, 121); f2(120, 100, 105); f2(103, 119, 99); f2(104, 120, 105); f2(121, 104, 105); f2(100, 98, 105); f2(98, 121, 105); f2(98, 124, 121); f2(124, 98, 106); f2(98, 100, 106); f2(113, 118, 107); f2(117, 133, 123); f2(133, 108, 123); f2(123, 108, 122); f2(132, 133, 112); f2(112, 117, 118); f2(112, 133, 117); f2(113, 112, 118); f2(130, 131, 475); f2(130, 475, 476); f2(473, 110, 476); f2(110, 111, 476); f2(111, 97, 112); f2(94, 97, 111); f2(110, 94, 111); f2(96, 94, 110); f2(95, 96, 110); f2(473, 95, 110); f2(471, 95, 473); f2(36, 474, 131); f2(131, 474, 475); f2(113, 130, 476); f2(111, 112, 113); f2(111, 113, 476); f2(104, 108, 102); f2(104, 102, 109); f2(120, 104, 109); f2(119, 124, 106); f2(199, 125, 126); f2(217, 125, 199); f2(130, 128, 129); f2(129, 131, 130); f2(129, 134, 131); f2(134, 14, 131); f2(14, 36, 131); f2(130, 113, 128); f2(113, 107, 128); f2(108, 134, 129); f2(132, 134, 108); f2(133, 132, 108); f2(132, 14, 134); f2(132, 135, 14); f2(97, 135, 132); f2(470, 19, 472); f2(472, 43, 471); f2(472, 19, 43); f2(156, 139, 155); f2(140, 478, 146); f2(140, 139, 156); f2(146, 162, 145); f2(146, 144, 162); f2(141, 154, 158); f2(154, 153, 158); f2(153, 147, 157); f2(147, 140, 157); f2(152, 154, 144); f2(146, 478, 148); f2(478, 140, 148); f2(140, 147, 148); f2(151, 149, 477); f2(149, 150, 477); f2(147, 150, 148); f2(149, 146, 148); f2(150, 149, 148); f2(149, 144, 146); f2(140, 146, 145); f2(145, 162, 163); f2(157, 140, 156); f2(139, 163, 155); f2(142, 145, 163); f2(139, 142, 163); f2(162, 144, 161); f2(143, 153, 157); f2(158, 153, 143); f2(154, 160, 161); f2(144, 154, 161); f2(154, 159, 160); f2(139, 140, 142); f2(142, 140, 145); f2(159, 154, 141); f2(150, 151, 477); f2(152, 151, 150); f2(152, 144, 149); f2(151, 152, 149); f2(153, 152, 147); f2(154, 152, 153); f2(152, 150, 147); f2(29, 166, 42); f2(42, 165, 28); f2(42, 166, 165); f2(28, 165, 164); f2(28, 164, 33); f2(33, 164, 18); f2(27, 89, 166); f2(29, 27, 166); f2(165, 166, 167); f2(170, 169, 173); f2(168, 174, 173); f2(172, 171, 137); f2(180, 182, 175); f2(176, 177, 183); f2(165, 167, 185); f2(164, 165, 185); f2(18, 164, 184); f2(90, 91, 137); f2(186, 170, 173); f2(169, 168, 173); f2(173, 37, 38); f2(175, 173, 38); f2(173, 15, 37); f2(173, 137, 15); f2(174, 137, 173); f2(35, 175, 34); f2(34, 175, 38); f2(174, 172, 137); f2(171, 90, 137); f2(176, 183, 180); f2(178, 181, 179); f2(180, 178, 179); f2(164, 185, 184); f2(175, 186, 173); f2(182, 186, 175); f2(16, 180, 35); f2(35, 180, 175); f2(184, 180, 16); f2(18, 184, 16); f2(184, 176, 180); f2(180, 179, 182); f2(192, 197, 63); f2(63, 191, 192); f2(193, 191, 63); f2(193, 63, 195); f2(194, 196, 62); f2(198, 194, 62); f2(204, 55, 190); f2(55, 205, 190); f2(207, 2, 205); f2(2, 206, 205); f2(188, 4, 457); f2(187, 4, 188); f2(206, 4, 187); f2(0, 207, 189); f2(208, 0, 189); f2(6, 5, 89); f2(461, 218, 462); f2(52, 222, 219); f2(219, 460, 52); f2(221, 464, 220); f2(220, 464, 463); f2(85, 226, 87); f2(85, 87, 84); f2(86, 85, 84); f2(63, 226, 85); f2(63, 197, 226); f2(226, 197, 81); f2(226, 80, 87); f2(226, 81, 200); f2(226, 200, 201); f2(80, 226, 201); f2(127, 93, 221); f2(138, 127, 221); f2(436, 284, 437); f2(432, 450, 282); f2(432, 438, 450); f2(432, 434, 438); f2(282, 451, 286); f2(451, 440, 286); f2(282, 439, 451); f2(231, 230, 433); f2(282, 450, 439); f2(458, 430, 459); f2(282, 286, 280); f2(435, 284, 436); f2(435, 285, 284); f2(285, 283, 284); f2(227, 285, 435); f2(282, 281, 459); f2(456, 363, 457); f2(363, 231, 457); f2(431, 282, 430); f2(430, 282, 459); f2(282, 280, 281); f2(236, 342, 321); f2(243, 341, 324); f2(244, 341, 243); f2(244, 321, 341); f2(244, 236, 321); f2(460, 279, 465); f2(279, 242, 465); f2(449, 365, 279); f2(279, 364, 242); f2(365, 364, 279); f2(354, 319, 365); f2(365, 318, 364); f2(319, 318, 365); f2(449, 448, 365); f2(278, 320, 448); f2(464, 278, 448); f2(288, 271, 267); f2(247, 250, 267); f2(267, 250, 288); f2(0x0100, 0x0101, 269); f2(238, 276, 239); f2(276, 277, 239); f2(277, 287, 239); f2(277, 276, 274); f2(275, 252, 315); f2(275, 253, 252); f2(274, 253, 275); f2(274, 276, 253); f2(276, 238, 266); f2(384, 259, 234); f2(383, 384, 234); f2(383, 234, 235); f2(382, 383, 235); f2(273, 382, 237); f2(273, 390, 382); f2(258, 390, 273); f2(260, 273, 237); f2(260, 258, 273); f2(322, 270, 471); f2(268, 272, 246); f2(267, 272, 268); f2(267, 271, 272); f2(270, 322, 343); f2(234, 270, 343); f2(259, 268, 270); f2(259, 270, 234); f2(259, 267, 268); f2(266, 238, 247); f2(276, 266, 251); f2(262, 243, 324); f2(262, 324, 362); f2(468, 264, 467); f2(264, 265, 467); f2(466, 264, 468); f2(242, 264, 466); f2(263, 474, 469); f2(362, 241, 261); f2(262, 362, 261); f2(265, 469, 467); f2(265, 261, 469); f2(245, 260, 244); f2(260, 237, 244); f2(368, 251, 385); f2(368, 386, 253); f2(251, 368, 253); f2(0x0101, 390, 258); f2(0x0101, 389, 390); f2(388, 389, 0x0101); f2(0x0100, 388, 0x0101); f2(269, 0x0101, 0xFF); f2(0x0101, 258, 0xFF); f2(0xFF, 258, 260); f2(386, 387, 254); f2(233, 386, 254); f2(387, 388, 0x0100); f2(254, 387, 0x0100); f2(252, 253, 233); f2(253, 386, 233); f2(253, 276, 251); f2(247, 249, 250); f2(238, 249, 247); f2(238, 240, 249); f2(385, 248, 370); f2(385, 251, 248); f2(266, 247, 248); f2(248, 247, 259); f2(247, 267, 259); f2(245, 244, 243); f2(465, 242, 466); f2(261, 263, 469); f2(241, 263, 261); f2(238, 239, 240); f2(370, 248, 259); f2(370, 259, 384); f2(237, 236, 244); f2(382, 236, 237); f2(236, 235, 342); f2(235, 234, 342); f2(234, 343, 342); f2(382, 235, 236); f2(268, 246, 270); f2(233, 254, 316); f2(252, 233, 232); f2(315, 252, 232); f2(228, 227, 434); f2(229, 228, 434); f2(433, 230, 229); f2(251, 266, 248); f2(309, 441, 429); f2(309, 429, 305); f2(428, 427, 307); f2(311, 297, 295); f2(291, 311, 310); f2(297, 352, 295); f2(314, 311, 291); f2(312, 290, 313); f2(352, 305, 444); f2(307, 314, 442); f2(443, 314, 291); f2(442, 314, 443); f2(294, 304, 306); f2(289, 425, 294); f2(289, 422, 423); f2(425, 304, 294); f2(301, 292, 296); f2(452, 301, 296); f2(452, 296, 293); f2(293, 296, 303); f2(296, 295, 302); f2(295, 353, 302); f2(303, 296, 302); f2(300, 292, 301); f2(299, 291, 292); f2(298, 291, 299); f2(299, 292, 300); f2(443, 291, 298); f2(311, 313, 297); f2(313, 309, 297); f2(309, 305, 352); f2(294, 441, 309); f2(313, 294, 309); f2(297, 309, 352); f2(310, 295, 296); f2(292, 310, 296); f2(291, 310, 292); f2(310, 311, 295); f2(295, 352, 353); f2(313, 289, 294); f2(290, 289, 313); f2(294, 306, 441); f2(290, 422, 289); f2(359, 324, 339); f2(341, 321, 324); f2(343, 322, 323); f2(342, 323, 321); f2(342, 343, 323); f2(347, 345, 336); f2(327, 345, 347); f2(345, 334, 336); f2(344, 346, 326); f2(346, 327, 333); f2(344, 327, 346); f2(344, 345, 327); f2(328, 344, 326); f2(350, 344, 328); f2(331, 335, 351); f2(334, 355, 329); f2(334, 329, 336); f2(356, 335, 329); f2(355, 356, 329); f2(335, 349, 351); f2(350, 328, 349); f2(330, 328, 326); f2(349, 328, 330); f2(346, 349, 330); f2(351, 349, 346); f2(331, 351, 348); f2(327, 347, 332); f2(346, 330, 326); f2(347, 331, 332); f2(331, 348, 332); f2(325, 327, 332); f2(348, 325, 332); f2(351, 325, 348); f2(325, 351, 333); f2(327, 325, 333); f2(345, 340, 334); f2(360, 344, 350); f2(335, 360, 350); f2(335, 350, 349); f2(360, 359, 339); f2(344, 339, 345); f2(360, 339, 344); f2(339, 340, 345); f2(358, 357, 475); f2(475, 357, 476); f2(337, 473, 476); f2(338, 337, 476); f2(324, 338, 339); f2(324, 321, 338); f2(321, 337, 338); f2(321, 323, 337); f2(323, 322, 337); f2(322, 473, 337); f2(322, 471, 473); f2(474, 263, 358); f2(474, 358, 475); f2(357, 340, 476); f2(339, 338, 340); f2(340, 338, 476); f2(335, 331, 329); f2(329, 331, 336); f2(331, 347, 336); f2(351, 346, 333); f2(352, 426, 353); f2(352, 444, 426); f2(355, 357, 356); f2(358, 356, 357); f2(361, 356, 358); f2(241, 361, 358); f2(263, 241, 358); f2(340, 357, 355); f2(334, 340, 355); f2(361, 335, 356); f2(361, 359, 335); f2(359, 360, 335); f2(241, 359, 361); f2(362, 359, 241); f2(362, 324, 359); f2(246, 470, 472); f2(270, 472, 471); f2(246, 472, 270); f2(366, 383, 382); f2(453, 367, 373); f2(366, 367, 383); f2(389, 373, 372); f2(371, 373, 389); f2(381, 368, 385); f2(380, 381, 385); f2(374, 380, 384); f2(367, 374, 384); f2(381, 379, 371); f2(453, 373, 375); f2(367, 453, 375); f2(374, 367, 375); f2(376, 378, 454); f2(377, 376, 454); f2(377, 374, 375); f2(373, 376, 375); f2(376, 377, 375); f2(371, 376, 373); f2(373, 367, 372); f2(389, 372, 390); f2(367, 384, 383); f2(390, 366, 382); f2(372, 369, 390); f2(369, 366, 390); f2(371, 389, 388); f2(380, 370, 384); f2(380, 385, 370); f2(387, 381, 388); f2(381, 371, 388); f2(386, 381, 387); f2(367, 366, 369); f2(367, 369, 372); f2(381, 386, 368); f2(378, 377, 454); f2(378, 379, 377); f2(371, 379, 376); f2(379, 378, 376); f2(379, 380, 374); f2(379, 381, 380); f2(377, 379, 374); f2(393, 0x0100, 269); f2(392, 269, 0xFF); f2(393, 269, 392); f2(392, 0xFF, 391); f2(391, 0xFF, 260); f2(391, 260, 245); f2(316, 254, 393); f2(254, 0x0100, 393); f2(393, 392, 394); f2(396, 397, 400); f2(401, 395, 400); f2(398, 399, 364); f2(409, 407, 402); f2(404, 403, 410); f2(394, 392, 412); f2(392, 391, 412); f2(391, 245, 411); f2(318, 317, 364); f2(397, 413, 400); f2(395, 396, 400); f2(264, 400, 265); f2(400, 402, 265); f2(242, 400, 264); f2(364, 400, 242); f2(364, 401, 400); f2(402, 262, 261); f2(402, 261, 265); f2(399, 401, 364); f2(317, 398, 364); f2(410, 403, 407); f2(408, 405, 406); f2(405, 407, 406); f2(412, 391, 411); f2(413, 402, 400); f2(413, 409, 402); f2(407, 243, 262); f2(407, 262, 402); f2(407, 411, 243); f2(411, 245, 243); f2(403, 411, 407); f2(406, 407, 409); f2(424, 419, 290); f2(418, 290, 419); f2(418, 420, 290); f2(290, 420, 422); f2(423, 421, 289); f2(421, 425, 289); f2(282, 431, 417); f2(432, 282, 417); f2(229, 434, 432); f2(433, 229, 432); f2(231, 415, 457); f2(231, 414, 415); f2(231, 433, 414); f2(434, 227, 416); f2(227, 435, 416); f2(232, 233, 316); f2(445, 461, 462); f2(449, 279, 446); f2(460, 446, 279); f2(464, 448, 447); f2(464, 447, 463); f2(455, 312, 314); f2(314, 312, 311); f2(312, 313, 311); f2(455, 290, 312); f2(424, 290, 455); f2(424, 455, 308); f2(307, 455, 314); f2(308, 455, 427); f2(427, 455, 428); f2(455, 307, 428); f2(320, 354, 448); f2(354, 365, 448); this.x = 0; this.y = 0; this.z = 0; this.rotationX = 0; this.rotationY = 0; this.rotationZ = 0; this.scaleX = 1; this.scaleY = 1; this.scaleZ = 1; this.geometry.ready = true; } public function f(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number):void{ var _local13:Triangle3D; _local13 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, [new NumberUV(_arg4, _arg5), new NumberUV(_arg6, _arg7), new NumberUV(_arg8, _arg9)]); _local13.faceNormal = new Number3D(_arg10, _arg11, _arg12); fa.push(_local13); } public function f2(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Triangle3D; _local4 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, []); fa.push(_local4); } public function v(_arg1:Number, _arg2:Number, _arg3:Number):void{ ve.push(new Vertex3D(_arg1, _arg2, _arg3)); } } }//package
Section 111
//tongue (tongue) package { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.core.geom.*; public class tongue extends TriangleMesh3D { private var ve:Array; private var fa:Array; public function tongue(_arg1:MaterialObject3D, _arg2:Object=null){ super(_arg1, new Array(), new Array(), null, _arg2); ve = this.geometry.vertices; fa = this.geometry.faces; v(-0.117653, 0.646893, 3.411933); v(0.018704, 0.631805, 3.442718); v(-0.018704, 0.631805, 3.442718); v(-0.064796, 0.635654, 3.431525); v(0.087646, 0.642488, 3.434865); v(0.117653, 0.646893, 3.411933); v(0.037456, 0.637237, 3.456584); v(0.064796, 0.635654, 3.431525); v(0, 0.636276, 3.461871); v(-0.087646, 0.642488, 3.434865); v(0, 0.657698, 3.403831); v(-0.037456, 0.637237, 3.456584); v(0, 0.632088, 3.441719); f2(6, 10, 8); f2(4, 10, 6); f2(5, 10, 4); f2(10, 11, 8); f2(10, 9, 11); f2(10, 0, 9); f2(10, 5, 7); f2(12, 10, 1); f2(0, 10, 3); f2(10, 12, 2); f2(10, 7, 1); f2(3, 10, 2); this.x = 0; this.y = 0; this.z = 0; this.rotationX = 0; this.rotationY = 0; this.rotationZ = 0; this.scaleX = 1; this.scaleY = 1; this.scaleZ = 1; this.geometry.ready = true; } public function f(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number):void{ var _local13:Triangle3D; _local13 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, [new NumberUV(_arg4, _arg5), new NumberUV(_arg6, _arg7), new NumberUV(_arg8, _arg9)]); _local13.faceNormal = new Number3D(_arg10, _arg11, _arg12); fa.push(_local13); } public function f2(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Triangle3D; _local4 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, []); fa.push(_local4); } public function v(_arg1:Number, _arg2:Number, _arg3:Number):void{ ve.push(new Vertex3D(_arg1, _arg2, _arg3)); } } }//package
Section 112
//white (white) package { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.core.geom.*; public class white extends TriangleMesh3D { private var ve:Array; private var fa:Array; public function white(_arg1:MaterialObject3D, _arg2:Object=null){ super(_arg1, new Array(), new Array(), null, _arg2); ve = this.geometry.vertices; fa = this.geometry.faces; v(0.046814, 1.125335, 2.173375); v(0.064438, 1.337659, 2.773474); v(0.224928, -0.471851, 1.208598); v(0.395798, 1.183414, 2.932827); v(0.367088, 1.192274, 3.103895); v(0.403305, 1.023553, 3.183291); v(0.099014, 0.742271, 3.658124); v(0.197654, 0.743672, 3.549311); v(0.858665, -0.217897, 0.094249); v(0.845636, -0.824333, 0.129757); v(0.803795, -0.872914, 0.223737); v(0.8993, -0.477064, -0.072426); v(0.624347, 0.163445, 0.226728); v(0.607104, 0.190083, 0.322507); v(0.49711, 0.260267, 0.224072); v(0.5841, 0.20402, 0.989771); v(0.577105, 0.13855, 1.128675); v(0.46661, 0.2332, 1.381578); v(0.467986, 0.072435, 1.357909); v(0.448167, -0.103217, 1.304978); v(0.823553, -0.116989, 0.175022); v(0.715157, 0.058868, 0.253456); v(0.436329, 0.425748, 1.175275); v(0.65158, 0.136919, 0.768001); v(0.612416, 0.204807, 0.672867); v(0.387998, 0.482579, 1.187102); v(0.367541, 0.534989, 1.462499); v(0.25854, 0.740024, 3.407919); v(0.094647, 0.685388, 3.572217); v(0.197895, 0.693764, 3.420946); v(0.087646, 0.642488, 3.434865); v(0.117653, 0.646893, 3.411933); v(0.037456, 0.637237, 3.456584); v(0.263935, 0.701791, 2.960119); v(0.376292, 0.84224, 3.129898); v(0.314758, 0.760643, 3.214571); v(0.42147, 0.308552, 0.247933); v(0.255435, 0.477107, 0.796049); v(0.349384, 0.451323, 0.876977); v(0.808684, -0.956524, -0.148483); v(0.786607, -0.975409, -0.020092); v(0.900215, -0.62039, -0.119584); v(0.319325, -0.158057, 1.397809); v(0.368574, 0.006037, 1.464547); v(0.454223, 0.37488, 0.82802); v(0.129554, 0.50894, 0.787908); v(0.22334, 0.604653, 1.198423); v(0.112519, 0.624686, 1.147077); v(0.291467, 0.609846, 1.352273); v(0.214259, 0.699015, 1.434263); v(0.431216, 0.418358, 1.337594); v(0.324566, 0.609044, 1.492493); v(0.46365, 0.321173, 1.345166); v(0.402204, 0.362622, 1.5483); v(0.132012, 1.109818, 2.192115); v(0.255634, 0.84245, 1.852545); v(0.219402, 0.999844, 2.077962); v(0.275448, 0.726242, 1.6553); v(0.321093, 0.363417, 1.858902); v(0.349117, 0.502127, 1.897474); v(0.358706, 0.525125, 1.727642); v(0.323765, 0.485822, 2.078155); v(0.230486, 0.243228, 1.891316); v(0.250463, 0.365253, 2.058506); v(0.093877, 0.150828, 1.884731); v(0.175305, 0.269717, 2.002108); v(0.161422, 0.103987, 1.78031); v(0.360483, 0.673648, 2.079292); v(0.360712, 0.637299, 2.210104); v(0.318275, 0.946513, 2.170952); v(0.339465, 0.833935, 2.086359); v(0.343589, 1.119864, 2.482922); v(0.399522, 0.948168, 2.453653); v(0.331093, 0.635176, 2.403936); v(0.254515, 0.506219, 2.321944); v(0.135284, 0.40517, 2.263999); v(0.406977, 1.16211, 2.781049); v(0.293972, 1.256772, 3.174158); v(0.169338, 1.332908, 3.175714); v(0.252398, 1.310442, 3.112731); v(0.264149, 1.248147, 2.646102); v(0.271521, 1.180841, 2.511267); v(0.259671, 1.293641, 2.775862); v(0.066659, 1.362365, 2.949091); v(0.239864, 1.327004, 2.979891); v(0.430442, 1.023416, 2.88273); v(0.422475, 0.901401, 2.825579); v(0.346292, 0.774369, 2.931737); v(0.103279, 0.603325, 2.756957); v(0.156574, 0.648777, 2.977929); v(0.212038, 0.635439, 2.735701); v(0.319619, 0.714382, 2.752504); v(0.130533, 1.280781, 2.61256); v(0.04656, 1.295017, 2.610265); v(0.427688, 0.934754, 2.750678); v(0.375948, 0.737396, 2.474329); v(0.292425, 0.632798, 2.542927); v(0.136784, 0.526994, 2.5073); v(0.220587, 0.567485, 2.513998); v(0.353952, 0.848555, 3.308008); v(0.08207, 1.365353, 3.148934); v(0.401403, 0.910259, 3.154748); v(0.340643, 1.213949, 3.155907); v(0.35198, 0.75483, 2.050314); v(0.34373, 0.616015, 1.770523); v(0.158282, 0.894048, 1.783548); v(0.106454, 0.731806, 1.404108); v(0.319971, 0.692756, 1.776338); v(0.370507, 0.411299, 1.670907); v(0.376567, 0.501954, 1.558377); v(0.384132, 0.22224, 1.560677); v(0.346663, 0.244004, 1.660755); v(0.284494, 0.221037, 1.767722); v(0.301195, 0.066759, 1.596295); v(0.229234, 0.071533, 1.680431); v(0.286865, 0.344936, 0.142838); v(0.106538, 0.37759, 0.120383); v(0.862641, -0.817914, -0.09469); v(0.758057, -0.819025, 0.418356); v(0.064162, 0.682142, 3.598635); v(0.125735, 0.643147, 3.341845); v(0.235866, 0.693329, 3.224957); v(1.03166, -0.894512, 1.659176); v(1.021325, -0.922318, 1.653166); v(1.000531, -0.931855, 1.649833); v(0.974136, -0.922715, 1.649453); v(0.965518, -0.882118, 1.656228); v(0.997102, -0.861225, 1.66259); v(1.019891, -0.871562, 1.662427); v(0.990056, -0.901237, 1.753449); v(1.026405, -0.970649, 1.672224); v(0.995187, -0.994839, 1.643872); v(1.012846, -0.993221, 1.65364); v(0.953958, -0.998723, 1.74833); v(0.970553, -0.974156, 1.641832); v(0.965687, -0.930631, 1.661748); v(1.013434, -0.931115, 1.685945); v(0.986602, -0.915303, 1.680266); v(1.01604, -0.991944, 1.637101); v(1.019998, -1.011672, 1.611288); v(0.990398, -1.012139, 1.585343); v(0.962835, -0.988838, 1.596402); v(0.973567, -0.965843, 1.639393); v(0.958575, -0.970914, 1.619321); v(0.955055, -1.066177, 1.657637); v(0.996002, -0.973602, 1.646804); v(0.834769, -0.70743, 0.362318); v(0.425364, 1.03708, 2.731181); v(0.381888, 1.130222, 2.55746); v(0.415117, -0.469679, 1.111906); v(0.761808, -0.648824, 0.60286); v(0.498345, -0.705696, 0.872227); v(0.595177, -0.712009, 0.767903); v(0.23938, -0.222413, 1.404772); v(0.132144, -0.205078, 1.469186); v(0.13964, -0.051954, 1.61762); v(0.209067, 0.829329, 3.607319); v(0.124131, 0.796747, 3.665851); v(0.163451, 1.060346, 3.572802); v(0.131968, 1.246115, 3.399005); v(0.192929, 1.102495, 3.522398); v(0.400967, 0.991577, 3.204843); v(0.366058, 1.143878, 3.197206); v(0.282877, 1.251968, 3.204626); v(0.154402, 1.326713, 3.212447); v(0.250055, 1.176705, 3.395227); v(0.365453, 1.220909, 3.093743); v(0.377063, 1.221865, 3.047918); v(0.38714, 1.220872, 3.002888); v(0.396269, 1.217903, 2.95501); v(0.305538, 1.321543, 3.010584); v(0.335415, 1.335958, 2.968258); v(0.360522, 1.362602, 2.963601); v(0.300511, 1.318725, 3.05911); v(0.298624, 1.308295, 3.100423); v(0.329678, 1.329604, 3.0785); v(0.356116, 1.357988, 3.066541); v(0.302801, 1.291956, 3.129685); v(0.339721, 1.321032, 3.114073); v(0.441096, 1.383994, 2.652208); v(0.390952, 1.306616, 2.662383); v(0.381962, 1.329529, 2.722106); v(0.360392, 1.267902, 2.656039); v(0.349853, 1.294428, 2.724561); v(0.322413, 1.233144, 2.630028); v(0.316676, 1.265272, 2.697515); v(0.312865, 1.287365, 2.760664); v(0.308914, 1.309288, 2.854871); v(0.340685, 1.322867, 2.847184); v(0.368555, 1.351146, 2.841355); v(0.306223, 1.320606, 2.952362); v(0.412889, 1.199909, 2.783136); v(0.433374, 1.253303, 2.794403); v(0.410783, 1.206827, 2.843627); v(0.404629, 1.213042, 2.901577); v(0.402252, 1.259113, 2.970082); v(0.377036, 1.250571, 2.627488); v(0.351597, 1.209275, 2.601922); v(0.420878, 1.289904, 2.624582); v(0.392048, 1.235976, 2.616371); v(0.405256, 1.225419, 2.626561); v(0.387163, 1.172451, 2.604478); v(0.410255, 1.304063, 2.63536); v(0.437559, 1.292336, 2.634233); v(0.510124, 1.47473, 2.611037); v(0.545887, 1.486967, 2.606039); v(0.458835, 1.438736, 2.678889); v(0.446461, 1.449279, 2.746445); v(0.438632, 1.469435, 2.860467); v(0.544183, 1.638481, 2.854942); v(0.422828, 1.273436, 2.906261); v(0.428943, 1.256203, 2.665313); v(0.436423, 1.258223, 2.713536); v(0.547409, 1.47102, 2.629731); v(0.626605, 1.609864, 2.6086); v(0.548664, 1.462266, 2.720721); v(0.545464, 1.486364, 2.792331); v(0.496663, 1.466701, 2.925302); v(0.468492, 1.477743, 3.004049); v(0.573221, 1.643879, 2.8753); v(0.574308, 1.660224, 2.872992); v(0.493987, 1.555094, 2.967864); v(0.554016, 1.648122, 2.780005); v(0.562081, 1.653062, 2.88049); v(0.552994, 1.618993, 2.682611); v(0.58858, 1.637736, 2.597649); v(0.614174, 1.612844, 2.566208); v(0.608612, 1.643189, 2.566555); v(0.607197, 1.620913, 2.563838); v(0.645747, 1.656493, 2.559299); v(0.585749, 1.638573, 2.84503); v(0.619493, 1.650721, 2.755589); v(0.326178, 1.273781, 3.134716); v(0.395244, 1.387173, 3.08092); v(0.345795, 1.252542, 3.122577); v(0.365918, 1.310779, 3.098969); v(0.39062, 1.326086, 3.061003); v(0.634132, 1.636628, 2.672963); v(0.410076, 1.313444, 3.001596); v(0.418857, 1.439276, 3.050264); v(0.474814, 1.510865, 3.001605); v(0.375021, 1.278866, 3.07426); v(0.400752, 1.183905, 2.661931); v(0.409502, 1.192608, 2.722017); v(0.569372, 1.670452, 2.853094); v(0.608065, 1.714405, 2.810516); v(0.631838, 1.740209, 2.666247); v(0.634836, 1.733023, 2.634268); v(0.656473, 1.711328, 2.530835); v(0.656048, 1.697749, 2.525044); v(0.662411, 1.695257, 2.523884); v(0.668321, 1.695136, 2.532875); v(0.681565, 1.75181, 2.654747); v(0.623836, 1.712518, 2.792975); v(0.613662, 1.713472, 2.809361); v(0.664677, 1.703275, 2.646612); v(0.566686, 1.548679, 2.584461); v(0.764321, 1.889888, 2.499512); v(0.727372, 1.79081, 2.445571); v(0.692342, 1.73995, 2.49024); v(0.725264, 1.792979, 2.468035); v(0.66411, 1.78551, 2.718494); v(0.70152, 1.785679, 2.560794); v(0.710403, 1.816629, 2.55729); v(0.720407, 1.820391, 2.552178); v(0.698701, 1.772667, 2.598447); v(0.722143, 1.815766, 2.574216); v(0.745538, 1.857976, 2.528326); v(0.684721, 1.736658, 2.495499); v(0.699081, 1.767645, 2.566216); v(0.739024, 1.85922, 2.526545); v(0.760222, 1.890482, 2.502056); v(0.747423, 1.882305, 2.53676); v(0.765415, 1.885909, 2.510188); v(0.75382, 1.871732, 2.549993); v(0.725516, 1.858459, 2.613132); v(0.685018, 1.718751, 2.533774); v(0.694325, 1.737271, 2.498112); v(0.732539, 1.869113, 2.587071); v(0.67063, 1.787624, 2.712745); v(0.686363, 1.780539, 2.574228); v(0.695572, 1.809339, 2.575191); v(0.615591, 1.728183, 2.720552); v(0.682134, 1.767641, 2.675971); v(0.681566, 1.790424, 2.69284); v(0.651016, 1.717832, 2.552359); v(0.667774, 1.745151, 2.555365); v(0.68676, 1.770257, 2.558101); v(0.708868, 1.784899, 2.526522); v(0.677249, 1.707258, 2.575122); v(0.732488, 1.794922, 2.441735); v(0.724924, 1.789506, 2.472788); v(0.629383, 1.74754, 2.754111); v(0.684763, 1.732715, 2.592608); v(0.66024, 1.75677, 2.601193); v(0.785055, 1.922307, 2.479112); v(0.505147, 1.438557, 2.609363); v(0.468342, 1.373502, 2.617767); v(0.385092, 1.167695, 3.038046); v(0.397505, 1.150912, 2.661667); v(0.372085, 1.189212, 2.59179); v(0.874903, -0.275115, 0.254293); v(0.828177, -0.129414, 0.362516); v(0.813388, -0.094175, 0.405178); v(0.781944, -0.031838, 0.519221); v(0.760164, -0.001098, 0.572902); v(0.767087, 0.000946, 0.624009); v(0.578308, 0.10992, 1.153846); v(0.620146, 0.127567, 1.038538); v(0.54574, 0.060718, 1.234042); v(0.556302, 0.081673, 1.213191); v(0.567426, 0.097332, 1.185752); v(0.52166, -0.037189, 1.251004); v(0.528393, -0.000357, 1.251983); v(0.536404, 0.032944, 1.246745); v(0.514378, -0.15575, 1.214467); v(0.513539, -0.115487, 1.232781); v(0.516372, -0.075808, 1.244728); v(0.56112, -0.284849, 1.106755); v(0.536281, -0.238146, 1.154526); v(0.521187, -0.19446, 1.190468); v(0.688985, -0.462989, 0.864661); v(0.727078, -0.521865, 0.753922); v(0.776287, -0.58566, 0.616147); v(0.548925, -0.129965, 1.200903); v(0.559011, 0.012803, 1.221728); v(0.624537, -0.406821, 0.965245); v(0.848643, -0.616952, 0.404888); v(0.877485, -0.607947, 0.326994); v(0.863802, -0.614645, 0.363794); v(0.90917, -0.404643, 0.212227); v(0.901264, -0.3647, 0.221434); v(0.789518, -0.597155, 0.579394); v(0.830283, -0.528446, 0.663717); v(0.797408, -0.585481, 0.580601); v(0.877372, -0.271889, 0.280097); v(0.85729, -0.210643, 0.325511); v(0.834969, -0.143245, 0.386697); v(0.812439, -0.083656, 0.468837); v(0.796441, -0.036257, 0.575444); v(0.920167, -0.465918, 0.568286); v(0.935667, -0.426306, 0.561886); v(0.889876, -0.362455, 0.753316); v(0.884115, -0.285814, 0.80305); v(0.741684, -0.421971, 0.889015); v(0.810862, -0.468548, 0.775261); v(0.809493, -0.504127, 0.730481); v(0.895651, -0.499389, 0.589027); v(0.916584, -0.305348, 0.312232); v(0.905368, -0.254961, 0.351988); v(0.890293, -0.211623, 0.385672); v(0.855385, -0.182606, 0.370221); v(0.739383, 0.057288, 0.926604); v(0.70041, 0.085586, 0.952974); v(0.67854, 0.103214, 0.878759); v(0.656985, 0.066336, 1.109773); v(0.622597, 0.072046, 1.145273); v(0.594629, 0.105073, 1.128); v(0.679455, 0.08917, 1.020819); v(0.628903, 0.116788, 1.048222); v(0.622447, -0.302993, 1.061953); v(0.625155, -0.24026, 1.118039); v(0.590613, -0.261072, 1.108182); v(0.566628, -0.209653, 1.152549); v(0.872478, -0.169384, 0.424382); v(0.831571, -0.110659, 0.462664); v(0.775938, 0.015086, 0.710559); v(0.74072, 0.05805, 0.812838); v(0.805638, -0.534702, 0.669257); v(0.759273, -0.519433, 0.729842); v(0.774933, -0.566662, 0.638675); v(0.541973, -0.061958, 1.228057); v(0.559969, -0.067591, 1.218615); v(0.553119, -0.016942, 1.226671); v(0.577196, 0.047835, 1.199898); v(0.565283, 0.054097, 1.207882); v(0.581113, 0.080685, 1.171988); v(0.631754, -0.343578, 1.0179); v(0.859025, -0.608348, 0.398478); v(0.912797, -0.559256, 0.358695); v(0.891796, -0.579389, 0.399517); v(0.89198, -0.588353, 0.323925); v(0.924939, -0.538472, 0.310229); v(0.941006, -0.492958, 0.308883); v(0.941364, -0.404647, 0.291867); v(0.917041, -0.510078, 0.216801); v(0.924819, -0.368031, 0.270685); v(0.903974, -0.346389, 0.247498); v(0.636575, 0.126536, 0.985026); v(0.695576, 0.087371, 0.817364); v(0.864645, -0.565591, 0.524263); v(0.835367, -0.612224, 0.449225); v(0.814821, -0.590077, 0.548294); v(0.625683, -0.131449, 1.178993); v(0.588875, -0.147725, 1.184611); v(0.631096, -0.065286, 1.191244); v(0.589065, -0.078826, 1.208847); v(0.636608, -0.02129, 1.18511); v(0.593187, -0.015896, 1.211291); v(0.617642, 0.0291, 1.183381); v(0.667701, -0.269535, 1.080558); v(0.672763, -0.19711, 1.124286); v(0.633362, -0.191483, 1.147469); v(0.672556, -0.124003, 1.152615); v(0.895677, -0.540194, 0.507163); v(0.918142, -0.53254, 0.443615); v(0.681457, -0.06295, 1.151832); v(0.663781, -0.00736, 1.15795); v(0.937326, -0.511305, 0.368613); v(0.715931, -0.002637, 1.090599); v(0.667877, 0.02895, 1.134913); v(0.953739, -0.441309, 0.37446); v(0.943917, -0.451847, 0.295043); v(0.953481, -0.390838, 0.363088); v(0.712497, 0.041624, 1.052242); v(0.667686, 0.076643, 1.078186); v(0.707164, 0.066493, 1.012269); v(0.936106, -0.342333, 0.324053); v(0.673135, -0.34846, 1.00576); v(0.716944, -0.329544, 1.001364); v(0.721122, -0.277992, 1.040109); v(0.752869, -0.226796, 1.040306); v(0.711324, -0.189211, 1.098285); v(0.768974, -0.168286, 1.041186); v(0.919292, -0.501738, 0.511994); v(0.723879, -0.127606, 1.104005); v(0.769389, -0.10145, 1.044259); v(0.721963, -0.060641, 1.106337); v(0.943142, -0.47244, 0.456896); v(0.951945, -0.424341, 0.463931); v(0.763238, -0.040976, 1.032927); v(0.956848, -0.392003, 0.417303); v(0.955002, -0.35667, 0.484959); v(0.951837, -0.315487, 0.468641); v(0.757718, 0.006494, 1.000006); v(0.758826, 0.027919, 0.954175); v(0.942664, -0.301311, 0.406053); v(0.917588, -0.238823, 0.411164); v(0.920154, -0.20898, 0.495797); v(0.775275, 0.026974, 0.878821); v(0.746007, 0.056767, 0.857242); v(0.89569, -0.163709, 0.501136); v(0.708648, -0.37932, 0.957518); v(0.7574, -0.312618, 0.982742); v(0.791338, -0.268359, 0.973297); v(0.810742, -0.213323, 0.968521); v(0.813703, -0.147166, 0.971408); v(0.848965, -0.13242, 0.885508); v(0.807993, -0.084623, 0.963956); v(0.947372, -0.369436, 0.552765); v(0.946883, -0.314622, 0.560582); v(0.929003, -0.239704, 0.633821); v(0.840474, -0.078441, 0.863886); v(0.800852, -0.03397, 0.936519); v(0.841269, -0.053431, 0.798324); v(0.806863, -0.012828, 0.86496); v(0.936966, -0.251244, 0.502381); v(0.924266, -0.207707, 0.582891); v(0.792108, 0.012219, 0.769876); v(0.812123, -0.019584, 0.674861); v(0.856698, -0.094643, 0.555402); v(0.764665, -0.385409, 0.91143); v(0.796672, -0.36217, 0.900945); v(0.863834, -0.331147, 0.824007); v(0.824427, -0.310931, 0.902126); v(0.847404, -0.260398, 0.889611); v(0.853708, -0.196415, 0.889778); v(0.890859, -0.222477, 0.793817); v(0.895153, -0.17734, 0.756569); v(0.868384, -0.125296, 0.813103); v(0.932896, -0.302878, 0.647217); v(0.878466, -0.11641, 0.744705); v(0.904056, -0.160796, 0.663596); v(0.894663, -0.137102, 0.624772); v(0.862335, -0.078249, 0.705589); v(0.830713, -0.031235, 0.735673); v(0.872648, -0.100383, 0.61626); v(0.835306, -0.055964, 0.613792); v(0.842841, -0.527398, 0.644544); v(0.865591, -0.521561, 0.616554); v(0.815145, -0.517029, 0.703705); v(0.821096, -0.524397, 0.683653); v(0.840794, -0.427112, 0.784802); v(0.865212, -0.396709, 0.775706); v(0.913047, -0.341322, 0.709377); v(0.929705, -0.363415, 0.647591); v(0.861239, -0.230022, 0.261739); v(0.846212, -0.179982, 0.276919); v(0.828139, -0.130011, 0.303541); v(0.797822, -0.062399, 0.457388); v(0.712648, 0.058019, 0.55738); v(0.728244, 0.050171, 0.715988); v(0.588659, 0.120225, 1.121147); v(0.519663, 0.151145, 1.275475); v(0.477855, -0.207208, 1.221693); v(0.462952, -0.340725, 1.154373); v(0.583663, -0.346136, 1.045556); v(0.613687, -0.499925, 0.905771); v(0.63704, -0.56504, 0.828839); v(0.749758, -0.553785, 0.690404); v(0.807454, -0.684387, 0.458428); v(0.869499, -0.677932, 0.254918); v(0.906688, -0.477737, 0.126873); v(0.907148, -0.562412, 0.245752); v(0.91493, -0.442242, 0.208543); v(0.889513, -0.597031, 0.294868); v(0.804745, -0.605106, 0.536472); v(0.890332, -0.322718, 0.237355); v(0.889098, -0.348768, 0.138046); v(0.797568, -0.069783, 0.301496); v(0.657811, -0.392698, 0.954739); v(0.734001, -0.481616, 0.809551); v(0.696745, -0.422254, 0.911308); v(1.104261, -0.478608, 0.678322); v(1.104987, -0.534961, 0.679344); v(1.09732, -0.451643, 0.711166); v(1.095571, -0.434055, 0.750507); v(1.083648, -0.424645, 0.853854); v(1.096292, -0.705844, 0.801549); v(1.072732, -0.434062, 0.936245); v(1.089011, -0.766375, 0.875488); v(1.064094, -0.675662, 0.773321); v(1.004734, -0.741687, 1.570536); v(1.011924, -0.688813, 1.507103); v(1.000015, -0.799918, 1.628094); v(1.018548, -1.022982, 1.521337); v(1.028576, -1.013499, 1.435585); v(0.996527, -0.857439, 1.669959); v(0.995074, -0.9125, 1.69269); v(1.002349, -1.002832, 1.650123); v(0.966515, -0.888315, 1.674715); v(0.958683, -0.980565, 1.639023); v(0.995581, -0.96875, 1.694231); v(0.926816, -0.872975, 1.563779); v(1.009475, -1.019655, 1.593421); v(0.982655, -1.013668, 1.503729); v(0.970799, -0.755401, 1.569064); v(1.058131, -0.932467, 1.170754); v(1.019953, -0.892804, 1.10187); v(0.991012, -0.557747, 1.259233); v(1.06961, -0.882111, 1.063588); v(1.031552, -0.565508, 1.308656); v(1.043031, -0.515153, 1.201492); v(1.106754, -0.590824, 0.702754); v(1.056463, -0.468207, 1.078831); v(1.084342, -0.800503, 0.922188); v(1.025527, -0.779726, 0.925886); v(0.956473, -0.637619, 0.986771); v(0.978805, -0.72021, 0.949484); v(0.964873, -0.554148, 1.027765); v(1.001408, -0.492246, 1.061402); v(1.016821, -0.647116, 1.450056); v(1.0447, -0.979412, 1.293413); v(0.961766, -0.671156, 1.432628); v(0.916832, -0.816529, 1.357997); v(0.925231, -0.733057, 1.39899); v(0.939163, -0.899119, 1.320709); v(0.985885, -0.958636, 1.297111); v(0.996365, -0.5016, 1.091329); v(0.958749, -0.565332, 1.056696); v(0.950101, -0.651271, 1.014491); v(0.973093, -0.736304, 0.976101); v(1.021197, -0.79758, 0.951805); v(0.96273, -0.653399, 1.406302); v(0.925115, -0.717131, 1.37167); v(0.916467, -0.80307, 1.329465); v(0.939459, -0.888103, 1.291075); v(0.987562, -0.949379, 1.266779); v(1.019412, -0.628648, 1.424246); v(1.048116, -0.97077, 1.262972); v(1.08175, -0.818971, 0.947998); v(1.053047, -0.476849, 1.109273); v(0.975812, -0.590992, 0.89431); v(1.001299, -0.48177, 0.917418); v(1.015368, -0.677101, 0.829846); v(1.043303, -0.641973, 0.760711); v(1.067759, -0.566302, 0.700077); v(1.059508, -0.446849, 0.752712); v(1.029389, -0.448065, 0.846832); v(1.045054, -0.444121, 0.952491); v(1.04213, -0.438984, 0.857759); v(0.941176, -0.766874, 1.520666); v(0.918992, -0.809478, 1.446252); v(0.927449, -0.905773, 1.452479); v(0.935007, -0.935858, 1.534004); v(0.958426, -0.95632, 1.379928); v(1.008781, -0.994419, 1.367006); v(0.839215, -0.527411, 0.665197); v(0.980902, -0.52582, 0.878413); v(0.974312, -0.576871, 0.862749); v(1.026288, -0.627375, 0.759115); v(1.03902, -0.600721, 0.728609); v(1.05259, -0.472879, 0.717977); v(1.041666, -0.448821, 0.763595); v(0.990131, -0.623266, 0.788344); v(0.835588, -0.524361, 0.712906); v(0.974969, -0.611838, 0.816688); v(0.996224, -0.486709, 0.873512); v(0.984577, -0.618129, 0.841751); v(1.053043, -0.508546, 0.699888); v(1.050433, -0.462031, 0.734138); v(1.013852, -0.461964, 0.840929); v(0.941236, -0.448008, 0.62393); v(1.040941, -0.479765, 0.711139); v(1.035013, -0.462846, 0.721939); v(0.942566, -0.398088, 0.669488); v(0.938616, -0.417299, 0.632164); v(1.027586, -0.448713, 0.774077); v(0.932299, -0.389698, 0.703301); v(1.035236, -0.453535, 0.747986); v(0.926501, -0.379942, 0.687447); v(1.008042, -0.451737, 0.803977); v(0.910504, -0.3903, 0.730497); v(0.893521, -0.405632, 0.753751); v(0.977051, -0.4942, 0.84712); v(0.990582, -0.470333, 0.831437); v(0.879445, -0.424265, 0.767741); v(0.858885, -0.453127, 0.772093); v(1.004701, -0.473195, 0.859375); v(0.964817, -0.55198, 0.854506); v(0.85177, -0.483657, 0.768766); v(0.968552, -0.520685, 0.854308); v(0.96751, -0.588116, 0.841444); v(0.834002, -0.505258, 0.741168); v(1.003419, -0.616081, 0.75359); v(1.025617, -0.599817, 0.729209); v(0.890541, -0.516856, 0.628007); v(0.927207, -0.46231, 0.613039); v(1.035113, -0.506233, 0.694507); v(1.031777, -0.544215, 0.695859); v(1.032632, -0.574665, 0.71101); v(0.912636, -0.491048, 0.614806); v(1.000309, -0.644219, 0.814769); v(1.018047, -0.639093, 0.779081); v(1.052256, -0.552368, 0.701676); v(1.067447, -0.492193, 0.696282); v(1.068166, -0.467205, 0.711948); v(1.051336, -0.435875, 0.820343); v(0.921037, -0.367543, 0.68558); v(0.913982, -0.365539, 0.705404); v(0.905893, -0.368871, 0.72301); v(0.896899, -0.376687, 0.738166); v(0.883833, -0.391421, 0.75419); v(0.860875, -0.421574, 0.770792); v(0.835279, -0.456366, 0.770364); v(0.82494, -0.47465, 0.758899); v(0.819254, -0.49299, 0.74542); v(0.821428, -0.516862, 0.709494); v(0.830841, -0.525087, 0.681782); v(0.855723, -0.525171, 0.642443); v(0.886385, -0.508462, 0.611626); v(0.907911, -0.481024, 0.595302); v(0.919743, -0.461192, 0.590652); v(0.926616, -0.444289, 0.591484); v(0.931253, -0.427523, 0.597369); v(0.933419, -0.411575, 0.608861); v(0.933246, -0.397001, 0.624888); v(0.93009, -0.385326, 0.642906); v(0.926795, -0.374173, 0.664657); v(0.742887, -0.998991, 0.13329); v(0.760132, -1.021961, -0.06655); v(0.779434, -0.960931, -0.361957); v(0.704313, -0.953809, 0.333292); v(0.245214, -0.560389, 1.133921); v(0.538455, -0.817057, 0.732258); v(0.090505, -0.381736, 1.325263); v(0.641906, -0.888524, 0.533206); v(0.75843, -0.032346, 0.002009); v(0.823626, -0.208277, -0.143108); v(0.845308, -0.380863, -0.261093); v(0.845081, -0.576071, -0.373682); v(0.587316, 0.206008, 0.169704); v(0.518214, 0.254124, 0.14969); v(0.349493, 0.318012, 0.023346); v(0.178152, 0.287448, -0.4177); v(0.145851, 0.2155, -0.614128); v(0.863826, -0.731841, -0.291152); v(0.820035, -0.778682, -0.436779); v(0.126189, 0.093035, -0.79609); v(0.263753, 0.324366, -0.140467); v(0.211068, 0.312719, -0.27947); v(0.643935, 0.141133, 0.152896); v(0.863643, -0.780682, -0.197716); v(0.829076, -0.839068, -0.366433); v(-0.046814, 1.125335, 2.173375); v(-0.064438, 1.337659, 2.773474); v(-0.224928, -0.471851, 1.208598); v(-0.395798, 1.183414, 2.932827); v(-0.367088, 1.192274, 3.103895); v(-0.403305, 1.023553, 3.183291); v(-0.858665, -0.217897, 0.094249); v(-0.845636, -0.824333, 0.129757); v(-0.803795, -0.872914, 0.223737); v(-0.8993, -0.477064, -0.072426); v(-0.624347, 0.163445, 0.226728); v(-0.607104, 0.190083, 0.322507); v(-0.49711, 0.260267, 0.224072); v(-0.5841, 0.20402, 0.989771); v(-0.577105, 0.13855, 1.128675); v(-0.46661, 0.2332, 1.381578); v(-0.467986, 0.072435, 1.357909); v(-0.448167, -0.103217, 1.304978); v(-0.823553, -0.116989, 0.175022); v(-0.715157, 0.058868, 0.253456); v(-0.436329, 0.425748, 1.175275); v(-0.65158, 0.136919, 0.768001); v(-0.612416, 0.204807, 0.672867); v(-0.387998, 0.482579, 1.187102); v(-0.367541, 0.534989, 1.462499); v(-0.094647, 0.685388, 3.572217); v(-0.197895, 0.693764, 3.420946); v(-0.087646, 0.642488, 3.434865); v(-0.117653, 0.646893, 3.411933); v(-0.037456, 0.637237, 3.456584); v(-0.263935, 0.701791, 2.960119); v(-0.376292, 0.84224, 3.129898); v(-0.314758, 0.760643, 3.214571); v(-0.42147, 0.308552, 0.247933); v(-0.255435, 0.477107, 0.796049); v(-0.349384, 0.451323, 0.876977); v(-0.786607, -0.975409, -0.020092); v(-0.900215, -0.62039, -0.119584); v(-0.319325, -0.158057, 1.397809); v(-0.368574, 0.006037, 1.464547); v(-0.454223, 0.37488, 0.82802); v(-0.129554, 0.50894, 0.787908); v(-0.22334, 0.604653, 1.198423); v(-0.112519, 0.624686, 1.147077); v(-0.291467, 0.609846, 1.352273); v(-0.214259, 0.699015, 1.434263); v(-0.431216, 0.418358, 1.337594); v(-0.324566, 0.609044, 1.492493); v(-0.46365, 0.321173, 1.345166); v(-0.402204, 0.362622, 1.5483); v(-0.132012, 1.109818, 2.192115); v(-0.255634, 0.84245, 1.852545); v(-0.219402, 0.999844, 2.077962); v(-0.275448, 0.726242, 1.6553); v(-0.321093, 0.363417, 1.858902); v(-0.349117, 0.502127, 1.897474); v(-0.358706, 0.525125, 1.727642); v(-0.323765, 0.485822, 2.078155); v(-0.230486, 0.243228, 1.891316); v(-0.250463, 0.365253, 2.058506); v(-0.093877, 0.150828, 1.884731); v(-0.175305, 0.269717, 2.002108); v(-0.161422, 0.103987, 1.78031); v(-0.360483, 0.673648, 2.079292); v(-0.360712, 0.637299, 2.210104); v(-0.318275, 0.946513, 2.170952); v(-0.339465, 0.833935, 2.086359); v(-0.343589, 1.119864, 2.482922); v(-0.399522, 0.948168, 2.453653); v(-0.331093, 0.635176, 2.403936); v(-0.254515, 0.506219, 2.321944); v(-0.135284, 0.40517, 2.263999); v(-0.406977, 1.16211, 2.781049); v(-0.293972, 1.256772, 3.174158); v(-0.169338, 1.332908, 3.175714); v(-0.252398, 1.310442, 3.112731); v(-0.264149, 1.248147, 2.646102); v(-0.271521, 1.180841, 2.511267); v(-0.259671, 1.293641, 2.775862); v(-0.066659, 1.362365, 2.949091); v(-0.239864, 1.327004, 2.979891); v(-0.430442, 1.023416, 2.88273); v(-0.422475, 0.901401, 2.825579); v(-0.346292, 0.774369, 2.931737); v(-0.103279, 0.603325, 2.756957); v(-0.156574, 0.648777, 2.977929); v(-0.212038, 0.635439, 2.735701); v(-0.319619, 0.714382, 2.752504); v(-0.130533, 1.280781, 2.61256); v(-0.04656, 1.295017, 2.610265); v(-0.427688, 0.934754, 2.750678); v(-0.375948, 0.737396, 2.474329); v(-0.292425, 0.632798, 2.542927); v(-0.136784, 0.526994, 2.5073); v(-0.220587, 0.567485, 2.513998); v(-0.08207, 1.365353, 3.148934); v(-0.401403, 0.910259, 3.154748); v(-0.340643, 1.213949, 3.155907); v(-0.35198, 0.75483, 2.050314); v(-0.34373, 0.616015, 1.770523); v(-0.158282, 0.894048, 1.783548); v(-0.106454, 0.731806, 1.404108); v(-0.319971, 0.692756, 1.776338); v(-0.370507, 0.411299, 1.670907); v(-0.376567, 0.501954, 1.558377); v(-0.384132, 0.22224, 1.560677); v(-0.346663, 0.244004, 1.660755); v(-0.284494, 0.221037, 1.767722); v(-0.301195, 0.066759, 1.596295); v(-0.229234, 0.071533, 1.680431); v(-0.286865, 0.344936, 0.142838); v(-0.106538, 0.37759, 0.120383); v(-0.862641, -0.817914, -0.09469); v(-0.758057, -0.819025, 0.418356); v(-0.125735, 0.643147, 3.341845); v(-0.235866, 0.693329, 3.224957); v(-1.03166, -0.894512, 1.659176); v(-1.021325, -0.922318, 1.653166); v(-1.000531, -0.931855, 1.649833); v(-0.974136, -0.922715, 1.649453); v(-0.965518, -0.882118, 1.656228); v(-0.997102, -0.861225, 1.66259); v(-1.019891, -0.871562, 1.662427); v(-0.990056, -0.901237, 1.753449); v(-1.026405, -0.970649, 1.672224); v(-0.995187, -0.994839, 1.643872); v(-1.012846, -0.993221, 1.65364); v(-0.953958, -0.998723, 1.74833); v(-0.970553, -0.974156, 1.641832); v(-0.965687, -0.930631, 1.661748); v(-1.013434, -0.931115, 1.685945); v(-0.986602, -0.915303, 1.680266); v(-1.01604, -0.991944, 1.637101); v(-1.019998, -1.011672, 1.611288); v(-0.990398, -1.012139, 1.585343); v(-0.962835, -0.988838, 1.596402); v(-0.973567, -0.965843, 1.639393); v(-0.958575, -0.970914, 1.619321); v(-0.955055, -1.066177, 1.657637); v(-0.996002, -0.973602, 1.646804); v(-0.834769, -0.70743, 0.362318); v(-0.425364, 1.03708, 2.731181); v(-0.381888, 1.130222, 2.55746); v(-0.415117, -0.469679, 1.111906); v(-0.761808, -0.648824, 0.60286); v(-0.498345, -0.705696, 0.872227); v(-0.595177, -0.712009, 0.767903); v(-0.23938, -0.222413, 1.404772); v(-0.132144, -0.205078, 1.469186); v(-0.13964, -0.051954, 1.61762); v(-0.131968, 1.246115, 3.399005); v(-0.282877, 1.251968, 3.204626); v(-0.154402, 1.326713, 3.212447); v(-0.365453, 1.220909, 3.093743); v(-0.377063, 1.221865, 3.047918); v(-0.38714, 1.220872, 3.002888); v(-0.396269, 1.217903, 2.95501); v(-0.305538, 1.321543, 3.010584); v(-0.335415, 1.335958, 2.968258); v(-0.360522, 1.362602, 2.963601); v(-0.300511, 1.318725, 3.05911); v(-0.298624, 1.308295, 3.100423); v(-0.329678, 1.329604, 3.0785); v(-0.356116, 1.357988, 3.066541); v(-0.302801, 1.291956, 3.129685); v(-0.339721, 1.321032, 3.114073); v(-0.441096, 1.383994, 2.652208); v(-0.390952, 1.306616, 2.662383); v(-0.381962, 1.329529, 2.722106); v(-0.360392, 1.267902, 2.656039); v(-0.349853, 1.294428, 2.724561); v(-0.322413, 1.233144, 2.630028); v(-0.316676, 1.265272, 2.697515); v(-0.312865, 1.287365, 2.760664); v(-0.308914, 1.309288, 2.854871); v(-0.340685, 1.322867, 2.847184); v(-0.368555, 1.351146, 2.841355); v(-0.306223, 1.320606, 2.952362); v(-0.412889, 1.199909, 2.783136); v(-0.433374, 1.253303, 2.794403); v(-0.410783, 1.206827, 2.843627); v(-0.404629, 1.213042, 2.901577); v(-0.402252, 1.259113, 2.970082); v(-0.377036, 1.250571, 2.627488); v(-0.351597, 1.209275, 2.601922); v(-0.420878, 1.289904, 2.624582); v(-0.392048, 1.235976, 2.616371); v(-0.405256, 1.225419, 2.626561); v(-0.387163, 1.172451, 2.604478); v(-0.410255, 1.304063, 2.63536); v(-0.437559, 1.292336, 2.634233); v(-0.510124, 1.47473, 2.611037); v(-0.545887, 1.486967, 2.606039); v(-0.458835, 1.438736, 2.678889); v(-0.446461, 1.449279, 2.746445); v(-0.438632, 1.469435, 2.860467); v(-0.544183, 1.638481, 2.854942); v(-0.422828, 1.273436, 2.906261); v(-0.428943, 1.256203, 2.665313); v(-0.436423, 1.258223, 2.713536); v(-0.547409, 1.47102, 2.629731); v(-0.626605, 1.609864, 2.6086); v(-0.548664, 1.462266, 2.720721); v(-0.545464, 1.486364, 2.792331); v(-0.496663, 1.466701, 2.925302); v(-0.468492, 1.477743, 3.004049); v(-0.573221, 1.643879, 2.8753); v(-0.574308, 1.660224, 2.872992); v(-0.493987, 1.555094, 2.967864); v(-0.554016, 1.648122, 2.780005); v(-0.562081, 1.653062, 2.88049); v(-0.552994, 1.618993, 2.682611); v(-0.58858, 1.637736, 2.597649); v(-0.614174, 1.612844, 2.566208); v(-0.608612, 1.643189, 2.566555); v(-0.607197, 1.620913, 2.563838); v(-0.645747, 1.656493, 2.559299); v(-0.585749, 1.638573, 2.84503); v(-0.619493, 1.650721, 2.755589); v(-0.326178, 1.273781, 3.134716); v(-0.395244, 1.387173, 3.08092); v(-0.345795, 1.252542, 3.122577); v(-0.365918, 1.310779, 3.098969); v(-0.39062, 1.326086, 3.061003); v(-0.634132, 1.636628, 2.672963); v(-0.410076, 1.313444, 3.001596); v(-0.418857, 1.439276, 3.050264); v(-0.474814, 1.510865, 3.001605); v(-0.375021, 1.278866, 3.07426); v(-0.400752, 1.183905, 2.661931); v(-0.409502, 1.192608, 2.722017); v(-0.569372, 1.670452, 2.853094); v(-0.608065, 1.714405, 2.810516); v(-0.631838, 1.740209, 2.666247); v(-0.634836, 1.733023, 2.634268); v(-0.656473, 1.711328, 2.530835); v(-0.656048, 1.697749, 2.525044); v(-0.662411, 1.695257, 2.523884); v(-0.668321, 1.695136, 2.532875); v(-0.681565, 1.75181, 2.654747); v(-0.623836, 1.712518, 2.792975); v(-0.613662, 1.713472, 2.809361); v(-0.664677, 1.703275, 2.646612); v(-0.566686, 1.548679, 2.584461); v(-0.764321, 1.889888, 2.499512); v(-0.727372, 1.79081, 2.445571); v(-0.692342, 1.73995, 2.49024); v(-0.725264, 1.792979, 2.468035); v(-0.66411, 1.78551, 2.718494); v(-0.70152, 1.785679, 2.560794); v(-0.710403, 1.816629, 2.55729); v(-0.720407, 1.820391, 2.552178); v(-0.698701, 1.772667, 2.598447); v(-0.722143, 1.815766, 2.574216); v(-0.745538, 1.857976, 2.528326); v(-0.684721, 1.736658, 2.495499); v(-0.699081, 1.767645, 2.566216); v(-0.739024, 1.85922, 2.526545); v(-0.760222, 1.890482, 2.502056); v(-0.747423, 1.882305, 2.53676); v(-0.765415, 1.885909, 2.510188); v(-0.75382, 1.871732, 2.549993); v(-0.725516, 1.858459, 2.613132); v(-0.685018, 1.718751, 2.533774); v(-0.694325, 1.737271, 2.498112); v(-0.732539, 1.869113, 2.587071); v(-0.67063, 1.787624, 2.712745); v(-0.686363, 1.780539, 2.574228); v(-0.695572, 1.809339, 2.575191); v(-0.615591, 1.728183, 2.720552); v(-0.682134, 1.767641, 2.675971); v(-0.681566, 1.790424, 2.69284); v(-0.651016, 1.717832, 2.552359); v(-0.667774, 1.745151, 2.555365); v(-0.68676, 1.770257, 2.558101); v(-0.708868, 1.784899, 2.526522); v(-0.677249, 1.707258, 2.575122); v(-0.732488, 1.794922, 2.441735); v(-0.724924, 1.789506, 2.472788); v(-0.629383, 1.74754, 2.754111); v(-0.684763, 1.732715, 2.592608); v(-0.66024, 1.75677, 2.601193); v(-0.785055, 1.922307, 2.479112); v(-0.505147, 1.438557, 2.609363); v(-0.468342, 1.373502, 2.617767); v(-0.385092, 1.167695, 3.038046); v(-0.397505, 1.150912, 2.661667); v(-0.372085, 1.189212, 2.59179); v(-0.874903, -0.275115, 0.254293); v(-0.828177, -0.129414, 0.362516); v(-0.813388, -0.094175, 0.405178); v(-0.781944, -0.031838, 0.519221); v(-0.760164, -0.001098, 0.572902); v(-0.767087, 0.000946, 0.624009); v(-0.578308, 0.10992, 1.153846); v(-0.620146, 0.127567, 1.038538); v(-0.54574, 0.060718, 1.234042); v(-0.556302, 0.081673, 1.213191); v(-0.567426, 0.097332, 1.185752); v(-0.52166, -0.037189, 1.251004); v(-0.528393, -0.000357, 1.251983); v(-0.536404, 0.032944, 1.246745); v(-0.514378, -0.15575, 1.214467); v(-0.513539, -0.115487, 1.232781); v(-0.516372, -0.075808, 1.244728); v(-0.56112, -0.284849, 1.106755); v(-0.536281, -0.238146, 1.154526); v(-0.521187, -0.19446, 1.190468); v(-0.688985, -0.462989, 0.864661); v(-0.727078, -0.521865, 0.753922); v(-0.776287, -0.58566, 0.616147); v(-0.548925, -0.129965, 1.200903); v(-0.559011, 0.012803, 1.221728); v(-0.624537, -0.406821, 0.965245); v(-0.848643, -0.616952, 0.404888); v(-0.877485, -0.607947, 0.326994); v(-0.863802, -0.614645, 0.363794); v(-0.90917, -0.404643, 0.212227); v(-0.901264, -0.3647, 0.221434); v(-0.789518, -0.597155, 0.579394); v(-0.830283, -0.528446, 0.663717); v(-0.797408, -0.585481, 0.580601); v(-0.877372, -0.271889, 0.280097); v(-0.85729, -0.210643, 0.325511); v(-0.834969, -0.143245, 0.386697); v(-0.812439, -0.083656, 0.468837); v(-0.796441, -0.036257, 0.575444); v(-0.920167, -0.465918, 0.568286); v(-0.935667, -0.426306, 0.561886); v(-0.889876, -0.362455, 0.753316); v(-0.884115, -0.285814, 0.80305); v(-0.741684, -0.421971, 0.889015); v(-0.810862, -0.468548, 0.775261); v(-0.809493, -0.504127, 0.730481); v(-0.895651, -0.499389, 0.589027); v(-0.916584, -0.305348, 0.312232); v(-0.905368, -0.254961, 0.351988); v(-0.890293, -0.211623, 0.385672); v(-0.855385, -0.182606, 0.370221); v(-0.739383, 0.057288, 0.926604); v(-0.70041, 0.085586, 0.952974); v(-0.67854, 0.103214, 0.878759); v(-0.656985, 0.066336, 1.109773); v(-0.622597, 0.072046, 1.145273); v(-0.594629, 0.105073, 1.128); v(-0.679455, 0.08917, 1.020819); v(-0.628903, 0.116788, 1.048222); v(-0.622447, -0.302993, 1.061953); v(-0.625155, -0.24026, 1.118039); v(-0.590613, -0.261072, 1.108182); v(-0.566628, -0.209653, 1.152549); v(-0.872478, -0.169384, 0.424382); v(-0.831571, -0.110659, 0.462664); v(-0.775938, 0.015086, 0.710559); v(-0.74072, 0.05805, 0.812838); v(-0.805638, -0.534702, 0.669257); v(-0.759273, -0.519433, 0.729842); v(-0.774933, -0.566662, 0.638675); v(-0.541973, -0.061958, 1.228057); v(-0.559969, -0.067591, 1.218615); v(-0.553119, -0.016942, 1.226671); v(-0.577196, 0.047835, 1.199898); v(-0.565283, 0.054097, 1.207882); v(-0.581113, 0.080685, 1.171988); v(-0.631754, -0.343578, 1.0179); v(-0.859025, -0.608348, 0.398478); v(-0.912797, -0.559256, 0.358695); v(-0.891796, -0.579389, 0.399517); v(-0.89198, -0.588353, 0.323925); v(-0.924939, -0.538472, 0.310229); v(-0.941006, -0.492958, 0.308883); v(-0.941364, -0.404647, 0.291867); v(-0.917041, -0.510078, 0.216801); v(-0.924819, -0.368031, 0.270685); v(-0.903974, -0.346389, 0.247498); v(-0.636575, 0.126536, 0.985026); v(-0.695576, 0.087371, 0.817364); v(-0.864645, -0.565591, 0.524263); v(-0.835367, -0.612224, 0.449225); v(-0.814821, -0.590077, 0.548294); v(-0.625683, -0.131449, 1.178993); v(-0.588875, -0.147725, 1.184611); v(-0.631096, -0.065286, 1.191244); v(-0.589065, -0.078826, 1.208847); v(-0.636608, -0.02129, 1.18511); v(-0.593187, -0.015896, 1.211291); v(-0.617642, 0.0291, 1.183381); v(-0.667701, -0.269535, 1.080558); v(-0.672763, -0.19711, 1.124286); v(-0.633362, -0.191483, 1.147469); v(-0.672556, -0.124003, 1.152615); v(-0.895677, -0.540194, 0.507163); v(-0.918142, -0.53254, 0.443615); v(-0.681457, -0.06295, 1.151832); v(-0.663781, -0.00736, 1.15795); v(-0.937326, -0.511305, 0.368613); v(-0.715931, -0.002637, 1.090599); v(-0.667877, 0.02895, 1.134913); v(-0.953739, -0.441309, 0.37446); v(-0.943917, -0.451847, 0.295043); v(-0.953481, -0.390838, 0.363088); v(-0.712497, 0.041624, 1.052242); v(-0.667686, 0.076643, 1.078186); v(-0.707164, 0.066493, 1.012269); v(-0.936106, -0.342333, 0.324053); v(-0.673135, -0.34846, 1.00576); v(-0.716944, -0.329544, 1.001364); v(-0.721122, -0.277992, 1.040109); v(-0.752869, -0.226796, 1.040306); v(-0.711324, -0.189211, 1.098285); v(-0.768974, -0.168286, 1.041186); v(-0.919292, -0.501738, 0.511994); v(-0.723879, -0.127606, 1.104005); v(-0.769389, -0.10145, 1.044259); v(-0.721963, -0.060641, 1.106337); v(-0.943142, -0.47244, 0.456896); v(-0.951945, -0.424341, 0.463931); v(-0.763238, -0.040976, 1.032927); v(-0.956848, -0.392003, 0.417303); v(-0.955002, -0.35667, 0.484959); v(-0.951837, -0.315487, 0.468641); v(-0.757718, 0.006494, 1.000006); v(-0.758826, 0.027919, 0.954175); v(-0.942664, -0.301311, 0.406053); v(-0.917588, -0.238823, 0.411164); v(-0.920154, -0.20898, 0.495797); v(-0.775275, 0.026974, 0.878821); v(-0.746007, 0.056767, 0.857242); v(-0.89569, -0.163709, 0.501136); v(-0.708648, -0.37932, 0.957518); v(-0.7574, -0.312618, 0.982742); v(-0.791338, -0.268359, 0.973297); v(-0.810742, -0.213323, 0.968521); v(-0.813703, -0.147166, 0.971408); v(-0.848965, -0.13242, 0.885508); v(-0.807993, -0.084623, 0.963956); v(-0.947372, -0.369436, 0.552765); v(-0.946883, -0.314622, 0.560582); v(-0.929003, -0.239704, 0.633821); v(-0.840474, -0.078441, 0.863886); v(-0.800852, -0.03397, 0.936519); v(-0.841269, -0.053431, 0.798324); v(-0.806863, -0.012828, 0.86496); v(-0.936966, -0.251244, 0.502381); v(-0.924266, -0.207707, 0.582891); v(-0.792108, 0.012219, 0.769876); v(-0.812123, -0.019584, 0.674861); v(-0.856698, -0.094643, 0.555402); v(-0.764665, -0.385409, 0.91143); v(-0.796672, -0.36217, 0.900945); v(-0.863834, -0.331147, 0.824007); v(-0.824427, -0.310931, 0.902126); v(-0.847404, -0.260398, 0.889611); v(-0.853708, -0.196415, 0.889778); v(-0.890859, -0.222477, 0.793817); v(-0.895153, -0.17734, 0.756569); v(-0.868384, -0.125296, 0.813103); v(-0.932896, -0.302878, 0.647217); v(-0.878466, -0.11641, 0.744705); v(-0.904056, -0.160796, 0.663596); v(-0.894663, -0.137102, 0.624772); v(-0.862335, -0.078249, 0.705589); v(-0.830713, -0.031235, 0.735673); v(-0.872648, -0.100383, 0.61626); v(-0.835306, -0.055964, 0.613792); v(-0.842841, -0.527398, 0.644544); v(-0.865591, -0.521561, 0.616554); v(-0.815145, -0.517029, 0.703705); v(-0.821096, -0.524397, 0.683653); v(-0.840794, -0.427112, 0.784802); v(-0.865212, -0.396709, 0.775706); v(-0.913047, -0.341322, 0.709377); v(-0.929705, -0.363415, 0.647591); v(-0.861239, -0.230022, 0.261739); v(-0.846212, -0.179982, 0.276919); v(-0.828139, -0.130011, 0.303541); v(-0.797822, -0.062399, 0.457388); v(-0.712648, 0.058019, 0.55738); v(-0.728244, 0.050171, 0.715988); v(-0.588659, 0.120225, 1.121147); v(-0.519663, 0.151145, 1.275475); v(-0.477855, -0.207208, 1.221693); v(-0.462952, -0.340725, 1.154373); v(-0.583663, -0.346136, 1.045556); v(-0.613687, -0.499925, 0.905771); v(-0.63704, -0.56504, 0.828839); v(-0.749758, -0.553785, 0.690404); v(-0.807454, -0.684387, 0.458428); v(-0.869499, -0.677932, 0.254918); v(-0.906688, -0.477737, 0.126873); v(-0.907148, -0.562412, 0.245752); v(-0.91493, -0.442242, 0.208543); v(-0.889513, -0.597031, 0.294868); v(-0.804745, -0.605106, 0.536472); v(-0.890332, -0.322718, 0.237355); v(-0.889098, -0.348768, 0.138046); v(-0.797568, -0.069783, 0.301496); v(-0.657811, -0.392698, 0.954739); v(-0.734001, -0.481616, 0.809551); v(-0.696745, -0.422254, 0.911308); v(-1.104261, -0.478608, 0.678322); v(-1.104987, -0.534961, 0.679344); v(-1.09732, -0.451643, 0.711166); v(-1.095571, -0.434055, 0.750507); v(-1.083648, -0.424645, 0.853854); v(-1.096292, -0.705844, 0.801549); v(-1.072732, -0.434062, 0.936245); v(-1.089011, -0.766375, 0.875488); v(-1.064094, -0.675662, 0.773321); v(-1.004734, -0.741687, 1.570536); v(-1.011924, -0.688813, 1.507103); v(-1.000015, -0.799918, 1.628094); v(-1.018548, -1.022982, 1.521337); v(-1.028576, -1.013499, 1.435585); v(-0.996527, -0.857439, 1.669959); v(-0.995074, -0.9125, 1.69269); v(-1.002349, -1.002832, 1.650123); v(-0.966515, -0.888315, 1.674715); v(-0.958683, -0.980565, 1.639023); v(-0.995581, -0.96875, 1.694231); v(-0.926816, -0.872975, 1.563779); v(-1.009475, -1.019655, 1.593421); v(-0.982655, -1.013668, 1.503729); v(-0.970799, -0.755401, 1.569064); v(-1.058131, -0.932467, 1.170754); v(-1.019953, -0.892804, 1.10187); v(-0.991012, -0.557747, 1.259233); v(-1.06961, -0.882111, 1.063588); v(-1.031552, -0.565508, 1.308656); v(-1.043031, -0.515153, 1.201492); v(-1.106754, -0.590824, 0.702754); v(-1.056463, -0.468207, 1.078831); v(-1.084342, -0.800503, 0.922188); v(-1.025527, -0.779726, 0.925886); v(-0.956473, -0.637619, 0.986771); v(-0.978805, -0.72021, 0.949484); v(-0.964873, -0.554148, 1.027765); v(-1.001408, -0.492246, 1.061402); v(-1.016821, -0.647116, 1.450056); v(-1.0447, -0.979412, 1.293413); v(-0.961766, -0.671156, 1.432628); v(-0.916832, -0.816529, 1.357997); v(-0.925231, -0.733057, 1.39899); v(-0.939163, -0.899119, 1.320709); v(-0.985885, -0.958636, 1.297111); v(-0.996365, -0.5016, 1.091329); v(-0.958749, -0.565332, 1.056696); v(-0.950101, -0.651271, 1.014491); v(-0.973093, -0.736304, 0.976101); v(-1.021197, -0.79758, 0.951805); v(-0.96273, -0.653399, 1.406302); v(-0.925115, -0.717131, 1.37167); v(-0.916467, -0.80307, 1.329465); v(-0.939459, -0.888103, 1.291075); v(-0.987562, -0.949379, 1.266779); v(-1.019412, -0.628648, 1.424246); v(-1.048116, -0.97077, 1.262972); v(-1.08175, -0.818971, 0.947998); v(-1.053047, -0.476849, 1.109273); v(-0.975812, -0.590992, 0.89431); v(-1.001299, -0.48177, 0.917418); v(-1.015368, -0.677101, 0.829846); v(-1.043303, -0.641973, 0.760711); v(-1.067759, -0.566302, 0.700077); v(-1.059508, -0.446849, 0.752712); v(-1.029389, -0.448065, 0.846832); v(-1.045054, -0.444121, 0.952491); v(-1.04213, -0.438984, 0.857759); v(-0.941176, -0.766874, 1.520666); v(-0.918992, -0.809478, 1.446252); v(-0.927449, -0.905773, 1.452479); v(-0.935007, -0.935858, 1.534004); v(-0.958426, -0.95632, 1.379928); v(-1.008781, -0.994419, 1.367006); v(-0.839215, -0.527411, 0.665197); v(-0.980902, -0.52582, 0.878413); v(-0.974312, -0.576871, 0.862749); v(-1.026288, -0.627375, 0.759115); v(-1.03902, -0.600721, 0.728609); v(-1.05259, -0.472879, 0.717977); v(-1.041666, -0.448821, 0.763595); v(-0.990131, -0.623266, 0.788344); v(-0.835588, -0.524361, 0.712906); v(-0.974969, -0.611838, 0.816688); v(-0.996224, -0.486709, 0.873512); v(-0.984577, -0.618129, 0.841751); v(-1.053043, -0.508546, 0.699888); v(-1.050433, -0.462031, 0.734138); v(-1.013852, -0.461964, 0.840929); v(-0.941236, -0.448008, 0.62393); v(-1.040941, -0.479765, 0.711139); v(-1.035013, -0.462846, 0.721939); v(-0.942566, -0.398088, 0.669488); v(-0.938616, -0.417299, 0.632164); v(-1.027586, -0.448713, 0.774077); v(-0.932299, -0.389698, 0.703301); v(-1.035236, -0.453535, 0.747986); v(-0.926501, -0.379942, 0.687447); v(-1.008042, -0.451737, 0.803977); v(-0.910504, -0.3903, 0.730497); v(-0.893521, -0.405632, 0.753751); v(-0.977051, -0.4942, 0.84712); v(-0.990582, -0.470333, 0.831437); v(-0.879445, -0.424265, 0.767741); v(-0.858885, -0.453127, 0.772093); v(-1.004701, -0.473195, 0.859375); v(-0.964817, -0.55198, 0.854506); v(-0.85177, -0.483657, 0.768766); v(-0.968552, -0.520685, 0.854308); v(-0.96751, -0.588116, 0.841444); v(-0.834002, -0.505258, 0.741168); v(-1.003419, -0.616081, 0.75359); v(-1.025617, -0.599817, 0.729209); v(-0.890541, -0.516856, 0.628007); v(-0.927207, -0.46231, 0.613039); v(-1.035113, -0.506233, 0.694507); v(-1.031777, -0.544215, 0.695859); v(-1.032632, -0.574665, 0.71101); v(-0.912636, -0.491048, 0.614806); v(-1.000309, -0.644219, 0.814769); v(-1.018047, -0.639093, 0.779081); v(-1.052256, -0.552368, 0.701676); v(-1.067447, -0.492193, 0.696282); v(-1.068166, -0.467205, 0.711948); v(-1.051336, -0.435875, 0.820343); v(-0.921037, -0.367543, 0.68558); v(-0.913982, -0.365539, 0.705404); v(-0.905893, -0.368871, 0.72301); v(-0.896899, -0.376687, 0.738166); v(-0.883833, -0.391421, 0.75419); v(-0.860875, -0.421574, 0.770792); v(-0.835279, -0.456366, 0.770364); v(-0.82494, -0.47465, 0.758899); v(-0.819254, -0.49299, 0.74542); v(-0.821428, -0.516862, 0.709494); v(-0.830841, -0.525087, 0.681782); v(-0.855723, -0.525171, 0.642443); v(-0.886385, -0.508462, 0.611626); v(-0.907911, -0.481024, 0.595302); v(-0.919743, -0.461192, 0.590652); v(-0.926616, -0.444289, 0.591484); v(-0.931253, -0.427523, 0.597369); v(-0.933419, -0.411575, 0.608861); v(-0.933246, -0.397001, 0.624888); v(-0.93009, -0.385326, 0.642906); v(-0.926795, -0.374173, 0.664657); v(-0.742887, -0.998991, 0.13329); v(-0.704313, -0.953809, 0.333292); v(-0.245214, -0.560389, 1.133921); v(-0.40358, -0.712669, 0.93354); v(-0.538455, -0.817057, 0.732258); v(-0.090505, -0.381736, 1.325263); v(-0.641906, -0.888524, 0.533206); v(-0.75843, -0.032346, 0.002009); v(-0.823626, -0.208277, -0.143108); v(-0.845308, -0.380863, -0.261093); v(-0.845081, -0.576071, -0.373682); v(-0.587316, 0.206008, 0.169704); v(-0.518214, 0.254124, 0.14969); v(-0.349493, 0.318012, 0.023346); v(-0.178152, 0.287448, -0.4177); v(-0.145851, 0.2155, -0.614128); v(-0.863826, -0.731841, -0.291152); v(-0.820035, -0.778682, -0.436779); v(-0.126189, 0.093035, -0.79609); v(-0.263753, 0.324366, -0.140467); v(-0.211068, 0.312719, -0.27947); v(-0.643935, 0.141133, 0.152896); v(-0.863643, -0.780682, -0.197716); v(-0.829076, -0.839068, -0.366433); v(0, 1.354173, 3.214158); v(0, 1.11186, 3.577896); v(0, -0.29411, 1.417028); v(0, 0.197865, -0.670407); v(0, 0.293455, -0.437961); v(0, 0.336411, -0.246087); v(0, 0.395073, 0.182212); v(0, 0.505817, 0.72758); v(0, 0.580165, 0.990961); v(0, 0.718524, 1.346274); v(0, 0.935976, 1.774689); v(0, 1.371811, 3.138026); v(0, 1.270211, 3.399992); v(0, 0.661863, 3.558275); v(0, 0.636276, 3.461871); v(0, 0.624032, 3.223447); v(0, 0.62474, 2.995059); v(0, 0.408852, 2.316719); v(0, 0.229989, 2.025713); v(0, 0.072773, 1.795588); v(0, -0.117126, 1.570698); v(0, 0.514245, 2.524928); v(0, 0.601624, 2.800028); v(0, 0.753448, 3.72627); v(0, 0.706212, 3.662226); v(-0.064162, 0.682142, 3.598635); v(0, 0.76688, 3.733641); v(-0.099014, 0.742271, 3.658124); v(-0.124131, 0.796747, 3.665851); v(0, 1.13684, 2.199991); v(0, 1.29162, 2.59999); v(0, 1.358046, 2.898139); v(0.40358, -0.712669, 0.93354); v(0.331132, 1.066965, 3.41222); v(0.332027, 1.077936, 3.393457); v(0.316536, 0.843312, 3.442919); v(0.36628, 0.967616, 3.345458); v(0.291206, 0.842774, 3.501906); v(0.359593, 1.000829, 3.379836); v(0.364387, 0.955139, 3.372185); v(0.34836, 1.03866, 3.394109); v(0.361877, 0.915586, 3.371029); v(0.343212, 0.868673, 3.380402); v(0.366814, 0.941222, 3.343815); v(0.357249, 0.896643, 3.359147); v(0.34784, 1.048287, 3.372696); v(0.30747, 1.096933, 3.428099); v(0.273713, 0.858292, 3.54597); v(-0.331132, 1.066965, 3.41222); v(-0.332027, 1.077936, 3.393457); v(-0.316536, 0.843312, 3.442919); v(-0.36628, 0.967616, 3.345458); v(-0.291206, 0.842774, 3.501906); v(-0.359593, 1.000829, 3.379836); v(-0.364387, 0.955139, 3.372185); v(-0.34836, 1.03866, 3.394109); v(-0.361877, 0.915586, 3.371029); v(-0.343212, 0.868673, 3.380402); v(-0.366814, 0.941222, 3.343815); v(-0.357249, 0.896643, 3.359147); v(-0.34784, 1.048287, 3.372696); v(-0.30747, 1.096933, 3.428099); v(-0.273713, 0.858292, 3.54597); v(0, 0.971928, 3.665738); v(-0.163451, 1.060346, 3.572802); v(-0.192929, 1.102495, 3.522398); v(-0.250055, 1.176705, 3.395227); v(-0.366058, 1.143878, 3.197206); v(-0.400967, 0.991577, 3.204843); v(-0.353952, 0.848555, 3.308008); v(-0.25854, 0.740024, 3.407919); v(-0.197654, 0.743672, 3.549311); v(-0.209067, 0.829329, 3.607319); v(0.77077, -0.99754, -0.310849); v(0.762858, -1.025169, -0.195877); v(0, 0.632088, 3.441719); v(-0.77077, -0.99754, -0.310849); v(-0.762858, -1.025169, -0.195877); v(-0.779434, -0.960931, -0.361957); v(-0.760132, -1.021961, -0.06655); v(-0.808684, -0.956524, -0.148483); v(0.064796, 0.635654, 3.431525); v(0.018704, 0.631805, 3.442718); v(-0.018704, 0.631805, 3.442718); v(-0.064796, 0.635654, 3.431525); f2(1426, 1406, 1416); f2(1426, 1425, 1406); f2(1425, 1424, 1406); f2(1406, 1424, 1404); f2(1404, 1424, 1411); f2(1424, 1423, 1411); f2(1411, 1423, 1413); f2(1422, 1412, 1423); f2(1413, 1423, 1412); f2(1410, 1411, 1413); f2(1410, 1413, 1412); f2(1408, 1410, 1412); f2(1405, 1408, 1412); f2(1405, 1414, 1407); f2(1414, 1402, 1409); f2(1405, 1407, 1408); f2(1414, 1409, 1407); f2(1403, 1402, 1414); f2(1403, 1415, 1402); f2(1391, 156, 1401); f2(7, 156, 1391); f2(27, 7, 1391); f2(27, 1391, 1389); f2(27, 1389, 1396); f2(99, 27, 1396); f2(99, 1396, 1398); f2(1397, 161, 99); f2(99, 1398, 1397); f2(1396, 1395, 1398); f2(1398, 1395, 1397); f2(1395, 1393, 1397); f2(1393, 1390, 1397); f2(1399, 1390, 1392); f2(1387, 1399, 1394); f2(1392, 1390, 1393); f2(1394, 1399, 1392); f2(1387, 1388, 1399); f2(1400, 1388, 1387); f2(684, 1364, 1383); f2(1364, 0, 1383); f2(773, 684, 1384); f2(684, 1383, 1384); f2(1383, 0, 1384); f2(0, 93, 1384); f2(685, 773, 1384); f2(1, 1384, 93); f2(685, 1385, 763); f2(685, 1384, 1385); f2(1385, 1384, 1); f2(1, 83, 1385); f2(83, 1365, 1385); f2(1365, 763, 1385); f2(1380, 157, 1377); f2(1382, 1380, 1377); f2(769, 1376, 0x0300); f2(157, 6, 1377); f2(1377, 6, 119); f2(119, 1378, 1377); f2(1381, 1382, 1377); f2(1381, 1377, 1379); f2(1378, 1379, 1377); f2(769, 1370, 1376); f2(1370, 89, 1376); f2(1376, 89, 88); f2(88, 1375, 1376); f2(1375, 0x0300, 1376); f2(675, 1357, 678); f2(1358, 1357, 675); f2(674, 1358, 675); f2(1359, 1358, 674); f2(1359, 674, 680); f2(116, 1359, 679); f2(1359, 680, 679); f2(116, 679, 673); f2(115, 116, 673); f2(115, 673, 672); f2(14, 115, 672); f2(14, 672, 671); f2(12, 14, 671); f2(12, 671, 681); f2(21, 12, 681); f2(21, 681, 667); f2(20, 21, 667); f2(8, 20, 667); f2(8, 667, 668); f2(11, 8, 668); f2(11, 668, 669); f2(41, 11, 669); f2(41, 669, 670); f2(41, 676, 682); f2(676, 41, 670); f2(670, 677, 676); f2(117, 41, 682); f2(682, 676, 683); f2(39, 117, 682); f2(39, 682, 661); f2(660, 40, 39); f2(10, 9, 40); f2(660, 659, 40); f2(40, 659, 10); f2(10, 659, 662); f2(662, 118, 10); f2(662, 666, 118); f2(664, 152, 666); f2(664, 151, 152); f2(664, 1386, 151); f2(1386, 149, 151); f2(1386, 2, 149); f2(1386, 663, 2); f2(663, 665, 2); f2(478, 587, 649); f2(478, 333, 587); f2(333, 648, 587); f2(333, 481, 648); f2(481, 480, 648); f2(597, 618, 573); f2(618, 601, 578); f2(573, 618, 578); f2(578, 601, 637); f2(637, 601, 593); f2(637, 593, 577); f2(580, 578, 637); f2(517, 580, 637); f2(637, 577, 516); f2(516, 517, 637); f2(636, 635, 515); f2(636, 592, 635); f2(515, 577, 636); f2(577, 592, 636); f2(577, 593, 600); f2(577, 600, 592); f2(592, 599, 635); f2(635, 599, 576); f2(599, 634, 576); f2(576, 634, 591); f2(575, 576, 591); f2(575, 591, 590); f2(575, 590, 633); f2(574, 575, 633); f2(633, 632, 574); f2(632, 598, 574); f2(574, 598, 572); f2(598, 589, 572); f2(589, 588, 572); f2(572, 588, 573); f2(588, 597, 573); f2(634, 629, 630); f2(631, 650, 626); f2(631, 651, 650); f2(631, 626, 625); f2(631, 625, 630); f2(629, 631, 630); f2(627, 651, 631); f2(627, 652, 651); f2(627, 653, 652); f2(654, 653, 627); f2(606, 654, 627); f2(602, 606, 627); f2(599, 629, 634); f2(599, 628, 629); f2(628, 627, 629); f2(628, 602, 627); f2(629, 627, 631); f2(626, 650, 649); f2(625, 624, 590); f2(590, 624, 633); f2(625, 649, 624); f2(625, 626, 649); f2(622, 598, 596); f2(645, 620, 623); f2(646, 645, 623); f2(646, 623, 647); f2(647, 623, 595); f2(623, 620, 619); f2(623, 619, 622); f2(595, 623, 596); f2(623, 622, 596); f2(621, 597, 619); f2(643, 616, 644); f2(644, 616, 617); f2(644, 617, 645); f2(617, 620, 645); f2(617, 614, 621); f2(620, 617, 619); f2(617, 621, 619); f2(614, 597, 621); f2(614, 618, 597); f2(615, 618, 614); f2(643, 613, 616); f2(642, 613, 643); f2(616, 613, 615); f2(616, 615, 614); f2(616, 614, 617); f2(611, 601, 615); f2(615, 601, 618); f2(611, 607, 601); f2(640, 610, 612); f2(640, 639, 610); f2(612, 610, 608); f2(641, 640, 612); f2(642, 612, 613); f2(642, 641, 612); f2(612, 608, 607); f2(612, 607, 611); f2(613, 612, 611); f2(613, 611, 615); f2(609, 604, 600); f2(610, 658, 657); f2(610, 657, 605); f2(638, 658, 610); f2(608, 610, 605); f2(639, 638, 610); f2(609, 605, 604); f2(607, 608, 605); f2(607, 605, 609); f2(655, 654, 606); f2(657, 656, 606); f2(656, 655, 606); f2(605, 657, 606); f2(600, 604, 603); f2(603, 628, 599); f2(605, 606, 604); f2(604, 606, 603); f2(603, 602, 628); f2(603, 606, 602); f2(607, 593, 601); f2(593, 607, 609); f2(593, 609, 600); f2(592, 600, 603); f2(592, 603, 599); f2(591, 630, 625); f2(634, 630, 591); f2(591, 625, 590); f2(596, 598, 632); f2(622, 589, 598); f2(619, 589, 622); f2(597, 588, 619); f2(619, 588, 589); f2(594, 596, 632); f2(594, 632, 633); f2(624, 594, 633); f2(649, 587, 624); f2(624, 587, 594); f2(647, 595, 648); f2(595, 596, 594); f2(648, 595, 594); f2(587, 648, 594); f2(581, 530, 533); f2(530, 581, 536); f2(585, 584, 535); f2(585, 583, 584); f2(581, 553, 536); f2(536, 553, 523); f2(526, 586, 535); f2(585, 535, 586); f2(526, 552, 586); f2(552, 557, 586); f2(557, 585, 586); f2(557, 556, 585); f2(556, 583, 585); f2(531, 535, 584); f2(533, 531, 584); f2(583, 533, 584); f2(582, 533, 583); f2(583, 556, 554); f2(554, 582, 583); f2(581, 533, 582); f2(555, 581, 582); f2(554, 555, 582); f2(581, 555, 553); f2(553, 551, 523); f2(518, 521, 520); f2(532, 529, 531); f2(531, 530, 532); f2(530, 528, 532); f2(530, 527, 528); f2(530, 524, 527); f2(533, 530, 531); f2(535, 534, 525); f2(531, 529, 534); f2(535, 531, 534); f2(536, 524, 530); f2(522, 524, 536); f2(526, 535, 525); f2(523, 522, 536); f2(542, 541, 539); f2(540, 538, 537); f2(571, 542, 539); f2(558, 571, 539); f2(568, 563, 539); f2(568, 539, 541); f2(558, 539, 563); f2(563, 559, 558); f2(559, 563, 564); f2(564, 560, 559); f2(560, 564, 565); f2(565, 561, 560); f2(561, 565, 566); f2(566, 562, 561); f2(562, 566, 567); f2(538, 570, 562); f2(570, 538, 540); f2(562, 567, 538); f2(537, 538, 567); f2(567, 569, 537); f2(546, 545, 520); f2(521, 546, 520); f2(0x0202, 513, 635); f2(0x0202, 635, 576); f2(543, 0x0202, 576); f2(575, 543, 576); f2(543, 575, 521); f2(521, 518, 543); f2(521, 575, 574); f2(546, 521, 574); f2(574, 548, 546); f2(574, 572, 548); f2(572, 547, 548); f2(572, 573, 547); f2(573, 549, 547); f2(573, 550, 549); f2(550, 573, 579); f2(544, 550, 579); f2(544, 579, 519); f2(519, 579, 517); f2(580, 517, 579); f2(573, 578, 580); f2(573, 580, 579); f2(515, 635, 513); f2(516, 577, 515); f2(506, 391, 500); f2(392, 391, 506); f2(392, 390, 391); f2(326, 510, 321); f2(326, 377, 510); f2(377, 418, 510); f2(418, 442, 510); f2(510, 442, 0x0200); f2(442, 344, 0x0200); f2(0x0200, 344, 511); f2(344, 346, 511); f2(511, 346, 369); f2(369, 322, 511); f2(322, 321, 511); f2(0x0200, 511, 321); f2(321, 510, 0x0200); f2(303, 489, 509); f2(21, 509, 489); f2(20, 509, 21); f2(509, 302, 303); f2(488, 302, 509); f2(20, 488, 509); f2(20, 487, 488); f2(486, 20, 8); f2(20, 486, 487); f2(486, 8, 301); f2(8, 507, 301); f2(8, 508, 507); f2(508, 331, 507); f2(330, 331, 508); f2(8, 11, 508); f2(11, 502, 508); f2(504, 330, 502); f2(502, 330, 508); f2(11, 41, 502); f2(41, 503, 502); f2(503, 385, 502); f2(385, 504, 502); f2(505, 503, 501); f2(328, 505, 501); f2(503, 9, 501); f2(9, 146, 501); f2(146, 328, 501); f2(146, 329, 328); f2(327, 329, 146); f2(146, 500, 327); f2(391, 327, 500); f2(500, 146, 118); f2(118, 150, 500); f2(150, 506, 500); f2(332, 506, 150); f2(323, 332, 150); f2(499, 323, 150); f2(497, 321, 322); f2(326, 321, 497); f2(497, 322, 498); f2(498, 499, 152); f2(498, 322, 499); f2(152, 151, 498); f2(151, 497, 498); f2(151, 496, 497); f2(496, 326, 497); f2(495, 496, 149); f2(495, 318, 496); f2(149, 42, 495); f2(319, 318, 495); f2(494, 319, 495); f2(42, 494, 495); f2(494, 320, 319); f2(315, 320, 494); f2(42, 19, 494); f2(19, 316, 494); f2(316, 315, 494); f2(19, 317, 316); f2(19, 312, 317); f2(18, 313, 19); f2(19, 313, 312); f2(18, 314, 313); f2(18, 309, 314); f2(18, 493, 309); f2(493, 310, 309); f2(493, 311, 310); f2(493, 307, 311); f2(493, 16, 307); f2(18, 17, 493); f2(17, 52, 493); f2(52, 16, 493); f2(307, 16, 492); f2(492, 16, 308); f2(16, 15, 308); f2(308, 15, 388); f2(388, 15, 354); f2(354, 15, 389); f2(15, 23, 389); f2(389, 23, 491); f2(491, 23, 306); f2(23, 305, 306); f2(23, 490, 305); f2(23, 24, 490); f2(24, 21, 490); f2(490, 21, 489); f2(304, 490, 489); f2(304, 305, 490); f2(336, 488, 487); f2(302, 488, 336); f2(335, 486, 301); f2(336, 486, 335); f2(336, 487, 486); f2(655, 449, 341); f2(449, 429, 341); f2(655, 341, 654); f2(485, 470, 655); f2(470, 449, 655); f2(657, 485, 656); f2(485, 655, 656); f2(658, 485, 657); f2(484, 470, 485); f2(638, 485, 658); f2(484, 485, 638); f2(467, 470, 484); f2(639, 484, 638); f2(483, 642, 643); f2(342, 642, 483); f2(483, 643, 482); f2(482, 643, 644); f2(463, 342, 483); f2(482, 644, 345); f2(345, 644, 645); f2(462, 482, 345); f2(369, 481, 368); f2(481, 333, 368); f2(346, 480, 369); f2(369, 480, 481); f2(346, 647, 480); f2(480, 647, 648); f2(649, 650, 479); f2(649, 479, 478); f2(368, 333, 478); f2(479, 390, 478); f2(478, 390, 392); f2(334, 478, 392); f2(368, 478, 334); f2(477, 339, 460); f2(459, 339, 477); f2(477, 460, 476); f2(476, 460, 441); f2(476, 441, 473); f2(473, 441, 438); f2(459, 477, 475); f2(475, 477, 476); f2(474, 475, 476); f2(454, 475, 474); f2(474, 476, 473); f2(472, 473, 457); f2(473, 438, 457); f2(468, 472, 451); f2(472, 457, 451); f2(454, 474, 471); f2(471, 474, 472); f2(474, 473, 472); f2(452, 454, 471); f2(452, 471, 469); f2(469, 471, 468); f2(471, 472, 468); f2(468, 451, 467); f2(467, 451, 470); f2(451, 450, 470); f2(447, 469, 468); f2(447, 468, 467); f2(466, 447, 467); f2(466, 467, 343); f2(465, 466, 343); f2(465, 343, 463); f2(465, 463, 464); f2(464, 463, 483); f2(464, 483, 462); f2(462, 483, 482); f2(461, 462, 345); f2(344, 461, 345); f2(460, 339, 365); f2(460, 365, 364); f2(459, 366, 339); f2(458, 366, 459); f2(460, 364, 441); f2(441, 437, 438); f2(458, 459, 475); f2(439, 458, 475); f2(439, 475, 455); f2(455, 475, 454); f2(457, 438, 456); f2(456, 438, 436); f2(457, 456, 451); f2(451, 456, 433); f2(456, 436, 433); f2(453, 455, 452); f2(455, 454, 452); f2(451, 433, 450); f2(450, 433, 432); f2(470, 450, 449); f2(450, 432, 449); f2(449, 432, 429); f2(453, 452, 448); f2(448, 452, 447); f2(452, 469, 447); f2(448, 447, 446); f2(446, 447, 466); f2(423, 446, 445); f2(426, 446, 423); f2(445, 466, 465); f2(446, 466, 445); f2(421, 445, 444); f2(423, 445, 421); f2(444, 465, 464); f2(445, 465, 444); f2(421, 444, 443); f2(443, 444, 462); f2(444, 464, 462); f2(419, 443, 461); f2(420, 443, 419); f2(443, 462, 461); f2(442, 461, 344); f2(419, 461, 442); f2(441, 364, 350); f2(441, 350, 437); f2(437, 350, 349); f2(437, 349, 348); f2(440, 367, 458); f2(352, 440, 439); f2(440, 458, 439); f2(438, 437, 436); f2(437, 348, 436); f2(436, 348, 417); f2(433, 436, 413); f2(436, 417, 413); f2(413, 417, 384); f2(352, 439, 435); f2(435, 439, 455); f2(414, 435, 434); f2(435, 455, 453); f2(434, 435, 453); f2(432, 433, 431); f2(433, 413, 431); f2(431, 413, 411); f2(432, 431, 429); f2(429, 431, 411); f2(409, 434, 430); f2(434, 453, 430); f2(430, 453, 448); f2(409, 430, 427); f2(427, 430, 426); f2(430, 448, 426); f2(426, 448, 446); f2(429, 411, 428); f2(411, 383, 408); f2(428, 411, 408); f2(424, 428, 405); f2(428, 408, 405); f2(425, 426, 423); f2(427, 426, 425); f2(424, 405, 404); f2(479, 404, 390); f2(422, 423, 421); f2(425, 423, 422); f2(401, 422, 420); f2(422, 421, 420); f2(420, 421, 443); f2(401, 420, 400); f2(400, 420, 419); f2(418, 419, 442); f2(400, 419, 418); f2(417, 348, 386); f2(417, 386, 384); f2(358, 352, 416); f2(416, 352, 435); f2(358, 416, 415); f2(415, 416, 414); f2(416, 435, 414); f2(355, 415, 414); f2(413, 384, 412); f2(412, 384, 504); f2(413, 412, 411); f2(412, 504, 385); f2(411, 412, 383); f2(412, 385, 383); f2(355, 414, 410); f2(410, 414, 409); f2(414, 434, 409); f2(410, 409, 407); f2(407, 409, 427); f2(408, 383, 382); f2(405, 408, 379); f2(408, 382, 379); f2(397, 407, 406); f2(407, 427, 406); f2(397, 406, 395); f2(406, 427, 425); f2(395, 406, 403); f2(406, 425, 403); f2(405, 379, 380); f2(404, 405, 380); f2(404, 380, 390); f2(390, 380, 378); f2(395, 403, 393); f2(403, 425, 422); f2(393, 403, 401); f2(403, 422, 401); f2(393, 401, 402); f2(361, 402, 400); f2(402, 401, 400); f2(360, 400, 418); f2(361, 400, 360); f2(356, 355, 410); f2(376, 356, 374); f2(374, 356, 399); f2(399, 356, 410); f2(399, 410, 407); f2(374, 399, 398); f2(398, 399, 397); f2(399, 407, 397); f2(398, 397, 395); f2(398, 395, 396); f2(396, 395, 393); f2(396, 393, 394); f2(394, 393, 402); f2(334, 392, 506); f2(390, 378, 391); f2(370, 334, 323); f2(332, 334, 506); f2(351, 337, 336); f2(365, 337, 351); f2(367, 389, 491); f2(367, 354, 389); f2(360, 418, 377); f2(348, 335, 387); f2(335, 507, 387); f2(335, 301, 507); f2(388, 354, 353); f2(308, 388, 359); f2(359, 388, 353); f2(359, 353, 358); f2(348, 387, 386); f2(387, 507, 331); f2(386, 387, 330); f2(387, 331, 330); f2(386, 330, 384); f2(384, 330, 504); f2(383, 385, 503); f2(382, 383, 503); f2(382, 503, 505); f2(382, 505, 381); f2(379, 382, 381); f2(378, 329, 327); f2(378, 381, 329); f2(381, 328, 329); f2(380, 381, 378); f2(381, 505, 328); f2(380, 379, 381); f2(391, 378, 327); f2(318, 362, 496); f2(496, 377, 326); f2(362, 377, 496); f2(362, 360, 377); f2(492, 308, 359); f2(492, 359, 357); f2(307, 492, 357); f2(307, 357, 376); f2(311, 307, 376); f2(357, 356, 376); f2(311, 376, 375); f2(310, 311, 375); f2(375, 376, 374); f2(310, 375, 309); f2(309, 375, 314); f2(314, 375, 325); f2(325, 374, 398); f2(314, 325, 313); f2(313, 325, 373); f2(325, 398, 373); f2(313, 373, 312); f2(312, 373, 371); f2(371, 373, 372); f2(373, 398, 372); f2(372, 398, 396); f2(316, 324, 315); f2(324, 396, 394); f2(372, 396, 324); f2(371, 372, 324); f2(317, 371, 316); f2(316, 371, 324); f2(312, 371, 317); f2(315, 324, 320); f2(320, 363, 319); f2(320, 324, 363); f2(319, 363, 318); f2(324, 394, 363); f2(499, 370, 323); f2(322, 370, 499); f2(370, 368, 334); f2(322, 368, 370); f2(369, 368, 322); f2(366, 491, 306); f2(366, 306, 339); f2(367, 491, 366); f2(458, 367, 366); f2(365, 338, 337); f2(365, 351, 364); f2(339, 338, 365); f2(363, 402, 361); f2(394, 402, 363); f2(363, 361, 362); f2(363, 362, 318); f2(362, 361, 360); f2(357, 359, 415); f2(359, 358, 415); f2(357, 415, 356); f2(356, 415, 355); f2(440, 354, 367); f2(354, 440, 353); f2(353, 440, 352); f2(358, 353, 352); f2(364, 351, 350); f2(350, 351, 335); f2(351, 336, 335); f2(350, 335, 349); f2(349, 335, 348); f2(651, 340, 347); f2(347, 340, 424); f2(651, 347, 650); f2(347, 424, 404); f2(650, 347, 479); f2(347, 404, 479); f2(346, 646, 647); f2(345, 646, 346); f2(344, 345, 346); f2(345, 645, 646); f2(343, 467, 484); f2(484, 639, 640); f2(343, 484, 342); f2(342, 640, 641); f2(342, 484, 640); f2(463, 343, 342); f2(342, 641, 642); f2(341, 429, 428); f2(340, 341, 428); f2(340, 428, 424); f2(654, 341, 653); f2(653, 340, 652); f2(653, 341, 340); f2(652, 340, 651); f2(306, 305, 339); f2(305, 304, 339); f2(304, 489, 338); f2(339, 304, 338); f2(489, 303, 338); f2(337, 303, 302); f2(338, 303, 337); f2(337, 302, 336); f2(323, 334, 332); f2(375, 374, 325); f2(174, 177, 79); f2(79, 177, 77); f2(177, 232, 77); f2(170, 79, 84); f2(170, 173, 79); f2(173, 174, 79); f2(190, 170, 84); f2(84, 187, 190); f2(82, 187, 84); f2(186, 187, 82); f2(185, 82, 80); f2(82, 185, 186); f2(184, 185, 80); f2(80, 81, 184); f2(184, 81, 197); f2(81, 300, 197); f2(300, 148, 201); f2(148, 299, 201); f2(242, 201, 299); f2(147, 299, 148); f2(147, 76, 299); f2(243, 242, 299); f2(76, 243, 299); f2(191, 243, 76); f2(193, 191, 76); f2(194, 193, 3); f2(3, 193, 76); f2(169, 194, 3); f2(168, 169, 3); f2(298, 168, 3); f2(85, 298, 3); f2(167, 168, 298); f2(166, 167, 298); f2(4, 166, 298); f2(5, 298, 85); f2(5, 4, 298); f2(234, 4, 102); f2(234, 166, 4); f2(102, 232, 234); f2(102, 77, 232); f2(245, 220, 223); f2(244, 245, 223); f2(292, 244, 209); f2(222, 292, 209); f2(282, 292, 222); f2(282, 222, 224); f2(246, 282, 224); f2(247, 246, 224); f2(225, 247, 224); f2(285, 247, 225); f2(248, 285, 225); f2(227, 248, 225); f2(249, 248, 227); f2(249, 227, 228); f2(250, 249, 228); f2(250, 228, 226); f2(251, 250, 226); f2(229, 251, 226); f2(276, 251, 229); f2(289, 276, 229); f2(289, 229, 214); f2(214, 229, 213); f2(0xFF, 289, 214); f2(237, 0xFF, 214); f2(237, 214, 215); f2(231, 252, 237); f2(252, 0xFF, 237); f2(283, 252, 231); f2(283, 231, 230); f2(253, 283, 230); f2(254, 253, 230); f2(219, 254, 230); f2(220, 254, 219); f2(245, 254, 220); f2(211, 203, 200); f2(191, 192, 243); f2(192, 212, 243); f2(212, 211, 243); f2(243, 211, 242); f2(211, 200, 242); f2(242, 200, 201); f2(236, 238, 241); f2(241, 238, 195); f2(238, 210, 195); f2(241, 167, 166); f2(241, 195, 168); f2(167, 241, 168); f2(168, 195, 169); f2(221, 239, 176); f2(176, 239, 178); f2(172, 209, 176); f2(218, 236, 235); f2(233, 218, 235); f2(239, 233, 178); f2(240, 218, 233); f2(239, 240, 233); f2(221, 240, 239); f2(217, 216, 210); f2(238, 217, 210); f2(236, 218, 238); f2(218, 217, 238); f2(231, 237, 216); f2(216, 237, 215); f2(209, 221, 176); f2(209, 244, 221); f2(235, 236, 241); f2(235, 241, 234); f2(234, 241, 166); f2(233, 235, 232); f2(232, 235, 234); f2(178, 233, 232); f2(177, 178, 232); f2(223, 220, 221); f2(244, 223, 221); f2(227, 225, 204); f2(204, 225, 179); f2(228, 227, 204); f2(226, 228, 205); f2(225, 206, 179); f2(225, 224, 206); f2(224, 207, 206); f2(224, 222, 207); f2(222, 208, 207); f2(222, 209, 208); f2(221, 220, 240); f2(220, 219, 240); f2(240, 219, 218); f2(219, 230, 218); f2(218, 230, 217); f2(230, 231, 217); f2(231, 216, 217); f2(229, 226, 205); f2(229, 205, 213); f2(215, 214, 212); f2(214, 213, 212); f2(212, 213, 211); f2(213, 205, 203); f2(213, 203, 211); f2(215, 212, 192); f2(208, 209, 172); f2(208, 172, 189); f2(207, 208, 189); f2(207, 189, 181); f2(206, 207, 181); f2(179, 206, 181); f2(204, 179, 202); f2(200, 199, 300); f2(200, 300, 201); f2(203, 198, 199); f2(203, 199, 200); f2(199, 197, 300); f2(199, 196, 197); f2(198, 202, 196); f2(198, 196, 199); f2(196, 184, 197); f2(196, 182, 184); f2(202, 180, 182); f2(202, 182, 196); f2(179, 180, 202); f2(195, 210, 194); f2(169, 195, 194); f2(210, 192, 193); f2(194, 210, 193); f2(210, 216, 192); f2(216, 215, 192); f2(193, 192, 191); f2(171, 170, 190); f2(189, 172, 188); f2(172, 171, 188); f2(188, 171, 187); f2(171, 190, 187); f2(183, 188, 186); f2(188, 187, 186); f2(183, 186, 185); f2(182, 183, 185); f2(182, 185, 184); f2(181, 189, 188); f2(181, 188, 183); f2(180, 181, 183); f2(180, 183, 182); f2(179, 181, 180); f2(175, 176, 178); f2(175, 178, 174); f2(174, 178, 177); f2(173, 175, 174); f2(172, 176, 171); f2(171, 176, 175); f2(170, 175, 173); f2(171, 175, 170); f2(0x0100, 228, 204); f2(228, 0x0100, 205); f2(265, 262, 269); f2(262, 280, 287); f2(287, 280, 294); f2(287, 294, 286); f2(286, 294, 247); f2(285, 286, 247); f2(293, 289, 0xFF); f2(265, 269, 293); f2(265, 293, 0xFF); f2(252, 265, 0xFF); f2(295, 274, 275); f2(295, 273, 274); f2(295, 0x0101, 273); f2(278, 295, 275); f2(272, 295, 278); f2(271, 295, 272); f2(0x0101, 295, 271); f2(276, 290, 277); f2(277, 290, 259); f2(290, 258, 259); f2(290, 260, 258); f2(260, 290, 291); f2(258, 268, 259); f2(268, 249, 250); f2(259, 268, 250); f2(273, 0x0101, 267); f2(267, 264, 266); f2(267, 0x0101, 270); f2(264, 270, 263); f2(267, 270, 264); f2(261, 279, 254); f2(245, 261, 254); f2(292, 275, 261); f2(278, 275, 292); f2(282, 278, 292); f2(244, 261, 245); f2(292, 261, 244); f2(277, 250, 251); f2(277, 259, 250); f2(276, 277, 251); f2(289, 290, 276); f2(288, 291, 269); f2(288, 260, 291); f2(269, 291, 290); f2(262, 288, 269); f2(269, 290, 293); f2(290, 289, 293); f2(260, 288, 287); f2(288, 262, 287); f2(258, 287, 286); f2(260, 287, 258); f2(258, 286, 285); f2(258, 248, 268); f2(258, 285, 248); f2(268, 248, 249); f2(275, 274, 284); f2(275, 284, 279); f2(279, 284, 253); f2(279, 253, 254); f2(261, 275, 279); f2(274, 252, 283); f2(274, 283, 284); f2(284, 283, 253); f2(266, 264, 262); f2(266, 262, 265); f2(273, 267, 266); f2(274, 266, 252); f2(274, 273, 266); f2(252, 266, 265); f2(281, 271, 246); f2(271, 272, 246); f2(246, 272, 282); f2(272, 278, 282); f2(281, 246, 247); f2(270, 271, 281); f2(263, 270, 281); f2(262, 263, 280); f2(264, 263, 262); f2(280, 281, 294); f2(263, 281, 280); f2(294, 281, 247); f2(0x0101, 271, 270); f2(0x0100, 204, 296); f2(296, 205, 0x0100); f2(296, 204, 297); f2(297, 205, 296); f2(203, 205, 297); f2(198, 203, 297); f2(297, 202, 198); f2(202, 297, 204); f2(1354, 1365, 100); f2(164, 100, 78); f2(164, 78, 77); f2(78, 79, 77); f2(164, 77, 163); f2(163, 77, 102); f2(162, 163, 102); f2(162, 102, 4); f2(5, 162, 4); f2(5, 161, 162); f2(161, 101, 99); f2(158, 1355, 160); f2(1355, 159, 160); f2(160, 159, 165); f2(159, 1355, 1366); f2(158, 1417, 1355); f2(7, 6, 156); f2(6, 157, 156); f2(149, 496, 151); f2(155, 42, 153); f2(114, 42, 155); f2(114, 113, 42); f2(154, 155, 153); f2(153, 149, 2); f2(153, 42, 149); f2(152, 150, 666); f2(152, 499, 150); f2(3, 76, 85); f2(147, 72, 94); f2(85, 147, 94); f2(147, 148, 72); f2(85, 76, 147); f2(13, 12, 21); f2(50, 15, 52); f2(146, 9, 10); f2(146, 10, 118); f2(145, 138, 144); f2(142, 145, 144); f2(142, 144, 143); f2(141, 143, 144); f2(140, 141, 144); f2(139, 140, 144); f2(138, 139, 144); f2(136, 130, 133); f2(137, 136, 133); f2(135, 137, 133); f2(134, 135, 133); f2(131, 134, 133); f2(133, 132, 131); f2(130, 132, 133); f2(128, 122, 129); f2(129, 127, 128); f2(126, 127, 129); f2(126, 129, 125); f2(125, 129, 124); f2(129, 123, 124); f2(129, 122, 123); f2(120, 29, 121); f2(27, 121, 29); f2(27, 35, 121); f2(29, 120, 31); f2(28, 31, 30); f2(119, 32, 1367); f2(119, 28, 30); f2(119, 30, 32); f2(1367, 32, 1368); f2(120, 1370, 1369); f2(120, 89, 1370); f2(38, 36, 14); f2(44, 14, 13); f2(150, 118, 666); f2(503, 41, 117); f2(45, 115, 37); f2(45, 116, 115); f2(45, 1361, 1360); f2(45, 1360, 116); f2(37, 115, 36); f2(66, 114, 155); f2(112, 111, 113); f2(112, 113, 114); f2(112, 58, 111); f2(111, 108, 110); f2(59, 111, 58); f2(59, 108, 111); f2(104, 109, 60); f2(60, 109, 53); f2(60, 53, 108); f2(107, 51, 109); f2(107, 57, 51); f2(107, 109, 104); f2(55, 105, 49); f2(55, 49, 57); f2(54, 0, 106); f2(105, 106, 49); f2(105, 54, 106); f2(0, 1364, 106); f2(103, 104, 67); f2(67, 104, 60); f2(103, 107, 104); f2(70, 107, 103); f2(78, 84, 79); f2(5, 85, 161); f2(1365, 83, 100); f2(78, 100, 84); f2(91, 96, 90); f2(89, 91, 90); f2(90, 96, 98); f2(90, 98, 97); f2(99, 101, 34); f2(97, 75, 1371); f2(1375, 97, 1371); f2(96, 74, 98); f2(98, 74, 75); f2(97, 98, 75); f2(95, 68, 73); f2(96, 73, 74); f2(91, 73, 96); f2(94, 67, 95); f2(94, 72, 67); f2(93, 0, 92); f2(92, 0, 54); f2(80, 92, 54); f2(1, 93, 92); f2(86, 94, 95); f2(34, 86, 95); f2(95, 91, 87); f2(95, 73, 91); f2(88, 90, 97); f2(1375, 88, 97); f2(33, 91, 89); f2(89, 90, 88); f2(34, 95, 87); f2(33, 87, 91); f2(161, 86, 101); f2(86, 85, 94); f2(101, 86, 34); f2(161, 85, 86); f2(83, 82, 84); f2(100, 83, 84); f2(82, 83, 1); f2(1, 92, 82); f2(82, 92, 80); f2(80, 54, 81); f2(300, 71, 148); f2(300, 81, 71); f2(1371, 75, 1372); f2(74, 63, 65); f2(75, 74, 65); f2(68, 61, 73); f2(73, 61, 74); f2(74, 61, 63); f2(95, 67, 68); f2(148, 70, 72); f2(72, 70, 103); f2(72, 103, 67); f2(71, 56, 69); f2(148, 71, 69); f2(148, 69, 70); f2(71, 81, 56); f2(81, 54, 56); f2(56, 55, 69); f2(68, 59, 61); f2(61, 58, 63); f2(65, 63, 62); f2(75, 65, 64); f2(1372, 75, 64); f2(1372, 64, 1373); f2(65, 62, 66); f2(62, 114, 66); f2(65, 66, 64); f2(58, 112, 63); f2(62, 63, 112); f2(62, 112, 114); f2(61, 59, 58); f2(67, 60, 59); f2(68, 67, 59); f2(60, 108, 59); f2(70, 55, 57); f2(70, 57, 107); f2(69, 55, 70); f2(56, 105, 55); f2(56, 54, 105); f2(108, 53, 110); f2(110, 53, 18); f2(53, 17, 18); f2(109, 52, 53); f2(53, 52, 17); f2(109, 50, 52); f2(51, 26, 109); f2(57, 48, 51); f2(26, 50, 109); f2(57, 49, 48); f2(106, 1364, 1363); f2(106, 1363, 47); f2(49, 106, 47); f2(49, 47, 46); f2(49, 46, 48); f2(48, 46, 38); f2(48, 38, 25); f2(38, 44, 25); f2(47, 1363, 1362); f2(1362, 1361, 45); f2(46, 45, 37); f2(47, 45, 46); f2(47, 1362, 45); f2(46, 37, 38); f2(25, 44, 22); f2(113, 111, 43); f2(113, 43, 42); f2(111, 110, 43); f2(110, 18, 43); f2(9, 39, 40); f2(117, 39, 9); f2(38, 14, 44); f2(22, 44, 13); f2(38, 37, 36); f2(99, 35, 27); f2(99, 34, 35); f2(34, 87, 35); f2(35, 87, 33); f2(121, 33, 89); f2(121, 89, 120); f2(35, 33, 121); f2(7, 27, 29); f2(28, 29, 31); f2(7, 29, 28); f2(26, 22, 50); f2(26, 25, 22); f2(51, 25, 26); f2(51, 48, 25); f2(50, 22, 15); f2(22, 24, 15); f2(15, 24, 23); f2(22, 13, 24); f2(24, 13, 21); f2(43, 18, 19); f2(43, 19, 42); f2(52, 15, 16); f2(36, 115, 14); f2(14, 12, 13); f2(9, 503, 117); f2(1378, 119, 1367); f2(119, 6, 28); f2(6, 7, 28); f2(1373, 155, 1374); f2(1373, 66, 155); f2(64, 66, 1373); f2(1374, 155, 154); f2(665, 153, 2); f2(154, 153, 665); f2(116, 1360, 1359); f2(164, 1354, 100); f2(1374, 665, 1356); f2(1374, 154, 665); f2(1357, 1345, 1348); f2(1357, 1358, 1345); f2(1358, 1344, 1345); f2(1358, 1359, 1344); f2(1344, 1359, 1350); f2(1359, 795, 1349); f2(1350, 1359, 1349); f2(1349, 795, 1343); f2(795, 794, 1343); f2(1343, 794, 1342); f2(794, 696, 1342); f2(1342, 696, 1341); f2(696, 694, 1341); f2(1341, 694, 1351); f2(694, 703, 1351); f2(1351, 703, 1337); f2(703, 702, 1337); f2(702, 690, 1337); f2(1337, 690, 1338); f2(690, 693, 1338); f2(1338, 693, 1339); f2(693, 721, 1339); f2(1339, 721, 1340); f2(1346, 721, 1352); f2(721, 1346, 1340); f2(1347, 1340, 1346); f2(721, 796, 1352); f2(1346, 1352, 1353); f2(796, 1434, 1352); f2(1352, 1434, 1432); f2(720, 1433, 1434); f2(691, 692, 720); f2(1330, 1433, 720); f2(1330, 720, 692); f2(1330, 692, 1331); f2(797, 1331, 692); f2(1336, 1331, 797); f2(830, 1334, 1336); f2(829, 1334, 830); f2(1333, 1334, 829); f2(827, 1333, 829); f2(686, 1333, 827); f2(1332, 1333, 686); f2(1335, 1332, 686); f2(1258, 1149, 1320); f2(1004, 1149, 1258); f2(1319, 1004, 1258); f2(1152, 1004, 1319); f2(1151, 1152, 1319); f2(1289, 1268, 1244); f2(1272, 1289, 1249); f2(1289, 1244, 1249); f2(1272, 1249, 1308); f2(1272, 1308, 1264); f2(1264, 1308, 1248); f2(1249, 1251, 1308); f2(1251, 1188, 1308); f2(1248, 1308, 1187); f2(1188, 1187, 1308); f2(1306, 1307, 1186); f2(1263, 1307, 1306); f2(1248, 1186, 1307); f2(1263, 1248, 1307); f2(1264, 1248, 1271); f2(1271, 1248, 1263); f2(1270, 1263, 1306); f2(1270, 1306, 1247); f2(1305, 1270, 1247); f2(1305, 1247, 1262); f2(1247, 1246, 1262); f2(1262, 1246, 1261); f2(1261, 1246, 1304); f2(1246, 1245, 1304); f2(1303, 1304, 1245); f2(1269, 1303, 1245); f2(1269, 1245, 1243); f2(1260, 1269, 1243); f2(1259, 1260, 1243); f2(1259, 1243, 1244); f2(1268, 1259, 1244); f2(1300, 1305, 1301); f2(1321, 1302, 1297); f2(1322, 1302, 1321); f2(1297, 1302, 1296); f2(1296, 1302, 1301); f2(1302, 1300, 1301); f2(1322, 1298, 1302); f2(1323, 1298, 1322); f2(1324, 1298, 1323); f2(1324, 1325, 1298); f2(1325, 1277, 1298); f2(1277, 1273, 1298); f2(1300, 1270, 1305); f2(1299, 1270, 1300); f2(1298, 1299, 1300); f2(1273, 1299, 1298); f2(1298, 1300, 1302); f2(1321, 1297, 1320); f2(1295, 1296, 1261); f2(1295, 1261, 1304); f2(1320, 1296, 1295); f2(1297, 1296, 1320); f2(1269, 1293, 1267); f2(1291, 1316, 1294); f2(1316, 1317, 1294); f2(1294, 1317, 1318); f2(1294, 1318, 1266); f2(1291, 1294, 1290); f2(1290, 1294, 1293); f2(1294, 1266, 1267); f2(1293, 1294, 1267); f2(1268, 1292, 1290); f2(1287, 1314, 1315); f2(1287, 1315, 1288); f2(1288, 1315, 1316); f2(1291, 1288, 1316); f2(0x0505, 1288, 1292); f2(1288, 1291, 1290); f2(1292, 1288, 1290); f2(1268, 0x0505, 1292); f2(1289, 0x0505, 1268); f2(1289, 1286, 0x0505); f2(1284, 1314, 1287); f2(1284, 1313, 1314); f2(1284, 1287, 1286); f2(1286, 1287, 0x0505); f2(0x0505, 1287, 1288); f2(1272, 1282, 1286); f2(1272, 1286, 1289); f2(1278, 1282, 1272); f2(1281, 1311, 1283); f2(1310, 1311, 1281); f2(1281, 1283, 1279); f2(1311, 1312, 1283); f2(1283, 1313, 1284); f2(1312, 1313, 1283); f2(1279, 1283, 1278); f2(1278, 1283, 1282); f2(1283, 1284, 1282); f2(1282, 1284, 1286); f2(1275, 0x0500, 1271); f2(1329, 1281, 1328); f2(1328, 1281, 1276); f2(1329, 1309, 1281); f2(1281, 1279, 1276); f2(1309, 1310, 1281); f2(1276, 0x0500, 1275); f2(1279, 1278, 1276); f2(1276, 1278, 0x0500); f2(1325, 1326, 1277); f2(1327, 1328, 1277); f2(1326, 1327, 1277); f2(1328, 1276, 1277); f2(1275, 1271, 1274); f2(1299, 1274, 1270); f2(1277, 1276, 1275); f2(1277, 1275, 1274); f2(1273, 1274, 1299); f2(1277, 1274, 1273); f2(1264, 1278, 1272); f2(1278, 1264, 0x0500); f2(0x0500, 1264, 1271); f2(1271, 1263, 1274); f2(1274, 1263, 1270); f2(1301, 1262, 1296); f2(1301, 1305, 1262); f2(1296, 1262, 1261); f2(1269, 1267, 1303); f2(1260, 1293, 1269); f2(1260, 1290, 1293); f2(1259, 1268, 1290); f2(1259, 1290, 1260); f2(1267, 1265, 1303); f2(1303, 1265, 1304); f2(1265, 1295, 1304); f2(1258, 1320, 1295); f2(1258, 1295, 1265); f2(1266, 1318, 1319); f2(1267, 1266, 1265); f2(1266, 1319, 1265); f2(1319, 1258, 1265); f2(1201, 1252, 1204); f2(1252, 1201, 1207); f2(1255, 1256, 1206); f2(1254, 1256, 1255); f2(1224, 1252, 1207); f2(1224, 1207, 1194); f2(1257, 1197, 1206); f2(1206, 1256, 1257); f2(1223, 1197, 1257); f2(1228, 1223, 1257); f2(1256, 1228, 1257); f2(1227, 1228, 1256); f2(1254, 1227, 1256); f2(1206, 1202, 1255); f2(1202, 1204, 1255); f2(1204, 1254, 1255); f2(1204, 1253, 1254); f2(1227, 1254, 1225); f2(1253, 1225, 1254); f2(1204, 1252, 1253); f2(1252, 1226, 1253); f2(1226, 1225, 1253); f2(1226, 1252, 1224); f2(1222, 1224, 1194); f2(1192, 1189, 1191); f2(1200, 1203, 1202); f2(1201, 1202, 1203); f2(1199, 1201, 1203); f2(1198, 1201, 1199); f2(1195, 1201, 1198); f2(1201, 1204, 1202); f2(1205, 1206, 1196); f2(1200, 1202, 1205); f2(1202, 1206, 1205); f2(1195, 1207, 1201); f2(1195, 1193, 1207); f2(1206, 1197, 1196); f2(1193, 1194, 1207); f2(1212, 1213, 1210); f2(1209, 1211, 1208); f2(1213, 1242, 1210); f2(1242, 1229, 1210); f2(1234, 1239, 1210); f2(1210, 1239, 1212); f2(1210, 1229, 1234); f2(1230, 1234, 1229); f2(1234, 1230, 1235); f2(1231, 1235, 1230); f2(1235, 1231, 1236); f2(1232, 1236, 1231); f2(1236, 1232, 1237); f2(1233, 1237, 1232); f2(1237, 1233, 1238); f2(1241, 1209, 1233); f2(1209, 1241, 1211); f2(1238, 1233, 1209); f2(1209, 1208, 1238); f2(1240, 1238, 1208); f2(1216, 1217, 1191); f2(1217, 1192, 1191); f2(1184, 1185, 1306); f2(1306, 1185, 1247); f2(1185, 1214, 1247); f2(1214, 1246, 1247); f2(1246, 1214, 1192); f2(1189, 1192, 1214); f2(1246, 1192, 1245); f2(1192, 1217, 1245); f2(1219, 1245, 1217); f2(1243, 1245, 1219); f2(1218, 1243, 1219); f2(1244, 1243, 1218); f2(1220, 1244, 1218); f2(1221, 1244, 1220); f2(1244, 1221, 1250); f2(1221, 1215, 1250); f2(1250, 1215, 1190); f2(1250, 1190, 1188); f2(1188, 1251, 1250); f2(1249, 1244, 1251); f2(1251, 1244, 1250); f2(1306, 1186, 1184); f2(1248, 1187, 1186); f2(1062, 1177, 1171); f2(1062, 1063, 1177); f2(1061, 1063, 1062); f2(1181, 997, 992); f2(1048, 997, 1181); f2(1089, 1048, 1181); f2(1113, 1089, 1181); f2(1113, 1181, 1183); f2(1015, 1113, 1183); f2(1015, 1183, 1182); f2(1017, 1015, 1182); f2(1017, 1182, 1040); f2(993, 1040, 1182); f2(992, 993, 1182); f2(1182, 1183, 992); f2(1181, 992, 1183); f2(1160, 974, 1180); f2(1180, 703, 1160); f2(1180, 702, 703); f2(973, 1180, 974); f2(973, 1159, 1180); f2(1159, 702, 1180); f2(1158, 702, 1159); f2(702, 1157, 690); f2(1157, 702, 1158); f2(690, 1157, 972); f2(1178, 690, 972); f2(1179, 690, 1178); f2(1002, 1179, 1178); f2(1002, 1001, 1179); f2(693, 690, 1179); f2(1173, 693, 1179); f2(1001, 1175, 1173); f2(1001, 1173, 1179); f2(721, 693, 1173); f2(1174, 721, 1173); f2(1056, 1174, 1173); f2(1175, 1056, 1173); f2(1174, 1176, 1172); f2(1176, 999, 1172); f2(691, 1174, 1172); f2(824, 691, 1172); f2(999, 824, 1172); f2(1000, 824, 999); f2(1000, 998, 824); f2(1171, 824, 998); f2(998, 1062, 1171); f2(824, 1171, 797); f2(828, 797, 1171); f2(1177, 828, 1171); f2(1177, 1003, 828); f2(1003, 994, 828); f2(994, 1170, 828); f2(992, 1168, 993); f2(992, 997, 1168); f2(993, 1168, 1169); f2(1170, 1169, 830); f2(993, 1169, 1170); f2(829, 830, 1169); f2(1168, 829, 1169); f2(1167, 829, 1168); f2(997, 1167, 1168); f2(1167, 1166, 827); f2(989, 1166, 1167); f2(722, 827, 1166); f2(989, 990, 1166); f2(990, 1165, 1166); f2(1165, 722, 1166); f2(991, 1165, 990); f2(991, 986, 1165); f2(701, 722, 1165); f2(987, 701, 1165); f2(986, 987, 1165); f2(988, 701, 987); f2(983, 701, 988); f2(984, 700, 701); f2(984, 701, 983); f2(985, 700, 984); f2(980, 700, 985); f2(1164, 700, 980); f2(981, 1164, 980); f2(982, 1164, 981); f2(978, 1164, 982); f2(698, 1164, 978); f2(699, 700, 1164); f2(732, 699, 1164); f2(698, 732, 1164); f2(698, 978, 1163); f2(698, 1163, 979); f2(697, 698, 979); f2(697, 979, 1059); f2(697, 1059, 1025); f2(697, 1025, 1060); f2(705, 697, 1060); f2(705, 1060, 1162); f2(705, 1162, 977); f2(976, 705, 977); f2(1161, 705, 976); f2(706, 705, 1161); f2(703, 706, 1161); f2(703, 1161, 1160); f2(1161, 975, 1160); f2(976, 975, 1161); f2(1159, 1007, 1158); f2(1159, 973, 1007); f2(1157, 1006, 972); f2(1157, 1007, 1006); f2(1158, 1007, 1157); f2(1120, 1326, 1012); f2(1100, 1120, 1012); f2(1012, 1326, 1325); f2(1141, 1156, 1326); f2(1120, 1141, 1326); f2(1156, 1328, 1327); f2(1326, 1156, 1327); f2(1156, 1329, 1328); f2(1141, 1155, 1156); f2(1156, 1309, 1329); f2(1156, 1155, 1309); f2(1141, 1138, 1155); f2(1155, 1310, 1309); f2(1313, 1154, 1314); f2(1313, 1013, 1154); f2(1314, 1154, 1153); f2(1314, 1153, 1315); f2(1013, 1134, 1154); f2(1315, 1153, 1016); f2(1315, 1016, 1316); f2(1153, 1133, 1016); f2(1152, 1040, 1039); f2(1004, 1152, 1039); f2(1151, 1017, 1040); f2(1151, 1040, 1152); f2(1318, 1017, 1151); f2(1318, 1151, 1319); f2(1321, 1320, 1150); f2(1150, 1320, 1149); f2(1004, 1039, 1149); f2(1061, 1150, 1149); f2(1061, 1149, 1063); f2(1149, 1005, 1063); f2(1149, 1039, 1005); f2(1010, 1148, 1131); f2(1010, 1130, 1148); f2(1131, 1148, 1147); f2(1131, 1147, 1112); f2(1112, 1147, 1144); f2(1112, 1144, 1109); f2(1148, 1130, 1146); f2(1148, 1146, 1147); f2(1146, 1145, 1147); f2(1146, 1125, 1145); f2(1147, 1145, 1144); f2(1144, 1143, 1128); f2(1109, 1144, 1128); f2(1143, 1139, 1122); f2(1128, 1143, 1122); f2(1145, 1125, 1142); f2(1145, 1142, 1143); f2(1144, 1145, 1143); f2(1125, 1123, 1142); f2(1142, 1123, 1140); f2(1142, 1140, 1139); f2(1143, 1142, 1139); f2(1122, 1139, 1138); f2(1122, 1138, 1141); f2(1121, 1122, 1141); f2(1140, 1118, 1139); f2(1139, 1118, 1138); f2(1118, 1137, 1138); f2(1138, 1137, 1014); f2(1137, 1136, 1014); f2(1014, 1136, 1134); f2(1134, 1136, 1135); f2(1134, 1135, 1154); f2(1154, 1135, 1133); f2(1154, 1133, 1153); f2(1133, 1132, 1016); f2(1132, 1015, 1016); f2(1010, 1131, 1036); f2(1036, 1131, 1035); f2(1037, 1130, 1010); f2(1037, 1129, 1130); f2(1035, 1131, 1112); f2(1108, 1112, 1109); f2(1130, 1129, 1146); f2(1129, 1110, 1146); f2(1146, 1110, 1126); f2(1146, 1126, 1125); f2(1109, 1128, 1127); f2(1109, 1127, 1107); f2(1127, 1128, 1122); f2(1127, 1122, 1104); f2(1107, 1127, 1104); f2(1126, 1124, 1123); f2(1125, 1126, 1123); f2(1104, 1122, 1121); f2(1104, 1121, 1103); f2(1121, 1141, 1120); f2(1103, 1121, 1120); f2(1103, 1120, 1100); f2(1123, 1124, 1119); f2(1123, 1119, 1118); f2(1140, 1123, 1118); f2(1118, 1119, 1117); f2(1118, 1117, 1137); f2(1117, 1094, 1116); f2(1117, 1097, 1094); f2(1137, 1116, 1136); f2(1137, 1117, 1116); f2(1116, 1092, 1115); f2(1116, 1094, 1092); f2(1136, 1115, 1135); f2(1136, 1116, 1115); f2(1115, 1092, 1114); f2(1115, 1114, 1133); f2(1135, 1115, 1133); f2(1114, 1090, 1132); f2(1114, 1091, 1090); f2(1133, 1114, 1132); f2(1132, 1113, 1015); f2(1132, 1090, 1113); f2(1035, 1112, 1021); f2(1021, 1112, 1108); f2(1021, 1108, 1020); f2(1020, 1108, 1019); f2(1038, 1111, 1129); f2(1111, 1023, 1110); f2(1129, 1111, 1110); f2(1108, 1109, 1107); f2(1019, 1108, 1107); f2(1019, 1107, 1088); f2(1107, 1104, 1084); f2(1088, 1107, 1084); f2(1088, 1084, 1055); f2(1110, 1023, 1106); f2(1110, 1106, 1126); f2(1106, 1085, 1105); f2(1126, 1106, 1124); f2(1106, 1105, 1124); f2(1104, 1103, 1102); f2(1084, 1104, 1102); f2(1084, 1102, 1082); f2(1102, 1103, 1100); f2(1102, 1100, 1082); f2(1105, 1080, 1101); f2(1124, 1105, 1101); f2(1124, 1101, 1119); f2(1101, 1080, 1098); f2(1101, 1098, 1097); f2(1119, 1101, 1097); f2(1119, 1097, 1117); f2(1082, 1100, 1099); f2(1054, 1082, 1079); f2(1082, 1099, 1079); f2(1099, 1095, 1076); f2(1079, 1099, 1076); f2(1097, 1096, 1094); f2(1097, 1098, 1096); f2(1076, 1095, 1075); f2(1075, 1150, 1061); f2(1094, 1093, 1092); f2(1094, 1096, 1093); f2(1093, 1072, 1091); f2(1092, 1093, 1091); f2(1092, 1091, 1114); f2(1091, 1072, 1071); f2(1091, 1071, 1090); f2(1090, 1089, 1113); f2(1090, 1071, 1089); f2(1019, 1088, 1057); f2(1057, 1088, 1055); f2(1023, 1029, 1087); f2(1023, 1087, 1106); f2(1087, 1029, 1086); f2(1087, 1086, 1085); f2(1106, 1087, 1085); f2(1086, 1026, 1085); f2(1055, 1084, 1083); f2(1055, 1083, 1175); f2(1083, 1084, 1082); f2(1175, 1083, 1056); f2(1083, 1082, 1054); f2(1056, 1083, 1054); f2(1085, 1026, 1081); f2(1085, 1081, 1080); f2(1105, 1085, 1080); f2(1080, 1081, 1078); f2(1080, 1078, 1098); f2(1054, 1079, 1053); f2(1079, 1076, 1050); f2(1053, 1079, 1050); f2(1078, 1068, 1077); f2(1098, 1078, 1077); f2(1077, 1068, 1066); f2(1098, 1077, 1096); f2(1077, 1066, 1074); f2(1096, 1077, 1074); f2(1050, 1076, 1051); f2(1076, 1075, 1051); f2(1051, 1075, 1061); f2(1051, 1061, 1049); f2(1074, 1066, 1064); f2(1096, 1074, 1093); f2(1074, 1064, 1072); f2(1093, 1074, 1072); f2(1072, 1064, 1073); f2(1073, 1032, 1071); f2(1072, 1073, 1071); f2(1071, 1031, 1089); f2(1071, 1032, 1031); f2(1026, 1027, 1081); f2(1027, 1047, 1045); f2(1027, 1045, 1070); f2(1027, 1070, 1081); f2(1081, 1070, 1078); f2(1070, 1045, 1069); f2(1070, 1069, 1068); f2(1078, 1070, 1068); f2(1068, 1069, 1066); f2(1066, 1069, 1067); f2(1066, 1067, 1064); f2(1064, 1067, 1065); f2(1064, 1065, 1073); f2(1063, 1005, 1177); f2(1049, 1061, 1062); f2(1005, 1041, 994); f2(1005, 1003, 1177); f2(1008, 1022, 1007); f2(1008, 1036, 1022); f2(1060, 1038, 1162); f2(1025, 1038, 1060); f2(1089, 1031, 1048); f2(1006, 1019, 1058); f2(1178, 1006, 1058); f2(972, 1006, 1178); f2(1025, 1059, 0x0400); f2(1059, 979, 1030); f2(1059, 1030, 0x0400); f2(0x0400, 1030, 1029); f2(1058, 1019, 1057); f2(1178, 1058, 1002); f2(1058, 1057, 1001); f2(1002, 1058, 1001); f2(1001, 1057, 1055); f2(1001, 1055, 1175); f2(1056, 1054, 1174); f2(1054, 1053, 1174); f2(1174, 1053, 1176); f2(1176, 1053, 1052); f2(1053, 1050, 1052); f2(1000, 1049, 998); f2(1052, 1049, 1000); f2(999, 1052, 1000); f2(1052, 1051, 1049); f2(1176, 1052, 999); f2(1050, 1051, 1052); f2(1049, 1062, 998); f2(1033, 989, 1167); f2(1048, 1167, 997); f2(1048, 1033, 1167); f2(1031, 1033, 1048); f2(979, 1163, 1030); f2(1030, 1163, 0x0404); f2(1163, 978, 0x0404); f2(0x0404, 978, 1047); f2(978, 982, 1047); f2(1027, 0x0404, 1047); f2(1047, 982, 1046); f2(982, 981, 1046); f2(1047, 1046, 1045); f2(1046, 981, 980); f2(1046, 980, 985); f2(1046, 985, 996); f2(1045, 996, 1069); f2(996, 985, 984); f2(996, 984, 1044); f2(1069, 996, 1044); f2(1044, 984, 983); f2(1044, 983, 1042); f2(1044, 1042, 1043); f2(1069, 1044, 1043); f2(1069, 1043, 1067); f2(995, 987, 986); f2(1067, 995, 1065); f2(1067, 1043, 995); f2(1043, 1042, 995); f2(1042, 988, 987); f2(1042, 987, 995); f2(1042, 983, 988); f2(995, 986, 991); f2(1034, 991, 990); f2(995, 991, 1034); f2(1034, 990, 989); f2(1065, 995, 1034); f2(1041, 1170, 994); f2(1041, 993, 1170); f2(1039, 1041, 1005); f2(1039, 993, 1041); f2(1039, 1040, 993); f2(1162, 1037, 977); f2(977, 1037, 1010); f2(1162, 1038, 1037); f2(1038, 1129, 1037); f2(1009, 1036, 1008); f2(1022, 1036, 1035); f2(1009, 1010, 1036); f2(1073, 1034, 1032); f2(1073, 1065, 1034); f2(1032, 1034, 1033); f2(1033, 1034, 989); f2(1032, 1033, 1031); f2(1030, 0x0404, 1086); f2(1029, 1030, 1086); f2(1086, 0x0404, 1027); f2(1086, 1027, 1026); f2(1025, 1111, 1038); f2(1111, 1025, 0x0400); f2(1111, 0x0400, 1023); f2(0x0400, 1029, 1023); f2(1022, 1035, 1021); f2(1022, 1021, 1006); f2(1007, 1022, 1006); f2(1006, 1021, 1020); f2(1006, 1020, 1019); f2(1011, 1322, 1018); f2(1011, 1018, 1095); f2(1018, 1322, 1321); f2(1095, 1018, 1075); f2(1018, 1321, 1150); f2(1075, 1018, 1150); f2(1317, 1017, 1318); f2(1317, 1016, 1017); f2(1016, 1015, 1017); f2(1316, 1016, 1317); f2(1138, 1014, 1155); f2(1310, 1155, 1311); f2(1155, 1014, 1013); f2(1311, 1013, 1312); f2(1155, 1013, 1311); f2(1014, 1134, 1013); f2(1312, 1013, 1313); f2(1100, 1012, 1099); f2(1012, 1011, 1099); f2(1099, 1011, 1095); f2(1012, 1325, 1324); f2(1011, 1324, 1323); f2(1012, 1324, 1011); f2(1011, 1323, 1322); f2(976, 977, 1010); f2(975, 976, 1010); f2(1160, 975, 1009); f2(975, 1010, 1009); f2(974, 1160, 1009); f2(974, 1008, 973); f2(974, 1009, 1008); f2(973, 1008, 1007); f2(1005, 994, 1003); f2(1045, 1046, 996); f2(848, 845, 759); f2(848, 759, 757); f2(903, 848, 757); f2(759, 841, 764); f2(844, 841, 759); f2(845, 844, 759); f2(841, 861, 764); f2(858, 764, 861); f2(858, 762, 764); f2(858, 857, 762); f2(762, 856, 760); f2(856, 762, 857); f2(856, 855, 760); f2(761, 760, 855); f2(761, 855, 868); f2(971, 761, 868); f2(826, 971, 872); f2(970, 826, 872); f2(872, 913, 970); f2(970, 825, 826); f2(756, 825, 970); f2(913, 914, 970); f2(914, 756, 970); f2(914, 862, 756); f2(862, 864, 756); f2(864, 865, 687); f2(864, 687, 756); f2(865, 840, 687); f2(840, 839, 687); f2(839, 969, 687); f2(969, 765, 687); f2(839, 838, 969); f2(838, 837, 969); f2(837, 688, 969); f2(969, 689, 765); f2(688, 689, 969); f2(688, 905, 781); f2(837, 905, 688); f2(903, 781, 905); f2(757, 781, 903); f2(891, 916, 894); f2(916, 915, 894); f2(915, 963, 880); f2(963, 893, 880); f2(963, 953, 893); f2(893, 953, 895); f2(953, 917, 895); f2(917, 918, 895); f2(918, 896, 895); f2(918, 956, 896); f2(956, 919, 896); f2(919, 898, 896); f2(919, 920, 898); f2(898, 920, 899); f2(920, 921, 899); f2(899, 921, 897); f2(921, 922, 897); f2(922, 900, 897); f2(922, 947, 900); f2(947, 960, 900); f2(900, 960, 885); f2(900, 885, 884); f2(960, 926, 885); f2(926, 908, 885); f2(885, 908, 886); f2(923, 902, 908); f2(926, 923, 908); f2(923, 954, 902); f2(902, 954, 901); f2(954, 924, 901); f2(924, 925, 901); f2(925, 890, 901); f2(925, 891, 890); f2(925, 916, 891); f2(874, 882, 871); f2(863, 862, 914); f2(883, 863, 914); f2(882, 883, 914); f2(882, 914, 913); f2(871, 882, 913); f2(871, 913, 872); f2(909, 907, 912); f2(909, 912, 866); f2(881, 909, 866); f2(838, 912, 837); f2(866, 912, 839); f2(912, 838, 839); f2(866, 839, 840); f2(910, 892, 847); f2(910, 847, 849); f2(880, 843, 847); f2(907, 889, 906); f2(889, 904, 906); f2(904, 910, 849); f2(889, 911, 904); f2(911, 910, 904); f2(911, 892, 910); f2(887, 888, 881); f2(888, 909, 881); f2(889, 907, 909); f2(888, 889, 909); f2(908, 902, 887); f2(908, 887, 886); f2(892, 880, 847); f2(915, 880, 892); f2(907, 906, 912); f2(912, 906, 905); f2(912, 905, 837); f2(906, 904, 903); f2(906, 903, 905); f2(904, 849, 903); f2(849, 848, 903); f2(891, 894, 892); f2(894, 915, 892); f2(896, 898, 875); f2(896, 875, 850); f2(898, 899, 875); f2(899, 897, 876); f2(877, 896, 850); f2(895, 896, 877); f2(878, 895, 877); f2(893, 895, 878); f2(879, 893, 878); f2(880, 893, 879); f2(891, 892, 911); f2(890, 891, 911); f2(890, 911, 889); f2(901, 890, 889); f2(901, 889, 888); f2(902, 901, 888); f2(887, 902, 888); f2(897, 900, 876); f2(876, 900, 884); f2(885, 886, 883); f2(884, 885, 883); f2(884, 883, 882); f2(876, 884, 874); f2(874, 884, 882); f2(883, 886, 863); f2(880, 879, 843); f2(843, 879, 860); f2(879, 878, 860); f2(860, 878, 852); f2(878, 877, 852); f2(877, 850, 852); f2(850, 875, 873); f2(870, 871, 971); f2(971, 871, 872); f2(869, 874, 870); f2(870, 874, 871); f2(868, 870, 971); f2(867, 870, 868); f2(873, 869, 867); f2(867, 869, 870); f2(855, 867, 868); f2(853, 867, 855); f2(851, 873, 853); f2(853, 873, 867); f2(851, 850, 873); f2(881, 866, 865); f2(866, 840, 865); f2(863, 881, 864); f2(881, 865, 864); f2(887, 881, 863); f2(886, 887, 863); f2(863, 864, 862); f2(841, 842, 861); f2(843, 860, 859); f2(842, 843, 859); f2(842, 859, 858); f2(861, 842, 858); f2(859, 854, 857); f2(858, 859, 857); f2(857, 854, 856); f2(854, 853, 856); f2(856, 853, 855); f2(860, 852, 859); f2(859, 852, 854); f2(852, 851, 854); f2(854, 851, 853); f2(852, 850, 851); f2(847, 846, 849); f2(849, 846, 845); f2(849, 845, 848); f2(846, 844, 845); f2(847, 843, 842); f2(847, 842, 846); f2(846, 841, 844); f2(846, 842, 841); f2(899, 927, 875); f2(927, 899, 876); f2(933, 936, 940); f2(951, 933, 958); f2(951, 958, 965); f2(965, 958, 957); f2(965, 957, 918); f2(957, 956, 918); f2(960, 964, 926); f2(940, 936, 964); f2(964, 936, 926); f2(936, 923, 926); f2(945, 966, 946); f2(944, 966, 945); f2(928, 966, 944); f2(966, 949, 946); f2(966, 943, 949); f2(966, 942, 943); f2(966, 928, 942); f2(961, 947, 948); f2(961, 948, 930); f2(929, 961, 930); f2(931, 961, 929); f2(961, 931, 962); f2(939, 929, 930); f2(920, 939, 921); f2(939, 930, 921); f2(928, 944, 938); f2(935, 938, 937); f2(928, 938, 941); f2(941, 935, 934); f2(941, 938, 935); f2(950, 932, 925); f2(932, 916, 925); f2(946, 963, 932); f2(946, 949, 963); f2(949, 953, 963); f2(932, 915, 916); f2(932, 963, 915); f2(921, 948, 922); f2(930, 948, 921); f2(948, 947, 922); f2(961, 960, 947); f2(962, 959, 940); f2(931, 959, 962); f2(962, 940, 961); f2(959, 933, 940); f2(961, 940, 964); f2(960, 961, 964); f2(959, 931, 958); f2(933, 959, 958); f2(958, 929, 957); f2(958, 931, 929); f2(957, 929, 956); f2(919, 929, 939); f2(956, 929, 919); f2(919, 939, 920); f2(945, 946, 955); f2(955, 946, 950); f2(955, 950, 924); f2(924, 950, 925); f2(946, 932, 950); f2(923, 945, 954); f2(954, 945, 955); f2(954, 955, 924); f2(935, 937, 933); f2(933, 937, 936); f2(938, 944, 937); f2(937, 945, 923); f2(944, 945, 937); f2(937, 923, 936); f2(942, 952, 917); f2(943, 942, 917); f2(943, 917, 953); f2(949, 943, 953); f2(917, 952, 918); f2(942, 941, 952); f2(941, 934, 952); f2(934, 933, 951); f2(934, 935, 933); f2(952, 951, 965); f2(952, 934, 951); f2(952, 965, 918); f2(942, 928, 941); f2(875, 927, 967); f2(876, 967, 927); f2(875, 967, 968); f2(876, 968, 967); f2(876, 874, 968); f2(874, 869, 968); f2(873, 968, 869); f2(968, 873, 875); f2(1365, 1354, 779); f2(779, 836, 758); f2(758, 836, 757); f2(759, 758, 757); f2(757, 836, 835); f2(757, 835, 781); f2(835, 1421, 781); f2(781, 1421, 688); f2(1421, 689, 688); f2(1422, 689, 1421); f2(780, 1422, 1423); f2(1355, 1418, 1419); f2(834, 1355, 1419); f2(834, 1419, 1420); f2(1355, 834, 1366); f2(1417, 1418, 1355); f2(1381, 1425, 1426); f2(1382, 1381, 1426); f2(1167, 827, 829); f2(722, 833, 831); f2(722, 793, 833); f2(792, 793, 722); f2(833, 832, 831); f2(827, 831, 686); f2(722, 831, 827); f2(828, 830, 1336); f2(1170, 830, 828); f2(756, 687, 765); f2(752, 825, 774); f2(825, 765, 774); f2(826, 825, 752); f2(756, 765, 825); f2(694, 695, 703); f2(697, 730, 732); f2(691, 824, 692); f2(692, 824, 797); f2(816, 823, 822); f2(823, 820, 822); f2(822, 820, 821); f2(821, 819, 822); f2(819, 818, 822); f2(818, 817, 822); f2(817, 816, 822); f2(808, 814, 811); f2(814, 815, 811); f2(815, 813, 811); f2(813, 812, 811); f2(812, 809, 811); f2(810, 811, 809); f2(810, 808, 811); f2(800, 806, 807); f2(805, 807, 806); f2(805, 804, 807); f2(807, 804, 803); f2(807, 803, 802); f2(801, 807, 802); f2(800, 807, 801); f2(710, 798, 799); f2(799, 1424, 710); f2(716, 1424, 799); f2(798, 710, 712); f2(712, 709, 711); f2(713, 1379, 1367); f2(709, 1379, 711); f2(711, 1379, 713); f2(713, 1367, 1368); f2(1370, 798, 1369); f2(769, 798, 1370); f2(717, 719, 696); f2(696, 724, 695); f2(797, 828, 1336); f2(721, 1174, 796); f2(794, 725, 718); f2(795, 725, 794); f2(1361, 725, 1360); f2(1360, 725, 795); f2(794, 718, 717); f2(793, 746, 833); f2(790, 791, 792); f2(792, 791, 793); f2(738, 791, 790); f2(787, 790, 789); f2(790, 739, 738); f2(787, 739, 790); f2(788, 783, 740); f2(788, 740, 733); f2(733, 740, 787); f2(731, 786, 788); f2(737, 786, 731); f2(788, 786, 783); f2(784, 735, 729); f2(729, 735, 737); f2(684, 734, 785); f2(785, 784, 729); f2(734, 784, 785); f2(1364, 684, 785); f2(783, 782, 747); f2(783, 747, 740); f2(786, 782, 783); f2(786, 750, 782); f2(764, 758, 759); f2(765, 689, 1422); f2(763, 1365, 779); f2(779, 758, 764); f2(776, 0x0303, 770); f2(0x0303, 769, 770); f2(776, 770, 778); f2(778, 770, 777); f2(780, 1423, 715); f2(755, 777, 1371); f2(777, 1375, 1371); f2(754, 776, 778); f2(754, 778, 755); f2(778, 777, 755); f2(748, 775, 753); f2(753, 776, 754); f2(753, 0x0303, 776); f2(747, 774, 775); f2(752, 774, 747); f2(773, 772, 684); f2(684, 772, 734); f2(772, 760, 734); f2(773, 685, 772); f2(774, 766, 775); f2(766, 715, 775); f2(0x0303, 775, 767); f2(753, 775, 0x0303); f2(770, 0x0300, 777); f2(0x0300, 1375, 777); f2(0x0303, 714, 769); f2(770, 769, 0x0300); f2(775, 715, 767); f2(767, 714, 0x0303); f2(766, 1422, 780); f2(765, 766, 774); f2(766, 780, 715); f2(765, 1422, 766); f2(762, 763, 764); f2(763, 779, 764); f2(763, 762, 685); f2(772, 685, 762); f2(772, 762, 760); f2(734, 760, 761); f2(751, 971, 826); f2(761, 971, 751); f2(755, 1371, 1372); f2(743, 754, 745); f2(754, 755, 745); f2(741, 748, 753); f2(741, 753, 754); f2(741, 754, 743); f2(747, 775, 748); f2(750, 826, 752); f2(750, 752, 782); f2(782, 752, 747); f2(736, 751, 749); f2(751, 826, 749); f2(749, 826, 750); f2(761, 751, 736); f2(734, 761, 736); f2(735, 736, 749); f2(739, 748, 741); f2(738, 741, 743); f2(743, 745, 742); f2(745, 755, 744); f2(755, 1372, 744); f2(744, 1372, 1373); f2(742, 745, 746); f2(793, 742, 746); f2(746, 745, 744); f2(791, 738, 743); f2(743, 742, 791); f2(791, 742, 793); f2(739, 741, 738); f2(740, 747, 739); f2(747, 748, 739); f2(787, 740, 739); f2(735, 750, 737); f2(737, 750, 786); f2(735, 749, 750); f2(784, 736, 735); f2(734, 736, 784); f2(733, 787, 789); f2(733, 789, 700); f2(699, 733, 700); f2(732, 788, 733); f2(732, 733, 699); f2(730, 788, 732); f2(708, 731, 788); f2(728, 737, 731); f2(730, 708, 788); f2(729, 737, 728); f2(1364, 785, 1363); f2(1363, 785, 727); f2(785, 729, 727); f2(727, 729, 726); f2(726, 729, 728); f2(726, 728, 719); f2(719, 728, 707); f2(724, 719, 707); f2(1363, 727, 1362); f2(1361, 1362, 725); f2(725, 726, 718); f2(725, 727, 726); f2(1362, 727, 725); f2(718, 726, 719); f2(724, 707, 704); f2(790, 792, 723); f2(723, 792, 722); f2(789, 790, 723); f2(700, 789, 723); f2(1434, 691, 720); f2(1434, 796, 691); f2(696, 719, 724); f2(724, 704, 695); f2(718, 719, 717); f2(716, 1423, 1424); f2(715, 1423, 716); f2(767, 715, 716); f2(767, 716, 714); f2(714, 799, 769); f2(769, 799, 798); f2(714, 716, 799); f2(1424, 1425, 710); f2(710, 709, 712); f2(710, 1425, 709); f2(704, 708, 730); f2(707, 708, 704); f2(707, 731, 708); f2(728, 731, 707); f2(704, 730, 697); f2(706, 704, 697); f2(706, 697, 705); f2(695, 704, 706); f2(695, 706, 703); f2(700, 723, 701); f2(701, 723, 722); f2(697, 732, 698); f2(794, 717, 696); f2(694, 696, 695); f2(1174, 691, 796); f2(1379, 1378, 1367); f2(1381, 1379, 709); f2(1425, 1381, 709); f2(833, 1373, 1374); f2(746, 1373, 833); f2(746, 744, 1373); f2(833, 1374, 832); f2(831, 1335, 686); f2(831, 832, 1335); f2(1360, 795, 1359); f2(1354, 836, 779); f2(1335, 1374, 1356); f2(832, 1374, 1335); f2(660, 39, 1428); f2(1428, 39, 1427); f2(39, 661, 1427); f2(1435, 120, 1369); f2(31, 120, 1435); f2(1429, 1436, 1369); f2(798, 1438, 1369); f2(798, 712, 1438); f2(1437, 1429, 1369); f2(1434, 1433, 1431); f2(1434, 1431, 1430); f2(1432, 1434, 1430); f2(1436, 1435, 1369); f2(1438, 1437, 1369); this.x = 0; this.y = 0; this.z = 0; this.rotationX = 0; this.rotationY = 0; this.rotationZ = 0; this.scaleX = 1; this.scaleY = 1; this.scaleZ = 1; this.geometry.ready = true; } public function f(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number):void{ var _local13:Triangle3D; _local13 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, [new NumberUV(_arg4, _arg5), new NumberUV(_arg6, _arg7), new NumberUV(_arg8, _arg9)]); _local13.faceNormal = new Number3D(_arg10, _arg11, _arg12); fa.push(_local13); } public function f2(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Triangle3D; _local4 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, []); fa.push(_local4); } public function v(_arg1:Number, _arg2:Number, _arg3:Number):void{ ve.push(new Vertex3D(_arg1, _arg2, _arg3)); } } }//package
Section 113
//whitel (whitel) package { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.core.geom.*; public class whitel extends TriangleMesh3D { private var ve:Array; private var fa:Array; public function whitel(_arg1:MaterialObject3D, _arg2:Object=null){ super(_arg1, new Array(), new Array(), null, _arg2); ve = this.geometry.vertices; fa = this.geometry.faces; v(-0.368247, 1.141258, 3.20341); v(-0.329784, 1.19972, 3.210593); v(-0.280029, 1.248456, 3.216421); v(-0.22098, 1.291622, 3.217068); v(-0.238426, 1.306941, 3.145463); v(-0.152802, 1.325366, 3.218138); v(-0.668897, 0.099141, 0.085683); v(-0.212126, 0.308412, -0.308632); v(-0.196889, 0.287442, -0.413151); v(-0.147416, -0.083324, -0.923803); v(-0.186654, 0.25699, -0.513809); v(-0.179185, 0.2155, -0.613017); v(-0.168149, 0.093082, -0.795981); v(-0.152987, 0.014436, -0.862807); v(-0.333493, 0.322457, 0.01179); v(-0.463392, 0.276425, 0.083882); v(-0.272008, 0.328163, -0.105281); v(-0.249893, -0.346485, 1.299893); v(-0.207436, 0.829281, 3.604215); v(-0.148513, 0.807638, 3.650396); v(-0.401708, 0.990672, 3.206774); v(-0.386261, 0.953386, 3.278677); v(-0.392861, 1.070601, 3.199768); v(-0.247206, 0.848347, 3.560709); v(-0.234124, 0.321143, -0.209498); v(-0.174064, 0.1619, -0.709668); v(-0.259783, -0.107334, 1.489024); v(-0.154956, 0.164925, 1.862338); v(-0.273168, 0.790874, 1.795281); v(-0.323155, 0.685447, 1.806655); v(-0.333619, 0.448848, 1.945523); v(-0.252225, 0.350439, 2.021512); v(-0.39151, 1.051522, 2.497679); v(-0.330819, 1.111227, 2.459112); v(-0.363213, 0.677845, 2.375616); v(-0.181774, 0.496888, 2.396867); v(-0.149407, 0.716455, 1.397656); v(-0.363399, 0.733741, 2.103145); v(-0.127249, 0.627623, 2.831422); v(-0.093297, 1.362266, 3.014383); v(-0.440221, 1.005371, 2.837477); v(-0.197288, 1.195207, 2.446392); v(-0.297628, 1.286609, 2.759154); v(-0.309897, 0.759068, 3.237223); v(-0.384586, 0.806722, 2.808692); v(-0.268185, 0.692995, 2.847056); v(-0.261033, 0.603868, 2.531499); v(-0.38723, 0.87976, 3.216053); v(-0.188002, 0.669186, 3.32885); v(-0.160364, 0.732049, 3.587353); v(-0.385971, 1.187427, 3.098456); v(-0.454287, 1.206825, 2.779051); v(-0.412951, 1.135342, 2.601366); v(-0.373076, 1.188152, 2.59684); v(-0.325746, 1.232255, 2.630028); v(-0.292658, 1.321733, 2.929255); v(-0.283173, 1.316461, 3.071828); v(-0.315034, 1.269175, 3.14978); v(-0.196994, 0.513368, 0.859969); v(-0.150597, 0.372806, 0.13901); v(-0.26668, 0.682674, 1.522284); v(-0.337252, 0.477457, 0.947996); v(-0.211566, 0.646052, 1.298719); v(-0.503956, 0.282734, 1.219529); v(-0.561396, 0.25109, 0.523578); v(-0.735462, 0.054854, 0.449921); v(-0.458703, 0.131473, 1.3806); v(-0.952169, -0.295204, 0.487637); v(-0.847038, -0.067293, 0.834072); v(-0.899048, -0.129878, 0.639591); v(-0.97489, -0.994824, 1.648364); v(-0.954122, -0.995792, 1.513142); v(-0.975209, -0.801156, 1.653917); v(-0.970549, -0.858667, 1.690592); v(-0.967937, -0.907775, 1.706207); v(-0.967766, -0.953103, 1.706631); v(-0.989616, -1.009029, 1.553993); v(-0.980217, -1.00286, 1.621039); v(-1.098861, -0.643254, 0.776619); v(-0.91678, -0.938738, 1.637539); v(-1.051354, -0.884172, 1.114321); v(-1.088764, -0.71181, 0.846353); v(-1.026833, -0.530043, 1.290692); v(-1.070697, -0.41993, 0.978399); v(-0.932224, -0.82862, 1.652679); v(-0.312863, 0.307856, 1.809265); v(-0.378086, 0.288828, 1.609548); v(-0.363947, 0.473402, 1.678322); v(-0.359433, 0.550094, 1.512181); v(-0.410716, 0.30886, 0.194583); v(-0.576419, 0.206197, 0.105986); v(-0.760792, -0.041695, -0.011329); v(-0.696605, -0.890735, 0.445577); v(-0.619003, -0.774422, 0.692767); v(-0.569442, -0.714234, 0.799102); v(-0.313207, -0.43253, 1.199985); v(-0.261994, 0.149446, 1.731761); v(-0.409825, -0.088086, 1.354917); v(-0.997821, -1.00715, 1.495496); v(-0.799827, -0.714451, 0.457503); v(-0.517237, -0.644001, 0.90374); v(-0.412015, 0.456381, 1.23728); v(-0.859567, -0.249312, 0.040636); v(-0.94414, -0.419587, 0.492665); v(-0.786034, -0.319962, 0.950975); v(-0.942581, -0.264254, 0.644673); v(-0.804535, -0.069739, 0.962066); v(-0.891253, -0.196748, 0.82236); v(-0.777567, -0.152847, 1.036069); v(-0.482324, 1.537306, 2.98084); v(-0.583197, 1.548779, 2.587083); v(-0.462272, 1.449337, 2.700662); v(-0.612704, 1.577266, 2.740559); v(-0.574071, 1.65773, 2.879551); v(-0.345328, 1.3478, 2.888366); v(-0.339311, 1.346642, 3.072048); v(-0.406929, 1.302366, 3.06037); v(-0.443685, 1.238984, 2.63121); v(-0.389488, 1.285171, 2.648962); v(-0.078712, 1.347079, 3.214291); v(-0.81646, -0.197999, -0.129542); v(-0.842984, -0.329005, -0.219077); v(-0.758178, -1.013909, -4.3E-5); v(-0.761087, -1.023626, -0.099524); v(-0.762352, -1.02504, -0.195889); v(-0.827533, -0.920576, -0.154082); v(-0.887553, -0.698264, 0.02574); v(-0.72654, -0.94345, 0.299957); v(-0.742181, -0.97361, 0.199957); v(-0.900316, -0.5075, -0.044529); v(-0.752363, -0.997154, 0.099956); v(-0.845922, -0.749092, -0.366009); v(-0.864428, -0.731994, -0.291137); v(-0.847048, -0.820222, -0.291776); v(-0.832377, -0.869921, -0.280004); v(-0.827366, -0.843187, -0.374052); v(-0.866204, -0.77987, -0.199182); v(-0.77972, -0.961004, -0.36195); v(-0.848176, -0.789429, -0.329693); v(-0.819765, -0.778087, -0.437652); v(-0.845986, -0.586227, -0.380921); v(-0.767333, -1.009144, -0.282296); v(-0.825153, -0.8382, 0.192634); v(-0.873396, -0.651739, 0.235659); v(-0.965984, -1.07104, 1.667113); v(-1.003565, -0.988871, 1.635321); v(-0.992402, -0.980531, 1.650224); v(-0.967824, -0.975642, 1.656327); v(-0.942961, -0.981709, 1.640489); v(-0.940001, -0.993035, 1.617971); v(-0.951163, -1.001374, 1.603068); v(-0.970202, -1.005732, 1.597172); v(-0.989844, -1.004445, 1.602533); v(-1.000593, -0.926996, 1.690735); v(-0.990439, -0.91031, 1.696626); v(-0.97191, -0.901876, 1.697961); v(-0.958456, -0.967009, 1.766767); v(-0.952085, -0.904915, 1.694231); v(-0.938534, -0.918267, 1.686859); v(-0.93645, -0.937091, 1.678569); v(-0.946589, -0.953518, 1.672772); v(-0.965116, -0.961951, 1.671437); v(-0.984943, -0.958912, 1.675167); v(-0.971284, -0.807158, 1.747399); v(-1.002934, -0.841837, 1.663913); v(-0.987962, -0.830458, 1.656004); v(-0.967712, -0.828792, 1.65416); v(-0.949919, -0.837475, 1.659088); v(-0.941382, -0.853189, 1.668904); v(-0.945359, -0.869935, 1.67986); v(-0.960034, -0.881253, 1.687748); v(-0.980582, -0.882979, 1.689612); v(-0.998374, -0.874296, 1.684684); v(-1.002587, -0.998005, 1.617105); v(-0.998494, -0.94556, 1.682539); v(-1.006911, -0.858583, 1.674869); v(-0.131758, 1.245901, 3.399701); v(-0.280774, 0.828848, 3.492676); v(-0.067278, 1.264064, 3.399953); v(-0.337751, 1.046591, 3.390706); v(-0.200089, 1.118112, 3.501159); v(-0.273138, 0.842924, 3.515299); v(-1.10166, -0.41891, 0.757631); v(-1.093581, -0.406707, 0.815288); v(-1.106797, -0.439224, 0.72091); v(-1.109101, -0.529901, 0.704094); v(-0.962202, -0.525038, 1.126053); v(-0.942726, -0.576464, 1.100952); v(-0.938198, -0.663264, 1.058585); v(-0.958193, -0.731003, 1.025522); v(-0.979621, -0.766935, 1.007984); v(-0.946388, -0.665937, 1.462032); v(-0.967451, -0.945976, 1.322012); v(-0.940336, -0.920178, 1.334911); v(-0.920365, -0.887615, 1.351193); v(-0.924797, -0.692415, 1.448793); v(-0.93882, -0.929307, 1.362304); v(-0.972282, -0.647462, 1.471269); v(-0.909436, -0.726722, 1.431639); v(-0.899851, -0.807895, 1.391053); v(-0.899574, -0.820089, 1.416222); v(-0.729177, 0.026188, 0.954263); v(-0.691476, 0.01885, 1.032906); v(-0.915881, -0.484536, 0.403324); v(-0.919306, -0.3543, 0.340174); v(-0.6309, 0.083568, 1.020866); v(-0.577855, -0.056057, 1.149289); v(-0.606433, -0.012182, 1.122368); v(-0.631763, -0.033635, 1.12091); v(-0.658312, 0.109824, 0.91021); v(-0.642924, 0.101317, 0.975457); v(-0.934037, -0.352434, 0.670311); v(-0.933878, -0.405899, 0.619023); v(-0.848278, -0.4938, 0.66255); v(-0.862488, -0.488709, 0.65203); v(-0.859309, -0.398821, 0.78638); v(-0.877648, -0.375963, 0.779541); v(-0.68004, 1.706026, 2.57392); v(-0.664859, 1.679809, 2.544915); v(-0.689805, 1.749578, 2.622027); v(-0.638825, 1.704033, 2.572109); v(-0.609555, -0.287361, 1.046966); v(-0.974897, -0.56768, 0.851299); v(-0.988004, -0.593102, 0.825911); v(-0.874711, -0.541516, 0.393499); v(-0.816325, -0.503947, 0.678878); v(-0.834676, -0.493163, 0.68853); v(-0.918767, -0.360789, 0.735423); v(-0.885945, -0.403254, 0.776505); v(-0.858988, -0.442414, 0.774323); v(-0.863299, -0.418598, 0.778089); v(-0.87165, -0.399775, 0.777654); v(-0.88043, -0.428013, 0.786319); v(-0.92418, -0.373981, 0.747158); v(-0.935483, -0.36968, 0.725523); v(-0.584512, -0.169578, 1.124876); v(-0.661841, 0.048971, 1.007268); v(-0.099466, 1.135558, 3.546152); v(-0.342148, 0.8997, 3.398536); v(-0.312916, 1.021541, 3.449333); v(-0.302461, 1.049641, 3.449773); v(-0.311976, 1.064098, 3.429566); v(-0.310479, 0.989794, 3.473488); v(-0.330162, 1.039212, 3.408923); v(-0.345906, 0.965211, 3.39646); v(-0.285051, 0.997699, 3.506628); v(-0.670378, 1.709565, 2.518792); v(-0.727415, 1.792177, 2.459591); v(-0.701853, 1.776227, 2.539443); v(-0.7311, 1.794161, 2.444099); v(-0.710682, 1.759914, 2.477742); v(-0.705942, 1.758919, 2.475472); v(-0.70791, 1.799787, 2.563601); v(-0.703918, 1.805101, 2.562251); v(-0.691877, 1.783572, 2.567013); v(-0.658078, 1.712786, 2.536838); v(-0.736279, 1.838506, 2.551214); v(-0.727835, 1.833174, 2.547331); v(-0.699922, 1.782457, 2.561442); v(-0.716912, 1.833394, 2.549927); v(-0.724222, 1.835545, 2.544591); v(-0.7146, 1.802883, 2.571075); v(-0.689842, 1.797891, 2.575878); v(-0.68943, 1.772686, 2.556537); v(-0.68874, 1.7434, 2.496405); v(-0.781546, 1.915831, 2.488242); v(-1.085039, -0.560457, 0.718292); v(-1.094629, -0.42535, 0.741508); v(-1.070535, -0.409035, 0.816823); v(-1.032922, -0.486737, 0.715213); v(-1.023366, -0.426563, 0.77462); v(-1.007298, -0.436727, 0.823618); v(-0.974824, -0.469165, 0.85168); v(-1.031681, -0.518994, 0.719186); v(-1.035356, -0.558967, 0.740571); v(-1.021373, -0.437606, 0.832069); v(-1.045473, -0.432577, 0.780419); v(-1.05071, -0.451982, 0.742431); v(-1.056091, -0.469647, 0.726391); v(-1.056003, -0.501451, 0.718497); v(-1.047273, -0.538624, 0.727994); v(-1.024848, -0.596816, 0.776254); v(-1.017084, -0.604011, 0.794798); v(-0.971241, -0.53374, 0.866735); v(-0.949843, -0.389199, 0.667311); v(-0.654115, -0.370602, 0.955209); v(-0.8598, -0.549757, 0.442233); v(-0.775407, -0.522054, 0.682204); v(-0.772018, 0.011124, 0.769631); v(-0.722757, -0.446774, 0.840898); v(-0.823105, -0.554673, 0.550715); v(-0.895788, -0.505792, 0.342615); v(-0.906588, -0.452599, 0.310411); v(-0.800817, -0.045395, 0.603); v(-0.826325, -0.104028, 0.501671); v(-0.902676, -0.417246, 0.290215); v(-0.648307, 0.073189, 0.990194); v(-0.668896, 0.057593, 0.973789); v(-0.583216, -0.121228, 1.140179); v(-0.590566, -0.05994, 1.141544); v(-0.640826, 0.047826, 1.036746); v(-0.568418, -0.133621, 1.145169); v(-0.587019, -0.2018, 1.109107); v(-0.596012, -0.232401, 1.090577); v(-0.706926, 0.052695, 0.844235); v(-0.737354, 0.028686, 0.751105); v(-0.757974, 0.021585, 0.790367); v(-0.721683, 0.042931, 0.799286); v(-0.704813, 0.052255, 0.877705); v(-0.673522, 0.070302, 0.925165); v(-0.72039, 0.045037, 0.774168); v(-0.898008, -0.402468, 0.261306); v(-0.897036, -0.35316, 0.300596); v(-0.865348, -0.237055, 0.34593); v(-0.900727, -0.370947, 0.298351); v(-0.885979, -0.312106, 0.305921); v(-0.687585, 0.070936, 0.868564); v(-0.941919, -0.374905, 0.674501); v(-0.943158, -0.386202, 0.658809); v(-0.899486, -0.384931, 0.766063); v(-0.846413, -0.477593, 0.745314); v(-0.846603, -0.491838, 0.701417); v(-0.877433, -0.49624, 0.669156); v(-0.919266, -0.460814, 0.637266); v(-0.904359, -0.477099, 0.644411); v(-0.934724, -0.360965, 0.694338); v(-0.924898, -0.345329, 0.709342); v(-0.892335, -0.37296, 0.764639); v(-0.91073, -0.35222, 0.740901); v(-0.841748, -0.441338, 0.771538); v(-0.831012, -0.469972, 0.744936); v(-0.936799, -0.412099, 0.63325); v(-0.90175, -0.46516, 0.62754); v(-0.77761, -0.494044, 0.73049); v(-0.804136, -0.545161, 0.605868); v(-0.94386, -0.370995, 0.702001); v(-0.940205, -0.436126, 0.640941); v(-0.847918, -0.490147, 0.725189); v(-0.855393, -0.494213, 0.684056); v(-0.849008, -0.460624, 0.762852); v(-0.949045, -0.407252, 0.652111); v(-0.887346, -0.482191, 0.647242); v(-0.748249, 1.883371, 2.567466); v(-0.732794, 1.853833, 2.598248); v(-0.723165, 1.814646, 2.591112); v(-0.769716, 1.900012, 2.522688); v(-0.748115, 1.885444, 2.560516); v(-0.756156, 1.892308, 2.525469); v(-0.717155, 1.849326, 2.626112); v(-0.706021, 1.771481, 2.534224); v(-0.703817, 1.779106, 2.59888); v(-0.673668, 1.771903, 2.584836); v(-0.695406, 1.750303, 2.57224); v(-0.681593, 1.755529, 2.532968); v(-0.695141, 1.772549, 2.535263); v(-0.672819, 1.761046, 2.574085); v(-0.700483, 1.770411, 2.564821); v(-0.703583, 1.781443, 2.575445); v(-0.564378, -0.168396, 1.137661); v(-0.561067, -0.087373, 1.161525); v(-0.620808, 0.022372, 1.088272); v(-0.659804, -0.001376, 1.091949); v(-0.678957, 0.013494, 1.052257); v(-0.762657, 0.020392, 0.834211); v(-0.829401, -0.05099, 0.645366); v(-0.85439, -0.095484, 0.573574); v(-0.748753, 0.014997, 0.693255); v(-0.655643, 0.131805, 0.8665); v(-0.841127, -0.153203, 0.428596); v(-0.892499, -0.208007, 0.427941); v(-0.879495, -0.144116, 0.51642); v(-0.911974, -0.285843, 0.372302); v(-0.862831, -0.232593, 0.331635); v(-0.880935, -0.306527, 0.288005); v(-0.892756, -0.362933, 0.276415); v(-0.92947, -0.401041, 0.34096); v(-0.902203, -0.461305, 0.27422); v(-0.89083, -0.524106, 0.30696); v(-0.866458, -0.57783, 0.365934); v(-0.830328, -0.569638, 0.498859); v(-0.920017, -0.46066, 0.361813); v(-0.901548, -0.508909, 0.435805); v(-0.883794, -0.514619, 0.526315); v(-0.888231, -0.474709, 0.625098); v(-0.854788, -0.523685, 0.57566); v(-0.91319, -0.448245, 0.605233); v(-0.920014, -0.439395, 0.622985); v(-0.940314, -0.373274, 0.637023); v(-0.92071, -0.32374, 0.72143); v(-0.899697, -0.34535, 0.760341); v(-0.842403, -0.420448, 0.78655); v(-0.823438, -0.454739, 0.7661); v(-0.824738, -0.48116, 0.72389); v(-0.787706, -0.469325, 0.77216); v(-0.770591, -0.54249, 0.666512); v(-0.74564, -0.499912, 0.758463); v(-0.701217, -0.474871, 0.828384); v(-0.660091, -0.408459, 0.918369); v(-0.611722, -0.320612, 1.021558); v(-0.579515, -0.237026, 1.095243); v(-0.622418, -0.129745, 1.133915); v(-0.627906, -0.069194, 1.137699); v(-0.619327, -0.190434, 1.112314); v(-0.809564, -0.072158, 0.519316); v(-0.782686, -0.025445, 0.595595); v(-1.109791, -0.458682, 0.698091); v(-1.104665, -0.510016, 0.698213); v(-1.045544, -0.418654, 0.942487); v(-1.080299, -0.407052, 0.909408); v(-1.034162, -0.615031, 0.775928); v(-1.105425, -0.583368, 0.730074); v(-1.000045, -0.462304, 0.868973); v(-0.990299, -0.492554, 0.877936); v(-0.978705, -0.565822, 0.88088); v(-0.994015, -0.627151, 0.866222); v(-1.028059, -0.789783, 0.964753); v(-0.97226, -0.736358, 0.991347); v(-0.942352, -0.652928, 1.032373); v(-0.954134, -0.535809, 1.090311); v(-0.964184, -0.668541, 1.490601); v(-0.916056, -0.720373, 1.465472); v(-0.91232, -0.89115, 1.381119); v(-1.019425, -0.971238, 1.341604); v(-1.038255, -0.808984, 0.98746); v(-1.00821, -0.792997, 0.995263); v(-0.99692, -0.960487, 1.314756); v(-0.988259, -0.496299, 1.14008); v(-1.049698, -0.459685, 1.127908); v(-1.046213, -0.470408, 1.152717); v(-1.069439, -0.812643, 0.985674); v(-0.083982, 1.014574, 3.633521); v(-0.149042, 1.058493, 3.580708); v(-0.24905, 1.174074, 3.398861); v(-0.191631, 1.215999, 3.399173); v(-0.318552, 1.087182, 3.407881); v(-0.346839, 1.008114, 3.375202); v(-0.356, 0.93906, 3.369481); v(-0.348739, 0.906699, 3.375266); v(-0.320098, 0.837988, 3.407752); v(-0.29545, 0.823186, 3.455111); v(-0.285561, 1.081024, 3.456715); v(-0.269302, 0.860544, 3.527016); v(-0.654235, 1.673454, 2.537165); v(-0.693701, 1.791473, 2.66847); v(-0.682517, 1.807367, 2.686037); v(-0.66123, 1.792837, 2.666176); v(-0.644651, 1.751624, 2.622905); v(-0.641923, 1.682183, 2.548084); v(-0.673227, -0.212434, 1.089042); v(-0.674078, -0.275965, 1.050419); v(-1.072974, -0.798079, 0.960613); v(-0.806249, -0.573375, 0.563141); v(-1.000772, -0.639456, 1.475272); v(-0.997615, -0.65603, 1.497213); v(-1.023476, -0.964504, 1.312748); v(-0.264744, 1.053374, 3.499142); v(-0.759476, -0.413209, 0.872405); v(-0.850322, -0.186, 0.388016); v(-0.899275, -0.427429, 0.233294); v(-0.971483, -0.974935, 1.684199); v(-1.004106, -0.474906, 1.120397); v(-1.009195, -0.482439, 1.146845); v(0.368247, 1.141258, 3.20341); v(0.329784, 1.19972, 3.210593); v(0.280029, 1.248456, 3.216421); v(0.22098, 1.291622, 3.217068); v(0.238426, 1.306941, 3.145463); v(0.152802, 1.325366, 3.218138); v(0.668897, 0.099141, 0.085683); v(0.212126, 0.308412, -0.308632); v(0.196889, 0.287442, -0.413151); v(0.147416, -0.083324, -0.923803); v(0.186654, 0.25699, -0.513809); v(0.179185, 0.2155, -0.613017); v(0.168149, 0.093082, -0.795981); v(0.152987, 0.014436, -0.862807); v(0.333493, 0.322457, 0.01179); v(0.463392, 0.276425, 0.083882); v(0.272008, 0.328163, -0.105281); v(0.249893, -0.346485, 1.299893); v(0.207436, 0.829281, 3.604215); v(0.148513, 0.807638, 3.650396); v(0.401708, 0.990672, 3.206774); v(0.386261, 0.953386, 3.278677); v(0.392861, 1.070601, 3.199768); v(0.247206, 0.848347, 3.560709); v(0.234124, 0.321143, -0.209498); v(0.174064, 0.1619, -0.709668); v(0.259783, -0.107334, 1.489024); v(0.154956, 0.164925, 1.862338); v(0.273168, 0.790874, 1.795281); v(0.323155, 0.685447, 1.806655); v(0.333619, 0.448848, 1.945523); v(0.252225, 0.350439, 2.021512); v(0.39151, 1.051522, 2.497679); v(0.330819, 1.111227, 2.459112); v(0.363213, 0.677845, 2.375616); v(0.181774, 0.496888, 2.396867); v(0.149407, 0.716455, 1.397656); v(0.363399, 0.733741, 2.103145); v(0.127249, 0.627623, 2.831422); v(0.093297, 1.362266, 3.014383); v(0.440221, 1.005371, 2.837477); v(0.197288, 1.195207, 2.446392); v(0.297628, 1.286609, 2.759154); v(0.309897, 0.759068, 3.237223); v(0.384586, 0.806722, 2.808692); v(0.268185, 0.692995, 2.847056); v(0.261033, 0.603868, 2.531499); v(0.38723, 0.87976, 3.216053); v(0.188002, 0.669186, 3.32885); v(0.160364, 0.732049, 3.587353); v(0.385971, 1.187427, 3.098456); v(0.454287, 1.206825, 2.779051); v(0.412951, 1.135342, 2.601366); v(0.373076, 1.188152, 2.59684); v(0.325746, 1.232255, 2.630028); v(0.292658, 1.321733, 2.929255); v(0.283173, 1.316461, 3.071828); v(0.315034, 1.269175, 3.14978); v(0.196994, 0.513368, 0.859969); v(0.150597, 0.372806, 0.13901); v(0.26668, 0.682674, 1.522284); v(0.337252, 0.477457, 0.947996); v(0.211566, 0.646052, 1.298719); v(0.503956, 0.282734, 1.219529); v(0.561396, 0.25109, 0.523578); v(0.735462, 0.054854, 0.449921); v(0.458703, 0.131473, 1.3806); v(0.952169, -0.295204, 0.487637); v(0.847038, -0.067293, 0.834072); v(0.899048, -0.129878, 0.639591); v(0.97489, -0.994824, 1.648364); v(0.954122, -0.995792, 1.513142); v(0.975209, -0.801156, 1.653917); v(0.970549, -0.858667, 1.690592); v(0.967937, -0.907775, 1.706207); v(0.967766, -0.953103, 1.706631); v(0.989616, -1.009029, 1.553993); v(0.980217, -1.00286, 1.621039); v(1.098861, -0.643254, 0.776619); v(0.91678, -0.938738, 1.637539); v(1.051354, -0.884172, 1.114321); v(1.088764, -0.71181, 0.846353); v(1.026833, -0.530043, 1.290692); v(1.070697, -0.41993, 0.978399); v(0.932224, -0.82862, 1.652679); v(0.312863, 0.307856, 1.809265); v(0.378086, 0.288828, 1.609548); v(0.363947, 0.473402, 1.678322); v(0.359433, 0.550094, 1.512181); v(0.410716, 0.30886, 0.194583); v(0.576419, 0.206197, 0.105986); v(0.760792, -0.041695, -0.011329); v(0.696605, -0.890735, 0.445577); v(0.619003, -0.774422, 0.692767); v(0.569442, -0.714234, 0.799102); v(0.313207, -0.43253, 1.199985); v(0.261994, 0.149446, 1.731761); v(0.409825, -0.088086, 1.354917); v(0.997821, -1.00715, 1.495496); v(0.799827, -0.714451, 0.457503); v(0.517237, -0.644001, 0.90374); v(0.412015, 0.456381, 1.23728); v(0.859567, -0.249312, 0.040636); v(0.94414, -0.419587, 0.492665); v(0.786034, -0.319962, 0.950975); v(0.942581, -0.264254, 0.644673); v(0.804535, -0.069739, 0.962066); v(0.891253, -0.196748, 0.82236); v(0.777567, -0.152847, 1.036069); v(0.482324, 1.537306, 2.98084); v(0.583197, 1.548779, 2.587083); v(0.462272, 1.449337, 2.700662); v(0.612704, 1.577266, 2.740559); v(0.574071, 1.65773, 2.879551); v(0.345328, 1.3478, 2.888366); v(0.339311, 1.346642, 3.072048); v(0.406929, 1.302366, 3.06037); v(0.443685, 1.238984, 2.63121); v(0.389488, 1.285171, 2.648962); v(0.078712, 1.347079, 3.214291); v(0.81646, -0.197999, -0.129542); v(0.842984, -0.329005, -0.219077); v(0.758178, -1.013909, -4.3E-5); v(0.761087, -1.023626, -0.099524); v(0.762352, -1.02504, -0.195889); v(0.827533, -0.920576, -0.154082); v(0.887553, -0.698264, 0.02574); v(0.72654, -0.94345, 0.299957); v(0.742181, -0.97361, 0.199957); v(0.900316, -0.5075, -0.044529); v(0.752363, -0.997154, 0.099956); v(0.845922, -0.749092, -0.366009); v(0.864428, -0.731994, -0.291137); v(0.847048, -0.820222, -0.291776); v(0.832377, -0.869921, -0.280004); v(0.827366, -0.843187, -0.374052); v(0.866204, -0.77987, -0.199182); v(0.77972, -0.961004, -0.36195); v(0.848176, -0.789429, -0.329693); v(0.819765, -0.778087, -0.437652); v(0.845986, -0.586227, -0.380921); v(0.767333, -1.009144, -0.282296); v(0.825153, -0.8382, 0.192634); v(0.873396, -0.651739, 0.235659); v(0.965984, -1.07104, 1.667113); v(1.003565, -0.988871, 1.635321); v(0.992402, -0.980531, 1.650224); v(0.967824, -0.975642, 1.656327); v(0.942961, -0.981709, 1.640489); v(0.940001, -0.993035, 1.617971); v(0.951163, -1.001374, 1.603068); v(0.970202, -1.005732, 1.597172); v(0.989844, -1.004445, 1.602533); v(1.000593, -0.926996, 1.690735); v(0.990439, -0.91031, 1.696626); v(0.97191, -0.901876, 1.697961); v(0.958456, -0.967009, 1.766767); v(0.952085, -0.904915, 1.694231); v(0.938534, -0.918267, 1.686859); v(0.93645, -0.937091, 1.678569); v(0.946589, -0.953518, 1.672772); v(0.965116, -0.961951, 1.671437); v(0.984943, -0.958912, 1.675167); v(0.971284, -0.807158, 1.747399); v(1.002934, -0.841837, 1.663913); v(0.987962, -0.830458, 1.656004); v(0.967712, -0.828792, 1.65416); v(0.949919, -0.837475, 1.659088); v(0.941382, -0.853189, 1.668904); v(0.945359, -0.869935, 1.67986); v(0.960034, -0.881253, 1.687748); v(0.980582, -0.882979, 1.689612); v(0.998374, -0.874296, 1.684684); v(1.002587, -0.998005, 1.617105); v(0.998494, -0.94556, 1.682539); v(1.006911, -0.858583, 1.674869); v(0.131758, 1.245901, 3.399701); v(0.280774, 0.828848, 3.492676); v(0.067278, 1.264064, 3.399953); v(0.337751, 1.046591, 3.390706); v(0.200089, 1.118112, 3.501159); v(0.273138, 0.842924, 3.515299); v(1.10166, -0.41891, 0.757631); v(1.093581, -0.406707, 0.815288); v(1.106797, -0.439224, 0.72091); v(1.109101, -0.529901, 0.704094); v(0.962202, -0.525038, 1.126053); v(0.942726, -0.576464, 1.100952); v(0.938198, -0.663264, 1.058585); v(0.958193, -0.731003, 1.025522); v(0.979621, -0.766935, 1.007984); v(0.946388, -0.665937, 1.462032); v(0.967451, -0.945976, 1.322012); v(0.940336, -0.920178, 1.334911); v(0.920365, -0.887615, 1.351193); v(0.924797, -0.692415, 1.448793); v(0.93882, -0.929307, 1.362304); v(0.972282, -0.647462, 1.471269); v(0.909436, -0.726722, 1.431639); v(0.899851, -0.807895, 1.391053); v(0.899574, -0.820089, 1.416222); v(0.729177, 0.026188, 0.954263); v(0.691476, 0.01885, 1.032906); v(0.915881, -0.484536, 0.403324); v(0.919306, -0.3543, 0.340174); v(0.6309, 0.083568, 1.020866); v(0.577855, -0.056057, 1.149289); v(0.606433, -0.012182, 1.122368); v(0.631763, -0.033635, 1.12091); v(0.658312, 0.109824, 0.91021); v(0.642924, 0.101317, 0.975457); v(0.934037, -0.352434, 0.670311); v(0.933878, -0.405899, 0.619023); v(0.848278, -0.4938, 0.66255); v(0.862488, -0.488709, 0.65203); v(0.859309, -0.398821, 0.78638); v(0.877648, -0.375963, 0.779541); v(0.68004, 1.706026, 2.57392); v(0.664859, 1.679809, 2.544915); v(0.689805, 1.749578, 2.622027); v(0.638825, 1.704033, 2.572109); v(0.609555, -0.287361, 1.046966); v(0.974897, -0.56768, 0.851299); v(0.988004, -0.593102, 0.825911); v(0.874711, -0.541516, 0.393499); v(0.816325, -0.503947, 0.678878); v(0.834676, -0.493163, 0.68853); v(0.918767, -0.360789, 0.735423); v(0.885945, -0.403254, 0.776505); v(0.858988, -0.442414, 0.774323); v(0.863299, -0.418598, 0.778089); v(0.87165, -0.399775, 0.777654); v(0.88043, -0.428013, 0.786319); v(0.92418, -0.373981, 0.747158); v(0.935483, -0.36968, 0.725523); v(0.584512, -0.169578, 1.124876); v(0.661841, 0.048971, 1.007268); v(0.099466, 1.135558, 3.546152); v(0.342148, 0.8997, 3.398536); v(0.312916, 1.021541, 3.449333); v(0.302461, 1.049641, 3.449773); v(0.311976, 1.064098, 3.429566); v(0.310479, 0.989794, 3.473488); v(0.330162, 1.039212, 3.408923); v(0.345906, 0.965211, 3.39646); v(0.285051, 0.997699, 3.506628); v(0.670378, 1.709565, 2.518792); v(0.727415, 1.792177, 2.459591); v(0.701853, 1.776227, 2.539443); v(0.7311, 1.794161, 2.444099); v(0.710682, 1.759914, 2.477742); v(0.705942, 1.758919, 2.475472); v(0.70791, 1.799787, 2.563601); v(0.703918, 1.805101, 2.562251); v(0.691877, 1.783572, 2.567013); v(0.658078, 1.712786, 2.536838); v(0.736279, 1.838506, 2.551214); v(0.727835, 1.833174, 2.547331); v(0.699922, 1.782457, 2.561442); v(0.716912, 1.833394, 2.549927); v(0.724222, 1.835545, 2.544591); v(0.7146, 1.802883, 2.571075); v(0.689842, 1.797891, 2.575878); v(0.68943, 1.772686, 2.556537); v(0.68874, 1.7434, 2.496405); v(0.781546, 1.915831, 2.488242); v(1.085039, -0.560457, 0.718292); v(1.094629, -0.42535, 0.741508); v(1.070535, -0.409035, 0.816823); v(1.032922, -0.486737, 0.715213); v(1.023366, -0.426563, 0.77462); v(1.007298, -0.436727, 0.823618); v(0.974824, -0.469165, 0.85168); v(1.031681, -0.518994, 0.719186); v(1.035356, -0.558967, 0.740571); v(1.021373, -0.437606, 0.832069); v(1.045473, -0.432577, 0.780419); v(1.05071, -0.451982, 0.742431); v(1.056091, -0.469647, 0.726391); v(1.056003, -0.501451, 0.718497); v(1.047273, -0.538624, 0.727994); v(1.024848, -0.596816, 0.776254); v(1.017084, -0.604011, 0.794798); v(0.971241, -0.53374, 0.866735); v(0.949843, -0.389199, 0.667311); v(0.654115, -0.370602, 0.955209); v(0.8598, -0.549757, 0.442233); v(0.775407, -0.522054, 0.682204); v(0.772018, 0.011124, 0.769631); v(0.722757, -0.446774, 0.840898); v(0.823105, -0.554673, 0.550715); v(0.895788, -0.505792, 0.342615); v(0.906588, -0.452599, 0.310411); v(0.800817, -0.045395, 0.603); v(0.826325, -0.104028, 0.501671); v(0.902676, -0.417246, 0.290215); v(0.648307, 0.073189, 0.990194); v(0.668896, 0.057593, 0.973789); v(0.583216, -0.121228, 1.140179); v(0.590566, -0.05994, 1.141544); v(0.640826, 0.047826, 1.036746); v(0.568418, -0.133621, 1.145169); v(0.587019, -0.2018, 1.109107); v(0.596012, -0.232401, 1.090577); v(0.706926, 0.052695, 0.844235); v(0.737354, 0.028686, 0.751105); v(0.757974, 0.021585, 0.790367); v(0.721683, 0.042931, 0.799286); v(0.704813, 0.052255, 0.877705); v(0.673522, 0.070302, 0.925165); v(0.72039, 0.045037, 0.774168); v(0.898008, -0.402468, 0.261306); v(0.897036, -0.35316, 0.300596); v(0.865348, -0.237055, 0.34593); v(0.900727, -0.370947, 0.298351); v(0.885979, -0.312106, 0.305921); v(0.687585, 0.070936, 0.868564); v(0.941919, -0.374905, 0.674501); v(0.943158, -0.386202, 0.658809); v(0.899486, -0.384931, 0.766063); v(0.846413, -0.477593, 0.745314); v(0.846603, -0.491838, 0.701417); v(0.877433, -0.49624, 0.669156); v(0.919266, -0.460814, 0.637266); v(0.904359, -0.477099, 0.644411); v(0.934724, -0.360965, 0.694338); v(0.924898, -0.345329, 0.709342); v(0.892335, -0.37296, 0.764639); v(0.91073, -0.35222, 0.740901); v(0.841748, -0.441338, 0.771538); v(0.831012, -0.469972, 0.744936); v(0.936799, -0.412099, 0.63325); v(0.90175, -0.46516, 0.62754); v(0.77761, -0.494044, 0.73049); v(0.804136, -0.545161, 0.605868); v(0.94386, -0.370995, 0.702001); v(0.940205, -0.436126, 0.640941); v(0.847918, -0.490147, 0.725189); v(0.855393, -0.494213, 0.684056); v(0.849008, -0.460624, 0.762852); v(0.949045, -0.407252, 0.652111); v(0.887346, -0.482191, 0.647242); v(0.748249, 1.883371, 2.567466); v(0.732794, 1.853833, 2.598248); v(0.723165, 1.814646, 2.591112); v(0.769716, 1.900012, 2.522688); v(0.748115, 1.885444, 2.560516); v(0.756156, 1.892308, 2.525469); v(0.717155, 1.849326, 2.626112); v(0.706021, 1.771481, 2.534224); v(0.703817, 1.779106, 2.59888); v(0.673668, 1.771903, 2.584836); v(0.695406, 1.750303, 2.57224); v(0.681593, 1.755529, 2.532968); v(0.695141, 1.772549, 2.535263); v(0.672819, 1.761046, 2.574085); v(0.700483, 1.770411, 2.564821); v(0.703583, 1.781443, 2.575445); v(0.564378, -0.168396, 1.137661); v(0.561067, -0.087373, 1.161525); v(0.620808, 0.022372, 1.088272); v(0.659804, -0.001376, 1.091949); v(0.678957, 0.013494, 1.052257); v(0.762657, 0.020392, 0.834211); v(0.829401, -0.05099, 0.645366); v(0.85439, -0.095484, 0.573574); v(0.748753, 0.014997, 0.693255); v(0.655643, 0.131805, 0.8665); v(0.841127, -0.153203, 0.428596); v(0.892499, -0.208007, 0.427941); v(0.879495, -0.144116, 0.51642); v(0.911974, -0.285843, 0.372302); v(0.862831, -0.232593, 0.331635); v(0.880935, -0.306527, 0.288005); v(0.892756, -0.362933, 0.276415); v(0.92947, -0.401041, 0.34096); v(0.902203, -0.461305, 0.27422); v(0.89083, -0.524106, 0.30696); v(0.866458, -0.57783, 0.365934); v(0.830328, -0.569638, 0.498859); v(0.920017, -0.46066, 0.361813); v(0.901548, -0.508909, 0.435805); v(0.883794, -0.514619, 0.526315); v(0.888231, -0.474709, 0.625098); v(0.854788, -0.523685, 0.57566); v(0.91319, -0.448245, 0.605233); v(0.920014, -0.439395, 0.622985); v(0.940314, -0.373274, 0.637023); v(0.92071, -0.32374, 0.72143); v(0.899697, -0.34535, 0.760341); v(0.842403, -0.420448, 0.78655); v(0.823438, -0.454739, 0.7661); v(0.824738, -0.48116, 0.72389); v(0.787706, -0.469325, 0.77216); v(0.770591, -0.54249, 0.666512); v(0.74564, -0.499912, 0.758463); v(0.701217, -0.474871, 0.828384); v(0.660091, -0.408459, 0.918369); v(0.611722, -0.320612, 1.021558); v(0.579515, -0.237026, 1.095243); v(0.622418, -0.129745, 1.133915); v(0.627906, -0.069194, 1.137699); v(0.619327, -0.190434, 1.112314); v(0.809564, -0.072158, 0.519316); v(0.782686, -0.025445, 0.595595); v(1.109791, -0.458682, 0.698091); v(1.104665, -0.510016, 0.698213); v(1.045544, -0.418654, 0.942487); v(1.080299, -0.407052, 0.909408); v(1.034162, -0.615031, 0.775928); v(1.105425, -0.583368, 0.730074); v(1.000045, -0.462304, 0.868973); v(0.990299, -0.492554, 0.877936); v(0.978705, -0.565822, 0.88088); v(0.994015, -0.627151, 0.866222); v(1.028059, -0.789783, 0.964753); v(0.97226, -0.736358, 0.991347); v(0.942352, -0.652928, 1.032373); v(0.954134, -0.535809, 1.090311); v(0.964184, -0.668541, 1.490601); v(0.916056, -0.720373, 1.465472); v(0.91232, -0.89115, 1.381119); v(1.019425, -0.971238, 1.341604); v(1.038255, -0.808984, 0.98746); v(1.00821, -0.792997, 0.995263); v(0.99692, -0.960487, 1.314756); v(0.988259, -0.496299, 1.14008); v(1.049698, -0.459685, 1.127908); v(1.046213, -0.470408, 1.152717); v(1.069439, -0.812643, 0.985674); v(0.083982, 1.014574, 3.633521); v(0.149042, 1.058493, 3.580708); v(0.24905, 1.174074, 3.398861); v(0.191631, 1.215999, 3.399173); v(0.318552, 1.087182, 3.407881); v(0.346839, 1.008114, 3.375202); v(0.356, 0.93906, 3.369481); v(0.348739, 0.906699, 3.375266); v(0.320098, 0.837988, 3.407752); v(0.29545, 0.823186, 3.455111); v(0.285561, 1.081024, 3.456715); v(0.269302, 0.860544, 3.527016); v(0.654235, 1.673454, 2.537165); v(0.693701, 1.791473, 2.66847); v(0.682517, 1.807367, 2.686037); v(0.66123, 1.792837, 2.666176); v(0.644651, 1.751624, 2.622905); v(0.641923, 1.682183, 2.548084); v(0.673227, -0.212434, 1.089042); v(0.674078, -0.275965, 1.050419); v(1.072974, -0.798079, 0.960613); v(0.806249, -0.573375, 0.563141); v(1.000772, -0.639456, 1.475272); v(0.997615, -0.65603, 1.497213); v(1.023476, -0.964504, 1.312748); v(0.264744, 1.053374, 3.499142); v(0.759476, -0.413209, 0.872405); v(0.850322, -0.186, 0.388016); v(0.899275, -0.427429, 0.233294); v(0.971483, -0.974935, 1.684199); v(1.004106, -0.474906, 1.120397); v(1.009195, -0.482439, 1.146845); v(0, 1.081628, 3.604266); v(0, 1.354173, 3.214158); v(0, 1.270211, 3.399992); v(0, 1.338662, 2.730059); v(0, 0.651345, 3.536764); v(0, 0.628788, 3.359694); v(0, 0.967043, 3.66727); v(0, 0.760489, 3.747782); v(0, 0.612199, 2.841632); v(0, 0.476742, 2.436476); v(0, 1.135803, 2.195113); v(0, 0.637429, 1.155354); v(0, 0.136898, 1.879198); v(0, 0.515691, 0.775088); v(0, -0.076061, 1.614273); v(0, 0.353509, -0.101346); v(0, 0.249428, -0.560371); v(0, 0.063679, -0.822175); f2(937, 58, 59); f2(62, 58, 937); f2(58, 62, 61); f2(935, 62, 937); f2(36, 62, 935); f2(116, 50, 51); f2(115, 55, 56); f2(115, 56, 57); f2(42, 118, 54); f2(55, 118, 42); f2(55, 114, 118); f2(115, 114, 55); f2(54, 118, 53); f2(116, 57, 50); f2(26, 938, 17); f2(47, 437, 438); f2(21, 437, 47); f2(23, 18, 49); f2(20, 21, 47); f2(43, 439, 48); f2(18, 19, 49); f2(19, 931, 49); f2(48, 49, 928); f2(439, 49, 48); f2(49, 931, 928); f2(40, 50, 20); f2(50, 22, 20); f2(50, 0, 22); f2(40, 44, 34); f2(37, 40, 34); f2(927, 41, 934); f2(44, 45, 46); f2(44, 46, 34); f2(46, 38, 35); f2(45, 38, 46); f2(38, 932, 933); f2(38, 933, 35); f2(40, 47, 44); f2(44, 47, 43); f2(44, 43, 45); f2(45, 43, 48); f2(45, 48, 38); f2(927, 55, 42); f2(927, 42, 41); f2(41, 54, 33); f2(42, 54, 41); f2(53, 52, 32); f2(33, 53, 32); f2(54, 53, 33); f2(32, 40, 37); f2(32, 52, 40); f2(52, 51, 40); f2(51, 50, 40); f2(927, 39, 55); f2(39, 56, 55); f2(925, 39, 927); f2(39, 925, 119); f2(39, 119, 56); f2(40, 20, 47); f2(56, 4, 57); f2(29, 37, 87); f2(41, 60, 36); f2(28, 29, 88); f2(60, 28, 88); f2(88, 29, 87); f2(86, 30, 85); f2(87, 30, 86); f2(96, 27, 26); f2(35, 933, 27); f2(46, 35, 31); f2(30, 34, 31); f2(34, 46, 31); f2(29, 32, 37); f2(33, 32, 29); f2(41, 33, 28); f2(37, 34, 30); f2(30, 31, 85); f2(31, 35, 27); f2(31, 27, 96); f2(85, 31, 96); f2(87, 37, 30); f2(33, 29, 28); f2(60, 41, 28); f2(934, 41, 36); f2(27, 938, 26); f2(26, 17, 95); f2(939, 24, 7); f2(939, 8, 940); f2(939, 7, 8); f2(940, 8, 10); f2(940, 10, 11); f2(25, 12, 941); f2(940, 11, 25); f2(59, 16, 24); f2(16, 59, 14); f2(56, 119, 4); f2(3, 2, 57); f2(4, 3, 57); f2(4, 5, 3); f2(119, 5, 4); f2(57, 2, 1); f2(57, 0, 50); f2(1, 0, 57); f2(118, 117, 53); f2(53, 117, 52); f2(117, 51, 52); f2(97, 26, 95); f2(15, 89, 90); f2(58, 61, 89); f2(59, 89, 14); f2(62, 101, 61); f2(62, 60, 101); f2(89, 61, 64); f2(36, 60, 62); f2(60, 88, 101); f2(14, 89, 15); f2(97, 95, 100); f2(395, 94, 93); f2(395, 93, 92); f2(99, 395, 92); f2(88, 87, 63); f2(63, 87, 66); f2(63, 66, 360); f2(86, 85, 96); f2(86, 96, 66); f2(87, 86, 66); f2(97, 96, 26); f2(101, 88, 63); f2(91, 65, 403); f2(89, 64, 90); f2(453, 419, 72); f2(419, 84, 72); f2(419, 420, 84); f2(84, 420, 79); f2(79, 421, 71); f2(71, 422, 98); f2(418, 412, 413); f2(418, 413, 417); f2(413, 414, 417); f2(417, 414, 416); f2(414, 409, 416); f2(416, 409, 415); f2(409, 81, 415); f2(415, 81, 450); f2(411, 412, 418); f2(459, 75, 70); f2(74, 79, 75); f2(73, 84, 74); f2(72, 84, 73); f2(70, 71, 77); f2(77, 71, 76); f2(71, 98, 76); f2(70, 79, 71); f2(74, 84, 79); f2(83, 407, 427); f2(364, 68, 69); f2(69, 68, 107); f2(364, 363, 68); f2(370, 69, 67); f2(369, 370, 67); f2(375, 103, 380); f2(104, 449, 456); f2(67, 387, 103); f2(67, 105, 387); f2(69, 107, 105); f2(69, 105, 67); f2(375, 67, 103); f2(398, 97, 100); f2(363, 106, 68); f2(108, 448, 104); f2(448, 449, 104); f2(362, 361, 106); f2(106, 361, 108); f2(108, 400, 448); f2(941, 12, 13); f2(941, 13, 9); f2(940, 25, 941); f2(27, 933, 936); f2(48, 928, 929); f2(38, 48, 929); f2(38, 929, 932); f2(396, 397, 100); f2(396, 100, 395); f2(397, 398, 100); f2(378, 379, 99); f2(379, 451, 99); f2(394, 395, 99); f2(451, 394, 99); f2(395, 100, 94); f2(66, 97, 359); f2(66, 96, 97); f2(365, 364, 69); f2(365, 69, 370); f2(369, 67, 371); f2(371, 67, 375); f2(65, 101, 367); f2(64, 101, 65); f2(64, 61, 101); f2(59, 58, 89); f2(401, 400, 108); f2(361, 401, 108); f2(400, 402, 448); f2(358, 97, 399); f2(399, 97, 398); f2(359, 97, 358); f2(90, 64, 65); f2(65, 404, 403); f2(65, 367, 366); f2(65, 366, 404); f2(102, 372, 373); f2(102, 373, 374); f2(91, 403, 102); f2(103, 386, 385); f2(105, 107, 388); f2(107, 389, 388); f2(391, 393, 392); f2(382, 383, 384); f2(390, 104, 391); f2(104, 456, 391); f2(391, 456, 393); f2(385, 383, 382); f2(381, 385, 382); f2(103, 385, 381); f2(68, 106, 107); f2(107, 106, 108); f2(389, 108, 104); f2(107, 108, 389); f2(935, 934, 36); f2(937, 59, 939); f2(939, 59, 24); f2(27, 936, 938); f2(110, 442, 117); f2(109, 445, 115); f2(109, 57, 116); f2(57, 109, 115); f2(112, 116, 51); f2(118, 110, 117); f2(111, 110, 118); f2(114, 111, 118); f2(115, 445, 114); f2(442, 51, 117); f2(442, 112, 51); f2(112, 113, 116); f2(113, 109, 116); f2(445, 446, 114); f2(446, 111, 114); f2(443, 113, 112); f2(113, 445, 109); f2(443, 444, 113); f2(113, 444, 445); f2(447, 442, 110); f2(447, 110, 111); f2(120, 91, 102); f2(120, 102, 121); f2(125, 122, 123); f2(129, 374, 458); f2(458, 376, 126); f2(138, 133, 135); f2(138, 136, 133); f2(134, 136, 125); f2(126, 142, 125); f2(142, 130, 122); f2(125, 142, 122); f2(125, 123, 124); f2(129, 458, 126); f2(142, 128, 130); f2(142, 127, 128); f2(99, 92, 127); f2(142, 99, 127); f2(376, 377, 126); f2(102, 374, 129); f2(136, 126, 125); f2(132, 126, 136); f2(129, 126, 132); f2(140, 129, 132); f2(140, 131, 139); f2(140, 132, 131); f2(137, 125, 141); f2(141, 125, 124); f2(121, 129, 140); f2(121, 102, 129); f2(138, 132, 136); f2(137, 134, 125); f2(378, 143, 377); f2(99, 143, 378); f2(142, 143, 99); f2(126, 377, 143); f2(142, 126, 143); f2(175, 163, 172); f2(172, 163, 171); f2(163, 170, 171); f2(163, 169, 170); f2(163, 168, 169); f2(163, 167, 168); f2(163, 166, 167); f2(166, 163, 165); f2(165, 163, 164); f2(164, 163, 175); f2(162, 174, 156); f2(161, 162, 156); f2(160, 161, 156); f2(159, 160, 156); f2(158, 159, 156); f2(157, 158, 156); f2(155, 157, 156); f2(154, 155, 156); f2(153, 154, 156); f2(174, 153, 156); f2(152, 173, 144); f2(151, 152, 144); f2(150, 151, 144); f2(149, 150, 144); f2(148, 149, 144); f2(147, 148, 144); f2(146, 147, 144); f2(145, 146, 144); f2(173, 145, 144); f2(221, 399, 398); f2(413, 222, 223); f2(203, 381, 224); f2(226, 225, 213); f2(232, 230, 229); f2(228, 231, 230); f2(234, 227, 233); f2(400, 235, 402); f2(236, 202, 201); f2(237, 924, 430); f2(431, 237, 430); f2(430, 924, 930); f2(237, 926, 924); f2(178, 926, 237); f2(176, 178, 237); f2(433, 176, 237); f2(432, 433, 180); f2(433, 237, 180); f2(180, 237, 431); f2(437, 238, 438); f2(434, 440, 241); f2(437, 436, 238); f2(436, 244, 238); f2(435, 243, 244); f2(179, 243, 435); f2(240, 455, 245); f2(240, 245, 242); f2(435, 244, 436); f2(179, 241, 243); f2(239, 240, 242); f2(440, 455, 240); f2(434, 241, 179); f2(246, 218, 442); f2(247, 249, 248); f2(249, 250, 251); f2(253, 252, 254); f2(220, 0xFF, 447); f2(447, 246, 442); f2(254, 258, 263); f2(260, 265, 0x0101); f2(249, 251, 264); f2(260, 0x0101, 253); f2(253, 0x0101, 252); f2(0x0101, 0x0100, 261); f2(264, 246, 447); f2(246, 250, 218); f2(251, 250, 246); f2(265, 260, 259); f2(259, 260, 262); f2(260, 253, 262); f2(282, 281, 409); f2(413, 283, 222); f2(273, 280, 274); f2(269, 278, 279); f2(269, 279, 273); f2(412, 272, 283); f2(411, 272, 412); f2(411, 271, 272); f2(275, 271, 411); f2(275, 270, 271); f2(223, 282, 414); f2(413, 223, 414); f2(273, 279, 280); f2(269, 277, 278); f2(270, 233, 271); f2(337, 338, 282); f2(272, 232, 283); f2(222, 337, 223); f2(223, 337, 282); f2(338, 281, 282); f2(341, 273, 274); f2(276, 270, 275); f2(266, 410, 409); f2(266, 185, 410); f2(406, 185, 266); f2(267, 184, 405); f2(267, 182, 184); f2(268, 182, 267); f2(268, 183, 182); f2(408, 183, 268); f2(408, 268, 407); f2(412, 283, 413); f2(407, 268, 275); f2(268, 267, 276); f2(279, 405, 406); f2(277, 267, 405); f2(281, 266, 409); f2(280, 266, 274); f2(280, 406, 266); f2(278, 405, 279); f2(276, 267, 277); f2(407, 275, 411); f2(268, 276, 275); f2(274, 266, 281); f2(279, 406, 280); f2(277, 405, 278); f2(282, 409, 414); f2(335, 270, 277); f2(270, 276, 277); f2(335, 234, 270); f2(234, 233, 270); f2(284, 335, 277); f2(340, 284, 277); f2(340, 277, 269); f2(336, 340, 269); f2(449, 448, 303); f2(382, 384, 290); f2(286, 382, 290); f2(381, 382, 286); f2(224, 381, 286); f2(224, 286, 379); f2(291, 203, 224); f2(380, 203, 291); f2(292, 380, 291); f2(314, 204, 375); f2(292, 375, 380); f2(294, 370, 368); f2(368, 370, 369); f2(294, 365, 370); f2(294, 293, 365); f2(293, 364, 365); f2(285, 397, 289); f2(289, 397, 396); f2(285, 398, 397); f2(221, 398, 285); f2(404, 293, 403); f2(404, 366, 293); f2(289, 396, 395); f2(286, 290, 379); f2(290, 451, 379); f2(291, 224, 378); f2(224, 379, 378); f2(377, 291, 378); f2(376, 292, 291); f2(376, 291, 377); f2(314, 375, 295); f2(295, 375, 292); f2(295, 292, 376); f2(315, 371, 204); f2(333, 395, 287); f2(333, 289, 395); f2(287, 395, 394); f2(366, 288, 364); f2(366, 364, 293); f2(403, 293, 294); f2(334, 287, 394); f2(334, 394, 451); f2(290, 334, 451); f2(313, 369, 371); f2(313, 457, 369); f2(457, 368, 369); f2(202, 236, 300); f2(364, 288, 363); f2(289, 333, 456); f2(285, 289, 456); f2(285, 456, 449); f2(449, 221, 285); f2(221, 449, 303); f2(297, 296, 236); f2(296, 300, 236); f2(309, 296, 297); f2(296, 205, 300); f2(210, 296, 309); f2(210, 205, 296); f2(201, 309, 297); f2(201, 297, 236); f2(300, 360, 362); f2(362, 360, 361); f2(361, 360, 207); f2(361, 207, 208); f2(207, 206, 299); f2(299, 206, 298); f2(208, 207, 299); f2(208, 299, 401); f2(401, 299, 298); f2(401, 298, 400); f2(400, 298, 235); f2(300, 362, 202); f2(205, 360, 300); f2(303, 448, 402); f2(235, 358, 302); f2(235, 301, 358); f2(303, 399, 221); f2(302, 358, 399); f2(302, 399, 303); f2(301, 359, 358); f2(303, 402, 302); f2(359, 301, 298); f2(298, 206, 359); f2(304, 308, 363); f2(306, 304, 363); f2(307, 306, 305); f2(307, 304, 306); f2(304, 309, 308); f2(310, 307, 305); f2(310, 316, 307); f2(316, 309, 304); f2(316, 210, 309); f2(310, 305, 366); f2(316, 304, 307); f2(288, 366, 305); f2(306, 288, 305); f2(306, 363, 288); f2(308, 201, 363); f2(402, 235, 302); f2(235, 298, 301); f2(309, 201, 308); f2(366, 367, 310); f2(367, 209, 310); f2(310, 209, 316); f2(209, 210, 316); f2(372, 313, 315); f2(373, 372, 315); f2(373, 312, 374); f2(373, 315, 312); f2(374, 312, 314); f2(374, 311, 458); f2(372, 457, 313); f2(458, 295, 376); f2(458, 311, 295); f2(311, 374, 314); f2(314, 295, 311); f2(204, 314, 312); f2(312, 315, 204); f2(371, 315, 313); f2(227, 234, 335); f2(211, 388, 326); f2(326, 388, 328); f2(388, 389, 328); f2(328, 389, 327); f2(327, 389, 216); f2(327, 216, 231); f2(231, 216, 215); f2(231, 215, 390); f2(231, 390, 230); f2(230, 390, 329); f2(390, 391, 329); f2(330, 391, 392); f2(329, 391, 330); f2(338, 321, 226); f2(321, 392, 226); f2(330, 392, 321); f2(226, 333, 225); f2(392, 333, 226); f2(392, 393, 333); f2(383, 341, 214); f2(213, 338, 226); f2(385, 386, 332); f2(385, 332, 383); f2(383, 332, 341); f2(384, 213, 334); f2(334, 213, 225); f2(332, 324, 341); f2(332, 323, 324); f2(332, 386, 323); f2(212, 331, 386); f2(386, 336, 323); f2(331, 336, 386); f2(331, 340, 336); f2(330, 321, 337); f2(339, 329, 330); f2(339, 330, 320); f2(320, 330, 337); f2(230, 329, 229); f2(229, 329, 339); f2(319, 327, 231); f2(319, 231, 228); f2(228, 230, 232); f2(326, 328, 227); f2(328, 327, 227); f2(227, 327, 319); f2(233, 227, 319); f2(211, 325, 317); f2(211, 326, 325); f2(326, 227, 325); f2(325, 335, 317); f2(325, 227, 335); f2(212, 387, 331); f2(387, 318, 331); f2(387, 211, 318); f2(211, 317, 318); f2(318, 340, 331); f2(333, 393, 456); f2(334, 225, 333); f2(287, 334, 333); f2(290, 384, 334); f2(284, 317, 335); f2(318, 317, 284); f2(340, 318, 284); f2(323, 336, 269); f2(273, 324, 323); f2(269, 273, 323); f2(273, 341, 324); f2(322, 341, 274); f2(213, 214, 338); f2(214, 341, 322); f2(338, 214, 322); f2(281, 338, 322); f2(274, 281, 322); f2(338, 337, 321); f2(320, 337, 222); f2(222, 339, 320); f2(339, 222, 283); f2(283, 232, 229); f2(339, 283, 229); f2(272, 228, 232); f2(271, 228, 272); f2(319, 228, 271); f2(271, 233, 319); f2(444, 348, 445); f2(348, 346, 445); f2(343, 342, 444); f2(352, 356, 219); f2(356, 350, 219); f2(262, 351, 446); f2(347, 446, 445); f2(344, 443, 219); f2(344, 345, 443); f2(345, 343, 443); f2(346, 347, 445); f2(343, 444, 443); f2(342, 348, 444); f2(350, 344, 219); f2(355, 353, 446); f2(351, 355, 446); f2(265, 259, 446); f2(347, 265, 446); f2(342, 265, 346); f2(342, 346, 348); f2(346, 265, 347); f2(265, 0x0100, 0x0101); f2(345, 265, 342); f2(345, 342, 343); f2(446, 259, 262); f2(254, 252, 258); f2(0x0100, 344, 350); f2(0x0100, 265, 344); f2(265, 345, 344); f2(258, 252, 357); f2(0x0101, 261, 252); f2(252, 261, 357); f2(0xFF, 264, 447); f2(264, 251, 246); f2(249, 264, 0xFF); f2(249, 0xFF, 220); f2(353, 249, 220); f2(258, 248, 263); f2(263, 248, 354); f2(248, 249, 354); f2(249, 247, 217); f2(247, 349, 352); f2(248, 258, 356); f2(349, 248, 356); f2(349, 356, 352); f2(247, 248, 349); f2(250, 217, 218); f2(250, 249, 217); f2(446, 353, 220); f2(352, 219, 217); f2(351, 254, 355); f2(254, 263, 355); f2(357, 350, 356); f2(258, 357, 356); f2(262, 253, 351); f2(253, 254, 351); f2(357, 261, 350); f2(261, 0x0100, 350); f2(263, 354, 355); f2(354, 249, 353); f2(355, 354, 353); f2(247, 352, 217); f2(359, 206, 66); f2(66, 206, 207); f2(207, 360, 66); f2(360, 205, 63); f2(63, 205, 210); f2(210, 209, 63); f2(209, 367, 101); f2(63, 209, 101); f2(208, 401, 361); f2(202, 106, 201); f2(106, 202, 362); f2(106, 363, 201); f2(103, 381, 203); f2(103, 203, 380); f2(371, 375, 204); f2(384, 214, 213); f2(383, 214, 384); f2(212, 386, 103); f2(387, 212, 103); f2(105, 388, 211); f2(387, 105, 211); f2(104, 390, 215); f2(104, 215, 216); f2(104, 216, 389); f2(403, 294, 368); f2(403, 368, 102); f2(408, 407, 83); f2(409, 410, 78); f2(409, 78, 81); f2(80, 454, 425); f2(423, 429, 80); f2(80, 425, 423); f2(425, 424, 423); f2(424, 425, 192); f2(192, 190, 424); f2(190, 192, 193); f2(193, 189, 190); f2(189, 193, 194); f2(194, 188, 189); f2(188, 194, 199); f2(199, 187, 188); f2(187, 199, 198); f2(198, 186, 187); f2(186, 198, 195); f2(195, 426, 186); f2(195, 191, 426); f2(79, 420, 200); f2(421, 79, 200); f2(71, 421, 196); f2(196, 422, 71); f2(49, 439, 177); f2(43, 47, 438); f2(438, 439, 43); f2(181, 49, 177); f2(181, 441, 23); f2(181, 23, 49); f2(442, 218, 112); f2(112, 218, 217); f2(217, 219, 112); f2(219, 443, 112); f2(111, 446, 220); f2(220, 447, 111); f2(65, 6, 90); f2(6, 65, 91); f2(372, 102, 457); f2(368, 457, 102); f2(407, 411, 460); f2(460, 411, 418); f2(197, 461, 426); f2(426, 191, 197); f2(197, 452, 82); f2(461, 197, 82); f2(427, 407, 460); f2(82, 428, 461); f2(70, 459, 79); f2(75, 79, 459); f2(520, 937, 521); f2(520, 524, 937); f2(524, 520, 523); f2(524, 935, 937); f2(524, 498, 935); f2(0x0200, 578, 513); f2(517, 577, 518); f2(518, 577, 519); f2(580, 504, 516); f2(580, 517, 504); f2(576, 517, 580); f2(576, 577, 517); f2(580, 516, 515); f2(519, 578, 0x0200); f2(938, 488, 479); f2(899, 509, 900); f2(899, 483, 509); f2(480, 485, 511); f2(483, 482, 509); f2(901, 505, 510); f2(481, 480, 511); f2(931, 481, 511); f2(511, 510, 928); f2(511, 901, 510); f2(931, 511, 928); f2(0x0200, 502, 482); f2(484, 0x0200, 482); f2(462, 0x0200, 484); f2(506, 502, 496); f2(502, 499, 496); f2(503, 927, 934); f2(507, 506, 508); f2(508, 506, 496); f2(500, 508, 497); f2(500, 507, 508); f2(932, 500, 933); f2(933, 500, 497); f2(509, 502, 506); f2(509, 506, 505); f2(505, 506, 507); f2(505, 507, 510); f2(510, 507, 500); f2(517, 927, 504); f2(504, 927, 503); f2(516, 503, 495); f2(516, 504, 503); f2(0x0202, 515, 494); f2(515, 495, 494); f2(515, 516, 495); f2(502, 494, 499); f2(0x0202, 494, 502); f2(513, 0x0202, 502); f2(0x0200, 513, 502); f2(501, 927, 517); f2(518, 501, 517); f2(501, 925, 927); f2(925, 501, 581); f2(581, 501, 518); f2(482, 502, 509); f2(466, 518, 519); f2(499, 491, 549); f2(522, 503, 498); f2(491, 490, 550); f2(490, 522, 550); f2(491, 550, 549); f2(492, 548, 547); f2(492, 549, 548); f2(489, 558, 488); f2(933, 497, 489); f2(497, 508, 493); f2(496, 492, 493); f2(508, 496, 493); f2(494, 491, 499); f2(494, 495, 491); f2(495, 503, 490); f2(496, 499, 492); f2(493, 492, 547); f2(497, 493, 489); f2(489, 493, 558); f2(493, 547, 558); f2(499, 549, 492); f2(491, 495, 490); f2(503, 522, 490); f2(503, 934, 498); f2(938, 489, 488); f2(479, 488, 557); f2(486, 939, 469); f2(470, 939, 940); f2(469, 939, 470); f2(470, 940, 472); f2(472, 940, 473); f2(474, 487, 941); f2(473, 940, 487); f2(478, 521, 486); f2(521, 478, 476); f2(581, 518, 466); f2(464, 465, 519); f2(465, 466, 519); f2(467, 466, 465); f2(467, 581, 466); f2(464, 519, 463); f2(519, 0x0200, 462); f2(463, 519, 462); f2(579, 580, 515); f2(579, 515, 0x0202); f2(513, 579, 0x0202); f2(488, 559, 557); f2(551, 477, 552); f2(523, 520, 551); f2(551, 521, 476); f2(563, 524, 523); f2(522, 524, 563); f2(523, 551, 526); f2(522, 498, 524); f2(550, 522, 563); f2(551, 476, 477); f2(557, 559, 562); f2(556, 857, 555); f2(555, 857, 554); f2(857, 561, 554); f2(549, 550, 525); f2(549, 525, 528); f2(528, 525, 822); f2(547, 548, 558); f2(558, 548, 528); f2(548, 549, 528); f2(558, 559, 488); f2(550, 563, 525); f2(527, 553, 865); f2(526, 551, 552); f2(881, 915, 534); f2(546, 881, 534); f2(882, 881, 546); f2(882, 546, 541); f2(883, 541, 533); f2(884, 533, 560); f2(874, 880, 875); f2(875, 880, 879); f2(876, 875, 879); f2(876, 879, 878); f2(871, 876, 878); f2(871, 878, 877); f2(543, 871, 877); f2(543, 877, 912); f2(874, 873, 880); f2(537, 921, 532); f2(541, 536, 537); f2(546, 535, 536); f2(546, 534, 535); f2(533, 532, 539); f2(533, 539, 538); f2(560, 533, 538); f2(541, 532, 533); f2(546, 536, 541); f2(869, 545, 889); f2(530, 826, 531); f2(530, 531, 569); f2(825, 826, 530); f2(531, 832, 529); f2(832, 831, 529); f2(565, 837, 842); f2(911, 566, 918); f2(849, 529, 565); f2(567, 529, 849); f2(569, 531, 567); f2(567, 531, 529); f2(529, 837, 565); f2(559, 860, 562); f2(568, 825, 530); f2(910, 570, 566); f2(911, 910, 566); f2(823, 824, 568); f2(823, 568, 570); f2(862, 570, 910); f2(474, 941, 475); f2(475, 941, 471); f2(487, 940, 941); f2(933, 489, 936); f2(928, 510, 929); f2(510, 500, 929); f2(929, 500, 932); f2(859, 858, 562); f2(562, 858, 857); f2(860, 859, 562); f2(841, 840, 561); f2(913, 841, 561); f2(857, 856, 561); f2(856, 913, 561); f2(562, 857, 556); f2(559, 528, 821); f2(558, 528, 559); f2(826, 827, 531); f2(531, 827, 832); f2(529, 831, 833); f2(529, 833, 837); f2(563, 527, 829); f2(563, 526, 527); f2(523, 526, 563); f2(520, 521, 551); f2(862, 863, 570); f2(863, 823, 570); f2(864, 862, 910); f2(559, 820, 861); f2(559, 861, 860); f2(559, 821, 820); f2(526, 552, 527); f2(866, 527, 865); f2(829, 527, 828); f2(828, 527, 866); f2(834, 564, 835); f2(835, 564, 836); f2(865, 553, 564); f2(848, 565, 847); f2(569, 567, 850); f2(851, 569, 850); f2(855, 853, 854); f2(845, 844, 846); f2(566, 852, 853); f2(918, 566, 853); f2(918, 853, 855); f2(845, 847, 844); f2(847, 843, 844); f2(847, 565, 843); f2(568, 530, 569); f2(568, 569, 570); f2(570, 851, 566); f2(570, 569, 851); f2(934, 935, 498); f2(521, 937, 939); f2(521, 939, 486); f2(936, 489, 938); f2(904, 572, 579); f2(907, 571, 577); f2(519, 571, 578); f2(571, 519, 577); f2(578, 574, 513); f2(572, 580, 579); f2(572, 573, 580); f2(573, 576, 580); f2(907, 577, 576); f2(513, 904, 579); f2(574, 904, 513); f2(575, 574, 578); f2(571, 575, 578); f2(908, 907, 576); f2(573, 908, 576); f2(575, 905, 574); f2(907, 575, 571); f2(906, 905, 575); f2(906, 575, 907); f2(904, 909, 572); f2(572, 909, 573); f2(553, 582, 564); f2(564, 582, 583); f2(584, 587, 585); f2(836, 591, 920); f2(838, 920, 588); f2(595, 600, 597); f2(598, 600, 595); f2(598, 596, 587); f2(604, 588, 587); f2(592, 604, 584); f2(604, 587, 584); f2(585, 587, 586); f2(920, 591, 588); f2(590, 604, 592); f2(589, 604, 590); f2(554, 561, 589); f2(561, 604, 589); f2(839, 838, 588); f2(836, 564, 591); f2(588, 598, 587); f2(588, 594, 598); f2(588, 591, 594); f2(591, 602, 594); f2(593, 602, 601); f2(594, 602, 593); f2(587, 599, 603); f2(587, 603, 586); f2(591, 583, 602); f2(564, 583, 591); f2(594, 600, 598); f2(596, 599, 587); f2(605, 840, 839); f2(605, 561, 840); f2(605, 604, 561); f2(839, 588, 605); f2(588, 604, 605); f2(625, 637, 634); f2(625, 634, 633); f2(632, 625, 633); f2(631, 625, 632); f2(630, 625, 631); f2(629, 625, 630); f2(628, 625, 629); f2(625, 628, 627); f2(625, 627, 626); f2(625, 626, 637); f2(636, 624, 618); f2(624, 623, 618); f2(623, 622, 618); f2(622, 621, 618); f2(621, 620, 618); f2(620, 619, 618); f2(619, 617, 618); f2(617, 616, 618); f2(616, 615, 618); f2(615, 636, 618); f2(635, 614, 606); f2(614, 613, 606); f2(613, 612, 606); f2(612, 611, 606); f2(611, 610, 606); f2(610, 609, 606); f2(609, 608, 606); f2(608, 607, 606); f2(607, 635, 606); f2(861, 683, 860); f2(684, 875, 685); f2(843, 665, 686); f2(687, 688, 675); f2(692, 694, 691); f2(693, 690, 692); f2(689, 696, 695); f2(697, 862, 864); f2(664, 698, 663); f2(924, 699, 892); f2(699, 893, 892); f2(924, 892, 930); f2(926, 699, 924); f2(926, 640, 699); f2(640, 638, 699); f2(638, 895, 699); f2(895, 894, 642); f2(699, 895, 642); f2(699, 642, 893); f2(700, 899, 900); f2(902, 896, 703); f2(898, 899, 700); f2(706, 898, 700); f2(705, 897, 706); f2(705, 641, 897); f2(917, 702, 707); f2(707, 702, 704); f2(706, 897, 898); f2(703, 641, 705); f2(702, 701, 704); f2(917, 902, 702); f2(703, 896, 641); f2(680, 708, 904); f2(711, 709, 710); f2(712, 711, 713); f2(714, 715, 716); f2(717, 682, 909); f2(708, 909, 904); f2(720, 716, 725); f2(727, 722, 719); f2(713, 711, 726); f2(719, 722, 715); f2(719, 715, 714); f2(718, 719, 723); f2(708, 726, 909); f2(712, 708, 680); f2(712, 713, 708); f2(722, 727, 721); f2(722, 721, 724); f2(715, 722, 724); f2(743, 744, 871); f2(745, 875, 684); f2(742, 735, 736); f2(740, 731, 741); f2(741, 731, 735); f2(734, 874, 745); f2(734, 873, 874); f2(733, 873, 734); f2(733, 737, 873); f2(732, 737, 733); f2(744, 685, 876); f2(685, 875, 876); f2(741, 735, 742); f2(739, 731, 740); f2(695, 732, 733); f2(800, 799, 744); f2(694, 734, 745); f2(799, 684, 685); f2(799, 685, 744); f2(743, 800, 744); f2(735, 803, 736); f2(732, 738, 737); f2(872, 728, 871); f2(647, 728, 872); f2(647, 868, 728); f2(646, 729, 867); f2(644, 729, 646); f2(644, 730, 729); f2(645, 730, 644); f2(645, 870, 730); f2(730, 870, 869); f2(745, 874, 875); f2(730, 869, 737); f2(729, 730, 738); f2(867, 741, 868); f2(729, 739, 867); f2(728, 743, 871); f2(728, 742, 736); f2(868, 742, 728); f2(867, 740, 741); f2(729, 738, 739); f2(737, 869, 873); f2(738, 730, 737); f2(728, 736, 743); f2(868, 741, 742); f2(867, 739, 740); f2(871, 744, 876); f2(732, 797, 739); f2(738, 732, 739); f2(696, 797, 732); f2(695, 696, 732); f2(797, 746, 739); f2(746, 802, 739); f2(739, 802, 731); f2(802, 798, 731); f2(910, 911, 765); f2(846, 844, 752); f2(844, 748, 752); f2(844, 843, 748); f2(843, 686, 748); f2(748, 686, 841); f2(665, 753, 686); f2(665, 842, 753); f2(842, 754, 753); f2(666, 776, 837); f2(837, 754, 842); f2(832, 756, 830); f2(832, 830, 831); f2(827, 756, 832); f2(755, 756, 827); f2(826, 755, 827); f2(859, 747, 751); f2(859, 751, 858); f2(860, 747, 859); f2(860, 683, 747); f2(755, 866, 865); f2(828, 866, 755); f2(858, 751, 857); f2(752, 748, 841); f2(913, 752, 841); f2(686, 753, 840); f2(841, 686, 840); f2(753, 839, 840); f2(754, 838, 753); f2(753, 838, 839); f2(837, 776, 757); f2(837, 757, 754); f2(754, 757, 838); f2(833, 777, 666); f2(857, 795, 749); f2(751, 795, 857); f2(857, 749, 856); f2(750, 828, 826); f2(826, 828, 755); f2(755, 865, 756); f2(749, 796, 856); f2(856, 796, 913); f2(796, 752, 913); f2(831, 775, 833); f2(919, 775, 831); f2(830, 919, 831); f2(698, 664, 762); f2(750, 826, 825); f2(795, 751, 918); f2(751, 747, 918); f2(918, 747, 911); f2(683, 911, 747); f2(911, 683, 765); f2(758, 759, 698); f2(762, 758, 698); f2(758, 0x0303, 759); f2(667, 758, 762); f2(758, 672, 0x0303); f2(667, 672, 758); f2(0x0303, 663, 759); f2(759, 663, 698); f2(822, 762, 824); f2(822, 824, 823); f2(822, 823, 669); f2(669, 823, 670); f2(668, 669, 761); f2(668, 761, 760); f2(669, 670, 761); f2(761, 670, 863); f2(761, 863, 760); f2(760, 863, 862); f2(760, 862, 697); f2(824, 762, 664); f2(822, 667, 762); f2(910, 765, 864); f2(820, 697, 764); f2(763, 697, 820); f2(861, 765, 683); f2(820, 764, 861); f2(861, 764, 765); f2(821, 763, 820); f2(864, 765, 764); f2(763, 821, 760); f2(668, 760, 821); f2(770, 766, 825); f2(766, 0x0300, 825); f2(0x0300, 769, 767); f2(766, 769, 0x0300); f2(0x0303, 766, 770); f2(769, 772, 767); f2(778, 772, 769); f2(0x0303, 778, 766); f2(672, 778, 0x0303); f2(767, 772, 828); f2(766, 778, 769); f2(828, 750, 767); f2(750, 0x0300, 767); f2(825, 0x0300, 750); f2(663, 770, 825); f2(697, 864, 764); f2(760, 697, 763); f2(663, 0x0303, 770); f2(829, 828, 772); f2(671, 829, 772); f2(671, 772, 778); f2(672, 671, 778); f2(775, 834, 777); f2(834, 835, 777); f2(774, 835, 836); f2(777, 835, 774); f2(774, 836, 776); f2(773, 836, 920); f2(919, 834, 775); f2(757, 920, 838); f2(773, 920, 757); f2(836, 773, 776); f2(757, 776, 773); f2(776, 666, 774); f2(777, 774, 666); f2(777, 833, 775); f2(696, 689, 797); f2(850, 673, 788); f2(850, 788, 790); f2(851, 850, 790); f2(851, 790, 789); f2(851, 789, 678); f2(678, 789, 693); f2(678, 693, 677); f2(677, 693, 852); f2(852, 693, 692); f2(852, 692, 791); f2(853, 852, 791); f2(853, 792, 854); f2(853, 791, 792); f2(783, 800, 688); f2(854, 783, 688); f2(854, 792, 783); f2(795, 688, 687); f2(795, 854, 688); f2(855, 854, 795); f2(803, 845, 676); f2(800, 675, 688); f2(848, 847, 794); f2(794, 847, 845); f2(794, 845, 803); f2(675, 846, 796); f2(675, 796, 687); f2(786, 794, 803); f2(785, 794, 786); f2(848, 794, 785); f2(793, 674, 848); f2(798, 848, 785); f2(798, 793, 848); f2(802, 793, 798); f2(783, 792, 799); f2(791, 801, 792); f2(792, 801, 782); f2(792, 782, 799); f2(791, 692, 691); f2(791, 691, 801); f2(789, 781, 693); f2(693, 781, 690); f2(692, 690, 694); f2(790, 788, 689); f2(789, 790, 689); f2(789, 689, 781); f2(689, 695, 781); f2(787, 673, 779); f2(788, 673, 787); f2(689, 788, 787); f2(797, 787, 779); f2(689, 787, 797); f2(849, 674, 793); f2(780, 849, 793); f2(673, 849, 780); f2(779, 673, 780); f2(802, 780, 793); f2(855, 795, 918); f2(687, 796, 795); f2(796, 749, 795); f2(846, 752, 796); f2(779, 746, 797); f2(779, 780, 746); f2(780, 802, 746); f2(798, 785, 731); f2(786, 735, 785); f2(735, 731, 785); f2(803, 735, 786); f2(803, 784, 736); f2(676, 675, 800); f2(803, 676, 784); f2(676, 800, 784); f2(800, 743, 784); f2(743, 736, 784); f2(799, 800, 783); f2(799, 782, 684); f2(801, 684, 782); f2(684, 801, 745); f2(694, 745, 691); f2(745, 801, 691); f2(690, 734, 694); f2(690, 733, 734); f2(690, 781, 733); f2(695, 733, 781); f2(810, 906, 907); f2(808, 810, 907); f2(804, 805, 906); f2(818, 814, 681); f2(812, 818, 681); f2(813, 724, 908); f2(908, 809, 907); f2(905, 806, 681); f2(807, 806, 905); f2(805, 807, 905); f2(809, 808, 907); f2(906, 805, 905); f2(810, 804, 906); f2(806, 812, 681); f2(815, 817, 908); f2(817, 813, 908); f2(721, 727, 908); f2(727, 809, 908); f2(727, 804, 808); f2(808, 804, 810); f2(727, 808, 809); f2(718, 727, 719); f2(727, 807, 804); f2(804, 807, 805); f2(721, 908, 724); f2(714, 716, 720); f2(806, 718, 812); f2(727, 718, 806); f2(807, 727, 806); f2(714, 720, 819); f2(723, 719, 714); f2(723, 714, 819); f2(726, 717, 909); f2(713, 726, 708); f2(726, 711, 717); f2(717, 711, 682); f2(711, 815, 682); f2(710, 720, 725); f2(710, 725, 816); f2(711, 710, 816); f2(709, 711, 679); f2(811, 709, 814); f2(720, 710, 818); f2(710, 811, 818); f2(818, 811, 814); f2(710, 709, 811); f2(679, 712, 680); f2(711, 712, 679); f2(815, 908, 682); f2(681, 814, 679); f2(716, 813, 817); f2(725, 716, 817); f2(812, 819, 818); f2(819, 720, 818); f2(715, 724, 813); f2(716, 715, 813); f2(723, 819, 812); f2(718, 723, 812); f2(816, 725, 817); f2(711, 816, 815); f2(816, 817, 815); f2(814, 709, 679); f2(668, 821, 528); f2(668, 528, 669); f2(822, 669, 528); f2(667, 822, 525); f2(667, 525, 672); f2(671, 672, 525); f2(829, 671, 563); f2(671, 525, 563); f2(863, 670, 823); f2(568, 664, 663); f2(664, 568, 824); f2(825, 568, 663); f2(843, 565, 665); f2(665, 565, 842); f2(837, 833, 666); f2(676, 846, 675); f2(676, 845, 846); f2(848, 674, 565); f2(674, 849, 565); f2(850, 567, 673); f2(567, 849, 673); f2(852, 566, 677); f2(677, 566, 678); f2(678, 566, 851); f2(756, 865, 830); f2(830, 865, 564); f2(869, 870, 545); f2(872, 871, 540); f2(540, 871, 543); f2(916, 542, 887); f2(891, 885, 542); f2(887, 542, 885); f2(886, 887, 885); f2(887, 886, 654); f2(652, 654, 886); f2(654, 652, 655); f2(651, 655, 652); f2(655, 651, 656); f2(650, 656, 651); f2(656, 650, 661); f2(649, 661, 650); f2(661, 649, 660); f2(648, 660, 649); f2(660, 648, 657); f2(888, 657, 648); f2(653, 657, 888); f2(882, 541, 662); f2(541, 883, 662); f2(883, 533, 658); f2(884, 658, 533); f2(901, 511, 639); f2(509, 505, 900); f2(901, 900, 505); f2(511, 643, 639); f2(903, 643, 485); f2(485, 643, 511); f2(680, 904, 574); f2(680, 574, 679); f2(681, 679, 574); f2(905, 681, 574); f2(908, 573, 682); f2(909, 682, 573); f2(468, 527, 552); f2(527, 468, 553); f2(564, 834, 919); f2(919, 830, 564); f2(873, 869, 922); f2(873, 922, 880); f2(923, 659, 888); f2(653, 888, 659); f2(914, 659, 544); f2(659, 923, 544); f2(869, 889, 922); f2(890, 544, 923); f2(921, 532, 541); f2(541, 537, 921); this.x = 0; this.y = 0; this.z = 0; this.rotationX = 0; this.rotationY = 0; this.rotationZ = 0; this.scaleX = 1; this.scaleY = 1; this.scaleZ = 1; this.geometry.ready = true; } public function f(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number):void{ var _local13:Triangle3D; _local13 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, [new NumberUV(_arg4, _arg5), new NumberUV(_arg6, _arg7), new NumberUV(_arg8, _arg9)]); _local13.faceNormal = new Number3D(_arg10, _arg11, _arg12); fa.push(_local13); } public function f2(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Triangle3D; _local4 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, []); fa.push(_local4); } public function v(_arg1:Number, _arg2:Number, _arg3:Number):void{ ve.push(new Vertex3D(_arg1, _arg2, _arg3)); } } }//package
Section 114
//yellowl (yellowl) package { import org.papervision3d.core.proto.*; import org.papervision3d.core.geom.renderables.*; import org.papervision3d.core.math.*; import org.papervision3d.core.geom.*; public class yellowl extends TriangleMesh3D { private var ve:Array; private var fa:Array; public function yellowl(_arg1:MaterialObject3D, _arg2:Object=null){ super(_arg1, new Array(), new Array(), null, _arg2); ve = this.geometry.vertices; fa = this.geometry.faces; v(0.280774, 0.828848, 3.492676); v(0.273138, 0.842924, 3.515299); v(0.320098, 0.837988, 3.407752); v(0.29545, 0.823186, 3.455111); v(0.285561, 1.081024, 3.456715); v(0.255292, 1.004872, 3.531349); v(0.269302, 0.860544, 3.527016); v(0.264744, 1.053374, 3.499142); v(0.265017, 0.932659, 3.53599); v(-0.280774, 0.828848, 3.492676); v(-0.273138, 0.842924, 3.515299); v(-0.320098, 0.837988, 3.407752); v(-0.29545, 0.823186, 3.455111); v(-0.285561, 1.081024, 3.456715); v(-0.255292, 1.004872, 3.531349); v(-0.269302, 0.860544, 3.527016); v(0.321206, 0.909768, 3.448249); v(0.307712, 0.875309, 3.465341); v(0.342148, 0.8997, 3.398536); v(0.29242, 0.879449, 3.493208); v(0.324148, 0.943102, 3.445557); v(0.312916, 1.021541, 3.449333); v(0.302461, 1.049641, 3.449773); v(0.311976, 1.064098, 3.429566); v(0.288508, 0.906794, 3.503684); v(0.330162, 1.039212, 3.408923); v(0.345906, 0.965211, 3.39646); v(0.285051, 0.997699, 3.506628); v(0.283838, 0.954874, 3.510079); v(-0.264744, 1.053374, 3.499142); v(-0.265017, 0.932659, 3.53599); v(-0.321206, 0.909768, 3.448249); v(-0.307712, 0.875309, 3.465341); v(-0.342148, 0.8997, 3.398536); v(-0.29242, 0.879449, 3.493208); v(-0.324148, 0.943102, 3.445557); v(-0.312916, 1.021541, 3.449333); v(-0.302461, 1.049641, 3.449773); v(-0.311976, 1.064098, 3.429566); v(-0.288508, 0.906794, 3.503684); v(-0.330162, 1.039212, 3.408923); v(-0.345906, 0.965211, 3.39646); v(-0.285051, 0.997699, 3.506628); v(-0.283838, 0.954874, 3.510079); f2(33, 31, 32); f2(29, 14, 42); f2(43, 14, 30); f2(42, 14, 43); f2(39, 30, 15); f2(43, 30, 39); f2(32, 34, 10); f2(34, 15, 10); f2(33, 32, 11); f2(35, 31, 33); f2(41, 35, 33); f2(41, 36, 35); f2(40, 36, 41); f2(32, 10, 9); f2(34, 39, 15); f2(11, 32, 12); f2(40, 38, 36); f2(32, 9, 12); f2(38, 13, 37); f2(38, 37, 36); f2(16, 18, 17); f2(5, 7, 27); f2(5, 28, 8); f2(5, 27, 28); f2(8, 24, 6); f2(8, 28, 24); f2(19, 17, 1); f2(6, 19, 1); f2(17, 18, 2); f2(16, 20, 18); f2(20, 26, 18); f2(21, 26, 20); f2(21, 25, 26); f2(17, 0, 1); f2(24, 19, 6); f2(17, 2, 3); f2(23, 25, 21); f2(0, 17, 3); f2(4, 23, 22); f2(22, 23, 21); this.x = 0; this.y = 0; this.z = 0; this.rotationX = 0; this.rotationY = 0; this.rotationZ = 0; this.scaleX = 1; this.scaleY = 1; this.scaleZ = 1; this.geometry.ready = true; } public function f(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number):void{ var _local13:Triangle3D; _local13 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, [new NumberUV(_arg4, _arg5), new NumberUV(_arg6, _arg7), new NumberUV(_arg8, _arg9)]); _local13.faceNormal = new Number3D(_arg10, _arg11, _arg12); fa.push(_local13); } public function f2(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Triangle3D; _local4 = new Triangle3D(this, [ve[_arg1], ve[_arg2], ve[_arg3]], null, []); fa.push(_local4); } public function v(_arg1:Number, _arg2:Number, _arg3:Number):void{ ve.push(new Vertex3D(_arg1, _arg2, _arg3)); } } }//package

Library Items

Symbol 1 FontUsed by:2 3 4 10 15 16 18 20 21 23
Symbol 2 EditableTextUses:1Used by:6
Symbol 3 EditableTextUses:1Used by:6
Symbol 4 EditableTextUses:1Used by:6
Symbol 5 GraphicUsed by:6
Symbol 6 ButtonUses:2 3 4 5Used by:Timeline
Symbol 7 GraphicUsed by:8
Symbol 8 MovieClipUses:7Used by:Timeline
Symbol 9 GraphicUsed by:14 17 19 22 24
Symbol 10 EditableTextUses:1Used by:14
Symbol 11 GraphicUsed by:14 17 19 22 24
Symbol 12 GraphicUsed by:14 17 19 22 24
Symbol 13 GraphicUsed by:14 17 19 22 24
Symbol 14 ButtonUses:9 10 11 12 13Used by:Timeline
Symbol 15 EditableTextUses:1Used by:Timeline
Symbol 16 EditableTextUses:1Used by:17
Symbol 17 ButtonUses:9 16 11 12 13Used by:Timeline
Symbol 18 EditableTextUses:1Used by:19
Symbol 19 ButtonUses:9 18 11 12 13Used by:Timeline
Symbol 20 EditableTextUses:1Used by:Timeline
Symbol 21 EditableTextUses:1Used by:Timeline
Symbol 22 ButtonUses:9 11 12 13Used by:Timeline
Symbol 23 EditableTextUses:1Used by:24
Symbol 24 ButtonUses:9 23 11 12 13Used by:Timeline
Symbol 25 BitmapUsed by:26
Symbol 26 GraphicUses:25Used by:176
Symbol 27 BitmapUsed by:28 175
Symbol 28 GraphicUses:27Used by:176
Symbol 29 BitmapUsed by:30 174
Symbol 30 GraphicUses:29Used by:176
Symbol 31 BitmapUsed by:32 173
Symbol 32 GraphicUses:31Used by:176
Symbol 33 BitmapUsed by:34 172
Symbol 34 GraphicUses:33Used by:176
Symbol 35 BitmapUsed by:36 171
Symbol 36 GraphicUses:35Used by:176
Symbol 37 BitmapUsed by:38 170
Symbol 38 GraphicUses:37Used by:176
Symbol 39 BitmapUsed by:40 169
Symbol 40 GraphicUses:39Used by:176
Symbol 41 BitmapUsed by:42 168
Symbol 42 GraphicUses:41Used by:176
Symbol 43 BitmapUsed by:44 167
Symbol 44 GraphicUses:43Used by:176
Symbol 45 BitmapUsed by:46 166
Symbol 46 GraphicUses:45Used by:176
Symbol 47 BitmapUsed by:48 165
Symbol 48 GraphicUses:47Used by:176
Symbol 49 BitmapUsed by:50 164
Symbol 50 GraphicUses:49Used by:176
Symbol 51 BitmapUsed by:52 163
Symbol 52 GraphicUses:51Used by:176
Symbol 53 BitmapUsed by:54 162
Symbol 54 GraphicUses:53Used by:176
Symbol 55 BitmapUsed by:56 161
Symbol 56 GraphicUses:55Used by:176
Symbol 57 BitmapUsed by:58 160
Symbol 58 GraphicUses:57Used by:176
Symbol 59 BitmapUsed by:60 159
Symbol 60 GraphicUses:59Used by:176
Symbol 61 BitmapUsed by:62 158
Symbol 62 GraphicUses:61Used by:176
Symbol 63 BitmapUsed by:64 157
Symbol 64 GraphicUses:63Used by:176
Symbol 65 BitmapUsed by:66 156
Symbol 66 GraphicUses:65Used by:176
Symbol 67 BitmapUsed by:68 155
Symbol 68 GraphicUses:67Used by:176
Symbol 69 BitmapUsed by:70 154
Symbol 70 GraphicUses:69Used by:176
Symbol 71 BitmapUsed by:72 153
Symbol 72 GraphicUses:71Used by:176
Symbol 73 BitmapUsed by:74 152
Symbol 74 GraphicUses:73Used by:176
Symbol 75 BitmapUsed by:76 151
Symbol 76 GraphicUses:75Used by:176
Symbol 77 BitmapUsed by:78 150
Symbol 78 GraphicUses:77Used by:176
Symbol 79 BitmapUsed by:80 149
Symbol 80 GraphicUses:79Used by:176
Symbol 81 BitmapUsed by:82 148
Symbol 82 GraphicUses:81Used by:176
Symbol 83 BitmapUsed by:84 147
Symbol 84 GraphicUses:83Used by:176
Symbol 85 BitmapUsed by:86 146
Symbol 86 GraphicUses:85Used by:176
Symbol 87 BitmapUsed by:88 145
Symbol 88 GraphicUses:87Used by:176
Symbol 89 BitmapUsed by:90 144
Symbol 90 GraphicUses:89Used by:176
Symbol 91 BitmapUsed by:92 143
Symbol 92 GraphicUses:91Used by:176
Symbol 93 BitmapUsed by:94 142
Symbol 94 GraphicUses:93Used by:176
Symbol 95 BitmapUsed by:96 141
Symbol 96 GraphicUses:95Used by:176
Symbol 97 BitmapUsed by:98 140
Symbol 98 GraphicUses:97Used by:176
Symbol 99 BitmapUsed by:100 139
Symbol 100 GraphicUses:99Used by:176
Symbol 101 BitmapUsed by:102 138
Symbol 102 GraphicUses:101Used by:176
Symbol 103 BitmapUsed by:104 137
Symbol 104 GraphicUses:103Used by:176
Symbol 105 BitmapUsed by:106 136
Symbol 106 GraphicUses:105Used by:176
Symbol 107 BitmapUsed by:108 135
Symbol 108 GraphicUses:107Used by:176
Symbol 109 BitmapUsed by:110 134
Symbol 110 GraphicUses:109Used by:176
Symbol 111 BitmapUsed by:112 133
Symbol 112 GraphicUses:111Used by:176
Symbol 113 BitmapUsed by:114 132
Symbol 114 GraphicUses:113Used by:176
Symbol 115 BitmapUsed by:116 131
Symbol 116 GraphicUses:115Used by:176
Symbol 117 BitmapUsed by:118 130
Symbol 118 GraphicUses:117Used by:176
Symbol 119 BitmapUsed by:120 129
Symbol 120 GraphicUses:119Used by:176
Symbol 121 BitmapUsed by:122 128
Symbol 122 GraphicUses:121Used by:176
Symbol 123 BitmapUsed by:124 127
Symbol 124 GraphicUses:123Used by:176
Symbol 125 BitmapUsed by:126
Symbol 126 GraphicUses:125Used by:176
Symbol 127 GraphicUses:123Used by:176
Symbol 128 GraphicUses:121Used by:176
Symbol 129 GraphicUses:119Used by:176
Symbol 130 GraphicUses:117Used by:176
Symbol 131 GraphicUses:115Used by:176
Symbol 132 GraphicUses:113Used by:176
Symbol 133 GraphicUses:111Used by:176
Symbol 134 GraphicUses:109Used by:176
Symbol 135 GraphicUses:107Used by:176
Symbol 136 GraphicUses:105Used by:176
Symbol 137 GraphicUses:103Used by:176
Symbol 138 GraphicUses:101Used by:176
Symbol 139 GraphicUses:99Used by:176
Symbol 140 GraphicUses:97Used by:176
Symbol 141 GraphicUses:95Used by:176
Symbol 142 GraphicUses:93Used by:176
Symbol 143 GraphicUses:91Used by:176
Symbol 144 GraphicUses:89Used by:176
Symbol 145 GraphicUses:87Used by:176
Symbol 146 GraphicUses:85Used by:176
Symbol 147 GraphicUses:83Used by:176
Symbol 148 GraphicUses:81Used by:176
Symbol 149 GraphicUses:79Used by:176
Symbol 150 GraphicUses:77Used by:176
Symbol 151 GraphicUses:75Used by:176
Symbol 152 GraphicUses:73Used by:176
Symbol 153 GraphicUses:71Used by:176
Symbol 154 GraphicUses:69Used by:176
Symbol 155 GraphicUses:67Used by:176
Symbol 156 GraphicUses:65Used by:176
Symbol 157 GraphicUses:63Used by:176
Symbol 158 GraphicUses:61Used by:176
Symbol 159 GraphicUses:59Used by:176
Symbol 160 GraphicUses:57Used by:176
Symbol 161 GraphicUses:55Used by:176
Symbol 162 GraphicUses:53Used by:176
Symbol 163 GraphicUses:51Used by:176
Symbol 164 GraphicUses:49Used by:176
Symbol 165 GraphicUses:47Used by:176
Symbol 166 GraphicUses:45Used by:176
Symbol 167 GraphicUses:43Used by:176
Symbol 168 GraphicUses:41Used by:176
Symbol 169 GraphicUses:39Used by:176
Symbol 170 GraphicUses:37Used by:176
Symbol 171 GraphicUses:35Used by:176
Symbol 172 GraphicUses:33Used by:176
Symbol 173 GraphicUses:31Used by:176
Symbol 174 GraphicUses:29Used by:176
Symbol 175 GraphicUses:27Used by:176
Symbol 176 MovieClip {HighRes.swf}Uses:26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175Used by:Timeline

Instance Names

"Getflashplayer"Frame 1Symbol 6 Button
"Background"Frame 1Symbol 8 MovieClip
"ButtonQuality"Frame 3Symbol 14 Button
"Status"Frame 3Symbol 15 EditableText
"ButtonViewpoint1"Frame 3Symbol 17 Button
"ButtonViewpoint0"Frame 3Symbol 19 Button
"Percent"Frame 3Symbol 20 EditableText
"ButtonRendered"Frame 3Symbol 22 Button
"ButtonInteractive"Frame 4Symbol 24 Button

Special Tags

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

Labels

"Interactive"Frame 3
"Rendered"Frame 4




http://swfchan.com/9/44029/info.shtml
Created: 8/5 -2019 11:47:08 Last modified: 8/5 -2019 11:47:08 Server time: 03/05 -2024 13:01:53