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:
193
src/package_125/name_709.as
Normal file
193
src/package_125/name_709.as
Normal file
@@ -0,0 +1,193 @@
|
||||
package package_125
|
||||
{
|
||||
import alternativa.engine3d.alternativa3d;
|
||||
import package_124.name_749;
|
||||
|
||||
use namespace alternativa3d;
|
||||
|
||||
public class name_709
|
||||
{
|
||||
public var object:String;
|
||||
|
||||
alternativa3d var var_693:Number = 0;
|
||||
|
||||
public function name_709()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public function get length() : Number
|
||||
{
|
||||
return this.alternativa3d::var_693;
|
||||
}
|
||||
|
||||
alternativa3d function get keyFramesList() : name_748
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
alternativa3d function set keyFramesList(value:name_748) : void
|
||||
{
|
||||
}
|
||||
|
||||
alternativa3d function method_849(key:name_748) : void
|
||||
{
|
||||
var k:name_748 = null;
|
||||
var time:Number = Number(key.alternativa3d::var_420);
|
||||
if(this.alternativa3d::keyFramesList == null)
|
||||
{
|
||||
this.alternativa3d::keyFramesList = key;
|
||||
this.alternativa3d::var_693 = time <= 0 ? 0 : time;
|
||||
return;
|
||||
}
|
||||
if(this.alternativa3d::keyFramesList.alternativa3d::var_420 > time)
|
||||
{
|
||||
key.alternativa3d::nextKeyFrame = this.alternativa3d::keyFramesList;
|
||||
this.alternativa3d::keyFramesList = key;
|
||||
return;
|
||||
}
|
||||
k = this.alternativa3d::keyFramesList;
|
||||
while(k.alternativa3d::nextKeyFrame != null && k.alternativa3d::nextKeyFrame.alternativa3d::var_420 <= time)
|
||||
{
|
||||
k = k.alternativa3d::nextKeyFrame;
|
||||
}
|
||||
if(k.alternativa3d::nextKeyFrame == null)
|
||||
{
|
||||
k.alternativa3d::nextKeyFrame = key;
|
||||
this.alternativa3d::var_693 = time <= 0 ? 0 : time;
|
||||
}
|
||||
else
|
||||
{
|
||||
key.alternativa3d::nextKeyFrame = k.alternativa3d::nextKeyFrame;
|
||||
k.alternativa3d::nextKeyFrame = key;
|
||||
}
|
||||
}
|
||||
|
||||
public function method_850(key:name_748) : name_748
|
||||
{
|
||||
var k:name_748 = null;
|
||||
if(this.alternativa3d::keyFramesList != null)
|
||||
{
|
||||
if(this.alternativa3d::keyFramesList == key)
|
||||
{
|
||||
this.alternativa3d::keyFramesList = this.alternativa3d::keyFramesList.alternativa3d::nextKeyFrame;
|
||||
if(this.alternativa3d::keyFramesList == null)
|
||||
{
|
||||
this.alternativa3d::var_693 = 0;
|
||||
}
|
||||
return key;
|
||||
}
|
||||
k = this.alternativa3d::keyFramesList;
|
||||
while(k.alternativa3d::nextKeyFrame != null && k.alternativa3d::nextKeyFrame != key)
|
||||
{
|
||||
k = k.alternativa3d::nextKeyFrame;
|
||||
}
|
||||
if(k.alternativa3d::nextKeyFrame == key)
|
||||
{
|
||||
if(key.alternativa3d::nextKeyFrame == null)
|
||||
{
|
||||
this.alternativa3d::var_693 = k.alternativa3d::var_420 <= 0 ? 0 : Number(k.alternativa3d::var_420);
|
||||
}
|
||||
k.alternativa3d::nextKeyFrame = key.alternativa3d::nextKeyFrame;
|
||||
return key;
|
||||
}
|
||||
}
|
||||
throw new Error("Key not found");
|
||||
}
|
||||
|
||||
public function get keys() : Vector.<name_748>
|
||||
{
|
||||
var result:Vector.<name_748> = new Vector.<name_748>();
|
||||
var i:int = 0;
|
||||
for(var key:name_748 = this.alternativa3d::keyFramesList; key != null; key = key.alternativa3d::nextKeyFrame)
|
||||
{
|
||||
result[i] = key;
|
||||
i++;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
alternativa3d function blend(time:Number, weight:Number, state:name_749) : void
|
||||
{
|
||||
}
|
||||
|
||||
public function slice(start:Number, end:Number = 1.7976931348623157e+308) : name_709
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
alternativa3d function createKeyFrame() : name_748
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
alternativa3d function interpolateKeyFrame(dest:name_748, a:name_748, b:name_748, value:Number) : void
|
||||
{
|
||||
}
|
||||
|
||||
alternativa3d function method_851(dest:name_709, start:Number, end:Number) : void
|
||||
{
|
||||
var prev:name_748 = null;
|
||||
var nextKey:name_748 = null;
|
||||
var shiftTime:Number = start > 0 ? start : 0;
|
||||
var next:name_748 = this.alternativa3d::keyFramesList;
|
||||
var key:name_748 = this.alternativa3d::createKeyFrame();
|
||||
while(next != null && next.alternativa3d::var_420 <= start)
|
||||
{
|
||||
prev = next;
|
||||
next = next.alternativa3d::nextKeyFrame;
|
||||
}
|
||||
if(prev != null)
|
||||
{
|
||||
if(next != null)
|
||||
{
|
||||
this.alternativa3d::interpolateKeyFrame(key,prev,next,(start - prev.alternativa3d::var_420) / (next.alternativa3d::var_420 - prev.alternativa3d::var_420));
|
||||
key.alternativa3d::var_420 = start - shiftTime;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.alternativa3d::interpolateKeyFrame(key,key,prev,1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(next == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
this.alternativa3d::interpolateKeyFrame(key,key,next,1);
|
||||
key.alternativa3d::var_420 = next.alternativa3d::var_420 - shiftTime;
|
||||
prev = next;
|
||||
next = next.alternativa3d::nextKeyFrame;
|
||||
}
|
||||
dest.alternativa3d::keyFramesList = key;
|
||||
if(next == null || end <= start)
|
||||
{
|
||||
dest.alternativa3d::var_693 = key.alternativa3d::var_420 <= 0 ? 0 : Number(key.alternativa3d::var_420);
|
||||
return;
|
||||
}
|
||||
while(next != null && next.alternativa3d::var_420 <= end)
|
||||
{
|
||||
nextKey = this.alternativa3d::createKeyFrame();
|
||||
this.alternativa3d::interpolateKeyFrame(nextKey,nextKey,next,1);
|
||||
nextKey.alternativa3d::var_420 = next.alternativa3d::var_420 - shiftTime;
|
||||
key.alternativa3d::nextKeyFrame = nextKey;
|
||||
key = nextKey;
|
||||
prev = next;
|
||||
next = next.alternativa3d::nextKeyFrame;
|
||||
}
|
||||
if(next != null)
|
||||
{
|
||||
nextKey = this.alternativa3d::createKeyFrame();
|
||||
this.alternativa3d::interpolateKeyFrame(nextKey,prev,next,(end - prev.alternativa3d::var_420) / (next.alternativa3d::var_420 - prev.alternativa3d::var_420));
|
||||
nextKey.alternativa3d::var_420 = end - shiftTime;
|
||||
key.alternativa3d::nextKeyFrame = nextKey;
|
||||
}
|
||||
if(nextKey != null)
|
||||
{
|
||||
dest.alternativa3d::var_693 = nextKey.alternativa3d::var_420 <= 0 ? 0 : Number(nextKey.alternativa3d::var_420);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
45
src/package_125/name_748.as
Normal file
45
src/package_125/name_748.as
Normal file
@@ -0,0 +1,45 @@
|
||||
package package_125
|
||||
{
|
||||
import alternativa.engine3d.alternativa3d;
|
||||
|
||||
use namespace alternativa3d;
|
||||
|
||||
public class name_748
|
||||
{
|
||||
alternativa3d var var_420:Number = 0;
|
||||
|
||||
public function name_748()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public function get time() : Number
|
||||
{
|
||||
return this.alternativa3d::var_420;
|
||||
}
|
||||
|
||||
public function get value() : Object
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public function set value(v:Object) : void
|
||||
{
|
||||
}
|
||||
|
||||
alternativa3d function get nextKeyFrame() : name_748
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
alternativa3d function set nextKeyFrame(value:name_748) : void
|
||||
{
|
||||
}
|
||||
|
||||
public function toString() : String
|
||||
{
|
||||
return "[Keyframe time = " + this.alternativa3d::var_420.toFixed(2) + " value = " + this.value + "]";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
163
src/package_125/name_759.as
Normal file
163
src/package_125/name_759.as
Normal file
@@ -0,0 +1,163 @@
|
||||
package package_125
|
||||
{
|
||||
import alternativa.engine3d.alternativa3d;
|
||||
import flash.geom.Matrix3D;
|
||||
import flash.geom.Orientation3D;
|
||||
import flash.geom.Vector3D;
|
||||
import package_124.name_749;
|
||||
|
||||
use namespace alternativa3d;
|
||||
|
||||
public class name_759 extends name_709
|
||||
{
|
||||
private static var tempQuat:Vector3D = new Vector3D();
|
||||
|
||||
private static var temp:name_787 = new name_787();
|
||||
|
||||
private var name_783:name_787;
|
||||
|
||||
public function name_759(object:String)
|
||||
{
|
||||
super();
|
||||
this.object = object;
|
||||
}
|
||||
|
||||
override alternativa3d function get keyFramesList() : name_748
|
||||
{
|
||||
return this.name_783;
|
||||
}
|
||||
|
||||
override alternativa3d function set keyFramesList(value:name_748) : void
|
||||
{
|
||||
this.name_783 = name_787(value);
|
||||
}
|
||||
|
||||
public function method_257(time:Number, matrix:Matrix3D) : name_787
|
||||
{
|
||||
var key:name_787 = null;
|
||||
key = new name_787();
|
||||
key.alternativa3d::var_420 = time;
|
||||
var components:Vector.<Vector3D> = matrix.decompose(Orientation3D.QUATERNION);
|
||||
key.alternativa3d::x = components[0].x;
|
||||
key.alternativa3d::y = components[0].y;
|
||||
key.alternativa3d::z = components[0].z;
|
||||
key.alternativa3d::rotation = components[1];
|
||||
key.alternativa3d::scaleX = components[2].x;
|
||||
key.alternativa3d::scaleY = components[2].y;
|
||||
key.alternativa3d::scaleZ = components[2].z;
|
||||
alternativa3d::method_849(key);
|
||||
return key;
|
||||
}
|
||||
|
||||
public function method_929(time:Number, x:Number = 0, y:Number = 0, z:Number = 0, rotationX:Number = 0, rotationY:Number = 0, rotationZ:Number = 0, scaleX:Number = 1, scaleY:Number = 1, scaleZ:Number = 1) : name_787
|
||||
{
|
||||
var key:name_787 = new name_787();
|
||||
key.alternativa3d::var_420 = time;
|
||||
key.alternativa3d::x = x;
|
||||
key.alternativa3d::y = y;
|
||||
key.alternativa3d::z = z;
|
||||
key.alternativa3d::rotation = this.method_928(rotationX,rotationY,rotationZ);
|
||||
key.alternativa3d::scaleX = scaleX;
|
||||
key.alternativa3d::scaleY = scaleY;
|
||||
key.alternativa3d::scaleZ = scaleZ;
|
||||
alternativa3d::method_849(key);
|
||||
return key;
|
||||
}
|
||||
|
||||
private function method_926(quat:Vector3D, additive:Vector3D) : void
|
||||
{
|
||||
var ww:Number = additive.w * quat.w - additive.x * quat.x - additive.y * quat.y - additive.z * quat.z;
|
||||
var xx:Number = additive.w * quat.x + additive.x * quat.w + additive.y * quat.z - additive.z * quat.y;
|
||||
var yy:Number = additive.w * quat.y + additive.y * quat.w + additive.z * quat.x - additive.x * quat.z;
|
||||
var zz:Number = additive.w * quat.z + additive.z * quat.w + additive.x * quat.y - additive.y * quat.x;
|
||||
quat.w = ww;
|
||||
quat.x = xx;
|
||||
quat.y = yy;
|
||||
quat.z = zz;
|
||||
}
|
||||
|
||||
private function method_927(quat:Vector3D) : void
|
||||
{
|
||||
var d:Number = quat.w * quat.w + quat.x * quat.x + quat.y * quat.y + quat.z * quat.z;
|
||||
if(d == 0)
|
||||
{
|
||||
quat.w = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
d = 1 / Math.sqrt(d);
|
||||
quat.w *= d;
|
||||
quat.x *= d;
|
||||
quat.y *= d;
|
||||
quat.z *= d;
|
||||
}
|
||||
}
|
||||
|
||||
private function method_925(quat:Vector3D, x:Number, y:Number, z:Number, angle:Number) : void
|
||||
{
|
||||
quat.w = Math.cos(0.5 * angle);
|
||||
var k:Number = Math.sin(0.5 * angle) / Math.sqrt(x * x + y * y + z * z);
|
||||
quat.x = x * k;
|
||||
quat.y = y * k;
|
||||
quat.z = z * k;
|
||||
}
|
||||
|
||||
private function method_928(x:Number, y:Number, z:Number) : Vector3D
|
||||
{
|
||||
var result:Vector3D = new Vector3D();
|
||||
this.method_925(result,1,0,0,x);
|
||||
this.method_925(tempQuat,0,1,0,y);
|
||||
this.method_926(result,tempQuat);
|
||||
this.method_927(result);
|
||||
this.method_925(tempQuat,0,0,1,z);
|
||||
this.method_926(result,tempQuat);
|
||||
this.method_927(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
override alternativa3d function blend(time:Number, weight:Number, state:name_749) : void
|
||||
{
|
||||
var prev:name_787 = null;
|
||||
var next:name_787 = this.name_783;
|
||||
while(next != null && next.alternativa3d::var_420 < time)
|
||||
{
|
||||
prev = next;
|
||||
next = next.alternativa3d::next;
|
||||
}
|
||||
if(prev != null)
|
||||
{
|
||||
if(next != null)
|
||||
{
|
||||
temp.interpolate(prev,next,(time - prev.alternativa3d::var_420) / (next.alternativa3d::var_420 - prev.alternativa3d::var_420));
|
||||
state.method_920(temp,weight);
|
||||
}
|
||||
else
|
||||
{
|
||||
state.method_920(prev,weight);
|
||||
}
|
||||
}
|
||||
else if(next != null)
|
||||
{
|
||||
state.method_920(next,weight);
|
||||
}
|
||||
}
|
||||
|
||||
override alternativa3d function createKeyFrame() : name_748
|
||||
{
|
||||
return new name_787();
|
||||
}
|
||||
|
||||
override alternativa3d function interpolateKeyFrame(dest:name_748, a:name_748, b:name_748, value:Number) : void
|
||||
{
|
||||
name_787(dest).interpolate(name_787(a),name_787(b),value);
|
||||
}
|
||||
|
||||
override public function slice(start:Number, end:Number = 1.7976931348623157e+308) : name_709
|
||||
{
|
||||
var track:name_759 = new name_759(object);
|
||||
alternativa3d::method_851(track,start,end);
|
||||
return track;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
91
src/package_125/name_760.as
Normal file
91
src/package_125/name_760.as
Normal file
@@ -0,0 +1,91 @@
|
||||
package package_125
|
||||
{
|
||||
import alternativa.engine3d.alternativa3d;
|
||||
import package_124.name_749;
|
||||
|
||||
use namespace alternativa3d;
|
||||
|
||||
public class name_760 extends name_709
|
||||
{
|
||||
private static var temp:name_778 = new name_778();
|
||||
|
||||
alternativa3d var name_783:name_778;
|
||||
|
||||
public var property:String;
|
||||
|
||||
public function name_760(object:String, property:String)
|
||||
{
|
||||
super();
|
||||
this.property = property;
|
||||
this.object = object;
|
||||
}
|
||||
|
||||
override alternativa3d function get keyFramesList() : name_748
|
||||
{
|
||||
return this.alternativa3d::name_783;
|
||||
}
|
||||
|
||||
override alternativa3d function set keyFramesList(value:name_748) : void
|
||||
{
|
||||
this.alternativa3d::name_783 = name_778(value);
|
||||
}
|
||||
|
||||
public function method_257(time:Number, value:Number = 0) : name_748
|
||||
{
|
||||
var key:name_778 = new name_778();
|
||||
key.alternativa3d::var_420 = time;
|
||||
key.value = value;
|
||||
alternativa3d::method_849(key);
|
||||
return key;
|
||||
}
|
||||
|
||||
override alternativa3d function blend(time:Number, weight:Number, state:name_749) : void
|
||||
{
|
||||
var prev:name_778 = null;
|
||||
if(this.property == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
var next:name_778 = this.alternativa3d::name_783;
|
||||
while(next != null && next.alternativa3d::var_420 < time)
|
||||
{
|
||||
prev = next;
|
||||
next = next.alternativa3d::next;
|
||||
}
|
||||
if(prev != null)
|
||||
{
|
||||
if(next != null)
|
||||
{
|
||||
temp.interpolate(prev,next,(time - prev.alternativa3d::var_420) / (next.alternativa3d::var_420 - prev.alternativa3d::var_420));
|
||||
state.method_919(this.property,temp.alternativa3d::name_781,weight);
|
||||
}
|
||||
else
|
||||
{
|
||||
state.method_919(this.property,prev.alternativa3d::name_781,weight);
|
||||
}
|
||||
}
|
||||
else if(next != null)
|
||||
{
|
||||
state.method_919(this.property,next.alternativa3d::name_781,weight);
|
||||
}
|
||||
}
|
||||
|
||||
override alternativa3d function createKeyFrame() : name_748
|
||||
{
|
||||
return new name_778();
|
||||
}
|
||||
|
||||
override alternativa3d function interpolateKeyFrame(dest:name_748, a:name_748, b:name_748, value:Number) : void
|
||||
{
|
||||
name_778(dest).interpolate(name_778(a),name_778(b),value);
|
||||
}
|
||||
|
||||
override public function slice(start:Number, end:Number = 1.7976931348623157e+308) : name_709
|
||||
{
|
||||
var track:name_760 = new name_760(object,this.property);
|
||||
alternativa3d::method_851(track,start,end);
|
||||
return track;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
44
src/package_125/name_778.as
Normal file
44
src/package_125/name_778.as
Normal file
@@ -0,0 +1,44 @@
|
||||
package package_125
|
||||
{
|
||||
import alternativa.engine3d.alternativa3d;
|
||||
|
||||
use namespace alternativa3d;
|
||||
|
||||
public class name_778 extends name_748
|
||||
{
|
||||
alternativa3d var name_781:Number = 0;
|
||||
|
||||
alternativa3d var next:name_778;
|
||||
|
||||
public function name_778()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
public function interpolate(a:name_778, b:name_778, c:Number) : void
|
||||
{
|
||||
this.alternativa3d::name_781 = (1 - c) * a.alternativa3d::name_781 + c * b.alternativa3d::name_781;
|
||||
}
|
||||
|
||||
override public function get value() : Object
|
||||
{
|
||||
return this.alternativa3d::name_781;
|
||||
}
|
||||
|
||||
override public function set value(v:Object) : void
|
||||
{
|
||||
this.alternativa3d::name_781 = Number(v);
|
||||
}
|
||||
|
||||
override alternativa3d function get nextKeyFrame() : name_748
|
||||
{
|
||||
return this.alternativa3d::next;
|
||||
}
|
||||
|
||||
override alternativa3d function set nextKeyFrame(value:name_748) : void
|
||||
{
|
||||
this.alternativa3d::next = name_778(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
123
src/package_125/name_787.as
Normal file
123
src/package_125/name_787.as
Normal file
@@ -0,0 +1,123 @@
|
||||
package package_125
|
||||
{
|
||||
import alternativa.engine3d.alternativa3d;
|
||||
import flash.geom.Matrix3D;
|
||||
import flash.geom.Orientation3D;
|
||||
import flash.geom.Vector3D;
|
||||
|
||||
use namespace alternativa3d;
|
||||
|
||||
public class name_787 extends name_748
|
||||
{
|
||||
alternativa3d var x:Number = 0;
|
||||
|
||||
alternativa3d var y:Number = 0;
|
||||
|
||||
alternativa3d var z:Number = 0;
|
||||
|
||||
alternativa3d var rotation:Vector3D = new Vector3D(0,0,0,1);
|
||||
|
||||
alternativa3d var scaleX:Number = 1;
|
||||
|
||||
alternativa3d var scaleY:Number = 1;
|
||||
|
||||
alternativa3d var scaleZ:Number = 1;
|
||||
|
||||
alternativa3d var next:name_787;
|
||||
|
||||
public function name_787()
|
||||
{
|
||||
super();
|
||||
}
|
||||
|
||||
override public function get value() : Object
|
||||
{
|
||||
var m:Matrix3D = new Matrix3D();
|
||||
m.recompose(Vector.<Vector3D>([new Vector3D(this.alternativa3d::x,this.alternativa3d::y,this.alternativa3d::z),this.alternativa3d::rotation,new Vector3D(this.alternativa3d::scaleX,this.alternativa3d::scaleY,this.alternativa3d::scaleZ)]),Orientation3D.QUATERNION);
|
||||
return m;
|
||||
}
|
||||
|
||||
override public function set value(v:Object) : void
|
||||
{
|
||||
var m:Matrix3D = Matrix3D(v);
|
||||
var components:Vector.<Vector3D> = m.decompose(Orientation3D.QUATERNION);
|
||||
this.alternativa3d::x = components[0].x;
|
||||
this.alternativa3d::y = components[0].y;
|
||||
this.alternativa3d::z = components[0].z;
|
||||
this.alternativa3d::rotation = components[1];
|
||||
this.alternativa3d::scaleX = components[2].x;
|
||||
this.alternativa3d::scaleY = components[2].y;
|
||||
this.alternativa3d::scaleZ = components[2].z;
|
||||
}
|
||||
|
||||
public function interpolate(a:name_787, b:name_787, c:Number) : void
|
||||
{
|
||||
var c2:Number = 1 - c;
|
||||
this.alternativa3d::x = c2 * a.alternativa3d::x + c * b.alternativa3d::x;
|
||||
this.alternativa3d::y = c2 * a.alternativa3d::y + c * b.alternativa3d::y;
|
||||
this.alternativa3d::z = c2 * a.alternativa3d::z + c * b.alternativa3d::z;
|
||||
this.name_602(a.alternativa3d::rotation,b.alternativa3d::rotation,c,this.alternativa3d::rotation);
|
||||
this.alternativa3d::scaleX = c2 * a.alternativa3d::scaleX + c * b.alternativa3d::scaleX;
|
||||
this.alternativa3d::scaleY = c2 * a.alternativa3d::scaleY + c * b.alternativa3d::scaleY;
|
||||
this.alternativa3d::scaleZ = c2 * a.alternativa3d::scaleZ + c * b.alternativa3d::scaleZ;
|
||||
}
|
||||
|
||||
private function name_602(a:Vector3D, b:Vector3D, t:Number, result:Vector3D) : void
|
||||
{
|
||||
var k1:Number = NaN;
|
||||
var k2:Number = NaN;
|
||||
var d:Number = NaN;
|
||||
var theta:Number = NaN;
|
||||
var sine:Number = NaN;
|
||||
var beta:Number = NaN;
|
||||
var alpha:Number = NaN;
|
||||
var flip:Number = 1;
|
||||
var cosine:Number = a.w * b.w + a.x * b.x + a.y * b.y + a.z * b.z;
|
||||
if(cosine < 0)
|
||||
{
|
||||
cosine = -cosine;
|
||||
flip = -1;
|
||||
}
|
||||
if(1 - cosine < 0.001)
|
||||
{
|
||||
k1 = 1 - t;
|
||||
k2 = t * flip;
|
||||
result.w = a.w * k1 + b.w * k2;
|
||||
result.x = a.x * k1 + b.x * k2;
|
||||
result.y = a.y * k1 + b.y * k2;
|
||||
result.z = a.z * k1 + b.z * k2;
|
||||
d = result.w * result.w + result.x * result.x + result.y * result.y + result.z * result.z;
|
||||
if(d == 0)
|
||||
{
|
||||
result.w = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
result.scaleBy(1 / Math.sqrt(d));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
theta = Number(Math.acos(cosine));
|
||||
sine = Number(Math.sin(theta));
|
||||
beta = Math.sin((1 - t) * theta) / sine;
|
||||
alpha = Math.sin(t * theta) / sine * flip;
|
||||
result.w = a.w * beta + b.w * alpha;
|
||||
result.x = a.x * beta + b.x * alpha;
|
||||
result.y = a.y * beta + b.y * alpha;
|
||||
result.z = a.z * beta + b.z * alpha;
|
||||
}
|
||||
}
|
||||
|
||||
override alternativa3d function get nextKeyFrame() : name_748
|
||||
{
|
||||
return this.alternativa3d::next;
|
||||
}
|
||||
|
||||
override alternativa3d function set nextKeyFrame(value:name_748) : void
|
||||
{
|
||||
this.alternativa3d::next = name_787(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user