mirror of
https://github.com/aap/librw.git
synced 2024-11-30 23:55:43 +00:00
46 lines
1.1 KiB
C
46 lines
1.1 KiB
C
|
#ifndef MATH_DQUAT_H
|
||
|
#define MATH_DQUAT_H
|
||
|
|
||
|
#include <iostream>
|
||
|
#include <cmath>
|
||
|
|
||
|
class Vec3;
|
||
|
class Vec4;
|
||
|
|
||
|
class DQuat {
|
||
|
public:
|
||
|
Quat q1, q2;
|
||
|
|
||
|
DQuat(void);
|
||
|
DQuat(const Quat &q1, const Quat &q2);
|
||
|
DQuat operator-(void) const;
|
||
|
DQuat operator+(const DQuat &rhs) const;
|
||
|
DQuat operator-(const DQuat &rhs) const;
|
||
|
DQuat operator*(const DQuat &rhs) const;
|
||
|
DQuat operator*(float rhs) const;
|
||
|
DQuat operator/(float rhs) const;
|
||
|
DQuat &operator+=(const DQuat &rhs);
|
||
|
DQuat &operator-=(const DQuat &rhs);
|
||
|
DQuat &operator*=(const DQuat &rhs);
|
||
|
DQuat &operator*=(float rhs);
|
||
|
DQuat &operator/=(float rhs);
|
||
|
bool operator==(const DQuat &rhs) const;
|
||
|
bool operator!=(const DQuat &rhs) const;
|
||
|
|
||
|
// DQuat inv(void) const;
|
||
|
DQuat K(void) const; /* conjugate */
|
||
|
// DQuat S(void) const; /* scalar */
|
||
|
// DQuat V(void) const; /* vector */
|
||
|
// float T(void) const; /* tensor */
|
||
|
// float N(void) const; /* norm = tensor^2 */
|
||
|
// DQuat U(void) const; /* versor */
|
||
|
// DQuat wedge(const Quat &rhs) const;
|
||
|
// float inner(const Quat &rhs) const;
|
||
|
// DQuat slerp(const Quat &rhs, float t) const;
|
||
|
|
||
|
void print(std::ostream &of) const;
|
||
|
};
|
||
|
|
||
|
#endif
|
||
|
|