Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

quaternion.h File Reference

#include "vec3.h"

Include dependency graph for quaternion.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Namespaces

namespace  EMAN

Classes

class  EMAN::Quaternion
 Quaternion is used in Rotation and Transformation to replace Euler angles. More...

Defines

#define eman__quaternion_h__   1
 
Id
quaternion.h,v 1.9 2008/03/24 01:22:22 gtang Exp


Functions

Quaternion operator+ (const Quaternion &q1, const Quaternion &q2)
Quaternion operator- (const Quaternion &q1, const Quaternion &q2)
Quaternion operator * (const Quaternion &q1, const Quaternion &q2)
Quaternion operator * (const Quaternion &q, float s)
Quaternion operator * (float s, const Quaternion &q)
Quaternion operator/ (const Quaternion &q1, const Quaternion &q2)
bool operator== (const Quaternion &q1, const Quaternion &q2)
bool operator!= (const Quaternion &q1, const Quaternion &q2)


Define Documentation

#define eman__quaternion_h__   1
 

Id
quaternion.h,v 1.9 2008/03/24 01:22:22 gtang Exp

Definition at line 37 of file quaternion.h.


Function Documentation

Quaternion EMAN::operator * float  s,
const Quaternion q
 

Definition at line 337 of file quaternion.cpp.

00338 {
00339         Quaternion q1 = q;
00340         q1 *= s;
00341         return q1;
00342 }

Quaternion EMAN::operator * const Quaternion q,
float  s
 

Definition at line 330 of file quaternion.cpp.

00331 {
00332         Quaternion q1 = q;
00333         q1 *= s;
00334         return q1;
00335 }

Quaternion EMAN::operator * const Quaternion q1,
const Quaternion q2
 

Definition at line 323 of file quaternion.cpp.

References q.

00324 {
00325         Quaternion q = q1;
00326         q *= q2;
00327         return q;
00328 }

bool EMAN::operator!= const Quaternion q1,
const Quaternion q2
 

Definition at line 370 of file quaternion.cpp.

00371 {
00372         return (!(q1 == q2));
00373 }

Quaternion EMAN::operator+ const Quaternion q1,
const Quaternion q2
 

Definition at line 308 of file quaternion.cpp.

References q.

00309 {
00310         Quaternion q = q1;
00311         q += q2;
00312         return q;
00313 }

Quaternion EMAN::operator- const Quaternion q1,
const Quaternion q2
 

Definition at line 315 of file quaternion.cpp.

References q.

00316 {
00317         Quaternion q = q1;
00318         q -= q2;
00319         return q;
00320 }

Quaternion EMAN::operator/ const Quaternion q1,
const Quaternion q2
 

Definition at line 344 of file quaternion.cpp.

References q.

00345 {
00346         Quaternion q = q1;
00347         q /= q2;
00348         return q;
00349 }

bool EMAN::operator== const Quaternion q1,
const Quaternion q2
 

Definition at line 352 of file quaternion.cpp.

References EMAN::Quaternion::as_list().

00353 {
00354         bool result = true;
00355         const float err_limit = 0.00001f;
00356         
00357         vector < float >v1 = q1.as_list();
00358         vector < float >v2 = q2.as_list();
00359 
00360         for (size_t i = 0; i < v1.size(); i++) {
00361                 if (fabs(v1[i] - v2[i]) > err_limit) {
00362                         result = false;
00363                         break;
00364                 }
00365         }
00366 
00367         return result;
00368 }


Generated on Tue Jun 11 13:41:27 2013 for EMAN2 by  doxygen 1.3.9.1