get rotation bug fix

This commit is contained in:
Zeeshan Abid 2019-09-27 20:51:30 +01:00
parent 512db06d84
commit 919d222b4d
2 changed files with 18 additions and 27 deletions

View file

@ -10,42 +10,33 @@ class GetRotationNode extends LogicNode {
}
override function get(from:Int):Dynamic {
var object:Object = inputs[0].get();
if (object == null)
return null;
var rot = object.transform.rot;
switch (from) {
case 0:
// euler angles
var object:Object = inputs[0].get();
if (object == null)
return null;
return object.transform.rot.getEuler();
case 1:
// angle radians
var object:Object = inputs[0].get();
if (object == null)
return null;
var rot = object.transform.rot;
var angle = 2 * Math.acos(rot.w);
return angle;
// euler angles
return object.transform.rot.getEuler();
case 2:
// angle degrees
var object:Object = inputs[0].get();
if (object == null)
return null;
var rot = object.transform.rot;
var angle = 2 * Math.acos(rot.w);
return angle * (180 / Math.PI);
case 3:
// vector
var object:Object = inputs[0].get();
if (object == null)
return null;
var rot = object.transform.rot;
var sqrtW = Math.sqrt(1 - (rot.w * rot.w));
if (sqrtW == 0)
return new Vec3(0, 0, 1);
return new Vec3(rot.x / sqrtW, rot.y / sqrtW, rot.z / sqrtW);
case 3:
// angle radians
var angle = 2 * Math.acos(rot.w);
return angle;
case 4:
return new Vec3(rot.x, rot.y, rot.z);
// angle degrees
var angle = 2 * Math.acos(rot.w);
return angle * (180 / Math.PI);
case 5:
//quaternion xyz
return new Vec3(rot.x, rot.y, rot.z);
case 6:
//quaternion w
return rot.w;
}
return null;

View file

@ -12,9 +12,9 @@ class GetRotationNode(Node, ArmLogicTreeNode):
def init(self, context):
self.inputs.new('ArmNodeSocketObject', 'Object')
self.outputs.new('NodeSocketVector', 'Euler Angles')
self.outputs.new('NodeSocketVector', 'Vector')
self.outputs.new('NodeSocketFloat', 'Angle (Radians)')
self.outputs.new('NodeSocketFloat', 'Angle (Degrees)')
self.outputs.new('NodeSocketVector', 'Vector')
self.outputs.new('NodeSocketVector', 'Quaternion XYZ')
self.outputs.new('NodeSocketFloat', 'Quaternion W')