mirror of
https://github.com/MapMakersAndProgrammers/TankiOnline2.0DemoClient.git
synced 2025-10-26 09:59:07 -07:00
Initial commit
This commit is contained in:
62
src/package_21/name_116.as
Normal file
62
src/package_21/name_116.as
Normal file
@@ -0,0 +1,62 @@
|
||||
package package_21
|
||||
{
|
||||
import alternativa.engine3d.alternativa3d;
|
||||
|
||||
use namespace alternativa3d;
|
||||
|
||||
public class name_116 extends name_78
|
||||
{
|
||||
private static var lastLightNumber:uint = 0;
|
||||
|
||||
public var color:uint;
|
||||
|
||||
public var intensity:Number = 1;
|
||||
|
||||
alternativa3d var name_141:name_139 = new name_139();
|
||||
|
||||
alternativa3d var name_138:String;
|
||||
|
||||
alternativa3d var red:Number;
|
||||
|
||||
alternativa3d var green:Number;
|
||||
|
||||
alternativa3d var blue:Number;
|
||||
|
||||
public function name_116()
|
||||
{
|
||||
super();
|
||||
this.alternativa3d::name_138 = "l" + lastLightNumber.toString(16);
|
||||
name = "L" + (lastLightNumber++).toString();
|
||||
}
|
||||
|
||||
override alternativa3d function calculateVisibility(camera:name_124) : void
|
||||
{
|
||||
if(this.intensity != 0 && this.color > 0)
|
||||
{
|
||||
camera.alternativa3d::lights[camera.alternativa3d::lightsLength] = this;
|
||||
++camera.alternativa3d::lightsLength;
|
||||
}
|
||||
}
|
||||
|
||||
alternativa3d function checkBound(targetObject:name_78) : Boolean
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
override public function clone() : name_78
|
||||
{
|
||||
var res:name_116 = new name_116();
|
||||
res.clonePropertiesFrom(this);
|
||||
return res;
|
||||
}
|
||||
|
||||
override protected function clonePropertiesFrom(source:name_78) : void
|
||||
{
|
||||
super.clonePropertiesFrom(source);
|
||||
var src:name_116 = source as name_116;
|
||||
this.color = src.color;
|
||||
this.intensity = src.intensity;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
908
src/package_21/name_124.as
Normal file
908
src/package_21/name_124.as
Normal file
@@ -0,0 +1,908 @@
|
||||
package package_21
|
||||
{
|
||||
import alternativa.engine3d.alternativa3d;
|
||||
import flash.display.Bitmap;
|
||||
import flash.display.BitmapData;
|
||||
import flash.display.DisplayObject;
|
||||
import flash.display.Sprite;
|
||||
import flash.display.Stage3D;
|
||||
import flash.display.StageAlign;
|
||||
import flash.display3D.Context3D;
|
||||
import flash.events.Event;
|
||||
import flash.geom.Point;
|
||||
import flash.geom.Rectangle;
|
||||
import flash.geom.Vector3D;
|
||||
import flash.system.System;
|
||||
import flash.text.TextField;
|
||||
import flash.text.TextFieldAutoSize;
|
||||
import flash.text.TextFormat;
|
||||
import flash.utils.Dictionary;
|
||||
import flash.utils.getDefinitionByName;
|
||||
import flash.utils.getQualifiedClassName;
|
||||
import flash.utils.getQualifiedSuperclassName;
|
||||
import flash.utils.getTimer;
|
||||
|
||||
use namespace alternativa3d;
|
||||
|
||||
public class name_124 extends name_78
|
||||
{
|
||||
public var view:name_81;
|
||||
|
||||
public var fov:Number = 1.5707963267948966;
|
||||
|
||||
public var nearClipping:Number;
|
||||
|
||||
public var farClipping:Number;
|
||||
|
||||
public var orthographic:Boolean = false;
|
||||
|
||||
alternativa3d var focalLength:Number;
|
||||
|
||||
alternativa3d var m0:Number;
|
||||
|
||||
alternativa3d var m5:Number;
|
||||
|
||||
alternativa3d var m10:Number;
|
||||
|
||||
alternativa3d var m14:Number;
|
||||
|
||||
alternativa3d var correctionX:Number;
|
||||
|
||||
alternativa3d var correctionY:Number;
|
||||
|
||||
alternativa3d var lights:Vector.<name_116> = new Vector.<name_116>();
|
||||
|
||||
alternativa3d var lightsLength:int = 0;
|
||||
|
||||
alternativa3d var ambient:Vector.<Number> = new Vector.<Number>(4);
|
||||
|
||||
alternativa3d var childLights:Vector.<name_116> = new Vector.<name_116>();
|
||||
|
||||
alternativa3d var frustum:name_429;
|
||||
|
||||
alternativa3d var origins:Vector.<Vector3D> = new Vector.<Vector3D>();
|
||||
|
||||
alternativa3d var directions:Vector.<Vector3D> = new Vector.<Vector3D>();
|
||||
|
||||
alternativa3d var raysLength:int = 0;
|
||||
|
||||
alternativa3d var occluders:Vector.<name_431> = new Vector.<name_431>();
|
||||
|
||||
alternativa3d var occludersLength:int = 0;
|
||||
|
||||
alternativa3d var context3D:Context3D;
|
||||
|
||||
alternativa3d var renderer:name_430;
|
||||
|
||||
alternativa3d var numDraws:int;
|
||||
|
||||
alternativa3d var numTriangles:int;
|
||||
|
||||
public var debug:Boolean = false;
|
||||
|
||||
private var debugSet:Object = new Object();
|
||||
|
||||
private var _diagram:Sprite = this.createDiagram();
|
||||
|
||||
public var fpsUpdatePeriod:int = 10;
|
||||
|
||||
public var timerUpdatePeriod:int = 10;
|
||||
|
||||
private var fpsTextField:TextField;
|
||||
|
||||
private var memoryTextField:TextField;
|
||||
|
||||
private var drawsTextField:TextField;
|
||||
|
||||
private var trianglesTextField:TextField;
|
||||
|
||||
private var timerTextField:TextField;
|
||||
|
||||
private var graph:Bitmap;
|
||||
|
||||
private var rect:Rectangle;
|
||||
|
||||
private var _diagramAlign:String = "TR";
|
||||
|
||||
private var _diagramHorizontalMargin:Number = 2;
|
||||
|
||||
private var _diagramVerticalMargin:Number = 2;
|
||||
|
||||
private var fpsUpdateCounter:int;
|
||||
|
||||
private var previousFrameTime:int;
|
||||
|
||||
private var previousPeriodTime:int;
|
||||
|
||||
private var maxMemory:int;
|
||||
|
||||
private var timerUpdateCounter:int;
|
||||
|
||||
private var timeSum:int;
|
||||
|
||||
private var timeCount:int;
|
||||
|
||||
private var timer:int;
|
||||
|
||||
public function name_124(nearClipping:Number, farClipping:Number)
|
||||
{
|
||||
super();
|
||||
this.nearClipping = nearClipping;
|
||||
this.farClipping = farClipping;
|
||||
this.alternativa3d::renderer = new name_430();
|
||||
this.alternativa3d::frustum = new name_429();
|
||||
this.alternativa3d::frustum.next = new name_429();
|
||||
this.alternativa3d::frustum.next.next = new name_429();
|
||||
this.alternativa3d::frustum.next.next.next = new name_429();
|
||||
this.alternativa3d::frustum.next.next.next.next = new name_429();
|
||||
this.alternativa3d::frustum.next.next.next.next.next = new name_429();
|
||||
}
|
||||
|
||||
public function render(stage3D:Stage3D) : void
|
||||
{
|
||||
var i:int = 0;
|
||||
var light:name_116 = null;
|
||||
var root:name_78 = null;
|
||||
var childLightsLength:int = 0;
|
||||
if(stage3D == null)
|
||||
{
|
||||
throw new TypeError("Parameter stage3D must be non-null.");
|
||||
}
|
||||
this.alternativa3d::numDraws = 0;
|
||||
this.alternativa3d::numTriangles = 0;
|
||||
this.alternativa3d::occludersLength = 0;
|
||||
this.alternativa3d::lightsLength = 0;
|
||||
this.alternativa3d::ambient[0] = 0;
|
||||
this.alternativa3d::ambient[1] = 0;
|
||||
this.alternativa3d::ambient[2] = 0;
|
||||
this.alternativa3d::ambient[3] = 1;
|
||||
this.alternativa3d::context3D = stage3D.context3D;
|
||||
if(this.alternativa3d::context3D != null && this.view != null && this.alternativa3d::renderer != null && (this.view.stage != null || this.view.alternativa3d::var_114 != null))
|
||||
{
|
||||
this.alternativa3d::renderer.alternativa3d::camera = this;
|
||||
this.alternativa3d::calculateProjection(this.view.alternativa3d::var_110,this.view.alternativa3d::_height);
|
||||
this.view.alternativa3d::method_244(stage3D,this.alternativa3d::context3D);
|
||||
if(alternativa3d::transformChanged)
|
||||
{
|
||||
alternativa3d::composeTransforms();
|
||||
}
|
||||
alternativa3d::localToGlobalTransform.copy(alternativa3d::transform);
|
||||
alternativa3d::globalToLocalTransform.copy(alternativa3d::inverseTransform);
|
||||
for(root = this; root.parent != null; )
|
||||
{
|
||||
root = root.parent;
|
||||
if(root.alternativa3d::transformChanged)
|
||||
{
|
||||
root.alternativa3d::composeTransforms();
|
||||
}
|
||||
alternativa3d::localToGlobalTransform.append(root.alternativa3d::transform);
|
||||
alternativa3d::globalToLocalTransform.prepend(root.alternativa3d::inverseTransform);
|
||||
}
|
||||
this.view.alternativa3d::calculateRays(this);
|
||||
for(i = int(this.alternativa3d::origins.length); i < this.view.alternativa3d::raysLength; i++)
|
||||
{
|
||||
this.alternativa3d::origins[i] = new Vector3D();
|
||||
this.alternativa3d::directions[i] = new Vector3D();
|
||||
}
|
||||
this.alternativa3d::raysLength = this.view.alternativa3d::raysLength;
|
||||
if(root.visible)
|
||||
{
|
||||
root.alternativa3d::cameraToLocalTransform.combine(root.alternativa3d::inverseTransform,alternativa3d::localToGlobalTransform);
|
||||
root.alternativa3d::listening = root.alternativa3d::bubbleListeners != null || root.alternativa3d::captureListeners != null;
|
||||
if(root.boundBox != null)
|
||||
{
|
||||
this.alternativa3d::calculateFrustum(root.alternativa3d::cameraToLocalTransform);
|
||||
root.alternativa3d::culling = root.boundBox.alternativa3d::name_393(this.alternativa3d::frustum,63);
|
||||
}
|
||||
else
|
||||
{
|
||||
root.alternativa3d::culling = 63;
|
||||
}
|
||||
if(root.alternativa3d::culling >= 0)
|
||||
{
|
||||
root.alternativa3d::calculateVisibility(this);
|
||||
}
|
||||
root.alternativa3d::calculateChildrenVisibility(this);
|
||||
for(i = 0; i < this.alternativa3d::lightsLength; i++)
|
||||
{
|
||||
light = this.alternativa3d::lights[i];
|
||||
light.alternativa3d::localToCameraTransform.calculateInversion(light.alternativa3d::cameraToLocalTransform);
|
||||
light.alternativa3d::red = (light.color >> 16 & 0xFF) * light.intensity / 255;
|
||||
light.alternativa3d::green = (light.color >> 8 & 0xFF) * light.intensity / 255;
|
||||
light.alternativa3d::blue = (light.color & 0xFF) * light.intensity / 255;
|
||||
}
|
||||
root.alternativa3d::localToCameraTransform.combine(alternativa3d::globalToLocalTransform,root.alternativa3d::transform);
|
||||
if(root.alternativa3d::culling >= 0 && (root.boundBox == null || this.alternativa3d::occludersLength == 0 || Boolean(root.boundBox.alternativa3d::name_392(this,root))))
|
||||
{
|
||||
if(Boolean(root.alternativa3d::listening) && root.boundBox != null)
|
||||
{
|
||||
this.alternativa3d::calculateRays(root.alternativa3d::cameraToLocalTransform);
|
||||
root.alternativa3d::listening = root.boundBox.alternativa3d::name_391(this.alternativa3d::origins,this.alternativa3d::directions,this.alternativa3d::raysLength);
|
||||
}
|
||||
if(this.alternativa3d::lightsLength > 0 && Boolean(root.alternativa3d::useLights))
|
||||
{
|
||||
if(root.boundBox != null)
|
||||
{
|
||||
childLightsLength = 0;
|
||||
for(i = 0; i < this.alternativa3d::lightsLength; )
|
||||
{
|
||||
light = this.alternativa3d::lights[i];
|
||||
light.alternativa3d::name_141.combine(root.alternativa3d::cameraToLocalTransform,light.alternativa3d::localToCameraTransform);
|
||||
if(light.boundBox == null || light.alternativa3d::checkBound(root))
|
||||
{
|
||||
this.alternativa3d::childLights[childLightsLength] = light;
|
||||
childLightsLength++;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
root.alternativa3d::collectDraws(this,this.alternativa3d::childLights,childLightsLength);
|
||||
}
|
||||
else
|
||||
{
|
||||
for(i = 0; i < this.alternativa3d::lightsLength; )
|
||||
{
|
||||
light = this.alternativa3d::lights[i];
|
||||
light.alternativa3d::name_141.combine(root.alternativa3d::cameraToLocalTransform,light.alternativa3d::localToCameraTransform);
|
||||
i++;
|
||||
}
|
||||
root.alternativa3d::collectDraws(this,this.alternativa3d::lights,this.alternativa3d::lightsLength);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
root.alternativa3d::collectDraws(this,null,0);
|
||||
}
|
||||
}
|
||||
root.alternativa3d::collectChildrenDraws(this,this.alternativa3d::lights,this.alternativa3d::lightsLength);
|
||||
}
|
||||
this.view.alternativa3d::method_243(this.alternativa3d::context3D,this);
|
||||
this.alternativa3d::renderer.alternativa3d::render(this.alternativa3d::context3D);
|
||||
if(this.view.alternativa3d::var_114 == null)
|
||||
{
|
||||
this.alternativa3d::context3D.present();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.alternativa3d::context3D.drawToBitmapData(this.view.alternativa3d::var_114);
|
||||
this.alternativa3d::context3D.present();
|
||||
}
|
||||
}
|
||||
this.alternativa3d::lights.length = 0;
|
||||
this.alternativa3d::childLights.length = 0;
|
||||
this.alternativa3d::occluders.length = 0;
|
||||
this.alternativa3d::context3D = null;
|
||||
}
|
||||
|
||||
public function projectGlobal(point:Vector3D) : Vector3D
|
||||
{
|
||||
if(this.view == null)
|
||||
{
|
||||
throw new Error("It is necessary to have view set.");
|
||||
}
|
||||
var viewSizeX:Number = this.view.alternativa3d::var_110 * 0.5;
|
||||
var viewSizeY:Number = this.view.alternativa3d::_height * 0.5;
|
||||
var focalLength:Number = Math.sqrt(viewSizeX * viewSizeX + viewSizeY * viewSizeY) / Math.tan(this.fov * 0.5);
|
||||
var res:Vector3D = globalToLocal(point);
|
||||
res.x = res.x * focalLength / res.z + viewSizeX;
|
||||
res.y = res.y * focalLength / res.z + viewSizeY;
|
||||
return res;
|
||||
}
|
||||
|
||||
public function calculateRay(origin:Vector3D, direction:Vector3D, viewX:Number, viewY:Number) : void
|
||||
{
|
||||
if(this.view == null)
|
||||
{
|
||||
throw new Error("It is necessary to have view set.");
|
||||
}
|
||||
var viewSizeX:Number = this.view.alternativa3d::var_110 * 0.5;
|
||||
var viewSizeY:Number = this.view.alternativa3d::_height * 0.5;
|
||||
var focalLength:Number = Math.sqrt(viewSizeX * viewSizeX + viewSizeY * viewSizeY) / Math.tan(this.fov * 0.5);
|
||||
var dx:Number = viewX - viewSizeX;
|
||||
var dy:Number = viewY - viewSizeY;
|
||||
var ox:Number = dx * this.nearClipping / focalLength;
|
||||
var oy:Number = dy * this.nearClipping / focalLength;
|
||||
var oz:Number = this.nearClipping;
|
||||
if(alternativa3d::transformChanged)
|
||||
{
|
||||
alternativa3d::composeTransforms();
|
||||
}
|
||||
trm.copy(alternativa3d::transform);
|
||||
for(var root:name_78 = this; root.parent != null; )
|
||||
{
|
||||
root = root.parent;
|
||||
if(root.alternativa3d::transformChanged)
|
||||
{
|
||||
root.alternativa3d::composeTransforms();
|
||||
}
|
||||
trm.append(root.alternativa3d::transform);
|
||||
}
|
||||
origin.x = trm.a * ox + trm.b * oy + trm.c * oz + trm.d;
|
||||
origin.y = trm.e * ox + trm.f * oy + trm.g * oz + trm.h;
|
||||
origin.z = trm.i * ox + trm.j * oy + trm.k * oz + trm.l;
|
||||
direction.x = trm.a * dx + trm.b * dy + trm.c * focalLength;
|
||||
direction.y = trm.e * dx + trm.f * dy + trm.g * focalLength;
|
||||
direction.z = trm.i * dx + trm.j * dy + trm.k * focalLength;
|
||||
var directionL:Number = 1 / Math.sqrt(direction.x * direction.x + direction.y * direction.y + direction.z * direction.z);
|
||||
direction.x *= directionL;
|
||||
direction.y *= directionL;
|
||||
direction.z *= directionL;
|
||||
}
|
||||
|
||||
override public function clone() : name_78
|
||||
{
|
||||
var res:name_124 = new name_124(this.nearClipping,this.farClipping);
|
||||
res.clonePropertiesFrom(this);
|
||||
return res;
|
||||
}
|
||||
|
||||
override protected function clonePropertiesFrom(source:name_78) : void
|
||||
{
|
||||
super.clonePropertiesFrom(source);
|
||||
this.view = (source as name_124).view;
|
||||
}
|
||||
|
||||
alternativa3d function calculateProjection(width:Number, height:Number) : void
|
||||
{
|
||||
var viewSizeX:Number = width * 0.5;
|
||||
var viewSizeY:Number = height * 0.5;
|
||||
this.alternativa3d::focalLength = Math.sqrt(viewSizeX * viewSizeX + viewSizeY * viewSizeY) / Math.tan(this.fov * 0.5);
|
||||
if(!this.orthographic)
|
||||
{
|
||||
this.alternativa3d::m0 = this.alternativa3d::focalLength / viewSizeX;
|
||||
this.alternativa3d::m5 = -this.alternativa3d::focalLength / viewSizeY;
|
||||
this.alternativa3d::m10 = this.farClipping / (this.farClipping - this.nearClipping);
|
||||
this.alternativa3d::m14 = -this.nearClipping * this.alternativa3d::m10;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.alternativa3d::m0 = 1 / viewSizeX;
|
||||
this.alternativa3d::m5 = -1 / viewSizeY;
|
||||
this.alternativa3d::m10 = 1 / (this.farClipping - this.nearClipping);
|
||||
this.alternativa3d::m14 = -this.nearClipping * this.alternativa3d::m10;
|
||||
}
|
||||
this.alternativa3d::correctionX = viewSizeX / this.alternativa3d::focalLength;
|
||||
this.alternativa3d::correctionY = viewSizeY / this.alternativa3d::focalLength;
|
||||
}
|
||||
|
||||
alternativa3d function calculateFrustum(transform:name_139) : void
|
||||
{
|
||||
var fa:Number = NaN;
|
||||
var fe:Number = NaN;
|
||||
var fi:Number = NaN;
|
||||
var fb:Number = NaN;
|
||||
var ff:Number = NaN;
|
||||
var fj:Number = NaN;
|
||||
var ax:Number = NaN;
|
||||
var ay:Number = NaN;
|
||||
var az:Number = NaN;
|
||||
var bx:Number = NaN;
|
||||
var by:Number = NaN;
|
||||
var bz:Number = NaN;
|
||||
var viewSizeX:Number = NaN;
|
||||
var viewSizeY:Number = NaN;
|
||||
var nearPlane:name_429 = this.alternativa3d::frustum;
|
||||
var farPlane:name_429 = nearPlane.next;
|
||||
var leftPlane:name_429 = farPlane.next;
|
||||
var rightPlane:name_429 = leftPlane.next;
|
||||
var topPlane:name_429 = rightPlane.next;
|
||||
var bottomPlane:name_429 = topPlane.next;
|
||||
if(!this.orthographic)
|
||||
{
|
||||
fa = transform.a * this.alternativa3d::correctionX;
|
||||
fe = transform.e * this.alternativa3d::correctionX;
|
||||
fi = transform.i * this.alternativa3d::correctionX;
|
||||
fb = transform.b * this.alternativa3d::correctionY;
|
||||
ff = transform.f * this.alternativa3d::correctionY;
|
||||
fj = transform.j * this.alternativa3d::correctionY;
|
||||
nearPlane.x = fj * fe - ff * fi;
|
||||
nearPlane.y = fb * fi - fj * fa;
|
||||
nearPlane.z = ff * fa - fb * fe;
|
||||
nearPlane.offset = (transform.d + transform.c * this.nearClipping) * nearPlane.x + (transform.h + transform.g * this.nearClipping) * nearPlane.y + (transform.l + transform.k * this.nearClipping) * nearPlane.z;
|
||||
farPlane.x = -nearPlane.x;
|
||||
farPlane.y = -nearPlane.y;
|
||||
farPlane.z = -nearPlane.z;
|
||||
farPlane.offset = (transform.d + transform.c * this.farClipping) * farPlane.x + (transform.h + transform.g * this.farClipping) * farPlane.y + (transform.l + transform.k * this.farClipping) * farPlane.z;
|
||||
ax = -fa - fb + transform.c;
|
||||
ay = -fe - ff + transform.g;
|
||||
az = -fi - fj + transform.k;
|
||||
bx = fa - fb + transform.c;
|
||||
by = fe - ff + transform.g;
|
||||
bz = fi - fj + transform.k;
|
||||
topPlane.x = bz * ay - by * az;
|
||||
topPlane.y = bx * az - bz * ax;
|
||||
topPlane.z = by * ax - bx * ay;
|
||||
topPlane.offset = transform.d * topPlane.x + transform.h * topPlane.y + transform.l * topPlane.z;
|
||||
ax = bx;
|
||||
ay = by;
|
||||
az = bz;
|
||||
bx = fa + fb + transform.c;
|
||||
by = fe + ff + transform.g;
|
||||
bz = fi + fj + transform.k;
|
||||
rightPlane.x = bz * ay - by * az;
|
||||
rightPlane.y = bx * az - bz * ax;
|
||||
rightPlane.z = by * ax - bx * ay;
|
||||
rightPlane.offset = transform.d * rightPlane.x + transform.h * rightPlane.y + transform.l * rightPlane.z;
|
||||
ax = bx;
|
||||
ay = by;
|
||||
az = bz;
|
||||
bx = -fa + fb + transform.c;
|
||||
by = -fe + ff + transform.g;
|
||||
bz = -fi + fj + transform.k;
|
||||
bottomPlane.x = bz * ay - by * az;
|
||||
bottomPlane.y = bx * az - bz * ax;
|
||||
bottomPlane.z = by * ax - bx * ay;
|
||||
bottomPlane.offset = transform.d * bottomPlane.x + transform.h * bottomPlane.y + transform.l * bottomPlane.z;
|
||||
ax = bx;
|
||||
ay = by;
|
||||
az = bz;
|
||||
bx = -fa - fb + transform.c;
|
||||
by = -fe - ff + transform.g;
|
||||
bz = -fi - fj + transform.k;
|
||||
leftPlane.x = bz * ay - by * az;
|
||||
leftPlane.y = bx * az - bz * ax;
|
||||
leftPlane.z = by * ax - bx * ay;
|
||||
leftPlane.offset = transform.d * leftPlane.x + transform.h * leftPlane.y + transform.l * leftPlane.z;
|
||||
}
|
||||
else
|
||||
{
|
||||
viewSizeX = this.view.alternativa3d::var_110 * 0.5;
|
||||
viewSizeY = this.view.alternativa3d::_height * 0.5;
|
||||
nearPlane.x = transform.j * transform.e - transform.f * transform.i;
|
||||
nearPlane.y = transform.b * transform.i - transform.j * transform.a;
|
||||
nearPlane.z = transform.f * transform.a - transform.b * transform.e;
|
||||
nearPlane.offset = (transform.d + transform.c * this.nearClipping) * nearPlane.x + (transform.h + transform.g * this.nearClipping) * nearPlane.y + (transform.l + transform.k * this.nearClipping) * nearPlane.z;
|
||||
farPlane.x = -nearPlane.x;
|
||||
farPlane.y = -nearPlane.y;
|
||||
farPlane.z = -nearPlane.z;
|
||||
farPlane.offset = (transform.d + transform.c * this.farClipping) * farPlane.x + (transform.h + transform.g * this.farClipping) * farPlane.y + (transform.l + transform.k * this.farClipping) * farPlane.z;
|
||||
topPlane.x = transform.i * transform.g - transform.e * transform.k;
|
||||
topPlane.y = transform.a * transform.k - transform.i * transform.c;
|
||||
topPlane.z = transform.e * transform.c - transform.a * transform.g;
|
||||
topPlane.offset = (transform.d - transform.b * viewSizeY) * topPlane.x + (transform.h - transform.f * viewSizeY) * topPlane.y + (transform.l - transform.j * viewSizeY) * topPlane.z;
|
||||
bottomPlane.x = -topPlane.x;
|
||||
bottomPlane.y = -topPlane.y;
|
||||
bottomPlane.z = -topPlane.z;
|
||||
bottomPlane.offset = (transform.d + transform.b * viewSizeY) * bottomPlane.x + (transform.h + transform.f * viewSizeY) * bottomPlane.y + (transform.l + transform.j * viewSizeY) * bottomPlane.z;
|
||||
leftPlane.x = transform.k * transform.f - transform.g * transform.j;
|
||||
leftPlane.y = transform.c * transform.j - transform.k * transform.b;
|
||||
leftPlane.z = transform.g * transform.b - transform.c * transform.f;
|
||||
leftPlane.offset = (transform.d - transform.a * viewSizeX) * leftPlane.x + (transform.h - transform.e * viewSizeX) * leftPlane.y + (transform.l - transform.i * viewSizeX) * leftPlane.z;
|
||||
rightPlane.x = -leftPlane.x;
|
||||
rightPlane.y = -leftPlane.y;
|
||||
rightPlane.z = -leftPlane.z;
|
||||
rightPlane.offset = (transform.d + transform.a * viewSizeX) * rightPlane.x + (transform.h + transform.e * viewSizeX) * rightPlane.y + (transform.l + transform.i * viewSizeX) * rightPlane.z;
|
||||
}
|
||||
}
|
||||
|
||||
alternativa3d function calculateRays(transform:name_139) : void
|
||||
{
|
||||
var o:Vector3D = null;
|
||||
var d:Vector3D = null;
|
||||
var origin:Vector3D = null;
|
||||
var direction:Vector3D = null;
|
||||
for(var i:int = 0; i < this.alternativa3d::raysLength; i++)
|
||||
{
|
||||
o = this.view.alternativa3d::var_127[i];
|
||||
d = this.view.alternativa3d::var_133[i];
|
||||
origin = this.alternativa3d::origins[i];
|
||||
direction = this.alternativa3d::directions[i];
|
||||
origin.x = transform.a * o.x + transform.b * o.y + transform.c * o.z + transform.d;
|
||||
origin.y = transform.e * o.x + transform.f * o.y + transform.g * o.z + transform.h;
|
||||
origin.z = transform.i * o.x + transform.j * o.y + transform.k * o.z + transform.l;
|
||||
direction.x = transform.a * d.x + transform.b * d.y + transform.c * d.z;
|
||||
direction.y = transform.e * d.x + transform.f * d.y + transform.g * d.z;
|
||||
direction.z = transform.i * d.x + transform.j * d.y + transform.k * d.z;
|
||||
}
|
||||
}
|
||||
|
||||
public function addToDebug(debug:int, objectOrClass:*) : void
|
||||
{
|
||||
if(!this.debugSet[debug])
|
||||
{
|
||||
this.debugSet[debug] = new Dictionary();
|
||||
}
|
||||
this.debugSet[debug][objectOrClass] = true;
|
||||
}
|
||||
|
||||
public function removeFromDebug(debug:int, objectOrClass:*) : void
|
||||
{
|
||||
var key:* = undefined;
|
||||
if(Boolean(this.debugSet[debug]))
|
||||
{
|
||||
delete this.debugSet[debug][objectOrClass];
|
||||
var _loc4_:int = 0;
|
||||
var _loc5_:* = this.debugSet[debug];
|
||||
for(key in _loc5_)
|
||||
{
|
||||
}
|
||||
if(!key)
|
||||
{
|
||||
delete this.debugSet[debug];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
alternativa3d function checkInDebug(object:name_78) : int
|
||||
{
|
||||
var objectClass:Class = null;
|
||||
var res:int = 0;
|
||||
for(var debug:int = 1; debug <= 512; )
|
||||
{
|
||||
if(Boolean(this.debugSet[debug]))
|
||||
{
|
||||
if(Boolean(this.debugSet[debug][name_78]) || Boolean(this.debugSet[debug][object]))
|
||||
{
|
||||
res |= debug;
|
||||
}
|
||||
else
|
||||
{
|
||||
for(objectClass = getDefinitionByName(getQualifiedClassName(object)) as Class; objectClass != name_78; )
|
||||
{
|
||||
if(Boolean(this.debugSet[debug][objectClass]))
|
||||
{
|
||||
res |= debug;
|
||||
break;
|
||||
}
|
||||
objectClass = Class(getDefinitionByName(getQualifiedSuperclassName(objectClass)));
|
||||
}
|
||||
}
|
||||
}
|
||||
debug <<= 1;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
public function startTimer() : void
|
||||
{
|
||||
this.timer = getTimer();
|
||||
}
|
||||
|
||||
public function stopTimer() : void
|
||||
{
|
||||
this.timeSum += getTimer() - this.timer;
|
||||
++this.timeCount;
|
||||
}
|
||||
|
||||
public function get diagram() : DisplayObject
|
||||
{
|
||||
return this._diagram;
|
||||
}
|
||||
|
||||
public function get diagramAlign() : String
|
||||
{
|
||||
return this._diagramAlign;
|
||||
}
|
||||
|
||||
public function set diagramAlign(value:String) : void
|
||||
{
|
||||
this._diagramAlign = value;
|
||||
this.resizeDiagram();
|
||||
}
|
||||
|
||||
public function get diagramHorizontalMargin() : Number
|
||||
{
|
||||
return this._diagramHorizontalMargin;
|
||||
}
|
||||
|
||||
public function set diagramHorizontalMargin(value:Number) : void
|
||||
{
|
||||
this._diagramHorizontalMargin = value;
|
||||
this.resizeDiagram();
|
||||
}
|
||||
|
||||
public function get diagramVerticalMargin() : Number
|
||||
{
|
||||
return this._diagramVerticalMargin;
|
||||
}
|
||||
|
||||
public function set diagramVerticalMargin(value:Number) : void
|
||||
{
|
||||
this._diagramVerticalMargin = value;
|
||||
this.resizeDiagram();
|
||||
}
|
||||
|
||||
private function createDiagram() : Sprite
|
||||
{
|
||||
var diagram:Sprite = null;
|
||||
diagram = new Sprite();
|
||||
diagram.mouseEnabled = false;
|
||||
diagram.mouseChildren = false;
|
||||
this.fpsTextField = new TextField();
|
||||
this.fpsTextField.defaultTextFormat = new TextFormat("Tahoma",10,13421772);
|
||||
this.fpsTextField.autoSize = TextFieldAutoSize.LEFT;
|
||||
this.fpsTextField.text = "FPS:";
|
||||
this.fpsTextField.selectable = false;
|
||||
this.fpsTextField.x = -3;
|
||||
this.fpsTextField.y = -5;
|
||||
diagram.addChild(this.fpsTextField);
|
||||
this.timerTextField = new TextField();
|
||||
this.timerTextField.defaultTextFormat = new TextFormat("Tahoma",10,26367);
|
||||
this.timerTextField.autoSize = TextFieldAutoSize.LEFT;
|
||||
this.timerTextField.text = "MS:";
|
||||
this.timerTextField.selectable = false;
|
||||
this.timerTextField.x = -3;
|
||||
this.timerTextField.y = 4;
|
||||
diagram.addChild(this.timerTextField);
|
||||
this.memoryTextField = new TextField();
|
||||
this.memoryTextField.defaultTextFormat = new TextFormat("Tahoma",10,13421568);
|
||||
this.memoryTextField.autoSize = TextFieldAutoSize.LEFT;
|
||||
this.memoryTextField.text = "MEM:";
|
||||
this.memoryTextField.selectable = false;
|
||||
this.memoryTextField.x = -3;
|
||||
this.memoryTextField.y = 13;
|
||||
diagram.addChild(this.memoryTextField);
|
||||
this.drawsTextField = new TextField();
|
||||
this.drawsTextField.defaultTextFormat = new TextFormat("Tahoma",10,52224);
|
||||
this.drawsTextField.autoSize = TextFieldAutoSize.LEFT;
|
||||
this.drawsTextField.text = "DRW:";
|
||||
this.drawsTextField.selectable = false;
|
||||
this.drawsTextField.x = -3;
|
||||
this.drawsTextField.y = 22;
|
||||
diagram.addChild(this.drawsTextField);
|
||||
this.trianglesTextField = new TextField();
|
||||
this.trianglesTextField.defaultTextFormat = new TextFormat("Tahoma",10,16724736);
|
||||
this.trianglesTextField.autoSize = TextFieldAutoSize.LEFT;
|
||||
this.trianglesTextField.text = "TRI:";
|
||||
this.trianglesTextField.selectable = false;
|
||||
this.trianglesTextField.x = -3;
|
||||
this.trianglesTextField.y = 31;
|
||||
diagram.addChild(this.trianglesTextField);
|
||||
diagram.addEventListener(Event.ADDED_TO_STAGE,function():void
|
||||
{
|
||||
fpsTextField = new TextField();
|
||||
fpsTextField.defaultTextFormat = new TextFormat("Tahoma",10,13421772);
|
||||
fpsTextField.autoSize = TextFieldAutoSize.RIGHT;
|
||||
fpsTextField.text = Number(diagram.stage.frameRate).toFixed(2);
|
||||
fpsTextField.selectable = false;
|
||||
fpsTextField.x = -3;
|
||||
fpsTextField.y = -5;
|
||||
fpsTextField.width = 85;
|
||||
diagram.addChild(fpsTextField);
|
||||
timerTextField = new TextField();
|
||||
timerTextField.defaultTextFormat = new TextFormat("Tahoma",10,26367);
|
||||
timerTextField.autoSize = TextFieldAutoSize.RIGHT;
|
||||
timerTextField.text = "";
|
||||
timerTextField.selectable = false;
|
||||
timerTextField.x = -3;
|
||||
timerTextField.y = 4;
|
||||
timerTextField.width = 85;
|
||||
diagram.addChild(timerTextField);
|
||||
memoryTextField = new TextField();
|
||||
memoryTextField.defaultTextFormat = new TextFormat("Tahoma",10,13421568);
|
||||
memoryTextField.autoSize = TextFieldAutoSize.RIGHT;
|
||||
memoryTextField.text = bytesToString(System.totalMemory);
|
||||
memoryTextField.selectable = false;
|
||||
memoryTextField.x = -3;
|
||||
memoryTextField.y = 13;
|
||||
memoryTextField.width = 85;
|
||||
diagram.addChild(memoryTextField);
|
||||
drawsTextField = new TextField();
|
||||
drawsTextField.defaultTextFormat = new TextFormat("Tahoma",10,52224);
|
||||
drawsTextField.autoSize = TextFieldAutoSize.RIGHT;
|
||||
drawsTextField.text = "0";
|
||||
drawsTextField.selectable = false;
|
||||
drawsTextField.x = -3;
|
||||
drawsTextField.y = 22;
|
||||
drawsTextField.width = 72;
|
||||
diagram.addChild(drawsTextField);
|
||||
trianglesTextField = new TextField();
|
||||
trianglesTextField.defaultTextFormat = new TextFormat("Tahoma",10,16724736);
|
||||
trianglesTextField.autoSize = TextFieldAutoSize.RIGHT;
|
||||
trianglesTextField.text = "0";
|
||||
trianglesTextField.selectable = false;
|
||||
trianglesTextField.x = -3;
|
||||
trianglesTextField.y = 31;
|
||||
trianglesTextField.width = 72;
|
||||
diagram.addChild(trianglesTextField);
|
||||
graph = new Bitmap(new BitmapData(80,40,true,553648127));
|
||||
rect = new Rectangle(0,0,1,40);
|
||||
graph.x = 0;
|
||||
graph.y = 45;
|
||||
diagram.addChild(graph);
|
||||
previousPeriodTime = getTimer();
|
||||
previousFrameTime = previousPeriodTime;
|
||||
fpsUpdateCounter = 0;
|
||||
maxMemory = 0;
|
||||
timerUpdateCounter = 0;
|
||||
timeSum = 0;
|
||||
timeCount = 0;
|
||||
diagram.stage.addEventListener(Event.ENTER_FRAME,updateDiagram,false,-1000);
|
||||
diagram.stage.addEventListener(Event.RESIZE,resizeDiagram,false,-1000);
|
||||
resizeDiagram();
|
||||
});
|
||||
diagram.addEventListener(Event.REMOVED_FROM_STAGE,function():void
|
||||
{
|
||||
diagram.removeChild(fpsTextField);
|
||||
diagram.removeChild(memoryTextField);
|
||||
diagram.removeChild(drawsTextField);
|
||||
diagram.removeChild(trianglesTextField);
|
||||
diagram.removeChild(timerTextField);
|
||||
diagram.removeChild(graph);
|
||||
fpsTextField = null;
|
||||
memoryTextField = null;
|
||||
drawsTextField = null;
|
||||
trianglesTextField = null;
|
||||
timerTextField = null;
|
||||
graph.bitmapData.dispose();
|
||||
graph = null;
|
||||
rect = null;
|
||||
diagram.stage.removeEventListener(Event.ENTER_FRAME,updateDiagram);
|
||||
diagram.stage.removeEventListener(Event.RESIZE,resizeDiagram);
|
||||
});
|
||||
return diagram;
|
||||
}
|
||||
|
||||
private function resizeDiagram(e:Event = null) : void
|
||||
{
|
||||
var coord:Point = null;
|
||||
if(this._diagram.stage != null)
|
||||
{
|
||||
coord = this._diagram.parent.globalToLocal(new Point());
|
||||
if(this._diagramAlign == StageAlign.TOP_LEFT || this._diagramAlign == StageAlign.LEFT || this._diagramAlign == StageAlign.BOTTOM_LEFT)
|
||||
{
|
||||
this._diagram.x = Math.round(coord.x + this._diagramHorizontalMargin);
|
||||
}
|
||||
if(this._diagramAlign == StageAlign.TOP || this._diagramAlign == StageAlign.BOTTOM)
|
||||
{
|
||||
this._diagram.x = Math.round(coord.x + this._diagram.stage.stageWidth / 2 - this.graph.width / 2);
|
||||
}
|
||||
if(this._diagramAlign == StageAlign.TOP_RIGHT || this._diagramAlign == StageAlign.RIGHT || this._diagramAlign == StageAlign.BOTTOM_RIGHT)
|
||||
{
|
||||
this._diagram.x = Math.round(coord.x + this._diagram.stage.stageWidth - this._diagramHorizontalMargin - this.graph.width);
|
||||
}
|
||||
if(this._diagramAlign == StageAlign.TOP_LEFT || this._diagramAlign == StageAlign.TOP || this._diagramAlign == StageAlign.TOP_RIGHT)
|
||||
{
|
||||
this._diagram.y = Math.round(coord.y + this._diagramVerticalMargin);
|
||||
}
|
||||
if(this._diagramAlign == StageAlign.LEFT || this._diagramAlign == StageAlign.RIGHT)
|
||||
{
|
||||
this._diagram.y = Math.round(coord.y + this._diagram.stage.stageHeight / 2 - (this.graph.y + this.graph.height) / 2);
|
||||
}
|
||||
if(this._diagramAlign == StageAlign.BOTTOM_LEFT || this._diagramAlign == StageAlign.BOTTOM || this._diagramAlign == StageAlign.BOTTOM_RIGHT)
|
||||
{
|
||||
this._diagram.y = Math.round(coord.y + this._diagram.stage.stageHeight - this._diagramVerticalMargin - this.graph.y - this.graph.height);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function updateDiagram(e:Event) : void
|
||||
{
|
||||
var value:Number = NaN;
|
||||
var mod:int = 0;
|
||||
var time:int = int(getTimer());
|
||||
var stageFrameRate:int = int(this._diagram.stage.frameRate);
|
||||
if(++this.fpsUpdateCounter == this.fpsUpdatePeriod)
|
||||
{
|
||||
value = 1000 * this.fpsUpdatePeriod / (time - this.previousPeriodTime);
|
||||
if(value > stageFrameRate)
|
||||
{
|
||||
value = stageFrameRate;
|
||||
}
|
||||
mod = value * 100 % 100;
|
||||
this.fpsTextField.text = int(value) + "." + (mod >= 10 ? mod : (mod > 0 ? "0" + mod : "00"));
|
||||
this.previousPeriodTime = time;
|
||||
this.fpsUpdateCounter = 0;
|
||||
}
|
||||
value = 1000 / (time - this.previousFrameTime);
|
||||
if(value > stageFrameRate)
|
||||
{
|
||||
value = stageFrameRate;
|
||||
}
|
||||
this.graph.bitmapData.scroll(1,0);
|
||||
this.graph.bitmapData.fillRect(this.rect,553648127);
|
||||
this.graph.bitmapData.setPixel32(0,40 * (1 - value / stageFrameRate),4291611852);
|
||||
this.previousFrameTime = time;
|
||||
if(++this.timerUpdateCounter == this.timerUpdatePeriod)
|
||||
{
|
||||
if(this.timeCount > 0)
|
||||
{
|
||||
value = this.timeSum / this.timeCount;
|
||||
mod = value * 100 % 100;
|
||||
this.timerTextField.text = int(value) + "." + (mod >= 10 ? mod : (mod > 0 ? "0" + mod : "00"));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.timerTextField.text = "";
|
||||
}
|
||||
this.timerUpdateCounter = 0;
|
||||
this.timeSum = 0;
|
||||
this.timeCount = 0;
|
||||
}
|
||||
var memory:int = int(System.totalMemory);
|
||||
value = memory / 1048576;
|
||||
mod = value * 100 % 100;
|
||||
this.memoryTextField.text = int(value) + "." + (mod >= 10 ? mod : (mod > 0 ? "0" + mod : "00"));
|
||||
if(memory > this.maxMemory)
|
||||
{
|
||||
this.maxMemory = memory;
|
||||
}
|
||||
this.graph.bitmapData.setPixel32(0,40 * (1 - memory / this.maxMemory),4291611648);
|
||||
this.drawsTextField.text = this.formatInt(this.alternativa3d::numDraws);
|
||||
this.trianglesTextField.text = this.formatInt(this.alternativa3d::numTriangles);
|
||||
}
|
||||
|
||||
private function formatInt(num:int) : String
|
||||
{
|
||||
var n:int = 0;
|
||||
var s:String = null;
|
||||
if(num < 1000)
|
||||
{
|
||||
return "" + num;
|
||||
}
|
||||
if(num < 1000000)
|
||||
{
|
||||
n = num % 1000;
|
||||
if(n < 10)
|
||||
{
|
||||
s = "00" + n;
|
||||
}
|
||||
else if(n < 100)
|
||||
{
|
||||
s = "0" + n;
|
||||
}
|
||||
else
|
||||
{
|
||||
s = "" + n;
|
||||
}
|
||||
return int(num / 1000) + " " + s;
|
||||
}
|
||||
n = num % 1000000 / 1000;
|
||||
if(n < 10)
|
||||
{
|
||||
s = "00" + n;
|
||||
}
|
||||
else if(n < 100)
|
||||
{
|
||||
s = "0" + n;
|
||||
}
|
||||
else
|
||||
{
|
||||
s = "" + n;
|
||||
}
|
||||
n = num % 1000;
|
||||
if(n < 10)
|
||||
{
|
||||
s += " 00" + n;
|
||||
}
|
||||
else if(n < 100)
|
||||
{
|
||||
s += " 0" + n;
|
||||
}
|
||||
else
|
||||
{
|
||||
s += " " + n;
|
||||
}
|
||||
return int(num / 1000000) + " " + s;
|
||||
}
|
||||
|
||||
private function bytesToString(bytes:int) : String
|
||||
{
|
||||
if(bytes < 1024)
|
||||
{
|
||||
return bytes + "b";
|
||||
}
|
||||
if(bytes < 10240)
|
||||
{
|
||||
return (bytes / 1024).toFixed(2) + "kb";
|
||||
}
|
||||
if(bytes < 102400)
|
||||
{
|
||||
return (bytes / 1024).toFixed(1) + "kb";
|
||||
}
|
||||
if(bytes < 1048576)
|
||||
{
|
||||
return (bytes >> 10) + "kb";
|
||||
}
|
||||
if(bytes < 10485760)
|
||||
{
|
||||
return (bytes / 1048576).toFixed(2);
|
||||
}
|
||||
if(bytes < 104857600)
|
||||
{
|
||||
return (bytes / 1048576).toFixed(1);
|
||||
}
|
||||
return String(bytes >> 20);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
45
src/package_21/name_126.as
Normal file
45
src/package_21/name_126.as
Normal file
@@ -0,0 +1,45 @@
|
||||
package package_21
|
||||
{
|
||||
import alternativa.engine3d.alternativa3d;
|
||||
import flash.display3D.Context3DVertexBufferFormat;
|
||||
|
||||
use namespace alternativa3d;
|
||||
|
||||
public class name_126
|
||||
{
|
||||
public static const POSITION:uint = 1;
|
||||
|
||||
public static const NORMAL:uint = 2;
|
||||
|
||||
public static const TANGENT4:uint = 3;
|
||||
|
||||
public static const JOINTS:Vector.<uint> = Vector.<uint>([4,5,6,7]);
|
||||
|
||||
public static const TEXCOORDS:Vector.<uint> = Vector.<uint>([8,9,10,11,12,13,14,15]);
|
||||
|
||||
alternativa3d static const FORMATS:Array = [Context3DVertexBufferFormat.FLOAT_1,Context3DVertexBufferFormat.FLOAT_3,Context3DVertexBufferFormat.FLOAT_3,Context3DVertexBufferFormat.FLOAT_4,Context3DVertexBufferFormat.FLOAT_4,Context3DVertexBufferFormat.FLOAT_4,Context3DVertexBufferFormat.FLOAT_4,Context3DVertexBufferFormat.FLOAT_4,Context3DVertexBufferFormat.FLOAT_2,Context3DVertexBufferFormat.FLOAT_2,Context3DVertexBufferFormat.FLOAT_2,Context3DVertexBufferFormat.FLOAT_2,Context3DVertexBufferFormat.FLOAT_2,Context3DVertexBufferFormat.FLOAT_2,Context3DVertexBufferFormat.FLOAT_2,Context3DVertexBufferFormat.FLOAT_2];
|
||||
|
||||
public function name_126()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public static function name_433(attribute:int) : int
|
||||
{
|
||||
switch(alternativa3d::FORMATS[attribute])
|
||||
{
|
||||
case Context3DVertexBufferFormat.FLOAT_1:
|
||||
return 1;
|
||||
case Context3DVertexBufferFormat.FLOAT_2:
|
||||
return 2;
|
||||
case Context3DVertexBufferFormat.FLOAT_3:
|
||||
return 3;
|
||||
case Context3DVertexBufferFormat.FLOAT_4:
|
||||
return 4;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
37
src/package_21/name_128.as
Normal file
37
src/package_21/name_128.as
Normal file
@@ -0,0 +1,37 @@
|
||||
package package_21
|
||||
{
|
||||
public class name_128
|
||||
{
|
||||
public static const SKY:int = 0;
|
||||
|
||||
public static const OPAQUE_SORT:int = 1;
|
||||
|
||||
public static const OPAQUE:int = 2;
|
||||
|
||||
public static const DECALS:int = 3;
|
||||
|
||||
public static const TANK_SHADOW:int = 4;
|
||||
|
||||
public static const TANK_OPAQUE:int = 5;
|
||||
|
||||
public static const SHADOWS:int = 6;
|
||||
|
||||
public static const SHADOWED_LIGHTS:int = 7;
|
||||
|
||||
public static const LIGHTS:int = 8;
|
||||
|
||||
public static const FOG:int = 9;
|
||||
|
||||
public static const TRANSPARENT_SORT:int = 10;
|
||||
|
||||
public static const NEXT_LAYER:int = 11;
|
||||
|
||||
public static const EFFECTS:int = 12;
|
||||
|
||||
public function name_128()
|
||||
{
|
||||
super();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
368
src/package_21/name_135.as
Normal file
368
src/package_21/name_135.as
Normal file
@@ -0,0 +1,368 @@
|
||||
package package_21
|
||||
{
|
||||
import alternativa.engine3d.alternativa3d;
|
||||
import flash.display3D.Context3DBlendFactor;
|
||||
import flash.display3D.Context3DTriangleFace;
|
||||
import flash.display3D.IndexBuffer3D;
|
||||
import flash.display3D.Program3D;
|
||||
import flash.display3D.VertexBuffer3D;
|
||||
import flash.display3D.textures.TextureBase;
|
||||
|
||||
use namespace alternativa3d;
|
||||
|
||||
public class name_135
|
||||
{
|
||||
alternativa3d var next:name_135;
|
||||
|
||||
alternativa3d var object:name_78;
|
||||
|
||||
alternativa3d var program:Program3D;
|
||||
|
||||
alternativa3d var indexBuffer:IndexBuffer3D;
|
||||
|
||||
alternativa3d var firstIndex:int;
|
||||
|
||||
alternativa3d var numTriangles:int;
|
||||
|
||||
alternativa3d var blendSource:String = "one";
|
||||
|
||||
alternativa3d var blendDestination:String = "zero";
|
||||
|
||||
alternativa3d var culling:String = "front";
|
||||
|
||||
alternativa3d var textures:Vector.<TextureBase> = new Vector.<TextureBase>();
|
||||
|
||||
alternativa3d var var_183:Vector.<int> = new Vector.<int>();
|
||||
|
||||
alternativa3d var var_182:int = 0;
|
||||
|
||||
alternativa3d var vertexBuffers:Vector.<VertexBuffer3D> = new Vector.<VertexBuffer3D>();
|
||||
|
||||
alternativa3d var name_405:Vector.<int> = new Vector.<int>();
|
||||
|
||||
alternativa3d var name_411:Vector.<int> = new Vector.<int>();
|
||||
|
||||
alternativa3d var name_409:Vector.<String> = new Vector.<String>();
|
||||
|
||||
alternativa3d var name_403:int = 0;
|
||||
|
||||
alternativa3d var name_410:Vector.<Number> = new Vector.<Number>();
|
||||
|
||||
alternativa3d var name_404:int = 0;
|
||||
|
||||
alternativa3d var name_408:Vector.<Number> = new Vector.<Number>(28 * 4,true);
|
||||
|
||||
alternativa3d var name_407:int = 0;
|
||||
|
||||
public function name_135()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
alternativa3d function clear() : void
|
||||
{
|
||||
this.alternativa3d::object = null;
|
||||
this.alternativa3d::program = null;
|
||||
this.alternativa3d::indexBuffer = null;
|
||||
this.alternativa3d::blendSource = Context3DBlendFactor.ONE;
|
||||
this.alternativa3d::blendDestination = Context3DBlendFactor.ZERO;
|
||||
this.alternativa3d::culling = Context3DTriangleFace.FRONT;
|
||||
this.alternativa3d::textures.length = 0;
|
||||
this.alternativa3d::var_182 = 0;
|
||||
this.alternativa3d::vertexBuffers.length = 0;
|
||||
this.alternativa3d::name_403 = 0;
|
||||
this.alternativa3d::name_404 = 0;
|
||||
this.alternativa3d::name_407 = 0;
|
||||
}
|
||||
|
||||
alternativa3d function setTextureAt(sampler:int, texture:TextureBase) : void
|
||||
{
|
||||
if(uint(sampler) > 8)
|
||||
{
|
||||
throw new Error("Sampler index " + sampler + " is out of bounds.");
|
||||
}
|
||||
if(texture == null)
|
||||
{
|
||||
throw new Error("Texture is null");
|
||||
}
|
||||
this.alternativa3d::var_183[this.alternativa3d::var_182] = sampler;
|
||||
this.alternativa3d::textures[this.alternativa3d::var_182] = texture;
|
||||
++this.alternativa3d::var_182;
|
||||
}
|
||||
|
||||
alternativa3d function setVertexBufferAt(index:int, buffer:VertexBuffer3D, bufferOffset:int, format:String) : void
|
||||
{
|
||||
if(uint(index) > 8)
|
||||
{
|
||||
throw new Error("VertexBuffer index " + index + " is out of bounds.");
|
||||
}
|
||||
if(buffer == null)
|
||||
{
|
||||
throw new Error("Buffer is null");
|
||||
}
|
||||
this.alternativa3d::name_405[this.alternativa3d::name_403] = index;
|
||||
this.alternativa3d::vertexBuffers[this.alternativa3d::name_403] = buffer;
|
||||
this.alternativa3d::name_411[this.alternativa3d::name_403] = bufferOffset;
|
||||
this.alternativa3d::name_409[this.alternativa3d::name_403] = format;
|
||||
++this.alternativa3d::name_403;
|
||||
}
|
||||
|
||||
alternativa3d function name_426(firstRegister:int, data:Vector.<Number>, numRegisters:int) : void
|
||||
{
|
||||
if(uint(firstRegister + numRegisters) > 128)
|
||||
{
|
||||
throw new Error("Register index " + firstRegister + " is out of bounds.");
|
||||
}
|
||||
var offset:int = firstRegister << 2;
|
||||
if(firstRegister + numRegisters > this.alternativa3d::name_404)
|
||||
{
|
||||
this.alternativa3d::name_404 = firstRegister + numRegisters;
|
||||
this.alternativa3d::name_410.length = this.alternativa3d::name_404 << 2;
|
||||
}
|
||||
for(var i:int = 0,var len:int = numRegisters << 2; i < len; )
|
||||
{
|
||||
this.alternativa3d::name_410[offset] = data[i];
|
||||
offset++;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
alternativa3d function name_144(firstRegister:int, x:Number, y:Number, z:Number, w:Number = 1) : void
|
||||
{
|
||||
if(uint(firstRegister + 1) > 128)
|
||||
{
|
||||
throw new Error("Register index " + firstRegister + " is out of bounds.");
|
||||
}
|
||||
var offset:int = firstRegister << 2;
|
||||
if(firstRegister + 1 > this.alternativa3d::name_404)
|
||||
{
|
||||
this.alternativa3d::name_404 = firstRegister + 1;
|
||||
this.alternativa3d::name_410.length = this.alternativa3d::name_404 << 2;
|
||||
}
|
||||
this.alternativa3d::name_410[offset] = x;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = y;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = z;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = w;
|
||||
}
|
||||
|
||||
alternativa3d function name_412(firstRegister:int, transform:name_139) : void
|
||||
{
|
||||
if(uint(firstRegister + 3) > 128)
|
||||
{
|
||||
throw new Error("Register index " + firstRegister + " is out of bounds.");
|
||||
}
|
||||
var offset:int = firstRegister << 2;
|
||||
if(firstRegister + 3 > this.alternativa3d::name_404)
|
||||
{
|
||||
this.alternativa3d::name_404 = firstRegister + 3;
|
||||
this.alternativa3d::name_410.length = this.alternativa3d::name_404 << 2;
|
||||
}
|
||||
this.alternativa3d::name_410[offset] = transform.a;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.b;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.c;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.d;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.e;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.f;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.g;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.h;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.i;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.j;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.k;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.l;
|
||||
}
|
||||
|
||||
alternativa3d function name_136(camera:name_124, firstRegister:int, transform:name_139 = null) : void
|
||||
{
|
||||
if(uint(firstRegister + 4) > 128)
|
||||
{
|
||||
throw new Error("Register index is out of bounds.");
|
||||
}
|
||||
var offset:int = firstRegister << 2;
|
||||
if(firstRegister + 4 > this.alternativa3d::name_404)
|
||||
{
|
||||
this.alternativa3d::name_404 = firstRegister + 4;
|
||||
this.alternativa3d::name_410.length = this.alternativa3d::name_404 << 2;
|
||||
}
|
||||
if(transform != null)
|
||||
{
|
||||
this.alternativa3d::name_410[offset] = transform.a * camera.alternativa3d::m0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.b * camera.alternativa3d::m0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.c * camera.alternativa3d::m0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.d * camera.alternativa3d::m0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.e * camera.alternativa3d::m5;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.f * camera.alternativa3d::m5;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.g * camera.alternativa3d::m5;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.h * camera.alternativa3d::m5;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.i * camera.alternativa3d::m10;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.j * camera.alternativa3d::m10;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.k * camera.alternativa3d::m10;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.l * camera.alternativa3d::m10 + camera.alternativa3d::m14;
|
||||
offset++;
|
||||
if(!camera.orthographic)
|
||||
{
|
||||
this.alternativa3d::name_410[offset] = transform.i;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.j;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.k;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = transform.l;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.alternativa3d::name_410[offset] = 0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = 0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = 0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.alternativa3d::name_410[offset] = camera.alternativa3d::m0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = 0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = 0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = 0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = 0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = camera.alternativa3d::m5;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = 0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = 0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = 0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = 0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = camera.alternativa3d::m10;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = camera.alternativa3d::m14;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = 0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = 0;
|
||||
offset++;
|
||||
if(!camera.orthographic)
|
||||
{
|
||||
this.alternativa3d::name_410[offset] = 1;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.alternativa3d::name_410[offset] = 0;
|
||||
offset++;
|
||||
this.alternativa3d::name_410[offset] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
alternativa3d function name_205(firstRegister:int, data:Vector.<Number>, numRegisters:int) : void
|
||||
{
|
||||
if(uint(firstRegister + numRegisters) > 28)
|
||||
{
|
||||
throw new Error("Register index " + firstRegister + " is out of bounds.");
|
||||
}
|
||||
var offset:int = firstRegister << 2;
|
||||
if(firstRegister + numRegisters > this.alternativa3d::name_407)
|
||||
{
|
||||
this.alternativa3d::name_407 = firstRegister + numRegisters;
|
||||
}
|
||||
for(var i:int = 0,var len:int = numRegisters << 2; i < len; )
|
||||
{
|
||||
this.alternativa3d::name_408[offset] = data[i];
|
||||
offset++;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
alternativa3d function name_134(firstRegister:int, x:Number, y:Number, z:Number, w:Number = 1) : void
|
||||
{
|
||||
if(uint(firstRegister + 1) > 28)
|
||||
{
|
||||
throw new Error("Register index " + firstRegister + " is out of bounds.");
|
||||
}
|
||||
var offset:int = firstRegister << 2;
|
||||
if(firstRegister + 1 > this.alternativa3d::name_407)
|
||||
{
|
||||
this.alternativa3d::name_407 = firstRegister + 1;
|
||||
}
|
||||
this.alternativa3d::name_408[offset] = x;
|
||||
offset++;
|
||||
this.alternativa3d::name_408[offset] = y;
|
||||
offset++;
|
||||
this.alternativa3d::name_408[offset] = z;
|
||||
offset++;
|
||||
this.alternativa3d::name_408[offset] = w;
|
||||
}
|
||||
|
||||
alternativa3d function method_291(firstRegister:int, transform:name_139) : void
|
||||
{
|
||||
if(uint(firstRegister + 3) > 28)
|
||||
{
|
||||
throw new Error("Register index " + firstRegister + " is out of bounds.");
|
||||
}
|
||||
var offset:int = firstRegister << 2;
|
||||
if(firstRegister + 3 > this.alternativa3d::name_407)
|
||||
{
|
||||
this.alternativa3d::name_407 = firstRegister + 3;
|
||||
}
|
||||
this.alternativa3d::name_408[offset] = transform.a;
|
||||
offset++;
|
||||
this.alternativa3d::name_408[offset] = transform.b;
|
||||
offset++;
|
||||
this.alternativa3d::name_408[offset] = transform.c;
|
||||
offset++;
|
||||
this.alternativa3d::name_408[offset] = transform.d;
|
||||
offset++;
|
||||
this.alternativa3d::name_408[offset] = transform.e;
|
||||
offset++;
|
||||
this.alternativa3d::name_408[offset] = transform.f;
|
||||
offset++;
|
||||
this.alternativa3d::name_408[offset] = transform.g;
|
||||
offset++;
|
||||
this.alternativa3d::name_408[offset] = transform.h;
|
||||
offset++;
|
||||
this.alternativa3d::name_408[offset] = transform.i;
|
||||
offset++;
|
||||
this.alternativa3d::name_408[offset] = transform.j;
|
||||
offset++;
|
||||
this.alternativa3d::name_408[offset] = transform.k;
|
||||
offset++;
|
||||
this.alternativa3d::name_408[offset] = transform.l;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
278
src/package_21/name_139.as
Normal file
278
src/package_21/name_139.as
Normal file
@@ -0,0 +1,278 @@
|
||||
package package_21
|
||||
{
|
||||
import alternativa.engine3d.alternativa3d;
|
||||
|
||||
use namespace alternativa3d;
|
||||
|
||||
public class name_139
|
||||
{
|
||||
public var a:Number = 1;
|
||||
|
||||
public var b:Number = 0;
|
||||
|
||||
public var c:Number = 0;
|
||||
|
||||
public var d:Number = 0;
|
||||
|
||||
public var e:Number = 0;
|
||||
|
||||
public var f:Number = 1;
|
||||
|
||||
public var g:Number = 0;
|
||||
|
||||
public var h:Number = 0;
|
||||
|
||||
public var i:Number = 0;
|
||||
|
||||
public var j:Number = 0;
|
||||
|
||||
public var k:Number = 1;
|
||||
|
||||
public var l:Number = 0;
|
||||
|
||||
public function name_139()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public function method_293() : void
|
||||
{
|
||||
this.a = 1;
|
||||
this.b = 0;
|
||||
this.c = 0;
|
||||
this.d = 0;
|
||||
this.e = 0;
|
||||
this.f = 1;
|
||||
this.g = 0;
|
||||
this.h = 0;
|
||||
this.i = 0;
|
||||
this.j = 0;
|
||||
this.k = 1;
|
||||
this.l = 0;
|
||||
}
|
||||
|
||||
public function compose(x:Number, y:Number, z:Number, rotationX:Number, rotationY:Number, rotationZ:Number, scaleX:Number, scaleY:Number, scaleZ:Number) : void
|
||||
{
|
||||
var cosX:Number = Number(Math.cos(rotationX));
|
||||
var sinX:Number = Number(Math.sin(rotationX));
|
||||
var cosY:Number = Number(Math.cos(rotationY));
|
||||
var sinY:Number = Number(Math.sin(rotationY));
|
||||
var cosZ:Number = Number(Math.cos(rotationZ));
|
||||
var sinZ:Number = Number(Math.sin(rotationZ));
|
||||
var cosZsinY:Number = cosZ * sinY;
|
||||
var sinZsinY:Number = sinZ * sinY;
|
||||
var cosYscaleX:Number = cosY * scaleX;
|
||||
var sinXscaleY:Number = sinX * scaleY;
|
||||
var cosXscaleY:Number = cosX * scaleY;
|
||||
var cosXscaleZ:Number = cosX * scaleZ;
|
||||
var sinXscaleZ:Number = sinX * scaleZ;
|
||||
this.a = cosZ * cosYscaleX;
|
||||
this.b = cosZsinY * sinXscaleY - sinZ * cosXscaleY;
|
||||
this.c = cosZsinY * cosXscaleZ + sinZ * sinXscaleZ;
|
||||
this.d = x;
|
||||
this.e = sinZ * cosYscaleX;
|
||||
this.f = sinZsinY * sinXscaleY + cosZ * cosXscaleY;
|
||||
this.g = sinZsinY * cosXscaleZ - cosZ * sinXscaleZ;
|
||||
this.h = y;
|
||||
this.i = -sinY * scaleX;
|
||||
this.j = cosY * sinXscaleY;
|
||||
this.k = cosY * cosXscaleZ;
|
||||
this.l = z;
|
||||
}
|
||||
|
||||
public function method_292(x:Number, y:Number, z:Number, rotationX:Number, rotationY:Number, rotationZ:Number, scaleX:Number, scaleY:Number, scaleZ:Number) : void
|
||||
{
|
||||
var cosX:Number = Number(Math.cos(rotationX));
|
||||
var sinX:Number = Number(Math.sin(-rotationX));
|
||||
var cosY:Number = Number(Math.cos(rotationY));
|
||||
var sinY:Number = Number(Math.sin(-rotationY));
|
||||
var cosZ:Number = Number(Math.cos(rotationZ));
|
||||
var sinZ:Number = Number(Math.sin(-rotationZ));
|
||||
var sinXsinY:Number = sinX * sinY;
|
||||
var cosYscaleX:Number = cosY / scaleX;
|
||||
var cosXscaleY:Number = cosX / scaleY;
|
||||
var sinXscaleZ:Number = sinX / scaleZ;
|
||||
var cosXscaleZ:Number = cosX / scaleZ;
|
||||
this.a = cosZ * cosYscaleX;
|
||||
this.b = -sinZ * cosYscaleX;
|
||||
this.c = sinY / scaleX;
|
||||
this.d = -this.a * x - this.b * y - this.c * z;
|
||||
this.e = sinZ * cosXscaleY + sinXsinY * cosZ / scaleY;
|
||||
this.f = cosZ * cosXscaleY - sinXsinY * sinZ / scaleY;
|
||||
this.g = -sinX * cosY / scaleY;
|
||||
this.h = -this.e * x - this.f * y - this.g * z;
|
||||
this.i = sinZ * sinXscaleZ - cosZ * sinY * cosXscaleZ;
|
||||
this.j = cosZ * sinXscaleZ + sinY * sinZ * cosXscaleZ;
|
||||
this.k = cosY * cosXscaleZ;
|
||||
this.l = -this.i * x - this.j * y - this.k * z;
|
||||
}
|
||||
|
||||
public function invert() : void
|
||||
{
|
||||
var ta:Number = this.a;
|
||||
var tb:Number = this.b;
|
||||
var tc:Number = this.c;
|
||||
var td:Number = this.d;
|
||||
var te:Number = this.e;
|
||||
var tf:Number = this.f;
|
||||
var tg:Number = this.g;
|
||||
var th:Number = this.h;
|
||||
var ti:Number = this.i;
|
||||
var tj:Number = this.j;
|
||||
var tk:Number = this.k;
|
||||
var tl:Number = this.l;
|
||||
var det:Number = 1 / (-tc * tf * ti + tb * tg * ti + tc * te * tj - ta * tg * tj - tb * te * tk + ta * tf * tk);
|
||||
this.a = (-tg * tj + tf * tk) * det;
|
||||
this.b = (tc * tj - tb * tk) * det;
|
||||
this.c = (-tc * tf + tb * tg) * det;
|
||||
this.d = (td * tg * tj - tc * th * tj - td * tf * tk + tb * th * tk + tc * tf * tl - tb * tg * tl) * det;
|
||||
this.e = (tg * ti - te * tk) * det;
|
||||
this.f = (-tc * ti + ta * tk) * det;
|
||||
this.g = (tc * te - ta * tg) * det;
|
||||
this.h = (tc * th * ti - td * tg * ti + td * te * tk - ta * th * tk - tc * te * tl + ta * tg * tl) * det;
|
||||
this.i = (-tf * ti + te * tj) * det;
|
||||
this.j = (tb * ti - ta * tj) * det;
|
||||
this.k = (-tb * te + ta * tf) * det;
|
||||
this.l = (td * tf * ti - tb * th * ti - td * te * tj + ta * th * tj + tb * te * tl - ta * tf * tl) * det;
|
||||
}
|
||||
|
||||
public function method_294(vector:Vector.<Number>) : void
|
||||
{
|
||||
this.a = vector[0];
|
||||
this.b = vector[1];
|
||||
this.c = vector[2];
|
||||
this.d = vector[3];
|
||||
this.e = vector[4];
|
||||
this.f = vector[5];
|
||||
this.g = vector[6];
|
||||
this.h = vector[7];
|
||||
this.i = vector[8];
|
||||
this.j = vector[9];
|
||||
this.k = vector[10];
|
||||
this.l = vector[11];
|
||||
}
|
||||
|
||||
public function append(transform:name_139) : void
|
||||
{
|
||||
var ta:Number = this.a;
|
||||
var tb:Number = this.b;
|
||||
var tc:Number = this.c;
|
||||
var td:Number = this.d;
|
||||
var te:Number = this.e;
|
||||
var tf:Number = this.f;
|
||||
var tg:Number = this.g;
|
||||
var th:Number = this.h;
|
||||
var ti:Number = this.i;
|
||||
var tj:Number = this.j;
|
||||
var tk:Number = this.k;
|
||||
var tl:Number = this.l;
|
||||
this.a = transform.a * ta + transform.b * te + transform.c * ti;
|
||||
this.b = transform.a * tb + transform.b * tf + transform.c * tj;
|
||||
this.c = transform.a * tc + transform.b * tg + transform.c * tk;
|
||||
this.d = transform.a * td + transform.b * th + transform.c * tl + transform.d;
|
||||
this.e = transform.e * ta + transform.f * te + transform.g * ti;
|
||||
this.f = transform.e * tb + transform.f * tf + transform.g * tj;
|
||||
this.g = transform.e * tc + transform.f * tg + transform.g * tk;
|
||||
this.h = transform.e * td + transform.f * th + transform.g * tl + transform.h;
|
||||
this.i = transform.i * ta + transform.j * te + transform.k * ti;
|
||||
this.j = transform.i * tb + transform.j * tf + transform.k * tj;
|
||||
this.k = transform.i * tc + transform.j * tg + transform.k * tk;
|
||||
this.l = transform.i * td + transform.j * th + transform.k * tl + transform.l;
|
||||
}
|
||||
|
||||
public function prepend(transform:name_139) : void
|
||||
{
|
||||
var ta:Number = this.a;
|
||||
var tb:Number = this.b;
|
||||
var tc:Number = this.c;
|
||||
var td:Number = this.d;
|
||||
var te:Number = this.e;
|
||||
var tf:Number = this.f;
|
||||
var tg:Number = this.g;
|
||||
var th:Number = this.h;
|
||||
var ti:Number = this.i;
|
||||
var tj:Number = this.j;
|
||||
var tk:Number = this.k;
|
||||
var tl:Number = this.l;
|
||||
this.a = ta * transform.a + tb * transform.e + tc * transform.i;
|
||||
this.b = ta * transform.b + tb * transform.f + tc * transform.j;
|
||||
this.c = ta * transform.c + tb * transform.g + tc * transform.k;
|
||||
this.d = ta * transform.d + tb * transform.h + tc * transform.l + td;
|
||||
this.e = te * transform.a + tf * transform.e + tg * transform.i;
|
||||
this.f = te * transform.b + tf * transform.f + tg * transform.j;
|
||||
this.g = te * transform.c + tf * transform.g + tg * transform.k;
|
||||
this.h = te * transform.d + tf * transform.h + tg * transform.l + th;
|
||||
this.i = ti * transform.a + tj * transform.e + tk * transform.i;
|
||||
this.j = ti * transform.b + tj * transform.f + tk * transform.j;
|
||||
this.k = ti * transform.c + tj * transform.g + tk * transform.k;
|
||||
this.l = ti * transform.d + tj * transform.h + tk * transform.l + tl;
|
||||
}
|
||||
|
||||
public function combine(transformA:name_139, transformB:name_139) : void
|
||||
{
|
||||
this.a = transformA.a * transformB.a + transformA.b * transformB.e + transformA.c * transformB.i;
|
||||
this.b = transformA.a * transformB.b + transformA.b * transformB.f + transformA.c * transformB.j;
|
||||
this.c = transformA.a * transformB.c + transformA.b * transformB.g + transformA.c * transformB.k;
|
||||
this.d = transformA.a * transformB.d + transformA.b * transformB.h + transformA.c * transformB.l + transformA.d;
|
||||
this.e = transformA.e * transformB.a + transformA.f * transformB.e + transformA.g * transformB.i;
|
||||
this.f = transformA.e * transformB.b + transformA.f * transformB.f + transformA.g * transformB.j;
|
||||
this.g = transformA.e * transformB.c + transformA.f * transformB.g + transformA.g * transformB.k;
|
||||
this.h = transformA.e * transformB.d + transformA.f * transformB.h + transformA.g * transformB.l + transformA.h;
|
||||
this.i = transformA.i * transformB.a + transformA.j * transformB.e + transformA.k * transformB.i;
|
||||
this.j = transformA.i * transformB.b + transformA.j * transformB.f + transformA.k * transformB.j;
|
||||
this.k = transformA.i * transformB.c + transformA.j * transformB.g + transformA.k * transformB.k;
|
||||
this.l = transformA.i * transformB.d + transformA.j * transformB.h + transformA.k * transformB.l + transformA.l;
|
||||
}
|
||||
|
||||
public function calculateInversion(source:name_139) : void
|
||||
{
|
||||
var ta:Number = source.a;
|
||||
var tb:Number = source.b;
|
||||
var tc:Number = source.c;
|
||||
var td:Number = source.d;
|
||||
var te:Number = source.e;
|
||||
var tf:Number = source.f;
|
||||
var tg:Number = source.g;
|
||||
var th:Number = source.h;
|
||||
var ti:Number = source.i;
|
||||
var tj:Number = source.j;
|
||||
var tk:Number = source.k;
|
||||
var tl:Number = source.l;
|
||||
var det:Number = 1 / (-tc * tf * ti + tb * tg * ti + tc * te * tj - ta * tg * tj - tb * te * tk + ta * tf * tk);
|
||||
this.a = (-tg * tj + tf * tk) * det;
|
||||
this.b = (tc * tj - tb * tk) * det;
|
||||
this.c = (-tc * tf + tb * tg) * det;
|
||||
this.d = (td * tg * tj - tc * th * tj - td * tf * tk + tb * th * tk + tc * tf * tl - tb * tg * tl) * det;
|
||||
this.e = (tg * ti - te * tk) * det;
|
||||
this.f = (-tc * ti + ta * tk) * det;
|
||||
this.g = (tc * te - ta * tg) * det;
|
||||
this.h = (tc * th * ti - td * tg * ti + td * te * tk - ta * th * tk - tc * te * tl + ta * tg * tl) * det;
|
||||
this.i = (-tf * ti + te * tj) * det;
|
||||
this.j = (tb * ti - ta * tj) * det;
|
||||
this.k = (-tb * te + ta * tf) * det;
|
||||
this.l = (td * tf * ti - tb * th * ti - td * te * tj + ta * th * tj + tb * te * tl - ta * tf * tl) * det;
|
||||
}
|
||||
|
||||
public function copy(source:name_139) : void
|
||||
{
|
||||
this.a = source.a;
|
||||
this.b = source.b;
|
||||
this.c = source.c;
|
||||
this.d = source.d;
|
||||
this.e = source.e;
|
||||
this.f = source.f;
|
||||
this.g = source.g;
|
||||
this.h = source.h;
|
||||
this.i = source.i;
|
||||
this.j = source.j;
|
||||
this.k = source.k;
|
||||
this.l = source.l;
|
||||
}
|
||||
|
||||
public function toString() : String
|
||||
{
|
||||
return "[Transform3D" + " a:" + this.a.toFixed(3) + " b:" + this.b.toFixed(3) + " c:" + this.a.toFixed(3) + " d:" + this.d.toFixed(3) + " e:" + this.e.toFixed(3) + " f:" + this.f.toFixed(3) + " g:" + this.a.toFixed(3) + " h:" + this.h.toFixed(3) + " i:" + this.i.toFixed(3) + " j:" + this.j.toFixed(3) + " k:" + this.a.toFixed(3) + " l:" + this.l.toFixed(3) + "]";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
373
src/package_21/name_386.as
Normal file
373
src/package_21/name_386.as
Normal file
@@ -0,0 +1,373 @@
|
||||
package package_21
|
||||
{
|
||||
import alternativa.engine3d.alternativa3d;
|
||||
import flash.geom.Vector3D;
|
||||
|
||||
use namespace alternativa3d;
|
||||
|
||||
public class name_386
|
||||
{
|
||||
public var minX:Number = 1e+22;
|
||||
|
||||
public var minY:Number = 1e+22;
|
||||
|
||||
public var minZ:Number = 1e+22;
|
||||
|
||||
public var maxX:Number = -1e+22;
|
||||
|
||||
public var maxY:Number = -1e+22;
|
||||
|
||||
public var maxZ:Number = -1e+22;
|
||||
|
||||
public function name_386()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public function reset() : void
|
||||
{
|
||||
this.minX = 1e+22;
|
||||
this.minY = 1e+22;
|
||||
this.minZ = 1e+22;
|
||||
this.maxX = -1e+22;
|
||||
this.maxY = -1e+22;
|
||||
this.maxZ = -1e+22;
|
||||
}
|
||||
|
||||
alternativa3d function name_393(frustum:name_429, culling:int) : int
|
||||
{
|
||||
var side:int = 1;
|
||||
for(var plane:name_429 = frustum; plane != null; plane = plane.next)
|
||||
{
|
||||
if(Boolean(culling & side))
|
||||
{
|
||||
if(plane.x >= 0)
|
||||
{
|
||||
if(plane.y >= 0)
|
||||
{
|
||||
if(plane.z >= 0)
|
||||
{
|
||||
if(this.maxX * plane.x + this.maxY * plane.y + this.maxZ * plane.z <= plane.offset)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if(this.minX * plane.x + this.minY * plane.y + this.minZ * plane.z > plane.offset)
|
||||
{
|
||||
culling &= 0x3F & ~side;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(this.maxX * plane.x + this.maxY * plane.y + this.minZ * plane.z <= plane.offset)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if(this.minX * plane.x + this.minY * plane.y + this.maxZ * plane.z > plane.offset)
|
||||
{
|
||||
culling &= 0x3F & ~side;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(plane.z >= 0)
|
||||
{
|
||||
if(this.maxX * plane.x + this.minY * plane.y + this.maxZ * plane.z <= plane.offset)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if(this.minX * plane.x + this.maxY * plane.y + this.minZ * plane.z > plane.offset)
|
||||
{
|
||||
culling &= 0x3F & ~side;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(this.maxX * plane.x + this.minY * plane.y + this.minZ * plane.z <= plane.offset)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if(this.minX * plane.x + this.maxY * plane.y + this.maxZ * plane.z > plane.offset)
|
||||
{
|
||||
culling &= 0x3F & ~side;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(plane.y >= 0)
|
||||
{
|
||||
if(plane.z >= 0)
|
||||
{
|
||||
if(this.minX * plane.x + this.maxY * plane.y + this.maxZ * plane.z <= plane.offset)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if(this.maxX * plane.x + this.minY * plane.y + this.minZ * plane.z > plane.offset)
|
||||
{
|
||||
culling &= 0x3F & ~side;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(this.minX * plane.x + this.maxY * plane.y + this.minZ * plane.z <= plane.offset)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if(this.maxX * plane.x + this.minY * plane.y + this.maxZ * plane.z > plane.offset)
|
||||
{
|
||||
culling &= 0x3F & ~side;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(plane.z >= 0)
|
||||
{
|
||||
if(this.minX * plane.x + this.minY * plane.y + this.maxZ * plane.z <= plane.offset)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if(this.maxX * plane.x + this.maxY * plane.y + this.minZ * plane.z > plane.offset)
|
||||
{
|
||||
culling &= 0x3F & ~side;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(this.minX * plane.x + this.minY * plane.y + this.minZ * plane.z <= plane.offset)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
if(this.maxX * plane.x + this.maxY * plane.y + this.maxZ * plane.z > plane.offset)
|
||||
{
|
||||
culling &= 0x3F & ~side;
|
||||
}
|
||||
}
|
||||
}
|
||||
side <<= 1;
|
||||
}
|
||||
return culling;
|
||||
}
|
||||
|
||||
alternativa3d function name_392(camera:name_124, object:name_78, occlusion:name_429 = null) : Boolean
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
alternativa3d function name_391(origins:Vector.<Vector3D>, directions:Vector.<Vector3D>, raysLength:int) : Boolean
|
||||
{
|
||||
var origin:Vector3D = null;
|
||||
var direction:Vector3D = null;
|
||||
var a:Number = NaN;
|
||||
var b:Number = NaN;
|
||||
var c:Number = NaN;
|
||||
var d:Number = NaN;
|
||||
var threshold:Number = NaN;
|
||||
for(var i:int = 0; i < raysLength; )
|
||||
{
|
||||
origin = origins[i];
|
||||
direction = directions[i];
|
||||
if(origin.x >= this.minX && origin.x <= this.maxX && origin.y >= this.minY && origin.y <= this.maxY && origin.z >= this.minZ && origin.z <= this.maxZ)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if(!(origin.x < this.minX && direction.x <= 0 || origin.x > this.maxX && direction.x >= 0 || origin.y < this.minY && direction.y <= 0 || origin.y > this.maxY && direction.y >= 0 || origin.z < this.minZ && direction.z <= 0 || origin.z > this.maxZ && direction.z >= 0))
|
||||
{
|
||||
threshold = 0.000001;
|
||||
if(direction.x > threshold)
|
||||
{
|
||||
a = (this.minX - origin.x) / direction.x;
|
||||
b = (this.maxX - origin.x) / direction.x;
|
||||
}
|
||||
else if(direction.x < -threshold)
|
||||
{
|
||||
a = (this.maxX - origin.x) / direction.x;
|
||||
b = (this.minX - origin.x) / direction.x;
|
||||
}
|
||||
else
|
||||
{
|
||||
a = 0;
|
||||
b = 1e+22;
|
||||
}
|
||||
if(direction.y > threshold)
|
||||
{
|
||||
c = (this.minY - origin.y) / direction.y;
|
||||
d = (this.maxY - origin.y) / direction.y;
|
||||
}
|
||||
else if(direction.y < -threshold)
|
||||
{
|
||||
c = (this.maxY - origin.y) / direction.y;
|
||||
d = (this.minY - origin.y) / direction.y;
|
||||
}
|
||||
else
|
||||
{
|
||||
c = 0;
|
||||
d = 1e+22;
|
||||
}
|
||||
if(!(c >= b || d <= a))
|
||||
{
|
||||
if(c < a)
|
||||
{
|
||||
if(d < b)
|
||||
{
|
||||
b = d;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
a = c;
|
||||
if(d < b)
|
||||
{
|
||||
b = d;
|
||||
}
|
||||
}
|
||||
if(direction.z > threshold)
|
||||
{
|
||||
c = (this.minZ - origin.z) / direction.z;
|
||||
d = (this.maxZ - origin.z) / direction.z;
|
||||
}
|
||||
else if(direction.z < -threshold)
|
||||
{
|
||||
c = (this.maxZ - origin.z) / direction.z;
|
||||
d = (this.minZ - origin.z) / direction.z;
|
||||
}
|
||||
else
|
||||
{
|
||||
c = 0;
|
||||
d = 1e+22;
|
||||
}
|
||||
if(!(c >= b || d <= a))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
alternativa3d function name_395(sphere:Vector3D) : Boolean
|
||||
{
|
||||
return sphere.x + sphere.w > this.minX && sphere.x - sphere.w < this.maxX && sphere.y + sphere.w > this.minY && sphere.y - sphere.w < this.maxY && sphere.z + sphere.w > this.minZ && sphere.z - sphere.w < this.maxZ;
|
||||
}
|
||||
|
||||
public function intersectRay(origin:Vector3D, direction:Vector3D) : Boolean
|
||||
{
|
||||
var a:Number = NaN;
|
||||
var b:Number = NaN;
|
||||
var c:Number = NaN;
|
||||
var d:Number = NaN;
|
||||
if(origin.x >= this.minX && origin.x <= this.maxX && origin.y >= this.minY && origin.y <= this.maxY && origin.z >= this.minZ && origin.z <= this.maxZ)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if(origin.x < this.minX && direction.x <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if(origin.x > this.maxX && direction.x >= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if(origin.y < this.minY && direction.y <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if(origin.y > this.maxY && direction.y >= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if(origin.z < this.minZ && direction.z <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if(origin.z > this.maxZ && direction.z >= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if(direction.x > 0.000001)
|
||||
{
|
||||
a = (this.minX - origin.x) / direction.x;
|
||||
b = (this.maxX - origin.x) / direction.x;
|
||||
}
|
||||
else if(direction.x < -0.000001)
|
||||
{
|
||||
a = (this.maxX - origin.x) / direction.x;
|
||||
b = (this.minX - origin.x) / direction.x;
|
||||
}
|
||||
else
|
||||
{
|
||||
a = -1e+22;
|
||||
b = 1e+22;
|
||||
}
|
||||
if(direction.y > 0.000001)
|
||||
{
|
||||
c = (this.minY - origin.y) / direction.y;
|
||||
d = (this.maxY - origin.y) / direction.y;
|
||||
}
|
||||
else if(direction.y < -0.000001)
|
||||
{
|
||||
c = (this.maxY - origin.y) / direction.y;
|
||||
d = (this.minY - origin.y) / direction.y;
|
||||
}
|
||||
else
|
||||
{
|
||||
c = -1e+22;
|
||||
d = 1e+22;
|
||||
}
|
||||
if(c >= b || d <= a)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if(c < a)
|
||||
{
|
||||
if(d < b)
|
||||
{
|
||||
b = d;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
a = c;
|
||||
if(d < b)
|
||||
{
|
||||
b = d;
|
||||
}
|
||||
}
|
||||
if(direction.z > 0.000001)
|
||||
{
|
||||
c = (this.minZ - origin.z) / direction.z;
|
||||
d = (this.maxZ - origin.z) / direction.z;
|
||||
}
|
||||
else if(direction.z < -0.000001)
|
||||
{
|
||||
c = (this.maxZ - origin.z) / direction.z;
|
||||
d = (this.minZ - origin.z) / direction.z;
|
||||
}
|
||||
else
|
||||
{
|
||||
c = -1e+22;
|
||||
d = 1e+22;
|
||||
}
|
||||
if(c >= b || d <= a)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function clone() : name_386
|
||||
{
|
||||
var res:name_386 = new name_386();
|
||||
res.minX = this.minX;
|
||||
res.minY = this.minY;
|
||||
res.minZ = this.minZ;
|
||||
res.maxX = this.maxX;
|
||||
res.maxY = this.maxY;
|
||||
res.maxZ = this.maxZ;
|
||||
return res;
|
||||
}
|
||||
|
||||
public function toString() : String
|
||||
{
|
||||
return "[BoundBox " + "X:[" + this.minX.toFixed(2) + ", " + this.maxX.toFixed(2) + "] Y:[" + this.minY.toFixed(2) + ", " + this.maxY.toFixed(2) + "] Z:[" + this.minZ.toFixed(2) + ", " + this.maxZ.toFixed(2) + "]]";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
30
src/package_21/name_387.as
Normal file
30
src/package_21/name_387.as
Normal file
@@ -0,0 +1,30 @@
|
||||
package package_21
|
||||
{
|
||||
import flash.geom.Point;
|
||||
import flash.geom.Vector3D;
|
||||
import package_19.name_117;
|
||||
|
||||
public class name_387
|
||||
{
|
||||
public var object:name_78;
|
||||
|
||||
public var point:Vector3D;
|
||||
|
||||
public var surface:name_117;
|
||||
|
||||
public var time:Number;
|
||||
|
||||
public var uv:Point;
|
||||
|
||||
public function name_387()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public function toString() : String
|
||||
{
|
||||
return "[RayIntersectionData " + this.object + ", " + this.point + ", " + this.uv + ", " + this.time + "]";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
55
src/package_21/name_397.as
Normal file
55
src/package_21/name_397.as
Normal file
@@ -0,0 +1,55 @@
|
||||
package package_21
|
||||
{
|
||||
import alternativa.engine3d.alternativa3d;
|
||||
import flash.utils.Dictionary;
|
||||
import package_19.name_509;
|
||||
|
||||
use namespace alternativa3d;
|
||||
|
||||
public class name_397
|
||||
{
|
||||
public static const BOUNDS:int = 8;
|
||||
|
||||
private static var boundWires:Dictionary = new Dictionary();
|
||||
|
||||
public function name_397()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
private static function method_643() : name_509
|
||||
{
|
||||
var res:name_509 = new name_509();
|
||||
res.alternativa3d::geometry.alternativa3d::method_558(-0.5,-0.5,-0.5,0.5,-0.5,-0.5);
|
||||
res.alternativa3d::geometry.alternativa3d::method_558(0.5,-0.5,-0.5,0.5,0.5,-0.5);
|
||||
res.alternativa3d::geometry.alternativa3d::method_558(0.5,0.5,-0.5,-0.5,0.5,-0.5);
|
||||
res.alternativa3d::geometry.alternativa3d::method_558(-0.5,0.5,-0.5,-0.5,-0.5,-0.5);
|
||||
res.alternativa3d::geometry.alternativa3d::method_558(-0.5,-0.5,0.5,0.5,-0.5,0.5);
|
||||
res.alternativa3d::geometry.alternativa3d::method_558(0.5,-0.5,0.5,0.5,0.5,0.5);
|
||||
res.alternativa3d::geometry.alternativa3d::method_558(0.5,0.5,0.5,-0.5,0.5,0.5);
|
||||
res.alternativa3d::geometry.alternativa3d::method_558(-0.5,0.5,0.5,-0.5,-0.5,0.5);
|
||||
res.alternativa3d::geometry.alternativa3d::method_558(-0.5,-0.5,-0.5,-0.5,-0.5,0.5);
|
||||
res.alternativa3d::geometry.alternativa3d::method_558(0.5,-0.5,-0.5,0.5,-0.5,0.5);
|
||||
res.alternativa3d::geometry.alternativa3d::method_558(0.5,0.5,-0.5,0.5,0.5,0.5);
|
||||
res.alternativa3d::geometry.alternativa3d::method_558(-0.5,0.5,-0.5,-0.5,0.5,0.5);
|
||||
return res;
|
||||
}
|
||||
|
||||
alternativa3d static function name_399(camera:name_124, boundBox:name_386, transform:name_139, color:int = -1) : void
|
||||
{
|
||||
var boundWire:name_509 = boundWires[camera.alternativa3d::context3D];
|
||||
if(boundWire == null)
|
||||
{
|
||||
boundWire = method_643();
|
||||
boundWires[camera.alternativa3d::context3D] = boundWire;
|
||||
boundWire.alternativa3d::geometry.upload(camera.alternativa3d::context3D);
|
||||
}
|
||||
boundWire.color = color >= 0 ? uint(color) : 10092288;
|
||||
boundWire.thickness = 1;
|
||||
boundWire.alternativa3d::transform.compose((boundBox.minX + boundBox.maxX) * 0.5,(boundBox.minY + boundBox.maxY) * 0.5,(boundBox.minZ + boundBox.maxZ) * 0.5,0,0,0,boundBox.maxX - boundBox.minX,boundBox.maxY - boundBox.minY,boundBox.maxZ - boundBox.minZ);
|
||||
boundWire.alternativa3d::localToCameraTransform.combine(transform,boundWire.alternativa3d::transform);
|
||||
boundWire.alternativa3d::collectDraws(camera,null,0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
49
src/package_21/name_429.as
Normal file
49
src/package_21/name_429.as
Normal file
@@ -0,0 +1,49 @@
|
||||
package package_21
|
||||
{
|
||||
public class name_429
|
||||
{
|
||||
public static var collector:name_429;
|
||||
|
||||
public var x:Number;
|
||||
|
||||
public var y:Number;
|
||||
|
||||
public var z:Number;
|
||||
|
||||
public var offset:Number;
|
||||
|
||||
public var next:name_429;
|
||||
|
||||
public function name_429()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public static function create() : name_429
|
||||
{
|
||||
var res:name_429 = null;
|
||||
if(collector != null)
|
||||
{
|
||||
res = collector;
|
||||
collector = res.next;
|
||||
res.next = null;
|
||||
return res;
|
||||
}
|
||||
return new name_429();
|
||||
}
|
||||
|
||||
public function create() : name_429
|
||||
{
|
||||
var res:name_429 = null;
|
||||
if(collector != null)
|
||||
{
|
||||
res = collector;
|
||||
collector = res.next;
|
||||
res.next = null;
|
||||
return res;
|
||||
}
|
||||
return new name_429();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
261
src/package_21/name_430.as
Normal file
261
src/package_21/name_430.as
Normal file
@@ -0,0 +1,261 @@
|
||||
package package_21
|
||||
{
|
||||
import alternativa.engine3d.alternativa3d;
|
||||
import flash.display3D.Context3D;
|
||||
import flash.display3D.Context3DCompareMode;
|
||||
import flash.display3D.Context3DProgramType;
|
||||
import flash.display3D.IndexBuffer3D;
|
||||
import flash.display3D.Program3D;
|
||||
import package_4.name_127;
|
||||
|
||||
use namespace alternativa3d;
|
||||
|
||||
public class name_430
|
||||
{
|
||||
protected static var collector:name_135;
|
||||
|
||||
private static var _usedBuffers:uint = 0;
|
||||
|
||||
private static var _usedTextures:uint = 0;
|
||||
|
||||
alternativa3d var camera:name_124;
|
||||
|
||||
alternativa3d var var_585:Vector.<name_135> = new Vector.<name_135>();
|
||||
|
||||
public function name_430()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
alternativa3d function render(context:Context3D) : void
|
||||
{
|
||||
var list:name_135 = null;
|
||||
var next:name_135 = null;
|
||||
var drawUnitsLength:int = int(this.alternativa3d::var_585.length);
|
||||
for(var i:int = 0; i < drawUnitsLength; )
|
||||
{
|
||||
list = this.alternativa3d::var_585[i];
|
||||
if(list != null)
|
||||
{
|
||||
switch(i)
|
||||
{
|
||||
case name_128.SKY:
|
||||
context.setDepthTest(false,Context3DCompareMode.ALWAYS);
|
||||
break;
|
||||
case name_128.OPAQUE_SORT:
|
||||
context.setDepthTest(true,Context3DCompareMode.LESS);
|
||||
break;
|
||||
case name_128.OPAQUE:
|
||||
context.setDepthTest(true,Context3DCompareMode.LESS);
|
||||
break;
|
||||
case name_128.TANK_SHADOW:
|
||||
context.setDepthTest(false,Context3DCompareMode.LESS_EQUAL);
|
||||
break;
|
||||
case name_128.TANK_OPAQUE:
|
||||
context.setDepthTest(true,Context3DCompareMode.LESS);
|
||||
break;
|
||||
case name_128.DECALS:
|
||||
context.setDepthTest(false,Context3DCompareMode.LESS_EQUAL);
|
||||
break;
|
||||
case name_128.SHADOWS:
|
||||
context.setDepthTest(false,Context3DCompareMode.EQUAL);
|
||||
break;
|
||||
case name_128.SHADOWED_LIGHTS:
|
||||
context.setDepthTest(false,Context3DCompareMode.EQUAL);
|
||||
break;
|
||||
case name_128.LIGHTS:
|
||||
context.setDepthTest(false,Context3DCompareMode.EQUAL);
|
||||
break;
|
||||
case name_128.FOG:
|
||||
context.setDepthTest(false,Context3DCompareMode.EQUAL);
|
||||
break;
|
||||
case name_128.TRANSPARENT_SORT:
|
||||
if(list.alternativa3d::next != null)
|
||||
{
|
||||
list = this.alternativa3d::method_646(list);
|
||||
}
|
||||
context.setDepthTest(false,Context3DCompareMode.LESS);
|
||||
break;
|
||||
case name_128.NEXT_LAYER:
|
||||
context.setDepthTest(false,Context3DCompareMode.ALWAYS);
|
||||
break;
|
||||
case name_128.EFFECTS:
|
||||
if(list.alternativa3d::next != null)
|
||||
{
|
||||
list = this.alternativa3d::method_646(list);
|
||||
}
|
||||
context.setDepthTest(false,Context3DCompareMode.LESS);
|
||||
}
|
||||
continue loop1;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
this.alternativa3d::var_585.length = 0;
|
||||
}
|
||||
|
||||
alternativa3d function name_137(object:name_78, program:Program3D, indexBuffer:IndexBuffer3D, firstIndex:int, numTriangles:int, debugShader:name_127 = null) : name_135
|
||||
{
|
||||
var res:name_135 = null;
|
||||
if(collector != null)
|
||||
{
|
||||
res = collector;
|
||||
collector = collector.alternativa3d::next;
|
||||
res.alternativa3d::next = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
res = new name_135();
|
||||
}
|
||||
res.alternativa3d::object = object;
|
||||
res.alternativa3d::program = program;
|
||||
res.alternativa3d::indexBuffer = indexBuffer;
|
||||
res.alternativa3d::firstIndex = firstIndex;
|
||||
res.alternativa3d::numTriangles = numTriangles;
|
||||
return res;
|
||||
}
|
||||
|
||||
alternativa3d function name_130(drawUnit:name_135, renderPriority:int) : void
|
||||
{
|
||||
if(renderPriority >= this.alternativa3d::var_585.length)
|
||||
{
|
||||
this.alternativa3d::var_585.length = renderPriority + 1;
|
||||
}
|
||||
drawUnit.alternativa3d::next = this.alternativa3d::var_585[renderPriority];
|
||||
this.alternativa3d::var_585[renderPriority] = drawUnit;
|
||||
}
|
||||
|
||||
protected function method_647(drawUnit:name_135, context:Context3D, camera:name_124) : void
|
||||
{
|
||||
var bufferIndex:int = 0;
|
||||
var bufferBit:int = 0;
|
||||
var currentBuffers:int = 0;
|
||||
var textureSampler:int = 0;
|
||||
var textureBit:int = 0;
|
||||
var currentTextures:int = 0;
|
||||
context.setBlendFactors(drawUnit.alternativa3d::blendSource,drawUnit.alternativa3d::blendDestination);
|
||||
context.setCulling(drawUnit.alternativa3d::culling);
|
||||
for(var i:int = 0; i < drawUnit.alternativa3d::name_403; i++)
|
||||
{
|
||||
bufferIndex = drawUnit.alternativa3d::name_405[i];
|
||||
bufferBit = 1 << bufferIndex;
|
||||
currentBuffers |= bufferBit;
|
||||
_usedBuffers &= ~bufferBit;
|
||||
context.setVertexBufferAt(bufferIndex,drawUnit.alternativa3d::vertexBuffers[i],drawUnit.alternativa3d::name_411[i],drawUnit.alternativa3d::name_409[i]);
|
||||
}
|
||||
if(drawUnit.alternativa3d::name_404 > 0)
|
||||
{
|
||||
context.setProgramConstantsFromVector(Context3DProgramType.VERTEX,0,drawUnit.alternativa3d::name_410,drawUnit.alternativa3d::name_404);
|
||||
}
|
||||
if(drawUnit.alternativa3d::name_407 > 0)
|
||||
{
|
||||
context.setProgramConstantsFromVector(Context3DProgramType.FRAGMENT,0,drawUnit.alternativa3d::name_408,drawUnit.alternativa3d::name_407);
|
||||
}
|
||||
for(i = 0; i < drawUnit.alternativa3d::var_182; )
|
||||
{
|
||||
textureSampler = drawUnit.alternativa3d::var_183[i];
|
||||
textureBit = 1 << textureSampler;
|
||||
currentTextures |= textureBit;
|
||||
_usedTextures &= ~textureBit;
|
||||
context.setTextureAt(textureSampler,drawUnit.alternativa3d::textures[i]);
|
||||
i++;
|
||||
}
|
||||
context.setProgram(drawUnit.alternativa3d::program);
|
||||
for(bufferIndex = 0; _usedBuffers > 0; )
|
||||
{
|
||||
bufferBit = _usedBuffers & 1;
|
||||
_usedBuffers >>= 1;
|
||||
if(Boolean(bufferBit))
|
||||
{
|
||||
context.setVertexBufferAt(bufferIndex,null);
|
||||
}
|
||||
bufferIndex++;
|
||||
}
|
||||
for(textureSampler = 0; _usedTextures > 0; )
|
||||
{
|
||||
textureBit = _usedTextures & 1;
|
||||
_usedTextures >>= 1;
|
||||
if(Boolean(textureBit))
|
||||
{
|
||||
context.setTextureAt(textureSampler,null);
|
||||
}
|
||||
textureSampler++;
|
||||
}
|
||||
context.drawTriangles(drawUnit.alternativa3d::indexBuffer,drawUnit.alternativa3d::firstIndex,drawUnit.alternativa3d::numTriangles);
|
||||
_usedBuffers = currentBuffers;
|
||||
_usedTextures = currentTextures;
|
||||
++camera.alternativa3d::numDraws;
|
||||
camera.alternativa3d::numTriangles += drawUnit.alternativa3d::numTriangles;
|
||||
}
|
||||
|
||||
alternativa3d function method_646(list:name_135, direction:Boolean = true) : name_135
|
||||
{
|
||||
var left:name_135 = list;
|
||||
var right:name_135 = list.alternativa3d::next;
|
||||
while(right != null && right.alternativa3d::next != null)
|
||||
{
|
||||
list = list.alternativa3d::next;
|
||||
right = right.alternativa3d::next.alternativa3d::next;
|
||||
}
|
||||
right = list.alternativa3d::next;
|
||||
list.alternativa3d::next = null;
|
||||
if(left.alternativa3d::next != null)
|
||||
{
|
||||
left = this.alternativa3d::method_646(left,direction);
|
||||
}
|
||||
if(right.alternativa3d::next != null)
|
||||
{
|
||||
right = this.alternativa3d::method_646(right,direction);
|
||||
}
|
||||
var flag:Boolean = direction ? left.alternativa3d::object.alternativa3d::localToCameraTransform.l > right.alternativa3d::object.alternativa3d::localToCameraTransform.l : left.alternativa3d::object.alternativa3d::localToCameraTransform.l < right.alternativa3d::object.alternativa3d::localToCameraTransform.l;
|
||||
if(flag)
|
||||
{
|
||||
list = left;
|
||||
left = left.alternativa3d::next;
|
||||
}
|
||||
else
|
||||
{
|
||||
list = right;
|
||||
right = right.alternativa3d::next;
|
||||
}
|
||||
var last:name_135 = list;
|
||||
while(left != null)
|
||||
{
|
||||
if(right == null)
|
||||
{
|
||||
last.alternativa3d::next = left;
|
||||
return list;
|
||||
}
|
||||
if(flag)
|
||||
{
|
||||
if(direction ? left.alternativa3d::object.alternativa3d::localToCameraTransform.l > right.alternativa3d::object.alternativa3d::localToCameraTransform.l : left.alternativa3d::object.alternativa3d::localToCameraTransform.l < right.alternativa3d::object.alternativa3d::localToCameraTransform.l)
|
||||
{
|
||||
last = left;
|
||||
left = left.alternativa3d::next;
|
||||
}
|
||||
else
|
||||
{
|
||||
last.alternativa3d::next = right;
|
||||
last = right;
|
||||
right = right.alternativa3d::next;
|
||||
flag = false;
|
||||
}
|
||||
}
|
||||
else if(direction ? left.alternativa3d::object.alternativa3d::localToCameraTransform.l < right.alternativa3d::object.alternativa3d::localToCameraTransform.l : left.alternativa3d::object.alternativa3d::localToCameraTransform.l > right.alternativa3d::object.alternativa3d::localToCameraTransform.l)
|
||||
{
|
||||
last = right;
|
||||
right = right.alternativa3d::next;
|
||||
}
|
||||
else
|
||||
{
|
||||
last.alternativa3d::next = left;
|
||||
last = left;
|
||||
left = left.alternativa3d::next;
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
last.alternativa3d::next = right;
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
21
src/package_21/name_431.as
Normal file
21
src/package_21/name_431.as
Normal file
@@ -0,0 +1,21 @@
|
||||
package package_21
|
||||
{
|
||||
import alternativa.engine3d.alternativa3d;
|
||||
|
||||
use namespace alternativa3d;
|
||||
|
||||
public class name_431 extends name_78
|
||||
{
|
||||
public function name_431()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
override alternativa3d function calculateVisibility(camera:name_124) : void
|
||||
{
|
||||
camera.alternativa3d::occluders[camera.alternativa3d::occludersLength] = this;
|
||||
++camera.alternativa3d::occludersLength;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
20
src/package_21/name_432.as
Normal file
20
src/package_21/name_432.as
Normal file
@@ -0,0 +1,20 @@
|
||||
package package_21
|
||||
{
|
||||
import flash.display3D.VertexBuffer3D;
|
||||
import flash.utils.ByteArray;
|
||||
|
||||
public class name_432
|
||||
{
|
||||
public var buffer:VertexBuffer3D;
|
||||
|
||||
public var attributes:Array;
|
||||
|
||||
public var data:ByteArray;
|
||||
|
||||
public function name_432()
|
||||
{
|
||||
super();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
27
src/package_21/name_77.as
Normal file
27
src/package_21/name_77.as
Normal file
@@ -0,0 +1,27 @@
|
||||
package package_21
|
||||
{
|
||||
import flash.display3D.Context3D;
|
||||
|
||||
public class name_77
|
||||
{
|
||||
public function name_77()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public function get isUploaded() : Boolean
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public function upload(context3D:Context3D) : void
|
||||
{
|
||||
throw new Error("Cannot upload without data");
|
||||
}
|
||||
|
||||
public function dispose() : void
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
1292
src/package_21/name_78.as
Normal file
1292
src/package_21/name_78.as
Normal file
File diff suppressed because it is too large
Load Diff
1562
src/package_21/name_81.as
Normal file
1562
src/package_21/name_81.as
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user