Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
EnergyComputer Class Referenceabstract

Calculates internal and external energy of the new particle configuration proposal. More...

#include <mitkEnergyComputer.h>

Inheritance diagram for EnergyComputer:
Collaboration diagram for EnergyComputer:

Public Types

typedef itk::Image< float, 3 > ItkFloatImageType
 
typedef itk::Statistics::MersenneTwisterRandomVariateGenerator ItkRandGenType
 

Public Member Functions

 EnergyComputer (ItkFloatImageType *mask, ParticleGrid *particleGrid, SphereInterpolator *interpolator, ItkRandGenType *randGen)
 
void SetParameters (float particleWeight, float particleWidth, float connectionPotential, float curvThres, float inexBalance, float particlePotential)
 
void DrawRandomPosition (vnl_vector_fixed< float, 3 > &R)
 
virtual float ComputeExternalEnergy (vnl_vector_fixed< float, 3 > &R, vnl_vector_fixed< float, 3 > &N, Particle *dp)=0
 
virtual float ComputeInternalEnergyConnection (Particle *p1, int ep1)=0
 
virtual float ComputeInternalEnergyConnection (Particle *p1, int ep1, Particle *p2, int ep2)=0
 
virtual float ComputeInternalEnergy (Particle *dp)=0
 
int GetNumActiveVoxels ()
 

Protected Member Functions

float SpatProb (vnl_vector_fixed< float, 3 > pos)
 
float EvaluateOdf (vnl_vector_fixed< float, 3 > &pos, vnl_vector_fixed< float, 3 > dir)
 
float mbesseli0 (float x)
 
float mexp (float x)
 

Protected Attributes

vnl_matrix_fixed< float, 3, 3 > m_RotationMatrix
 
SphereInterpolatorm_SphereInterpolator
 
ParticleGridm_ParticleGrid
 
ItkRandGenTypem_RandGen
 
ItkFloatImageTypem_Mask
 
vnl_vector_fixed< int, 3 > m_Size
 
vnl_vector_fixed< float, 3 > m_Spacing
 
std::vector< float > m_CumulatedSpatialProbability
 
std::vector< int > m_ActiveIndices
 
bool m_UseTrilinearInterpolation
 
int m_NumActiveVoxels
 
float m_ConnectionPotential
 
float m_ParticleChemicalPotential
 
float gamma_s
 
float gamma_reg_s
 
float m_ParticleWeight
 
float m_ExtStrength
 
float m_IntStrength
 
float m_ParticleLength
 
float m_SquaredParticleLength
 
float m_CurvatureThreshold
 

Detailed Description

Calculates internal and external energy of the new particle configuration proposal.

Definition at line 31 of file mitkEnergyComputer.h.

Member Typedef Documentation

Definition at line 38 of file mitkEnergyComputer.h.

typedef itk::Statistics::MersenneTwisterRandomVariateGenerator EnergyComputer::ItkRandGenType

Definition at line 39 of file mitkEnergyComputer.h.

Constructor & Destructor Documentation

Member Function Documentation

virtual float EnergyComputer::ComputeExternalEnergy ( vnl_vector_fixed< float, 3 > &  R,
vnl_vector_fixed< float, 3 > &  N,
Particle dp 
)
pure virtual
virtual float EnergyComputer::ComputeInternalEnergy ( Particle dp)
pure virtual
virtual float EnergyComputer::ComputeInternalEnergyConnection ( Particle p1,
int  ep1 
)
pure virtual
virtual float EnergyComputer::ComputeInternalEnergyConnection ( Particle p1,
int  ep1,
Particle p2,
int  ep2 
)
pure virtual

Implemented in GibbsEnergyComputer.

void EnergyComputer::DrawRandomPosition ( vnl_vector_fixed< float, 3 > &  R)
float EnergyComputer::EvaluateOdf ( vnl_vector_fixed< float, 3 > &  pos,
vnl_vector_fixed< float, 3 >  dir 
)
protected
int EnergyComputer::GetNumActiveVoxels ( )

Definition at line 169 of file mitkEnergyComputer.cpp.

References m_NumActiveVoxels.

float EnergyComputer::mbesseli0 ( float  x)
protected

Definition at line 149 of file mitkEnergyComputer.cpp.

Referenced by GibbsEnergyComputer::ComputeExternalEnergy().

float EnergyComputer::mexp ( float  x)
protected

Definition at line 163 of file mitkEnergyComputer.cpp.

Referenced by GibbsEnergyComputer::ComputeExternalEnergy().

void EnergyComputer::SetParameters ( float  particleWeight,
float  particleWidth,
float  connectionPotential,
float  curvThres,
float  inexBalance,
float  particlePotential 
)
float EnergyComputer::SpatProb ( vnl_vector_fixed< float, 3 >  pos)
protected

Member Data Documentation

float EnergyComputer::gamma_reg_s
protected
float EnergyComputer::gamma_s
protected
std::vector< int > EnergyComputer::m_ActiveIndices
protected

Definition at line 67 of file mitkEnergyComputer.h.

Referenced by DrawRandomPosition(), and EnergyComputer().

float EnergyComputer::m_ConnectionPotential
protected
std::vector< float > EnergyComputer::m_CumulatedSpatialProbability
protected

Definition at line 66 of file mitkEnergyComputer.h.

Referenced by DrawRandomPosition(), and EnergyComputer().

float EnergyComputer::m_CurvatureThreshold
protected
float EnergyComputer::m_ExtStrength
protected
float EnergyComputer::m_IntStrength
protected
ItkFloatImageType* EnergyComputer::m_Mask
protected

Definition at line 63 of file mitkEnergyComputer.h.

Referenced by EnergyComputer(), and SpatProb().

int EnergyComputer::m_NumActiveVoxels
protected

Definition at line 70 of file mitkEnergyComputer.h.

Referenced by DrawRandomPosition(), EnergyComputer(), and GetNumActiveVoxels().

float EnergyComputer::m_ParticleChemicalPotential
protected
float EnergyComputer::m_ParticleLength
protected
float EnergyComputer::m_ParticleWeight
protected
ItkRandGenType* EnergyComputer::m_RandGen
protected

Definition at line 62 of file mitkEnergyComputer.h.

Referenced by DrawRandomPosition(), and EnergyComputer().

vnl_matrix_fixed<float, 3, 3> EnergyComputer::m_RotationMatrix
protected

Definition at line 59 of file mitkEnergyComputer.h.

Referenced by EnergyComputer(), and GibbsEnergyComputer::EvaluateOdf().

vnl_vector_fixed<int, 3> EnergyComputer::m_Size
protected
vnl_vector_fixed<float, 3> EnergyComputer::m_Spacing
protected
SphereInterpolator* EnergyComputer::m_SphereInterpolator
protected

Definition at line 60 of file mitkEnergyComputer.h.

Referenced by EnergyComputer(), and GibbsEnergyComputer::EvaluateOdf().

float EnergyComputer::m_SquaredParticleLength
protected
bool EnergyComputer::m_UseTrilinearInterpolation
protected

Definition at line 69 of file mitkEnergyComputer.h.

Referenced by EnergyComputer(), and GibbsEnergyComputer::EvaluateOdf().


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