Files
alternativa-editor-mod/src/alternativa/engine3d/core/MouseEvent3D.as

117 lines
4.6 KiB
ActionScript

package alternativa.engine3d.core
{
import flash.events.Event;
import flash.geom.Vector3D;
import alternativa.engine3d.alternativa3d;
use namespace alternativa3d;
public class MouseEvent3D extends Event
{
public static const CLICK:String = "click3D";
public static const DOUBLE_CLICK:String = "doubleClick3D";
public static const MOUSE_DOWN:String = "mouseDown3D";
public static const MOUSE_UP:String = "mouseUp3D";
public static const MOUSE_OVER:String = "mouseOver3D";
public static const MOUSE_OUT:String = "mouseOut3D";
public static const ROLL_OVER:String = "rollOver3D";
public static const ROLL_OUT:String = "rollOut3D";
public static const MOUSE_MOVE:String = "mouseMove3D";
public static const MOUSE_WHEEL:String = "mouseWheel3D";
public var ctrlKey:Boolean;
public var altKey:Boolean;
public var shiftKey:Boolean;
public var buttonDown:Boolean;
public var delta:int;
public var relatedObject:Object3D;
public var localOrigin:Vector3D = new Vector3D();
public var localDirection:Vector3D = new Vector3D();
alternativa3d var _target:Object3D;
alternativa3d var _currentTarget:Object3D;
alternativa3d var _bubbles:Boolean;
alternativa3d var _eventPhase:uint = 3;
alternativa3d var stop:Boolean = false;
alternativa3d var stopImmediate:Boolean = false;
public function MouseEvent3D(_arg_1:String, _arg_2:Boolean=true, _arg_3:Object3D=null, _arg_4:Boolean=false, _arg_5:Boolean=false, _arg_6:Boolean=false, _arg_7:Boolean=false, _arg_8:int=0)
{
super(_arg_1, _arg_2);
this.relatedObject = _arg_3;
this.altKey = _arg_4;
this.ctrlKey = _arg_5;
this.shiftKey = _arg_6;
this.buttonDown = _arg_7;
this.delta = _arg_8;
}
alternativa3d function calculateLocalRay(_arg_1:Number, _arg_2:Number, _arg_3:Object3D, _arg_4:Camera3D):void
{
_arg_4.calculateRay(this.localOrigin, this.localDirection, _arg_1, _arg_2);
_arg_3.composeMatrix();
var _local_5:Object3D = _arg_3;
while (_local_5._parent != null)
{
_local_5 = _local_5._parent;
_local_5.composeMatrix();
_arg_3.appendMatrix(_local_5);
};
_arg_3.invertMatrix();
var _local_6:Number = this.localOrigin.x;
var _local_7:Number = this.localOrigin.y;
var _local_8:Number = this.localOrigin.z;
var _local_9:Number = this.localDirection.x;
var _local_10:Number = this.localDirection.y;
var _local_11:Number = this.localDirection.z;
this.localOrigin.x = ((((_arg_3.ma * _local_6) + (_arg_3.mb * _local_7)) + (_arg_3.mc * _local_8)) + _arg_3.md);
this.localOrigin.y = ((((_arg_3.me * _local_6) + (_arg_3.mf * _local_7)) + (_arg_3.mg * _local_8)) + _arg_3.mh);
this.localOrigin.z = ((((_arg_3.mi * _local_6) + (_arg_3.mj * _local_7)) + (_arg_3.mk * _local_8)) + _arg_3.ml);
this.localDirection.x = (((_arg_3.ma * _local_9) + (_arg_3.mb * _local_10)) + (_arg_3.mc * _local_11));
this.localDirection.y = (((_arg_3.me * _local_9) + (_arg_3.mf * _local_10)) + (_arg_3.mg * _local_11));
this.localDirection.z = (((_arg_3.mi * _local_9) + (_arg_3.mj * _local_10)) + (_arg_3.mk * _local_11));
}
override public function get bubbles():Boolean
{
return (this._bubbles);
}
override public function get eventPhase():uint
{
return (this._eventPhase);
}
override public function get target():Object
{
return (this._target);
}
override public function get currentTarget():Object
{
return (this._currentTarget);
}
override public function stopPropagation():void
{
this.stop = true;
}
override public function stopImmediatePropagation():void
{
this.stopImmediate = true;
}
override public function clone():Event
{
return (new MouseEvent3D(type, this._bubbles, this.relatedObject, this.altKey, this.ctrlKey, this.shiftKey, this.buttonDown, this.delta));
}
override public function toString():String
{
return (formatToString("MouseEvent3D", "type", "bubbles", "eventPhase", "relatedObject", "altKey", "ctrlKey", "shiftKey", "buttonDown", "delta"));
}
}
}//package alternativa.engine3d.core