Merge pull request #1981 from knowledgenude/master
Add worldVecToOrientation method
This commit is contained in:
commit
7ceb8746f8
|
@ -3,6 +3,8 @@ package armory.logicnode;
|
|||
import iron.object.Object;
|
||||
import iron.math.Vec4;
|
||||
|
||||
using armory.object.TransformExtension;
|
||||
|
||||
class VectorToObjectOrientationNode extends LogicNode {
|
||||
|
||||
public function new(tree: LogicTree) {
|
||||
|
@ -12,18 +14,11 @@ class VectorToObjectOrientationNode extends LogicNode {
|
|||
override function get(from: Int): Dynamic {
|
||||
|
||||
var object: Object = inputs[0].get();
|
||||
var vecIn: Vec4 = inputs[1].get();
|
||||
var vec: Vec4 = inputs[1].get();
|
||||
|
||||
if (object == null || vecIn == null) return null;
|
||||
if (object == null || vec == null) return null;
|
||||
|
||||
var vecOut = new Vec4();
|
||||
|
||||
var right = object.transform.world.right().mult(vecIn.x);
|
||||
var look = object.transform.world.look().mult(vecIn.y);
|
||||
var up = object.transform.world.up().mult(vecIn.z);
|
||||
|
||||
vecOut.add(right).add(look).add(up);
|
||||
|
||||
return vecOut;
|
||||
return object.transform.worldVecToOrientation(vec);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -37,4 +37,12 @@ class TransformExtension {
|
|||
public static inline function getLocalVecFromWorld(t: Transform, worldVec: Vec4): Vec4 {
|
||||
return worldVec.clone().applymat4(Mat4.identity().getInverse(t.worldUnpack));
|
||||
}
|
||||
/**
|
||||
* Returns the given world vector in transform orientation
|
||||
* @param worldVec
|
||||
* @return Vec4
|
||||
**/
|
||||
public static inline function worldVecToOrientation(t: Transform, worldVec: Vec4): Vec4 {
|
||||
return t.right().mult(worldVec.x).add(t.look().mult(worldVec.y)).add(t.up().mult(worldVec.z));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue