aimsalgo 6.0.0
Neuroimaging image processing
Moment< T > Class Template Reference

#include <aims/moment/moment.h>

Inheritance diagram for Moment< T >:
Collaboration diagram for Moment< T >:

Public Types

enum  Operation { mSub = -1 , mAdd = 1 }
 
enum  MomentId {
  m000 = 0 , m100 = 0 , m010 = 1 , m001 = 2 ,
  m200 = 0 , m020 = 1 , m002 = 2 , m110 = 3 ,
  m101 = 4 , m011 = 5 , m300 = 0 , m030 = 1 ,
  m003 = 2 , m210 = 3 , m201 = 4 , m120 = 5 ,
  m021 = 6 , m102 = 7 , m012 = 8 , m111 = 9
}
 

Public Member Functions

 Moment ()
 doesn't necessarily clear all moments to 0. Call clear() to be sure
 
 Moment (const Moment< T > &)
 
virtual ~Moment ()
 
virtual void clear ()
 
double cx () const
 
double cy () const
 
double cz () const
 
double ct () const
 
void setcx (double x)
 
void setcy (double x)
 
void setcz (double x)
 
void setct (double x)
 
double * gravity ()
 
const double * gravity () const
 
double & sum ()
 
const double & sum () const
 
double & m0 ()
 
const double & m0 () const
 
double * m1 ()
 
const double * m1 () const
 
double * m2 ()
 
const double * m2 () const
 
double * m3 ()
 
const double * m3 () const
 
const carto::VolumeRef< double > & eigenValue () const
 
const carto::VolumeRef< double > & eigenVector () const
 
virtual void update (Point3df &, int)
 
virtual void update (AimsVector< double, 3 > &, int)
 
virtual void update (double, double, double, int)
 
virtual void doit (carto::rc_ptr< carto::Volume< T > > &, T, int)
 
virtual void doit (AimsSurfaceTriangle &)
 
virtual void doit (const aims::BucketMap< Void > &)
 
virtual void orientation ()
 
Moment< T > & operator+= (const Moment< T > &)
 
Moment< T > operator+ (const Moment< T > &)
 

Protected Attributes

double _cx
 
double _cy
 
double _cz
 
double _ct
 
double _g [3]
 
double _sum
 
double _m0
 
double _m1 [3]
 
double _m2 [6]
 
double _m3 [10]
 
carto::VolumeRef< double > _eigenValue
 
carto::VolumeRef< double > _eigenVector
 

Detailed Description

template<class T>
class Moment< T >

Definition at line 55 of file moment.h.

Member Enumeration Documentation

◆ MomentId

template<class T>
enum Moment::MomentId
Enumerator
m000 
m100 
m010 
m001 
m200 
m020 
m002 
m110 
m101 
m011 
m300 
m030 
m003 
m210 
m201 
m120 
m021 
m102 
m012 
m111 

Definition at line 65 of file moment.h.

◆ Operation

template<class T>
enum Moment::Operation
Enumerator
mSub 
mAdd 

Definition at line 59 of file moment.h.

Constructor & Destructor Documentation

◆ Moment() [1/2]

template<class T>
Moment< T >::Moment ( )
inline

doesn't necessarily clear all moments to 0. Call clear() to be sure

Definition at line 164 of file moment.h.

References _ct, _cx, _cy, _cz, _m0, and _sum.

Referenced by GeometricMoment< T >::doit(), GeometricMoment< T >::doit(), Moment(), operator+(), operator+=(), and GeometricMoment< T >::update().

◆ Moment() [2/2]

template<class T>
Moment< T >::Moment ( const Moment< T > & other)
inline

Definition at line 171 of file moment.h.

References _ct, _cx, _cy, _cz, _eigenValue, _eigenVector, _g, _m0, _m1, _m2, _m3, _sum, ct(), cx(), cy(), cz(), eigenValue(), eigenVector(), gravity(), m0(), m1(), m2(), m3(), Moment(), and sum().

◆ ~Moment()

template<class T>
virtual Moment< T >::~Moment ( )
inlinevirtual

Definition at line 95 of file moment.h.

Member Function Documentation

◆ clear()

template<class T>
void Moment< T >::clear ( )
inlinevirtual

Definition at line 190 of file moment.h.

References _g, _m0, _m1, _m2, _m3, and _sum.

◆ ct()

template<class T>
double Moment< T >::ct ( ) const
inline

◆ cx()

template<class T>
double Moment< T >::cx ( ) const
inline

◆ cy()

template<class T>
double Moment< T >::cy ( ) const
inline

◆ cz()

template<class T>
double Moment< T >::cz ( ) const
inline

◆ doit() [1/3]

template<class T>
void Moment< T >::doit ( AimsSurfaceTriangle & )
virtual

Reimplemented in TriangulationMoment.

Definition at line 423 of file moment.h.

◆ doit() [2/3]

template<class T>
void Moment< T >::doit ( carto::rc_ptr< carto::Volume< T > > & ,
T ,
int  )
virtual

Reimplemented in GeometricMoment< T >.

Definition at line 411 of file moment.h.

◆ doit() [3/3]

