Skip to content
Snippets Groups Projects
Unverified Commit c33766c2 authored by Jamie Temple's avatar Jamie Temple
Browse files

fix: SLERP CG3

parent f163e67c
No related branches found
No related tags found
1 merge request!1feat: base project
...@@ -116,7 +116,7 @@ export class Quaternion { ...@@ -116,7 +116,7 @@ export class Quaternion {
const sinTheta0 = Math.sin(theta0); const sinTheta0 = Math.sin(theta0);
const sinTheta = Math.sin(theta); const sinTheta = Math.sin(theta);
const s0 = Math.cos(theta0) - dot * sinTheta / sinTheta0; const s0 = Math.cos(theta) - dot * sinTheta / sinTheta0;
const s1 = sinTheta / sinTheta0; const s1 = sinTheta / sinTheta0;
return Quaternion.add( return Quaternion.add(
...@@ -168,6 +168,6 @@ export class Quaternion { ...@@ -168,6 +168,6 @@ export class Quaternion {
} }
public static inverse(qa: Quaternion): Quaternion { public static inverse(qa: Quaternion): Quaternion {
return new Quaternion(-qa._x, -qa._y, -qa._z, qa._w); return new Quaternion(-qa._x, -qa._y, -qa._z, -qa._w);
} }
} }
\ No newline at end of file
...@@ -167,9 +167,9 @@ class Rotator implements PipelineObserver, PipelineGUI { ...@@ -167,9 +167,9 @@ class Rotator implements PipelineObserver, PipelineGUI {
if (this._mode === Mode[0] && this._orientations.length !== 0) { if (this._mode === Mode[0] && this._orientations.length !== 0) {
this._objectReference.setRotationFromMatrix(this._orientations[this._index].eulerMatrix); this._objectReference.setRotationFromMatrix(this._orientations[this._index].eulerMatrix);
} else if (this._mode === Mode[1] && this._orientations.length > 1) { } else if (this._mode === Mode[1] && this._orientations.length > 1) {
let result: Quaternion = Quaternion.slerp(this._orientations[0], this._orientations[1], this._t); let result: Quaternion = Quaternion.slerpCG3(this._orientations[0], this._orientations[1], this._t);
for (let i = 2; i < this._orientations.length; i++) { for (let i = 2; i < this._orientations.length; i++) {
result = Quaternion.slerp(result, this._orientations[i], this._t); result = Quaternion.slerpCG3(result, this._orientations[i], this._t);
} }
this._objectReference.setRotationFromMatrix(result.eulerMatrix); this._objectReference.setRotationFromMatrix(result.eulerMatrix);
this._slerp.copy(result); this._slerp.copy(result);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment