浏览代码

added Camera.lerp()

Nicolas Cannasse 2 年之前
父节点
当前提交
75bde4fb11
共有 1 个文件被更改,包括 16 次插入0 次删除
  1. 16 0
      hrt/prefab/l3d/Camera.hx

+ 16 - 0
hrt/prefab/l3d/Camera.hx

@@ -134,6 +134,22 @@ class Camera extends Object3D {
 		#end
 		#end
 	}
 	}
 
 
+	public function lerp( to : Camera, k : Float ) {
+		var start = getAbsPos();
+		var target = to.getAbsPos();
+		var qStart = new h3d.Quat();
+		qStart.initRotateMatrix(start);
+		var qEnd = new h3d.Quat();
+		qEnd.initRotateMatrix(target);
+		var q = new h3d.Quat();
+		q.slerp(qStart,qEnd,k);
+		var m = q.toMatrix();
+		m.tx = hxd.Math.lerp(start.tx, target.tx, k);
+		m.ty = hxd.Math.lerp(start.ty, target.ty, k);
+		m.tz = hxd.Math.lerp(start.tz, target.tz, k);
+		return m;
+	}
+
 	public function applyTo(c: h3d.Camera) {
 	public function applyTo(c: h3d.Camera) {
 		var transform = null;
 		var transform = null;
 		if ( obj != null )
 		if ( obj != null )