armory/Sources/armory/logicnode/LookAtNode.hx
2021-07-11 11:28:00 +02:00

43 lines
753 B
Haxe

package armory.logicnode;
import iron.math.Vec4;
import iron.math.Quat;
class LookAtNode extends LogicNode {
public var property0: String;
var v1 = new Vec4();
var v2 = new Vec4();
var q = new Quat();
public function new(tree: LogicTree) {
super(tree);
}
override function get(from: Int): Dynamic {
var vfrom: Vec4 = inputs[0].get();
var vto: Vec4 = inputs[1].get();
if (vfrom == null || vto == null) return null;
switch (property0) {
case "X":
v1.set(1, 0, 0);
case "-X":
v1.set(-1, 0, 0);
case "Y":
v1.set(0, 1, 0);
case "-Y":
v1.set(0, -1, 0);
case "Z":
v1.set(0, 0, 1);
case "-Z":
v1.set(0, 0, -1);
}
v2.setFrom(vto).sub(vfrom).normalize();
q.fromTo(v1, v2);
return q;
}
}