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

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

Evoflash - ADHDTV.swf

This is the info page for
Flash #10255

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


ActionScript [AS3]
Section 1
//Blocker (away3d.core.block.Blocker) package away3d.core.block { import away3d.core.draw.*; public class Blocker extends DrawPrimitive { public function block(_arg1:DrawPrimitive):Boolean{ return (false); } } }//package away3d.core.block
Section 2
//BlockerArray (away3d.core.block.BlockerArray) package away3d.core.block { import away3d.core.render.*; public class BlockerArray implements IBlockerConsumer { private var clip:Clipping; private var blockers:Array; public function BlockerArray(_arg1:Clipping){ this.clip = _arg1; this.blockers = []; } public function blocker(_arg1:Blocker):void{ if (clip.check(_arg1)){ blockers.push(_arg1); }; } public function list():Array{ var _local1:Array; _local1 = this.blockers; this.blockers = null; _local1.sortOn("screenZ", Array.NUMERIC); return (_local1); } } }//package away3d.core.block
Section 3
//IBlockerConsumer (away3d.core.block.IBlockerConsumer) package away3d.core.block { public interface IBlockerConsumer { function blocker(_arg1:Blocker):void; } }//package away3d.core.block
Section 4
//IBlockerProvider (away3d.core.block.IBlockerProvider) package away3d.core.block { import away3d.core.render.*; public interface IBlockerProvider { function blockers(_arg1:Projection, _arg2:IBlockerConsumer):void; } }//package away3d.core.block
Section 5
//BitmapParticleSegment (away3d.core.draw.BitmapParticleSegment) package away3d.core.draw { import flash.display.*; import flash.geom.*; public class BitmapParticleSegment extends DrawPrimitive implements IBitmapPrimitive { private var mate:Matrix; private var mats:Matrix; private var cte:ColorTransform; public var blendMode:String;// = "normal" private var cts:ColorTransform; private var bh2:Number; private var front:Boolean;// = false private var _bitmap:BitmapData; public var scale:Number;// = 1 public var ppe:int;// = 4 private var bw2:Number; private static var mat:Matrix = new Matrix(); private static var ct:ColorTransform = new ColorTransform(); public function BitmapParticleSegment(){ mats = new Matrix(); mate = new Matrix(); cts = new ColorTransform(); cte = new ColorTransform(); ppe = 4; scale = 1; blendMode = "normal"; front = false; super(); } public function renderBitmap(_arg1:BitmapData, _arg2:Number, _arg3:Number):void{ var _local4:int; var _local5:Matrix; var _local6:Matrix; var _local7:Number; _local4 = 0; if (front){ _local5 = mats; _local6 = mate; } else { _local5 = mate; _local6 = mats; }; while (_local4 < ppe) { _local7 = (_local4 / ppe); mat.a = ((_local5.a * (1 - _local7)) + (_local6.a * _local7)); mat.b = ((_local5.b * (1 - _local7)) + (_local6.b * _local7)); mat.c = ((_local5.c * (1 - _local7)) + (_local6.c * _local7)); mat.d = ((_local5.d * (1 - _local7)) + (_local6.d * _local7)); mat.tx = ((_local5.tx * (1 - _local7)) + (_local6.tx * _local7)); mat.ty = ((_local5.ty * (1 - _local7)) + (_local6.ty * _local7)); ct.greenMultiplier = (ct.blueMultiplier = (ct.redMultiplier = ((cts.alphaMultiplier * (1 - _local7)) + (cte.alphaMultiplier * _local7)))); mat.translate(_arg2, _arg3); _arg1.draw(_bitmap, mat, ct, blendMode); _local4++; }; } public function update(_arg1:Vertex2D, _arg2:Vertex2D, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):void{ mats.identity(); mats.translate(-(bw2), -(bh2)); mats.scale((_arg3 * scale), (_arg3 * scale)); mats.rotate(_arg7); mats.translate(_arg1.x, _arg1.y); cts.alphaMultiplier = _arg5; mate.identity(); mate.translate(-(bw2), -(bh2)); mate.scale((_arg4 * scale), (_arg4 * scale)); mate.rotate(_arg7); mate.translate(_arg2.x, _arg2.y); cte.alphaMultiplier = _arg6; if (_arg1.z > _arg2.z){ front = true; } else { front = false; }; screenZ = ((_arg1.z + _arg2.z) / 2); } public function set bitmap(_arg1:BitmapData):void{ bw2 = (_arg1.width / 2); bh2 = (_arg1.height / 2); _bitmap = _arg1; } } }//package away3d.core.draw
Section 6
//BitmapScaledBitmap (away3d.core.draw.BitmapScaledBitmap) package away3d.core.draw { import flash.display.*; import away3d.core.render.*; import flash.geom.*; public class BitmapScaledBitmap extends DrawPrimitive implements IBitmapPrimitive { public var blendMode:String;// = "normal" private var bh2:Number; public var bitmap:BitmapData; public var scale:Number; public var mat:Matrix; public var alpha:Number;// = 1 public var ct:ColorTransform; public var v:Vertex2D; private var bw2:Number; public var rotation:Number; private static var toRADIANS:Number = 0.0174532925199433; public function BitmapScaledBitmap(_arg1:BitmapData){ alpha = 1; blendMode = BlendMode.NORMAL; super(); this.bitmap = _arg1; this.ct = new ColorTransform(); this.mat = new Matrix(); } override public function render(_arg1:RenderSession):void{ } override public function contains(_arg1:Number, _arg2:Number):Boolean{ return (true); } public function update(_arg1:Vertex2D, _arg2:Number):void{ bw2 = (bitmap.width / 2); bh2 = (bitmap.height / 2); this.v = _arg1; this.scale = _arg2; mat.identity(); mat.translate(-(bw2), -(bh2)); mat.rotate((rotation * toRADIANS)); mat.scale(_arg2, _arg2); mat.translate(_arg1.x, _arg1.y); screenZ = _arg1.z; } override public function clear():void{ bitmap = null; } public function renderBitmap(_arg1:BitmapData, _arg2:Number, _arg3:Number):void{ mat.translate(_arg2, _arg3); _arg1.draw(bitmap, mat, ct, blendMode); } } }//package away3d.core.draw
Section 7
//BitmapTriangle (away3d.core.draw.BitmapTriangle) package away3d.core.draw { import flash.display.*; public class BitmapTriangle extends DrawTriangle implements IBitmapPrimitive { public function renderBitmap(_arg1:BitmapData, _arg2:Number, _arg3:Number):void{ material.bitmapRenderTriangle(this, _arg1, _arg2, _arg3); } } }//package away3d.core.draw
Section 8
//DrawPrimitive (away3d.core.draw.DrawPrimitive) package away3d.core.draw { import away3d.core.proto.*; import away3d.core.render.*; public class DrawPrimitive { public var minX:int; public var minZ:Number; public var source:Object3D; public var projection:Projection; public var minY:int; public var screenZ:Number; public var maxX:int; public var maxY:int; public var maxZ:Number; public function getZ(_arg1:Number, _arg2:Number):Number{ return (screenZ); } public function clear():void{ } public function render(_arg1:RenderSession):void{ } public function contains(_arg1:Number, _arg2:Number):Boolean{ return (false); } public function riddle(_arg1:DrawTriangle, _arg2:Number):Array{ return (null); } public function quarter(_arg1:Number):Array{ return (null); } public function toString():String{ return ((((((("P{ screenZ = " + screenZ) + ", minZ = ") + minZ) + ", maxZ = ") + maxZ) + " }")); } protected static function assert(_arg1:Boolean, _arg2:String="Assert failure"):void{ if (!_arg1){ throw (new Error(_arg2)); }; } } }//package away3d.core.draw
Section 9
//DrawScaledBitmap (away3d.core.draw.DrawScaledBitmap) package away3d.core.draw { import flash.display.*; import away3d.core.proto.*; import away3d.core.render.*; import flash.geom.*; public class DrawScaledBitmap extends DrawPrimitive { public var v:Vertex2D; public var height:Number; public var scale:Number; public var top:Number; public var left:Number; public var bitmap:BitmapData; public var width:Number; public function DrawScaledBitmap(_arg1:Object3D, _arg2:BitmapData, _arg3:Vertex2D, _arg4:Number){ this.source = _arg1; this.bitmap = _arg2; this.v = _arg3; this.scale = _arg4; calc(); } override public function clear():void{ bitmap = null; } override public function render(_arg1:RenderSession):void{ var _local2:Graphics; _local2 = _arg1.graphics; _local2.lineStyle(); _local2.beginBitmapFill(bitmap, new Matrix(scale, 0, 0, scale, minX, minY), false); _local2.drawRect(minX, minY, (maxX - minX), (maxY - minY)); _local2.endFill(); } override public function contains(_arg1:Number, _arg2:Number):Boolean{ return (true); } public function calc():void{ screenZ = v.z; minZ = screenZ; maxZ = screenZ; width = (bitmap.width * scale); height = (bitmap.height * scale); left = (v.x - (width / 2)); top = (v.y - (height / 2)); minX = int(Math.ceil(left)); minY = int(Math.ceil(top)); maxX = int(Math.floor((left + width))); maxY = int(Math.floor((top + height))); } } }//package away3d.core.draw
Section 10
//DrawSegment (away3d.core.draw.DrawSegment) package away3d.core.draw { import away3d.core.proto.*; import away3d.core.render.*; import away3d.core.material.*; public class DrawSegment extends DrawPrimitive { public var v1:Vertex2D; public var length:Number; public var v0:Vertex2D; public var material:ISegmentMaterial; override public function getZ(_arg1:Number, _arg2:Number):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; 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; if (projection == null){ return (screenZ); }; _local3 = projection.focus; _local4 = v0.x; _local5 = v0.y; _local6 = v0.z; _local7 = v1.x; _local8 = v1.y; _local9 = v1.z; if ((((_local4 == _arg1)) && ((_local5 == _arg2)))){ return (_local6); }; if ((((_local7 == _arg1)) && ((_local8 == _arg2)))){ return (_local9); }; _local10 = (_local7 - _local4); _local11 = (_local8 - _local5); _local12 = (_local6 / _local3); _local13 = (_local9 / _local3); _local14 = (1 + _local12); _local15 = (1 + _local13); _local16 = _arg1; _local17 = _arg2; _local18 = ((_local4 * _local14) - (_arg1 * _local12)); _local19 = ((_local7 * _local15) - (_arg1 * _local13)); _local20 = ((_local5 * _local14) - (_arg2 * _local12)); _local21 = ((_local8 * _local15) - (_arg2 * _local13)); _local22 = ((_local10 * (_local18 - _local19)) + (_local11 * (_local20 - _local21))); _local23 = ((_local10 * (_local18 - _arg1)) + (_local11 * (_local20 - _arg2))); _local24 = ((_local10 * (_arg1 - _local19)) + (_local11 * (_arg2 - _local21))); return ((((_local24 * _local6) + (_local23 * _local9)) / _local22)); } override public function clear():void{ v0 = null; v1 = null; } public function distanceToCenter(_arg1:Number, _arg2:Number):Number{ var _local3:Number; var _local4:Number; _local3 = ((v0.x + v1.x) / 2); _local4 = ((v0.y + v1.y) / 2); return (Math.sqrt((((_local3 - _arg1) * (_local3 - _arg1)) + ((_local4 - _arg2) * (_local4 - _arg2))))); } override public function render(_arg1:RenderSession):void{ material.renderSegment(this, _arg1); } override public function contains(_arg1:Number, _arg2:Number):Boolean{ if (Math.abs((((v0.x * (_arg2 - v1.y)) + (v1.x * (v0.y - _arg2))) + (_arg1 * (v1.y - v0.y)))) > ((0.001 * 1000) * 1000)){ return (false); }; if ((distanceToCenter(_arg1, _arg2) * 2) > length){ return (false); }; return (true); } public function calc():void{ minZ = Math.min(v0.z, v1.z); maxZ = Math.max(v0.z, v1.z); screenZ = ((v0.z + v1.z) / 2); minX = int(Math.min(v0.x, v1.x)); maxX = int(Math.max(v0.x, v1.x)); minY = int(Math.min(v0.y, v1.y)); maxY = int(Math.max(v0.y, v1.y)); length = Math.sqrt((((maxX - minX) * (maxX - minX)) + ((maxY - minY) * (maxY - minY)))); } override public function riddle(_arg1:DrawTriangle, _arg2:Number):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: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; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Vertex2D; if (_arg1.minZ > maxZ){ return (null); }; if (_arg1.maxZ < minZ){ return (null); }; if (_arg1.minX > maxX){ return (null); }; if (_arg1.maxX < minX){ return (null); }; if (_arg1.minY > maxY){ return (null); }; if (_arg1.maxY < minY){ return (null); }; _local3 = _arg1.v0.z; _local4 = (1 + (_local3 / _arg2)); _local5 = (_arg1.v0.x * _local4); _local6 = (_arg1.v0.y * _local4); _local7 = _arg1.v1.z; _local8 = (1 + (_local7 / _arg2)); _local9 = (_arg1.v1.x * _local8); _local10 = (_arg1.v1.y * _local8); _local11 = _arg1.v2.z; _local12 = (1 + (_local11 / _arg2)); _local13 = (_arg1.v2.x * _local12); _local14 = (_arg1.v2.y * _local12); _local15 = (_local9 - _local5); _local16 = (_local10 - _local6); _local17 = (_local7 - _local3); _local18 = (_local13 - _local5); _local19 = (_local14 - _local6); _local20 = (_local11 - _local3); _local21 = ((_local16 * _local20) - (_local17 * _local19)); _local22 = ((_local17 * _local18) - (_local15 * _local20)); _local23 = ((_local15 * _local19) - (_local16 * _local18)); _local24 = -((((_local21 * _local5) + (_local22 * _local6)) + (_local23 * _local3))); if ((((_local21 * _local21) + (_local22 * _local22)) + (_local23 * _local23)) < 1){ return (null); }; _local25 = v0.z; _local26 = (1 + (_local25 / _arg2)); _local27 = (v0.x * _local26); _local28 = (v0.y * _local26); _local29 = v1.z; _local30 = (1 + (_local29 / _arg2)); _local31 = (v1.x * _local30); _local32 = (v1.y * _local30); _local33 = ((((_local21 * _local27) + (_local22 * _local28)) + (_local23 * _local25)) + _local24); _local34 = ((((_local21 * _local31) + (_local22 * _local32)) + (_local23 * _local29)) + _local24); if ((_local33 * _local34) >= 0){ return (null); }; _local35 = (_local34 - _local33); _local36 = (_local34 / _local35); _local37 = (-(_local33) / _local35); _local38 = ((_local25 * _local36) + (_local29 * _local37)); _local39 = (1 / (1 + (_local38 / _arg2))); _local40 = (((_local27 * _local36) + (_local31 * _local37)) * _local39); _local41 = (((_local28 * _local36) + (_local32 * _local37)) * _local39); if (!_arg1.contains(_local40, _local41)){ return (null); }; _local42 = new Vertex2D(_local40, _local41, _local38); return ([create(source, material, projection, v0, _local42), create(source, material, projection, _local42, v1)]); } override public function quarter(_arg1:Number):Array{ var _local2:Vertex2D; if (length < 5){ return (null); }; _local2 = Vertex2D.median(v0, v1, _arg1); return ([create(source, material, projection, v0, _local2), create(source, material, projection, _local2, v1)]); } override public function toString():String{ return ((((((("S{ screenZ = " + screenZ) + ", minZ = ") + minZ) + ", maxZ = ") + maxZ) + " }")); } public static function test():void{ } public static function create(_arg1:Object3D, _arg2:ISegmentMaterial, _arg3:Projection, _arg4:Vertex2D, _arg5:Vertex2D):DrawSegment{ var _local6:DrawSegment; _local6 = new (DrawSegment); _local6.source = _arg1; _local6.material = _arg2; _local6.projection = _arg3; _local6.v0 = _arg4; _local6.v1 = _arg5; _local6.calc(); return (_local6); } } }//package away3d.core.draw
Section 11
//DrawTriangle (away3d.core.draw.DrawTriangle) package away3d.core.draw { import away3d.core.proto.*; import away3d.core.geom.*; import away3d.core.render.*; import away3d.core.material.*; import flash.geom.*; public class DrawTriangle extends DrawPrimitive { private var transMatrix:Matrix; public var area:Number; public var material:ITriangleMaterial; public var uv0:NumberUV; public var uv2:NumberUV; public var uv1:NumberUV; public var texturemapping:Matrix; public var face:Face3D; public var v0:Vertex2D; public var v1:Vertex2D; public var v2:Vertex2D; public function DrawTriangle(){ transMatrix = new Matrix(); super(); } public function bisect(_arg1:Number):Array{ var _local2:Number; var _local3:Number; var _local4:Number; _local2 = Vertex2D.distanceSqr(v0, v1); _local3 = Vertex2D.distanceSqr(v1, v2); _local4 = Vertex2D.distanceSqr(v2, v0); if ((((_local3 >= _local2)) && ((_local3 >= _local4)))){ return (bisect12(_arg1)); }; if (_local2 >= _local4){ return (bisect01(_arg1)); }; return (bisect20(_arg1)); } private function bisect01(_arg1:Number):Array{ var _local2:Vertex2D; var _local3:NumberUV; _local2 = Vertex2D.median(v0, v1, _arg1); _local3 = NumberUV.median(uv0, uv1); return ([create(source, material, projection, v2, v0, _local2, uv2, uv0, _local3), create(source, material, projection, _local2, v1, v2, _local3, uv1, uv2)]); } public function transformUV(_arg1:IUVMaterial):Matrix{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; _local2 = _arg1.width; _local3 = _arg1.height; _local4 = (_local2 * uv0.u); _local5 = (_local2 * uv1.u); _local6 = (_local2 * uv2.u); _local7 = (_local3 * (1 - uv0.v)); _local8 = (_local3 * (1 - uv1.v)); _local9 = (_local3 * (1 - uv2.v)); if ((((((_local4 == _local5)) && ((_local7 == _local8)))) || ((((_local4 == _local6)) && ((_local7 == _local9)))))){ _local4 = (_local4 - ((_local4)>0.05) ? 0.05 : -0.05); _local7 = (_local7 - ((_local7)>0.07) ? 0.07 : -0.07); }; if ((((_local6 == _local5)) && ((_local9 == _local8)))){ _local6 = (_local6 - ((_local6)>0.05) ? 0.04 : -0.04); _local9 = (_local9 - ((_local9)>0.06) ? 0.06 : -0.06); }; transMatrix.a = (_local5 - _local4); transMatrix.b = (_local8 - _local7); transMatrix.c = (_local6 - _local4); transMatrix.d = (_local9 - _local7); transMatrix.tx = _local4; transMatrix.ty = _local7; transMatrix.invert(); return (transMatrix); } override public function render(_arg1:RenderSession):void{ material.renderTriangle(this, _arg1); } override public function contains(_arg1:Number, _arg2:Number):Boolean{ if ((((v0.x * (_arg2 - v1.y)) + (v1.x * (v0.y - _arg2))) + (_arg1 * (v1.y - v0.y))) < -0.001){ return (false); }; if ((((v0.x * (v2.y - _arg2)) + (_arg1 * (v0.y - v2.y))) + (v2.x * (_arg2 - v0.y))) < -0.001){ return (false); }; if ((((_arg1 * (v2.y - v1.y)) + (v1.x * (_arg2 - v2.y))) + (v2.x * (v1.y - _arg2))) < -0.001){ return (false); }; return (true); } public function minEdgeSqr():Number{ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = Vertex2D.distanceSqr(v0, v1); _local2 = Vertex2D.distanceSqr(v1, v2); _local3 = Vertex2D.distanceSqr(v2, v0); return (Math.min(Math.min(_local1, _local2), _local3)); } private function bisect12(_arg1:Number):Array{ var _local2:Vertex2D; var _local3:NumberUV; _local2 = Vertex2D.median(v1, v2, _arg1); _local3 = NumberUV.median(uv1, uv2); return ([create(source, material, projection, v0, v1, _local2, uv0, uv1, _local3), create(source, material, projection, _local2, v2, v0, _local3, uv2, uv0)]); } override public function quarter(_arg1:Number):Array{ var _local2:Vertex2D; var _local3:Vertex2D; var _local4:Vertex2D; var _local5:NumberUV; var _local6:NumberUV; var _local7:NumberUV; if (area < 20){ return (null); }; _local2 = Vertex2D.median(v0, v1, _arg1); _local3 = Vertex2D.median(v1, v2, _arg1); _local4 = Vertex2D.median(v2, v0, _arg1); _local5 = NumberUV.median(uv0, uv1); _local6 = NumberUV.median(uv1, uv2); _local7 = NumberUV.median(uv2, uv0); return ([create(source, material, projection, v0, _local2, _local4, uv0, _local5, _local7), create(source, material, projection, v1, _local3, _local2, uv1, _local6, _local5), create(source, material, projection, v2, _local4, _local3, uv2, _local7, _local6), create(source, material, projection, _local2, _local3, _local4, _local5, _local6, _local7)]); } override public function riddle(_arg1:DrawTriangle, _arg2:Number):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: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; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; var _local48:Number; var _local49:Number; var _local50:Number; var _local51:Number; var _local52:Number; var _local53:Vertex3D; var _local54:Vertex3D; var _local55:Vertex3D; if (area < 10){ return (null); }; if (_arg1.area < 10){ return (null); }; if (_arg1.minZ > maxZ){ return (null); }; if (_arg1.maxZ < minZ){ return (null); }; if (!overlap(this, _arg1)){ return (null); }; _local3 = _arg1.v0.z; _local4 = (1 + (_local3 / _arg2)); _local5 = (_arg1.v0.x * _local4); _local6 = (_arg1.v0.y * _local4); _local7 = _arg1.v1.z; _local8 = (1 + (_local7 / _arg2)); _local9 = (_arg1.v1.x * _local8); _local10 = (_arg1.v1.y * _local8); _local11 = _arg1.v2.z; _local12 = (1 + (_local11 / _arg2)); _local13 = (_arg1.v2.x * _local12); _local14 = (_arg1.v2.y * _local12); _local15 = (_local9 - _local5); _local16 = (_local10 - _local6); _local17 = (_local7 - _local3); _local18 = (_local13 - _local5); _local19 = (_local14 - _local6); _local20 = (_local11 - _local3); _local21 = ((_local16 * _local20) - (_local17 * _local19)); _local22 = ((_local17 * _local18) - (_local15 * _local20)); _local23 = ((_local15 * _local19) - (_local16 * _local18)); _local24 = -((((_local21 * _local5) + (_local22 * _local6)) + (_local23 * _local3))); if ((((_local21 * _local21) + (_local22 * _local22)) + (_local23 * _local23)) < 1){ return (null); }; _local25 = v0.z; _local26 = (1 + (_local25 / _arg2)); _local27 = (v0.x * _local26); _local28 = (v0.y * _local26); _local29 = v1.z; _local30 = (1 + (_local29 / _arg2)); _local31 = (v1.x * _local30); _local32 = (v1.y * _local30); _local33 = v2.z; _local34 = (1 + (_local33 / _arg2)); _local35 = (v2.x * _local34); _local36 = (v2.y * _local34); _local37 = ((((_local21 * _local27) + (_local22 * _local28)) + (_local23 * _local25)) + _local24); _local38 = ((((_local21 * _local31) + (_local22 * _local32)) + (_local23 * _local29)) + _local24); _local39 = ((((_local21 * _local35) + (_local22 * _local36)) + (_local23 * _local33)) + _local24); if ((_local37 * _local37) < 0.001){ _local37 = 0; }; if ((_local38 * _local38) < 0.001){ _local38 = 0; }; if ((_local39 * _local39) < 0.001){ _local39 = 0; }; if (((((((_local37 * _local38) >= -0.01)) && (((_local38 * _local39) >= -0.01)))) && (((_local39 * _local37) >= -0.01)))){ return (null); }; _local40 = (_local31 - _local27); _local41 = (_local32 - _local28); _local42 = (_local29 - _local25); _local43 = (_local35 - _local27); _local44 = (_local36 - _local28); _local45 = (_local33 - _local25); _local46 = ((_local41 * _local45) - (_local42 * _local44)); _local47 = ((_local42 * _local43) - (_local40 * _local45)); _local48 = ((_local40 * _local44) - (_local41 * _local43)); _local49 = -((((_local46 * _local27) + (_local47 * _local28)) + (_local48 * _local25))); if ((((_local46 * _local46) + (_local47 * _local47)) + (_local48 * _local48)) < 1){ return (null); }; _local50 = ((((_local46 * _local5) + (_local47 * _local6)) + (_local48 * _local3)) + _local49); _local51 = ((((_local46 * _local9) + (_local47 * _local10)) + (_local48 * _local7)) + _local49); _local52 = ((((_local46 * _local13) + (_local47 * _local14)) + (_local48 * _local11)) + _local49); if ((_local50 * _local50) < 0.001){ _local50 = 0; }; if ((_local51 * _local51) < 0.001){ _local51 = 0; }; if ((_local52 * _local52) < 0.001){ _local52 = 0; }; if (((((((_local50 * _local51) >= -0.01)) && (((_local51 * _local52) >= -0.01)))) && (((_local52 * _local50) >= -0.01)))){ return (null); }; _local53 = v0.deperspective(_arg2); _local54 = v1.deperspective(_arg2); _local55 = v2.deperspective(_arg2); if ((_local38 * _local39) >= -1){ return (fivepointcut(source, material, projection, v2, Vertex3D.weighted(_local55, _local53, -(_local37), _local39).perspective(_arg2), v0, Vertex3D.weighted(_local53, _local54, _local38, -(_local37)).perspective(_arg2), v1, uv2, NumberUV.weighted(uv2, uv0, -(_local37), _local39), uv0, NumberUV.weighted(uv0, uv1, _local38, -(_local37)), uv1)); }; if ((_local37 * _local38) >= -1){ return (fivepointcut(source, material, projection, v1, Vertex3D.weighted(_local54, _local55, -(_local39), _local38).perspective(_arg2), v2, Vertex3D.weighted(_local55, _local53, _local37, -(_local39)).perspective(_arg2), v0, uv1, NumberUV.weighted(uv1, uv2, -(_local39), _local38), uv2, NumberUV.weighted(uv2, uv0, _local37, -(_local39)), uv0)); }; return (fivepointcut(source, material, projection, v0, Vertex3D.weighted(_local53, _local54, -(_local38), _local37).perspective(_arg2), v1, Vertex3D.weighted(_local54, _local55, _local39, -(_local38)).perspective(_arg2), v2, uv0, NumberUV.weighted(uv0, uv1, -(_local38), _local37), uv1, NumberUV.weighted(uv1, uv2, _local39, -(_local38)), uv2)); } public function minDistortSqr(_arg1:Number):Number{ var _local2:Number; var _local3:Number; var _local4:Number; _local2 = Vertex2D.distortSqr(v0, v1, _arg1); _local3 = Vertex2D.distortSqr(v1, v2, _arg1); _local4 = Vertex2D.distortSqr(v2, v0, _arg1); return (Math.min(Math.min(_local2, _local3), _local4)); } override public function getZ(_arg1:Number, _arg2:Number):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; 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; if (projection == null){ return (screenZ); }; _local3 = projection.focus; _local4 = v0.x; _local5 = v0.y; _local6 = v0.z; _local7 = v1.x; _local8 = v1.y; _local9 = v1.z; _local10 = v2.x; _local11 = v2.y; _local12 = v2.z; if ((((_local4 == _arg1)) && ((_local5 == _arg2)))){ return (_local6); }; if ((((_local7 == _arg1)) && ((_local8 == _arg2)))){ return (_local9); }; if ((((_local10 == _arg1)) && ((_local11 == _arg2)))){ return (_local12); }; _local13 = (_local6 / _local3); _local14 = (_local9 / _local3); _local15 = (_local12 / _local3); _local16 = (1 + _local13); _local17 = (1 + _local14); _local18 = (1 + _local15); _local19 = ((_local4 * _local16) - (_arg1 * _local13)); _local20 = ((_local7 * _local17) - (_arg1 * _local14)); _local21 = ((_local10 * _local18) - (_arg1 * _local15)); _local22 = ((_local5 * _local16) - (_arg2 * _local13)); _local23 = ((_local8 * _local17) - (_arg2 * _local14)); _local24 = ((_local11 * _local18) - (_arg2 * _local15)); _local25 = (((_local19 * (_local23 - _local24)) + (_local20 * (_local24 - _local22))) + (_local21 * (_local22 - _local23))); _local26 = (((_arg1 * (_local23 - _local24)) + (_local20 * (_local24 - _arg2))) + (_local21 * (_arg2 - _local23))); _local27 = (((_local19 * (_arg2 - _local24)) + (_arg1 * (_local24 - _local22))) + (_local21 * (_local22 - _arg2))); _local28 = (((_local19 * (_local23 - _arg2)) + (_local20 * (_arg2 - _local22))) + (_arg1 * (_local22 - _local23))); return (((((_local26 * _local6) + (_local27 * _local9)) + (_local28 * _local12)) / _local25)); } public function distanceToCenter(_arg1:Number, _arg2:Number):Number{ var _local3:Number; var _local4:Number; _local3 = (((v0.x + v1.x) + v2.x) / 3); _local4 = (((v0.y + v1.y) + v2.y) / 3); return (Math.sqrt((((_local3 - _arg1) * (_local3 - _arg1)) + ((_local4 - _arg2) * (_local4 - _arg2))))); } override public function clear():void{ v0 = null; v1 = null; v2 = null; uv0 = null; uv1 = null; uv2 = null; texturemapping = null; } public function maxDistortSqr(_arg1:Number):Number{ var _local2:Number; var _local3:Number; var _local4:Number; _local2 = Vertex2D.distortSqr(v0, v1, _arg1); _local3 = Vertex2D.distortSqr(v1, v2, _arg1); _local4 = Vertex2D.distortSqr(v2, v0, _arg1); return (Math.max(Math.max(_local2, _local3), _local4)); } public function acuteAngled():Boolean{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local1 = Vertex2D.distanceSqr(v0, v1); _local2 = Vertex2D.distanceSqr(v1, v2); _local3 = Vertex2D.distanceSqr(v2, v0); _local4 = (_local1 * _local1); _local5 = (_local2 * _local2); _local6 = (_local3 * _local3); return ((((((_local4 <= (_local5 + _local6))) && ((_local5 <= (_local6 + _local4))))) && ((_local6 <= (_local4 + _local5))))); } private function bisect20(_arg1:Number):Array{ var _local2:Vertex2D; var _local3:NumberUV; _local2 = Vertex2D.median(v2, v0, _arg1); _local3 = NumberUV.median(uv2, uv0); return ([create(source, material, projection, v1, v2, _local2, uv1, uv2, _local3), create(source, material, projection, _local2, v0, v1, _local3, uv0, uv1)]); } public function maxEdgeSqr():Number{ var _local1:Number; var _local2:Number; var _local3:Number; _local1 = Vertex2D.distanceSqr(v0, v1); _local2 = Vertex2D.distanceSqr(v1, v2); _local3 = Vertex2D.distanceSqr(v2, v0); return (Math.max(Math.max(_local1, _local2), _local3)); } public function distortbisect(_arg1:Number):Array{ var _local2:Number; var _local3:Number; var _local4:Number; _local2 = Vertex2D.distortSqr(v0, v1, _arg1); _local3 = Vertex2D.distortSqr(v1, v2, _arg1); _local4 = Vertex2D.distortSqr(v2, v0, _arg1); if ((((_local3 >= _local2)) && ((_local3 >= _local4)))){ return (bisect12(_arg1)); }; if (_local2 >= _local4){ return (bisect01(_arg1)); }; return (bisect20(_arg1)); } public function calc():void{ minZ = Math.min(v0.z, Math.min(v1.z, v2.z)); maxZ = Math.max(v0.z, Math.max(v1.z, v2.z)); screenZ = (((v0.z + v1.z) + v2.z) / 3); minX = int(Math.floor(Math.min(v0.x, Math.min(v1.x, v2.x)))); minY = int(Math.floor(Math.min(v0.y, Math.min(v1.y, v2.y)))); maxX = int(Math.ceil(Math.max(v0.x, Math.max(v1.x, v2.x)))); maxY = int(Math.ceil(Math.max(v0.y, Math.max(v1.y, v2.y)))); area = (0.5 * (((v0.x * (v2.y - v1.y)) + (v1.x * (v0.y - v2.y))) + (v2.x * (v1.y - v0.y)))); } override public function toString():String{ var _local1:String; _local1 = ""; if ((material is WireColorMaterial)){ switch ((material as WireColorMaterial).fillColor){ case 0xFF00: _local1 = "green"; break; case 0xFFFF00: _local1 = "yellow"; break; case 0xFF0000: _local1 = "red"; break; case 0xFF: _local1 = "blue"; break; }; }; return (((((((((("T{" + _local1) + int(area)) + " screenZ = ") + num(screenZ)) + ", minZ = ") + num(minZ)) + ", maxZ = ") + num(maxZ)) + " }")); } public function getUV(_arg1:Number, _arg2:Number):NumberUV{ 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; if (uv0 == null){ return (null); }; if (uv1 == null){ return (null); }; if (uv2 == null){ return (null); }; _local3 = uv0.u; _local4 = uv0.v; _local5 = uv1.u; _local6 = uv1.v; _local7 = uv2.u; _local8 = uv2.v; _local9 = projection.focus; _local10 = v0.x; _local11 = v0.y; _local12 = v0.z; _local13 = v1.x; _local14 = v1.y; _local15 = v1.z; _local16 = v2.x; _local17 = v2.y; _local18 = v2.z; if ((((_local10 == _arg1)) && ((_local11 == _arg2)))){ return (uv0); }; if ((((_local13 == _arg1)) && ((_local14 == _arg2)))){ return (uv1); }; if ((((_local16 == _arg1)) && ((_local17 == _arg2)))){ return (uv2); }; _local19 = (_local12 / _local9); _local20 = (_local15 / _local9); _local21 = (_local18 / _local9); _local22 = (1 + _local19); _local23 = (1 + _local20); _local24 = (1 + _local21); _local25 = ((_local10 * _local22) - (_arg1 * _local19)); _local26 = ((_local13 * _local23) - (_arg1 * _local20)); _local27 = ((_local16 * _local24) - (_arg1 * _local21)); _local28 = ((_local11 * _local22) - (_arg2 * _local19)); _local29 = ((_local14 * _local23) - (_arg2 * _local20)); _local30 = ((_local17 * _local24) - (_arg2 * _local21)); _local31 = (((_local25 * (_local29 - _local30)) + (_local26 * (_local30 - _local28))) + (_local27 * (_local28 - _local29))); _local32 = (((_arg1 * (_local29 - _local30)) + (_local26 * (_local30 - _arg2))) + (_local27 * (_arg2 - _local29))); _local33 = (((_local25 * (_arg2 - _local30)) + (_arg1 * (_local30 - _local28))) + (_local27 * (_local28 - _arg2))); _local34 = (((_local25 * (_local29 - _arg2)) + (_local26 * (_arg2 - _local28))) + (_arg1 * (_local28 - _local29))); return (new NumberUV(((((_local32 * _local3) + (_local33 * _local5)) + (_local34 * _local7)) / _local31), ((((_local32 * _local4) + (_local33 * _local6)) + (_local34 * _local8)) / _local31))); } public static function test():void{ } public static function create(_arg1:Object3D, _arg2:ITriangleMaterial, _arg3:Projection, _arg4:Vertex2D, _arg5:Vertex2D, _arg6:Vertex2D, _arg7:NumberUV, _arg8:NumberUV, _arg9:NumberUV):DrawTriangle{ var _local10:DrawTriangle; _local10 = new (DrawTriangle); _local10.source = _arg1; _local10.material = _arg2; _local10.projection = _arg3; _local10.v0 = _arg4; _local10.v1 = _arg5; _local10.v2 = _arg6; _local10.uv0 = _arg7; _local10.uv1 = _arg8; _local10.uv2 = _arg9; _local10.calc(); return (_local10); } public static function fivepointcut(_arg1:Object3D, _arg2:ITriangleMaterial, _arg3:Projection, _arg4:Vertex2D, _arg5:Vertex2D, _arg6:Vertex2D, _arg7:Vertex2D, _arg8:Vertex2D, _arg9:NumberUV, _arg10:NumberUV, _arg11:NumberUV, _arg12:NumberUV, _arg13:NumberUV):Array{ if (Vertex2D.distanceSqr(_arg4, _arg7) < Vertex2D.distanceSqr(_arg5, _arg8)){ return ([create(_arg1, _arg2, _arg3, _arg4, _arg5, _arg7, _arg9, _arg10, _arg12), create(_arg1, _arg2, _arg3, _arg5, _arg6, _arg7, _arg10, _arg11, _arg12), create(_arg1, _arg2, _arg3, _arg4, _arg7, _arg8, _arg9, _arg12, _arg13)]); }; return ([create(_arg1, _arg2, _arg3, _arg4, _arg5, _arg8, _arg9, _arg10, _arg13), create(_arg1, _arg2, _arg3, _arg5, _arg6, _arg7, _arg10, _arg11, _arg12), create(_arg1, _arg2, _arg3, _arg5, _arg7, _arg8, _arg10, _arg12, _arg13)]); } private static function num(_arg1:Number):Number{ return ((int((_arg1 * 1000)) / 1000)); } public static function overlap(_arg1:DrawTriangle, _arg2:DrawTriangle):Boolean{ 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:Boolean; 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; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; var _local48:Number; var _local49:Number; var _local50:Number; var _local51:Number; var _local52:Number; var _local53:Number; var _local54:Number; var _local55:Number; var _local56:Number; var _local57:Number; if (_arg1.minX > _arg2.maxX){ return (false); }; if (_arg1.maxX < _arg2.minX){ return (false); }; if (_arg1.minY > _arg2.maxY){ return (false); }; if (_arg1.maxY < _arg2.minY){ return (false); }; _local3 = _arg1.v0.x; _local4 = _arg1.v0.y; _local5 = _arg1.v1.x; _local6 = _arg1.v1.y; _local7 = _arg1.v2.x; _local8 = _arg1.v2.y; _local9 = _arg2.v0.x; _local10 = _arg2.v0.y; _local11 = _arg2.v1.x; _local12 = _arg2.v1.y; _local13 = _arg2.v2.x; _local14 = _arg2.v2.y; _local15 = (_local6 - _local4); _local16 = (_local3 - _local5); _local17 = -(((_local16 * _local4) + (_local15 * _local3))); _local18 = (((_local15 * _local7) + (_local16 * _local8)) + _local17); _local19 = ((((_local15 * _local9) + (_local16 * _local10)) + _local17) * _local18); _local20 = ((((_local15 * _local11) + (_local16 * _local12)) + _local17) * _local18); _local21 = ((((_local15 * _local13) + (_local16 * _local14)) + _local17) * _local18); if ((((((_local19 <= 0.0001)) && ((_local20 <= 0.0001)))) && ((_local21 <= 0.0001)))){ return (false); }; _local22 = (_local8 - _local6); _local23 = (_local5 - _local7); _local24 = (((_local22 * _local22) + (_local23 * _local23)) > 0.0001); _local25 = -(((_local23 * _local6) + (_local22 * _local5))); _local26 = (((_local22 * _local3) + (_local23 * _local4)) + _local25); _local27 = ((((_local22 * _local9) + (_local23 * _local10)) + _local25) * _local26); _local28 = ((((_local22 * _local11) + (_local23 * _local12)) + _local25) * _local26); _local29 = ((((_local22 * _local13) + (_local23 * _local14)) + _local25) * _local26); if ((((((_local27 <= 0.0001)) && ((_local28 <= 0.0001)))) && ((_local29 <= 0.0001)))){ return (false); }; _local30 = (_local4 - _local8); _local31 = (_local7 - _local3); _local32 = -(((_local31 * _local8) + (_local30 * _local7))); _local33 = (((_local30 * _local5) + (_local31 * _local6)) + _local32); _local34 = ((((_local30 * _local9) + (_local31 * _local10)) + _local32) * _local33); _local35 = ((((_local30 * _local11) + (_local31 * _local12)) + _local32) * _local33); _local36 = ((((_local30 * _local13) + (_local31 * _local14)) + _local32) * _local33); if ((((((_local34 <= 0.0001)) && ((_local35 <= 0.0001)))) && ((_local36 <= 0.0001)))){ return (false); }; _local37 = (_local12 - _local10); _local38 = (_local9 - _local11); _local39 = -(((_local38 * _local10) + (_local37 * _local9))); _local40 = (((_local37 * _local13) + (_local38 * _local14)) + _local39); _local41 = ((((_local37 * _local3) + (_local38 * _local4)) + _local39) * _local40); _local42 = ((((_local37 * _local5) + (_local38 * _local6)) + _local39) * _local40); _local43 = ((((_local37 * _local7) + (_local38 * _local8)) + _local39) * _local40); if ((((((_local41 <= 0.0001)) && ((_local42 <= 0.0001)))) && ((_local43 <= 0.0001)))){ return (false); }; _local44 = (_local14 - _local12); _local45 = (_local11 - _local13); _local46 = -(((_local45 * _local12) + (_local44 * _local11))); _local47 = (((_local44 * _local9) + (_local45 * _local10)) + _local46); _local48 = ((((_local44 * _local3) + (_local45 * _local4)) + _local46) * _local47); _local49 = ((((_local44 * _local5) + (_local45 * _local6)) + _local46) * _local47); _local50 = ((((_local44 * _local7) + (_local45 * _local8)) + _local46) * _local47); if ((((((_local48 <= 0.0001)) && ((_local49 <= 0.0001)))) && ((_local50 <= 0.0001)))){ return (false); }; _local51 = (_local10 - _local14); _local52 = (_local13 - _local9); _local53 = -(((_local52 * _local14) + (_local51 * _local13))); _local54 = (((_local51 * _local11) + (_local52 * _local12)) + _local53); _local55 = ((((_local51 * _local3) + (_local52 * _local4)) + _local53) * _local54); _local56 = ((((_local51 * _local5) + (_local52 * _local6)) + _local53) * _local54); _local57 = ((((_local51 * _local7) + (_local52 * _local8)) + _local53) * _local54); if ((((((_local55 <= 0.0001)) && ((_local56 <= 0.0001)))) && ((_local57 <= 0.0001)))){ return (false); }; return (true); } } }//package away3d.core.draw
Section 12
//IBitmapPrimitive (away3d.core.draw.IBitmapPrimitive) package away3d.core.draw { import flash.display.*; public interface IBitmapPrimitive { function renderBitmap(_arg1:BitmapData, _arg2:Number, _arg3:Number):void; } }//package away3d.core.draw
Section 13
//Vertex2D (away3d.core.draw.Vertex2D) package away3d.core.draw { import away3d.core.geom.*; public class Vertex2D { public var num:Number; public var visible:Boolean; public var extra:Object; public var x:Number; public var y:Number; public var z:Number; public function Vertex2D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.visible = false; } public function deperspective(_arg1:Number):Vertex3D{ var _local2:Number; _local2 = (1 + (z / _arg1)); return (new Vertex3D((x * _local2), (y * _local2), z)); } public function toString():String{ return ((((((("new Vertex2D(" + x) + ", ") + y) + ", ") + z) + ")")); } public static function distortSqr(_arg1:Vertex2D, _arg2:Vertex2D, _arg3:Number):Number{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local4 = (_arg3 + _arg1.z); _local5 = (_arg3 + _arg2.z); _local6 = (2 / (_local4 + _local5)); _local7 = (((_arg1.x * _local4) + (_arg2.x * _local5)) * _local6); _local8 = (((_arg1.y * _local4) + (_arg2.y * _local5)) * _local6); _local9 = ((_arg1.x + _arg2.x) - _local7); _local10 = ((_arg1.y + _arg2.y) - _local8); return ((50 * (((_local9 * _local9) + _local10) + _local10))); } public static function median(_arg1:Vertex2D, _arg2:Vertex2D, _arg3:Number):Vertex2D{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; _local4 = ((_arg1.z + _arg2.z) / 2); _local5 = (_arg3 + _arg1.z); _local6 = (_arg3 + _arg2.z); _local7 = ((1 / (_arg3 + _local4)) / 2); return (new Vertex2D((((_arg1.x * _local5) + (_arg2.x * _local6)) * _local7), (((_arg1.y * _local5) + (_arg2.y * _local6)) * _local7), _local4)); } public static function distance(_arg1:Vertex2D, _arg2:Vertex2D):Number{ return (Math.sqrt((((_arg1.x - _arg2.x) * (_arg1.x - _arg2.x)) + ((_arg1.y - _arg2.y) * (_arg1.y - _arg2.y))))); } public static function weighted(_arg1:Vertex2D, _arg2:Vertex2D, _arg3:Number, _arg4:Number, _arg5:Number):Vertex2D{ 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; if ((((_arg4 == 0)) && ((_arg3 == 0)))){ throw (new Error("Zero weights")); }; if (_arg4 == 0){ return (new Vertex2D(_arg1.x, _arg1.y, _arg1.z)); }; if (_arg3 == 0){ return (new Vertex2D(_arg2.x, _arg2.y, _arg2.z)); }; _local6 = (_arg3 + _arg4); _local7 = (_arg3 / _local6); _local8 = (_arg4 / _local6); _local9 = ((_arg1.x * _local7) + (_arg2.x * _local8)); _local10 = ((_arg1.y * _local7) + (_arg2.y * _local8)); _local11 = (_arg1.z / _arg5); _local12 = (_arg2.z / _arg5); _local13 = (1 + _local11); _local14 = (1 + _local12); _local15 = ((_arg1.x * _local13) - (_local9 * _local11)); _local16 = ((_arg2.x * _local14) - (_local9 * _local12)); _local17 = ((_arg1.y * _local13) - (_local10 * _local11)); _local18 = ((_arg2.y * _local14) - (_local10 * _local12)); _local19 = ((_local15 * _local18) - (_local16 * _local17)); _local20 = ((_local9 * _local18) - (_local16 * _local10)); _local21 = ((_local15 * _local10) - (_local9 * _local17)); return (new Vertex2D(_local9, _local10, (((_local20 * _arg1.z) + (_local21 * _arg2.z)) / _local19))); } public static function distanceSqr(_arg1:Vertex2D, _arg2:Vertex2D):Number{ return ((((_arg1.x - _arg2.x) * (_arg1.x - _arg2.x)) + ((_arg1.y - _arg2.y) * (_arg1.y - _arg2.y)))); } } }//package away3d.core.draw
Section 14
//BitmapMesh3D (away3d.core.geom.BitmapMesh3D) package away3d.core.geom { import away3d.core.draw.*; import away3d.core.render.*; import away3d.core.material.*; public class BitmapMesh3D extends Mesh3D implements IPrimitiveProvider { public function BitmapMesh3D(_arg1:IMaterial, _arg2:Object=null){ super(_arg1, _arg2); } override public function primitives(_arg1:Projection, _arg2:IPrimitiveConsumer):void{ var _local3:BitmapTriangle; var _local4:ITriangleMaterial; var _local5:Face3D; var _local6:Vertex2D; var _local7:NumberUV; _local4 = ((material is ITriangleMaterial)) ? (material as ITriangleMaterial) : null; for each (_local5 in faces) { if (!_local5.visible){ } else { _local3 = ((_local3) || (new BitmapTriangle())); _local3.v0 = _local5.v0.project(_arg1); _local3.v1 = _local5.v1.project(_arg1); _local3.v2 = _local5.v2.project(_arg1); if (!_local3.v0.visible){ } else { if (!_local3.v1.visible){ } else { if (!_local3.v2.visible){ } else { _local3.calc(); if (_local3.maxZ < 0){ } else { _local3.material = ((_local5.material) || (_local4)); if (_local3.material == null){ } else { if (!_local3.material.visible){ } else { if (((!(bothsides)) && ((_local3.area <= 0)))){ } else { if (pushback){ _local3.screenZ = _local3.maxZ; }; if (pushfront){ _local3.screenZ = _local3.minZ; }; _local3.uv0 = _local5.uv0; _local3.uv1 = _local5.uv1; _local3.uv2 = _local5.uv2; if (_local3.uv0 != null){ if (_local5.texturemapping == null){ if ((_local3.material is IUVMaterial)){ _local5.texturemapping = _local3.transformUV((_local3.material as IUVMaterial)); }; }; _local3.texturemapping = _local5.texturemapping; }; if (_local3.area <= 0){ _local3.texturemapping = null; _local6 = _local3.v1; _local3.v1 = _local3.v2; _local3.v2 = _local6; _local7 = _local3.uv1; _local3.uv1 = _local5.uv2; _local3.uv2 = _local7; }; _local3.source = this; _local3.face = _local5; _local3.projection = _arg1; _arg2.primitive(_local3); _local3 = null; }; }; }; }; }; }; }; }; }; } } }//package away3d.core.geom
Section 15
//Face3D (away3d.core.geom.Face3D) package away3d.core.geom { import away3d.core.math.*; import away3d.core.material.*; import flash.geom.*; import away3d.core.physics.*; public class Face3D extends ChildObject3D { public var v2:Vertex3D; public var extra:Object; public var material:ITriangleMaterial; public var uv0:NumberUV; public var uv1:NumberUV; public var uv2:NumberUV; public var texturemapping:Matrix; public var a:Number3D; public var b:Number3D; public var normal:Number3D; public var visible:Boolean;// = true public var v0:Vertex3D; public var v1:Vertex3D; public function Face3D(_arg1:Vertex3D, _arg2:Vertex3D, _arg3:Vertex3D, _arg4:ITriangleMaterial=null, _arg5:NumberUV=null, _arg6:NumberUV=null, _arg7:NumberUV=null){ visible = true; super(); this.v0 = _arg1; this.v1 = _arg2; this.v2 = _arg3; this.material = _arg4; this.uv0 = _arg5; this.uv1 = _arg6; this.uv2 = _arg7; } } }//package away3d.core.geom
Section 16
//Mesh3D (away3d.core.geom.Mesh3D) package away3d.core.geom { import away3d.core.proto.*; import away3d.core.math.*; import away3d.core.draw.*; import away3d.core.render.*; import away3d.core.material.*; import away3d.core.*; import flash.geom.*; public class Mesh3D extends Vertices3D implements IPrimitiveProvider { public var pushback:Boolean; public var bothsides:Boolean; public var material:IMaterial; public var pushfront:Boolean; public var surfaces:Array; public var segments:Array; public var faces:Array; public var surface:Face3D; public function Mesh3D(_arg1:IMaterial, _arg2:Object=null){ faces = []; surfaces = []; segments = []; super(_arg2); _arg2 = Init.parse(_arg2); bothsides = _arg2.getBoolean("bothsides", false); pushback = _arg2.getBoolean("pushback", false); pushfront = _arg2.getBoolean("pushfront", false); this.material = ((_arg1) || (new WireColorMaterial())); } public function insideShape(_arg1:Array, _arg2:Array):Boolean{ var _local3:Boolean; var _local4:Point; var _local5:Number; var _local6:Number; var _local7:Point; var _local8:Point; for each (_local4 in _arg1) { _local3 = true; _local6 = 0; while (_local6 < _arg2.length) { _local5 = ((_local6)==0) ? (_arg2.length - 1) : (_local6 - 1); _local7 = _arg2[_local5]; _local8 = _arg2[_local6]; if (((((((_local7.x * _local8.y) - (_local7.y * _local8.x)) - (_local4.x * _local8.y)) + (_local4.y * _local8.x)) + (_local4.x * _local7.y)) - (_local4.y * _local7.x)) < -0.5){ _local3 = false; }; _local6++; }; if (_local3){ return (true); }; }; for each (_local4 in _arg2) { _local3 = true; _local6 = 0; while (_local6 < _arg1.length) { _local5 = ((_local6)==0) ? (_arg1.length - 1) : (_local6 - 1); _local7 = _arg1[_local5]; _local8 = _arg1[_local6]; if (((((((_local7.x * _local8.y) - (_local7.y * _local8.x)) - (_local4.x * _local8.y)) + (_local4.y * _local8.x)) + (_local4.x * _local7.y)) - (_local4.y * _local7.x)) < -0.5){ _local3 = false; }; _local6++; }; if (_local3){ return (true); }; }; return (_local3); } public function quarterFaces():void{ var _local1:Array; var _local2:Face3D; var _local3:Vertex3D; var _local4:Vertex3D; var _local5:Vertex3D; var _local6:Vertex3D; var _local7:Vertex3D; var _local8:Vertex3D; var _local9:NumberUV; var _local10:NumberUV; var _local11:NumberUV; var _local12:NumberUV; var _local13:NumberUV; var _local14:NumberUV; var _local15:ITriangleMaterial; _local1 = faces; faces = []; for each (_local2 in _local1) { _local3 = _local2.v0; _local4 = _local2.v1; _local5 = _local2.v2; _local6 = Vertex3D.median(_local3, _local4); _local7 = Vertex3D.median(_local4, _local5); _local8 = Vertex3D.median(_local5, _local3); _local9 = _local2.uv0; _local10 = _local2.uv1; _local11 = _local2.uv2; _local12 = NumberUV.median(_local9, _local10); _local13 = NumberUV.median(_local10, _local11); _local14 = NumberUV.median(_local11, _local9); _local15 = _local2.material; addFace3D(new Face3D(_local3, _local6, _local8, _local15, _local9, _local12, _local14)); addFace3D(new Face3D(_local6, _local4, _local7, _local15, _local12, _local10, _local13)); addFace3D(new Face3D(_local8, _local7, _local5, _local15, _local14, _local13, _local11)); addFace3D(new Face3D(_local7, _local8, _local6, _local15, _local13, _local14, _local12)); }; } public function inverseFaces():void{ var _local1:Face3D; var _local2:Vertex3D; var _local3:NumberUV; for each (_local1 in faces) { _local2 = _local1.v1; _local1.v1 = _local1.v2; _local1.v2 = _local2; _local3 = _local1.uv1; _local1.uv1 = _local1.uv2; _local1.uv2 = _local3; }; } public function addFace3D(_arg1:Face3D):Face3D{ if (_arg1 == null){ throw (new Error("Vertices3D.addFace3D(null)")); }; if (_arg1.parent == this){ return (_arg1); }; _arg1.parent = null; faces.push(_arg1); _arg1._parent = this; _arg1.scenePosition = sceneTransform.transformPoint(_arg1.position); return (_arg1); } public function primitives(_arg1:Projection, _arg2:IPrimitiveConsumer):void{ var _local3:DrawTriangle; var _local4:ITriangleMaterial; var _local5:Face3D; var _local6:DrawSegment; var _local7:ISegmentMaterial; var _local8:Segment3D; var _local9:Vertex2D; var _local10:NumberUV; _local4 = ((material is ITriangleMaterial)) ? (material as ITriangleMaterial) : null; for each (_local5 in faces) { if (!_local5.visible){ } else { _local3 = ((_local3) || (new DrawTriangle())); _local3.v0 = _local5.v0.project(_arg1); _local3.v1 = _local5.v1.project(_arg1); _local3.v2 = _local5.v2.project(_arg1); if (!_local3.v0.visible){ } else { if (!_local3.v1.visible){ } else { if (!_local3.v2.visible){ } else { _local3.calc(); if (_local3.maxZ < 0){ } else { _local3.material = ((_local5.material) || (_local4)); if (_local3.material == null){ } else { if (!_local3.material.visible){ } else { if (((!(bothsides)) && ((_local3.area <= 0)))){ } else { if (pushback){ _local3.screenZ = _local3.maxZ; }; if (pushfront){ _local3.screenZ = _local3.minZ; }; _local3.uv0 = _local5.uv0; _local3.uv1 = _local5.uv1; _local3.uv2 = _local5.uv2; if (_local3.uv0 != null){ if (_local5.texturemapping == null){ if ((_local3.material is IUVMaterial)){ _local5.texturemapping = _local3.transformUV((_local3.material as IUVMaterial)); }; }; _local3.texturemapping = _local5.texturemapping; }; if (_local3.area <= 0){ _local3.texturemapping = null; _local9 = _local3.v1; _local3.v1 = _local3.v2; _local3.v2 = _local9; _local10 = _local3.uv1; _local3.uv1 = _local5.uv2; _local3.uv2 = _local10; }; _local3.source = this; _local3.face = _local5; _local3.projection = _arg1; _arg2.primitive(_local3); _local3 = null; }; }; }; }; }; }; }; }; }; _local7 = ((material is ISegmentMaterial)) ? (material as ISegmentMaterial) : null; for each (_local8 in segments) { _local6 = ((_local6) || (new DrawSegment())); _local6.v0 = _local8.v0.project(_arg1); _local6.v1 = _local8.v1.project(_arg1); if (!_local6.v0.visible){ } else { if (!_local6.v1.visible){ } else { _local6.calc(); if (_local6.maxZ < 0){ } else { _local6.material = ((_local8.material) || (_local7)); if (_local6.material == null){ } else { if (!_local6.material.visible){ } else { _local6.source = this; _local6.projection = _arg1; _arg2.primitive(_local6); _local6 = null; }; }; }; }; }; }; } } }//package away3d.core.geom
Section 17
//NumberUV (away3d.core.geom.NumberUV) package away3d.core.geom { 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 static function median(_arg1:NumberUV, _arg2:NumberUV):NumberUV{ if (_arg1 == null){ return (null); }; if (_arg2 == null){ return (null); }; return (new NumberUV(((_arg1.u + _arg2.u) / 2), ((_arg1.v + _arg2.v) / 2))); } public static function weighted(_arg1:NumberUV, _arg2:NumberUV, _arg3:Number, _arg4:Number):NumberUV{ var _local5:Number; var _local6:Number; var _local7:Number; if (_arg1 == null){ return (null); }; if (_arg2 == null){ return (null); }; _local5 = (_arg3 + _arg4); _local6 = (_arg3 / _local5); _local7 = (_arg4 / _local5); return (new NumberUV(((_arg1.u * _local6) + (_arg2.u * _local7)), ((_arg1.v * _local6) + (_arg2.v * _local7)))); } } }//package away3d.core.geom
Section 18
//ParticleMesh (away3d.core.geom.ParticleMesh) package away3d.core.geom { import away3d.dof.*; import away3d.core.draw.*; import away3d.core.render.*; import away3d.core.material.*; import away3d.core.*; import flash.utils.*; public class ParticleMesh extends Mesh3D implements IPrimitiveProvider { private var segmentGfx:Array; public var ppe:Number; private var center:Vertex3D; public var scaling:Number; public var r:Number;// = 0 public var blendMode:String; private var dofEngine:DofEngine; public var lastVertex:Vertex3D; public function ParticleMesh(_arg1:IMaterial, _arg2:Object=null){ center = new Vertex3D(); r = 0; _arg2 = Init.parse(_arg2); dofEngine = ((_arg2 as Init).getObject("dofEngine", null) as DofEngine); scaling = (_arg2 as Init).getNumber("scaling", 1); segmentGfx = new Array(); super(_arg1, _arg2); } public function clearSegments():void{ segmentGfx = new Array(); segments = new Array(); } public function setupSegments():void{ var _local1:Dictionary; var _local2:Face3D; var _local3:int; var _local4:Object; var _local5:Vertex3D; var _local6:Dictionary; var _local7:Object; var _local8:Vertex3D; var _local9:BitmapParticleSegment; _local1 = new Dictionary(); for each (_local2 in faces) { if (_local1[_local2.v0] == null){ _local1[_local2.v0] = new Dictionary(); }; if (_local1[_local2.v1] == null){ _local1[_local2.v1] = new Dictionary(); }; if (_local1[_local2.v2] == null){ _local1[_local2.v2] = new Dictionary(); }; if ((((_local1[_local2.v0][_local2.v1] == undefined)) && ((_local1[_local2.v1][_local2.v0] == undefined)))){ _local1[_local2.v0][_local2.v1] = true; }; if ((((_local1[_local2.v0][_local2.v2] == undefined)) && ((_local1[_local2.v2][_local2.v0] == undefined)))){ _local1[_local2.v0][_local2.v2] = true; }; if ((((_local1[_local2.v1][_local2.v2] == undefined)) && ((_local1[_local2.v2][_local2.v1] == undefined)))){ _local1[_local2.v1][_local2.v2] = true; }; }; _local3 = 0; segmentGfx = new Array(); for (_local4 in _local1) { _local5 = (_local4 as Vertex3D); _local6 = _local1[_local4]; for (_local7 in _local6) { _local8 = (_local7 as Vertex3D); segments.push(new Segment3D(_local5, _local8)); _local9 = new BitmapParticleSegment(); _local9.ppe = ppe; segmentGfx.push(_local9); _local3++; }; }; } override public function primitives(_arg1:Projection, _arg2:IPrimitiveConsumer):void{ var _local3:Vertex2D; var _local4:Vertex2D; var _local5:Vertex2D; var _local6:BitmapParticleSegment; var _local7:int; var _local8:Segment3D; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; _local7 = 0; for each (_local8 in segments) { _local6 = segmentGfx[_local7]; _local3 = _local8.v0.project(_arg1); _local4 = _local8.v1.project(_arg1); _local9 = (_arg1.zoom / (1 + (_local3.z / _arg1.focus))); _local10 = (_arg1.zoom / (1 + (_local4.z / _arg1.focus))); _local11 = (((_local9 - 3) / 2) + 0.5); _local12 = (((_local10 - 3) / 2) + 0.5); _local6.bitmap = dofEngine.getBitmap(((_local3.z + _local4.z) / 2)); _local6.update(_local3, _local4, (_local9 * scaling), (_local10 * scaling), Math.min((_local11 * _local11), 1), Math.min(1, (_local12 * _local12)), r); _arg2.primitive(_local6); _local7++; }; } public function appendSegment(_arg1:Vertex3D, _arg2:Number=1, _arg3:String="normal"):void{ var _local4:Segment3D; var _local5:BitmapParticleSegment; _local4 = new Segment3D(lastVertex, new Vertex3D(_arg1.x, _arg1.y, _arg1.z)); segments.push(_local4); _local5 = new BitmapParticleSegment(); _local5.ppe = ppe; _local5.scale = _arg2; _local5.blendMode = _arg3; segmentGfx.push(_local5); lastVertex = _local4.v1; } } }//package away3d.core.geom
Section 19
//Segment3D (away3d.core.geom.Segment3D) package away3d.core.geom { import away3d.core.material.*; public class Segment3D { public var v0:Vertex3D; public var v1:Vertex3D; public var material:ISegmentMaterial; public function Segment3D(_arg1:Vertex3D, _arg2:Vertex3D, _arg3:ISegmentMaterial=null){ this.v0 = _arg1; this.v1 = _arg2; this.material = _arg3; } } }//package away3d.core.geom
Section 20
//Vertex3D (away3d.core.geom.Vertex3D) package away3d.core.geom { import away3d.core.math.*; import away3d.core.draw.*; import away3d.core.render.*; import away3d.core.physics.*; public class Vertex3D extends ChildObject3D { protected var _y:Number; public var extra:Object; private var projection:Projection; private var projected:Vertex2D; protected var _x:Number; protected var _z:Number; public function Vertex3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ _x = _arg1; _y = _arg2; _z = _arg3; oldPosition = position; } public function get y():Number{ return (_y); } public function project(_arg1:Projection):Vertex2D{ var _local2:Matrix3D; var _local3:Number; var _local4:Number; if (this.projection == _arg1){ return (projected); }; this.projection = _arg1; if (projected == null){ projected = new Vertex2D(); }; _local2 = _arg1.view; _local3 = ((((x * _local2.n31) + (y * _local2.n32)) + (z * _local2.n33)) + _local2.n34); if ((_local3 * 2) <= -(_arg1.focus)){ projected.visible = false; return (projected); }; projected.visible = true; _local4 = (_arg1.zoom / (1 + (_local3 / _arg1.focus))); projected.z = _local3; projected.x = (((((x * _local2.n11) + (y * _local2.n12)) + (z * _local2.n13)) + _local2.n14) * _local4); projected.y = (((((x * _local2.n21) + (y * _local2.n22)) + (z * _local2.n23)) + _local2.n24) * _local4); return (projected); } public function get x():Number{ return (_x); } override public function get position():Number3D{ return (new Number3D(x, y, z)); } public function perspective(_arg1:Number):Vertex2D{ var _local2:Number; _local2 = (1 / (1 + (z / _arg1))); return (new Vertex2D((x * _local2), (y * _local2), z)); } override public function set position(_arg1:Number3D):void{ x = _arg1.x; y = _arg1.y; z = _arg1.z; } public function set(_arg1:Number, _arg2:Number, _arg3:Number):void{ this.x = _arg1; this.y = _arg2; this.z = _arg3; } public function set x(_arg1:Number):void{ _x = (oldPosition.x = _arg1); } public function set y(_arg1:Number):void{ _y = (oldPosition.y = _arg1); } public function toString():String{ return ((((((("Vertex3D(" + x) + ", ") + y) + ", ") + z) + ")")); } public function set z(_arg1:Number):void{ _z = (oldPosition.z = _arg1); } public function get z():Number{ return (_z); } public static function median(_arg1:Vertex3D, _arg2:Vertex3D):Vertex3D{ return (new Vertex3D(((_arg1.x + _arg2.x) / 2), ((_arg1.y + _arg2.y) / 2), ((_arg1.z + _arg2.z) / 2))); } public static function weighted(_arg1:Vertex3D, _arg2:Vertex3D, _arg3:Number, _arg4:Number):Vertex3D{ var _local5:Number; var _local6:Number; var _local7:Number; _local5 = (_arg3 + _arg4); _local6 = (_arg3 / _local5); _local7 = (_arg4 / _local5); return (new Vertex3D(((_arg1.x * _local6) + (_arg2.x * _local7)), ((_arg1.y * _local6) + (_arg2.y * _local7)), ((_arg1.z * _local6) + (_arg2.z * _local7)))); } } }//package away3d.core.geom
Section 21
//Vertices3D (away3d.core.geom.Vertices3D) package away3d.core.geom { import away3d.core.proto.*; public class Vertices3D extends Object3D { public var height:Number;// = 100 public var yMax:Number;// = -1000000 public var yMin:Number;// = 1000000 public var wrap:Boolean;// = true public var minradius:Number;// = 0 public var particle:Vertex3D; public var zMax:Number;// = -1000000 public var zMin:Number;// = 1000000 public var particles:Array; public var xMin:Number;// = 1000000 public var depth:Number;// = 100 public var width:Number;// = 100 public var xMax:Number;// = -1000000 public var length:Number; public var maxradius:Number;// = -1 public var vertices:Array; public function Vertices3D(_arg1:Object=null){ vertices = []; particles = []; maxradius = -1; minradius = 0; xMin = 1000000; xMax = -1000000; yMin = 1000000; yMax = -1000000; zMin = 1000000; zMax = -1000000; width = 100; height = 100; depth = 100; wrap = true; super(_arg1); } public function addVertex3D(_arg1:Vertex3D):Vertex3D{ if (_arg1 == null){ throw (new Error("Vertices3D.addVertex(null)")); }; if (_arg1.parent == this){ return (_arg1); }; _arg1.parent = null; vertices.push(_arg1); _arg1._parent = this; _arg1.scenePosition = sceneTransform.transformPoint(_arg1.position); return (_arg1); } } }//package away3d.core.geom
Section 22
//BitmapMaterial (away3d.core.material.BitmapMaterial) package away3d.core.material { import flash.display.*; import away3d.core.proto.*; import away3d.core.math.*; import away3d.core.draw.*; import away3d.core.render.*; import away3d.core.*; import flash.geom.*; public class BitmapMaterial implements ITriangleMaterial, IUVMaterial { var v1:Vertex2D; public var bounce:Number; public var friction:Number; var graphics:Graphics; var mapping:Matrix; public var debug:Boolean; public var blendMode:String;// = "normal" public var repeat:Boolean; protected var mat:Matrix; public var smooth:Boolean; public var bitmap:BitmapData; public var ct:ColorTransform; public var traction:Number; protected var spr:Sprite; var v0:Vertex2D; var v2:Vertex2D; public function BitmapMaterial(_arg1:BitmapData, _arg2:Object=null){ blendMode = BlendMode.NORMAL; ct = new ColorTransform(); spr = new Sprite(); mat = new Matrix(); super(); this.bitmap = _arg1; _arg2 = Init.parse(_arg2); smooth = _arg2.getBoolean("smooth", false); debug = _arg2.getBoolean("debug", false); repeat = _arg2.getBoolean("repeat", false); } public function get width():Number{ return (bitmap.width); } private function render(_arg1:DrawTriangle, _arg2:Graphics):void{ mapping = ((_arg1.texturemapping) || (_arg1.transformUV(this))); v0 = _arg1.v0; v1 = _arg1.v1; v2 = _arg1.v2; RenderTriangle.renderBitmap(_arg2, bitmap, mapping.a, mapping.b, mapping.c, mapping.d, mapping.tx, mapping.ty, v0.x, v0.y, v1.x, v1.y, v2.x, v2.y, smooth, repeat); } public function bitmapRenderTriangle(_arg1:DrawTriangle, _arg2:BitmapData, _arg3:Number, _arg4:Number):void{ spr.graphics.clear(); render(_arg1, spr.graphics); mat.tx = _arg3; mat.ty = _arg4; _arg2.draw(spr, mat, ct, blendMode); } public function get height():Number{ return (bitmap.height); } public function get visible():Boolean{ return (true); } public function renderTriangle(_arg1:DrawTriangle, _arg2:RenderSession):void{ render(_arg1, _arg2.graphics); } } }//package away3d.core.material
Section 23
//CenterLightingMaterial (away3d.core.material.CenterLightingMaterial) package away3d.core.material { import flash.display.*; import away3d.core.draw.*; import away3d.core.render.*; import away3d.core.*; public class CenterLightingMaterial implements ITriangleMaterial { public var draw_normal:Boolean;// = false public var draw_fall_k:Number;// = 1 public var diffuse_brightness:Number;// = 1 public var draw_reflect:Boolean;// = false public var draw_fall:Boolean;// = false public var ambient_brightness:Number;// = 1 public var specular_brightness:Number;// = 1 public var ak:Number;// = 20 public var draw_reflect_k:Number;// = 1 public function CenterLightingMaterial(_arg1:Object=null){ ambient_brightness = 1; diffuse_brightness = 1; specular_brightness = 1; ak = 20; draw_normal = false; draw_fall = false; draw_fall_k = 1; draw_reflect = false; draw_reflect_k = 1; super(); _arg1 = Init.parse(_arg1); ak = _arg1.getNumber("ak", 20); } public function bitmapRenderTriangle(_arg1:DrawTriangle, _arg2:BitmapData, _arg3:Number, _arg4:Number):void{ } public function get visible():Boolean{ throw (new Error("Not implemented")); } public function renderTri(_arg1:DrawTriangle, _arg2:RenderSession, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number):void{ throw (new Error("Not implemented")); } public function renderTriangle(_arg1:DrawTriangle, _arg2:RenderSession):void{ var _local3:Vertex2D; var _local4:Vertex2D; var _local5:Vertex2D; var _local6:Projection; 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; var _local35:Number; var _local36:Number; var _local37:Number; var _local38:Number; var _local39:Number; var _local40:Number; var _local41:Number; var _local42:Number; var _local43:PointLightSource; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; var _local48:Number; var _local49:Number; var _local50:Number; var _local51:Number; var _local52:Number; var _local53:Number; var _local54:Number; var _local55:Number; var _local56:Number; var _local57:Number; var _local58:Number; var _local59:Graphics; var _local60:Number; var _local61:Number; var _local62:Number; var _local63:Number; var _local64:Number; var _local65:Number; var _local66:Number; var _local67:Number; var _local68:Number; var _local69:Number; var _local70:Number; var _local71:Number; var _local72:Number; var _local73:Number; var _local74:Number; var _local75:Number; _local3 = _arg1.v0; _local4 = _arg1.v1; _local5 = _arg1.v2; _local6 = _arg1.projection; _local7 = _local6.focus; _local8 = _local6.zoom; _local9 = _local3.z; _local10 = ((1 + (_local9 / _local7)) / _local8); _local11 = (_local3.x * _local10); _local12 = (_local3.y * _local10); _local13 = _local4.z; _local14 = ((1 + (_local13 / _local7)) / _local8); _local15 = (_local4.x * _local14); _local16 = (_local4.y * _local14); _local17 = _local5.z; _local18 = ((1 + (_local17 / _local7)) / _local8); _local19 = (_local5.x * _local18); _local20 = (_local5.y * _local18); _local21 = (_local15 - _local11); _local22 = (_local16 - _local12); _local23 = (_local13 - _local9); _local24 = (_local19 - _local11); _local25 = (_local20 - _local12); _local26 = (_local17 - _local9); _local27 = ((_local22 * _local26) - (_local23 * _local25)); _local28 = ((_local23 * _local24) - (_local21 * _local26)); _local29 = ((_local21 * _local25) - (_local22 * _local24)); _local30 = Math.sqrt((((_local27 * _local27) + (_local28 * _local28)) + (_local29 * _local29))); _local27 = (_local27 / _local30); _local28 = (_local28 / _local30); _local29 = (_local29 / _local30); _local31 = (((_local11 + _local15) + _local19) / 3); _local32 = (((_local12 + _local16) + _local20) / 3); _local33 = (((_local9 + _local13) + _local17) / 3); _local34 = 0; _local35 = 0; _local36 = 0; _local37 = 0; _local38 = 0; _local39 = 0; _local40 = 0; _local41 = 0; _local42 = 0; for each (_local43 in _arg2.lightarray.points) { _local44 = _local43.red; _local45 = _local43.green; _local46 = _local43.blue; _local47 = (_local43.x - _local31); _local48 = (_local43.y - _local32); _local49 = (_local43.z - _local33); _local50 = Math.sqrt((((_local47 * _local47) + (_local48 * _local48)) + (_local49 * _local49))); _local47 = (_local47 / _local50); _local48 = (_local48 / _local50); _local49 = (_local49 / _local50); _local51 = ((1 / _local50) / _local50); _local52 = ((_local43.ambient * _local51) * ambient_brightness); _local34 = (_local34 + (_local44 * _local52)); _local35 = (_local35 + (_local45 * _local52)); _local36 = (_local36 + (_local46 * _local52)); _local53 = (((_local47 * _local27) + (_local48 * _local28)) + (_local49 * _local29)); if (_local53 < 0){ } else { _local54 = (((_local43.diffuse * _local51) * _local53) * diffuse_brightness); _local37 = (_local37 + (_local44 * _local54)); _local38 = (_local38 + (_local45 * _local54)); _local39 = (_local39 + (_local46 * _local54)); _local55 = (_local47 - ((2 * _local53) * _local27)); _local56 = (_local48 - ((2 * _local53) * _local28)); _local57 = (_local49 - ((2 * _local53) * _local29)); if (_local57 < 0){ } else { _local58 = (((_local43.specular * _local51) * Math.pow(_local57, ak)) * specular_brightness); _local40 = (_local40 + (_local44 * _local58)); _local41 = (_local41 + (_local45 * _local58)); _local42 = (_local42 + (_local46 * _local58)); }; }; }; renderTri(_arg1, _arg2, _local34, _local35, _local36, _local37, _local38, _local39, _local40, _local41, _local42); if (((((draw_fall) || (draw_reflect))) || (draw_normal))){ _local59 = _arg2.graphics; _local60 = _local33; _local61 = ((_local31 * _local8) / (1 + (_local60 / _local7))); _local62 = ((_local32 * _local8) / (1 + (_local60 / _local7))); if (draw_normal){ _local63 = (_local33 + (30 * _local29)); _local64 = ((((_local31 + (30 * _local27)) * _local8) * _local7) / (_local7 + _local63)); _local65 = ((((_local32 + (30 * _local28)) * _local8) * _local7) / (_local7 + _local63)); _local59.lineStyle(1, 0, 1); _local59.moveTo(_local61, _local62); _local59.lineTo(_local64, _local65); _local59.moveTo(_local61, _local62); _local59.drawCircle(_local61, _local62, 2); }; if (((draw_fall) || (draw_reflect))){ for each (_local43 in _arg2.lightarray.points) { _local44 = _local43.red; _local45 = _local43.green; _local46 = _local43.blue; _local66 = (((_local44 + _local45) + _local46) / 0xFF); _local44 = (_local44 / _local66); _local45 = (_local45 / _local66); _local46 = (_local46 / _local66); _local47 = (_local43.x - _local31); _local48 = (_local43.y - _local32); _local49 = (_local43.z - _local33); _local50 = Math.sqrt((((_local47 * _local47) + (_local48 * _local48)) + (_local49 * _local49))); _local47 = (_local47 / _local50); _local48 = (_local48 / _local50); _local49 = (_local49 / _local50); _local53 = (((_local47 * _local27) + (_local48 * _local28)) + (_local49 * _local29)); if (_local53 < 0){ } else { if (draw_fall){ _local67 = (_local33 + ((30 * _local49) * (1 - draw_fall_k))); _local68 = ((((_local31 + ((30 * _local47) * (1 - draw_fall_k))) * _local8) * _local7) / (_local7 + _local67)); _local69 = ((((_local32 + ((30 * _local48) * (1 - draw_fall_k))) * _local8) * _local7) / (_local7 + _local67)); _local70 = (_local33 + (30 * _local49)); _local71 = ((((_local31 + (30 * _local47)) * _local8) * _local7) / (_local7 + _local70)); _local72 = ((((_local32 + (30 * _local48)) * _local8) * _local7) / (_local7 + _local70)); _local59.lineStyle(1, (((int(_local44) * 65536) + (int(_local45) * 0x0100)) + int(_local46)), 1); _local59.moveTo(_local68, _local69); _local59.lineTo(_local71, _local72); _local59.moveTo(_local68, _local69); }; if (draw_reflect){ _local55 = (_local47 - ((2 * _local53) * _local27)); _local56 = (_local48 - ((2 * _local53) * _local28)); _local57 = (_local49 - ((2 * _local53) * _local29)); _local73 = (_local33 - ((30 * _local57) * draw_reflect_k)); _local74 = ((((_local31 - ((30 * _local55) * draw_reflect_k)) * _local8) * _local7) / (_local7 + _local73)); _local75 = ((((_local32 - ((30 * _local56) * draw_reflect_k)) * _local8) * _local7) / (_local7 + _local73)); _local59.lineStyle(1, (((int((_local44 / 2)) * 65536) + (int((_local45 / 2)) * 0x0100)) + int((_local46 / 2))), 1); _local59.moveTo(_local61, _local62); _local59.lineTo(_local74, _local75); _local59.moveTo(_local61, _local62); }; }; }; }; }; } } }//package away3d.core.material
Section 24
//ColorMaterial (away3d.core.material.ColorMaterial) package away3d.core.material { public class ColorMaterial extends WireColorMaterial { public function ColorMaterial(_arg1:int=-1, _arg2:Number=1){ if (_arg1 == -1){ _arg1 = int((0xFFFFFF * Math.random())); }; super(_arg1, 0, _arg2, 0, 0); } } }//package away3d.core.material
Section 25
//IMaterial (away3d.core.material.IMaterial) package away3d.core.material { public interface IMaterial { function get visible():Boolean; } }//package away3d.core.material
Section 26
//ISegmentMaterial (away3d.core.material.ISegmentMaterial) package away3d.core.material { import away3d.core.draw.*; import away3d.core.render.*; public interface ISegmentMaterial extends IMaterial { function renderSegment(_arg1:DrawSegment, _arg2:RenderSession):void; } }//package away3d.core.material
Section 27
//ITriangleMaterial (away3d.core.material.ITriangleMaterial) package away3d.core.material { import flash.display.*; import away3d.core.draw.*; import away3d.core.render.*; public interface ITriangleMaterial extends IMaterial { function bitmapRenderTriangle(_arg1:DrawTriangle, _arg2:BitmapData, _arg3:Number, _arg4:Number):void; function renderTriangle(_arg1:DrawTriangle, _arg2:RenderSession):void; } }//package away3d.core.material
Section 28
//IUVMaterial (away3d.core.material.IUVMaterial) package away3d.core.material { public interface IUVMaterial extends IMaterial { function get width():Number; function get height():Number; } }//package away3d.core.material
Section 29
//RenderTriangle (away3d.core.material.RenderTriangle) package away3d.core.material { import flash.display.*; import flash.geom.*; public class RenderTriangle { private static var matrix:Matrix = new Matrix(); public static function renderBitmap(_arg1:Graphics, _arg2:BitmapData, _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:Boolean, _arg16:Boolean):void{ var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; _local17 = (_arg11 - _arg9); _local18 = (_arg12 - _arg10); _local19 = (_arg13 - _arg9); _local20 = (_arg14 - _arg10); matrix.a = ((_arg3 * _local17) + (_arg4 * _local19)); matrix.b = ((_arg3 * _local18) + (_arg4 * _local20)); matrix.c = ((_arg5 * _local17) + (_arg6 * _local19)); matrix.d = ((_arg5 * _local18) + (_arg6 * _local20)); matrix.tx = (((_arg7 * _local17) + (_arg8 * _local19)) + _arg9); matrix.ty = (((_arg7 * _local18) + (_arg8 * _local20)) + _arg10); _arg1.lineStyle(); _arg1.beginBitmapFill(_arg2, matrix, _arg16, ((_arg15) && (((((_arg9 * (_arg14 - _arg12)) + (_arg11 * (_arg10 - _arg14))) + (_arg13 * (_arg12 - _arg10))) > 400)))); _arg1.moveTo(_arg9, _arg10); _arg1.lineTo(_arg11, _arg12); _arg1.lineTo(_arg13, _arg14); _arg1.endFill(); } public static function renderColor(_arg1:Graphics, _arg2:int, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number):void{ _arg1.lineStyle(); _arg1.beginFill(_arg2, _arg3); _arg1.moveTo(_arg4, _arg5); _arg1.lineTo(_arg6, _arg7); _arg1.lineTo(_arg8, _arg9); _arg1.endFill(); } } }//package away3d.core.material
Section 30
//ShadingColorMaterial (away3d.core.material.ShadingColorMaterial) package away3d.core.material { import away3d.core.math.*; import away3d.core.draw.*; import away3d.core.render.*; import away3d.core.*; public class ShadingColorMaterial extends CenterLightingMaterial { public var specular:int; public var ambient:int; public var diffuse:int; public function ShadingColorMaterial(_arg1:Object=null){ var _local2:int; super(_arg1); _arg1 = Init.parse(_arg1); _local2 = _arg1.getColor("color", 0xFFFFFF); ambient = _arg1.getColor("ambient", _local2); diffuse = _arg1.getColor("diffuse", _local2); specular = _arg1.getColor("specular", _local2); } override public function get visible():Boolean{ return (true); } override public function renderTri(_arg1:DrawTriangle, _arg2:RenderSession, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number):void{ var _local12:Vertex2D; var _local13:Vertex2D; var _local14:Vertex2D; var _local15:int; var _local16:int; var _local17:int; var _local18:int; _local12 = _arg1.v0; _local13 = _arg1.v1; _local14 = _arg1.v2; _local15 = int((((((ambient & 0xFF0000) * _arg3) + ((diffuse & 0xFF0000) * _arg6)) + ((specular & 0xFF0000) * _arg9)) >> 16)); _local16 = int((((((ambient & 0xFF00) * _arg4) + ((diffuse & 0xFF00) * _arg7)) + ((specular & 0xFF00) * _arg10)) >> 8)); _local17 = int(((((ambient & 0xFF) * _arg5) + ((diffuse & 0xFF) * _arg8)) + ((specular & 0xFF) * _arg11))); if (_local15 > 0xFF){ _local15 = 0xFF; }; if (_local16 > 0xFF){ _local16 = 0xFF; }; if (_local17 > 0xFF){ _local17 = 0xFF; }; _local18 = ((int((_local15 * 65536)) + int((_local16 * 0x0100))) + _local17); _arg2.renderTriangleColor(_local18, 1, _local12.x, _local12.y, _local13.x, _local13.y, _local14.x, _local14.y); } } }//package away3d.core.material
Section 31
//WireColorMaterial (away3d.core.material.WireColorMaterial) package away3d.core.material { import flash.display.*; import away3d.core.draw.*; import away3d.core.render.*; import flash.geom.*; public class WireColorMaterial implements ITriangleMaterial, ISegmentMaterial { public var lineAlpha:Number; var graphics:Graphics; public var fillAlpha:Number; public var lineColor:int; public var fillColor:int; private var mat:Matrix; public var lineWidth:Number; private var spr:Sprite; public function WireColorMaterial(_arg1:int=-1, _arg2:int=0, _arg3:Number=1, _arg4:Number=1, _arg5:Number=1){ spr = new Sprite(); mat = new Matrix(); super(); if (_arg1 == -1){ _arg1 = int((0xFFFFFF * Math.random())); }; fillColor = _arg1; lineColor = _arg2; fillAlpha = _arg3; lineAlpha = _arg4; lineWidth = _arg5; } public function bitmapRenderTriangle(_arg1:DrawTriangle, _arg2:BitmapData, _arg3:Number, _arg4:Number):void{ graphics = spr.graphics; graphics.clear(); if (lineAlpha > 0){ graphics.lineStyle(lineWidth, lineColor, lineAlpha); } else { graphics.lineStyle(); }; if (fillAlpha > 0){ graphics.beginFill(fillColor, fillAlpha); }; graphics.moveTo(_arg1.v0.x, _arg1.v0.y); graphics.lineTo(_arg1.v1.x, _arg1.v1.y); graphics.lineTo(_arg1.v2.x, _arg1.v2.y); if (lineAlpha > 0){ graphics.lineTo(_arg1.v0.x, _arg1.v0.y); }; if (fillAlpha > 0){ graphics.endFill(); }; mat.identity(); mat.tx = _arg3; mat.ty = _arg4; _arg2.draw(spr, mat); } public function get visible():Boolean{ return ((((fillAlpha > 0)) || ((lineAlpha > 0)))); } public function renderSegment(_arg1:DrawSegment, _arg2:RenderSession):void{ if (lineAlpha > 0){ graphics = _arg2.graphics; graphics.lineStyle(lineWidth, lineColor, lineAlpha); graphics.moveTo(_arg1.v0.x, _arg1.v0.y); graphics.lineTo(_arg1.v1.x, _arg1.v1.y); graphics.moveTo(_arg1.v0.x, _arg1.v0.y); }; } public function renderTriangle(_arg1:DrawTriangle, _arg2:RenderSession):void{ graphics = _arg2.graphics; if (lineAlpha > 0){ graphics.lineStyle(lineWidth, lineColor, lineAlpha); } else { graphics.lineStyle(); }; if (fillAlpha > 0){ graphics.beginFill(fillColor, fillAlpha); }; graphics.moveTo(_arg1.v0.x, _arg1.v0.y); graphics.lineTo(_arg1.v1.x, _arg1.v1.y); graphics.lineTo(_arg1.v2.x, _arg1.v2.y); if (lineAlpha > 0){ graphics.lineTo(_arg1.v0.x, _arg1.v0.y); }; if (fillAlpha > 0){ graphics.endFill(); }; } } }//package away3d.core.material
Section 32
//Matrix3D (away3d.core.math.Matrix3D) package away3d.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 n21:Number; public var n22:Number; public var n23:Number; public var n24:Number; public var n34:Number; private static var toDEGREES:Number = (180 / Math.PI); private static var toRADIANS:Number = (Math.PI / 180); public function Matrix3D(){ n11 = (n22 = (n33 = 1)); n12 = (n13 = (n14 = (n21 = (n23 = (n24 = (n31 = (n32 = (n34 = 0)))))))); } public function transformPoint(_arg1:Number3D):Number3D{ var _local2:Number; var _local3:Number; var _local4:Number; _local2 = _arg1.x; _local3 = _arg1.y; _local4 = _arg1.z; return (new Number3D(((((n11 * _local2) + (n12 * _local3)) + (n13 * _local4)) + n14), ((((n21 * _local2) + (n22 * _local3)) + (n23 * _local4)) + n24), ((((n31 * _local2) + (n32 * _local3)) + (n33 * _local4)) + n34))); } public function scale(_arg1:Number, _arg2:Number, _arg3:Number):void{ n11 = (n11 * _arg1); n21 = (n21 * _arg1); n31 = (n31 * _arg1); n12 = (n12 * _arg2); n22 = (n22 * _arg2); n32 = (n32 * _arg2); n13 = (n13 * _arg3); n23 = (n23 * _arg3); n33 = (n33 * _arg3); } public function get det():Number{ return ((((((n11 * n22) - (n21 * n12)) * n33) - (((n11 * n32) - (n31 * n12)) * n23)) + (((n21 * n32) - (n31 * n22)) * n13))); } public function copy3x3(_arg1:Matrix3D):Matrix3D{ n11 = _arg1.n11; n12 = _arg1.n12; n13 = _arg1.n13; n21 = _arg1.n21; n22 = _arg1.n22; n23 = _arg1.n23; n31 = _arg1.n31; n32 = _arg1.n32; n33 = _arg1.n33; return (this); } public function clone():Matrix3D{ var _local1:Matrix3D; _local1 = new Matrix3D(); _local1.n11 = n11; _local1.n12 = n12; _local1.n13 = n13; _local1.n14 = n14; _local1.n21 = n21; _local1.n22 = n22; _local1.n23 = n23; _local1.n24 = n24; _local1.n31 = n31; _local1.n32 = n32; _local1.n33 = n33; _local1.n34 = n34; return (_local1); } 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")); return (_local1); } public static function multiply(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ 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: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; _local3 = new (Matrix3D); _local4 = _arg1.n11; _local5 = _arg2.n11; _local6 = _arg1.n21; _local7 = _arg2.n21; _local8 = _arg1.n31; _local9 = _arg2.n31; _local10 = _arg1.n12; _local11 = _arg2.n12; _local12 = _arg1.n22; _local13 = _arg2.n22; _local14 = _arg1.n32; _local15 = _arg2.n32; _local16 = _arg1.n13; _local17 = _arg2.n13; _local18 = _arg1.n23; _local19 = _arg2.n23; _local20 = _arg1.n33; _local21 = _arg2.n33; _local22 = _arg1.n14; _local23 = _arg2.n14; _local24 = _arg1.n24; _local25 = _arg2.n24; _local26 = _arg1.n34; _local27 = _arg2.n34; _local3.n11 = (((_local4 * _local5) + (_local10 * _local7)) + (_local16 * _local9)); _local3.n12 = (((_local4 * _local11) + (_local10 * _local13)) + (_local16 * _local15)); _local3.n13 = (((_local4 * _local17) + (_local10 * _local19)) + (_local16 * _local21)); _local3.n14 = ((((_local4 * _local23) + (_local10 * _local25)) + (_local16 * _local27)) + _local22); _local3.n21 = (((_local6 * _local5) + (_local12 * _local7)) + (_local18 * _local9)); _local3.n22 = (((_local6 * _local11) + (_local12 * _local13)) + (_local18 * _local15)); _local3.n23 = (((_local6 * _local17) + (_local12 * _local19)) + (_local18 * _local21)); _local3.n24 = ((((_local6 * _local23) + (_local12 * _local25)) + (_local18 * _local27)) + _local24); _local3.n31 = (((_local8 * _local5) + (_local14 * _local7)) + (_local20 * _local9)); _local3.n32 = (((_local8 * _local11) + (_local14 * _local13)) + (_local20 * _local15)); _local3.n33 = (((_local8 * _local17) + (_local14 * _local19)) + (_local20 * _local21)); _local3.n34 = ((((_local8 * _local23) + (_local14 * _local25)) + (_local20 * _local27)) + _local26); return (_local3); } public static function euler2quaternion(_arg1:Number, _arg2:Number, _arg3:Number):Quaternion{ 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:Quaternion; _local4 = Math.sin((_arg1 * 0.5)); _local5 = Math.cos((_arg1 * 0.5)); _local6 = Math.sin((_arg2 * 0.5)); _local7 = Math.cos((_arg2 * 0.5)); _local8 = Math.sin((_arg3 * 0.5)); _local9 = Math.cos((_arg3 * 0.5)); _local10 = (_local5 * _local7); _local11 = (_local4 * _local6); _local12 = new Quaternion(); _local12.x = ((_local8 * _local10) - (_local9 * _local11)); _local12.y = (((_local9 * _local4) * _local7) + ((_local8 * _local5) * _local6)); _local12.z = (((_local9 * _local5) * _local6) - ((_local8 * _local4) * _local7)); _local12.w = ((_local9 * _local10) + (_local8 * _local11)); return (_local12); } public static function multiply3x3(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ 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:Number; var _local20:Number; var _local21:Number; _local3 = new (Matrix3D); _local4 = _arg1.n11; _local5 = _arg2.n11; _local6 = _arg1.n21; _local7 = _arg2.n21; _local8 = _arg1.n31; _local9 = _arg2.n31; _local10 = _arg1.n12; _local11 = _arg2.n12; _local12 = _arg1.n22; _local13 = _arg2.n22; _local14 = _arg1.n32; _local15 = _arg2.n32; _local16 = _arg1.n13; _local17 = _arg2.n13; _local18 = _arg1.n23; _local19 = _arg2.n23; _local20 = _arg1.n33; _local21 = _arg2.n33; _local3.n11 = (((_local4 * _local5) + (_local10 * _local7)) + (_local16 * _local9)); _local3.n12 = (((_local4 * _local11) + (_local10 * _local13)) + (_local16 * _local15)); _local3.n13 = (((_local4 * _local17) + (_local10 * _local19)) + (_local16 * _local21)); _local3.n21 = (((_local6 * _local5) + (_local12 * _local7)) + (_local18 * _local9)); _local3.n22 = (((_local6 * _local11) + (_local12 * _local13)) + (_local18 * _local15)); _local3.n23 = (((_local6 * _local17) + (_local12 * _local19)) + (_local18 * _local21)); _local3.n31 = (((_local8 * _local5) + (_local14 * _local7)) + (_local20 * _local9)); _local3.n32 = (((_local8 * _local11) + (_local14 * _local13)) + (_local20 * _local15)); _local3.n33 = (((_local8 * _local17) + (_local14 * _local19)) + (_local20 * _local21)); _local3.n14 = _arg1.n14; _local3.n24 = _arg1.n24; _local3.n34 = _arg1.n34; return (_local3); } public static function scaleMatrix(_arg1:Number, _arg2:Number, _arg3:Number):Matrix3D{ var _local4:Matrix3D; _local4 = new (Matrix3D); _local4.n11 = _arg1; _local4.n22 = _arg2; _local4.n33 = _arg3; return (_local4); } public static function fromArray(_arg1:Array):Matrix3D{ var _local2:Matrix3D; _local2 = new (Matrix3D); if (_arg1.length >= 12){ _local2.n11 = _arg1[0]; _local2.n12 = _arg1[1]; _local2.n13 = _arg1[2]; _local2.n14 = _arg1[3]; _local2.n21 = _arg1[4]; _local2.n22 = _arg1[5]; _local2.n23 = _arg1[6]; _local2.n24 = _arg1[7]; _local2.n31 = _arg1[8]; _local2.n32 = _arg1[9]; _local2.n33 = _arg1[10]; _local2.n34 = _arg1[11]; }; return (_local2); } public static function inverse(_arg1:Matrix3D):Matrix3D{ 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; var _local15:Matrix3D; _local2 = _arg1.det; if (Math.abs(_local2) < 0.001){ return (null); }; _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; _local15 = new (Matrix3D); _local15.n11 = (_local2 * ((_local7 * _local11) - (_local8 * _local10))); _local15.n12 = (-(_local2) * ((_local6 * _local11) - (_local8 * _local9))); _local15.n13 = (_local2 * ((_local6 * _local10) - (_local7 * _local9))); _local15.n14 = (-(_local2) * (((_local6 * ((_local10 * _local14) - (_local11 * _local13))) - (_local7 * ((_local9 * _local14) - (_local11 * _local12)))) + (_local8 * ((_local9 * _local13) - (_local10 * _local12))))); _local15.n21 = (-(_local2) * ((_local4 * _local11) - (_local5 * _local10))); _local15.n22 = (_local2 * ((_local3 * _local11) - (_local5 * _local9))); _local15.n23 = (-(_local2) * ((_local3 * _local10) - (_local4 * _local9))); _local15.n24 = (_local2 * (((_local3 * ((_local10 * _local14) - (_local11 * _local13))) - (_local4 * ((_local9 * _local14) - (_local11 * _local12)))) + (_local5 * ((_local9 * _local13) - (_local10 * _local12))))); _local15.n31 = (_local2 * ((_local4 * _local8) - (_local5 * _local7))); _local15.n32 = (-(_local2) * ((_local3 * _local8) - (_local5 * _local6))); _local15.n33 = (_local2 * ((_local3 * _local7) - (_local4 * _local6))); _local15.n34 = (-(_local2) * (((_local3 * ((_local7 * _local14) - (_local8 * _local13))) - (_local4 * ((_local6 * _local14) - (_local8 * _local12)))) + (_local5 * ((_local6 * _local13) - (_local7 * _local12))))); return (_local15); } public static function translationMatrix(_arg1:Number, _arg2:Number, _arg3:Number):Matrix3D{ var _local4:Matrix3D; _local4 = new (Matrix3D); _local4.n14 = _arg1; _local4.n24 = _arg2; _local4.n34 = _arg3; return (_local4); } public static function quaternion2matrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Matrix3D{ 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:Matrix3D; _local5 = (_arg1 * _arg1); _local6 = (_arg1 * _arg2); _local7 = (_arg1 * _arg3); _local8 = (_arg1 * _arg4); _local9 = (_arg2 * _arg2); _local10 = (_arg2 * _arg3); _local11 = (_arg2 * _arg4); _local12 = (_arg3 * _arg3); _local13 = (_arg3 * _arg4); _local14 = new (Matrix3D); _local14.n11 = (1 - (2 * (_local9 + _local12))); _local14.n12 = (2 * (_local6 - _local13)); _local14.n13 = (2 * (_local7 + _local11)); _local14.n21 = (2 * (_local6 + _local13)); _local14.n22 = (1 - (2 * (_local5 + _local12))); _local14.n23 = (2 * (_local10 - _local8)); _local14.n31 = (2 * (_local7 - _local11)); _local14.n32 = (2 * (_local10 + _local8)); _local14.n33 = (1 - (2 * (_local5 + _local9))); return (_local14); } public static function matrix2euler(_arg1:Matrix3D):Number3D{ var _local2:Number3D; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = new Number3D(); _local3 = -(Math.asin(Math.max(-1, Math.min(1, _arg1.n13)))); _local4 = Math.cos(_local3); _local2.y = (_local3 * toDEGREES); if (Math.abs(_local4) > 0.005){ _local5 = (_arg1.n33 / _local4); _local6 = (-(_arg1.n23) / _local4); _local2.x = (Math.atan2(_local6, _local5) * toDEGREES); _local5 = (_arg1.n11 / _local4); _local6 = (-(_arg1.n12) / _local4); _local2.z = (Math.atan2(_local6, _local5) * toDEGREES); } else { _local2.x = 0; _local5 = _arg1.n22; _local6 = _arg1.n21; _local2.z = (Math.atan2(_local6, _local5) * toDEGREES); }; return (_local2); } public static function get IDENTITY():Matrix3D{ return (new (Matrix3D)); } public static function rotationMatrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Matrix3D{ var _local5: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; _local5 = new (Matrix3D); _local6 = Math.cos(_arg4); _local7 = Math.sin(_arg4); _local8 = (1 - _local6); _local9 = ((_arg1 * _arg2) * _local8); _local10 = ((_arg2 * _arg3) * _local8); _local11 = ((_arg1 * _arg3) * _local8); _local12 = (_local7 * _arg3); _local13 = (_local7 * _arg2); _local14 = (_local7 * _arg1); _local5.n11 = (_local6 + ((_arg1 * _arg1) * _local8)); _local5.n12 = (-(_local12) + _local9); _local5.n13 = (_local13 + _local11); _local5.n21 = (_local12 + _local9); _local5.n22 = (_local6 + ((_arg2 * _arg2) * _local8)); _local5.n23 = (-(_local14) + _local10); _local5.n31 = (-(_local13) + _local11); _local5.n32 = (_local14 + _local10); _local5.n33 = (_local6 + ((_arg3 * _arg3) * _local8)); return (_local5); } } }//package away3d.core.math
Section 33
//Number2D (away3d.core.math.Number2D) package away3d.core.math { public class Number2D { public var x:Number; public var y:Number; public static var LEFT:Number2D = new Number2D(-1, 0); ; public static var DOWN:Number2D = new Number2D(0, -1); ; public static var UP:Number2D = new Number2D(0, 1); ; public static var RIGHT:Number2D = new Number2D(1, 0); ; public function Number2D(_arg1:Number=0, _arg2:Number=0){ this.x = _arg1; this.y = _arg2; } public function normalize():void{ var _local1:Number; _local1 = modulo; if (((!((_local1 == 0))) && (!((_local1 == 1))))){ this.x = (this.x / _local1); this.y = (this.y / _local1); }; } public function get modulo():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function toString():String{ return (((("x:" + x) + " y:") + y)); } public function clone():Number2D{ return (new Number2D(x, y)); } public static function sub(_arg1:Number2D, _arg2:Number2D):Number2D{ return (new Number2D((_arg1.x - _arg2.x), (_arg1.y - _arg2.y))); } public static function add(_arg1:Number3D, _arg2:Number3D):Number2D{ return (new Number2D((_arg1.x + _arg2.x), (_arg1.y + _arg2.y))); } public static function scale(_arg1:Number2D, _arg2:Number):Number2D{ return (new Number2D((_arg1.x * _arg2), (_arg1.y * _arg2))); } public static function dot(_arg1:Number2D, _arg2:Number2D):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } } }//package away3d.core.math
Section 34
//Number3D (away3d.core.math.Number3D) package away3d.core.math { public class Number3D { public var x:Number; public var y:Number; public var z:Number; public static var BACKWARD:Number3D = new Number3D(0, 0, -1); ; public static var FORWARD:Number3D = new Number3D(0, 0, 1); ; public static var ZERO:Number3D = new Number3D(0, 0, 0); ; public static var LEFT:Number3D = new Number3D(-1, 0, 0); ; public static var DOWN:Number3D = new Number3D(0, -1, 0); ; public static var UP:Number3D = new Number3D(0, 1, 0); ; public static var RIGHT:Number3D = new Number3D(1, 0, 0); ; public function Number3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } public function toString():String{ return (((((("x:" + x) + " y:") + y) + " z:") + z)); } public function normalize(_arg1:Number=1):void{ var _local2:Number; _local2 = (modulo * _arg1); if (((!((_local2 == 0))) && (!((_local2 == 1))))){ x = (x / _local2); y = (y / _local2); z = (z / _local2); }; } public function get modulo():Number{ return (Math.sqrt(modulo2)); } public function rotate(_arg1:Matrix3D):Number3D{ var _local2:Number3D; _local2 = new Number3D((((x * _arg1.n11) + (y * _arg1.n12)) + (z * _arg1.n13)), (((x * _arg1.n21) + (y * _arg1.n22)) + (z * _arg1.n23)), (((x * _arg1.n31) + (y * _arg1.n32)) + (z * _arg1.n33))); _local2.normalize(); return (_local2); } public function get modulo2():Number{ return ((((x * x) + (y * y)) + (z * z))); } public function clone():Number3D{ return (new Number3D(x, y, z)); } public static function cross(_arg1:Number3D, _arg2:Number3D):Number3D{ return (new Number3D(((_arg2.y * _arg1.z) - (_arg2.z * _arg1.y)), ((_arg2.z * _arg1.x) - (_arg2.x * _arg1.z)), ((_arg2.x * _arg1.y) - (_arg2.y * _arg1.x)))); } 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 sub(_arg1:Number3D, _arg2:Number3D):Number3D{ return (new Number3D((_arg1.x - _arg2.x), (_arg1.y - _arg2.y), (_arg1.z - _arg2.z))); } 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 scale(_arg1:Number3D, _arg2:Number):Number3D{ return (new Number3D((_arg1.x * _arg2), (_arg1.y * _arg2), (_arg1.z * _arg2))); } public static function closestPointOnPlane(_arg1:Number3D, _arg2:Number3D, _arg3:Number3D):Number3D{ var _local4:Number; _local4 = Number3D.dot(_arg3, Number3D.sub(_arg1, _arg2)); return (Number3D.sub(_arg1, Number3D.scale(_arg3, _local4))); } public static function getAngle(_arg1:Number3D, _arg2:Number3D=null):Number{ if (_arg2 == null){ _arg2 = new (Number3D); }; return (Math.acos((Number3D.dot(_arg1, _arg2) / (_arg1.modulo * _arg2.modulo)))); } } }//package away3d.core.math
Section 35
//Quaternion (away3d.core.math.Quaternion) package away3d.core.math { public class Quaternion { public var w:Number; public var x:Number; public var y:Number; public var z:Number; } }//package away3d.core.math
Section 36
//ChildObject3D (away3d.core.physics.ChildObject3D) package away3d.core.physics { import away3d.core.proto.*; import away3d.core.math.*; import away3d.core.*; public class ChildObject3D { public var minX:Number; public var minZ:Number; public var _parent:Object3D;// = null public var scenePosition:Number3D; public var minY:Number; public var acceleration:Number3D; public var dt2:Number; public var oldScenePosition:Number3D; public var oldPosition:Number3D; public var maxX:Number; public var maxY:Number; public var maxZ:Number; public function ChildObject3D(_arg1:Object=null):void{ _parent = null; scenePosition = new Number3D(); acceleration = new Number3D(); super(); _arg1 = Init.parse(_arg1); parent = (_arg1.getObject("parent") as Object3D); } public function set parent(_arg1:Object3D):void{ _parent = _arg1; } public function set position(_arg1:Number3D):void{ } public function get position():Number3D{ return (new Number3D()); } public function get parent():Object3D{ return (_parent); } } }//package away3d.core.physics
Section 37
//Camera3D (away3d.core.proto.Camera3D) package away3d.core.proto { import away3d.core.math.*; import away3d.core.*; public class Camera3D extends Object3D { public var zoom:Number; public var focus:Number; private static var _flipY:Matrix3D = Matrix3D.scaleMatrix(1, -1, 1); public function Camera3D(_arg1:Object=null){ var _local2:Object3D; super(_arg1); _arg1 = Init.parse(_arg1); zoom = _arg1.getNumber("zoom", 3); focus = _arg1.getNumber("focus", 500); _local2 = _arg1.getObject3D("lookat"); if (_local2 != null){ lookAt(_local2); }; } public function tilt(_arg1:Number):void{ super.pitch(_arg1); } public function pan(_arg1:Number):void{ super.yaw(_arg1); } public function getView():Matrix3D{ return (Matrix3D.inverse(Matrix3D.multiply(transform, _flipY))); } } }//package away3d.core.proto
Section 38
//ILightConsumer (away3d.core.proto.ILightConsumer) package away3d.core.proto { import away3d.core.math.*; import away3d.core.render.*; public interface ILightConsumer { function ambientLight(_arg1:int, _arg2:Number):void; function pointLight(_arg1:Projection, _arg2:int, _arg3:Number, _arg4:Number, _arg5:Number):void; function directedLight(_arg1:Number3D, _arg2:int, _arg3:Number):void; } }//package away3d.core.proto
Section 39
//ILightProvider (away3d.core.proto.ILightProvider) package away3d.core.proto { import away3d.core.render.*; public interface ILightProvider { function light(_arg1:Projection, _arg2:ILightConsumer):void; } }//package away3d.core.proto
Section 40
//ILODObject (away3d.core.proto.ILODObject) package away3d.core.proto { public interface ILODObject { function matchLOD(_arg1:View3D):Boolean; } }//package away3d.core.proto
Section 41
//Light3D (away3d.core.proto.Light3D) package away3d.core.proto { import away3d.core.math.*; import away3d.core.geom.*; import away3d.core.draw.*; import away3d.core.render.*; import away3d.core.material.*; import away3d.core.*; public class Light3D extends Object3D implements ILightProvider, IPrimitiveProvider { public var color:int; public var ambient:Number; public var specular:Number; public var showsource:Boolean;// = true public var diffuse:Number; public function Light3D(_arg1:int, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null){ var _local6:Number; showsource = true; super(_arg5); _arg5 = Init.parse(_arg5); _local6 = _arg5.getNumber("distance", 30); this.color = _arg1; this.ambient = ((_arg2 * _local6) * _local6); this.diffuse = ((_arg3 * _local6) * _local6); this.specular = ((_arg4 * _local6) * _local6); } public function primitives(_arg1:Projection, _arg2:IPrimitiveConsumer):void{ var _local3:Vertex3D; var _local4:Vertex2D; var _local5:DrawTriangle; if (!showsource){ return; }; _local3 = new Vertex3D(0, 0, 0); _local4 = _local3.project(_arg1); if (!_local4.visible){ return; }; _local5 = new DrawTriangle(); _local5.v0 = new Vertex2D((_local4.x + 3), (_local4.y + 2), _local4.z); _local5.v1 = new Vertex2D((_local4.x - 3), (_local4.y + 2), _local4.z); _local5.v2 = new Vertex2D(_local4.x, (_local4.y - 3), _local4.z); _local5.calc(); _local5.source = this; _local5.projection = _arg1; _local5.material = new ColorMaterial(color); _arg2.primitive(_local5); } public function light(_arg1:Projection, _arg2:ILightConsumer):void{ _arg2.pointLight(_arg1, color, ambient, diffuse, specular); } } }//package away3d.core.proto
Section 42
//MouseEvent3D (away3d.core.proto.MouseEvent3D) package away3d.core.proto { import flash.events.*; import away3d.core.geom.*; import away3d.core.draw.*; public class MouseEvent3D extends Event { public var shiftKey:Boolean; public var worldX:Number; public var worldY:Number; public var worldZ:Number; public var uv:NumberUV; public var drawpri:DrawPrimitive; public var view:View3D; public var screenY:Number; public var screenZ:Number; public var screenX:Number; public var ctrlKey:Boolean; public var element:Object; public var object:Object3D; public function MouseEvent3D(_arg1:String){ super(_arg1); } override public function clone():Event{ var _local1:MouseEvent3D; _local1 = new MouseEvent3D(type); _local1.screenX = screenX; _local1.screenY = screenY; _local1.screenZ = screenZ; _local1.worldX = worldX; _local1.worldY = worldY; _local1.worldZ = worldZ; _local1.view = view; _local1.object = object; _local1.element = element; _local1.drawpri = drawpri; _local1.uv = uv; _local1.ctrlKey = ctrlKey; _local1.shiftKey = shiftKey; return (_local1); } } }//package away3d.core.proto
Section 43
//Object3D (away3d.core.proto.Object3D) package away3d.core.proto { import away3d.core.math.*; import away3d.core.*; import away3d.core.physics.*; public class Object3D extends ChildObject3D { public var extra:Object; private var _rotationX:Number;// = 0 private var _rotationY:Number;// = 0 private var _rotationZ:Number;// = 0 public var constraints:Array; private var _events:Object3DEvents; public var sceneTransform:Matrix3D; public var transformUpdate:Boolean;// = false private var _scaleX:Number;// = 1 private var _scaleY:Number;// = 1 private var _scaleZ:Number;// = 1 public var visible:Boolean;// = true public var innerCollisions:Boolean;// = false public var name:String; private var _transformDirty:Boolean;// = false private var _transform:Matrix3D; public var accelerations:Array; private var _rotationDirty:Boolean;// = false private static var toDEGREES:Number = 57.2957795130823; private static var toRADIANS:Number = 0.0174532925199433; public function Object3D(_arg1:Object=null):void{ var _local2:Number; innerCollisions = false; constraints = new Array(); accelerations = new Array(); visible = true; _transform = new Matrix3D(); transformUpdate = false; _transformDirty = false; _rotationDirty = false; _rotationX = 0; _rotationY = 0; _rotationZ = 0; _scaleX = 1; _scaleY = 1; _scaleZ = 1; super(_arg1); _arg1 = Init.parse(_arg1); name = _arg1.getString("name", null); visible = _arg1.getBoolean("visible", true); _transform.n14 = _arg1.getNumber("x", 0); _transform.n24 = _arg1.getNumber("y", 0); _transform.n34 = _arg1.getNumber("z", 0); rotationX = _arg1.getNumber("rotationX", 0); rotationY = _arg1.getNumber("rotationY", 0); rotationZ = _arg1.getNumber("rotationZ", 0); _local2 = _arg1.getNumber("scale", 1); scaleX = (_arg1.getNumber("scaleX", 1) * _local2); scaleY = (_arg1.getNumber("scaleY", 1) * _local2); scaleZ = (_arg1.getNumber("scaleZ", 1) * _local2); extra = _arg1.getObject("extra"); innerCollisions = _arg1.getBoolean("innerCollisions", innerCollisions); accelerations = _arg1.getArray("accelerations"); oldPosition = position; sceneTransform = transform; scenePosition = position; } public function moveDown(_arg1:Number):void{ translate(_arg1, Number3D.DOWN); } public function get events():Object3DEvents{ if (_events == null){ _events = new Object3DEvents(); }; return (_events); } public function project():void{ if ((transformUpdate = ((_parent.transformUpdate) || (transformUpdate)))){ sceneTransform = Matrix3D.multiply(_parent.sceneTransform, transform); }; } override public function get position():Number3D{ return (new Number3D(x, y, z)); } public function lookAt(_arg1, _arg2:Number3D=null):void{ var _local3:Number3D; var _local4:Number3D; var _local5:Number3D; var _local6:Number3D; var _local7:Number3D; var _local8:Matrix3D; _local3 = new Number3D(x, y, z); _local4 = new Number3D(_arg1.x, _arg1.y, _arg1.z); _local5 = Number3D.sub(_local4, _local3); _local5.normalize(); if (_local5.modulo > 0.1){ _local6 = Number3D.cross(_local5, ((_arg2) || (Number3D.UP))); _local6.normalize(); _local7 = Number3D.cross(_local5, _local6); _local7.normalize(); _local8 = _transform; _local8.n11 = _local6.x; _local8.n21 = _local6.y; _local8.n31 = _local6.z; _local8.n12 = -(_local7.x); _local8.n22 = -(_local7.y); _local8.n32 = -(_local7.z); _local8.n13 = _local5.x; _local8.n23 = _local5.y; _local8.n33 = _local5.z; _transformDirty = false; transformUpdate = (_rotationDirty = true); }; } public function set rotationX(_arg1:Number):void{ _rotationX = (-(_arg1) * toRADIANS); transformUpdate = (_transformDirty = true); } public function set rotationZ(_arg1:Number):void{ _rotationZ = (-(_arg1) * toRADIANS); transformUpdate = (_transformDirty = true); } public function set rotationY(_arg1:Number):void{ _rotationY = (-(_arg1) * toRADIANS); transformUpdate = (_transformDirty = true); } public function moveUp(_arg1:Number):void{ translate(_arg1, Number3D.UP); } public function translate(_arg1:Number, _arg2:Number3D):void{ var _local3:Number3D; _local3 = _arg2.rotate(transform); x = (x + (_arg1 * _local3.x)); y = (y + (_arg1 * _local3.y)); z = (z + (_arg1 * _local3.z)); } public function pitch(_arg1:Number):void{ var _local2:Number3D; var _local3:Matrix3D; _local2 = Number3D.RIGHT.rotate(transform); _local3 = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, (_arg1 * toRADIANS)); _transform.copy3x3(Matrix3D.multiply3x3(_local3, transform)); transformUpdate = (_rotationDirty = true); } override public function set position(_arg1:Number3D):void{ _transform.n14 = _arg1.x; _transform.n24 = _arg1.y; _transform.n34 = _arg1.z; transformUpdate = true; } public function get hasEvents():Boolean{ return (!((_events == null))); } override public function set parent(_arg1:Object3D):void{ if (_arg1 == _parent){ return; }; if (_parent != null){ (_parent as ObjectContainer3D).removeChild(this); }; if (_arg1 != null){ (_arg1 as ObjectContainer3D).addChild(this); }; } public function distanceTo(_arg1:Object3D):Number{ var _local2:Number; var _local3:Number; var _local4:Number; _local2 = (x - _arg1.x); _local3 = (y - _arg1.y); _local4 = (z - _arg1.z); return (Math.sqrt((((_local2 * _local2) + (_local3 * _local3)) + (_local4 * _local4)))); } private function updateRotation():void{ var _local1:Number3D; _local1 = Matrix3D.matrix2euler(_transform); _rotationX = (_local1.x * toRADIANS); _rotationY = (_local1.y * toRADIANS); _rotationZ = (_local1.z * toRADIANS); _rotationDirty = false; } public function get transform():Matrix3D{ if (_transformDirty){ updateTransform(); }; return (_transform); } public function moveLeft(_arg1:Number):void{ translate(_arg1, Number3D.LEFT); } public function traverse(_arg1:Traverser):void{ _arg1.apply(this); } public function get z():Number{ return (_transform.n34); } public function toString():String{ return (((((((name + ": x:") + Math.round(x)) + " y:") + Math.round(y)) + " z:") + Math.round(z))); } public function roll(_arg1:Number):void{ var _local2:Number3D; var _local3:Matrix3D; _local2 = Number3D.FORWARD.rotate(transform); _local3 = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, (_arg1 * toRADIANS)); _transform.copy3x3(Matrix3D.multiply3x3(_local3, transform)); transformUpdate = (_rotationDirty = true); } public function get x():Number{ return (_transform.n14); } public function get y():Number{ return (_transform.n24); } public function yaw(_arg1:Number):void{ var _local2:Number3D; var _local3:Matrix3D; _local2 = Number3D.UP.rotate(transform); _local3 = Matrix3D.rotationMatrix(_local2.x, _local2.y, _local2.z, (_arg1 * toRADIANS)); _transform.copy3x3(Matrix3D.multiply3x3(_local3, transform)); transformUpdate = (_rotationDirty = true); } public function set scale(_arg1:Number):void{ _scaleX = _arg1; _scaleY = _arg1; _scaleZ = _arg1; transformUpdate = (_transformDirty = true); } public function get rotationX():Number{ if (_rotationDirty){ updateRotation(); }; return ((-(_rotationX) * toDEGREES)); } public function get rotationY():Number{ if (_rotationDirty){ updateRotation(); }; return ((-(_rotationY) * toDEGREES)); } public function get rotationZ():Number{ if (_rotationDirty){ updateRotation(); }; return ((-(_rotationZ) * toDEGREES)); } public function tick(_arg1:int):void{ } public function set scaleY(_arg1:Number):void{ _scaleY = _arg1; transformUpdate = (_transformDirty = true); } public function set scaleZ(_arg1:Number):void{ _scaleZ = _arg1; transformUpdate = (_transformDirty = true); } public function set scaleX(_arg1:Number):void{ _scaleX = _arg1; transformUpdate = (_transformDirty = true); } private function updateTransform():void{ var _local1:Quaternion; var _local2:Matrix3D; if (!_transformDirty){ return; }; _local1 = Matrix3D.euler2quaternion(-(_rotationY), -(_rotationZ), _rotationX); _local2 = Matrix3D.quaternion2matrix(_local1.x, _local1.y, _local1.z, _local1.w); _local2.n14 = _transform.n14; _local2.n24 = _transform.n24; _local2.n34 = _transform.n34; _local2.scale(_scaleX, _scaleY, _scaleZ); _transform = _local2; _transformDirty = false; } public function moveForward(_arg1:Number):void{ translate(_arg1, Number3D.FORWARD); } public function moveRight(_arg1:Number):void{ translate(_arg1, Number3D.RIGHT); } public function relative(_arg1:Object3D=null):Matrix3D{ var _local2:Matrix3D; var _local3:Object3D; _local2 = new Matrix3D(); _local3 = this; while (_local3 != _arg1) { _local2 = Matrix3D.multiply(_local3.transform, _local2); _local3 = _local3.parent; }; return (_local2); } public function moveBackward(_arg1:Number):void{ translate(_arg1, Number3D.BACKWARD); } public function set transform(_arg1:Matrix3D):void{ _transform = _arg1.clone(); _transformDirty = false; transformUpdate = (_rotationDirty = true); } public function set x(_arg1:Number):void{ _transform.n14 = (oldPosition.x = _arg1); transformUpdate = true; } public function set y(_arg1:Number):void{ _transform.n24 = (oldPosition.y = _arg1); transformUpdate = true; } public function set z(_arg1:Number):void{ _transform.n34 = (oldPosition.z = _arg1); transformUpdate = true; } } }//package away3d.core.proto
Section 44
//Object3DEvents (away3d.core.proto.Object3DEvents) package away3d.core.proto { import flash.events.*; public class Object3DEvents extends EventDispatcher { } }//package away3d.core.proto
Section 45
//ObjectContainer3D (away3d.core.proto.ObjectContainer3D) package away3d.core.proto { import away3d.core.math.*; public class ObjectContainer3D extends Object3D { public var children:Array; public var child:Object3D; public function ObjectContainer3D(_arg1:Object=null, ... _args){ children = new Array(); if (((!((_arg1 == null))) && ((_arg1 is Object3D)))){ _args.push(_arg1); _arg1 = null; }; super(_arg1); for each (child in _args) { addChild(child); }; } public function getChildByName(_arg1:String):Object3D{ var _local2:Object3D; for each (_local2 in children) { if (_local2.name == _arg1){ return (_local2); }; }; return (null); } public function removeChildByName(_arg1:String):void{ removeChild(getChildByName(_arg1)); } public function removeChild(_arg1:Object3D):void{ var _local2:int; if (_arg1._parent != this){ throw (new Error("Child doesn't belong to container")); }; _local2 = children.indexOf(_arg1); if (_local2 == -1){ throw (new Error("Child not found in children list")); }; children.splice(_local2, 1); _arg1._parent = null; } public function addChild(_arg1:Object3D):Object3D{ if (_arg1 == null){ throw (new Error("ObjectContainer3D.addChild(null)")); }; if (_arg1.parent == this){ return (_arg1); }; _arg1.parent = null; children.push(_arg1); _arg1._parent = this; _arg1.sceneTransform = Matrix3D.multiply(sceneTransform, _arg1.transform); _arg1.scenePosition = sceneTransform.transformPoint(_arg1.position); return (_arg1); } public function addChildren(... _args):void{ var _local2:Object3D; for each (_local2 in _args) { addChild(_local2); }; } override public function traverse(_arg1:Traverser):void{ for each (child in children) { if (_arg1.match(child)){ _arg1.enter(child); child.traverse(_arg1); _arg1.leave(child); }; }; _arg1.apply(this); } } }//package away3d.core.proto
Section 46
//Scene3D (away3d.core.proto.Scene3D) package away3d.core.proto { import flash.utils.*; public class Scene3D extends ObjectContainer3D { public function Scene3D(_arg1:Object=null, ... _args){ if (((!((_arg1 == null))) && ((_arg1 is Object3D)))){ _args.push(_arg1); _arg1 = null; }; super(_arg1); for each (child in _args) { addChild(child); }; } public function updateTime(_arg1:int=-1):void{ if (_arg1 == -1){ _arg1 = getTimer(); }; traverse(new TickTraverser(_arg1)); } } }//package away3d.core.proto
Section 47
//TickTraverser (away3d.core.proto.TickTraverser) package away3d.core.proto { public class TickTraverser extends Traverser { protected var now:int; public function TickTraverser(_arg1:int){ this.now = _arg1; } override public function enter(_arg1:Object3D):void{ _arg1.tick(now); } } }//package away3d.core.proto
Section 48
//Traverser (away3d.core.proto.Traverser) package away3d.core.proto { public class Traverser { public function match(_arg1:Object3D):Boolean{ return (true); } public function leave(_arg1:Object3D):void{ } public function enter(_arg1:Object3D):void{ } public function apply(_arg1:Object3D):void{ } } }//package away3d.core.proto
Section 49
//View3D (away3d.core.proto.View3D) package away3d.core.proto { import flash.events.*; import flash.display.*; import away3d.core.render.*; import away3d.core.*; public class View3D extends Sprite { public var events:Object3DEvents; public var camera:Camera3D; public var background:Sprite; public var clip:Clipping; public var canvas:Sprite; public var scene:Scene3D; public var renderer:IRenderer; protected var mousedown:Boolean; public var hud:Sprite; public function View3D(_arg1:Scene3D=null, _arg2:Camera3D=null, _arg3:IRenderer=null){ this.scene = ((_arg1) || (new Scene3D())); this.camera = ((_arg2) || (new Camera3D({x:1000, y:1000, z:1000, lookat:new Object3D()}))); this.renderer = ((_arg3) || (new BasicRenderer())); events = new Object3DEvents(); background = new Sprite(); addChild(background); canvas = new Sprite(); addChild(canvas); hud = new Sprite(); addChild(hud); addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); addEventListener(MouseEvent.MOUSE_UP, onMouseUp); addEventListener(MouseEvent.MOUSE_OUT, onMouseOut); mouseChildren = false; } private function onMouseUp(_arg1:MouseEvent):void{ mousedown = false; fireMouseEvent(MouseEvent.MOUSE_UP, _arg1.localX, _arg1.localY, _arg1.ctrlKey, _arg1.shiftKey); } public function clear():void{ if (canvas != null){ removeChild(canvas); }; canvas = new Sprite(); addChildAt(canvas, 1); } private function onMouseOut(_arg1:MouseEvent):void{ if (mousedown){ mousedown = false; fireMouseEvent(MouseEvent.MOUSE_UP, _arg1.localX, _arg1.localY, _arg1.ctrlKey, _arg1.shiftKey); }; } public function render():void{ var _local1:Clipping; Init.checkUnusedArguments(); clear(); if ((renderer is IBitmapRenderer)){ renderer.render(this); return; }; _local1 = clip; clip = ((clip) || (Clipping.screen(this))); renderer.render(this); clip = _local1; fireMouseMoveEvent(); } protected function onMouseDown(_arg1:MouseEvent):void{ mousedown = true; fireMouseEvent(MouseEvent.MOUSE_DOWN, _arg1.localX, _arg1.localY, _arg1.ctrlKey, _arg1.shiftKey); } public function fireMouseEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Boolean=false, _arg5:Boolean=false):void{ var _local6:FindHitTraverser; var _local7:MouseEvent3D; var _local8:Object3D; _local6 = new FindHitTraverser(this, _arg2, _arg3); scene.traverse(_local6); _local7 = _local6.getMouseEvent(_arg1); _local7.ctrlKey = _arg4; _local7.shiftKey = _arg5; events.dispatchEvent(_local7); _local8 = _local7.object; while (_local8 != null) { if (_local8.hasEvents){ _local8.events.dispatchEvent(_local7); }; _local8 = _local8.parent; }; } public function fireMouseMoveEvent():void{ fireMouseEvent(MouseEvent.MOUSE_MOVE, mouseX, mouseY); } } }//package away3d.core.proto
Section 50
//AnotherRivalFilter (away3d.core.render.AnotherRivalFilter) package away3d.core.render { import flash.display.*; import away3d.core.proto.*; import away3d.core.draw.*; import flash.utils.*; public class AnotherRivalFilter implements IPrimitiveQuadrantFilter { public var maxdelay:int; private static var ZOrderHigher:int = -1; private static var ZOrderSame:int = 0; private static var ZOrderDeeper:int = 1; private static var ZOrderIrrelevant:int = 0; public function AnotherRivalFilter(_arg1:int=60000){ this.maxdelay = _arg1; } public function filter(_arg1:PrimitiveQuadrantTree, _arg2:Scene3D, _arg3:Camera3D, _arg4:Sprite, _arg5:Clipping):void{ var _local6:int; var _local7:int; var _local8:Array; var _local9:int; var _local10:Array; var _local11:DrawPrimitive; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Array; var _local16:DrawPrimitive; var _local17:Array; var _local18:DrawPrimitive; _local6 = getTimer(); _local7 = 0; _local8 = _arg1.list(); _local9 = 0; while (_local8.length > 0) { _local10 = new Array(); for each (_local11 in _local8) { _local7++; if (_local7 == 10){ if ((getTimer() - _local6) > maxdelay){ return; }; _local7 = 0; }; _local12 = (_local11.maxZ + 1000); _local13 = (_local11.minZ - 1000); _local14 = 0; _local15 = _arg1.get(_local11.minX, _local11.minY, _local11.maxX, _local11.maxY, null); for each (_local16 in _local15) { if (_local16 == _local11){ } else { switch (zconflict(_local11, _local16)){ case ZOrderIrrelevant: break; case ZOrderDeeper: _local13 = Math.max(_local13, _local16.screenZ); break; case ZOrderHigher: _local12 = Math.min(_local12, _local16.screenZ); break; }; }; }; if ((((_local12 >= _local11.screenZ)) && ((_local11.screenZ >= _local13)))){ } else { if ((_local12 > _local13)){ _local11.screenZ = ((_local12 + _local13) / 2); } else { if ((_local9 % 3) == 2){ _local17 = _local11.quarter(_arg3.focus); if (_local17 != null){ _arg1.remove(_local11); for each (_local18 in _local17) { _local18.screenZ = _local11.screenZ; _local10.push(_local18); _arg1.push(_local18); }; }; } else { _local10.push(_local11); }; }; }; }; _local8 = _local10; _local9 = (_local9 + 1); if (_local9 == 20){ break; }; }; } public function toString():String{ return (("AnotherRivalFilter" + ((maxdelay)==60000) ? "" : (("(" + maxdelay) + "ms)"))); } private static function zconflictTB(_arg1:DrawTriangle, _arg2:DrawScaledBitmap):int{ if (_arg1.contains(_arg2.v.x, _arg2.v.y)){ return (zcompare(_arg1, _arg2, _arg2.v.x, _arg2.v.y)); }; if (_arg1.contains(_arg2.minX, _arg2.minY)){ return (zcompare(_arg1, _arg2, _arg2.minX, _arg2.minY)); }; if (_arg1.contains(_arg2.minX, _arg2.maxY)){ return (zcompare(_arg1, _arg2, _arg2.minX, _arg2.maxY)); }; if (_arg1.contains(_arg2.maxX, _arg2.minY)){ return (zcompare(_arg1, _arg2, _arg2.maxX, _arg2.minY)); }; if (_arg1.contains(_arg2.maxX, _arg2.maxY)){ return (zcompare(_arg1, _arg2, _arg2.maxX, _arg2.maxY)); }; return (ZOrderIrrelevant); } private static function zconflictTT(_arg1:DrawTriangle, _arg2:DrawTriangle):int{ 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:Boolean; 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; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:Number; var _local48:Number; var _local49:Number; var _local50:Number; var _local51:Number; var _local52:Number; var _local53:Number; var _local54:Number; var _local55:Number; var _local56:Number; var _local57:Number; var _local58:Boolean; var _local59:Boolean; var _local60:Boolean; var _local61:Boolean; var _local62:Boolean; var _local63:Boolean; var _local64:Boolean; var _local65:Boolean; var _local66:Boolean; var _local67:Number; var _local68:Number; var _local69:Number; var _local70:Number; var _local71:Number; var _local72:Number; var _local73:Number; var _local74:Number; var _local75:Number; var _local76:Number; var _local77:Number; var _local78:Number; var _local79:Number; var _local80:Number; var _local81:Number; var _local82:Number; var _local83:Number; var _local84:Number; var _local85:int; var _local86:Number; var _local87:Number; var _local88:Number; var _local89:Number; var _local90:Number; var _local91:Number; var _local92:Number; var _local93:Number; var _local94:Number; var _local95:Number; var _local96:Number; _local3 = _arg1.v0.x; _local4 = _arg1.v0.y; _local5 = _arg1.v1.x; _local6 = _arg1.v1.y; _local7 = _arg1.v2.x; _local8 = _arg1.v2.y; _local9 = _arg2.v0.x; _local10 = _arg2.v0.y; _local11 = _arg2.v1.x; _local12 = _arg2.v1.y; _local13 = _arg2.v2.x; _local14 = _arg2.v2.y; _local15 = (_local6 - _local4); _local16 = (_local3 - _local5); _local17 = -(((_local16 * _local4) + (_local15 * _local3))); _local18 = (((_local15 * _local7) + (_local16 * _local8)) + _local17); _local19 = ((((_local15 * _local9) + (_local16 * _local10)) + _local17) * _local18); _local20 = ((((_local15 * _local11) + (_local16 * _local12)) + _local17) * _local18); _local21 = ((((_local15 * _local13) + (_local16 * _local14)) + _local17) * _local18); if ((((((_local19 <= 0.0001)) && ((_local20 <= 0.0001)))) && ((_local21 <= 0.0001)))){ return (ZOrderIrrelevant); }; _local22 = (_local8 - _local6); _local23 = (_local5 - _local7); _local24 = (((_local22 * _local22) + (_local23 * _local23)) > 0.0001); _local25 = -(((_local23 * _local6) + (_local22 * _local5))); _local26 = (((_local22 * _local3) + (_local23 * _local4)) + _local25); _local27 = ((((_local22 * _local9) + (_local23 * _local10)) + _local25) * _local26); _local28 = ((((_local22 * _local11) + (_local23 * _local12)) + _local25) * _local26); _local29 = ((((_local22 * _local13) + (_local23 * _local14)) + _local25) * _local26); if ((((((_local27 <= 0.0001)) && ((_local28 <= 0.0001)))) && ((_local29 <= 0.0001)))){ return (ZOrderIrrelevant); }; _local30 = (_local4 - _local8); _local31 = (_local7 - _local3); _local32 = -(((_local31 * _local8) + (_local30 * _local7))); _local33 = (((_local30 * _local5) + (_local31 * _local6)) + _local32); _local34 = ((((_local30 * _local9) + (_local31 * _local10)) + _local32) * _local33); _local35 = ((((_local30 * _local11) + (_local31 * _local12)) + _local32) * _local33); _local36 = ((((_local30 * _local13) + (_local31 * _local14)) + _local32) * _local33); if ((((((_local34 <= 0.0001)) && ((_local35 <= 0.0001)))) && ((_local36 <= 0.0001)))){ return (ZOrderIrrelevant); }; _local37 = (_local12 - _local10); _local38 = (_local9 - _local11); _local39 = -(((_local38 * _local10) + (_local37 * _local9))); _local40 = (((_local37 * _local13) + (_local38 * _local14)) + _local39); _local41 = ((((_local37 * _local3) + (_local38 * _local4)) + _local39) * _local40); _local42 = ((((_local37 * _local5) + (_local38 * _local6)) + _local39) * _local40); _local43 = ((((_local37 * _local7) + (_local38 * _local8)) + _local39) * _local40); if ((((((_local41 <= 0.0001)) && ((_local42 <= 0.0001)))) && ((_local43 <= 0.0001)))){ return (ZOrderIrrelevant); }; _local44 = (_local14 - _local12); _local45 = (_local11 - _local13); _local46 = -(((_local45 * _local12) + (_local44 * _local11))); _local47 = (((_local44 * _local9) + (_local45 * _local10)) + _local46); _local48 = ((((_local44 * _local3) + (_local45 * _local4)) + _local46) * _local47); _local49 = ((((_local44 * _local5) + (_local45 * _local6)) + _local46) * _local47); _local50 = ((((_local44 * _local7) + (_local45 * _local8)) + _local46) * _local47); if ((((((_local48 <= 0.0001)) && ((_local49 <= 0.0001)))) && ((_local50 <= 0.0001)))){ return (ZOrderIrrelevant); }; _local51 = (_local10 - _local14); _local52 = (_local13 - _local9); _local53 = -(((_local52 * _local14) + (_local51 * _local13))); _local54 = (((_local51 * _local11) + (_local52 * _local12)) + _local53); _local55 = ((((_local51 * _local3) + (_local52 * _local4)) + _local53) * _local54); _local56 = ((((_local51 * _local5) + (_local52 * _local6)) + _local53) * _local54); _local57 = ((((_local51 * _local7) + (_local52 * _local8)) + _local53) * _local54); if ((((((_local55 <= 0.0001)) && ((_local56 <= 0.0001)))) && ((_local57 <= 0.0001)))){ return (ZOrderIrrelevant); }; if (((((((((((_local41 * _local41) <= 0.0001)) || (((_local48 * _local48) <= 0.0001)))) || (((_local55 * _local55) <= 0.0001)))) && (((((((_local42 * _local42) <= 0.0001)) || (((_local49 * _local49) <= 0.0001)))) || (((_local56 * _local56) <= 0.0001)))))) && (((((((_local43 * _local43) <= 0.0001)) || (((_local50 * _local50) <= 0.0001)))) || (((_local57 * _local57) <= 0.0001)))))){ return (zcompare(_arg1, _arg2, (((_local3 + _local5) + _local7) / 3), (((_local4 + _local6) + _local8) / 3))); }; if (((((((((((_local19 * _local19) <= 0.0001)) || (((_local27 * _local27) <= 0.0001)))) || (((_local34 * _local34) <= 0.0001)))) && (((((((_local20 * _local20) <= 0.0001)) || (((_local28 * _local28) <= 0.0001)))) || (((_local35 * _local35) <= 0.0001)))))) && (((((((_local21 * _local21) <= 0.0001)) || (((_local29 * _local29) <= 0.0001)))) || (((_local36 * _local36) <= 0.0001)))))){ return (zcompare(_arg1, _arg2, (((_local9 + _local11) + _local13) / 3), (((_local10 + _local12) + _local14) / 3))); }; _local58 = ((((_local41 * _local42) < 0.0001)) && (((_local19 * _local20) < 0.0001))); _local59 = ((((_local42 * _local43) < 0.0001)) && (((_local27 * _local28) < 0.0001))); _local60 = ((((_local43 * _local41) < 0.0001)) && (((_local34 * _local35) < 0.0001))); _local61 = ((((_local48 * _local49) < 0.0001)) && (((_local20 * _local21) < 0.0001))); _local62 = ((((_local49 * _local50) < 0.0001)) && (((_local28 * _local29) < 0.0001))); _local63 = ((((_local50 * _local48) < 0.0001)) && (((_local35 * _local36) < 0.0001))); _local64 = ((((_local55 * _local56) < 0.0001)) && (((_local21 * _local19) < 0.0001))); _local65 = ((((_local56 * _local57) < 0.0001)) && (((_local29 * _local27) < 0.0001))); _local66 = ((((_local57 * _local55) < 0.0001)) && (((_local36 * _local34) < 0.0001))); _local85 = 0; _local86 = 0; _local87 = 0; if ((((((_local19 > 0.0001)) && ((_local27 > 0.0001)))) && ((_local34 > 0.0001)))){ _local86 = (_local86 + _local9); _local87 = (_local87 + _local10); _local85 = (_local85 + 1); }; if ((((((_local20 > 0.0001)) && ((_local28 > 0.0001)))) && ((_local35 > 0.0001)))){ _local86 = (_local86 + _local11); _local87 = (_local87 + _local12); _local85 = (_local85 + 1); }; if ((((((_local21 > 0.0001)) && ((_local29 > 0.0001)))) && ((_local36 > 0.0001)))){ _local86 = (_local86 + _local13); _local87 = (_local87 + _local14); _local85 = (_local85 + 1); }; if ((((((_local41 > 0.0001)) && ((_local48 > 0.0001)))) && ((_local55 > 0.0001)))){ _local86 = (_local86 + _local3); _local87 = (_local87 + _local4); _local85 = (_local85 + 1); }; if ((((((_local42 > 0.0001)) && ((_local49 > 0.0001)))) && ((_local56 > 0.0001)))){ _local86 = (_local86 + _local5); _local87 = (_local87 + _local6); _local85 = (_local85 + 1); }; if ((((((_local43 > 0.0001)) && ((_local50 > 0.0001)))) && ((_local57 > 0.0001)))){ _local86 = (_local86 + _local7); _local87 = (_local87 + _local8); _local85 = (_local85 + 1); }; if (_local58){ _local88 = ((_local15 * _local38) - (_local16 * _local37)); if ((((_local15 * _local38) - (_local16 * _local37)) * _local88) > 0.0001){ _local67 = (((_local16 * _local39) - (_local17 * _local38)) / _local88); _local68 = (((_local17 * _local37) - (_local15 * _local39)) / _local88); _local86 = (_local86 + _local67); _local87 = (_local87 + _local68); _local85 = (_local85 + 1); }; }; if (_local59){ _local89 = ((_local22 * _local38) - (_local23 * _local37)); if ((((_local22 * _local38) - (_local23 * _local37)) * _local89) > 0.0001){ _local69 = (((_local23 * _local39) - (_local25 * _local38)) / _local89); _local70 = (((_local25 * _local37) - (_local22 * _local39)) / _local89); _local86 = (_local86 + _local69); _local87 = (_local87 + _local70); _local85 = (_local85 + 1); }; }; if (_local60){ _local90 = ((_local30 * _local38) - (_local31 * _local37)); if ((((_local30 * _local38) - (_local31 * _local37)) * _local90) > 0.0001){ _local71 = (((_local31 * _local39) - (_local32 * _local38)) / _local90); _local72 = (((_local32 * _local37) - (_local30 * _local39)) / _local90); _local86 = (_local86 + _local71); _local87 = (_local87 + _local72); _local85 = (_local85 + 1); }; }; if (_local61){ _local91 = ((_local15 * _local45) - (_local16 * _local44)); if ((((_local15 * _local45) - (_local16 * _local44)) * _local91) > 0.0001){ _local73 = (((_local16 * _local46) - (_local17 * _local45)) / _local91); _local74 = (((_local17 * _local44) - (_local15 * _local46)) / _local91); _local86 = (_local86 + _local73); _local87 = (_local87 + _local74); _local85 = (_local85 + 1); }; }; if (_local62){ _local92 = ((_local22 * _local45) - (_local23 * _local44)); if ((((_local22 * _local45) - (_local23 * _local44)) * _local92) > 0.0001){ _local75 = (((_local23 * _local46) - (_local25 * _local45)) / _local92); _local76 = (((_local25 * _local44) - (_local22 * _local46)) / _local92); _local86 = (_local86 + _local75); _local87 = (_local87 + _local76); _local85 = (_local85 + 1); }; }; if (_local63){ _local93 = ((_local30 * _local45) - (_local31 * _local44)); if ((((_local30 * _local45) - (_local31 * _local44)) * _local93) > 0.0001){ _local77 = (((_local31 * _local46) - (_local32 * _local45)) / _local93); _local78 = (((_local32 * _local44) - (_local30 * _local46)) / _local93); _local86 = (_local86 + _local77); _local87 = (_local87 + _local78); _local85 = (_local85 + 1); }; }; if (_local64){ _local94 = ((_local15 * _local52) - (_local16 * _local51)); if ((((_local15 * _local52) - (_local16 * _local51)) * _local94) > 0.0001){ _local79 = (((_local16 * _local53) - (_local17 * _local52)) / _local94); _local80 = (((_local17 * _local51) - (_local15 * _local53)) / _local94); _local86 = (_local86 + _local79); _local87 = (_local87 + _local80); _local85 = (_local85 + 1); }; }; if (_local65){ _local95 = ((_local22 * _local52) - (_local23 * _local51)); if ((((_local22 * _local52) - (_local23 * _local51)) * _local95) > 0.0001){ _local81 = (((_local23 * _local53) - (_local25 * _local52)) / _local95); _local82 = (((_local25 * _local51) - (_local22 * _local53)) / _local95); _local86 = (_local86 + _local81); _local87 = (_local87 + _local82); _local85 = (_local85 + 1); }; }; if (_local66){ _local96 = ((_local30 * _local52) - (_local31 * _local51)); if ((((_local30 * _local52) - (_local31 * _local51)) * _local96) > 0.0001){ _local83 = (((_local31 * _local53) - (_local32 * _local52)) / _local96); _local84 = (((_local32 * _local51) - (_local30 * _local53)) / _local96); _local86 = (_local86 + _local83); _local87 = (_local87 + _local84); _local85 = (_local85 + 1); }; }; return (zcompare(_arg1, _arg2, (_local86 / _local85), (_local87 / _local85))); } private static function zconflictTS(_arg1:DrawTriangle, _arg2:DrawSegment):int{ 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:Boolean; 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:Boolean; var _local39:Boolean; var _local40:Boolean; var _local41:Number; var _local42:Number; var _local43:Number; var _local44:Number; var _local45:Number; var _local46:Number; var _local47:int; var _local48:Number; var _local49:Number; var _local50:Number; var _local51:Number; var _local52:Number; _local3 = _arg1.v0.x; _local4 = _arg1.v0.y; _local5 = _arg1.v1.x; _local6 = _arg1.v1.y; _local7 = _arg1.v2.x; _local8 = _arg1.v2.y; _local9 = _arg2.v0.x; _local10 = _arg2.v0.y; _local11 = _arg2.v1.x; _local12 = _arg2.v1.y; _local13 = (_local6 - _local4); _local14 = (_local3 - _local5); _local15 = -(((_local14 * _local4) + (_local13 * _local3))); _local16 = (((_local13 * _local7) + (_local14 * _local8)) + _local15); _local17 = ((((_local13 * _local9) + (_local14 * _local10)) + _local15) * _local16); _local18 = ((((_local13 * _local11) + (_local14 * _local12)) + _local15) * _local16); if ((((_local17 <= 0.0001)) && ((_local18 <= 0.0001)))){ return (ZOrderIrrelevant); }; _local19 = (_local8 - _local6); _local20 = (_local5 - _local7); _local21 = (((_local19 * _local19) + (_local20 * _local20)) > 0.0001); _local22 = -(((_local20 * _local6) + (_local19 * _local5))); _local23 = (((_local19 * _local3) + (_local20 * _local4)) + _local22); _local24 = ((((_local19 * _local9) + (_local20 * _local10)) + _local22) * _local23); _local25 = ((((_local19 * _local11) + (_local20 * _local12)) + _local22) * _local23); if ((((_local24 <= 0.0001)) && ((_local25 <= 0.0001)))){ return (ZOrderIrrelevant); }; _local26 = (_local4 - _local8); _local27 = (_local7 - _local3); _local28 = -(((_local27 * _local8) + (_local26 * _local7))); _local29 = (((_local26 * _local5) + (_local27 * _local6)) + _local28); _local30 = ((((_local26 * _local9) + (_local27 * _local10)) + _local28) * _local29); _local31 = ((((_local26 * _local11) + (_local27 * _local12)) + _local28) * _local29); if ((((_local30 <= 0.0001)) && ((_local31 <= 0.0001)))){ return (ZOrderIrrelevant); }; _local32 = (_local12 - _local10); _local33 = (_local9 - _local11); _local34 = -(((_local33 * _local10) + (_local32 * _local9))); _local35 = (((_local32 * _local3) + (_local33 * _local4)) + _local34); _local36 = (((_local32 * _local5) + (_local33 * _local6)) + _local34); _local37 = (((_local32 * _local7) + (_local33 * _local8)) + _local34); if (((((((_local35 * _local36) >= 0.0001)) && (((_local36 * _local37) >= 0.0001)))) && (((_local37 * _local35) >= 0.0001)))){ return (ZOrderIrrelevant); }; if ((((((((_local17 > -0.0001)) && ((_local24 > -0.0001)))) && ((_local30 > -0.0001)))) && ((((((_local18 > -0.0001)) && ((_local25 > -0.0001)))) && ((_local31 > -0.0001)))))){ return (zcompare(_arg1, _arg2, ((_local9 + _local11) / 2), ((_local10 + _local12) / 2))); }; _local38 = ((((_local35 * _local36) < 0.0001)) && (((_local17 * _local18) < 0.0001))); _local39 = ((((_local36 * _local37) < 0.0001)) && (((_local24 * _local25) < 0.0001))); _local40 = ((((_local37 * _local35) < 0.0001)) && (((_local30 * _local31) < 0.0001))); _local47 = 0; _local48 = 0; _local49 = 0; if ((((((_local17 > 0.0001)) && ((_local24 > 0.0001)))) && ((_local30 > 0.0001)))){ _local48 = (_local48 + _local9); _local49 = (_local49 + _local10); _local47 = (_local47 + 1); }; if ((((((_local18 > 0.0001)) && ((_local25 > 0.0001)))) && ((_local31 > 0.0001)))){ _local48 = (_local48 + _local11); _local49 = (_local49 + _local12); _local47 = (_local47 + 1); }; if (_local38){ _local50 = ((_local13 * _local33) - (_local14 * _local32)); if ((((_local13 * _local33) - (_local14 * _local32)) * _local50) > 0.0001){ _local41 = (((_local14 * _local34) - (_local15 * _local33)) / _local50); _local42 = (((_local15 * _local32) - (_local13 * _local34)) / _local50); _local48 = (_local48 + _local41); _local49 = (_local49 + _local42); _local47 = (_local47 + 1); }; }; if (_local39){ _local51 = ((_local19 * _local33) - (_local20 * _local32)); if ((((_local19 * _local33) - (_local20 * _local32)) * _local51) > 0.0001){ _local43 = (((_local20 * _local34) - (_local22 * _local33)) / _local51); _local44 = (((_local22 * _local32) - (_local19 * _local34)) / _local51); _local48 = (_local48 + _local43); _local49 = (_local49 + _local44); _local47 = (_local47 + 1); }; }; if (_local40){ _local52 = ((_local26 * _local33) - (_local27 * _local32)); if ((((_local26 * _local33) - (_local27 * _local32)) * _local52) > 0.0001){ _local45 = (((_local27 * _local34) - (_local28 * _local33)) / _local52); _local46 = (((_local28 * _local32) - (_local26 * _local34)) / _local52); _local48 = (_local48 + _local45); _local49 = (_local49 + _local46); _local47 = (_local47 + 1); }; }; return (zcompare(_arg1, _arg2, (_local48 / _local47), (_local49 / _local47))); } public static function zconflict(_arg1:DrawPrimitive, _arg2:DrawPrimitive):int{ if ((_arg1 is DrawTriangle)){ if ((_arg2 is DrawTriangle)){ return (zconflictTT((_arg1 as DrawTriangle), (_arg2 as DrawTriangle))); }; if ((_arg2 is DrawSegment)){ return (zconflictTS((_arg1 as DrawTriangle), (_arg2 as DrawSegment))); }; if ((_arg1 is DrawScaledBitmap)){ return (zconflictTB((_arg1 as DrawTriangle), (_arg2 as DrawScaledBitmap))); }; } else { if ((_arg1 is DrawSegment)){ if ((_arg2 is DrawTriangle)){ return (-(zconflictTS((_arg2 as DrawTriangle), (_arg1 as DrawSegment)))); }; } else { if ((_arg1 is DrawScaledBitmap)){ if ((_arg2 is DrawTriangle)){ return (-(zconflictTB((_arg2 as DrawTriangle), (_arg1 as DrawScaledBitmap)))); }; if ((_arg2 is DrawScaledBitmap)){ return (zconflictBB((_arg1 as DrawScaledBitmap), (_arg2 as DrawScaledBitmap))); }; }; }; }; return (ZOrderIrrelevant); } private static function zconflictBB(_arg1:DrawScaledBitmap, _arg2:DrawScaledBitmap):int{ if (_arg1.screenZ > _arg2.screenZ){ return (ZOrderDeeper); }; if (_arg1.screenZ < _arg2.screenZ){ return (ZOrderHigher); }; return (ZOrderSame); } private static function zcompare(_arg1:DrawPrimitive, _arg2:DrawPrimitive, _arg3:Number, _arg4:Number):int{ var _local5:Number; var _local6:Number; _local5 = _arg1.getZ(_arg3, _arg4); _local6 = _arg2.getZ(_arg3, _arg4); if (_local5 > _local6){ return (ZOrderDeeper); }; if (_local5 < _local6){ return (ZOrderHigher); }; return (ZOrderSame); } } }//package away3d.core.render
Section 51
//BasicRenderer (away3d.core.render.BasicRenderer) package away3d.core.render { import flash.display.*; import away3d.core.proto.*; import away3d.core.draw.*; import away3d.core.block.*; import flash.utils.*; public class BasicRenderer implements IRenderer { private var tricount:int; private var sumtriarea:int; public var info:String; private var maxtriarea:Number; private var filters:Array; public function BasicRenderer(... _args){ this.filters = _args; this.filters.push(new ZSortFilter()); } public function desc():String{ return ((("Basic [" + filters.join("+")) + "]")); } public function render(_arg1:View3D):void{ var _local2:Scene3D; var _local3:Camera3D; var _local4:Sprite; var _local5:Clipping; var _local6:int; var _local7:Graphics; var _local8:BlockerArray; var _local9:BlockerTraverser; var _local10:Array; var _local11:PrimitiveArray; var _local12:LightArray; var _local13:PrimitiveTraverser; var _local14:Array; var _local15:IPrimitiveFilter; var _local16:RenderSession; var _local17:DrawPrimitive; _local2 = _arg1.scene; _local3 = _arg1.camera; _local4 = _arg1.canvas; _local5 = _arg1.clip; _local6 = getTimer(); info = ""; _local7 = _local4.graphics; _local8 = new BlockerArray(_local5); _local9 = new BlockerTraverser(_local8, _arg1); _local2.traverse(_local9); _local10 = _local8.list(); _local11 = new PrimitiveArray(_local5, _local10); _local12 = new LightArray(); _local13 = new PrimitiveTraverser(_local11, _local12, _arg1); _local2.traverse(_local13); _local14 = _local11.list(); info = (info + ((getTimer() - _local6) + "ms ")); _local6 = getTimer(); for each (_local15 in filters) { _local14 = _local15.filter(_local14, _local2, _local3, _local4, _local5); }; tricount = _local14.length; info = (info + ((getTimer() - _local6) + "ms ")); _local6 = getTimer(); _local16 = new RenderSession(_local2, _local3, _local4, _local5, _local12); for each (_local17 in _local14) { _local17.render(_local16); }; info = (info + ((getTimer() - _local6) + "ms ")); _local6 = getTimer(); } public function stats():String{ return (""); } } }//package away3d.core.render
Section 52
//BlockerTraverser (away3d.core.render.BlockerTraverser) package away3d.core.render { import away3d.core.proto.*; import away3d.core.block.*; public class BlockerTraverser extends ProjectionTraverser { private var consumer:IBlockerConsumer; public function BlockerTraverser(_arg1:IBlockerConsumer, _arg2:View3D){ this.consumer = _arg1; super(_arg2); } override public function apply(_arg1:Object3D):void{ var _local2:IBlockerProvider; var _local3:Projection; if ((_arg1 is IBlockerProvider)){ _local2 = (_arg1 as IBlockerProvider); _local3 = new Projection(view, _arg1.sceneTransform); _local2.blockers(_local3, consumer); }; } } }//package away3d.core.render
Section 53
//Clipping (away3d.core.render.Clipping) package away3d.core.render { import flash.display.*; import away3d.core.draw.*; import flash.geom.*; public class Clipping { public function rect(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Boolean{ return (true); } public function asRectangleClipping():RectangleClipping{ return (new RectangleClipping(-1000000, -1000000, 1000000, 1000000)); } public function check(_arg1:DrawPrimitive):Boolean{ return (true); } public static function screen(_arg1:Sprite):Clipping{ var _local2:Point; if (((_arg1.stage) && ((_arg1.stage.align == StageAlign.TOP_LEFT)))){ _local2 = _arg1.globalToLocal(new Point(0, 0)); return (new RectangleClipping(_local2.x, _local2.y, (_local2.x + _arg1.stage.stageWidth), (_local2.y + _arg1.stage.stageHeight))); }; return (new (Clipping)); } } }//package away3d.core.render
Section 54
//FindHitTraverser (away3d.core.render.FindHitTraverser) package away3d.core.render { import away3d.core.proto.*; import away3d.core.math.*; import away3d.core.geom.*; import away3d.core.draw.*; public class FindHitTraverser extends ProjectionTraverser implements IPrimitiveConsumer { public var worldZ:Number; public var worldX:Number; public var worldY:Number; public var uv:NumberUV; public var drawpri:DrawPrimitive; public var screenX:Number; public var screenY:Number; public var screenZ:Number;// = INF public var element:Object; public var object:Object3D; public function FindHitTraverser(_arg1:View3D, _arg2:Number, _arg3:Number){ screenZ = Infinity; super(_arg1); screenX = _arg2; screenY = _arg3; } public function primitive(_arg1:DrawPrimitive):void{ var _local2:Number; var _local3:Number; var _local4:Matrix3D; var _local5:DrawTriangle; if (_arg1.minX > screenX){ return; }; if (_arg1.maxX < screenX){ return; }; if (_arg1.minY > screenY){ return; }; if (_arg1.maxY < screenY){ return; }; if (_arg1.contains(screenX, screenY)){ _local2 = _arg1.getZ(screenX, screenY); if (_local2 < screenZ){ screenZ = _local2; _local3 = (view.camera.zoom / (1 + (screenZ / view.camera.focus))); _local4 = Matrix3D.inverse(view.camera.getView()); worldX = (((((screenX / _local3) * _local4.n11) + ((screenY / _local3) * _local4.n12)) + (screenZ * _local4.n13)) + _local4.n14); worldY = (((((screenX / _local3) * _local4.n21) + ((screenY / _local3) * _local4.n22)) + (screenZ * _local4.n23)) + _local4.n24); worldZ = (((((screenX / _local3) * _local4.n31) + ((screenY / _local3) * _local4.n32)) + (screenZ * _local4.n33)) + _local4.n34); drawpri = _arg1; object = _arg1.source; element = null; uv = null; if ((_arg1 is DrawTriangle)){ _local5 = (_arg1 as DrawTriangle); uv = _local5.getUV(screenX, screenY); }; }; }; } public function getMouseEvent(_arg1:String):MouseEvent3D{ var _local2:MouseEvent3D; _local2 = new MouseEvent3D(_arg1); _local2.screenX = screenX; _local2.screenY = screenY; _local2.screenZ = screenZ; _local2.worldX = worldX; _local2.worldY = worldY; _local2.worldZ = worldZ; _local2.view = view; _local2.drawpri = drawpri; _local2.element = element; _local2.object = object; _local2.uv = uv; return (_local2); } override public function apply(_arg1:Object3D):void{ var _local2:IPrimitiveProvider; var _local3:Projection; if ((_arg1 is IPrimitiveProvider)){ _local2 = (_arg1 as IPrimitiveProvider); _local3 = new Projection(view, _arg1.sceneTransform); _local2.primitives(_local3, this); }; } } }//package away3d.core.render
Section 55
//IBitmapRenderer (away3d.core.render.IBitmapRenderer) package away3d.core.render { public interface IBitmapRenderer { } }//package away3d.core.render
Section 56
//IPrimitiveConsumer (away3d.core.render.IPrimitiveConsumer) package away3d.core.render { import away3d.core.draw.*; public interface IPrimitiveConsumer { function primitive(_arg1:DrawPrimitive):void; } }//package away3d.core.render
Section 57
//IPrimitiveFilter (away3d.core.render.IPrimitiveFilter) package away3d.core.render { import flash.display.*; import away3d.core.proto.*; public interface IPrimitiveFilter { function filter(_arg1:Array, _arg2:Scene3D, _arg3:Camera3D, _arg4:Sprite, _arg5:Clipping):Array; } }//package away3d.core.render
Section 58
//IPrimitiveProvider (away3d.core.render.IPrimitiveProvider) package away3d.core.render { public interface IPrimitiveProvider { function primitives(_arg1:Projection, _arg2:IPrimitiveConsumer):void; } }//package away3d.core.render
Section 59
//IPrimitiveQuadrantFilter (away3d.core.render.IPrimitiveQuadrantFilter) package away3d.core.render { import flash.display.*; import away3d.core.proto.*; public interface IPrimitiveQuadrantFilter { function filter(_arg1:PrimitiveQuadrantTree, _arg2:Scene3D, _arg3:Camera3D, _arg4:Sprite, _arg5:Clipping):void; } }//package away3d.core.render
Section 60
//IRenderer (away3d.core.render.IRenderer) package away3d.core.render { import away3d.core.proto.*; public interface IRenderer { function desc():String; function render(_arg1:View3D):void; function stats():String; } }//package away3d.core.render
Section 61
//LightArray (away3d.core.render.LightArray) package away3d.core.render { import away3d.core.proto.*; import away3d.core.math.*; public class LightArray implements ILightConsumer { public var points:Array; private var directed:Array; private var ambients:Array; public function LightArray(){ ambients = []; directed = []; points = []; super(); } public function ambientLight(_arg1:int, _arg2:Number):void{ throw (new Error("Not implemented")); } public function pointLight(_arg1:Projection, _arg2:int, _arg3:Number, _arg4:Number, _arg5:Number):void{ var _local6:Matrix3D; var _local7:PointLightSource; _local6 = _arg1.view; _local7 = new PointLightSource(); _local7.x = _local6.n14; _local7.y = _local6.n24; _local7.z = _local6.n34; _local7.red = ((_arg2 & 0xFF0000) >> 16); _local7.green = ((_arg2 & 0xFF00) >> 8); _local7.blue = (_arg2 & 0xFF); _local7.ambient = _arg3; _local7.diffuse = _arg4; _local7.specular = _arg5; points.push(_local7); } public function directedLight(_arg1:Number3D, _arg2:int, _arg3:Number):void{ throw (new Error("Not implemented")); } } }//package away3d.core.render
Section 62
//PointLightSource (away3d.core.render.PointLightSource) package away3d.core.render { public class PointLightSource { public var green:Number; public var diffuse:Number; public var blue:Number; public var specular:Number; public var red:Number; public var x:Number; public var y:Number; public var z:Number; public var ambient:Number; } }//package away3d.core.render
Section 63
//PrimitiveArray (away3d.core.render.PrimitiveArray) package away3d.core.render { import away3d.core.draw.*; import away3d.core.block.*; public class PrimitiveArray implements IPrimitiveConsumer { private var triangles:Array; private var clip:Clipping; private var blockers:Array; public function PrimitiveArray(_arg1:Clipping, _arg2:Array){ triangles = []; super(); this.clip = _arg1; this.blockers = _arg2; } public function list():Array{ var _local1:Array; _local1 = this.triangles; this.triangles = null; return (_local1); } public function primitive(_arg1:DrawPrimitive):void{ var _local2:int; var _local3:int; var _local4:Blocker; if (clip.check(_arg1)){ if (!blockers){ triangles.push(_arg1); return; }; _local2 = blockers.length; _local3 = 0; while (_local3 < _local2) { _local4 = blockers[_local3]; if (_local4.screenZ > _arg1.minZ){ break; }; if (_local4.block(_arg1)){ return; }; _local3++; }; triangles.push(_arg1); }; } } }//package away3d.core.render
Section 64
//PrimitiveQuadrantTree (away3d.core.render.PrimitiveQuadrantTree) package away3d.core.render { import away3d.core.proto.*; import away3d.core.draw.*; public class PrimitiveQuadrantTree implements IPrimitiveConsumer { private var root:PrimitiveQuadrantTreeNode; private var clip:Clipping; public function PrimitiveQuadrantTree(_arg1:Clipping){ var _local2:RectangleClipping; super(); this.clip = _arg1; _local2 = _arg1.asRectangleClipping(); root = new PrimitiveQuadrantTreeNode(((_local2.minX + _local2.maxX) / 2), ((_local2.minY + _local2.maxY) / 2), ((_local2.maxX - _local2.minX) / 2), ((_local2.maxY - _local2.minY) / 2), 0); } public function render(_arg1:RenderSession):void{ root.render(_arg1, -(Infinity)); } public function add(_arg1:Array):void{ var _local2:DrawPrimitive; for each (_local2 in _arg1) { root.push(_local2); }; } public function remove(_arg1:DrawPrimitive):void{ root.remove(_arg1); } public function primitive(_arg1:DrawPrimitive):void{ if (clip.check(_arg1)){ root.push(_arg1); }; } public function push(_arg1:DrawPrimitive):void{ root.push(_arg1); } public function get(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object3D):Array{ return (root.get(_arg1, _arg2, _arg3, _arg4, _arg5)); } public function list():Array{ return (root.get(-1000000, -1000000, 1000000, 1000000, null)); } } }//package away3d.core.render
Section 65
//PrimitiveQuadrantTreeNode (away3d.core.render.PrimitiveQuadrantTreeNode) package away3d.core.render { import away3d.core.proto.*; import away3d.core.draw.*; public class PrimitiveQuadrantTreeNode { private var righttop:PrimitiveQuadrantTreeNode; private var level:Number; private var center:Array; private var onlysource:Object3D; private var xdiv:Number; private var split:Boolean; private var rightbottom:PrimitiveQuadrantTreeNode; private var halfheight:Number; private var render_center_length:int;// = -1 private var lefttop:PrimitiveQuadrantTreeNode; private var render_children_index:int;// = -1 private var render_center_index:int;// = -1 private var halfwidth:Number; private var ydiv:Number; private var leftbottom:PrimitiveQuadrantTreeNode; private var render_children_length:int;// = -1 private var children:Array; private static var dummysource:Object3D = new Object3D(); public function PrimitiveQuadrantTreeNode(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number){ render_center_length = -1; render_center_index = -1; render_children_length = -1; render_children_index = -1; super(); this.level = _arg5; this.xdiv = _arg1; this.ydiv = _arg2; halfwidth = (_arg3 / 2); halfheight = (_arg4 / 2); onlysource = dummysource; } public function render(_arg1:RenderSession, _arg2:Number):void{ var _local3:DrawPrimitive; if (render_center_length == -1){ if (center != null){ render_center_length = center.length; if (render_center_length > 1){ center.sortOn("screenZ", (Array.DESCENDING | Array.NUMERIC)); }; } else { render_center_length = 0; }; render_center_index = 0; if (children != null){ render_children_length = children.length; if (render_children_length > 1){ children.sortOn("screenZ", (Array.DESCENDING | Array.NUMERIC)); }; } else { render_children_length = 0; }; render_children_index = 0; }; while (render_center_index < render_center_length) { _local3 = center[render_center_index]; if (_local3.screenZ < _arg2){ break; }; render_other(_arg1, _local3.screenZ); _local3.render(_arg1); render_center_index++; }; render_other(_arg1, _arg2); } public function remove(_arg1:DrawPrimitive):void{ var _local2:int; if ((((((_arg1.maxX > xdiv)) && ((_arg1.minX < xdiv)))) || ((((_arg1.maxY > ydiv)) && ((_arg1.minY < ydiv)))))){ if (center == null){ throw (new Error("Can't remove")); }; _local2 = center.indexOf(_arg1); if (_local2 == -1){ throw (new Error("Can't remove")); }; center.splice(_local2, 1); return; }; if (!split){ if (children == null){ throw (new Error("Can't remove")); }; _local2 = children.indexOf(_arg1); if (_local2 == -1){ throw (new Error("Can't remove")); }; children.splice(_local2, 1); return; }; if (_arg1.maxX <= xdiv){ if (_arg1.maxY <= ydiv){ if (lefttop == null){ throw (new Error("Can't remove")); }; lefttop.remove(_arg1); } else { if (leftbottom == null){ throw (new Error("Can't remove")); }; leftbottom.remove(_arg1); }; } else { if (_arg1.minX >= xdiv){ if (_arg1.maxY <= ydiv){ if (righttop == null){ throw (new Error("Can't remove")); }; righttop.remove(_arg1); } else { if (rightbottom == null){ throw (new Error("Can't remove")); }; rightbottom.remove(_arg1); }; }; }; } private function getList(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object3D, _arg6:Array):void{ var _local7:DrawPrimitive; if (onlysource != null){ if (_arg5 == onlysource){ return; }; }; if (center != null){ for each (_local7 in center) { if (_local7.maxX < _arg1){ } else { if (_local7.minX > _arg3){ } else { if (_local7.maxY < _arg2){ } else { if (_local7.minY > _arg4){ } else { if (_arg5 != null){ //unresolved if } else { _arg6.push(_local7); }; }; }; }; }; }; }; if (!split){ if (children != null){ for each (_local7 in children) { if (_local7.maxX < _arg1){ } else { if (_local7.minX > _arg3){ } else { if (_local7.maxY < _arg2){ } else { if (_local7.minY > _arg4){ } else { if (_arg5 != null){ //unresolved if } else { _arg6.push(_local7); }; }; }; }; }; }; }; return; }; if (_arg1 < xdiv){ if (_arg2 < ydiv){ if (lefttop != null){ lefttop.getList(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); }; }; if (_arg4 > ydiv){ if (leftbottom != null){ leftbottom.getList(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); }; }; }; if (_arg3 > xdiv){ if (_arg2 < ydiv){ if (righttop != null){ righttop.getList(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); }; }; if (_arg4 > ydiv){ if (rightbottom != null){ rightbottom.getList(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); }; }; }; } private function render_other(_arg1:RenderSession, _arg2:Number):void{ var _local3:DrawPrimitive; if (render_children_length > 0){ while (render_children_index < render_children_length) { _local3 = children[render_children_index]; if (_local3.screenZ < _arg2){ return; }; _local3.render(_arg1); render_children_index++; }; } else { if (lefttop != null){ lefttop.render(_arg1, _arg2); }; if (leftbottom != null){ leftbottom.render(_arg1, _arg2); }; if (righttop != null){ righttop.render(_arg1, _arg2); }; if (rightbottom != null){ rightbottom.render(_arg1, _arg2); }; }; } public function get(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object3D):Array{ var _local6:Array; _local6 = []; getList(_arg1, _arg2, _arg3, _arg4, _arg5, _local6); return (_local6); } public function push(_arg1:DrawPrimitive):void{ var _local2:DrawPrimitive; if (onlysource == dummysource){ onlysource = _arg1.source; } else { if (onlysource != _arg1.source){ (onlysource == null); }; }; if ((((((_arg1.maxX > xdiv)) && ((_arg1.minX < xdiv)))) || ((((_arg1.maxY > ydiv)) && ((_arg1.minY < ydiv)))))){ if (center == null){ center = new Array(); }; center.push(_arg1); return; }; if (!split){ if (children == null){ children = new Array(); }; children.push(_arg1); if (children.length > (level * 2)){ split = true; for each (_local2 in children) { push(_local2); }; children = null; }; return; }; if (_arg1.maxX <= xdiv){ if (_arg1.maxY <= ydiv){ if (lefttop == null){ lefttop = new PrimitiveQuadrantTreeNode((xdiv - (halfwidth / 2)), (ydiv - (halfheight / 2)), halfwidth, halfheight, (level + 1)); }; lefttop.push(_arg1); } else { if (leftbottom == null){ leftbottom = new PrimitiveQuadrantTreeNode((xdiv - (halfwidth / 2)), (ydiv + (halfheight / 2)), halfwidth, halfheight, (level + 1)); }; leftbottom.push(_arg1); }; } else { if (_arg1.minX >= xdiv){ if (_arg1.maxY <= ydiv){ if (righttop == null){ righttop = new PrimitiveQuadrantTreeNode((xdiv + (halfwidth / 2)), (ydiv - (halfheight / 2)), halfwidth, halfheight, (level + 1)); }; righttop.push(_arg1); } else { if (rightbottom == null){ rightbottom = new PrimitiveQuadrantTreeNode((xdiv + (halfwidth / 2)), (ydiv + (halfheight / 2)), halfwidth, halfheight, (level + 1)); }; rightbottom.push(_arg1); }; }; }; } } }//package away3d.core.render
Section 66
//PrimitiveTraverser (away3d.core.render.PrimitiveTraverser) package away3d.core.render { import away3d.core.proto.*; public class PrimitiveTraverser extends ProjectionTraverser { private var consumer:IPrimitiveConsumer; private var lights:ILightConsumer; public function PrimitiveTraverser(_arg1:IPrimitiveConsumer, _arg2:ILightConsumer, _arg3:View3D){ this.consumer = _arg1; this.lights = _arg2; super(_arg3); } override public function apply(_arg1:Object3D):void{ var _local2:Projection; var _local3:IPrimitiveProvider; var _local4:ILightProvider; _local2 = new Projection(view, _arg1.sceneTransform); if ((_arg1 is IPrimitiveProvider)){ _local3 = (_arg1 as IPrimitiveProvider); _local3.primitives(_local2, consumer); }; if ((_arg1 is ILightProvider)){ _local4 = (_arg1 as ILightProvider); _local4.light(_local2, lights); }; } } }//package away3d.core.render
Section 67
//Projection (away3d.core.render.Projection) package away3d.core.render { import away3d.core.proto.*; import away3d.core.math.*; public class Projection { public var view:Matrix3D; public var transform:Matrix3D; public var zoom:Number; public var focus:Number; public function Projection(_arg1:View3D, _arg2:Matrix3D=null){ this.transform = _arg2; this.view = Matrix3D.multiply(_arg1.camera.getView(), _arg2); this.focus = _arg1.camera.focus; this.zoom = _arg1.camera.zoom; } } }//package away3d.core.render
Section 68
//ProjectionTraverser (away3d.core.render.ProjectionTraverser) package away3d.core.render { import away3d.core.proto.*; public class ProjectionTraverser extends Traverser { protected var view:View3D; public function ProjectionTraverser(_arg1:View3D){ this.view = _arg1; } override public function match(_arg1:Object3D):Boolean{ if (!_arg1.visible){ return (false); }; if ((_arg1 is ILODObject)){ return ((_arg1 as ILODObject).matchLOD(view)); }; return (true); } override public function leave(_arg1:Object3D):void{ _arg1.transformUpdate = false; } override public function enter(_arg1:Object3D):void{ _arg1.project(); } } }//package away3d.core.render
Section 69
//QuadrantRenderer (away3d.core.render.QuadrantRenderer) package away3d.core.render { import flash.display.*; import away3d.core.proto.*; public class QuadrantRenderer implements IRenderer { private var qdrntfilters:Array; public function QuadrantRenderer(... _args){ var _local2:IPrimitiveQuadrantFilter; super(); qdrntfilters = []; for each (_local2 in _args) { qdrntfilters.push(_local2); }; } public function desc():String{ return ((("Quadrant [" + qdrntfilters.join("+")) + "]")); } public function render(_arg1:View3D):void{ var _local2:Scene3D; var _local3:Camera3D; var _local4:Sprite; var _local5:Clipping; var _local6:Graphics; var _local7:PrimitiveQuadrantTree; var _local8:LightArray; var _local9:PrimitiveTraverser; var _local10:RenderSession; var _local11:IPrimitiveQuadrantFilter; _local2 = _arg1.scene; _local3 = _arg1.camera; _local4 = _arg1.canvas; _local5 = _arg1.clip; _local6 = _local4.graphics; _local7 = new PrimitiveQuadrantTree(_local5); _local8 = new LightArray(); _local9 = new PrimitiveTraverser(_local7, _local8, _arg1); _local2.traverse(_local9); _local10 = new RenderSession(_local2, _local3, _local4, _local5, _local8); for each (_local11 in qdrntfilters) { _local11.filter(_local7, _local2, _local3, _local4, _local5); }; _local7.render(_local10); } public function stats():String{ return (""); } } }//package away3d.core.render
Section 70
//QuadrantRiddleFilter (away3d.core.render.QuadrantRiddleFilter) package away3d.core.render { import flash.display.*; import away3d.core.proto.*; import away3d.core.draw.*; import flash.utils.*; public class QuadrantRiddleFilter implements IPrimitiveQuadrantFilter { public var maxdelay:int; public function QuadrantRiddleFilter(_arg1:int=60000){ this.maxdelay = _arg1; } public function filter(_arg1:PrimitiveQuadrantTree, _arg2:Scene3D, _arg3:Camera3D, _arg4:Sprite, _arg5:Clipping):void{ var _local6:int; var _local7:int; var _local8:Array; var _local9:int; var _local10:Array; var _local11:DrawPrimitive; var _local12:Array; var _local13:DrawPrimitive; var _local14:DrawTriangle; var _local15:Array; var _local16:DrawPrimitive; _local6 = getTimer(); _local7 = 0; _local8 = _arg1.list(); _local9 = 0; while (_local8.length > 0) { _local10 = new Array(); for each (_local11 in _local8) { _local12 = _arg1.get(_local11.minX, _local11.minY, _local11.maxX, _local11.maxY, _local11.source); for each (_local13 in _local12) { if (_local13 == _local11){ } else { if (_local11.source != null){ //unresolved if } else { if (_local13.minZ >= _local11.maxZ){ } else { if (_local13.maxZ <= _local11.minZ){ } else { if (!(_local13 is DrawTriangle)){ } else { _local14 = (_local13 as DrawTriangle); _local15 = _local11.riddle(_local14, _arg3.focus); if (_local15 == null){ } else { _arg1.remove(_local11); for each (_local16 in _local15) { _local10.push(_local16); _arg1.push(_local16); }; break; }; }; }; }; }; }; }; }; _local8 = _local10; _local9 = (_local9 + 1); if (_local9 == 40){ break; }; }; } public function toString():String{ return (("QuadrantRiddleFilter" + ((maxdelay)==60000) ? "" : (("(" + maxdelay) + "ms)"))); } } }//package away3d.core.render
Section 71
//RectangleClipping (away3d.core.render.RectangleClipping) package away3d.core.render { import away3d.core.draw.*; public class RectangleClipping extends Clipping { public var minX:Number; public var maxX:Number; public var maxY:Number; public var minY:Number; public function RectangleClipping(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number){ this.minX = _arg1; this.maxX = _arg3; this.minY = _arg2; this.maxY = _arg4; } override public function rect(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Boolean{ if (this.maxX < _arg1){ return (false); }; if (this.minX > _arg3){ return (false); }; if (this.maxY < _arg2){ return (false); }; if (this.minY > _arg4){ return (false); }; return (true); } override public function check(_arg1:DrawPrimitive):Boolean{ if (_arg1.maxX < minX){ return (false); }; if (_arg1.minX > maxX){ return (false); }; if (_arg1.maxY < minY){ return (false); }; if (_arg1.minY > maxY){ return (false); }; return (true); } override public function asRectangleClipping():RectangleClipping{ return (this); } } }//package away3d.core.render
Section 72
//Renderer (away3d.core.render.Renderer) package away3d.core.render { public class Renderer { public static function get INTERSECTING_OBJECTS():IRenderer{ return (new QuadrantRenderer(new QuadrantRiddleFilter(), new AnotherRivalFilter())); } public static function get CORRECT_Z_ORDER():IRenderer{ return (new QuadrantRenderer(new AnotherRivalFilter())); } public static function get BASIC():IRenderer{ return (new BasicRenderer()); } } }//package away3d.core.render
Section 73
//RenderSession (away3d.core.render.RenderSession) package away3d.core.render { import flash.display.*; import away3d.core.proto.*; import flash.utils.*; public class RenderSession { public var container:Sprite; public var lightarray:LightArray; public var camera:Camera3D; public var scene:Scene3D; public var time:int; public var clip:Clipping; private var _graphics:Graphics; public function RenderSession(_arg1:Scene3D, _arg2:Camera3D, _arg3:Sprite, _arg4:Clipping, _arg5:LightArray){ this.scene = _arg1; this.camera = _arg2; this.container = _arg3; this.clip = _arg4; this.lightarray = _arg5; this.time = getTimer(); } public function get graphics():Graphics{ var _local1:Sprite; if (_graphics == null){ _local1 = new Sprite(); container.addChild(_local1); _graphics = _local1.graphics; }; return (_graphics); } public function addDisplayObject(_arg1:DisplayObject):void{ _graphics = null; container.addChild(_arg1); } public function renderTriangleColor(_arg1:int, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number):void{ var _local9:Graphics; _local9 = ((_graphics) || (this.graphics)); _local9.lineStyle(); _local9.beginFill(_arg1, _arg2); _local9.moveTo(_arg3, _arg4); _local9.lineTo(_arg5, _arg6); _local9.lineTo(_arg7, _arg8); _local9.endFill(); } } }//package away3d.core.render
Section 74
//ZSortFilter (away3d.core.render.ZSortFilter) package away3d.core.render { import flash.display.*; import away3d.core.proto.*; public class ZSortFilter implements IPrimitiveFilter { public function filter(_arg1:Array, _arg2:Scene3D, _arg3:Camera3D, _arg4:Sprite, _arg5:Clipping):Array{ _arg1.sortOn("screenZ", (Array.DESCENDING | Array.NUMERIC)); return (_arg1); } public function toString():String{ return ("ZSort"); } } }//package away3d.core.render
Section 75
//Debug (away3d.core.Debug) package away3d.core { public class Debug { public static var warningsAsErrors:Boolean = false; public static var active:Boolean = false; public static function warning(_arg1:Object):void{ if (warningsAsErrors){ error(_arg1); return; }; trace(("WARNING: " + _arg1)); } public static function trace(_arg1:Object):void{ dotrace(_arg1); } public static function delimiter():void{ } public static function clear():void{ } public static function error(_arg1:Object):void{ trace(("ERROR: " + _arg1)); throw (new Error(_arg1)); } } }//package away3d.core private const dotrace:Function = function (_arg1:Object):void{ trace(_arg1); };
Section 76
//Init (away3d.core.Init) package away3d.core { import away3d.core.proto.*; import away3d.core.math.*; import away3d.loaders.*; public class Init { private var init:Object; private static var inits:Array = []; public function Init(_arg1:Object){ this.init = _arg1; } public function getArray(_arg1:String):Array{ var _local2:Array; if (init == null){ return ([]); }; if (!init.hasOwnProperty(_arg1)){ return ([]); }; _local2 = init[_arg1]; delete init[_arg1]; return (_local2); } public function getObject3D(_arg1:String):Object3D{ var _local2:Object3D; if (init == null){ return (null); }; if (!init.hasOwnProperty(_arg1)){ return (null); }; _local2 = init[_arg1]; delete init[_arg1]; return (_local2); } public function getString(_arg1:String, _arg2:String):String{ var _local3:String; if (init == null){ return (_arg2); }; if (!init.hasOwnProperty(_arg1)){ return (_arg2); }; _local3 = init[_arg1]; delete init[_arg1]; return (_local3); } public function getColor(_arg1:String, _arg2:uint):uint{ var _local3:uint; if (init == null){ return (_arg2); }; if (!init.hasOwnProperty(_arg1)){ return (_arg2); }; _local3 = Cast.color(init[_arg1]); delete init[_arg1]; return (_local3); } public function getNumber2D(_arg1:String):Number2D{ var _local2:Number2D; if (init == null){ return (new Number2D()); }; if (!init.hasOwnProperty(_arg1)){ return (new Number2D()); }; _local2 = init[_arg1]; delete init[_arg1]; return (_local2); } public function getBoolean(_arg1:String, _arg2:Boolean):Boolean{ var _local3:Boolean; if (init == null){ return (_arg2); }; if (!init.hasOwnProperty(_arg1)){ return (_arg2); }; _local3 = init[_arg1]; delete init[_arg1]; return (_local3); } public function getObject(_arg1:String, _arg2:Object=null):Object{ var _local3:Object; if (init == null){ return (_arg2); }; if (!init.hasOwnProperty(_arg1)){ return (_arg2); }; _local3 = init[_arg1]; delete init[_arg1]; return (_local3); } public function getNumber3D(_arg1:String):Number3D{ var _local2:Number3D; if (init == null){ return (new Number3D()); }; if (!init.hasOwnProperty(_arg1)){ return (new Number3D()); }; _local2 = init[_arg1]; delete init[_arg1]; return (_local2); } public function getInt(_arg1:String, _arg2:int, _arg3:Object=null):int{ var _local4:int; var _local5:int; var _local6:int; if (init == null){ return (_arg2); }; if (!init.hasOwnProperty(_arg1)){ return (_arg2); }; _local4 = init[_arg1]; if (_arg3 != null){ if (_arg3.hasOwnProperty("min")){ _local5 = _arg3["min"]; if (_local4 < _local5){ _local4 = _local5; }; }; if (_arg3.hasOwnProperty("max")){ _local6 = _arg3["max"]; if (_local4 > _local6){ _local4 = _local6; }; }; }; delete init[_arg1]; return (_local4); } public function getNumber(_arg1:String, _arg2:Number, _arg3:Object=null):Number{ var _local4:Number; var _local5:Number; var _local6:Number; if (init == null){ return (_arg2); }; if (!init.hasOwnProperty(_arg1)){ return (_arg2); }; _local4 = init[_arg1]; if (_arg3 != null){ if (_arg3.hasOwnProperty("min")){ _local5 = _arg3["min"]; if (_local4 < _local5){ _local4 = _local5; }; }; if (_arg3.hasOwnProperty("max")){ _local6 = _arg3["max"]; if (_local4 > _local6){ _local4 = _local6; }; }; }; delete init[_arg1]; return (_local4); } public static function checkUnusedArguments():void{ var _local1:Array; var _local2:Object; var _local3:String; var _local4:String; if (inits.length == 0){ return; }; _local1 = inits; inits = []; for each (_local2 in _local1) { _local3 = null; for (_local4 in _local2) { if (_local3 == null){ _local3 = ""; } else { _local3 = (_local3 + ", "); }; _local3 = (_local3 + ((_local4 + ":") + _local2[_local4])); }; if (_local3 != null){ Debug.warning((("Unused arguments: {" + _local3) + "}")); }; }; } public static function parse(_arg1:Object):Init{ if (_arg1 == null){ return (new Init(null)); }; if ((_arg1 is Init)){ return ((_arg1 as Init)); }; inits.push(_arg1); return (new Init(_arg1)); } } }//package away3d.core
Section 77
//DofEngine (away3d.dof.DofEngine) package away3d.dof { import flash.display.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; public class DofEngine { private var bitmaps:Array; private var dofScale:Number; private var levels:Number; public var focus:Number; public static var engines:Dictionary = new Dictionary(); public function DofEngine(_arg1:Boolean, _arg2:Number, _arg3:BitmapData, _arg4:Number=30, _arg5:Number=40){ var _local6:Matrix; var _local7:Point; var _local8:Number; var _local9:BlurFilter; var _local10:int; var _local11:BitmapData; super(); this.dofScale = _arg4; this.levels = _arg2; _local6 = new Matrix(); _local7 = new Point(0, 0); bitmaps = new Array(_arg2); _local8 = 0; while (_local8 < _arg2) { _local9 = new BlurFilter((2 + ((_arg5 * _local8) / _arg2)), (2 + ((_arg5 * _local8) / _arg2)), 4); _local6.identity(); _local10 = (_arg3.width * (1 + (_local8 / (_arg2 / 2)))); _local6.translate((-(_arg3.width) / 2), (-(_arg3.height) / 2)); _local6.translate((_local10 / 2), (_local10 / 2)); _local11 = new BitmapData(_local10, _local10, true, 0); _local11.draw(_arg3, _local6); _local11.applyFilter(_local11, _local11.rect, _local7, _local9); bitmaps[_local8] = _local11; _local8++; }; } public function getBitmap(_arg1:Number):BitmapData{ var _local2:int; _local2 = Math.floor(Math.max(0, Math.min((levels - 1), (Math.abs((focus - _arg1)) / dofScale)))); return (bitmaps[_local2]); } public static function getDofEngine(_arg1:String, _arg2:Number, _arg3:BitmapData, _arg4:Number=30, _arg5:Number=40):DofEngine{ if (engines[_arg1] == null){ engines[_arg1] = new DofEngine(true, _arg2, _arg3, _arg4, _arg5); }; return (engines[_arg1]); } } }//package away3d.dof
Section 78
//Cast (away3d.loaders.Cast) package away3d.loaders { import flash.display.*; import away3d.core.proto.*; import away3d.core.geom.*; import away3d.core.material.*; import away3d.core.*; import flash.utils.*; public class Cast { private static var colornames:Dictionary; private static var hexchars:String = "0123456789abcdefABCDEF"; public static function color(_arg1):uint{ var _local2:uint; _local2 = trycolor(_arg1); return (_local2); } public static function material(_arg1):IMaterial{ if (_arg1 == null){ return (null); }; if ((_arg1 is Class)){ _arg1 = new (_arg1); }; if ((_arg1 is IMaterial)){ return (_arg1); }; if ((_arg1 is BitmapData)){ return (new BitmapMaterial(_arg1, {smooth:true})); }; if (_arg1.bitmapData){ return (new BitmapMaterial(_arg1.bitmapData, {smooth:true})); }; return (null); } public static function trycolor(_arg1):uint{ if ((_arg1 is uint)){ return ((_arg1 as uint)); }; if ((_arg1 is int)){ return ((_arg1 as uint)); }; if ((_arg1 is String)){ if (_arg1 == "random"){ return (uint((Math.random() * 16777216))); }; if (colornames == null){ colornames = new Dictionary(); colornames["steelblue"] = 4620980; colornames["royalblue"] = 267920; colornames["cornflowerblue"] = 6591981; colornames["lightsteelblue"] = 11584734; colornames["mediumslateblue"] = 8087790; colornames["slateblue"] = 6970061; colornames["darkslateblue"] = 4734347; colornames["midnightblue"] = 1644912; colornames["navy"] = 128; colornames["darkblue"] = 139; colornames["mediumblue"] = 205; colornames["blue"] = 0xFF; colornames["dodgerblue"] = 2003199; colornames["deepskyblue"] = 49151; colornames["lightskyblue"] = 8900346; colornames["skyblue"] = 8900331; colornames["lightblue"] = 11393254; colornames["powderblue"] = 11591910; colornames["azure"] = 15794175; colornames["lightcyan"] = 14745599; colornames["paleturquoise"] = 11529966; colornames["mediumturquoise"] = 4772300; colornames["lightseagreen"] = 2142890; colornames["darkcyan"] = 0x8B8B; colornames["teal"] = 0x8080; colornames["cadetblue"] = 6266528; colornames["darkturquoise"] = 52945; colornames["aqua"] = 0xFFFF; colornames["cyan"] = 0xFFFF; colornames["turquoise"] = 4251856; colornames["aquamarine"] = 8388564; colornames["mediumaquamarine"] = 6737322; colornames["darkseagreen"] = 9419919; colornames["mediumseagreen"] = 3978097; colornames["seagreen"] = 3050327; colornames["darkgreen"] = 0x6400; colornames["green"] = 0x8000; colornames["forestgreen"] = 2263842; colornames["limegreen"] = 3329330; colornames["lime"] = 0xFF00; colornames["chartreuse"] = 0x7FFF00; colornames["lawngreen"] = 0x7CFC00; colornames["greenyellow"] = 11403055; colornames["yellowgreen"] = 10145074; colornames["palegreen"] = 10025880; colornames["lightgreen"] = 9498256; colornames["springgreen"] = 65407; colornames["mediumspringgreen"] = 64154; colornames["darkolivegreen"] = 5597999; colornames["olivedrab"] = 7048739; colornames["olive"] = 0x808000; colornames["darkkhaki"] = 12433259; colornames["darkgoldenrod"] = 12092939; colornames["goldenrod"] = 14329120; colornames["gold"] = 0xFFD700; colornames["yellow"] = 0xFFFF00; colornames["khaki"] = 15787660; colornames["palegoldenrod"] = 15657130; colornames["blanchedalmond"] = 16772045; colornames["moccasin"] = 16770229; colornames["wheat"] = 16113331; colornames["navajowhite"] = 16768685; colornames["burlywood"] = 14596231; colornames["tan"] = 13808780; colornames["rosybrown"] = 12357519; colornames["sienna"] = 10506797; colornames["saddlebrown"] = 9127187; colornames["chocolate"] = 13789470; colornames["peru"] = 13468991; colornames["sandybrown"] = 16032864; colornames["darkred"] = 0x8B0000; colornames["maroon"] = 0x800000; colornames["brown"] = 10824234; colornames["firebrick"] = 11674146; colornames["indianred"] = 13458524; colornames["lightcoral"] = 15761536; colornames["salmon"] = 16416882; colornames["darksalmon"] = 15308410; colornames["lightsalmon"] = 16752762; colornames["coral"] = 16744272; colornames["tomato"] = 16737095; colornames["darkorange"] = 0xFF8C00; colornames["orange"] = 0xFFA500; colornames["orangered"] = 0xFF4500; colornames["crimson"] = 14423100; colornames["red"] = 0xFF0000; colornames["deeppink"] = 16716947; colornames["fuchsia"] = 0xFF00FF; colornames["magenta"] = 0xFF00FF; colornames["hotpink"] = 16738740; colornames["lightpink"] = 16758465; colornames["pink"] = 16761035; colornames["palevioletred"] = 14381203; colornames["mediumvioletred"] = 13047173; colornames["purple"] = 0x800080; colornames["darkmagenta"] = 0x8B008B; colornames["mediumpurple"] = 9662683; colornames["blueviolet"] = 9055202; colornames["indigo"] = 0x4B0082; colornames["darkviolet"] = 0x9400D3; colornames["darkorchid"] = 10040012; colornames["mediumorchid"] = 12211667; colornames["orchid"] = 14315734; colornames["violet"] = 15631086; colornames["plum"] = 14524637; colornames["thistle"] = 14204888; colornames["lavender"] = 15132410; colornames["ghostwhite"] = 16316671; colornames["aliceblue"] = 15792383; colornames["mintcream"] = 16121850; colornames["honeydew"] = 15794160; colornames["lightgoldenrodyellow"] = 16448210; colornames["lemonchiffon"] = 16775885; colornames["cornsilk"] = 16775388; colornames["lightyellow"] = 16777184; colornames["ivory"] = 16777200; colornames["floralwhite"] = 16775920; colornames["linen"] = 16445670; colornames["oldlace"] = 16643558; colornames["antiquewhite"] = 16444375; colornames["bisque"] = 16770244; colornames["peachpuff"] = 16767673; colornames["papayawhip"] = 16773077; colornames["beige"] = 16119260; colornames["seashell"] = 16774638; colornames["lavenderblush"] = 16773365; colornames["mistyrose"] = 16770273; colornames["snow"] = 16775930; colornames["white"] = 0xFFFFFF; colornames["whitesmoke"] = 0xF5F5F5; colornames["gainsboro"] = 0xDCDCDC; colornames["lightgrey"] = 0xD3D3D3; colornames["silver"] = 0xC0C0C0; colornames["darkgrey"] = 0xA9A9A9; colornames["grey"] = 0x808080; colornames["lightslategrey"] = 7833753; colornames["slategrey"] = 7372944; colornames["dimgrey"] = 0x696969; colornames["darkslategrey"] = 3100495; colornames["black"] = 0; colornames["transparent"] = 4278190080; }; if (colornames[_arg1] != null){ return (colornames[_arg1]); }; if ((((_arg1.length == 6)) && (hexstring(_arg1)))){ return (parseInt(("0x" + _arg1))); }; }; return (4294967295); } private static function hexstring(_arg1:String):Boolean{ var _local2:int; _local2 = 0; while (_local2 < _arg1.length) { if (hexchars.indexOf(_arg1.charAt(_local2)) == -1){ return (false); }; _local2++; }; return (true); } public static function bitmap(_arg1):BitmapData{ if ((_arg1 is Class)){ _arg1 = new (_arg1); }; if ((_arg1 is BitmapData)){ return (_arg1); }; if (_arg1.bitmapData){ return (_arg1.bitmapData); }; return (null); } public static function string(_arg1):String{ if ((_arg1 is Class)){ _arg1 = new (_arg1); }; if ((_arg1 is String)){ return (_arg1); }; return (String(_arg1)); } public static function xml(_arg1):XML{ if ((_arg1 is Class)){ _arg1 = new (_arg1); }; if ((_arg1 is XML)){ return (_arg1); }; return (XML(_arg1)); } public static function library(_arg1):MaterialLibrary{ var _local2:MaterialLibrary; var _local3:String; if (_arg1 == null){ return (new MaterialLibrary()); }; if ((_arg1 is Class)){ _arg1 = new (_arg1); }; if ((_arg1 is MaterialLibrary)){ return (_arg1); }; if ((_arg1 is IMaterial)){ return (new MaterialLibrary(_arg1)); }; if ((_arg1 is BitmapData)){ return (new MaterialLibrary(new BitmapMaterial(_arg1, {smooth:true}))); }; if (_arg1.bitmapData){ return (new MaterialLibrary(new BitmapMaterial(_arg1.bitmapData, {smooth:true}))); }; _local2 = new MaterialLibrary(); for (_local3 in _arg1) { _local2.add(Cast.material(_arg1[_local3]), _local3); }; return (_local2); } } }//package away3d.loaders
Section 79
//MaterialLibrary (away3d.loaders.MaterialLibrary) package away3d.loaders { import away3d.core.material.*; import flash.utils.*; public class MaterialLibrary { private var def:IMaterial; private var materials:Dictionary; public function MaterialLibrary(_arg1:IMaterial=null):void{ materials = new Dictionary(); super(); this.def = _arg1; } public function add(_arg1:IMaterial, _arg2:String):void{ if (_arg2 == "def"){ def = _arg1; } else { materials[_arg2] = _arg1; }; } public function getTriangleMaterial(_arg1:String):ITriangleMaterial{ return ((((materials[_arg1]) || (def)) as ITriangleMaterial)); } public function getMaterialByName(_arg1:String):IMaterial{ return (((materials[_arg1]) || (def))); } } }//package away3d.loaders
Section 80
//Obj (away3d.loaders.Obj) package away3d.loaders { import flash.events.*; import away3d.core.proto.*; import away3d.core.geom.*; import away3d.core.material.*; import away3d.core.*; import flash.net.*; public class Obj { private var mat; private var scaling:Number; private var mesh:Mesh3D; private var url:String; private var myURLLoader:URLLoader; public function Obj(_arg1:String, _arg2:IMaterial, _arg3:Object=null, _arg4:Number=1){ url = url; mat = _arg2; _arg3 = Init.parse(_arg3); scaling = _arg4; if ((_arg3 as Init).getBoolean("particleMesh", false)){ mesh = new ParticleMesh(null, _arg3); } else { if ((_arg3 as Init).getBoolean("bitmapMesh", false)){ mesh = new BitmapMesh3D(null, _arg3); } else { mesh = new Mesh3D(null, _arg3); }; }; parseObj(_arg1); } private function parseObj(_arg1:String):void{ var lines:Array; var line:String; var trunk:Array; var face0:Array; var face1:Array; var face2:Array; var face3:Array; var face:Face3D; var uvA:NumberUV; var uvB:NumberUV; var uvC:NumberUV; var x:Number; var y:Number; var z:Number; var UVs:Array; var i:int; var myPattern:RegExp; var filestring = _arg1; filestring = unescape(filestring); lines = filestring.split("\n"); UVs = new Array(); while (lines.length) { line = String(lines.shift()); i = (i + 1); if (line.substring(0, 2) == "v "){ try { trunk = line.substring(2, line.length).split(" "); if (trunk.length == 4){ trunk.shift(); }; x = (Number(trunk[0]) * scaling); y = (-(Number(trunk[2])) * scaling); z = (Number(trunk[1]) * scaling); mesh.vertices.push(new Vertex3D(x, y, z)); } catch(error:Error) { }; }; if (line.substring(0, 2) == "vt"){ try { trunk = line.substring(2, line.length).split(" "); trunk.shift(); if (trunk.length == 4){ trunk.shift(); }; UVs.push({u:parseFloat(trunk[0]), v:parseFloat(trunk[1])}); } catch(error:Error) { }; }; if (line.substring(0, 2) == "f "){ if (line.indexOf("-") != -1){ myPattern = new RegExp("-", "g"); line = line.substring(2, line.length).replace(myPattern, ""); trunk = line.split(" "); } else { trunk = line.substring(2, line.length).split(" "); }; try { if (((((((trunk[0]) && (trunk[1]))) && (trunk[2]))) && (trunk[3]))){ if (trunk[0].indexOf("/") != -1){ face0 = trunk[0].split("/"); } else { face0 = [trunk[0]]; }; if (trunk[1].indexOf("/") != -1){ face1 = trunk[1].split("/"); } else { face1 = [trunk[1]]; }; if (trunk[2].indexOf("/") != -1){ face2 = trunk[2].split("/"); } else { face2 = [trunk[2]]; }; if (trunk[3].indexOf("/") != -1){ face3 = trunk[3].split("/"); } else { face3 = [trunk[3]]; }; try { if (((((((face0[1]) && (face1[1]))) && (face2[1]))) && (face3[1]))){ uvA = new NumberUV(UVs[(Number(face3[1]) - 1)].u, UVs[(Number(face3[1]) - 1)].v); uvB = new NumberUV(UVs[(Number(face0[1]) - 1)].u, UVs[(Number(face0[1]) - 1)].v); uvC = new NumberUV(UVs[(Number(face1[1]) - 1)].u, UVs[(Number(face1[1]) - 1)].v); face = new Face3D(mesh.vertices[(Number(face1[0]) - 1)], mesh.vertices[(Number(face0[0]) - 1)], mesh.vertices[(Number(face3[0]) - 1)], mat, uvC, uvB, uvA); mesh.faces.push(face); uvA = new NumberUV(UVs[(Number(face3[1]) - 1)].u, UVs[(Number(face3[1]) - 1)].v); uvB = new NumberUV(UVs[(Number(face1[1]) - 1)].u, UVs[(Number(face1[1]) - 1)].v); uvC = new NumberUV(UVs[(Number(face2[1]) - 1)].u, UVs[(Number(face2[1]) - 1)].v); face = new Face3D(mesh.vertices[(Number(face2[0]) - 1)], mesh.vertices[(Number(face1[0]) - 1)], mesh.vertices[(Number(face3[0]) - 1)], mat, uvC, uvB, uvA); mesh.faces.push(face); } else { face = new Face3D(mesh.vertices[(Number(face1[0]) - 1)], mesh.vertices[(Number(face0[0]) - 1)], mesh.vertices[(Number(face3[0]) - 1)], mat, null, null, null); mesh.faces.push(face); face = new Face3D(mesh.vertices[(Number(face2[0]) - 1)], mesh.vertices[(Number(face1[0]) - 1)], mesh.vertices[(Number(face3[0]) - 1)], mat, null, null, null); mesh.faces.push(face); }; } catch(error:Error) { }; } else { if (((((trunk[0]) && (trunk[1]))) && (trunk[2]))){ if (trunk[0].indexOf("/") != -1){ face0 = trunk[0].split("/"); } else { face0 = [trunk[0]]; }; if (trunk[1].indexOf("/") != -1){ face1 = trunk[1].split("/"); } else { face1 = [trunk[1]]; }; if (trunk[2].indexOf("/") != -1){ face2 = trunk[2].split("/"); } else { face2 = [trunk[2]]; }; try { if (((((face0[1]) && (face1[1]))) && (face2[1]))){ uvA = new NumberUV(UVs[(Number(face0[1]) - 1)].u, UVs[(Number(face0[1]) - 1)].v); uvB = new NumberUV(UVs[(Number(face1[1]) - 1)].u, UVs[(Number(face1[1]) - 1)].v); uvC = new NumberUV(UVs[(Number(face2[1]) - 1)].u, UVs[(Number(face2[1]) - 1)].v); face = new Face3D(mesh.vertices[(Number(face2[0]) - 1)], mesh.vertices[(Number(face1[0]) - 1)], mesh.vertices[(Number(face0[0]) - 1)], mat, uvC, uvB, uvA); mesh.faces.push(face); } else { face = new Face3D(mesh.vertices[(Number(face2[0]) - 1)], mesh.vertices[(Number(face1[0]) - 1)], mesh.vertices[(Number(face0[0]) - 1)], mat, null, null, null); mesh.faces.push(face); }; } catch(error:Error) { }; }; }; } catch(error:Error) { }; }; }; trace(("parsed obj file :" + mesh.faces.length)); } private function ioErrorHandler(_arg1:IOErrorEvent):void{ trace("---> ioError .obj file, probably not found"); } private function progressHandler(_arg1:ProgressEvent):void{ } public static function parse(_arg1:String, _arg2=null, _arg3:Object=null, _arg4:Number=1):Mesh3D{ var _local5:Obj; _local5 = new Obj(_arg1, Cast.material(_arg2), _arg3, _arg4); return (_local5.mesh); } } }//package away3d.loaders
Section 81
//FireMedusaEffect (effects.blinds.FireMedusaEffect) package effects.blinds { import synch.*; import flash.display.*; import flash.geom.*; public class FireMedusaEffect extends AbstractDemoEffect { private var particle:BitmapData; private var furs:Array; private var fCount:Number; private var rot:Number;// = 0 private var mat:Matrix; private var goalX:Number; private var stiff:Number;// = 0.8 private var joints:Number;// = 8 private var force:Number; private var goalY:Number; private var angStiff:Number;// = 50 private var jLength:Number;// = 20 private var g:Number;// = 0 private var ballX:Number; private var ballY:Number; private var counter:Number; public function FireMedusaEffect(){ mat = new Matrix(); furs = new Array(); jLength = 20; joints = 8; stiff = 0.8; angStiff = 50; g = 0; counter = int((Math.random() * 62040)); rot = 0; super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Array; var _local8:Number; var _local9:Object; _buffer = _arg1; this.fCount = _arg2.tentacleAmount; this.ballX = (this.goalX = _arg2.startX); this.ballY = (this.goalY = _arg2.startY); _local3 = 0; while (_local3 < fCount) { _local4 = ((((Math.PI * 2) + rot) / fCount) * _local3); _local5 = Math.cos(_local4); _local6 = Math.sin(_local4); _local7 = new Array(); _local8 = 1; while (_local8 <= joints) { _local9 = {x:(((_local5 * _local8) * jLength) + ballX), y:(((_local6 * _local8) * jLength) + ballY), i:0, j:0}; _local7.push(_local9); _local8++; }; furs.push(_local7); _local3++; }; this.particle = _arg2.texture; play(1000); } override public function play(_arg1:Number):void{ var _local2:Number; var _local3:Object; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Object; 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; counter = (counter + (_arg1 / 10)); goalX = (((((Math.cos((counter / 23)) * 200) + 400) + (Math.cos((counter / 32)) * 100)) + (Math.cos((counter / 49)) * 50)) + 200); goalY = (((Math.cos((counter / 17)) * 150) + (Math.cos((counter / 64)) * 75)) + 200); ballX = (ballX + ((goalX - ballX) / 12)); ballY = (ballY + ((goalY - ballY) / 12)); _local2 = 0; while (_local2 < fCount) { _local3 = furs[_local2]; _local4 = ballX; _local5 = ballY; _local6 = ((((Math.PI * 2) / fCount) * _local2) + rot); _local7 = 0; while (_local7 < _local3.length) { _local8 = _local3[_local7]; _local9 = _local8.x; _local10 = _local8.y; _local11 = (_local4 - _local9); _local12 = (_local5 - _local10); _local13 = Math.sqrt(((_local11 * _local11) + (_local12 * _local12))); _local14 = Math.atan2(_local12, _local11); if (_local13 > jLength){ force = ((0.5 * (_local13 - jLength)) * stiff); _local8.i = (_local8.i + (Math.cos(_local14) * force)); _local8.j = (_local8.j + (Math.sin(_local14) * force)); }; _local15 = (ballX + (Math.cos(_local6) * (jLength * _local7))); _local16 = (ballY + (Math.sin(_local6) * (jLength * _local7))); _local13 = Math.sqrt((((_local9 - _local15) * (_local9 - _local15)) + ((_local10 - _local16) * (_local10 - _local16)))); force = ((1 / _local13) * angStiff); _local8.i = (_local8.i + (Math.cos(_local6) * force)); _local8.j = (_local8.j + (Math.sin(_local6) * force)); _local8.j = (_local8.j * 0.6); _local8.i = (_local8.i * 0.6); _local8.x = (_local8.x + _local8.i); _local8.y = (_local8.y + _local8.j); _local17 = 0; while (_local17 < 5) { mat.a = 0.2; mat.d = 0.2; mat.tx = (_local4 + (((_local8.x - _local4) / 5) * _local17)); mat.ty = (_local5 + (((_local8.y - _local5) / 5) * _local17)); _buffer.draw(particle, mat, null, "screen"); _local17++; }; _local4 = _local8.x; _local5 = _local8.y; _local7++; }; _local2++; }; } } }//package effects.blinds
Section 82
//BParticlesEffect (effects.bparticles.BParticlesEffect) package effects.bparticles { import synch.*; import flash.display.*; import away3d.core.proto.*; import away3d.core.math.*; import away3d.dof.*; public class BParticlesEffect extends AbstractDemoEffect { private var cameraDummy1:ObjectContainer3D; public var scale:Number;// = 0.7 private var cameraDummy2:ObjectContainer3D; public var amount:int;// = 150 private var lastTime:int;// = 0 public var dofEngine:DofEngine; public var lookatPosition:Number3D; private var view:View3D; public var animateCamera:Boolean;// = false private var cnt:int;// = 0 private var particles:Array; public var emitter:Number3D; private var mesh:ObjectContainer3D; private var lines:Number;// = 4 public function BParticlesEffect(){ amount = 150; scale = 0.7; emitter = new Number3D(0, 0, 0); cnt = 0; lastTime = 0; lines = 4; animateCamera = false; lookatPosition = new Number3D(0, 0, (-(amount) * 0.5)); super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ var _local3:int; super.init(_arg1, _arg2); if (_arg2.amount){ amount = _arg2.amount; }; _local3 = 0; particles = new Array(); view = new View3D(); dofEngine = DofEngine.getDofEngine((_arg2.texture.getPixel32(64, 64).toString() + "bp"), 16, _arg2.texture, 20, 80); dofEngine.focus = 100; cameraDummy1 = new ObjectContainer3D(); view.scene.addChild(cameraDummy1); cameraDummy1.addChild(view.camera); view.renderer = new ParticleRenderer(_arg1); view.camera.position = new Number3D(0, 0, 20); view.camera.lookAt(new Number3D(0, 0, 0)); view.camera.focus = 20; view.camera.zoom = 10; view.x = 400; view.y = 200; play(0); } public function reset(_arg1:int, _arg2:Boolean, _arg3:Boolean):void{ var _local4:int; lines = _arg1; _local4 = 0; while (_local4 < particles.length) { view.scene.removeChild(particles[_local4]); particles.splice(_local4, 1); }; if (_arg2){ view.camera.position = new Number3D(0, 0, 0); }; this.animateCamera = _arg3; } override public function play(_arg1:Number):void{ var _local2:DofParticle; var _local3:int; var _local4:ObjectContainer3D; var _local5:Number; var _local6:Number; var _local7:int; lastTime = (lastTime + _arg1); cnt++; _local3 = 0; if (lastTime > 20){ while (lastTime > 0) { _local4 = new ObjectContainer3D(); _local3 = 0; while (_local3 < lines) { _local2 = new DofParticle(dofEngine, ((Math.sin((cnt * 0.08)) * 0.08) + 0.16)); _local2.blendMode = BlendMode.NORMAL; _local5 = Math.sin((_local3 * ((Math.PI * 2) / lines))); _local6 = Math.cos((_local3 * ((Math.PI * 2) / lines))); _local2.position = new Number3D((_local5 * 100), (_local6 * 100), 0); _local4.addChild(_local2); _local3++; }; _local4.rotationZ = (cnt * 6); _local4.position = new Number3D(0, 0, -(amount)); view.scene.addChild(_local4); particles.unshift(_local4); lastTime = (lastTime - _arg1); }; }; while (_local3 < particles.length) { _local4 = particles[_local3]; particles[_local3].z = (_local4.z + 5); _local7 = 0; while (_local7 < lines) { _local4.children[_local7].scaling = ((Math.sin(((cnt * 0.18) + (_local4.z * 0.2))) * 0.08) + 0.25); _local7++; }; if (_local4.z > 20){ view.scene.removeChild(_local4); particles.splice(_local3, 1); } else { _local3++; }; }; view.camera.rotationZ = (view.camera.rotationZ + 2); if (animateCamera){ view.camera.x = ((Math.sin((cnt * 0.23)) * amount) * scale); view.camera.y = ((Math.cos((cnt * 0.13)) * amount) * scale); }; view.camera.lookAt(lookatPosition); view.render(); } } }//package effects.bparticles
Section 83
//CircleParticles (effects.bparticles.CircleParticles) package effects.bparticles { import synch.*; import flash.display.*; import away3d.core.proto.*; import away3d.core.math.*; import away3d.dof.*; import away3d.core.geom.*; import flash.geom.*; public class CircleParticles extends AbstractDemoEffect { private var theta:Number; private var lastTime:int;// = 0 private var scale:Number;// = 1 private var speed:Number;// = 0.04 private var amount:int;// = 200 private var texture:BitmapData; private var dofEngine:DofEngine; private var circles:Array; private var view:View3D; private var height:Number; private var cnt:int;// = 0 private var scaleMatrix:Matrix; private var particles:Array; private var phi:Number;// = 0 private var nextVertex:Vertex3D; public function CircleParticles(){ amount = 200; cnt = 0; lastTime = 0; phi = 0; speed = 0.04; scale = 1; circles = new Array(8); theta = (-(Math.PI) * 2); nextVertex = new Vertex3D(); super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ var _local3:ParticleRenderer; var _local4:int; var _local5:ParticleMesh; super.init(_arg1, _arg2); if (_arg2.amount){ amount = _arg2.amount; }; texture = _arg2.texture; particles = new Array(); view = new View3D(); dofEngine = DofEngine.getDofEngine(texture.getPixel32(64, 64).toString(), 16, texture, 20, 80); dofEngine.focus = 50; _local3 = new ParticleRenderer(_buffer); view.renderer = _local3; view.camera.position = new Number3D(0, 0, 20); view.camera.lookAt(new Number3D(0, 0, 0)); view.camera.focus = 20; view.camera.zoom = 10; view.x = 400; view.y = 200; _local4 = 0; while (_local4 < circles.length) { trace("Create"); _local5 = new ParticleMesh(null, {dofEngine:dofEngine, scaling:0.005}); _local5.ppe = 3; view.scene.addChild(_local5); circles[_local4] = _local5; _local4++; }; } public function reset(_arg1:int, _arg2:int, _arg3:Number):void{ var _local4:int; var _local5:ParticleMesh; var _local6:Number; var _local7:Number; var _local8:int; _local4 = 0; while (_local4 < circles.length) { _local5 = circles[_local4]; _local5.clearSegments(); phi = 0; _local6 = (Math.cos(0) * (3 * (_local4 + 1))); _local7 = (Math.sin(0) * (3 * (_local4 + 1))); _local5.lastVertex = new Vertex3D(_local6, _local7, 0); trace(_local5.lastVertex); _local8 = 0; while (_local8 < 32) { phi = (((_local8 * 2) * Math.PI) / 32); nextVertex.x = (Math.cos(phi) * (3 * (_local4 + 1))); nextVertex.y = (Math.sin(phi) * (3 * (_local4 + 1))); nextVertex.z = 0; _local5.appendSegment(nextVertex, 5, BlendMode.NORMAL); _local8++; }; _local4++; }; } override public function play(_arg1:Number):void{ var _local2:ParticleMesh; var _local3:int; lastTime = (lastTime + _arg1); cnt++; phi = (phi + speed); view.render(); _local2 = circles[0]; _local3 = 1; while (_local3 < circles.length) { _local2 = circles[_local3]; _local2.rotationX = (_local2.rotationX - ((_local2.rotationX - circles[(_local3 - 1)].rotationX) / 3)); _local2.rotationY = (_local2.rotationY - ((_local2.rotationY - circles[(_local3 - 1)].rotationY) / 3)); _local2.rotationZ = (_local2.rotationZ - ((_local2.rotationZ - circles[(_local3 - 1)].rotationZ) / 3)); _local3++; }; _local2 = circles[0]; _local2.rotationX = (_local2.rotationX + ((_arg1 * 0.05) * (Math.cos((_arg1 * 0.025)) + 1))); _local2.rotationZ = (_local2.rotationZ + ((_arg1 * 0.08) * (Math.cos((_arg1 * 0.025)) + 1))); _local2.rotationY = (_local2.rotationY - ((_arg1 * 0.07) * (Math.cos((_arg1 * 0.025)) + 1))); } } }//package effects.bparticles
Section 84
//DofParticle (effects.bparticles.DofParticle) package effects.bparticles { import away3d.core.proto.*; import away3d.dof.*; import away3d.core.geom.*; import away3d.core.draw.*; import away3d.core.render.*; import flash.geom.*; public class DofParticle extends Object3D implements IPrimitiveProvider { public var scaling:Number; public var age:int; private var drawPrimitive:BitmapScaledBitmap; public var blendMode:String; private var dofEngine:DofEngine; private var center:Vertex3D; public var ct:ColorTransform; public function DofParticle(_arg1:DofEngine, _arg2:Number=1, _arg3:Object=null){ center = new Vertex3D(); ct = new ColorTransform(); super(_arg3); drawPrimitive = new BitmapScaledBitmap(null); drawPrimitive.ct = ct; this.scaling = _arg2; this.dofEngine = _arg1; } public function primitives(_arg1:Projection, _arg2:IPrimitiveConsumer):void{ var _local3:Vertex2D; var _local4:Number; _local3 = center.project(_arg1); _local4 = (_arg1.zoom / (1 + (_local3.z / _arg1.focus))); drawPrimitive.bitmap = dofEngine.getBitmap(_local3.z); drawPrimitive.rotation = this.rotationZ; drawPrimitive.update(_local3, (_local4 * scaling)); drawPrimitive.blendMode = blendMode; _arg2.primitive(drawPrimitive); } } }//package effects.bparticles
Section 85
//ParticleRenderer (effects.bparticles.ParticleRenderer) package effects.bparticles { import flash.display.*; import away3d.core.proto.*; import away3d.core.draw.*; import away3d.core.render.*; import flash.utils.*; public class ParticleRenderer implements IRenderer, IBitmapRenderer { private var bmpWidth:int; private var bmpOut:BitmapData; private var filters:Array; private var bmpHeight:int; private var clip:Clipping; public var info:String; private var bmpCX:int; private var bmpCY:int; public function ParticleRenderer(_arg1:BitmapData, ... _args){ bmpOut = _arg1; bmpWidth = _arg1.width; bmpHeight = _arg1.height; bmpCX = (bmpWidth / 2); bmpCY = (bmpHeight / 2); this.clip = new RectangleClipping(-(bmpCX), -(bmpCY), bmpCX, bmpCY); this.filters = _args; this.filters.push(new ZSortFilter()); } public function desc():String{ return ((("ParticleBitmapRenderer [" + filters.join("+")) + "]")); } public function render(_arg1:View3D):void{ var _local2:Scene3D; var _local3:Camera3D; var _local4:Sprite; var _local5:int; var _local6:PrimitiveArray; var _local7:PrimitiveTraverser; var _local8:Array; var _local9:IPrimitiveFilter; var _local10:IBitmapPrimitive; _local2 = _arg1.scene; _local3 = _arg1.camera; _local4 = _arg1.canvas; _local5 = getTimer(); info = ""; _local6 = new PrimitiveArray(clip, null); _local7 = new PrimitiveTraverser(_local6, null, _arg1); _local2.traverse(_local7); _local8 = _local6.list(); info = (info + ((getTimer() - _local5) + "ms ")); _local5 = getTimer(); for each (_local9 in filters) { _local8 = _local9.filter(_local8, _local2, _local3, _local4, clip); }; info = (info + ((getTimer() - _local5) + "ms ")); _local5 = getTimer(); for each (_local10 in _local8) { _local10.renderBitmap(bmpOut, bmpCX, bmpCY); }; info = (info + ((getTimer() - _local5) + "ms ")); _local5 = getTimer(); info = (info + _local8.length); } public function stats():String{ return (""); } } }//package effects.bparticles
Section 86
//ParticleTunnelEffect (effects.bparticles.ParticleTunnelEffect) package effects.bparticles { import synch.*; import flash.display.*; import away3d.core.proto.*; import away3d.core.math.*; import away3d.dof.*; public class ParticleTunnelEffect extends AbstractDemoEffect { private var params:Object; private var activeParts:Array; private var scene:Scene3D; private var texture:BitmapData; public var coloring:Boolean;// = true public var offsetX:Number; public var offsetY:Number; private var lastPart:int;// = 0 private var view:View3D; private var camera:Camera3D; public var cameraOffsetX:Number; public var cameraOffsetY:Number; private var rings:Array; private var hairEngine:DofEngine; public var speed:Number; public var scaleX:Number; public var scaleY:Number; public var cameraScaleX:Number; public var cameraScaleY:Number; private var amount:int; private var dofEngine:DofEngine; private var cnt:Number;// = 0 public var speedX:Number; public var speedY:Number; private var part:BitmapData; private var phi:Number;// = 0 private var rho:Number;// = 0 public function ParticleTunnelEffect(){ coloring = true; cnt = 0; phi = 0; rho = 0; lastPart = 0; activeParts = new Array(); super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ var _local3:int; var _local4:DofParticle; super.init(_arg1, _arg2); this.params = _arg2; amount = setParam("amount", 60); texture = setParam("texture", null); part = setParam("part", null); speed = setParam("speed", 0.6); offsetX = setParam("offsetX", 0); offsetY = setParam("offsetY", 1); speedX = setParam("speedX", 0.0025); speedY = setParam("speedY", 0.0035); scaleX = setParam("scaleX", 30); scaleY = setParam("scaleY", 30); cameraOffsetX = setParam("cameraOffsetX", (-4.6 / speed)); cameraOffsetY = setParam("cameraOffsetY", (0.95 / speed)); cameraScaleX = setParam("cameraScaleX", 0.8); cameraScaleY = setParam("cameraScaleY", 0.8); view = new View3D(); dofEngine = DofEngine.getDofEngine((texture.getPixel32(64, 64).toString() + "pt"), 16, texture, 150, 80); dofEngine.focus = 200; hairEngine = DofEngine.getDofEngine((part.getPixel32(64, 64).toString() + "pt"), 32, part, 20, 80); hairEngine.focus = 200; rings = new Array(amount); _local3 = 0; while (_local3 < amount) { _local4 = new DofParticle(dofEngine, (0.9 * (_buffer.width / 200))); _local4.position = new Number3D(0, 0, (200 - (_local3 * 10))); _local4.rotationZ = randRange(0, 360); _local4.blendMode = BlendMode.NORMAL; rings[_local3] = _local4; view.scene.addChild(_local4); trace(("Adding particle to:" + _local4.position)); _local3++; }; view.renderer = new ParticleRenderer(_buffer); view.camera.position = new Number3D(0, 0, 20); view.camera.lookAt(new Number3D(0, 0, 0)); view.camera.focus = 20; view.camera.zoom = 10; camera = view.camera; play(1000); } private function randRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number; _local3 = ((Math.random() * ((_arg2 - _arg1) + 1)) + _arg1); return (_local3); } override public function play(_arg1:Number):void{ var _local2:DofParticle; var _local3:int; cnt = (cnt + _arg1); phi = (phi + (_arg1 * speedX)); rho = (rho + (_arg1 * speedY)); lastPart = (lastPart + _arg1); if ((lastPart - (Math.random() * 10)) > 100){ lastPart = 0; _local2 = new DofParticle(hairEngine, 0.2); _local2.z = (_local2.z - (amount * 10)); _local2.x = (((Math.sin((phi + offsetX)) * scaleX) + (Math.random() * 40)) - 20); _local2.y = (((Math.sin((rho + offsetY)) * scaleY) + (Math.random() * 40)) - 20); _local2.rotationZ = randRange(0, 360); _local2.blendMode = BlendMode.SCREEN; view.scene.addChild(_local2); activeParts.push(_local2); }; _local3 = 0; while (_local3 < activeParts.length) { _local2 = activeParts[_local3]; _local2.z = (_local2.z + (speed * _arg1)); if (_local2.z > 0){ view.scene.removeChild(_local2); activeParts.splice(_local3, 1); } else { _local3++; }; }; _local3 = 0; while (_local3 < amount) { _local2 = rings[_local3]; _local2.z = (_local2.z + (speed * _arg1)); if (_local2.z > 0){ _local2.z = (_local2.z - (amount * 10)); _local2.x = (Math.sin((phi + offsetX)) * scaleX); _local2.y = (Math.sin((rho + offsetY)) * scaleY); _local2.scaling = ((Math.sin((cnt * 0.005)) * 0.2) + 0.8); _local2.rotationZ = (phi * 20); if (coloring){ _local2.ct.blueOffset = ((Math.sin((cnt * 0.002)) * 128) + 128); _local2.ct.redOffset = Math.max(((Math.sin((cnt * 0.003)) * Math.sin((cnt * 0.003))) * 128), 0); }; }; _local3++; }; rings.sortOn("z", (Array.NUMERIC | Array.DESCENDING)); camera.x = (((((rings[0].x * cameraScaleX) + (rings[1].x * cameraScaleX)) + (rings[2].x * cameraScaleX)) + (rings[3].x * cameraScaleX)) / 4); camera.y = (((((rings[0].y * cameraScaleY) + (rings[1].y * cameraScaleY)) + (rings[2].y * cameraScaleY)) + (rings[3].y * cameraScaleY)) / 4); camera.lookAt(new Number3D(0, 0, -200)); camera.rotationZ = (camera.rotationZ + phi); view.render(); } private function setParam(_arg1:String, _arg2){ if (params[_arg1] != null){ return (params[_arg1]); }; return (_arg2); } } }//package effects.bparticles
Section 87
//SuperMesh (effects.bparticles.SuperMesh) package effects.bparticles { import away3d.core.proto.*; import away3d.core.math.*; import away3d.core.geom.*; import away3d.core.material.*; import away3d.core.*; import flash.utils.*; public class SuperMesh extends Mesh3D { public var phi:Number; public var radius:Number;// = 100 public var segmentsH:int;// = 1 public var shape1:SuperShape; public var segmentsW:int;// = 1 public var shape2:SuperShape; public var theta:Number; public var points:Array; public function SuperMesh(_arg1:IMaterial=null, _arg2:Object=null){ var _local3:SuperShape; var _local4:SuperShape; radius = 100; segmentsW = 1; segmentsH = 1; shape1 = new SuperShape(6, 1, 1, 1); shape2 = new SuperShape(3, 1, 1, 1); super(_arg1, _arg2); _arg2 = Init.parse(_arg2); radius = _arg2.getNumber("radius", 10, {min:0}); segmentsW = _arg2.getInt("segmentsW", 8, {min:3}); segmentsH = _arg2.getInt("segmentsH", 8, {min:2}); _local3 = ((_arg2 as Init).getObject("shape1") as SuperShape); _local4 = ((_arg2 as Init).getObject("shape2") as SuperShape); if (_local3 != null){ this.shape1 = _local3; }; if (_local4 != null){ this.shape2 = _local4; }; buildSphere(radius); } public function recalcVertices():void{ var _local1:int; var _local2:int; var _local3:Array; var _local4:uint; var _local5:int; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Vertex3D; _local3 = []; _local4 = getTimer(); _local5 = 0; _local2 = 0; while (_local2 <= segmentsH) { _local6 = ((_local2 / segmentsH) * Math.PI); _local7 = (radius * Math.sin(_local6)); _local1 = 0; while (_local1 < segmentsW) { _local8 = ((((2 * Math.PI) * _local1) / segmentsW) - Math.PI); if ((((((0 < _local2)) && ((_local2 < segmentsH)))) || ((_local1 == 0)))){ _local9 = vertices[_local5]; calc(_local9, shape1, shape2, _local8, (_local6 - (Math.PI / 2))); _local5++; }; _local1++; }; _local2++; }; } private function calc(_arg1:Vertex3D, _arg2:SuperShape, _arg3:SuperShape, _arg4:Number, _arg5:Number):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; _local8 = (Math.cos(((_arg2.m * _arg4) / 4)) / _arg2.a); if (_local8 < 0){ _local8 = -(_local8); }; _local8 = Math.pow(_local8, _arg2.n2); _local9 = (Math.sin(((_arg2.m * _arg4) / 4)) / _arg2.b); if (_local9 < 0){ _local9 = -(_local9); }; _local9 = Math.pow(_local9, _arg2.n3); _local6 = Math.pow((_local8 + _local9), (1 / _arg2.n1)); _local6 = (1 / _local6); _local8 = (Math.cos(((_arg3.m * _arg5) / 4)) / _arg3.a); if (_local8 < 0){ _local8 = -(_local8); }; _local8 = Math.pow(_local8, _arg3.n2); _local9 = (Math.sin(((_arg3.m * _arg5) / 4)) / _arg3.b); if (_local9 < 0){ _local9 = -(_local9); }; _local9 = Math.pow(_local9, _arg3.n3); _local7 = Math.pow((_local8 + _local9), (1 / _arg3.n1)); _local7 = (1 / _local7); _local10 = ((((_local6 * Math.cos(_arg4)) * _local7) * Math.cos(_arg5)) * radius); _local11 = ((((_local6 * Math.sin(_arg4)) * _local7) * Math.cos(_arg5)) * radius); _local12 = ((_local7 * Math.sin(_arg5)) * radius); _arg1.x = _local10; _arg1.y = _local11; _arg1.z = _local12; } private function buildSphere(_arg1:Number):void{ var _local2:int; var _local3:int; var _local4:Array; var _local5:uint; var _local6:Number; var _local7:Number; var _local8:Array; var _local9:Vertex3D; var _local10:Number; var _local11:Vertex3D; var _local12:Vertex3D; var _local13:Vertex3D; var _local14:Vertex3D; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:NumberUV; var _local20:NumberUV; var _local21:NumberUV; var _local22:NumberUV; _local4 = []; _local5 = getTimer(); _local3 = 0; while (_local3 <= segmentsH) { _local6 = ((_local3 / segmentsH) * Math.PI); _local7 = (_arg1 * Math.sin(_local6)); _local8 = []; _local2 = 0; while (_local2 < segmentsW) { _local10 = ((((2 * Math.PI) * _local2) / segmentsW) - Math.PI); if ((((((0 < _local3)) && ((_local3 < segmentsH)))) || ((_local2 == 0)))){ _local9 = new Vertex3D(); calc(_local9, shape1, shape2, _local10, (_local6 - (Math.PI / 2))); addVertex3D(_local9); }; _local8.push(_local9); _local2++; }; _local4.push(_local8); _local3++; }; _local3 = 1; while (_local3 <= segmentsH) { _local2 = 0; while (_local2 < segmentsW) { _local11 = _local4[_local3][_local2]; _local12 = _local4[_local3][(((_local2 - 1) + segmentsW) % segmentsW)]; _local13 = _local4[(_local3 - 1)][(((_local2 - 1) + segmentsW) % segmentsW)]; _local14 = _local4[(_local3 - 1)][_local2]; _local15 = (_local3 / (segmentsH + 1)); _local16 = ((_local3 - 1) / (segmentsH + 1)); _local17 = ((_local2 + 1) / segmentsW); _local18 = (_local2 / segmentsW); _local19 = new NumberUV(_local17, _local15); _local20 = new NumberUV(_local18, _local15); _local21 = new NumberUV(_local18, _local16); _local22 = new NumberUV(_local17, _local16); if (_local3 < segmentsH){ addFace3D(new Face3D(_local11, _local12, _local13, null, _local19, _local20, _local21)); }; if (_local3 > 1){ addFace3D(new Face3D(_local11, _local13, _local14, null, _local19, _local21, _local22)); }; _local2++; }; _local3++; }; } } }//package effects.bparticles
Section 88
//SuperShape (effects.bparticles.SuperShape) package effects.bparticles { public class SuperShape { public var a:Number; public var n1:Number; public var n2:Number; public var n3:Number; public var b:Number; public var m:Number; public function SuperShape(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1, _arg6:Number=1){ this.m = _arg1; this.n1 = _arg2; this.n2 = _arg3; this.n3 = _arg4; this.a = _arg5; this.b = _arg6; } } }//package effects.bparticles
Section 89
//SuperShapeEffect (effects.bparticles.SuperShapeEffect) package effects.bparticles { import synch.*; import flash.display.*; import away3d.core.proto.*; import away3d.core.math.*; import away3d.dof.*; import away3d.core.geom.*; import away3d.core.render.*; import away3d.core.material.*; import flash.geom.*; public class SuperShapeEffect extends AbstractDemoEffect { private var lastTime:int;// = 0 public var ratio:Number;// = 0 private var texture:BitmapData; private var view:View3D; private var particles:Array; private var height:Number; public var shape1a:SuperShape; public var shape1b:SuperShape; public var shape1:SuperShape; public var shape2:SuperShape; public var speed:Number;// = 0.04 private var P:Number;// = 5 private var Q:Number;// = 8 public var shape2a:SuperShape; private var amount:int;// = 200 public var light1:Light3D; private var dofEngine:DofEngine; public var light2:Light3D; public var mat:Matrix; public var light3:Light3D; private var mesh:SuperMesh; public var emitter:Number3D; private var cnt:int;// = 0 public var shape2b:SuperShape; private var nextVertex:Vertex3D; private var phi:Number;// = 0 public function SuperShapeEffect(){ amount = 200; emitter = new Number3D(0, 0, 0); cnt = 0; lastTime = 0; phi = 0; P = 5; Q = 8; speed = 0.04; shape1 = new SuperShape(1, 1, 1, 1); shape2 = new SuperShape(1, 1, 1, 1); shape1a = new SuperShape(4, 100, 100, 100); shape2a = new SuperShape(4, 100, 100, 100); shape1b = new SuperShape(0, 1, 1, 1); shape2b = new SuperShape(0, 1, 1, 1); ratio = 0; nextVertex = new Vertex3D(); super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:Number; super.init(_arg1, _arg2); if (_arg2.amount){ amount = _arg2.amount; }; _local3 = 0; particles = new Array(); view = new View3D(); view.renderer = Renderer.BASIC; view.camera.position = new Number3D(0, 0, 100); view.camera.lookAt(new Number3D(0, 0, 0)); view.camera.focus = 20; view.camera.zoom = 10; light1 = new Light3D(10535167, 0.5, 0.7, 1); light2 = new Light3D(16756896, 0.5, 0.7, 1); light3 = new Light3D(7405504, 0.5, 0.7, 1); light1.position = new Number3D(500, 500, 500); light2.position = new Number3D(-500, 500, 500); light3.position = new Number3D(300, -500, 500); view.scene.addChild(light1); view.scene.addChild(light2); view.scene.addChild(light3); mat = new Matrix(); mat.tx = (_buffer.width / 2); mat.ty = (_buffer.height / 2); _local4 = 20; _local5 = 20; _local6 = 20; if (_arg2.segmentsW != null){ _local4 = _arg2.segmentsW; }; if (_arg2.segmentsH != null){ _local5 = _arg2.segmentsH; }; if (_arg2.radius != null){ _local6 = _arg2.radius; }; mesh = new SuperMesh(new ShadingColorMaterial(), {shape1:shape1, shape2:shape2, radius:_local6, segmentsW:_local4, segmentsH:_local5}); mesh.inverseFaces(); view.scene.addChild(mesh); } override public function play(_arg1:Number):void{ lastTime = (lastTime + _arg1); cnt++; view.render(); ratio = (ratio + speed); if (ratio >= 1){ ratio = 1; speed = -(speed); }; if (ratio <= 0){ ratio = 0; speed = -(speed); }; setShapes(ratio); mesh.recalcVertices(); mesh.rotationX = (mesh.rotationX + (_arg1 * 0.043)); mesh.rotationZ = (mesh.rotationZ + (_arg1 * 0.0376)); _buffer.draw(view, mat); } private function calc(_arg1:SuperShape, _arg2:SuperShape, _arg3:Number, _arg4:Number):void{ var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; _local7 = (Math.cos(((_arg1.m * _arg3) / 4)) / _arg1.a); if (_local7 < 0){ _local7 = -(_local7); }; _local7 = Math.pow(_local7, _arg1.n2); _local8 = (Math.sin(((_arg1.m * _arg3) / 4)) / _arg1.b); if (_local8 < 0){ _local8 = -(_local8); }; _local8 = Math.pow(_local8, _arg1.n3); _local5 = Math.pow((_local7 + _local8), (1 / _arg1.n1)); _local5 = (1 / _local5); _local7 = (Math.cos(((_arg2.m * _arg4) / 4)) / _arg2.a); if (_local7 < 0){ _local7 = -(_local7); }; _local7 = Math.pow(_local7, _arg2.n2); _local8 = (Math.sin(((_arg2.m * _arg4) / 4)) / _arg2.b); if (_local8 < 0){ _local8 = -(_local8); }; _local8 = Math.pow(_local8, _arg2.n3); _local6 = Math.pow((_local7 + _local8), (1 / _arg2.n1)); _local6 = (1 / _local6); _local9 = ((((_local5 * Math.cos(_arg3)) * _local6) * Math.cos(_arg4)) * 10); _local10 = ((((_local5 * Math.sin(_arg3)) * _local6) * Math.cos(_arg4)) * 10); _local11 = ((_local6 * Math.sin(_arg4)) * 10); nextVertex.x = _local9; nextVertex.y = _local10; nextVertex.z = _local11; } public function setShapes(_arg1:Number):void{ shape1.m = ((shape1a.m * (1 - _arg1)) + (shape1b.m * _arg1)); shape1.n1 = ((shape1a.n1 * (1 - _arg1)) + (shape1b.n1 * _arg1)); shape1.n2 = ((shape1a.n2 * (1 - _arg1)) + (shape1b.n2 * _arg1)); shape1.n3 = ((shape1a.n3 * (1 - _arg1)) + (shape1b.n3 * _arg1)); shape1.a = ((shape1a.a * (1 - _arg1)) + (shape1b.a * _arg1)); shape1.b = ((shape1a.b * (1 - _arg1)) + (shape1b.b * _arg1)); shape2.m = ((shape2a.m * (1 - _arg1)) + (shape2b.m * _arg1)); shape2.n1 = ((shape2a.n1 * (1 - _arg1)) + (shape2b.n1 * _arg1)); shape2.n2 = ((shape2a.n2 * (1 - _arg1)) + (shape2b.n2 * _arg1)); shape2.n3 = ((shape2a.n3 * (1 - _arg1)) + (shape2b.n3 * _arg1)); shape2.a = ((shape2a.a * (1 - _arg1)) + (shape2b.a * _arg1)); shape2.b = ((shape2a.b * (1 - _arg1)) + (shape2b.b * _arg1)); } } }//package effects.bparticles
Section 90
//TorusKnotEffect (effects.bparticles.TorusKnotEffect) package effects.bparticles { import synch.*; import flash.display.*; import away3d.core.proto.*; import away3d.core.math.*; import away3d.dof.*; import away3d.core.geom.*; import flash.geom.*; public class TorusKnotEffect extends AbstractDemoEffect { private var theta:Number; private var lastTime:int;// = 0 private var Q:Number;// = 8 public var grow:Boolean;// = false private var speed:Number;// = 0.04 private var amount:int;// = 200 private var scale:Number;// = 1 private var texture:BitmapData; private var dofEngine:DofEngine; private var view:View3D; private var height:Number; private var P:Number;// = 5 private var cnt:int;// = 0 private var scaleMatrix:Matrix; private var mesh:ParticleMesh; private var phi:Number;// = 0 private var nextVertex:Vertex3D; private var particles:Array; public function TorusKnotEffect(){ amount = 200; cnt = 0; lastTime = 0; phi = 0; P = 5; Q = 8; speed = 0.04; grow = false; scale = 1; theta = (-(Math.PI) * 2); nextVertex = new Vertex3D(); super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ var _local3:int; var _local4:ParticleRenderer; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; super.init(_arg1, _arg2); if (_arg2.amount){ amount = _arg2.amount; }; texture = _arg2.texture; _local3 = 0; particles = new Array(); view = new View3D(); dofEngine = DofEngine.getDofEngine(texture.getPixel32(64, 64).toString(), 16, texture, 20, 80); dofEngine.focus = 50; _local4 = new ParticleRenderer(_buffer); view.renderer = _local4; view.camera.position = new Number3D(0, 0, 20); view.camera.lookAt(new Number3D(0, 0, 0)); view.camera.focus = 20; view.camera.zoom = 10; view.x = 400; view.y = 200; mesh = new ParticleMesh(null, {dofEngine:dofEngine, scaling:0.005}); mesh.ppe = 4; _local5 = (0.5 * (2 + Math.sin((Q * 0)))); _local6 = ((_local5 * Math.cos((P * 0))) * 10); _local7 = ((_local5 * Math.cos((Q * 0))) * 10); _local8 = ((_local5 * Math.sin((P * 0))) * 10); mesh.lastVertex = new Vertex3D(_local6, _local7, _local8); view.scene.addChild(mesh); } public function reset(_arg1:int, _arg2:int, _arg3:Number):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:int; this.P = _arg1; this.Q = _arg2; mesh.clearSegments(); phi = 0; _local4 = (0.5 * (2 + Math.sin((_arg2 * 0)))); _local5 = ((_local4 * Math.cos((_arg1 * 0))) * 10); _local6 = ((_local4 * Math.cos((_arg2 * 0))) * 10); _local7 = ((_local4 * Math.sin((_arg1 * 0))) * 10); mesh.lastVertex = new Vertex3D(_local5, _local6, _local7); if (grow){ phi = 0; return; }; _local8 = 0; while (_local8 <= 127) { phi = (((_local8 * 2) * Math.PI) / 127); _local4 = (0.5 * (2 + Math.sin((_arg2 * phi)))); nextVertex.x = ((_local4 * Math.cos((_arg1 * phi))) * 10); nextVertex.y = ((_local4 * Math.cos((_arg2 * phi))) * 10); nextVertex.z = ((_local4 * Math.sin((_arg1 * phi))) * 10); mesh.appendSegment(nextVertex, ((Math.sin((phi * 16)) * 3) + 9), BlendMode.NORMAL); _local8++; }; mesh.rotationX = (Math.random() * 360); mesh.rotationY = (Math.random() * 360); mesh.rotationZ = (Math.random() * 360); } override public function play(_arg1:Number):void{ var _local2:Number; lastTime = (lastTime + _arg1); cnt++; phi = (phi + speed); mesh.r = (mesh.r + (_arg1 * 0.003)); if ((((phi < (Math.PI * 2))) && (grow))){ _local2 = (0.5 * (2 + Math.sin((Q * phi)))); nextVertex.x = ((_local2 * Math.cos((P * phi))) * 10); nextVertex.y = ((_local2 * Math.cos((Q * phi))) * 10); nextVertex.z = ((_local2 * Math.sin((P * phi))) * 10); if ((cnt % 8) > 3){ mesh.appendSegment(nextVertex, (Math.sin((phi * 10)) + 2), BlendMode.MULTIPLY); } else { mesh.appendSegment(nextVertex, ((Math.sin((phi * 10)) * 1.5) + 3), BlendMode.NORMAL); }; }; view.render(); mesh.rotationX = (mesh.rotationX + (_arg1 * 0.05)); mesh.rotationZ = (mesh.rotationZ + (_arg1 * 0.08)); mesh.rotationY = (mesh.rotationY - (_arg1 * 0.07)); } } }//package effects.bparticles
Section 91
//WireParticlesEffect (effects.bparticles.WireParticlesEffect) package effects.bparticles { import synch.*; import flash.display.*; import away3d.core.proto.*; import away3d.core.math.*; import away3d.dof.*; public class WireParticlesEffect extends AbstractDemoEffect { private var lastTime:int;// = 0 private var amount:int;// = 200 private var dofEngine:DofEngine; private var view:View3D; private var cnt:int;// = 0 private var mesh:ObjectContainer3D; public var emitter:Number3D; private var particles:Array; public function WireParticlesEffect(){ amount = 200; emitter = new Number3D(0, 0, 0); cnt = 0; lastTime = 0; super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ var _local3:int; super.init(_arg1, _arg2); if (_arg2.amount){ amount = _arg2.amount; }; _local3 = 0; particles = new Array(); view = new View3D(); dofEngine = DofEngine.getDofEngine((_arg2.texture.bitmapData.getPixel(64, 64).toString() + "wp"), 32, _arg2.texture.bitmapData, 10, 80); dofEngine.focus = 50; mesh = new WireParticleBall(dofEngine, 0.02); view.scene.addChild(mesh); mesh.position = new Number3D(0, 0, 0); view.renderer = new ParticleRenderer(_buffer); view.camera.position = new Number3D(0, 0, 20); view.camera.lookAt(new Number3D(0, 0, 0)); view.camera.focus = 20; view.camera.zoom = 10; view.x = 400; view.y = 200; } override public function play(_arg1:Number):void{ lastTime = (lastTime + _arg1); mesh.rotationZ = (mesh.rotationZ + 2); mesh.rotationY = (mesh.rotationY + 2); view.render(); } } }//package effects.bparticles import away3d.core.proto.*; import away3d.dof.*; import away3d.core.geom.*; import away3d.loaders.*; class models { public static var GeoballModel:Class = models_GeoballModel; private function models(){ } } class WireParticleBall extends ObjectContainer3D { private var mesh:ParticleMesh; private function WireParticleBall(_arg1:DofEngine, _arg2:Number){ mesh = (Obj.parse(new models.GeoballModel(), null, {particleMesh:true, dofEngine:_arg1, scaling:_arg2}, 20) as ParticleMesh); mesh.ppe = 4; mesh.setupSegments(); addChild(mesh); } }
Section 92
//ParticleCube (effects.cubes.ParticleCube) package effects.cubes { import synch.*; import flash.display.*; import flash.geom.*; import flash.utils.*; public class ParticleCube extends AbstractDemoEffect { private var ct:ColorTransform; private var width:int; private var trPoints:Array; private var cameraPers:Number;// = 35 private var scale:Number;// = 15 private var theta:Number;// = -0.7 private var points:Array; private var height:int; private var particle:BitmapData; private var cameraDist:Number;// = 45 private var cubeRadius:Number; private var mat:Matrix; private var phi:Number;// = 0.7 private var rhocnt:Number;// = 0 private var faces:Array; public var ppr:int;// = 16 private var rho:Number;// = -0.7 public function ParticleCube(){ theta = -0.7; phi = 0.7; rho = -0.7; cameraDist = 45; cameraPers = 35; scale = 15; ppr = 16; rhocnt = 0; super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ super.init(_arg1, _arg2); width = _arg1.width; height = _arg1.height; cubeRadius = _arg2.cubeRadius; particle = _arg2.particle; points = new Array(8); points[0] = new Vertex(cubeRadius, cubeRadius, cubeRadius); points[1] = new Vertex(-(cubeRadius), cubeRadius, cubeRadius); points[2] = new Vertex(-(cubeRadius), -(cubeRadius), cubeRadius); points[3] = new Vertex(cubeRadius, -(cubeRadius), cubeRadius); points[4] = new Vertex(cubeRadius, -(cubeRadius), -(cubeRadius)); points[5] = new Vertex(-(cubeRadius), -(cubeRadius), -(cubeRadius)); points[6] = new Vertex(-(cubeRadius), cubeRadius, -(cubeRadius)); points[7] = new Vertex(cubeRadius, cubeRadius, -(cubeRadius)); faces = new Array(6); faces[0] = [0, 1, 2, 3, 0]; faces[1] = [4, 5, 6, 7, 0]; faces[2] = [0, 3, 4, 7, 0]; faces[3] = [1, 6, 5, 2, 0]; faces[4] = [3, 2, 5, 4, 0]; faces[5] = [6, 1, 0, 7, 0]; ct = new ColorTransform(); mat = new Matrix(); } private function project():void{ var _local1:Number; var _local2:int; var _local3:Vertex; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Array; var _local9:Object; var _local10:Object; var _local11:Object; 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; _local2 = 0; while (_local2 < 8) { _local3 = trPoints[_local2]; _local4 = _local3.x; _local5 = _local3.y; _local6 = _local3.z; _local6 = (_local6 + cameraDist); _local7 = 0; if (_local6 == 0){ _local1 = 1; } else { _local1 = (cameraPers / (cameraPers - _local6)); }; _local4 = (((_local4 * _local1) * scale) + (width / 2)); _local5 = (((_local5 * _local1) * scale) + (height / 2)); _local3.x = _local4; _local3.y = _local5; _local3.z = _local6; _local2++; }; _local2 = 0; while (_local2 < faces.length) { _local8 = faces[_local2]; _local9 = trPoints[_local8[0]]; _local10 = trPoints[_local8[1]]; _local11 = trPoints[_local8[2]]; _local12 = _local9.x; _local13 = _local9.y; _local14 = _local9.z; _local15 = _local10.x; _local16 = _local10.y; _local17 = _local10.z; _local18 = _local11.x; _local19 = _local11.y; _local20 = _local11.z; _local21 = (_local18 - _local12); _local22 = (_local19 - _local13); _local23 = (_local20 - _local14); _local24 = (_local15 - _local12); _local25 = (_local16 - _local13); _local26 = (_local17 - _local14); _local27 = ((_local21 * _local25) - (_local22 * _local24)); _local8["d"] = (_local27 > -1000); _local2++; }; } public function rotate(_arg1:Number, _arg2:Number, _arg3:Number):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:int; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); _local6 = Math.cos(_arg2); _local7 = Math.sin(_arg2); _local8 = Math.cos(_arg3); _local9 = Math.sin(_arg3); _local10 = 0; while (_local10 < 8) { _local11 = Vertex(points[_local10]).x; _local12 = Vertex(points[_local10]).y; _local13 = Vertex(points[_local10]).z; _local15 = ((_local12 * _local4) - (_local13 * _local5)); _local16 = ((_local12 * _local5) + (_local13 * _local4)); _local12 = _local15; _local13 = _local16; _local16 = ((_local13 * _local6) - (_local11 * _local7)); _local14 = ((_local13 * _local7) + (_local11 * _local6)); _local11 = _local14; _local14 = ((_local11 * _local8) - (_local12 * _local9)); _local15 = ((_local11 * _local9) + (_local12 * _local8)); trPoints.push(new Vertex(_local14, _local15, _local16)); _local10++; }; } private function render():void{ var _local1:int; var _local2:int; var _local3:Array; var _local4:Vertex; var _local5:Vertex; var _local6:Vertex; var _local7:Vertex; 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; _local1 = faces.length; _local2 = 0; while (_local2 < _local1) { _local3 = faces[_local2]; _local4 = trPoints[_local3[0]]; _local5 = trPoints[_local3[1]]; _local6 = trPoints[_local3[2]]; _local7 = trPoints[_local3[3]]; faces[_local2]["z"] = (((_local4.z + _local5.z) + _local6.z) + (_local7.z / 4)); _local2++; }; faces.sortOn("z", Array.NUMERIC); _local2 = 0; while (_local2 < _local1) { _local3 = faces[_local2]; if (!_local3["d"]){ } else { _local4 = trPoints[_local3[0]]; _local5 = trPoints[_local3[1]]; _local6 = trPoints[_local3[2]]; _local7 = trPoints[_local3[3]]; _local8 = ((_local7.y - _local4.y) * (1 / ppr)); _local9 = ((_local6.y - _local5.y) * (1 / ppr)); _local10 = ((_local7.x - _local4.x) * (1 / ppr)); _local11 = ((_local6.x - _local5.x) * (1 / ppr)); _local12 = ((_local7.z - _local4.z) * (1 / ppr)); _local13 = ((_local6.z - _local5.z) * (1 / ppr)); _local14 = 0; while (_local14 < (ppr + 1)) { _local15 = ((_local8 * _local14) + _local4.y); _local16 = ((_local9 * _local14) + _local5.y); _local17 = ((_local10 * _local14) + _local4.x); _local18 = ((_local11 * _local14) + _local5.x); _local19 = ((_local12 * _local14) + _local4.z); _local20 = ((_local13 * _local14) + _local5.z); _local21 = ((_local18 - _local17) * (1 / ppr)); _local22 = ((_local16 - _local15) * (1 / ppr)); _local23 = ((_local20 - _local19) * (1 / ppr)); _local24 = 0; while (_local24 < (ppr + 1)) { mat.tx = (mat.ty = (-(particle.width) / 2)); _local25 = ((_local23 * _local24) + _local19); _local26 = (((cubeRadius + _local25) - cameraDist) * 0.1); mat.tx = (int((((_local21 * _local24) + _local17) / 10)) * 10); mat.ty = (int((((_local22 * _local24) + _local15) / 10)) * 10); mat.a = (mat.d = ((((((_local21 * _local24) + _local17) % 10) + (((_local22 * _local24) + _local15) % 10)) / 2) * 0.08)); mat.tx = (mat.tx + (7.5 - (7.5 * mat.a))); mat.ty = (mat.ty + (7.5 - (7.5 * mat.a))); ct.redMultiplier = (mat.ty / 200); ct.blueMultiplier = (mat.tx / 400); ct.greenMultiplier = 0.9; _buffer.draw(particle, mat, ct, "add"); _local24++; }; _local14++; }; }; _local2++; }; } override public function play(_arg1:Number):void{ trPoints = new Array(); theta = (theta + (0.0015 * _arg1)); phi = (phi + (0.0008 * _arg1)); rhocnt = (rhocnt + (0.0007 * _arg1)); rho = Math.cos(rhocnt); rotate(theta, phi, rho); project(); render(); } } }//package effects.cubes
Section 93
//Vertex (effects.cubes.Vertex) package effects.cubes { public class Vertex { public var u:Number; public var v:Number; public var x:Number; public var y:Number; public var z:Number; public function Vertex(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } } }//package effects.cubes
Section 94
//DiscoTilesEffect (effects.discotiles.DiscoTilesEffect) package effects.discotiles { import synch.*; import flash.display.*; import flash.geom.*; public class DiscoTilesEffect extends AbstractDemoEffect { private var tw:Number;// = 8 private var tileProps:Array; private var base:Matrix; private var th:Number;// = 6 private var point:Point; private var base2:Matrix; private var tileSize:int;// = 128 private var rect:Rectangle; private var lightMap:BitmapData; public var fadeSpeed:Number;// = 10 private var tmat:Matrix; private var ct:ColorTransform; private var colorMap:BitmapData; private var tileMask:BitmapData; private var counter:Number;// = 0 private var tct:ColorTransform; public function DiscoTilesEffect(){ rect = new Rectangle(0, 0, 128, 128); point = new Point(0, 0); tw = 8; th = 6; fadeSpeed = 10; counter = 0; tileSize = 128; ct = new ColorTransform(1, 1, 1, 0, 0, 0, 0, 0); tmat = new Matrix(); base = new Matrix(); base2 = new Matrix(); tct = new ColorTransform(); tileProps = new Array(); super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ var _local3:int; var _local4:uint; var _local5:uint; var _local6:Object; super.init(_arg1, _arg2); tw = _arg2.tilew; th = _arg2.tileh; tileSize = _arg2.tileSize; tileMask = _arg2.tilemask; lightMap = _arg2.colormap; _local3 = 0; _local4 = 0; while (_local4 < th) { _local5 = 0; while (_local5 < tw) { _local6 = new Object(); _local6.x = (((_local5 * tileSize) / (0x0100 / tileSize)) + _arg2.xoffset); if ((_local4 % 2) == 0){ _local6.x = (_local6.x + (tileSize / (0x0100 / tileSize))); }; _local6.y = (((_local4 * tileSize) / (128 / tileSize)) + _arg2.yoffset); _local6.scaleX = (tileSize / tileMask.width); _local6.fadeDir = int((Math.random() * 1)); _local6.fadePos = int((Math.random() * 0xFF)); tileProps.push(_local6); _local5++; }; _local4++; }; base.identity(); base.scale((tileSize / tileMask.width), (tileSize / tileMask.height)); base2.identity(); base2.scale((tileSize / tileMask.width), (tileSize / tileMask.height)); base2.translate(-((tileSize >> 1)), -((tileSize >> 1))); base2.rotate(Math.PI); base2.translate((tileSize / 2), (tileSize / 2)); } override public function play(_arg1:Number):void{ var _local2:Number; var _local3:Number; var _local4:Matrix; var _local5:uint; var _local6:uint; var _local7:Object; var _local8:Number; var _local9:int; counter++; _local2 = (64 + (32 * Math.sin((counter * 0.025)))); _local3 = (64 + (32 * Math.cos(((counter * 0.025) + 0.543)))); _local5 = 0; while (_local5 < th) { _local6 = 0; while (_local6 < tw) { tmat.identity(); _local4 = base; _local7 = tileProps[(_local6 + (_local5 * tw))]; _local8 = (_local7.fadePos / 0x0100); ct.alphaMultiplier = _local8; if ((_local6 % 2) == 0){ _local4 = base2; }; _local9 = lightMap.getPixel((_local2 + _local6), (_local3 + _local5)); ct.redMultiplier = (((_local9 >> 16) & 0xFF) / 0xFF); ct.greenMultiplier = (((_local9 >> 8) & 0xFF) / 0xFF); ct.blueMultiplier = ((_local9 & 0xFF) / 0xFF); if (_local7.fadeDir == 0){ _local7.fadePos = (_local7.fadePos - fadeSpeed); if (_local7.fadePos <= 90){ _local7.fadeDir = 1; }; } else { if (_local7.fadeDir == 1){ _local7.fadePos = (_local7.fadePos + fadeSpeed); if (_local7.fadePos >= 0xFF){ _local7.fadeDir = 0; }; }; }; tmat.concat(_local4); tmat.scale(_local7.scaleX, _local7.scaleX); tmat.translate(_local7.x, _local7.y); _buffer.draw(tileMask, tmat, ct, "add"); _local6++; }; _local5++; }; } } }//package effects.discotiles
Section 95
//DistortEffect (effects.fire.DistortEffect) package effects.fire { import synch.*; import flash.display.*; import flash.media.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; public class DistortEffect extends AbstractPostProcessor { private var width:Number; public var scaleX:Number;// = 0 private var blendMode:String; public var rotate:Number;// = 0 private var mat:Matrix; private var bytes:ByteArray; private var height:Number; private var displMap:BitmapData; private var filter:DisplacementMapFilter; private var point:Point; public function DistortEffect(){ mat = new Matrix(); point = new Point(0, 0); scaleX = 0; rotate = 0; bytes = new ByteArray(); super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ if (_arg2.short){ _input = _arg1; }; if (_arg2.transparent){ _input = new BitmapData(_arg1.width, _arg1.height, true, 0); }; if (_arg2.blendMode){ blendMode = _arg2.blendMode; trace(("Setting blendmode:" + blendMode)); }; super.init(_arg1, _arg2); width = _input.width; height = _input.height; displMap = new BitmapData(width, height, false, 0); filter = new DisplacementMapFilter(displMap, point, BitmapDataChannel.BLUE, 0, scaleX, 0, DisplacementMapFilterMode.WRAP, 0, 0); } override public function play(_arg1:Number):void{ var _local2:int; var _local3:Number; var _local4:Rectangle; var _local5:Number; var _local6:Number; if (scaleX != filter.scaleX){ filter.scaleX = scaleX; }; if (_input != buffer){ trace("Clearing, this is not the buffer"); _input.lock(); _input.fillRect(_input.rect, 0); super.play(_arg1); _input.unlock(); }; SoundMixer.computeSpectrum(bytes, false, 2); _local2 = 0; _local4 = new Rectangle(0, 0, width, (height / 128)); _local5 = 0; while (_local2 < 128) { _local6 = bytes.readFloat(); if (_local2 == 0){ _local3 = _local6; } else { _local3 = (_local3 + ((_local6 - _local3) / 8)); }; _local6 = ((_local3 * 240) - 128); _local2++; _local4.y = _local5; displMap.fillRect(_local4, _local6); _local5 = (_local5 + (height / 128)); }; _input.applyFilter(_input, _input.rect, point, filter); if (_input == buffer){ return; }; buffer.lock(); buffer.draw(_input); buffer.unlock(); } } }//package effects.fire
Section 96
//GreetingsPlayer (effects.greets.GreetingsPlayer) package effects.greets { import synch.*; import flash.display.*; import flash.text.*; import effects.*; public class GreetingsPlayer extends AbstractDemoEffect { private var baseCnt:Sprite; private var greets:Array; private var fmt:TextFormat; private var cnt:int; public function GreetingsPlayer(){ fmt = new TextFormat("D3Curve", 160, 4210709, true); greets = ["Bombsquad", "MFX", "Kewlers", "Lume", "Fairlight", "Matt Current", "Traction", "Aspekt", "Farbrausch", "Minority", "Jumalauta", "Accession", "Pyrotech", "tAAt", "Hedelmae", "#flash.fi"]; super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ trace("Greeings player init"); super.init(_arg1, _arg2); baseCnt = new Sprite(); } public function next():void{ var _local1:TextRender; var _local2:Tweener; if (cnt >= greets.length){ return; }; trace(("next:" + greets[cnt])); _local1 = new TextRender((greets[cnt] as String).toUpperCase(), fmt, 2); _local1.blendMode = BlendMode.NORMAL; _local2 = new Tweener(_local1, int((400 - (_local1.width / 2))), 70, int((400 - (_local1.width / 2))), 500, false, true, 4000); _local1.alpha = 1; cnt++; baseCnt.addChild(_local1); } override public function play(_arg1:Number):void{ var _local2:int; var _local3:DisplayObject; _buffer.draw(baseCnt); _local2 = 0; while (_local2 < baseCnt.numChildren) { _local3 = baseCnt.getChildAt(_local2); _local3.alpha = (_local3.alpha - (_local3.alpha / 48)); _local2++; }; } } }//package effects.greets
Section 97
//FakeMetaCircles (effects.metaball.FakeMetaCircles) package effects.metaball { import synch.*; import flash.display.*; import flash.geom.*; import flash.utils.*; public class FakeMetaCircles extends AbstractDemoEffect { private var pt:Point; private var angle:Number;// = 45 private var balls:Array; private var numSlices:int;// = 40 private var base:Sprite; private var tdata:BitmapData; private var mat:Matrix; private var slices:Array; private var sz:Number;// = 128 private var _cnt:Number;// = 0 private var outBmp:BitmapData; private var ct:ColorTransform; private var ballMaps:Dictionary; private var bitmapData:BitmapData; public function FakeMetaCircles(){ sz = 128; numSlices = 40; angle = 45; mat = new Matrix(); pt = new Point(); ct = new ColorTransform(); balls = new Array(); _cnt = 0; ballMaps = new Dictionary(); super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ var _local3:int; super.init(_arg1, _arg2); outBmp = _buffer; slices = new Array(); _local3 = 0; while (_local3 < numSlices) { bitmapData = new BitmapData(sz, sz, false, 0); slices.push(bitmapData); _local3++; }; balls.push([128, 128, 128]); balls.push([160, 66, 98]); balls.push([56, 167, 43]); tdata = new BitmapData(sz, sz, false, 0); play(0); } private function renderBalls(_arg1:Number, _arg2:BitmapData):void{ } override public function play(_arg1:Number):void{ var _local2:int; var _local3:int; var _local4:Number; var _local5:int; var _local6:Number; var _local7:BitmapData; var _local8:Number; var _local9:Boolean; var _local10:int; var _local11:BitmapData; var _local12:Number; _local2 = (sz / 2); _local3 = (sz / 4); _cnt++; _local4 = (sz / numSlices); _local5 = balls.length; _local6 = 0; while (_local6 < numSlices) { _local7 = slices[_local6]; _local8 = (_local6 * _local4); _local7.lock(); _local7.fillRect(_local7.rect, 8421408); tdata.fillRect(tdata.rect, 0); _local9 = false; _local10 = 0; _local10 = 0; while (_local10 < _local5) { _local12 = int((_local8 - balls[_local10][2])); if (ballMaps[_local12] != null){ _local11 = ballMaps[_local12]; } else { _local11 = (ballMaps[_local12] = new MetaParticle(128, _local12)); }; mat.identity(); mat.translate((-(_local11.width) / 2), (-(_local11.height) / 2)); mat.scale(0.5, 1); mat.translate(balls[_local10][0], balls[_local10][1]); tdata.draw(_local11, mat); _local10++; }; _local7.threshold(tdata, tdata.rect, pt, ">", 0x850000, 2155888640, 0xFF0000, false); _local7.threshold(tdata, tdata.rect, pt, "<", 0x720000, 4278190080, 0xFF0000, false); _local7.unlock(); mat.identity(); mat.translate(-(_local2), -(_local2)); mat.rotate((_cnt * 0.08)); mat.translate(0, ((-(_local6) * sz) / 12.8)); mat.scale(2, 0.8); mat.translate(200, (200 + 160)); outBmp.draw(_local7, mat, ct, "add"); _local6++; }; balls[0][0] = ((Math.sin((_cnt * 0.18)) * _local3) + _local2); balls[0][1] = ((Math.cos(((_cnt * 0.13) + 0.5)) * _local3) + _local2); balls[0][2] = ((Math.sin(((_cnt * 0.19) + 1.3)) * _local3) + _local2); balls[1][0] = ((Math.sin(((_cnt * 0.18) + 2)) * _local3) + _local2); balls[1][2] = ((Math.sin(((_cnt * 0.11) + 2.3)) * _local3) + _local2); balls[1][1] = ((Math.sin(((_cnt * 0.14) + 2.6)) * _local3) + _local2); balls[2][0] = ((Math.cos(((_cnt * 0.18) + 4.8)) * _local3) + _local2); balls[2][1] = ((Math.cos(((_cnt * 0.13) + 4.5)) * _local3) + _local2); balls[2][2] = ((Math.cos(((_cnt * 0.13) + 8.5)) * _local3) + _local2); } } }//package effects.metaball
Section 98
//MetaParticle (effects.metaball.MetaParticle) package effects.metaball { import flash.display.*; import flash.geom.*; public class MetaParticle extends BitmapData { private static var mat:Matrix = new Matrix(); private static var ct:ColorTransform = new ColorTransform(); private static var spr:Sprite = new Sprite(); private static var colors:Array = [0xFFFFFF, 0xFFFFFF]; public function MetaParticle(_arg1:int, _arg2:int){ var _local3:Number; var _local4:Number; var _local5:Number; _local3 = (_arg2 * _arg2); _local4 = (_arg1 / 2); _local3 = (_local3 / (_local4 * _local4)); if (_local3 > 0.5){ _local4 = 1; } else { _local4 = (_local4 * (((0.25 - _local3) + (_local3 * _local3)) * 4)); if (_local4 < 1){ _local4 = 1; }; }; super((_local4 * 2), (_local4 * 2), true, 0); spr.graphics.clear(); mat.identity(); mat.createGradientBox((_local4 * 2), (_local4 * 2), 0, 0, 0); _local5 = (((0.25 - _local3) + (_local3 * _local3)) * 4); spr.graphics.moveTo(_local4, _local4); spr.graphics.beginGradientFill(GradientType.RADIAL, colors, [_local5, 0], [0, 0xFF], mat, SpreadMethod.PAD, InterpolationMethod.LINEAR_RGB, 0); spr.graphics.drawCircle(_local4, _local4, (_local4 - 1)); spr.graphics.endFill(); mat.identity(); this.draw(spr, mat); } } }//package effects.metaball
Section 99
//BasicParticle (effects.particles.BasicParticle) package effects.particles { import flash.display.*; import flash.geom.*; public class BasicParticle extends BitmapData { public function BasicParticle(_arg1:int){ var _local2:Sprite; var _local3:Matrix; super(_arg1, _arg1, true, 0); _local2 = new Sprite(); _local3 = new Matrix(); _local3.createGradientBox(_arg1, _arg1, 0, 0, 0); _local2.graphics.beginGradientFill(GradientType.RADIAL, [0xFFFFFF, 0xFFFFFF], [1, 0], [0, 0xFF], _local3, SpreadMethod.PAD, InterpolationMethod.RGB, 0); _local2.graphics.drawCircle((_arg1 / 2), (_arg1 / 2), ((_arg1 / 2) - 1)); _local2.graphics.endFill(); this.draw(_local2, new Matrix(), new ColorTransform(), BlendMode.NORMAL); } } }//package effects.particles
Section 100
//Egg (effects.particles.Egg) package effects.particles { import mx.core.*; public class Egg extends BitmapAsset { } }//package effects.particles
Section 101
//MetaParticlesEffect (effects.particles.MetaParticlesEffect) package effects.particles { import mx.core.*; import synch.*; import flash.display.*; import flash.geom.*; import math.*; public class MetaParticlesEffect extends AbstractDemoEffect { private var charges:Array; private var scale:Matrix; private var cnt:int;// = 0 private var bmp:BitmapData; public var randomScale:Number; private var cameraZ:Number;// = 1 public var movespeed:Number;// = 0.0005 private var amount:Number; public var radius:Number;// = 200 private var texture:BitmapData; private var cBmp:BitmapAsset; private var chargeCalc:ChargeCalculator; private var j:int; private var colorTransform:ColorTransform; private var particles:Array; private var cx:Number; private var i:int; private var cy:Number; public function MetaParticlesEffect(){ radius = 200; scale = new Matrix(); colorTransform = new ColorTransform(); cBmp = new Egg(); charges = new Array(); movespeed = 0.0005; cameraZ = 1; cnt = 0; super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ var _local3:Array; super.init(_arg1, _arg2); bmp = _buffer; amount = _arg2.amount; texture = _arg2.texture; cx = (bmp.width / 2); cy = (bmp.height / 2); chargeCalc = new ChargeCalculator(); charges.push({x:70, y:0, z:0, parts:new Array(amount), mag:(radius * 1.5)}); charges.push({x:-70, y:0, z:0, parts:new Array(amount), mag:(radius * 1.5)}); charges.push({x:-20, y:34, z:0, parts:new Array(amount), mag:(radius * 1.5)}); chargeCalc.addCharge(charges[0]); chargeCalc.addCharge(charges[1]); chargeCalc.addCharge(charges[2]); j = 0; while (j < charges.length) { _local3 = charges[j].parts; i = 0; while (i < amount) { _local3[i] = {phi:0, rho:0, mag:1}; _local3[i].phi = randRange(-(Math.PI), Math.PI); _local3[i].rho = randRange(-(Math.PI), Math.PI); i++; }; j++; }; } private function randRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number; _local3 = ((Math.random() * ((_arg2 - _arg1) + 1)) + _arg1); return (_local3); } override public function play(_arg1:Number):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Array; var _local6:Object; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; cnt++; charges[0].x = (Math.sin(((cnt * 0.05) + 0.23)) * 150); charges[1].x = (Math.cos(((cnt * 0.06) + 1)) * 150); charges[2].x = (Math.sin((cnt * 0.08)) * 150); charges[0].y = (Math.cos(((cnt * 0.08) + 2.1)) * 100); charges[1].y = (Math.sin(((cnt * 0.07) + 1.3)) * 100); charges[2].y = (Math.cos((cnt * 0.06)) * 100); i = 0; j = 0; _local6 = {x:0, y:0, z:0, mag:1, own:null}; while (j < charges.length) { _local5 = charges[j].parts; i = 0; while (i < amount) { _local6.mag = 1; _local7 = _local5[i].phi; _local8 = _local5[i].rho; _local5[i].phi = (_local5[i].phi + (_arg1 * movespeed)); _local5[i].rho = (_local5[i].rho - (_arg1 * movespeed)); _local9 = Math.sin(_local7); _local10 = Math.cos(_local7); _local11 = Math.sin(_local8); _local12 = Math.cos(_local8); _local6.x = (((radius * _local9) * _local12) + charges[j].x); _local6.y = (((radius * _local9) * _local11) + charges[j].y); _local6.own = charges[j]; chargeCalc.movePoint(_local6); if (_local6.mag != 1){ colorTransform.blueMultiplier = ((_local6.mag * 0.5) + (1 / (_local6.mag * 10))); colorTransform.redMultiplier = (_local6.mag + (1 / (_local6.mag * 10))); colorTransform.greenMultiplier = ((_local6.mag * 0.25) + (1 / (_local6.mag * 10))); _local2 = ((_local6.mag * 2) + 0.5); if (colorTransform.redMultiplier > 0.95){ colorTransform.blueMultiplier = 1; colorTransform.redMultiplier = (colorTransform.redMultiplier - 0.4); colorTransform.greenMultiplier = (colorTransform.greenMultiplier - 0.2); _local2 = (_local2 * 2); }; } else { colorTransform.blueMultiplier = 0.2; colorTransform.redMultiplier = 0.2; colorTransform.greenMultiplier = 0.2; _local2 = 2; i++; continue; }; _local6.x = ((((radius * _local9) * _local12) * _local6.mag) + charges[j].x); _local6.y = ((((radius * _local9) * _local11) * _local6.mag) + charges[j].y); scale.identity(); scale.scale(_local2, _local2); scale.rotate((cnt * 0.02)); scale.translate((cx + _local6.x), (cy + _local6.y)); bmp.draw(texture, scale, colorTransform, BlendMode.ADD); i++; }; j++; }; } } }//package effects.particles
Section 102
//DowngradeEffect (effects.post.DowngradeEffect) package effects.post { import synch.*; import flash.display.*; import flash.geom.*; public class DowngradeEffect extends AbstractPostProcessor { private var scale:Number;// = 1 private var blendMode:String; private var scaleMatrix:Matrix; private var smooth:Boolean;// = false public function DowngradeEffect(){ scale = 1; smooth = false; super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ var _local3:Boolean; var _local4:Number; if (_arg2.scale){ scale = _arg2.scale; scaleMatrix = new Matrix(); _local3 = _arg1.transparent; _local4 = scale; if (_arg2.smooth){ smooth = _arg2.smooth; }; if (_arg2.scaley){ _local4 = _arg2.scaley; }; if (_arg2.forceTransparent != null){ _local3 = true; }; scaleMatrix.scale(scale, _local4); _input = new BitmapData((_arg1.width / scale), (_arg1.height / _local4), _local3, 0); }; if (_arg2.blendMode){ blendMode = _arg2.blendMode; }; super.init(_arg1, _arg2); } override public function play(_arg1:Number):void{ _input.lock(); _input.fillRect(_input.rect, 0); super.play(_arg1); _input.unlock(); buffer.lock(); buffer.draw(_input, scaleMatrix, null, blendMode, null, smooth); buffer.unlock(); } } }//package effects.post
Section 103
//RadialBlurEffect (effects.post.RadialBlurEffect) package effects.post { import synch.*; import flash.display.*; import flash.geom.*; public class RadialBlurEffect extends AbstractPostProcessor { public var zoom:Number;// = 0 private var outMode:String; private var layers:int;// = 10 private var resetBlur:Boolean;// = false private var scaleMatrix:Matrix; private var scale:Number;// = 1 private var ct:ColorTransform; private var blendMode:String;// = null private var clipMatrix:Matrix; public var alphaFade:Number;// = 0 public var blurOffsetX:Number;// = 0 public var blurOffsetY:Number;// = 0 public function RadialBlurEffect(){ layers = 10; zoom = 0; alphaFade = 0; ct = new ColorTransform(); blurOffsetX = 0; blurOffsetY = 0; scale = 1; blendMode = null; resetBlur = false; super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ if (_arg2.transparent){ _input = new BitmapData(_arg1.width, _arg1.height, true, 0); }; if (_arg2.outMode){ outMode = _arg2.outMode; }; if (_arg2.blendMode){ blendMode = _arg2.blendMode; trace(("Setting blendmode:" + blendMode)); }; super.init(_arg1, _arg2); scaleMatrix = new Matrix(); if (_arg2.layers){ layers = _arg2.layers; }; if (_arg2.zoom){ zoom = _arg2.zoom; }; } override public function play(_arg1:Number):void{ var _local2:int; var _local3:Number; _input.lock(); _input.fillRect(_input.rect, 0); super.play(_arg1); if (alphaFade < 0.01){ _input.unlock(); buffer.lock(); buffer.draw(_input, null, null, blendMode); buffer.unlock(); return; }; _input.draw(_input, clipMatrix, null, blendMode); ct.alphaMultiplier = alphaFade; _local2 = 0; while (_local2 < layers) { _local3 = (zoom * _local2); scaleMatrix.a = (1 + _local3); scaleMatrix.d = (1 + _local3); scaleMatrix.tx = -((((_input.width + blurOffsetX) * _local3) * 0.5)); scaleMatrix.ty = -((((_input.height + blurOffsetY) * _local3) * 0.5)); _input.draw(_input, scaleMatrix, ct, BlendMode.ADD, _input.rect, false); _local2++; }; _input.unlock(); buffer.lock(); buffer.draw(_input, null, null, outMode); buffer.unlock(); } } }//package effects.post
Section 104
//SuperShapeTunnelEffect (effects.tunnel.SuperShapeTunnelEffect) package effects.tunnel { import synch.*; import flash.display.*; import flash.geom.*; import flash.utils.*; public class SuperShapeTunnelEffect extends AbstractDemoEffect { private var intermap:BitmapData; private var bmp:BitmapData; private var radius:Number; public var texture:BitmapData; private var posy:Number; private var height:uint; private var posx:Number; public var angle1:Number; public var angle2:Number; private var width:uint; public var speed2:Number;// = 1 public var speed3:Number;// = -1 public var fov:Number; private var base:BitmapData; private var matte:BitmapData; private var mat:Matrix; private var ox:Number;// = 0 private var oy:Number;// = 0 private var oz:Number;// = 0 public var speed1:Number;// = 1 private var colors:BitmapData; private var ct:ColorTransform; public var normal:Boolean;// = false public var texture2:BitmapData; private var cnt:Bitmap; public function SuperShapeTunnelEffect(){ ox = 0; oy = 0; oz = 0; speed1 = 1; speed2 = 1; speed3 = -1; normal = false; super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ super.init(_arg1, _arg2); width = (_buffer.width / 2); height = _buffer.height; texture = _arg2.texture; texture2 = _arg2.texture2; bmp = _arg1; base = new BitmapData(width, height, false, 0); matte = new BitmapData(width, height, false, 0); cnt = new Bitmap(bmp, "auto", true); cnt.width = (10 * width); cnt.height = (5 * height); fov = 120; radius = 0x0100; posx = 0; posy = 1; angle1 = 0; angle2 = 0; mat = new Matrix(); ct = new ColorTransform(1, 1, 1, 1, 0, 0, 0, 0); } override public function play(_arg1:Number):void{ var _local2:uint; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; 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:int; var _local32:uint; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:Number; _local2 = getTimer(); posx = (posx + ((_arg1 * 0.005) * speed1)); posy = (posy + ((_arg1 * 0.009) * speed2)); angle1 = (Math.sin((0.25 * posx)) * 0.4); angle2 = (Math.cos(((0.2 * posy) + 0.7)) * 0.4); if (!normal){ ox = ((0x0400 * Math.sin((0.1 * posx))) + 0x0400); oy = ((0x0400 * Math.sin(((0.1 * posy) + 0.132))) + 0x0400); } else { ox = (32 * Math.sin(posx)); oy = (32 * Math.sin((posy + 0.132))); }; oz = (oz + (_arg1 * speed3)); _local3 = Math.cos(angle1); _local4 = Math.sin(angle1); _local5 = Math.cos(angle2); _local6 = Math.sin(angle2); _local7 = getTimer(); _local8 = (width / 2); _local9 = (height / 2); _local13 = ((Math.sin((posx * 0.1)) * 100) + 200); _local14 = ((Math.sin((posy * 0.1)) * 8) + 10); _local15 = 0; while (_local15 < height) { _local16 = 0; while (_local16 < width) { _local17 = ((_local16 - _local8) / fov); _local18 = ((_local15 - _local9) / fov); _local19 = 1; _local20 = ((_local17 * _local3) - (_local18 * _local4)); _local21 = ((_local17 * _local4) + (_local18 * _local3)); _local18 = ((_local21 * _local5) - (_local19 * _local6)); _local19 = ((_local21 * _local6) + (_local19 * _local5)); _local17 = _local20; _local29 = Math.sqrt((((_local17 * _local17) + (_local18 * _local18)) + (_local19 * _local19))); _local17 = (_local17 / _local29); _local18 = (_local18 / _local29); _local19 = (_local19 / _local29); _local22 = ((_local17 * _local17) + (_local18 * _local18)); if (!normal){ _local23 = 0; } else { _local23 = (2 * ((ox * _local17) + (oy * _local18))); }; if (!normal){ _local34 = (_local13 * Math.sin((_local22 * _local14))); _local24 = (-(_local34) * _local34); } else { _local24 = (((ox * ox) + (oy * oy)) - (64 * 64)); }; if (!normal){ _local25 = Math.sqrt(((-4 * _local22) * _local24)); } else { _local25 = Math.sqrt(((_local23 * _local23) - ((4 * _local22) * _local24))); }; if (_local22 == 0){ } else { if (!normal){ _local26 = (_local25 / (2 * _local22)); _local27 = (-(_local25) / (2 * _local22)); } else { _local26 = ((-(_local23) + _local25) / (2 * _local22)); _local27 = ((-(_local23) - _local25) / (2 * _local22)); }; if (_local26 > 0){ _local28 = _local26; } else { _local28 = _local27; }; if (!normal){ _local35 = (_local17 * _local28); _local36 = (_local18 * _local28); } else { _local35 = (ox + (_local17 * _local28)); _local36 = (oy + (_local18 * _local28)); }; _local30 = (oz + (_local19 * _local28)); _local28 = (20000 / _local28); if (_local28 > 63){ _local12 = 63; } else { _local12 = int(_local28); }; if (_local30 < 0){ _local30 = -(_local30); }; _local31 = (int(((Math.atan2(_local36, _local35) * 0x0400) / Math.PI)) + ox); if (_local31 < 0){ _local31 = (0x0100 + (_local31 % 0x0100)); }; _local10 = (int((_local30 * 1.2)) % 0x0100); _local11 = (int(_local31) % 0x0100); _local32 = texture.getPixel(_local10, _local11); _local33 = (_local12 / 63); _local32 = ((((((_local32 >> 16) & 0xFF) * _local33) << 16) + ((((_local32 >> 8) & 0xFF) * _local33) << 8)) + ((_local32 & 0xFF) * _local33)); base.setPixel(_local16, _local15, _local32); }; _local16++; }; _local15++; }; base.unlock(); bmp.lock(); bmp.fillRect(bmp.rect, 0); ct.redMultiplier = 1.7; ct.greenMultiplier = 1.7; ct.blueMultiplier = 1; mat.identity(); if (normal){ mat.scale(2, 1); }; bmp.draw(base, mat, ct, "normal"); mat.scale(-1, 1); mat.translate((width * 2), 0); if (!normal){ bmp.draw(base, mat, ct, "normal"); }; bmp.unlock(); } public function getContainer():DisplayObject{ return (cnt); } } }//package effects.tunnel
Section 105
//SuperShapeTwisterEffect (effects.twister.SuperShapeTwisterEffect) package effects.twister { import synch.*; import flash.display.*; import flash.geom.*; import flash.utils.*; public class SuperShapeTwisterEffect extends AbstractDemoEffect { private var tt:Number;// = 0 private var demobmp:Bitmap; private var blurmt:Matrix; private var NP:int;// = 0x0100 private var lasttime:int;// = 0 private var rect:Rectangle; private var colortrans:ColorTransform; private var point:Point; private var cnt:int; private var drawmt:Matrix; private var mt:Matrix; private var CNTX:int;// = 0xFF private var CNTY:int;// = 100 private var scalemt:Matrix; private var xyvalues:Array; private var fullrect:Rectangle; private var spr:Sprite; private var twistbmp:BitmapData; public function SuperShapeTwisterEffect(){ NP = 0x0100; cnt = (Math.random() * 4294967295); colortrans = new ColorTransform(0.9, 0.93, 0.96); spr = new Sprite(); CNTY = 100; CNTX = 0xFF; blurmt = new Matrix(); point = new Point(); lasttime = 0; tt = 0; mt = new Matrix(); xyvalues = new Array(); super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ var _local3:int; super.init(_arg1, _arg2); _local3 = 0; while (_local3 <= CNTX) { xyvalues.push(new Point()); _local3++; }; twistbmp = new BitmapData(_buffer.width, _buffer.height, true, 0); scalemt = new Matrix(); drawmt = new Matrix(); rect = new Rectangle(0, 0, 0, 1); fullrect = new Rectangle(0, 0, _buffer.width, _buffer.height); } override public function play(_arg1:Number):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:int; var _local10:int; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:int; var _local15:Number; var _local16:Point; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Boolean; 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:int; var _local32:Number; var _local33:Number; var _local34:Number; var _local35:Number; var _local36:int; var _local37:int; cnt = (cnt + _arg1); _local2 = (192 + (48 * Math.sin((cnt * 0.0012)))); _local3 = (192 + (48 * Math.sin((cnt * 0.0013)))); _local4 = 0xFF; _local5 = 2; _local6 = (Math.sin((cnt * 0.000821)) * 3); _local7 = -0.3; _local8 = 8; twistbmp.fillRect(fullrect, 0); tt = (tt + (_arg1 * -0.0005)); tt = (tt % (Math.PI / CNTY)); _local14 = getTimer(); _local9 = 0; while (_local9 <= CNTX) { _local12 = ((((_local9 * 2) * Math.PI) / CNTX) - Math.PI); _local19 = Math.cos(((_local8 * _local12) / 4)); if (_local19 < 0){ _local19 = -(_local19); }; _local19 = Math.pow(_local19, _local6); _local20 = Math.sin(((_local8 * _local12) / 4)); if (_local20 < 0){ _local20 = -(_local20); }; _local20 = Math.pow(_local20, _local7); _local15 = Math.pow((_local19 + _local20), (1 / _local5)); _local15 = (1 / _local15); _local16 = xyvalues[_local9]; _local16.x = (_local15 * Math.cos(_local12)); _local16.y = (-(_local15) * Math.sin(_local12)); if (_local9 >= 1){ }; _local9++; }; _local17 = Math.sin((cnt * 0.00064)); _local18 = Math.sin((cnt * 0.0004)); _local9 = 0; while (_local9 <= CNTY) { _local21 = true; _local26 = 0; _local27 = 0; _local28 = -9000; _local29 = 9000; _local21 = true; _local30 = (((cnt * -0.001) + ((_local9 * -0.01) * _local17)) + ((_local9 * 0.01) * _local18)); _local30 = (_local30 % (Math.PI * 2)); mt.identity(); mt.rotate(_local30); _local10 = 0; while (_local10 <= CNTX) { _local31 = _local10; _local31 = (_local31 - int(((_local30 * (CNTX + 1)) / (Math.PI * 2)))); _local31 = (_local31 - (CNTX / 4)); _local16 = xyvalues[(_local31 & CNTX)]; _local22 = _local16.x; _local23 = _local16.y; _local24 = ((_local22 * mt.a) + (_local23 * mt.b)); _local25 = ((_local22 * mt.c) + (_local23 * mt.d)); _local25++; _local22 = (_local24 * ((_buffer.width / 4) + (25 * Math.sin(((_local9 * 0.07) + (cnt * 0.006)))))); _local23 = ((_local25 * _buffer.height) / 4); _local32 = _local22; if ((((_local22 > 0)) && ((_local22 < _local28)))){ _local22 = _local28; }; if ((((_local22 > 0)) && ((_local22 > _local28)))){ _local28 = _local22; }; _local28 = _local22; _local33 = (_local22 - _local26); _local34 = (_local23 - _local27); if (_local33 > 0){ rect.x = int(((_local22 + (_buffer.width / 2)) - _local33)); rect.y = _local9; rect.width = int((_local33 + 1)); _local35 = _local34; if (_local35 < 0){ _local35 = -(_local35); }; _local36 = ((1 / _local35) * 0xFF); _local35 = _local33; if (_local35 < 0){ _local35 = -(_local35); }; _local37 = ((1 / _local35) * 0xFF); _local2 = ((51 + _local36) - _local37); _local3 = ((51 + _local36) - _local37); _local4 = ((85 + _local36) - _local37); if (_local2 > 0xFF){ _local2 = 0xFF; }; if (_local2 < 0){ _local2 = 0; }; if (_local3 > 0xFF){ _local3 = 0xFF; }; if (_local3 < 0){ _local3 = 0; }; if (_local4 > 0xFF){ _local4 = 0xFF; }; if (_local4 < 0){ _local4 = 0; }; if (!_local21){ twistbmp.fillRect(rect, (((4278190080 | (_local2 << 16)) | (_local3 << 8)) | _local4)); }; }; _local26 = _local22; _local27 = _local23; _local21 = false; _local10++; }; _local9++; }; mt.identity(); mt.scale(1, (_buffer.height / CNTY)); mt.translate((-(_buffer.width) / 2), (-(_buffer.height) / 2)); mt.rotate((Math.PI / 2)); mt.translate(((_buffer.width / 2) + (_buffer.width / 4)), (_buffer.height / 2)); _buffer.draw(twistbmp, mt); mt.translate((-(_buffer.width) / 2), 0); _buffer.draw(twistbmp, mt); mt.identity(); mt.scale(1, (_buffer.height / CNTY)); _buffer.draw(twistbmp, mt); } } }//package effects.twister
Section 106
//FlashEffect (effects.FlashEffect) package effects { import synch.*; import flash.display.*; import flash.geom.*; public class FlashEffect extends AbstractDemoEffect { private var width:Number; public var speed:Number;// = 1 public var done:Boolean;// = true private var flashMap:BitmapData; private var graph:Graphics; private var colorTransform:ColorTransform; public var color:uint;// = 4294967295 private var height:Number; public function FlashEffect(){ speed = 1; color = 4294967295; done = true; super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ super.init(_arg1, _arg2); width = _arg1.width; height = _arg1.height; flashMap = new BitmapData(width, height, true, 0); colorTransform = new ColorTransform(1, 1, 1, 0); } public function resetColor(_arg1:Number, _arg2:Number, _arg3:Number):void{ color = (((int((_arg1 * 0xFF)) << 16) | (int((_arg2 * 0xFF)) << 8)) | int((_arg3 * 0xFF))); } public function reset():void{ colorTransform.alphaMultiplier = 1; done = false; } override public function play(_arg1:Number):void{ if (done){ return; }; colorTransform.alphaMultiplier = (colorTransform.alphaMultiplier - (_arg1 / (1000 * speed))); if (colorTransform.alphaMultiplier < 0){ colorTransform.alphaMultiplier = 0; done = true; }; flashMap.fillRect(flashMap.rect, color); flashMap.colorTransform(flashMap.rect, colorTransform); _buffer.draw(flashMap); } } }//package effects
Section 107
//HalfballEffect (effects.HalfballEffect) package effects { import synch.*; import flash.display.*; import away3d.core.proto.*; import away3d.core.math.*; import away3d.core.render.*; import away3d.core.material.*; import away3d.loaders.*; import flash.geom.*; public class HalfballEffect extends AbstractDemoEffect { private var drawmatrix:Matrix; private var scene:Scene3D; private var bmp2:BitmapData; private var destPoint:Point; private var target:ObjectContainer3D; private var bmp1:BitmapData; private var colorTrans:ColorTransform; private var screenMultColor:ColorTransform; private var meshes:Array; private var mcnt:int; private var view:View3D; private var point:Point; private var cnt:int; private var backdrawmatrix:Matrix; private var divver:Number;// = 0.1 private var textures:Array; public function HalfballEffect(){ meshes = new Array(); cnt = (Math.random() * 4294967295); mcnt = (Math.random() * 4294967295); divver = 0.1; destPoint = new Point(); colorTrans = new ColorTransform(0.6, 0.8, 0.9); screenMultColor = new ColorTransform(2, 2, 3, 2); point = new Point(); textures = new Array(); super(); } public function random():void{ var _local1:ColorMaterial; for each (_local1 in this.textures) { _local1.fillAlpha = (0.25 + (Math.random() * 0.75)); }; } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ var _local3:int; var _local4:ColorMaterial; var _local5:ObjectContainer3D; super.init(_arg1, _arg2); bmp1 = new BitmapData(_buffer.width, _buffer.height, true, 0); bmp2 = new BitmapData(_buffer.width, _buffer.height, true, 0); drawmatrix = new Matrix(); drawmatrix.translate((_buffer.width / 2), (_buffer.height / 2)); backdrawmatrix = new Matrix(); backdrawmatrix.translate((-(_buffer.width) / 2), (-(_buffer.height) / 2)); backdrawmatrix.scale(1.02, 1.05); backdrawmatrix.translate((_buffer.width / 2), (_buffer.height / 2)); view = new View3D(scene); _local3 = 0; while (_local3 < 16) { if ((_local3 & 1)){ _local4 = new ColorMaterial(0xFFFFFF, 0.25); } else { _local4 = new ColorMaterial(11513855, 0.25); }; _local5 = new ObjectContainer3D(Obj.parse(Cast.string(models.HalfBallModel1), _local4, null, 70)); view.scene.addChild(_local5); meshes.push(_local5); textures.push(_local4); _local3++; }; target = new ObjectContainer3D(); view.scene.addChild(target); view.x = 400; view.y = 200; view.renderer = Renderer.BASIC; } public function flash():void{ var _local1:ColorMaterial; for each (_local1 in this.textures) { _local1.fillAlpha = 1; }; } override public function play(_arg1:Number):void{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:BitmapData; var _local8:ObjectContainer3D; var _local9:Number; var _local10:Number; var _local11:ColorMaterial; divver = (divver / 1.08); if (divver < 0.4){ divver = 2; }; divver = 0.8; cnt = (cnt + _arg1); mcnt = (mcnt + (_arg1 * divver)); _local2 = (uint((cnt * 0.05)) % 16); trace(_local2); _local3 = 0; while (_local3 < 16) { _local8 = meshes[_local3]; _local9 = ((_local3 * Math.PI) / 8); _local10 = ((_local3 * 360) / 16); _local8.x = (Math.cos(_local9) * 70); _local8.y = (Math.sin(_local9) * 70); _local8.rotationX = (Math.sin((mcnt * 0.00028)) * 360); _local8.rotationY = (Math.cos((mcnt * 0.00024)) * 360); _local8.rotationZ = (_local10 + (Math.sin((mcnt * 0.00014)) * 360)); _local11 = textures[_local3]; textures[_local3].fillAlpha = (_local11.fillAlpha + ((0.25 - _local11.fillAlpha) / 5)); _local3++; }; view.camera.x = 0; view.camera.y = -250; view.camera.z = -250; view.camera.lookAt(target, new Number3D(0, 1, 0)); _local4 = 128; _local5 = (160 + (Math.cos((cnt * 0.00022)) * 32)); _local6 = (192 + (Math.sin((cnt * 0.00024)) * 64)); view.render(); bmp2.lock(); bmp2.draw(bmp1, backdrawmatrix, colorTrans); bmp2.draw(view, drawmatrix); bmp2.unlock(); _buffer.draw(bmp2); _local7 = bmp2; bmp2 = bmp1; bmp1 = _local7; } } }//package effects class models { public static var HalfBallModel1:Class = models_HalfBallModel1; private function models(){ } }
Section 108
//LonkeroEffect (effects.LonkeroEffect) package effects { import synch.*; import flash.display.*; import flash.geom.*; import flash.filters.*; public class LonkeroEffect extends AbstractDemoEffect { private var blurfilt2:BlurFilter; private var bmp:Bitmap; private var maxmt:Matrix; private var bmps:Array; private var blurfilt:BlurFilter; private var clearbmp:Bitmap; private var halfmt:Matrix; private var alphaMap:Array; private var blacktrans:ColorTransform; private var redMap:Array; private var colortrans:ColorTransform; private var startmulti:Number;// = 0 private var point:Point; private var blueMap:Array; private var cnts:Array; private var blurbuf:BitmapData; private var bmpdata:BitmapData; private var rotcnt:int;// = 0 private var shp:Shape; private var screentrans:ColorTransform; private var clearspr:Sprite; private var maxmttr:Matrix; private var blackbuff:BitmapData; private var qrect:Rectangle; private var greenMap:Array; private var mat:Matrix; private var rect:Rectangle; private var minmt:Matrix; private var lonkerolen:int;// = 0 public function LonkeroEffect(){ shp = new Shape(); clearspr = new Sprite(); cnts = new Array(); rotcnt = 0; rect = new Rectangle(0, 0, 800, 280); qrect = new Rectangle(0, 0, 400, 140); bmps = new Array(); blurfilt = new BlurFilter(4, 4); blurfilt2 = new BlurFilter(6, 6); point = new Point(); colortrans = new ColorTransform(1, 1, 1, 0); blacktrans = new ColorTransform(0, 0, 0, 2.5); screentrans = new ColorTransform(1.8, 1.9, 1.5, 1); blackbuff = new BitmapData(800, 400, true, 4294967295); redMap = new Array(); greenMap = new Array(); blueMap = new Array(); alphaMap = new Array(); startmulti = 0; lonkerolen = 0; mat = new Matrix(1, 0, 0, 1, 0, 60); super(); } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ var _local3:int; var _local4:int; super.init(_arg1, _arg2); minmt = new Matrix(); maxmt = new Matrix(); maxmttr = new Matrix(); halfmt = new Matrix(); minmt.scale(0.5, 0.5); maxmt.scale(2, 2); halfmt.scale(0.5, 0.5); maxmttr.scale(2, 2); maxmttr.translate(0, 4); blurbuf = new BitmapData(400, 140, true, 0); _local3 = 0; while (_local3 <= 0x0100) { alphaMap[_local3] = (Math.floor((_local3 * 0.9)) << 24); redMap[_local3] = (Math.floor((_local3 * 0.8)) << 16); greenMap[_local3] = (Math.floor((_local3 * 0.9)) << 8); blueMap[_local3] = Math.floor((_local3 * 0.4)); _local3++; }; _local3 = 0; while (_local3 < 32) { bmpdata = new BitmapData(800, 280, true, 0); bmps.push(bmpdata); _local3++; }; bmpdata = bmps.pop(); _local3 = 0; while (_local3 < 32) { cnts.push((Math.random() * 4294967295)); _local3++; }; } override public function play(_arg1:Number):void{ var _local2:Graphics; var _local3:int; var _local4:Number; var _local5:Number; var _local6:int; var _local7:int; var _local8:Number; var _local9:Number; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; _local2 = shp.graphics; rotcnt = (rotcnt + (33 * 0.2)); if (lonkerolen < 100){ lonkerolen++; }; _local2.clear(); _local3 = 0; while (_local3 < 10) { _local5 = ((_local3 * Math.PI) / 4); _local6 = (cnts[_local3] + 18); cnts[_local3] = _local6; if ((_local3 & 1)){ _local7 = ((redMap[0xFF] | greenMap[0xFF]) | blueMap[0xFF]); } else { _local12 = (208 + (Math.sin((_local6 * 0.0023)) * 32)); _local13 = 0xFF; _local14 = (208 + (Math.sin((_local6 * 0.0023)) * 32)); _local7 = ((redMap[_local12] | greenMap[_local13]) | blueMap[_local14]); }; _local2.lineStyle(6, _local7, 1); _local2.moveTo(950, 200); _local8 = 0; _local9 = 0; _local10 = rotcnt; _local11 = 0; while (_local11 < lonkerolen) { _local6 = (_local6 - 46); _local10 = (_local10 - 4); _local8 = ((((Math.sin((_local6 * 0.003)) * 30) + (Math.sin((_local6 * 0.004)) * 30)) + (Math.sin((_local6 * 0.0021)) * 30)) + (Math.sin((_local6 * 0.0033)) * 30)); _local9 = ((((Math.sin((_local6 * 0.0031)) * 40) + (Math.sin((_local6 * -0.0045)) * 40)) + (Math.sin((_local6 * -0.002)) * 30)) + (Math.sin((_local6 * 0.0044)) * 30)); _local9 = (_local9 * Math.sin(((_local10 * 0.004) + _local5))); _local9 = (_local9 * startmulti); _local8 = (_local8 * (Math.sin(((rotcnt * 0.004) + _local5)) * Math.sin(((rotcnt * 0.005) + _local5)))); _local2.lineTo(((950 + _local8) - (11 * _local11)), (140 + _local9)); _local11++; }; _local3++; }; bmps.push(bmpdata); bmpdata = bmps.shift(); blurbuf.lock(); blurbuf.fillRect(qrect, 0); blurbuf.draw(shp, minmt); blurbuf.applyFilter(blurbuf, qrect, point, blurfilt2); blurbuf.unlock(); bmpdata.lock(); bmpdata.paletteMap(bmpdata, rect, point, redMap, greenMap, blueMap, alphaMap); bmpdata.draw(blurbuf, maxmttr, blacktrans); bmpdata.draw(shp); bmpdata.draw(blurbuf, maxmt, null, BlendMode.SCREEN); bmpdata.unlock(); _buffer.lock(); _buffer.draw(bmpdata, mat); _buffer.unlock(); _local4 = colortrans.alphaMultiplier; colortrans.alphaMultiplier = (colortrans.alphaMultiplier + 0.005); if (colortrans.alphaMultiplier > 1){ colortrans.alphaMultiplier = 1; }; startmulti = (startmulti + 0.0075); if (startmulti > 1){ startmulti = 1; }; } } }//package effects
Section 109
//MultiEffect (effects.MultiEffect) package effects { import synch.*; import flash.display.*; public class MultiEffect extends AbstractDemoEffect { public var activeEffect:IDemoEffect; private var effectArray:Array; public function MultiEffect(){ effectArray = new Array(); super(); } public function nextEffect():void{ effectArray.push(activeEffect); activeEffect = effectArray.shift(); } public function selectEffect(_arg1:IDemoEffect):void{ while (activeEffect != _arg1) { nextEffect(); }; } override public function init(_arg1:BitmapData, _arg2:Object=null):void{ super.init(_arg1, _arg2); } override public function play(_arg1:Number):void{ activeEffect.play(_arg1); } public function addEffect(_arg1:IDemoEffect):void{ if (activeEffect != null){ effectArray.push(activeEffect); }; activeEffect = _arg1; } } }//package effects
Section 110
//TextRender (effects.TextRender) package effects { import flash.display.*; import flash.text.*; import flash.geom.*; import flash.filters.*; public class TextRender extends Bitmap { public static var mat:Matrix = new Matrix(); public static var blur:BlurFilter = new BlurFilter(4, 4, 1); public function TextRender(_arg1:String, _arg2:TextFormat, _arg3:Number=1){ var _local4:TextField; var _local5:BitmapData; var _local6:BitmapData; _local4 = new TextField(); _local4.embedFonts = true; _local4.defaultTextFormat = _arg2; _local4.text = _arg1; _local4.width = _local4.textWidth; _local4.height = _local4.textHeight; _local4.autoSize = TextFieldAutoSize.LEFT; _local5 = new BitmapData(_local4.width, _local4.height, true, 0); _local5.draw(_local4); _local5.applyFilter(_local5, _local5.rect, new Point(0, 0), TextRender.blur); TextRender.mat.identity(); TextRender.mat.scale((0.25 * _arg3), 0.25); _local6 = new BitmapData((_local5.width / 2), (_local5.height / 4), true, 0); _local6.draw(_local5, TextRender.mat, new ColorTransform(), "normal", null, true); super(_local6); } } }//package effects
Section 111
//Tweener (effects.Tweener) package effects { import flash.display.*; import mx.effects.*; import mx.effects.easing.*; public class Tweener extends Sprite { private var _tsx:Number; private var _tsy:Number; private var _tdx:Number; private var _alpha:Boolean; private var _tdy:Number; private var cnt:int;// = 1 private var _target:DisplayObject; private var _remove:Boolean; private var _duration:Number; public function Tweener(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean, _arg7:Boolean, _arg8:Number){ cnt = 1; super(); _target = _arg1; _tdx = _arg4; _tdy = _arg5; _tsx = _arg2; _tsy = _arg3; _alpha = _arg6; _remove = _arg7; _duration = _arg8; tweenMe(); } private function updateTween(_arg1:Array):void{ _target.x = _arg1[0]; _target.y = _arg1[1]; if (_alpha){ _target.alpha = _arg1[2]; }; } private function endTween(_arg1:Array):void{ trace(("removing:" + cnt)); if (_remove){ _target.parent.removeChild(_target); }; } private function tweenMe():void{ var _local1:Array; var _local2:Array; var _local3:Tween; _local1 = [_tsx, _tsy]; _local2 = [_tdx, _tdy]; if (_alpha){ _local1[2] = 0; _local2[2] = 1; }; _target.x = _tsx; _target.y = _tsy; _target.alpha = 0; _local3 = new Tween(_target, _local1, _local2, _duration, 31); _local3.easingFunction = Sine.easeIn; _local3.setTweenHandlers(updateTween, endTween); } } }//package effects
Section 112
//IntroBG (intro.IntroBG) package intro { import flash.display.*; public dynamic class IntroBG extends BitmapData { public function IntroBG(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package intro
Section 113
//IntroLettersAsset (intro.IntroLettersAsset) package intro { import flash.display.*; public dynamic class IntroLettersAsset extends MovieClip { } }//package intro
Section 114
//IntroTvzAsset (intro.IntroTvzAsset) package intro { import flash.display.*; public dynamic class IntroTvzAsset extends MovieClip { } }//package intro
Section 115
//ChargeCalculator (math.ChargeCalculator) package math { public class ChargeCalculator { private var chargePos:Array; private var qs:Array; private var normals:Array; private var crossOver:int;// = 128 public function ChargeCalculator(){ chargePos = new Array(); crossOver = 128; qs = new Array(); normals = new Array(); super(); } public function addCharge(_arg1:Object):void{ chargePos.push(_arg1); qs.push(0); normals.push({x:0, y:0, z:0, l2:0}); } public function moveCharges():void{ } public function movePoint(_arg1:Object):void{ var _local2:int; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; _local2 = 0; _local9 = 0; while (_local2 < chargePos.length) { _local3 = (_arg1.x - chargePos[_local2].x); _local4 = (_arg1.y - chargePos[_local2].y); _local8 = ((_local3 * _local3) + (_local4 * _local4)); _local8 = (_local8 / (chargePos[_local2].mag * chargePos[_local2].mag)); if (((!((_arg1.own == chargePos[_local2]))) && ((_local8 < 0.5)))){ _local10 = ((0.25 + _local8) + (_local8 * _local8)); _local9 = (_local9 + _local10); }; _local2++; }; if (_local9 < 0.2){ return; }; if (_local9 != 0){ _arg1.mag = (_arg1.mag - _local9); }; } } }//package math
Section 116
//BitmapAsset (mx.core.BitmapAsset) package mx.core { import flash.display.*; public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject { mx_internal static const VERSION:String = "2.0.1.0"; public function BitmapAsset(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } public function get measuredWidth():Number{ if (bitmapData){ return (bitmapData.width); }; return (0); } public function get measuredHeight():Number{ if (bitmapData){ return (bitmapData.height); }; return (0); } public function setActualSize(_arg1:Number, _arg2:Number):void{ width = _arg1; height = _arg2; } public function move(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } } }//package mx.core
Section 117
//ByteArrayAsset (mx.core.ByteArrayAsset) package mx.core { import flash.utils.*; public class ByteArrayAsset extends ByteArray implements IFlexAsset { mx_internal static const VERSION:String = "2.0.1.0"; } }//package mx.core
Section 118
//FlexBitmap (mx.core.FlexBitmap) package mx.core { import flash.display.*; import mx.utils.*; public class FlexBitmap extends Bitmap { mx_internal static const VERSION:String = "2.0.1.0"; public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ var bitmapData = _arg1; var pixelSnapping = _arg2; var smoothing = _arg3; super(bitmapData, pixelSnapping, smoothing); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 119
//FontAsset (mx.core.FontAsset) package mx.core { import flash.text.*; public class FontAsset extends Font implements IFlexAsset { mx_internal static const VERSION:String = "2.0.1.0"; } }//package mx.core
Section 120
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 121
//IFlexDisplayObject (mx.core.IFlexDisplayObject) package mx.core { import flash.events.*; import flash.display.*; public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher { function get name():String; function set width(_arg1:Number):void; function get measuredHeight():Number; function set height(_arg1:Number):void; function get scaleY():Number; function move(_arg1:Number, _arg2:Number):void; function get scaleX():Number; function set mask(_arg1:DisplayObject):void; function set scaleX(_arg1:Number):void; function set name(_arg1:String):void; function set scaleY(_arg1:Number):void; function get visible():Boolean; function get measuredWidth():Number; function set visible(_arg1:Boolean):void; function get alpha():Number; function get height():Number; function get width():Number; function get parent():DisplayObjectContainer; function get mask():DisplayObject; function set x(_arg1:Number):void; function setActualSize(_arg1:Number, _arg2:Number):void; function set y(_arg1:Number):void; function get x():Number; function get y():Number; function set alpha(_arg1:Number):void; } }//package mx.core
Section 122
//IFlexModuleFactory (mx.core.IFlexModuleFactory) package mx.core { public interface IFlexModuleFactory { function create(... _args):Object; function info():Object; } }//package mx.core
Section 123
//IRepeaterClient (mx.core.IRepeaterClient) package mx.core { public interface IRepeaterClient { function set instanceIndices(_arg1:Array):void; function get isDocument():Boolean; function get repeaters():Array; function get instanceIndices():Array; function set repeaters(_arg1:Array):void; function initializeRepeaterArrays(_arg1:IRepeaterClient):void; function set repeaterIndices(_arg1:Array):void; function get repeaterIndices():Array; } }//package mx.core
Section 124
//mx_internal (mx.core.mx_internal) package mx.core { public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; }//package mx.core
Section 125
//UIComponentGlobals (mx.core.UIComponentGlobals) package mx.core { import flash.display.*; import flash.geom.*; import mx.managers.*; public class UIComponentGlobals { mx_internal static var callLaterSuspendCount:int = 0; mx_internal static var layoutManager:ILayoutManager; mx_internal static var nextFocusObject:InteractiveObject; mx_internal static var designTime:Boolean = false; mx_internal static var tempMatrix:Matrix = new Matrix(); mx_internal static var callLaterDispatcherCount:int = 0; } }//package mx.core
Section 126
//Sine (mx.effects.easing.Sine) package mx.effects.easing { import mx.core.*; public class Sine { mx_internal static const VERSION:String = "2.0.1.0"; public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2)); } public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2)); } } }//package mx.effects.easing
Section 127
//Tween (mx.effects.Tween) package mx.effects { import flash.events.*; import mx.core.*; import flash.utils.*; import mx.events.*; public class Tween extends EventDispatcher { private var started:Boolean;// = false public var duration:Number;// = 3000 private var id:int; private var arrayMode:Boolean; private var _isPlaying:Boolean;// = true private var startValue:Object; public var listener:Object; private var userEquation:Function; private var previousUpdateTime:Number; mx_internal var needToLayout:Boolean;// = false private var updateFunction:Function; private var _doSeek:Boolean;// = false mx_internal var startTime:Number; private var endFunction:Function; private var endValue:Object; private var _doReverse:Boolean;// = false private var _playheadTime:Number;// = 0 private var _invertValues:Boolean;// = false private var maxDelay:Number;// = 87.5 mx_internal static const VERSION:String = "2.0.1.0"; private static var timer:Timer = null; private static var interval:Number = 10; private static var activeTweens:Array = []; mx_internal static var intervalTime:Number = NAN; public function Tween(_arg1:Object, _arg2:Object, _arg3:Object, _arg4:Number=-1, _arg5:Number=-1){ needToLayout = false; maxDelay = 87.5; _doSeek = false; _isPlaying = true; _doReverse = false; userEquation = defaultEasingFunction; started = false; duration = 3000; _playheadTime = 0; _invertValues = false; super(); if (!_arg1){ return; }; if ((_arg2 is Array)){ arrayMode = true; }; this.listener = _arg1; this.startValue = _arg2; this.endValue = _arg3; if (((!(isNaN(_arg4))) && (!((_arg4 == -1))))){ this.duration = _arg4; }; if (((!(isNaN(_arg5))) && (!((_arg5 == -1))))){ maxDelay = (1000 / _arg5); }; if (_arg4 == 0){ endTween(); } else { Tween.addTween(this); }; } public function pause():void{ _isPlaying = false; } mx_internal function get playheadTime():Number{ return (_playheadTime); } mx_internal function get playReversed():Boolean{ return (_invertValues); } public function resume():void{ _isPlaying = true; startTime = (intervalTime - _playheadTime); if (_doReverse){ reverse(); _doReverse = false; }; } public function setTweenHandlers(_arg1:Function, _arg2:Function):void{ this.updateFunction = _arg1; this.endFunction = _arg2; } mx_internal function set playReversed(_arg1:Boolean):void{ _invertValues = _arg1; } public function set easingFunction(_arg1:Function):void{ userEquation = _arg1; } private function defaultEasingFunction(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return ((((_arg3 / 2) * (Math.sin((Math.PI * ((_arg1 / _arg4) - 0.5))) + 1)) + _arg2)); } public function endTween():void{ var _local1:TweenEvent; var _local2:Object; _local1 = new TweenEvent(TweenEvent.TWEEN_END); _local2 = getCurrentValue(duration); _local1.value = _local2; dispatchEvent(_local1); if (endFunction != null){ endFunction(_local2); } else { listener.onTweenEnd(_local2); }; Tween.removeTweenAt(id); } public function reverse():void{ if (_isPlaying){ _doReverse = false; seek((duration - _playheadTime)); _invertValues = !(_invertValues); } else { _doReverse = !(_doReverse); }; } mx_internal function doInterval():Boolean{ var _local1:Boolean; var _local2:Number; var _local3:Object; var _local4:TweenEvent; var _local5:TweenEvent; _local1 = false; previousUpdateTime = intervalTime; if (((_isPlaying) || (_doSeek))){ _local2 = (intervalTime - startTime); _playheadTime = _local2; _local3 = getCurrentValue(_local2); if ((((_local2 >= duration)) && (!(_doSeek)))){ endTween(); _local1 = true; } else { if (!started){ _local5 = new TweenEvent(TweenEvent.TWEEN_START); dispatchEvent(_local5); started = true; }; _local4 = new TweenEvent(TweenEvent.TWEEN_UPDATE); _local4.value = _local3; dispatchEvent(_local4); if (updateFunction != null){ updateFunction(_local3); } else { listener.onTweenUpdate(_local3); }; }; _doSeek = false; }; return (_local1); } public function seek(_arg1:Number):void{ var _local2:Number; _local2 = intervalTime; previousUpdateTime = _local2; startTime = (_local2 - _arg1); _doSeek = true; } mx_internal function getCurrentValue(_arg1:Number):Object{ var _local2:Array; var _local3:int; var _local4:int; if (duration == 0){ return (endValue); }; if (_invertValues){ _arg1 = (duration - _arg1); }; if (arrayMode){ _local2 = []; _local3 = startValue.length; _local4 = 0; while (_local4 < _local3) { _local2[_local4] = userEquation(_arg1, startValue[_local4], (endValue[_local4] - startValue[_local4]), duration); _local4++; }; return (_local2); //unresolved jump }; return (userEquation(_arg1, startValue, (Number(endValue) - Number(startValue)), duration)); } mx_internal static function removeTween(_arg1:Tween):void{ removeTweenAt(_arg1.id); } private static function addTween(_arg1:Tween):void{ _arg1.id = activeTweens.length; activeTweens.push(_arg1); if (!timer){ timer = new Timer(interval); timer.addEventListener(TimerEvent.TIMER, timerHandler); timer.start(); } else { timer.start(); }; if (isNaN(intervalTime)){ intervalTime = getTimer(); }; _arg1.startTime = (_arg1.previousUpdateTime = intervalTime); } private static function timerHandler(_arg1:TimerEvent):void{ var _local2:Boolean; var _local3:Number; var _local4:int; var _local5:int; var _local6:Tween; _local2 = false; _local3 = intervalTime; intervalTime = getTimer(); _local4 = activeTweens.length; _local5 = _local4; while (_local5 >= 0) { _local6 = Tween(activeTweens[_local5]); if (_local6){ _local6.needToLayout = false; _local6.doInterval(); if (_local6.needToLayout){ _local2 = true; }; }; _local5--; }; if (_local2){ UIComponentGlobals.layoutManager.validateNow(); }; _arg1.updateAfterEvent(); } private static function removeTweenAt(_arg1:int):void{ var _local2:int; var _local3:int; var _local4:Tween; if ((((_arg1 >= activeTweens.length)) || ((_arg1 < 0)))){ return; }; activeTweens.splice(_arg1, 1); _local2 = activeTweens.length; _local3 = _arg1; while (_local3 < _local2) { _local4 = Tween(activeTweens[_local3]); _local4.id--; _local3++; }; if (_local2 == 0){ intervalTime = NaN; timer.reset(); }; } } }//package mx.effects
Section 128
//TweenEvent (mx.events.TweenEvent) package mx.events { import flash.events.*; import mx.core.*; public class TweenEvent extends Event { public var value:Object; public static const TWEEN_END:String = "tweenEnd"; mx_internal static const VERSION:String = "2.0.1.0"; public static const TWEEN_UPDATE:String = "tweenUpdate"; public static const TWEEN_START:String = "tweenStart"; public function TweenEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Object=null){ super(_arg1, _arg2, _arg3); this.value = _arg4; } override public function clone():Event{ return (new TweenEvent(type, bubbles, cancelable, value)); } } }//package mx.events
Section 129
//ILayoutManager (mx.managers.ILayoutManager) package mx.managers { import flash.events.*; public interface ILayoutManager extends IEventDispatcher { function invalidateDisplayList(_arg1:ILayoutManagerClient):void; function validateClient(_arg1:ILayoutManagerClient, _arg2:Boolean=false):void; function invalidateProperties(_arg1:ILayoutManagerClient):void; function isInvalid():Boolean; function validateNow():void; function set usePhasedInstantiation(_arg1:Boolean):void; function invalidateSize(_arg1:ILayoutManagerClient):void; function get usePhasedInstantiation():Boolean; } }//package mx.managers
Section 130
//ILayoutManagerClient (mx.managers.ILayoutManagerClient) package mx.managers { import flash.events.*; public interface ILayoutManagerClient extends IEventDispatcher { function set updateCompletePendingFlag(_arg1:Boolean):void; function set initialized(_arg1:Boolean):void; function validateProperties():void; function get nestLevel():int; function get updateCompletePendingFlag():Boolean; function validateDisplayList():void; function set processedDescriptors(_arg1:Boolean):void; function get processedDescriptors():Boolean; function validateSize(_arg1:Boolean=false):void; function set nestLevel(_arg1:int):void; function get initialized():Boolean; } }//package mx.managers
Section 131
//NameUtil (mx.utils.NameUtil) package mx.utils { import mx.core.*; import flash.display.*; import flash.utils.*; public class NameUtil { mx_internal static const VERSION:String = "2.0.1.0"; private static var counter:int = 0; public static function displayObjectToString(_arg1:DisplayObject):String{ var _local2:String; var _local3:DisplayObject; var _local4:String; var _local5:Array; _local3 = _arg1; while (_local3 != null) { if (((((_local3.parent) && (_local3.stage))) && ((_local3.parent == _local3.stage)))){ break; }; _local4 = _local3.name; if ((_local3 is IRepeaterClient)){ _local5 = IRepeaterClient(_local3).instanceIndices; if (_local5){ _local4 = (_local4 + (("[" + _local5.join("][")) + "]")); }; }; _local2 = ((_local2 == null)) ? _local4 : ((_local4 + ".") + _local2); _local3 = _local3.parent; }; return (_local2); } public static function createUniqueName(_arg1:Object):String{ var _local2:String; var _local3:int; var _local4:int; if (!_arg1){ return (null); }; _local2 = getQualifiedClassName(_arg1); _local3 = _local2.indexOf("::"); if (_local3 != -1){ _local2 = _local2.substr((_local3 + 2)); }; _local4 = _local2.charCodeAt((_local2.length - 1)); if ((((_local4 >= 48)) && ((_local4 <= 57)))){ _local2 = (_local2 + "_"); }; return ((_local2 + counter++)); } } }//package mx.utils
Section 132
//CirclePart (newpart.CirclePart) package newpart { import synch.*; import flash.display.*; import effects.bparticles.*; import effects.fire.*; import effects.post.*; public class CirclePart implements IDemoPart { private var engine:DemoEngine; private var scaleX:Number;// = 0 private var audio:DistortEffect; private var zoom:Number;// = 0 private var overlays:Array; private var cnt:int;// = 0 private var downscale:DowngradeEffect; private var overlay:BitmapData; private var superCurve:CircleParticles; public function CirclePart(){ cnt = 0; overlays = new Array(6); zoom = 0; scaleX = 0; super(); } public function preInit(_arg1:DemoEngine):void{ downscale = new DowngradeEffect(); downscale.init(_arg1.buffer, {scale:2}); audio = new DistortEffect(); audio.init(downscale.input, {}); superCurve = new CircleParticles(); superCurve.init(audio.input, {transparent:true, texture:new textures.GlowParticle().bitmapData}); superCurve.reset(5, 3, 0.04); } public function on_phase(_arg1:uint):void{ trace("Phase"); engine.music.phase.removeListener(on_phase); engine.music.snare.removeListener(on_snare); engine.music.bassDrum.removeListener(on_bd); engine.music.clap.removeListener(on_clap); engine.removeEffect(downscale); } public function init(_arg1:DemoEngine):void{ this.engine = _arg1; _arg1.addEffect(downscale); downscale.addEffect(audio); audio.addEffect(superCurve); _arg1.music.bassDrum.addListener(on_bd); _arg1.music.phase.addListener(on_phase); _arg1.music.snare.addListener(on_snare); _arg1.partName = "CIRCLES"; overlay = (overlays[5] = new textures.Overlay().bitmapData); overlays[0] = new textures.OverlayA().bitmapData; overlays[1] = new textures.Overlay2().bitmapData; overlays[2] = new textures.Overlay2A().bitmapData; overlays[3] = new textures.Overlay3().bitmapData; overlays[4] = new textures.Overlay3A().bitmapData; _arg1.music.clap.addListener(on_clap); } public function on_bd(_arg1:uint):void{ scaleX = 127; } public function on_clap(_arg1:uint):void{ trace("CLAP!"); overlay = overlays.shift(); overlays.push(overlay); } public function on_snare(_arg1:int):void{ var _local2:int; var _local3:int; zoom = 0.1; _local2 = ((Math.random() * 2) + 3); _local3 = _local2; do { _local3 = ((Math.random() * 4) + 3); } while (_local3 == _local2); superCurve.reset(_local3, _local2, 0.04); trace(_local3, _local2); } public function postPlay(_arg1:Number):void{ engine.buffer.draw(overlay); } public function prePlay(_arg1:Number):void{ zoom = (zoom - (zoom / 10)); scaleX = (scaleX - (scaleX / 5)); cnt = (cnt + _arg1); audio.scaleX = scaleX; } } }//package newpart class textures { public static var Overlay3:Class = textures_Overlay3; public static var Overlay3A:Class = textures_Overlay3A; public static var HairParticle:Class = textures_HairParticle; public static var Overlay:Class = textures_Overlay; public static var OverlayA:Class = textures_OverlayA; public static var GlowParticle:Class = textures_GlowParticle; public static var CubeTexture:Class = textures_CubeTexture; public static var Kukka:Class = textures_Kukka; public static var Overlay2:Class = textures_Overlay2; public static var Overlay2A:Class = textures_Overlay2A; private function textures(){ } }
Section 133
//CreditsPart (newpart.CreditsPart) package newpart { import synch.*; import flash.display.*; import effects.blinds.*; public class CreditsPart implements IDemoPart { private var engine:DemoEngine; private var fire:FireMedusaEffect; private var credits:BitmapData; public function on_phase(_arg1:uint):void{ engine.music.phase.removeListener(on_phase); engine.removeEffect(fire); } public function init(_arg1:DemoEngine):void{ this.engine = _arg1; credits = new textures_credits.CreditsFG().bitmapData; _arg1.partName = "CREDITS"; _arg1.addEffect(fire); _arg1.music.phase.addListener(on_phase); } public function preInit(_arg1:DemoEngine):void{ fire = new FireMedusaEffect(); fire.init(_arg1.buffer, {startX:500, startY:150, tentacleAmount:8, texture:new textures_credits.Fire().bitmapData}); } public function postPlay(_arg1:Number):void{ engine.buffer.draw(credits); } public function prePlay(_arg1:Number):void{ } } }//package newpart class textures_credits { public static var CreditsFG:Class = textures_credits_CreditsFG; public static var Fire:Class = textures_credits_Fire; private function textures_credits(){ } }
Section 134
//EfxPack1 (newpart.EfxPack1) package newpart { import synch.*; import flash.display.*; import effects.bparticles.*; import effects.*; import effects.post.*; import effects.particles.*; import effects.metaball.*; public class EfxPack1 implements IDemoPart { public var showBG:Boolean;// = true private var meta:MetaParticlesEffect; private var efxCounter:int;// = 0 private var down_circle:DowngradeEffect; private var bpartC:Array; private var radius:Number;// = 0 private var bpartS:Array; private var resetCnt:int;// = 0 private var overlays:Array; private var bpartIdx:int;// = 0 private var jump:Number; private var multi:MultiEffect; private var engine:DemoEngine; private var bg:BitmapData; private var circle:FakeMetaCircles; private var bpart:BParticlesEffect; private var overlay:BitmapData; private var efxTime:int;// = 8 private var cnt:int;// = 0 private var moveSpeed:Number;// = 0 private var overlayCnt:int;// = 0 public function EfxPack1(_arg1:Number=0){ cnt = 0; overlays = new Array(6); moveSpeed = 0; radius = 0; overlayCnt = 0; resetCnt = 0; efxCounter = 0; efxTime = 8; bpartC = [2, 4, 5, 3]; bpartS = [0.5, 1, 1.2, 1.3]; bpartIdx = 0; showBG = true; super(); this.jump = _arg1; } public function onBd(_arg1:uint):void{ if ((efxCounter % efxTime) == 0){ multi.nextEffect(); switch (multi.activeEffect){ case bpart: engine.partName = "3D PARTICLES"; break; case meta: engine.partName = "ID PARTICLES"; break; case down_circle: engine.partName = "METABALLS"; break; }; }; if (multi.activeEffect == bpart){ showBG = false; efxTime = 8; if ((resetCnt % 4) == 0){ bpart.reset(bpartC[bpartIdx], false, true); bpart.scale = bpartS[bpartIdx]; bpartIdx++; resetCnt = 0; }; resetCnt++; } else { showBG = true; efxTime = 8; }; if (multi.activeEffect == meta){ moveSpeed = 0.005; }; efxCounter++; } public function init(_arg1:DemoEngine):void{ this.engine = _arg1; down_circle.addEffect(circle); multi.addEffect(bpart); multi.addEffect(meta); multi.addEffect(down_circle); while (jump > 0) { multi.nextEffect(); jump--; }; _arg1.addEffect(multi); bg = new textures_efxpack1.Background().bitmapData; overlay = (overlays[5] = new textures_efxpack1.Overlay().bitmapData); overlays[0] = new textures_efxpack1.OverlayA().bitmapData; overlays[1] = new textures_efxpack1.Overlay2().bitmapData; overlays[2] = new textures_efxpack1.Overlay2A().bitmapData; overlays[3] = new textures_efxpack1.Overlay3().bitmapData; overlays[4] = new textures_efxpack1.Overlay3A().bitmapData; _arg1.music.bassDrum.addListener(onBd); _arg1.music.phase.addListener(on_phase); _arg1.music.clap.addListener(on_clap); switch (multi.activeEffect){ case bpart: _arg1.partName = "3D PARTICLES"; break; case meta: _arg1.partName = "ID PARTICLES"; break; case down_circle: _arg1.partName = "METABALLS"; break; }; } public function on_phase(_arg1:uint):void{ trace("Phase"); engine.music.bassDrum.removeListener(onBd); engine.music.phase.removeListener(on_phase); engine.music.clap.removeListener(on_clap); engine.removeEffect(multi); } public function on_clap(_arg1:uint):void{ trace("CLAP!"); overlay = overlays.shift(); overlays.push(overlay); } public function preInit(_arg1:DemoEngine):void{ multi = new MultiEffect(); multi.init(_arg1.buffer); meta = new MetaParticlesEffect(); meta.init(_arg1.buffer, {amount:200, texture:new BasicParticle(12)}); down_circle = new DowngradeEffect(); down_circle.init(_arg1.buffer, {scale:2, scaley:1, blendMode:BlendMode.ADD}); circle = new FakeMetaCircles(); circle.init(down_circle.input); bpart = new BParticlesEffect(); bpart.init(_arg1.buffer, {texture:new Egg().bitmapData}); } public function postPlay(_arg1:Number):void{ engine.buffer.draw(overlay); } public function prePlay(_arg1:Number):void{ moveSpeed = (moveSpeed - (moveSpeed / 20)); if (multi.activeEffect == meta){ meta.movespeed = (moveSpeed + 0.0005); }; if (showBG){ engine.buffer.draw(bg); }; } } }//package newpart class textures_efxpack1 { public static var Overlay3:Class = textures_efxpack1_Overlay3; public static var Overlay3A:Class = textures_efxpack1_Overlay3A; public static var HairParticle:Class = textures_efxpack1_HairParticle; public static var Background:Class = textures_efxpack1_Background; public static var Overlay:Class = textures_efxpack1_Overlay; public static var OverlayA:Class = textures_efxpack1_OverlayA; public static var GlowParticle:Class = textures_efxpack1_GlowParticle; public static var Overlay2:Class = textures_efxpack1_Overlay2; public static var Overlay2A:Class = textures_efxpack1_Overlay2A; private function textures_efxpack1(){ } }
Section 135
//EfxPack2 (newpart.EfxPack2) package newpart { import synch.*; import flash.display.*; import effects.bparticles.*; import effects.*; import effects.post.*; import effects.cubes.*; import effects.particles.*; public class EfxPack2 implements IDemoPart { private var engine:DemoEngine; private var wire:WireParticlesEffect; private var showBackground:Boolean;// = false private var pCube:ParticleCube; private var bg:BitmapData; private var overlay:BitmapData; private var efxCounter:int;// = 0 private var resetCnt:int;// = 0 private var showOverlay:Boolean;// = true private var overlays:Array; private var downscale:DowngradeEffect; private var cnt:int;// = 0 private var jump:Number; private var superCurve:TorusKnotEffect; private var multi:MultiEffect; public function EfxPack2(_arg1:Number=0){ cnt = 0; overlays = new Array(6); showOverlay = true; showBackground = false; resetCnt = 0; efxCounter = 0; super(); this.jump = _arg1; } public function onBd(_arg1:uint):void{ if ((efxCounter % 4) == 0){ multi.nextEffect(); showBackground = (multi.activeEffect == downscale); switch (multi.activeEffect){ case pCube: engine.partName = "PARTCUBE"; break; case wire: engine.partName = "DOF_MESH"; break; case downscale: engine.partName = "ANIM_KNOT"; break; }; }; efxCounter++; } public function onEffect(_arg1:uint):void{ if (multi.activeEffect == downscale){ showBackground = false; }; engine.music.effect.removeListener(onEffect); engine.music.bassDrum.removeListener(onBd); engine.removeEffect(multi); engine.addEffect(downscale); showBackground = true; multi.activeEffect = downscale; superCurve.reset(5, 4, 0.02); engine.partName = "ANIM_KNOT"; } public function preInit(_arg1:DemoEngine):void{ trace("EfxPack2 preInit"); multi = new MultiEffect(); wire = new WireParticlesEffect(); wire.init(_arg1.buffer, {texture:new Egg()}); downscale = new DowngradeEffect(); downscale.init(_arg1.buffer, {scale:2, forceTransparent:true}); superCurve = new TorusKnotEffect(); superCurve.init(downscale.input, {texture:new textures_efxpack2.Kukka().bitmapData}); superCurve.grow = true; superCurve.reset(6, 5, 0.02); downscale.addEffect(superCurve); pCube = new ParticleCube(); pCube.init(_arg1.buffer, {cubeRadius:2, particle:new BasicParticle(32)}); bg = new textures_efxpack2.Background().bitmapData; } public function on_phase(_arg1:uint):void{ trace("Phase"); engine.music.bassDrum.removeListener(onBd); engine.music.effect.removeListener(onEffect); engine.music.phase.removeListener(on_phase); engine.music.clap.removeListener(on_clap); if (multi.activeEffect != null){ engine.removeEffect(multi); }; engine.removeEffect(downscale); multi.activeEffect = null; } public function init(_arg1:DemoEngine):void{ this.engine = _arg1; multi.init(_arg1.buffer); multi.addEffect(pCube); multi.addEffect(downscale); multi.addEffect(wire); while (jump > 0) { multi.nextEffect(); jump--; }; _arg1.addEffect(multi); showOverlay = true; if (multi.activeEffect == downscale){ showBackground = true; }; overlay = (overlays[5] = new textures_efxpack2.Overlay().bitmapData); overlays[0] = new textures_efxpack2.OverlayA().bitmapData; overlays[1] = new textures_efxpack2.Overlay2().bitmapData; overlays[2] = new textures_efxpack2.Overlay2A().bitmapData; overlays[3] = new textures_efxpack2.Overlay3().bitmapData; overlays[4] = new textures_efxpack2.Overlay3A().bitmapData; _arg1.music.phase.addListener(on_phase); _arg1.music.effect.addListener(onEffect); _arg1.music.bassDrum.addListener(onBd); _arg1.music.clap.addListener(on_clap); switch (multi.activeEffect){ case pCube: _arg1.partName = "PARTCUBE"; break; case wire: _arg1.partName = "DOF_MESH"; break; case downscale: _arg1.partName = "ANIM_KNOT"; break; }; } public function prePlay(_arg1:Number):void{ if (showBackground){ engine.buffer.draw(bg); }; } public function on_clap(_arg1:uint):void{ trace("CLAP!"); overlay = overlays.shift(); overlays.push(overlay); } public function postPlay(_arg1:Number):void{ if (showOverlay){ engine.buffer.draw(overlay); }; } } }//package newpart class textures_efxpack2 { public static var Overlay3:Class = textures_efxpack2_Overlay3; public static var Overlay3A:Class = textures_efxpack2_Overlay3A; public static var Overlay:Class = textures_efxpack2_Overlay; public static var OverlayA:Class = textures_efxpack2_OverlayA; public static var Background:Class = textures_efxpack2_Background; public static var Kukka:Class = textures_efxpack2_Kukka; public static var Overlay2:Class = textures_efxpack2_Overlay2; public static var Overlay2A:Class = textures_efxpack2_Overlay2A; private function textures_efxpack2(){ } }
Section 136
//FinalePart (newpart.FinalePart) package newpart { import flash.events.*; import synch.*; import flash.display.*; import flash.net.*; import flash.ui.*; public class FinalePart implements IDemoPart { private var endBg:BitmapData; private var engine:DemoEngine; private function onClick(_arg1:Event):void{ navigateToURL(new URLRequest("http://evo.bombsquad.org")); } public function init(_arg1:DemoEngine):void{ Mouse.show(); this.engine = _arg1; endBg = new texturesF.EndGfx().bitmapData; _arg1.partName = "THE_END"; DemoFactory.demo.useHandCursor = true; DemoFactory.demo.buttonMode = true; DemoFactory.demo.addEventListener(MouseEvent.CLICK, onClick); } public function preInit(_arg1:DemoEngine):void{ } public function prePlay(_arg1:Number):void{ engine.buffer.draw(endBg); } public function postPlay(_arg1:Number):void{ } } }//package newpart class texturesF { public static var EndGfx:Class = texturesF_EndGfx; private function texturesF(){ } }
Section 137
//GreetingsPart (newpart.GreetingsPart) package newpart { import synch.*; import flash.display.*; import effects.*; import effects.post.*; import effects.greets.*; public class GreetingsPart implements IDemoPart { private var engine:DemoEngine; private var bloom:RadialBlurEffect; private var bg:BitmapData; private var dorandom:Boolean;// = false private var greetPlayer:GreetingsPlayer; private var halfBall:HalfballEffect; private var dist:Number;// = 0 public function GreetingsPart(){ dorandom = false; dist = 0; super(); } public function init(_arg1:DemoEngine):void{ bg = new textures_greetings.Background().bitmapData; this.engine = _arg1; bloom = new RadialBlurEffect(); bloom.init(_arg1.buffer, {transparent:true, blendMode:BlendMode.ADD, layers:10, outMode:BlendMode.NORMAL}); bloom.zoom = -0.03; bloom.alphaFade = 0.2; bloom.blurOffsetY = 0; halfBall = new HalfballEffect(); halfBall.init(_arg1.buffer); greetPlayer = new GreetingsPlayer(); greetPlayer.init(bloom.input, {}); _arg1.addEffect(halfBall); _arg1.addEffect(bloom); bloom.addEffect(greetPlayer); _arg1.music.phase.addListener(on_phase); _arg1.music.snare.addListener(on_snare); _arg1.music.effect.addListener(on_effect); _arg1.partName = "GREETINGS"; } public function preInit(_arg1:DemoEngine):void{ } private function on_phase(_arg1:uint):void{ engine.music.phase.removeListener(on_phase); engine.music.snare.removeListener(on_snare); engine.music.effect.removeListener(on_effect); engine.removeEffect(halfBall); engine.removeEffect(bloom); } private function on_effect(_arg1:uint):void{ dorandom = true; } public function postPlay(_arg1:Number):void{ } public function prePlay(_arg1:Number):void{ if (dorandom){ dist = (dist + (_arg1 * 0.05)); halfBall.random(); engine.distortAmt = int(dist); }; } private function on_snare(_arg1:uint):void{ greetPlayer.next(); halfBall.flash(); } } }//package newpart class textures_greetings { public static var Background:Class = textures_greetings_Background; private function textures_greetings(){ } }
Section 138
//HairyTorusPart (newpart.HairyTorusPart) package newpart { import synch.*; import effects.bparticles.*; import effects.post.*; public class HairyTorusPart implements IDemoPart { private var engine:DemoEngine; private var bloom:RadialBlurEffect; private var zoom:Number;// = 0 private var downscale:DowngradeEffect; private var cnt:int;// = 0 private var superCurve:TorusKnotEffect; public function HairyTorusPart(){ cnt = 0; zoom = 0; super(); } public function postPlay(_arg1:Number):void{ } public function init(_arg1:DemoEngine):void{ this.engine = _arg1; _arg1.addEffect(downscale); downscale.addEffect(bloom); bloom.addEffect(superCurve); _arg1.music.bassDrum.addListener(on_bd); _arg1.music.phase.addListener(on_phase); _arg1.music.snare.addListener(on_snare); _arg1.partName = "DOF TORUSKNOT"; } public function preInit(_arg1:DemoEngine):void{ downscale = new DowngradeEffect(); downscale.init(_arg1.buffer, {scale:2}); bloom = new RadialBlurEffect(); bloom.init(downscale.input, {}); bloom.zoom = 0; bloom.alphaFade = 0; superCurve = new TorusKnotEffect(); superCurve.init(bloom.input, {transparent:true, texture:new textures.HairParticle().bitmapData}); superCurve.reset(5, 3, 0.04); } public function on_phase(_arg1:uint):void{ trace("Phase"); engine.music.phase.removeListener(on_phase); engine.music.snare.removeListener(on_snare); engine.music.bassDrum.removeListener(on_bd); engine.removeEffect(downscale); } public function on_bd(_arg1:uint):void{ } public function on_snare(_arg1:int):void{ var _local2:int; var _local3:int; zoom = 0.1; _local2 = ((Math.random() * 2) + 3); _local3 = _local2; do { _local3 = ((Math.random() * 4) + 3); } while (_local3 == _local2); superCurve.reset(_local3, _local2, 0.04); trace(_local3, _local2); } public function prePlay(_arg1:Number):void{ zoom = (zoom - (zoom / 10)); cnt = (cnt + _arg1); bloom.alphaFade = (zoom * 2); bloom.zoom = zoom; bloom.blurOffsetX = (Math.sin((cnt * (0.003 + (zoom * 0.01)))) * 200); bloom.blurOffsetY = (Math.sin((cnt * (0.003 + (zoom * 0.01)))) * 100); } } }//package newpart class textures { public static var GlowParticle:Class = textures_GlowParticle; public static var Kukka:Class = textures_Kukka; public static var HairParticle:Class = textures_HairParticle; public static var CubeTexture:Class = textures_CubeTexture; private function textures(){ } }
Section 139
//IntroPart (newpart.IntroPart) package newpart { import synch.*; import flash.display.*; import flash.geom.*; import effects.*; import flash.filters.*; public class IntroPart implements IDemoPart { private var PresentsLogo:Class; private var stage:Stage; private var EvoLogo:Class; private var lefx:LonkeroEffect; private var demologo:DemoLogo; private var presbufs:Array; private var presblur:Number;// = 64 private var prespt:Point; private var showPresents:Boolean;// = false private var presfilt:BlurFilter; private var demobmp:BitmapData; private var showADHDTV:Boolean;// = false private var _engine:DemoEngine; private var evobmp:BitmapData; private var cnt:int;// = 0 private var showEvoLogo:Boolean;// = false private var presentsbmp:BitmapData; public function IntroPart(){ EvoLogo = IntroPart_EvoLogo; PresentsLogo = IntroPart_PresentsLogo; presbufs = new Array(); showEvoLogo = false; showPresents = false; showADHDTV = false; prespt = new Point(); presfilt = new BlurFilter(4, 1); presblur = 64; cnt = 0; super(); } public function init(_arg1:DemoEngine):void{ var _local2:int; var _local3:BitmapData; _engine = _arg1; stage = _arg1.stage; evobmp = new EvoLogo().bitmapData; presentsbmp = new PresentsLogo().bitmapData; showEvoLogo = true; demologo = new DemoLogo(); _arg1.music.effect.addListener(onEffect); _arg1.music.phase.addListener(onPhase); _arg1.music.reso.addListener(onReso); _arg1.music.clap.addListener(onClap); _local2 = 0; while (_local2 <= 64) { _local3 = new BitmapData(800, 400, true, 0); presfilt.blurX = _local2; _local3.applyFilter(presentsbmp, _local3.rect, prespt, presfilt); presbufs[_local2] = _local3; _local2++; }; _arg1.partName = "INTRO"; } private function onEffect(_arg1:int):void{ _engine.music.effect.removeListener(onEffect); _engine.music.effect.addListener(onEffect1); _engine.addEffect(lefx); _engine.partName = "INTRO"; } public function preInit(_arg1:DemoEngine):void{ _engine = _arg1; lefx = new LonkeroEffect(); lefx.init(_engine.buffer, {}); } private function onReso(_arg1:int):void{ demologo.reso(); _engine.partName = ">ADHDTV"; } private function onClap(_arg1:int):void{ } private function onPhase(_arg1:int):void{ showEvoLogo = false; showPresents = false; showADHDTV = false; _engine.removeEffect(lefx); _engine.music.reso.removeListener(onReso); _engine.music.clap.removeListener(onClap); } private function onEffect1(_arg1:int):void{ _engine.music.effect.removeListener(onEffect1); _engine.music.effect.addListener(onEffect2); showPresents = true; trace("presents"); _engine.partName = "INTRO"; } private function onEffect2(_arg1:int):void{ _engine.music.effect.removeListener(onEffect2); showADHDTV = true; _engine.partName = ">ADHDTV"; } public function postPlay(_arg1:Number):void{ if (showPresents){ _engine.buffer.draw(presbufs[int(presblur)]); presblur = (presblur - (presblur / 32)); }; if (showADHDTV){ demologo.play(_arg1); _engine.buffer.draw(demologo); }; } public function prePlay(_arg1:Number):void{ cnt = (cnt + _arg1); if (showEvoLogo){ if (demologo.bgdone){ showEvoLogo = (showPresents = false); _engine.removeEffect(lefx); } else { _engine.buffer.draw(evobmp); }; }; } } }//package newpart import flash.events.*; import flash.display.*; import intro.*; import flash.utils.*; import flash.filters.*; class IntroTvz extends IntroTvzAsset { private var letters:IntroLettersAsset; private var cnts:Array; private var origY:Dictionary; private var movingtvz:Array; private var blurfilt:BlurFilter; private var gcnt:int;// = 0 private var shp:Shape; private var tittleShowed:Boolean;// = false private function IntroTvz():void{ var _local1:int; shp = new Shape(); cnts = new Array(); gcnt = 0; movingtvz = new Array(); origY = new Dictionary(); tittleShowed = false; letters = new IntroLettersAsset(); blurfilt = new BlurFilter(32, 1, 1); super(); this.stop(); trace(this.numChildren); addChildAt(shp, 0); _local1 = 0; while (_local1 < 32) { cnts.push((Math.random() * 4294967295)); _local1++; }; } override public function nextFrame():void{ this.addEventListener(Event.ADDED, onAdded); super.nextFrame(); } private function onAdded(_arg1:Event):void{ var _local2:DisplayObject; if (_arg1.target.parent != this){ return; }; _local2 = DisplayObject(_arg1.target); movingtvz.push(_local2); origY[_local2] = _local2.y; _local2.y = (_local2.y - 400); movingtvz.sortOn("y"); } public function reso():void{ blurfilt.blurX = 32; } public function lonkeros(_arg1:int):void{ var _local2:Graphics; var _local3:int; var _local4:int; var _local5:int; var _local6:Number; var _local7:int; var _local8:Number; var _local9:Number; var _local10:int; var _local11:int; var _local12:DisplayObject; var _local13:Number; _local2 = shp.graphics; gcnt = (gcnt + _arg1); _local2.clear(); _local2.lineStyle(1, 0); _local4 = 0; _local4 = ((gcnt - 1000) * 0.05); if (_local4 < 0){ _local4 = 0; }; if (_local4 > 50){ _local4 = 50; }; _local3 = 0; while (_local3 < 32) { _local6 = ((_local3 * Math.PI) / 4); _local7 = (cnts[_local3] + (_arg1 * 0.25)); cnts[_local3] = _local7; _local2.moveTo(400, 200); _local8 = 0; _local9 = 0; _local10 = _local7; _local11 = 0; while (_local11 < _local4) { _local7 = (_local7 - 34); _local10 = (_local10 - 4); _local8 = ((((Math.sin((_local7 * 0.003)) * 30) + (Math.sin((_local7 * 0.004)) * 30)) + (Math.sin((_local7 * 0.0021)) * 30)) + (Math.sin((_local7 * 0.0033)) * 30)); _local9 = ((((Math.sin((_local7 * 0.0031)) * 40) + (Math.sin((_local7 * -0.0045)) * 40)) + (Math.sin((_local7 * -0.002)) * 40)) + (Math.sin((_local7 * 0.0044)) * 40)); _local9 = (_local9 * Math.sin(((_local10 * 0.004) + _local6))); _local8 = (_local8 * (Math.sin(((_local7 * 0.004) + _local6)) * Math.sin(((_local7 * 0.005) + _local6)))); if ((_local3 & 1)){ _local2.lineTo(((400 + _local8) - (11 * _local11)), (200 + _local9)); } else { _local2.lineTo(((400 + _local8) + (11 * _local11)), (200 + _local9)); }; _local11++; }; _local3++; }; _local5 = 0; _local3 = 0; while (_local3 < movingtvz.length) { _local12 = movingtvz[_local3]; trace(_local12); if (_local12 == null){ } else { _local12.y = (_local12.y + ((33 / _arg1) * ((_local3 + 5) * 2))); if (_local12.y > origY[_local12]){ _local12.y = origY[_local12]; movingtvz[_local3] = null; } else { _local5++; }; }; _local3++; }; if (tittleShowed){ _local13 = blurfilt.blurX; _local13 = (blurfilt.blurX - (_local13 / 10)); blurfilt.blurX = int(_local13); letters.filters = [blurfilt]; }; if ((((_local5 == 0)) && (!(tittleShowed)))){ tittleShowed = true; this.removeEventListener(Event.ADDED, onAdded); addChild(letters); letters.filters = [blurfilt]; }; } } class DemoLogo extends Sprite { private var tvz:IntroTvz; private var tvzcache:Bitmap; private var cnt:int;// = 0 private var shp:Shape; private function DemoLogo():void{ var _local1:Bitmap; shp = new Shape(); tvz = new IntroTvz(); cnt = 0; super(); tvz.stop(); _local1 = new Bitmap(new IntroBG(800, 400)); tvzcache = new Bitmap(new BitmapData(800, 400, true, 0)); addChild(_local1); addChild(tvzcache); tvzcache.bitmapData.draw(tvz); tvz.nextFrame(); this.mask = shp; } public function play(_arg1:int):void{ var _local2:Graphics; cnt = (cnt + _arg1); if (!bgdone){ _local2 = shp.graphics; _local2.beginFill(0); _local2.drawCircle(400, 200, (cnt * 0.5)); _local2.endFill(); this.mask = shp; } else { if (this.mask != null){ removeChild(tvzcache); addChild(tvz); }; this.mask = null; }; if (this.mask == null){ tvz.lonkeros(_arg1); }; } public function get bgdone():Boolean{ return (((cnt * 0.5) > 500)); } public function reso():void{ tvz.reso(); } }
Section 140
//IntroPart_EvoLogo (newpart.IntroPart_EvoLogo) package newpart { import mx.core.*; public class IntroPart_EvoLogo extends BitmapAsset { } }//package newpart
Section 141
//IntroPart_PresentsLogo (newpart.IntroPart_PresentsLogo) package newpart { import mx.core.*; public class IntroPart_PresentsLogo extends BitmapAsset { } }//package newpart
Section 142
//RaytracePart (newpart.RaytracePart) package newpart { import synch.*; import flash.display.*; import effects.post.*; import effects.tunnel.*; public class RaytracePart implements IDemoPart { private var engine:DemoEngine; private var superShape:SuperShapeTunnelEffect; private var downscale:DowngradeEffect; private var cnt:int;// = 0 private var overlay:BitmapData; public function RaytracePart(){ cnt = 0; super(); } public function on_effect(_arg1:uint):void{ superShape.speed1 = -(superShape.speed1); superShape.speed2 = -(superShape.speed2); superShape.speed3 = -(superShape.speed3); superShape.texture = new texturesRP.Texture2().bitmapData; superShape.normal = true; engine.partName = "RT RAYTRACE"; } public function preInit(_arg1:DemoEngine):void{ } public function postPlay(_arg1:Number):void{ engine.buffer.draw(overlay); } public function on_phase(_arg1:uint):void{ engine.music.phase.removeListener(on_phase); engine.music.effect.removeListener(on_effect); engine.removeEffect(downscale); } public function prePlay(_arg1:Number):void{ } public function init(_arg1:DemoEngine):void{ this.engine = _arg1; downscale = new DowngradeEffect(); downscale.init(_arg1.buffer, {scale:5, smooth:true}); superShape = new SuperShapeTunnelEffect(); superShape.init(downscale.input, {texture:new texturesRP.Texture().bitmapData, texture2:new texturesRP.Texture2().bitmapData}); overlay = new texturesRP.Overlay().bitmapData; downscale.addEffect(superShape); _arg1.addEffect(downscale); _arg1.music.phase.addListener(on_phase); _arg1.music.effect.addListener(on_effect); _arg1.partName = "RT RAYTRACE"; } } }//package newpart class texturesRP { public static var Overlay:Class = texturesRP_Overlay; public static var Texture2:Class = texturesRP_Texture2; public static var Texture:Class = texturesRP_Texture; private function texturesRP(){ } }
Section 143
//SuperShapePart (newpart.SuperShapePart) package newpart { import synch.*; import effects.bparticles.*; import effects.discotiles.*; public class SuperShapePart implements IDemoPart { private var engine:DemoEngine; private var superShape:SuperShapeEffect; private var disco:DiscoTilesEffect; public function on_bd(_arg1:uint):void{ engine.partName = "SUPERSHAPES"; } public function on_phase(_arg1:uint):void{ engine.music.phase.removeListener(on_phase); engine.music.effect.removeListener(on_effect); engine.music.bassDrum.removeListener(on_bd); engine.removeEffect(superShape); engine.removeEffect(disco); } public function init(_arg1:DemoEngine):void{ _arg1.addEffect(disco); _arg1.addEffect(superShape); _arg1.music.phase.addListener(on_phase); _arg1.music.effect.addListener(on_effect); _arg1.partName = "SUPERSHAPES"; } public function on_effect(_arg1:uint):void{ superShape.ratio = 0; superShape.shape1a.m = 6; superShape.shape1a.n1 = 60; superShape.shape1a.n2 = 55; superShape.shape1a.n3 = 1000; superShape.shape1b.m = 6; superShape.shape1a.n1 = 250; superShape.shape1a.n2 = 100; superShape.shape1a.n3 = 100; superShape.shape2a.m = 5.7; superShape.shape1a.n1 = 0.5; superShape.shape1a.n2 = 1; superShape.shape1a.n3 = 2.5; superShape.shape2b.m = 10; superShape.shape1a.n1 = 3; superShape.shape1a.n2 = 0.2; superShape.shape1a.n3 = 1; superShape.speed = 0.05; engine.music.bassDrum.addListener(on_bd); } public function preInit(_arg1:DemoEngine):void{ this.engine = _arg1; superShape = new SuperShapeEffect(); superShape.init(_arg1.buffer, {segmentsW:15, segmentsH:30, radius:100, speed:0}); superShape.ratio = 0; superShape.shape1a.m = 6; superShape.shape1a.n1 = 60; superShape.shape1a.n2 = 55; superShape.shape1a.n3 = 1000; superShape.shape2a.m = 6; superShape.shape2a.n1 = 250; superShape.shape2a.n2 = 100; superShape.shape2a.n3 = 100; superShape.shape1a.m = 5; superShape.shape1a.n1 = 0.1; superShape.shape1a.n2 = 1.7; superShape.shape1a.n3 = 1.7; superShape.shape2a.m = 1; superShape.shape2a.n1 = 0.3; superShape.shape2a.n2 = 0.5; superShape.shape2a.n3 = 0.5; superShape.speed = 0.05; disco = new DiscoTilesEffect(); disco.init(_arg1.buffer, {xoffset:-64, yoffset:-20, tilew:24, tileh:6, tileSize:96, tilemask:new textures5.Discomask().bitmapData, colormap:new textures5.Discomap().bitmapData}); } public function postPlay(_arg1:Number):void{ } public function prePlay(_arg1:Number):void{ } } }//package newpart class textures5 { public static var Discomap:Class = textures5_Discomap; public static var Discomask:Class = textures5_Discomask; private function textures5(){ } }
Section 144
//TunnelPart (newpart.TunnelPart) package newpart { import synch.*; import flash.display.*; import effects.bparticles.*; import effects.post.*; public class TunnelPart implements IDemoPart { private var engine:DemoEngine; private var down_tunnel:DowngradeEffect; private var overlay:BitmapData; private var ptunnel:ParticleTunnelEffect; public function preInit(_arg1:DemoEngine):void{ down_tunnel = new DowngradeEffect(); down_tunnel.init(_arg1.buffer, {scale:2}); ptunnel = new ParticleTunnelEffect(); ptunnel.init(down_tunnel.input, {amount:60, part:new textures_tunnel.Hair().bitmapData, texture:new textures_tunnel.Kukka().bitmapData}); down_tunnel.addEffect(ptunnel); } public function postPlay(_arg1:Number):void{ engine.buffer.draw(overlay); } public function on_phase(_arg1:uint):void{ trace("Phase"); engine.music.phase.removeListener(on_phase); engine.removeEffect(down_tunnel); } public function prePlay(_arg1:Number):void{ } public function init(_arg1:DemoEngine):void{ overlay = new textures_tunnel.Overlay().bitmapData; this.engine = _arg1; _arg1.addEffect(down_tunnel); _arg1.music.phase.addListener(on_phase); _arg1.partName = "TUNNEL"; } } }//package newpart class textures_tunnel { public static var Hair:Class = textures_tunnel_Hair; public static var Kukka:Class = textures_tunnel_Kukka; public static var Tunnel:Class = textures_tunnel_Tunnel; public static var Overlay:Class = textures_tunnel_Overlay; private function textures_tunnel(){ } }
Section 145
//TwisterPart (newpart.TwisterPart) package newpart { import synch.*; import effects.post.*; import effects.twister.*; public class TwisterPart implements IDemoPart { private var downscale:DowngradeEffect; private var engine:DemoEngine; private var twister:SuperShapeTwisterEffect; private function on_phase(_arg1:uint):void{ engine.music.phase.removeListener(on_phase); engine.removeEffect(twister); } public function preInit(_arg1:DemoEngine):void{ this.engine = _arg1; } public function postPlay(_arg1:Number):void{ } public function prePlay(_arg1:Number):void{ } public function init(_arg1:DemoEngine):void{ twister = new SuperShapeTwisterEffect(); twister.init(_arg1.buffer, {}); _arg1.addEffect(twister); _arg1.music.phase.addListener(on_phase); _arg1.partName = "SS TWISTER"; } } }//package newpart
Section 146
//PlayAsset (play.PlayAsset) package play { import flash.display.*; public dynamic class PlayAsset extends MovieClip { public var adhdtv:MovieClip; public var windowed:MovieClip; public var fullscreen:MovieClip; } }//package play
Section 147
//AbstractDemoEffect (synch.AbstractDemoEffect) package synch { import flash.display.*; public class AbstractDemoEffect implements IDemoEffect { protected var _buffer:BitmapData; public function set output(_arg1:BitmapData):void{ _buffer = _arg1; } public function init(_arg1:BitmapData, _arg2:Object=null):void{ _buffer = _arg1; } public function play(_arg1:Number):void{ } } }//package synch
Section 148
//AbstractPostProcessor (synch.AbstractPostProcessor) package synch { import flash.display.*; import flash.geom.*; public class AbstractPostProcessor implements IPostProcessor { protected var buffer:BitmapData; private var childEffects:Array; protected var scaler:Matrix; protected var _input:BitmapData; public function AbstractPostProcessor(){ childEffects = new Array(); } public function set output(_arg1:BitmapData):void{ this.buffer = _arg1; } protected function copyInput():void{ buffer.lock(); buffer.fillRect(buffer.rect, 0); buffer.draw(input, scaler); buffer.unlock(); } public function get input():BitmapData{ return (_input); } public function addEffect(_arg1:IDemoEffect):void{ childEffects.push(_arg1); } public function play(_arg1:Number):void{ var _local2:IDemoEffect; for each (_local2 in childEffects) { _local2.play(_arg1); }; } public function removeEffect(_arg1:IDemoEffect):void{ var tmp:Function; var efx = _arg1; tmp = function (_arg1, _arg2:int, _arg3:Array):Boolean{ return (!((_arg1 == efx))); }; childEffects = childEffects.filter(tmp); } public function init(_arg1:BitmapData, _arg2:Object=null):void{ if (_input == null){ _input = new BitmapData(_arg1.width, _arg1.height, false, 0); }; buffer = _arg1; } } }//package synch
Section 149
//DemoEngine (synch.DemoEngine) package synch { import flash.events.*; import flash.display.*; import flash.text.*; import flash.geom.*; import effects.*; import flash.utils.*; import effects.fire.*; import flash.ui.*; public class DemoEngine extends Bitmap { private var curPhase:uint;// = 0 private var textRender:BitmapData; public var music:Music; public var distortAmt:Number;// = 0 private var currentEffects:Array; private var frameListeners:Array; public var buffer:BitmapData; private var curPart:IDemoPart; private var currentEffect:IDemoEffect; private var _partName:String;// = "" private var lastTime:uint; private var cshown:int;// = 5000 private var distort:DistortEffect; private var fmt:TextFormat; private var curTrigId:uint; private var parts:Array; private var postProcessors:Dictionary; private var textMat:Matrix; public function DemoEngine(_arg1:int, _arg2:int){ curPhase = 0; textMat = new Matrix(); distortAmt = 0; cshown = 5000; _partName = ""; fmt = new TextFormat("DDPetit08", 80, 0xFF00, true); buffer = new BitmapData(_arg1, _arg2, false, 0); super(buffer); parts = new Array(); currentEffects = new Array(); frameListeners = new Array(); distort = new DistortEffect(); distort.init(buffer, {short:true}); } public function addPart(_arg1:IDemoPart):void{ parts.push(_arg1); _arg1.preInit(this); } public function removeEffect(_arg1:IDemoEffect):void{ var tmp:Function; var efx = _arg1; tmp = function (_arg1, _arg2:int, _arg3:Array):Boolean{ return (!((_arg1 == efx))); }; currentEffects = currentEffects.filter(tmp); } public function set partName(_arg1:String):void{ var _local2:TextRender; if (_arg1 != _partName){ cshown = 0; }; _partName = _arg1; _local2 = new TextRender(_partName.toUpperCase(), fmt); _local2.blendMode = BlendMode.NORMAL; textRender = _local2.bitmapData; textMat.identity(); textMat.tx = ((buffer.width - (textRender.width / 2)) - 10); textMat.ty = 10; distortAmt = 128; } public function startDemo():void{ Mouse.hide(); music.play((0 * 1000)); lastTime = getTimer(); addEventListener("enterFrame", onFrame); curPart = parts[curPhase]; curPart.init(this); } public function addEffect(_arg1:IDemoEffect):void{ currentEffects.push(_arg1); } private function onFrame(_arg1:Event):void{ var _local2:uint; var _local3:uint; var _local4:IDemoEffect; buffer.lock(); buffer.fillRect(buffer.rect, 0); music.tick(); if (curPart == null){ buffer.unlock(); return; }; _local2 = getTimer(); _local3 = (_local2 - lastTime); curPart.prePlay(_local3); for each (_local4 in currentEffects) { _local4.play(_local3); }; curPart.postPlay(_local3); lastTime = _local2; cshown = (cshown + _local3); if (cshown < 2000){ buffer.draw(textRender, textMat); }; buffer.unlock(); if (distortAmt > 4){ distort.scaleX = distortAmt; distort.play(0); distortAmt = (distortAmt - (distortAmt / 3)); }; } private function onPhase(_arg1:uint):void{ trace("Engine phase!", curPhase); curPhase = (curPhase + 1); curPart = parts[curPhase]; if (curPart == null){ return; }; curPart.init(this); } public function setMusic(_arg1:Music):void{ this.music = _arg1; _arg1.phase.addListener(onPhase); } } }//package synch
Section 150
//IDemoEffect (synch.IDemoEffect) package synch { import flash.display.*; public interface IDemoEffect { function init(_arg1:BitmapData, _arg2:Object=null):void; function set output(_arg1:BitmapData):void; function play(_arg1:Number):void; } }//package synch
Section 151
//IDemoPart (synch.IDemoPart) package synch { public interface IDemoPart { function init(_arg1:DemoEngine):void; function preInit(_arg1:DemoEngine):void; function postPlay(_arg1:Number):void; function prePlay(_arg1:Number):void; } }//package synch
Section 152
//IPostProcessor (synch.IPostProcessor) package synch { import flash.display.*; public interface IPostProcessor extends IDemoEffect { function removeEffect(_arg1:IDemoEffect):void; function addEffect(_arg1:IDemoEffect):void; function get input():BitmapData; } }//package synch
Section 153
//Music (synch.Music) package synch { public class Music extends Sequencer { public var quickSwitch:Tick; public var greet:Tick; public var phase:Tick; public var snare:Tick; public var bassDrum:Tick; public var effect:Tick; public var reso:Tick; public var zoom:Tick; public var clap:Tick; public var flash:Tick; public var longflash:Tick; public function Music(){ phase = new Tick(); zoom = new Tick(); greet = new Tick(); snare = new Tick(); bassDrum = new Tick(); effect = new Tick(); quickSwitch = new Tick(); flash = new Tick(); longflash = new Tick(); reso = new Tick(); clap = new Tick(); super(); setBPM(130); setOffset(-120); makeTriggers(); } public function makeTriggers():void{ var _local1:TickPattern; var _local2:TickPattern; var _local3:TickPattern; var _local4:TickPattern; var _local5:TickPattern; var _local6:TickPattern; var _local7:TickPattern; var _local8:TickPattern; var _local9:TickPattern; var _local10:TickPattern; var _local11:TickPattern; var _local12:TickPattern; var _local13:TickPattern; var _local14:TickPattern; var _local15:TickPattern; var _local16:TickPattern; var _local17:TickPattern; var _local18:TickPattern; var _local19:TickPattern; var _local20:TickPattern; var _local21:TickPattern; var _local22:int; var _local23:int; _local1 = new TickPattern(phase, 0); _local2 = new TickPattern(phase, 0, 2); _local3 = new TickPattern(phase, 1); _local4 = new TickPattern(phase, 0, 1, 2, 3); _local5 = new TickPattern(effect, 0); _local6 = new TickPattern(effect, 2); _local7 = new TickPattern(effect, 3); _local8 = new TickPattern(reso, 0.5, 1.5); _local9 = new TickPattern(clap, 0, 1.5, 2, 3); _local10 = new TickPattern(clap, 1, 1.25, 2.5, 2.75, 3, 3.25); _local11 = new TickPattern(quickSwitch, 3.75); _local12 = new TickPattern(quickSwitch, 0); _local13 = new TickPattern(bassDrum, 0, 1, 2, 3); _local14 = new TickPattern(bassDrum, 0, 2); _local15 = new TickPattern(bassDrum, 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5); _local16 = new TickPattern(snare, 1, 3); _local17 = new TickPattern(snare, 3); _local18 = new TickPattern(flash, 0, 1, 2, 3); _local19 = new TickPattern(flash, 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5); _local20 = new TickPattern(flash, 0); _local21 = new TickPattern(longflash, 0); addTickers(); addTickers(); addTickers(); addTickers(_local6); addTickers(_local9); addTickers(_local5, _local9); addTickers(_local9); addTickers(_local9); addTickers(_local9); addTickers(_local5, _local9); addTickers(); addTickers(); addTickers(_local8); addTickers(_local8); addTickers(_local8); addTickers(_local8); addTickers(_local1, _local13, _local20, _local9); addTickers(_local13, _local9); addTickers(_local13, _local9); addTickers(_local13, _local9); addTickers(_local13, _local5, _local20); addTickers(_local13, _local9); addTickers(_local13, _local9); addTickers(_local13, _local9); addTickers(_local1, _local13, _local20, _local10); addTickers(_local13, _local10); addTickers(_local13, _local10); addTickers(_local13, _local10); addTickers(_local13, _local10, _local20); addTickers(_local13, _local10); addTickers(_local13, _local10); addTickers(_local13, _local10); addTickers(_local1, _local14, _local10); addTickers(_local14, _local10); addTickers(_local14, _local10); addTickers(_local14, _local10); addTickers(_local1, _local13); addTickers(_local13); addTickers(_local13); addTickers(_local13); addTickers(_local1, _local13, _local20, _local5, _local17); addTickers(_local13, _local5, _local17); addTickers(_local13, _local5, _local17); addTickers(_local13, _local5, _local17); addTickers(_local13, _local5, _local17); addTickers(_local13, _local5, _local17); addTickers(_local13, _local5, _local17); addTickers(_local13, _local5, _local17); addTickers(_local1); addTickers(); addTickers(); addTickers(); addTickers(); addTickers(); addTickers(); addTickers(); addTickers(_local1, _local16); addTickers(_local16); addTickers(_local16); addTickers(_local16); addTickers(_local16); addTickers(_local16); addTickers(_local16); addTickers(_local16); addTickers(_local5, _local16); addTickers(); addTickers(); addTickers(); addTickers(_local1, _local13, _local10, _local20); addTickers(_local13, _local10); addTickers(_local13, _local10); addTickers(_local13, _local10); addTickers(_local13, _local10); addTickers(_local13, _local10); addTickers(_local13, _local10); addTickers(_local13, _local10); addTickers(_local5, _local13); addTickers(_local13); addTickers(_local13); addTickers(_local13); addTickers(_local1, _local13); addTickers(_local13); addTickers(_local13); addTickers(_local13); addTickers(_local1, _local13); addTickers(_local13); addTickers(_local13); addTickers(_local13); addTickers(_local5, _local13); addTickers(_local13); addTickers(_local13); addTickers(_local13); addTickers(_local2, _local13, _local20); addTickers(_local2, _local13, _local20); addTickers(_local2, _local13, _local20); addTickers(_local2, _local13, _local20); addTickers(_local4, _local13, _local18); addTickers(_local4, _local13, _local18); addTickers(_local4, _local13, _local18); addTickers(_local4, _local13, _local18); addTickers(_local1, _local21); } } }//package synch
Section 154
//Sequencer (synch.Sequencer) package synch { import flash.media.*; import flash.utils.*; public class Sequencer extends Sound { private var lastRealTickTime:Number;// = 0 private var tickTime:Number; private var tickOffset:Number;// = 0 private var offset:Number;// = 0 private var tickListeners:Array; private var lastTickTime:Number;// = 0 private var tickers:Array; private var tickListenerList:Array; private var startTime:Number;// = 0 private var sndChannel:SoundChannel; private var bpm:Number;// = 125 private var truePlay:Boolean;// = true private var missTime:Number; private var tickAddPos:Number;// = 0 private var tickListenerId:uint;// = 0 private var tickPos:Number;// = 0 private var intervalId:Number; private var isPlay:Boolean;// = false public function Sequencer(){ bpm = 125; isPlay = false; offset = 0; tickListeners = new Array(); tickListenerList = new Array(); tickListenerId = 0; tickers = new Array(); tickAddPos = 0; tickPos = 0; startTime = 0; truePlay = true; tickOffset = 0; lastTickTime = 0; lastRealTickTime = 0; super(); } public function stop():void{ isPlay = false; this.stop(); clearInterval(intervalId); } public function setOffset(_arg1:Number):void{ this.offset = _arg1; } public function setBPM(_arg1:Number):void{ this.bpm = _arg1; this.tickTime = (60000 / (_arg1 * 4)); missTime = tickTime; } public function tick():void{ var _local1:Number; var _local2:Number; if (!isPlay){ return; }; if (truePlay){ _local1 = ((sndChannel.position - offset) - lastTickTime); lastTickTime = (sndChannel.position - offset); } else { _local2 = (getTimer() - startTime); _local1 = ((_local2 - offset) - lastTickTime); lastTickTime = (_local2 - offset); }; missTime = (missTime - _local1); while (missTime < -(tickOffset)) { tickOffset = (missTime + tickOffset); missTime = tickTime; fireTick(); }; } override public function play(_arg1:Number=0, _arg2:int=0, _arg3:SoundTransform=null):SoundChannel{ isPlay = true; if (truePlay){ sndChannel = super.play(_arg1, _arg2, _arg3); } else { _arg1 = getTimer(); }; return (sndChannel); } public function addTickers(... _args):void{ var _local2:TickPattern; var _local3:int; var _local4:Array; for each (_local2 in _args) { _local3 = 0; while (_local3 < _local2.ticks.length) { _local4 = tickers[(_local2.ticks[_local3] + tickAddPos)]; if (_local4 == null){ _local4 = new Array(); }; _local4.push(_local2.ticker); tickers[(_local2.ticks[_local3] + tickAddPos)] = _local4; _local3++; }; }; tickAddPos = (tickAddPos + (4 * 4)); } public function set isTruePlay(_arg1:Boolean):void{ this.truePlay = _arg1; } public function fireTick():void{ var _local1:Tick; if (tickers[tickPos] != undefined){ for each (_local1 in tickers[tickPos]) { _local1.run(tickPos); }; }; tickPos = (tickPos + 1); } } }//package synch
Section 155
//Tick (synch.Tick) package synch { public class Tick { private var listeners:Array; public function Tick(){ listeners = new Array(); super(); } public function addListener(_arg1:Function):void{ listeners.push(_arg1); } public function removeListener(_arg1:Function):void{ var tmp:Function; var func = _arg1; tmp = function (_arg1, _arg2:int, _arg3:Array):Boolean{ return (!((_arg1 == func))); }; listeners = listeners.filter(tmp); } public function run(_arg1:uint):void{ var _local2:int; _local2 = listeners.length; while (_local2 > 0) { _local2--; var _local3 = listeners; _local3[_local2](_arg1); }; } } }//package synch
Section 156
//TickPattern (synch.TickPattern) package synch { public class TickPattern { public var ticks:Array; public var ticker:Tick; public function TickPattern(_arg1:Tick, ... _args){ var _local3:int; ticks = new Array(); super(); this.ticker = _arg1; _local3 = 0; while (_local3 < _args.length) { this.ticks.push(int(Math.floor((_args[_local3] * 4)))); _local3++; }; } } }//package synch
Section 157
//_FontFaceRules (_FontFaceRules) package { import mx.core.*; import flash.display.*; public class _FontFaceRules extends Sprite { private static var _embed__font_D3Curve_medium_normal_1443359732:Class = _FontFaceRules__embed__font_D3Curve_medium_normal_1443359732; private static var _embed__font_DDPetit08_medium_normal_1771948071:Class = _FontFaceRules__embed__font_DDPetit08_medium_normal_1771948071; public static function init(_arg1:IFlexModuleFactory):void{ } } }//package
Section 158
//_FontFaceRules__embed__font_D3Curve_medium_normal_1443359732 (_FontFaceRules__embed__font_D3Curve_medium_normal_1443359732) package { import mx.core.*; public class _FontFaceRules__embed__font_D3Curve_medium_normal_1443359732 extends FontAsset { } }//package
Section 159
//_FontFaceRules__embed__font_DDPetit08_medium_normal_1771948071 (_FontFaceRules__embed__font_DDPetit08_medium_normal_1771948071) package { import mx.core.*; public class _FontFaceRules__embed__font_DDPetit08_medium_normal_1771948071 extends FontAsset { } }//package
Section 160
//DemoFactory (DemoFactory) package { import flash.events.*; import flash.display.*; import flash.utils.*; public class DemoFactory extends MovieClip { public static var demo:DemoFactory; public function DemoFactory(){ stop(); stage.scaleMode = StageScaleMode.NO_SCALE; addEventListener(Event.ENTER_FRAME, onEnterFrame); stage.quality = "medium"; stage.frameRate = 31; demo = this; } private function init():void{ var _local1:Class; var _local2:Object; _local1 = Class(getDefinitionByName("DemoMain")); if (_local1){ _local2 = new (_local1); addChild((_local2 as DisplayObject)); }; } public function onEnterFrame(_arg1:Event):void{ var _local2:Number; graphics.clear(); if (framesLoaded == totalFrames){ removeEventListener(Event.ENTER_FRAME, onEnterFrame); nextFrame(); init(); } else { _local2 = (root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal); graphics.beginFill(0xFFFFFF); graphics.drawRect(0, ((400 / 2) - 10), (800 * _local2), 20); graphics.endFill(); }; } } }//package
Section 161
//DemoMain (DemoMain) package { import flash.events.*; import synch.*; import flash.display.*; import flash.text.*; import effects.*; import flash.utils.*; import newpart.*; import flash.net.*; public class DemoMain extends Sprite { private var music:Music; private var engine:DemoEngine; private var lastTime:int; private var started:Boolean;// = false private var flashEffect:FlashEffect; private var _lasttime:int;// = 0 private var playbuttons:PlayDemo; private var fps:TextField; public function DemoMain(){ fps = new TextField(); _lasttime = 0; started = false; playbuttons = new PlayDemo(); super(); generateParts(); music = new Music(); music.addEventListener("complete", songLoaded); music.addEventListener(ProgressEvent.PROGRESS, progress); music.addEventListener("ioError", songLoaded); music.load(new URLRequest("tekk4.mp3")); playbuttons.addEventListener("startDemo", startDemo); } public function progress(_arg1:ProgressEvent):void{ var _local2:Number; this.graphics.clear(); if ((((_arg1.bytesLoaded == _arg1.bytesTotal)) && (!(started)))){ started = true; engine.setMusic(music); engine.music.flash.addListener(onFlash); engine.music.longflash.addListener(onLongFlash); showPlayButtons(); return; }; _local2 = (_arg1.bytesLoaded / _arg1.bytesTotal); graphics.beginFill(0xFFFFFF); graphics.drawRect((800 * _local2), ((400 / 2) - 10), (800 * (1 - _local2)), 20); graphics.endFill(); } public function onFlash(_arg1:int):void{ if (flashEffect.done){ engine.addEffect(flashEffect); engine.addEventListener(Event.ENTER_FRAME, onFlashFrame); }; flashEffect.speed = 1; flashEffect.reset(); } public function generateParts():void{ engine = new DemoEngine(800, 400); engine.buffer.lock(); flashEffect = new FlashEffect(); flashEffect.init(engine.buffer); engine.addPart(new IntroPart()); engine.addPart(new RaytracePart()); engine.addPart(new EfxPack1(0)); engine.addPart(new CirclePart()); engine.addPart(new CreditsPart()); engine.addPart(new HairyTorusPart()); engine.addPart(new TwisterPart()); engine.addPart(new GreetingsPart()); engine.addPart(new EfxPack2(0)); engine.addPart(new TunnelPart()); engine.addPart(new SuperShapePart()); engine.addPart(new TunnelPart()); engine.addPart(new EfxPack2(2)); engine.addPart(new EfxPack2(1)); engine.addPart(new EfxPack2(0)); engine.addPart(new GreetingsPart()); engine.addPart(new TwisterPart()); engine.addPart(new HairyTorusPart()); engine.addPart(new CirclePart()); engine.addPart(new EfxPack1(2)); engine.addPart(new EfxPack1(1)); engine.addPart(new EfxPack1(0)); engine.addPart(new RaytracePart()); engine.addPart(new TunnelPart()); engine.addPart(new EfxPack2(2)); engine.addPart(new EfxPack2(1)); engine.addPart(new EfxPack2(0)); engine.addPart(new GreetingsPart()); engine.addPart(new TwisterPart()); engine.addPart(new HairyTorusPart()); engine.addPart(new CreditsPart()); engine.addPart(new EfxPack1(2)); engine.addPart(new EfxPack1(1)); engine.addPart(new EfxPack1(0)); engine.addPart(new RaytracePart()); engine.addPart(new FinalePart()); engine.buffer.fillRect(engine.buffer.rect, 0); engine.buffer.unlock(); } private function showPlayButtons():void{ addChild(playbuttons); } private function startDemo(_arg1:Event):void{ started = true; removeChild(playbuttons); addChild(engine); engine.startDemo(); } public function songLoaded(_arg1:Event):void{ if (_arg1.type == "ioError"){ engine.setMusic(music); music.isTruePlay = false; showPlayButtons(); }; engine.music.flash.addListener(onFlash); engine.music.longflash.addListener(onLongFlash); trace("demo started"); } public function onLongFlash(_arg1:int):void{ if (flashEffect.done){ engine.addEffect(flashEffect); engine.addEventListener(Event.ENTER_FRAME, onFlashFrame); }; flashEffect.speed = 4; flashEffect.reset(); } public function onEnterFrame(_arg1:Event):void{ var _local2:uint; _local2 = getTimer(); fps.text = int((1000 / (_local2 - _lasttime))).toString(); _lasttime = _local2; } private function onFlashFrame(_arg1:Event):void{ if (flashEffect == null){ engine.removeEventListener(Event.ENTER_FRAME, onFlashFrame); }; if (flashEffect.done){ trace("Removink"); engine.removeEffect(flashEffect); engine.removeEventListener(Event.ENTER_FRAME, onFlashFrame); }; } } }//package
Section 162
//models_GeoballModel (models_GeoballModel) package { import mx.core.*; public class models_GeoballModel extends ByteArrayAsset { } }//package
Section 163
//models_HalfBallModel1 (models_HalfBallModel1) package { import mx.core.*; public class models_HalfBallModel1 extends ByteArrayAsset { } }//package
Section 164
//PlayDemo (PlayDemo) package { import flash.events.*; import flash.display.*; import flash.text.*; import flash.geom.*; import flash.utils.*; import flash.filters.*; import play.*; public class PlayDemo extends PlayAsset { private var fullover:Boolean;// = false private var fullScreenTimer:Timer; private var cnt:int;// = 0 private var winfilt:GlowFilter; private var fullfilt:GlowFilter; private var winover:Boolean;// = false private var timerField:TextField; public function PlayDemo():void{ winfilt = new GlowFilter(0xFFFFFF, 1, 0, 0, 2, 1); fullfilt = new GlowFilter(0xFFFFFF, 1, 0, 0, 2, 1); fullover = false; winover = false; cnt = 0; super(); windowed.buttonMode = true; windowed.useHandCursor = true; windowed.addEventListener(MouseEvent.CLICK, onWindowed); windowed.addEventListener(MouseEvent.MOUSE_OVER, onWindowedOver); windowed.addEventListener(MouseEvent.MOUSE_OUT, onWindowedOut); fullscreen.buttonMode = true; fullscreen.useHandCursor = true; fullscreen.addEventListener(MouseEvent.CLICK, onFullscreen); fullscreen.addEventListener(MouseEvent.MOUSE_OVER, onFullscreenOver); fullscreen.addEventListener(MouseEvent.MOUSE_OUT, onFullscreenOut); addEventListener(Event.ENTER_FRAME, onFrame); } private function onFullscreen(_arg1:Event):void{ var _local2:TextFormat; removeEventListener(Event.ENTER_FRAME, onFrame); DemoFactory.demo.stage["fullScreenSourceRect"] = new Rectangle(0, 0, 800, 400); DemoFactory.demo.stage.scaleMode = StageScaleMode.SHOW_ALL; DemoFactory.demo.stage.displayState = StageDisplayState.FULL_SCREEN; fullScreenTimer = new Timer(1000, 5); fullScreenTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onFullScreenReady); fullScreenTimer.addEventListener(TimerEvent.TIMER, timerTick); fullScreenTimer.start(); windowed.visible = false; fullscreen.visible = false; timerField = new TextField(); _local2 = new TextFormat("Arial", 32, 0xF0F0F0, true); timerField.autoSize = TextFieldAutoSize.LEFT; timerField.defaultTextFormat = _local2; timerField.text = "Starting in 5 seconds"; addChild(timerField); timerField.x = 200; timerField.y = 200; } private function onFullscreenOut(_arg1:Event):void{ fullover = false; } private function onWindowedOver(_arg1:Event):void{ winover = true; } private function onWindowed(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, onFrame); dispatchEvent(new Event("startDemo")); } private function onFullScreenReady(_arg1:TimerEvent):void{ fullScreenTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, onFullScreenReady); fullScreenTimer.stop(); fullScreenTimer = null; dispatchEvent(new Event("startDemo")); } private function timerTick(_arg1:TimerEvent):void{ cnt++; timerField.text = (("Starting in " + (5 - cnt)) + " seconds"); if (cnt == 3){ timerField.text = ""; fullScreenTimer.removeEventListener(TimerEvent.TIMER, timerTick); }; } private function onFrame(_arg1:Event):void{ var _local2:Number; var _local3:Number; _local2 = winfilt.blurX; if (winover){ _local3 = 8; } else { _local3 = 0; }; _local2 = (_local2 + ((_local3 - _local2) / 10)); winfilt.blurX = (winfilt.blurY = _local2); _local2 = fullfilt.blurX; if (fullover){ _local3 = 8; } else { _local3 = 0; }; _local2 = (_local2 + ((_local3 - _local2) / 10)); fullfilt.blurX = (fullfilt.blurY = _local2); windowed.filters = [winfilt]; fullscreen.filters = [fullfilt]; } private function onWindowedOut(_arg1:Event):void{ winover = false; } private function onFullscreenOver(_arg1:Event):void{ fullover = true; } } }//package
Section 165
//textures_credits_CreditsFG (textures_credits_CreditsFG) package { import mx.core.*; public class textures_credits_CreditsFG extends BitmapAsset { } }//package
Section 166
//textures_credits_Fire (textures_credits_Fire) package { import mx.core.*; public class textures_credits_Fire extends BitmapAsset { } }//package
Section 167
//textures_CubeTexture (textures_CubeTexture) package { import mx.core.*; public class textures_CubeTexture extends BitmapAsset { } }//package
Section 168
//textures_efxpack1_Background (textures_efxpack1_Background) package { import mx.core.*; public class textures_efxpack1_Background extends BitmapAsset { } }//package
Section 169
//textures_efxpack1_GlowParticle (textures_efxpack1_GlowParticle) package { import mx.core.*; public class textures_efxpack1_GlowParticle extends BitmapAsset { } }//package
Section 170
//textures_efxpack1_HairParticle (textures_efxpack1_HairParticle) package { import mx.core.*; public class textures_efxpack1_HairParticle extends BitmapAsset { } }//package
Section 171
//textures_efxpack1_Overlay (textures_efxpack1_Overlay) package { import mx.core.*; public class textures_efxpack1_Overlay extends BitmapAsset { } }//package
Section 172
//textures_efxpack1_Overlay2 (textures_efxpack1_Overlay2) package { import mx.core.*; public class textures_efxpack1_Overlay2 extends BitmapAsset { } }//package
Section 173
//textures_efxpack1_Overlay2A (textures_efxpack1_Overlay2A) package { import mx.core.*; public class textures_efxpack1_Overlay2A extends BitmapAsset { } }//package
Section 174
//textures_efxpack1_Overlay3 (textures_efxpack1_Overlay3) package { import mx.core.*; public class textures_efxpack1_Overlay3 extends BitmapAsset { } }//package
Section 175
//textures_efxpack1_Overlay3A (textures_efxpack1_Overlay3A) package { import mx.core.*; public class textures_efxpack1_Overlay3A extends BitmapAsset { } }//package
Section 176
//textures_efxpack1_OverlayA (textures_efxpack1_OverlayA) package { import mx.core.*; public class textures_efxpack1_OverlayA extends BitmapAsset { } }//package
Section 177
//textures_efxpack2_Background (textures_efxpack2_Background) package { import mx.core.*; public class textures_efxpack2_Background extends BitmapAsset { } }//package
Section 178
//textures_efxpack2_Kukka (textures_efxpack2_Kukka) package { import mx.core.*; public class textures_efxpack2_Kukka extends BitmapAsset { } }//package
Section 179
//textures_efxpack2_Overlay (textures_efxpack2_Overlay) package { import mx.core.*; public class textures_efxpack2_Overlay extends BitmapAsset { } }//package
Section 180
//textures_efxpack2_Overlay2 (textures_efxpack2_Overlay2) package { import mx.core.*; public class textures_efxpack2_Overlay2 extends BitmapAsset { } }//package
Section 181
//textures_efxpack2_Overlay2A (textures_efxpack2_Overlay2A) package { import mx.core.*; public class textures_efxpack2_Overlay2A extends BitmapAsset { } }//package
Section 182
//textures_efxpack2_Overlay3 (textures_efxpack2_Overlay3) package { import mx.core.*; public class textures_efxpack2_Overlay3 extends BitmapAsset { } }//package
Section 183
//textures_efxpack2_Overlay3A (textures_efxpack2_Overlay3A) package { import mx.core.*; public class textures_efxpack2_Overlay3A extends BitmapAsset { } }//package
Section 184
//textures_efxpack2_OverlayA (textures_efxpack2_OverlayA) package { import mx.core.*; public class textures_efxpack2_OverlayA extends BitmapAsset { } }//package
Section 185
//textures_GlowParticle (textures_GlowParticle) package { import mx.core.*; public class textures_GlowParticle extends BitmapAsset { } }//package
Section 186
//textures_greetings_Background (textures_greetings_Background) package { import mx.core.*; public class textures_greetings_Background extends BitmapAsset { } }//package
Section 187
//textures_HairParticle (textures_HairParticle) package { import mx.core.*; public class textures_HairParticle extends BitmapAsset { } }//package
Section 188
//textures_Kukka (textures_Kukka) package { import mx.core.*; public class textures_Kukka extends BitmapAsset { } }//package
Section 189
//textures_Overlay (textures_Overlay) package { import mx.core.*; public class textures_Overlay extends BitmapAsset { } }//package
Section 190
//textures_Overlay2 (textures_Overlay2) package { import mx.core.*; public class textures_Overlay2 extends BitmapAsset { } }//package
Section 191
//textures_Overlay2A (textures_Overlay2A) package { import mx.core.*; public class textures_Overlay2A extends BitmapAsset { } }//package
Section 192
//textures_Overlay3 (textures_Overlay3) package { import mx.core.*; public class textures_Overlay3 extends BitmapAsset { } }//package
Section 193
//textures_Overlay3A (textures_Overlay3A) package { import mx.core.*; public class textures_Overlay3A extends BitmapAsset { } }//package
Section 194
//textures_OverlayA (textures_OverlayA) package { import mx.core.*; public class textures_OverlayA extends BitmapAsset { } }//package
Section 195
//textures_tunnel_Hair (textures_tunnel_Hair) package { import mx.core.*; public class textures_tunnel_Hair extends BitmapAsset { } }//package
Section 196
//textures_tunnel_Kukka (textures_tunnel_Kukka) package { import mx.core.*; public class textures_tunnel_Kukka extends BitmapAsset { } }//package
Section 197
//textures_tunnel_Overlay (textures_tunnel_Overlay) package { import mx.core.*; public class textures_tunnel_Overlay extends BitmapAsset { } }//package
Section 198
//textures_tunnel_Tunnel (textures_tunnel_Tunnel) package { import mx.core.*; public class textures_tunnel_Tunnel extends BitmapAsset { } }//package
Section 199
//textures5_Discomap (textures5_Discomap) package { import mx.core.*; public class textures5_Discomap extends BitmapAsset { } }//package
Section 200
//textures5_Discomask (textures5_Discomask) package { import mx.core.*; public class textures5_Discomask extends BitmapAsset { } }//package
Section 201
//texturesF_EndGfx (texturesF_EndGfx) package { import mx.core.*; public class texturesF_EndGfx extends BitmapAsset { } }//package
Section 202
//texturesRP_Overlay (texturesRP_Overlay) package { import mx.core.*; public class texturesRP_Overlay extends BitmapAsset { } }//package
Section 203
//texturesRP_Texture (texturesRP_Texture) package { import mx.core.*; public class texturesRP_Texture extends BitmapAsset { } }//package
Section 204
//texturesRP_Texture2 (texturesRP_Texture2) package { import mx.core.*; public class texturesRP_Texture2 extends BitmapAsset { } }//package

Library Items

Symbol 1 BitmapUsed by:2
Symbol 2 GraphicUses:1Used by:4
Symbol 3 BitmapUsed by:4
Symbol 4 MovieClipUses:2 3Used by:77
Symbol 5 BitmapUsed by:77
Symbol 6 BitmapUsed by:77
Symbol 7 BitmapUsed by:77
Symbol 8 BitmapUsed by:77
Symbol 9 BitmapUsed by:77
Symbol 10 BitmapUsed by:77
Symbol 11 BitmapUsed by:77
Symbol 12 BitmapUsed by:77
Symbol 13 BitmapUsed by:77
Symbol 14 BitmapUsed by:77
Symbol 15 BitmapUsed by:77
Symbol 16 BitmapUsed by:77
Symbol 17 BitmapUsed by:77
Symbol 18 BitmapUsed by:77
Symbol 19 BitmapUsed by:20
Symbol 20 GraphicUses:19Used by:77
Symbol 21 BitmapUsed by:23
Symbol 22 BitmapUsed by:23
Symbol 23 GraphicUses:21 22Used by:77
Symbol 24 BitmapUsed by:36
Symbol 25 BitmapUsed by:36
Symbol 26 BitmapUsed by:36
Symbol 27 BitmapUsed by:36
Symbol 28 BitmapUsed by:36
Symbol 29 BitmapUsed by:36
Symbol 30 BitmapUsed by:36
Symbol 31 BitmapUsed by:36
Symbol 32 BitmapUsed by:36
Symbol 33 BitmapUsed by:36
Symbol 34 BitmapUsed by:36
Symbol 35 BitmapUsed by:36
Symbol 36 GraphicUses:34 33 32 31 30 29 28 27 26 25 24 35Used by:77
Symbol 37 BitmapUsed by:38
Symbol 38 GraphicUses:37Used by:77
Symbol 39 BitmapUsed by:41
Symbol 40 BitmapUsed by:41
Symbol 41 GraphicUses:39 40Used by:77
Symbol 42 BitmapUsed by:47
Symbol 43 BitmapUsed by:47
Symbol 44 BitmapUsed by:47
Symbol 45 BitmapUsed by:47
Symbol 46 BitmapUsed by:47
Symbol 47 GraphicUses:45 44 43 42 46Used by:77
Symbol 48 BitmapUsed by:56
Symbol 49 BitmapUsed by:56
Symbol 50 BitmapUsed by:56
Symbol 51 BitmapUsed by:56
Symbol 52 BitmapUsed by:56
Symbol 53 BitmapUsed by:56
Symbol 54 BitmapUsed by:56
Symbol 55 BitmapUsed by:56
Symbol 56 GraphicUses:54 53 52 51 50 49 48 55Used by:77
Symbol 57 BitmapUsed by:59
Symbol 58 BitmapUsed by:59
Symbol 59 GraphicUses:57 58Used by:60
Symbol 60 MovieClipUses:59Used by:77
Symbol 61 BitmapUsed by:63
Symbol 62 BitmapUsed by:63
Symbol 63 GraphicUses:61 62Used by:77
Symbol 64 BitmapUsed by:65
Symbol 65 GraphicUses:64Used by:77
Symbol 66 BitmapUsed by:67
Symbol 67 GraphicUses:66Used by:77
Symbol 68 BitmapUsed by:72
Symbol 69 BitmapUsed by:72
Symbol 70 BitmapUsed by:72
Symbol 71 BitmapUsed by:72
Symbol 72 GraphicUses:70 69 68 71Used by:77
Symbol 73 BitmapUsed by:76
Symbol 74 BitmapUsed by:76
Symbol 75 BitmapUsed by:76
Symbol 76 GraphicUses:74 73 75Used by:77
Symbol 77 MovieClip {intro.IntroTvzAsset} [intro.IntroTvzAsset]Uses:4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 23 36 38 41 47 56 60 63 65 67 72 76
Symbol 78 BitmapUsed by:79
Symbol 79 GraphicUses:78Used by:91
Symbol 80 BitmapUsed by:83 86
Symbol 81 BitmapUsed by:83
Symbol 82 BitmapUsed by:83 86
Symbol 83 GraphicUses:81 80 82Used by:84
Symbol 84 MovieClipUses:83Used by:91
Symbol 85 BitmapUsed by:86
Symbol 86 GraphicUses:85 80 82Used by:87
Symbol 87 MovieClipUses:86Used by:91
Symbol 88 BitmapUsed by:89
Symbol 89 GraphicUses:88Used by:90
Symbol 90 MovieClipUses:89Used by:91
Symbol 91 MovieClip {play.PlayAsset} [play.PlayAsset]Uses:79 84 87 90
Symbol 92 BitmapUsed by:98
Symbol 93 BitmapUsed by:98
Symbol 94 BitmapUsed by:98
Symbol 95 BitmapUsed by:98
Symbol 96 BitmapUsed by:98
Symbol 97 BitmapUsed by:98
Symbol 98 GraphicUses:96 95 94 93 92 97Used by:99
Symbol 99 MovieClip {intro.IntroLettersAsset} [intro.IntroLettersAsset]Uses:98
Symbol 100 Bitmap {intro.IntroBG} [intro.IntroBG]
Symbol 101 Bitmap {textures_tunnel_Overlay}
Symbol 102 Bitmap {texturesRP_Texture2}
Symbol 103 Bitmap {textures_tunnel_Kukka}
Symbol 104 Bitmap {textures_efxpack2_Overlay}
Symbol 105 Bitmap {textures5_Discomap}
Symbol 106 BinaryData {models_GeoballModel}
Symbol 107 Bitmap {texturesRP_Overlay}
Symbol 108 Bitmap {textures_efxpack2_Overlay2}
Symbol 109 Bitmap {textures_GlowParticle}
Symbol 110 Bitmap {textures_efxpack1_Overlay3A}
Symbol 111 Bitmap {textures_CubeTexture}
Symbol 112 Bitmap {textures_tunnel_Tunnel}
Symbol 113 Bitmap {textures_credits_Fire}
Symbol 114 Bitmap {textures_efxpack1_Overlay3}
Symbol 115 Bitmap {textures_efxpack2_Overlay2A}
Symbol 116 Bitmap {textures_efxpack2_Overlay3}
Symbol 117 Bitmap {textures_efxpack1_Overlay}
Symbol 118 Bitmap {textures_efxpack1_Overlay2A}
Symbol 119 Font {_FontFaceRules__embed__font_D3Curve_medium_normal_1443359732}
Symbol 120 Bitmap {textures_efxpack1_Overlay2}
Symbol 121 Bitmap {textures_efxpack2_OverlayA}
Symbol 122 Font {_FontFaceRules__embed__font_DDPetit08_medium_normal_1771948071}
Symbol 123 Bitmap {textures_OverlayA}
Symbol 124 Bitmap {newpart.IntroPart_EvoLogo}
Symbol 125 Bitmap {texturesRP_Texture}
Symbol 126 Bitmap {textures_Overlay3}
Symbol 127 Bitmap {textures_HairParticle}
Symbol 128 Bitmap {textures_greetings_Background}
Symbol 129 Bitmap {textures5_Discomask}
Symbol 130 Bitmap {textures_credits_CreditsFG}
Symbol 131 Bitmap {newpart.IntroPart_PresentsLogo}
Symbol 132 Bitmap {effects.particles.Egg}
Symbol 133 BinaryData {models_HalfBallModel1}
Symbol 134 Bitmap {textures_efxpack2_Background}
Symbol 135 Bitmap {textures_efxpack1_OverlayA}
Symbol 136 Bitmap {textures_efxpack1_Background}
Symbol 137 Bitmap {textures_Overlay3A}
Symbol 138 Bitmap {texturesF_EndGfx}
Symbol 139 Bitmap {textures_Overlay2A}

Instance Names

"fullscreen"Symbol 91 MovieClip {play.PlayAsset} [play.PlayAsset] Frame 1Symbol 84 MovieClip
"windowed"Symbol 91 MovieClip {play.PlayAsset} [play.PlayAsset] Frame 1Symbol 87 MovieClip
"adhdtv"Symbol 91 MovieClip {play.PlayAsset} [play.PlayAsset] Frame 1Symbol 90 MovieClip

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1458 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 2Symbol 77 as "intro.IntroTvzAsset"
ExportAssets (56)Timeline Frame 2Symbol 91 as "play.PlayAsset"
ExportAssets (56)Timeline Frame 2Symbol 99 as "intro.IntroLettersAsset"
ExportAssets (56)Timeline Frame 2Symbol 100 as "intro.IntroBG"
SerialNumber (41)Timeline Frame 1

Labels

"DemoFactory"Frame 1
"DemoMain"Frame 2




http://swfchan.com/3/10255/info.shtml
Created: 8/6 -2019 17:16:06 Last modified: 8/6 -2019 17:16:06 Server time: 03/05 -2024 22:26:30