template<class T>
void Moment< T >::doit ( const aims::BucketMap< Void > & )
virtual

Definition at line 435 of file moment.h.

◆ eigenValue()

template<class T>
const carto::VolumeRef< double > & Moment< T >::eigenValue ( ) const
inline

Definition at line 122 of file moment.h.

References _eigenValue.

Referenced by Moment(), and operator<<().

◆ eigenVector()

template<class T>
const carto::VolumeRef< double > & Moment< T >::eigenVector ( ) const
inline

Definition at line 124 of file moment.h.

References _eigenVector.

Referenced by Moment(), and operator<<().

◆ gravity() [1/2]

template<class T>
double * Moment< T >::gravity ( )
inline

◆ gravity() [2/2]

template<class T>
const double * Moment< T >::gravity ( ) const
inline

Definition at line 108 of file moment.h.

References _g.

◆ m0() [1/2]

template<class T>
double & Moment< T >::m0 ( )
inline

◆ m0() [2/2]

template<class T>
const double & Moment< T >::m0 ( ) const
inline

Definition at line 113 of file moment.h.

References _m0.

◆ m1() [1/2]

template<class T>
double * Moment< T >::m1 ( )
inline

◆ m1() [2/2]

template<class T>
const double * Moment< T >::m1 ( ) const
inline

Definition at line 116 of file moment.h.

References _m1.

◆ m2() [1/2]

template<class T>
double * Moment< T >::m2 ( )
inline

◆ m2() [2/2]

template<class T>
const double * Moment< T >::m2 ( ) const
inline

Definition at line 118 of file moment.h.

References _m2.

◆ m3() [1/2]

template<class T>
double * Moment< T >::m3 ( )
inline

◆ m3() [2/2]

template<class T>
const double * Moment< T >::m3 ( ) const
inline

Definition at line 120 of file moment.h.

References _m3.

◆ operator+()

template<class T>
Moment< T > Moment< T >::operator+ ( const Moment< T > & m)
inline

Definition at line 400 of file moment.h.

References Moment().

◆ operator+=()

template<class T>
Moment< T > & Moment< T >::operator+= ( const Moment< T > & m)
inline

Definition at line 296 of file moment.h.

References _g, _m0, _m1, _m2, _m3, _sum, Moment(), and orientation().

◆ orientation()

template<class T>
void Moment< T >::orientation ( )
inlinevirtual

◆ setct()

template<class T>
void Moment< T >::setct ( double x)
inline

Definition at line 105 of file moment.h.

References _ct.

◆ setcx()

template<class T>
void Moment< T >::setcx ( double x)
inline

Definition at line 102 of file moment.h.

References _cx.

◆ setcy()

template<class T>
void Moment< T >::setcy ( double x)
inline

Definition at line 103 of file moment.h.

References _cy.

◆ setcz()

template<class T>
void Moment< T >::setcz ( double x)
inline

Definition at line 104 of file moment.h.

References _cz.

◆ sum() [1/2]

template<class T>
double & Moment< T >::sum ( )
inline

◆ sum() [2/2]

template<class T>
const double & Moment< T >::sum ( ) const
inline

Definition at line 111 of file moment.h.

References _sum.

◆ update() [1/3]

template<class T>
void Moment< T >::update ( AimsVector< double, 3 > & pt,
int dir )
inlinevirtual

Definition at line 231 of file moment.h.

References update().

◆ update() [2/3]

template<class T>
void Moment< T >::update ( double ,
double ,
double ,
int  )
inlinevirtual

Reimplemented in GeometricMoment< T >.

Definition at line 238 of file moment.h.

References orientation().

◆ update() [3/3]

template<class T>
void Moment< T >::update ( Point3df & pt,
int dir )
inlinevirtual

Definition at line 224 of file moment.h.

References update().

Referenced by update(), and update().

Member Data Documentation

◆ _ct

template<class T>
double Moment< T >::_ct
protected

◆ _cx

template<class T>
double Moment< T >::_cx
protected

◆ _cy

template<class T>
double Moment< T >::_cy
protected

◆ _cz

template<class T>
double Moment< T >::_cz
protected

◆ _eigenValue

template<class T>
carto::VolumeRef< double > Moment< T >::_eigenValue
protected

Definition at line 158 of file moment.h.

Referenced by eigenValue(), Moment(), and orientation().

◆ _eigenVector

template<class T>
carto::VolumeRef< double > Moment< T >::_eigenVector
protected

Definition at line 159 of file moment.h.

Referenced by eigenVector(), Moment(), and orientation().

◆ _g

template<class T>
double Moment< T >::_g[3]
protected

Definition at line 149 of file moment.h.

Referenced by clear(), gravity(), gravity(), Moment(), and operator+=().

◆ _m0

template<class T>
double Moment< T >::_m0
protected

◆ _m1

template<class T>
double Moment< T >::_m1[3]
protected

◆ _m2

template<class T>
double Moment< T >::_m2[6]
protected

◆ _m3

template<class T>
double Moment< T >::_m3[10]
protected

◆ _sum

template<class T>
double Moment< T >::_sum
protected

The documentation for this class was generated from the following file: