FAST  3.2.0
Framework for Heterogeneous Medical Image Computing and Visualization
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
fast::CoherentPointDrift Class Referenceabstract

#include <CoherentPointDrift.hpp>

+ Inheritance diagram for fast::CoherentPointDrift:
+ Collaboration diagram for fast::CoherentPointDrift:

Public Types

enum  TransformationType { RIGID, AFFINE, NONRIGID }
 
- Public Types inherited from fast::ProcessObject
typedef std::shared_ptr< ProcessObjectpointer
 
- Public Types inherited from fast::Object
typedef std::shared_ptr< Objectpointer
 

Public Member Functions

void setFixedMeshPort (DataChannel::pointer port)
 
void setFixedMesh (Mesh::pointer data)
 
void setMovingMeshPort (DataChannel::pointer port)
 
void setMovingMesh (Mesh::pointer data)
 
void setMaximumIterations (unsigned char maxIterations)
 
void setUniformWeight (float uniformWeight)
 
void setTolerance (double tolerance)
 
AffineTransformation::pointer getOutputTransformation ()
 
virtual void initializeVarianceAndMore ()=0
 
void expectation (MatrixXf &fixedPoints, MatrixXf &movingPoints)
 
virtual void maximization (MatrixXf &fixedPoints, MatrixXf &movingPoints)=0
 
- Public Member Functions inherited from fast::ProcessObject
virtual ~ProcessObject ()
 
void update (int executeToken=-1)
 
RuntimeMeasurement::pointer getRuntime ()
 
RuntimeMeasurement::pointer getRuntime (std::string name)
 
RuntimeMeasurementsManager::pointer getAllRuntimes ()
 
void enableRuntimeMeasurements ()
 
void disableRuntimeMeasurements ()
 
void setMainDevice (ExecutionDevice::pointer device)
 
void setMainDeviceCriteria (const DeviceCriteria &citeria)
 
ExecutionDevice::pointer getMainDevice () const
 
void setDevice (uint deviceNumber, ExecutionDevice::pointer device)
 
void setDeviceCriteria (uint deviceNumber, const DeviceCriteria &criteria)
 
ExecutionDevice::pointer getDevice (uint deviceNumber) const
 
virtual DataChannel::pointer getOutputPort (uint portID=0)
 
virtual DataChannel::pointer getInputPort (uint portID=0)
 
virtual void setInputConnection (DataChannel::pointer port)
 
virtual void setInputConnection (uint portID, DataChannel::pointer port)
 
virtual void setInputData (DataObject::pointer data)
 
virtual void setInputData (uint portID, DataObject::pointer data)
 
int getNrOfInputConnections () const
 
int getNrOfOutputPorts () const
 
virtual std::string getNameOfClass () const =0
 
virtual void loadAttributes ()
 
std::shared_ptr< AttributegetAttribute (std::string id)
 
std::unordered_map< std::string, std::shared_ptr< Attribute > > getAttributes ()
 
void setAttributes (std::vector< std::shared_ptr< Attribute >> attributes)
 
void stopPipeline ()
 
void setModified (bool modified)
 
template<class DataType >
std::shared_ptr< DataTypeupdateAndGetOutputData (uint portID=0)
 
- Public Member Functions inherited from fast::Object
 Object ()
 
virtual ~Object ()
 
ReportergetReporter ()
 

Protected Member Functions

 CoherentPointDrift ()
 
void execute ()
 
- Protected Member Functions inherited from fast::ProcessObject
 ProcessObject ()
 
virtual void preExecute ()
 
virtual void postExecute ()
 
template<class DataType >
void createInputPort (uint portID, bool required=true)
 
template<class DataType >
void createOutputPort (uint portID)
 
template<class DataType >
std::shared_ptr< DataTypegetInputData (uint portID=0)
 
template<class DataType >
std::shared_ptr< DataTypegetOutputData (uint portID=0)
 
void addOutputData (uint portID, DataObject::pointer data)
 
bool hasNewInputData (uint portID)
 
virtual void waitToFinish ()
 
void createOpenCLProgram (std::string sourceFilename, std::string name="")
 
cl::Program getOpenCLProgram (std::shared_ptr< OpenCLDevice > device, std::string name="", std::string buildOptions="")
 
void createFloatAttribute (std::string id, std::string name, std::string description, float initialValue)
 
void createIntegerAttribute (std::string id, std::string name, std::string description, int initialValue)
 
void createBooleanAttribute (std::string id, std::string name, std::string description, bool initialValue)
 
void createStringAttribute (std::string id, std::string name, std::string description, std::string initialValue)
 
float getFloatAttribute (std::string id)
 
int getIntegerAttribute (std::string id)
 
bool getBooleanAttribute (std::string id)
 
std::string getStringAttribute (std::string id)
 
std::vector< float > getFloatListAttribute (std::string id)
 
std::vector< int > getIntegerListAttribute (std::string id)
 
std::vector< bool > getBooleanListAttribute (std::string id)
 
std::vector< std::string > getStringListAttribute (std::string id)
 
void changeDeviceOnInputs (uint deviceNumber, ExecutionDevice::pointer device)
 
void validateInputPortExists (uint portID)
 
void validateOutputPortExists (uint portID)
 
- Protected Member Functions inherited from fast::Object
ReporterreportError ()
 
ReporterreportWarning ()
 
ReporterreportInfo ()
 
ReporterEnd reportEnd () const
 

Protected Attributes

MatrixXf mFixedPoints
 
MatrixXf mMovingPoints
 
MatrixXf mMovingMeanInitial
 
MatrixXf mFixedMeanInitial
 
MatrixXf mResponsibilityMatrix
 
unsigned int mNumFixedPoints
 
unsigned int mNumMovingPoints
 
unsigned int mNumDimensions
 
float mUniformWeight
 
double mTolerance
 
double mScale
 
double mVariance
 
double mObjectiveFunction
 
double mFixedNormalizationScale
 
double mMovingNormalizationScale
 
AffineTransformation::pointer mTransformation
 
unsigned char mIteration
 
bool mRegistrationConverged
 
double timeE
 
double timeEDistances
 
double timeENormal
 
double timeEPosterior
 
double timeEPosteriorDivision
 
double timeM
 
double timeMUseful
 
double timeMCenter
 
double timeMSVD
 
double timeMParameters
 
double timeMUpdate
 
- Protected Attributes inherited from fast::ProcessObject
bool mIsModified
 
int m_lastExecuteToken = -1
 
RuntimeMeasurementsManager::pointer mRuntimeManager
 
std::unordered_map< uint, bool > mRequiredInputs
 
std::unordered_map< uint, std::vector< uint > > mInputDevices
 
std::unordered_map< uint, ExecutionDevice::pointermDevices
 
std::unordered_map< uint, DeviceCriteriamDeviceCriteria
 
std::unordered_map< uint, DataChannel::pointermInputConnections
 
std::unordered_map< uint, std::vector< std::weak_ptr< DataChannel > > > mOutputConnections
 
std::unordered_map< uint, bool > mInputPorts
 
std::unordered_set< uintmOutputPorts
 
std::unordered_map< uint, std::pair< DataObject::pointer, uint64_t > > mLastProcessed
 
std::unordered_map< std::string, std::shared_ptr< OpenCLProgram > > mOpenCLPrograms
 
std::unordered_map< std::string, std::shared_ptr< Attribute > > mAttributes
 
std::unordered_map< std::string, std::string > m_frameData
 
std::unordered_set< std::string > m_lastFrame
 
int m_maximumNrOfFrames = -1
 
- Protected Attributes inherited from fast::Object
std::weak_ptr< ObjectmPtr
 

Additional Inherited Members

- Static Public Member Functions inherited from fast::ProcessObject
static std::string getStaticNameOfClass ()
 
- Static Public Member Functions inherited from fast::Object
static std::string getStaticNameOfClass ()
 

Member Enumeration Documentation

◆ TransformationType

Enumerator
RIGID 
AFFINE 
NONRIGID 

Constructor & Destructor Documentation

◆ CoherentPointDrift()

fast::CoherentPointDrift::CoherentPointDrift ( )
protected

Member Function Documentation

◆ execute()

void fast::CoherentPointDrift::execute ( )
protectedvirtual

Implements fast::ProcessObject.

◆ expectation()

void fast::CoherentPointDrift::expectation ( MatrixXf &  fixedPoints,
MatrixXf &  movingPoints 
)

◆ getOutputTransformation()

AffineTransformation::pointer fast::CoherentPointDrift::getOutputTransformation ( )

◆ initializeVarianceAndMore()

virtual void fast::CoherentPointDrift::initializeVarianceAndMore ( )
pure virtual

◆ maximization()

virtual void fast::CoherentPointDrift::maximization ( MatrixXf &  fixedPoints,
MatrixXf &  movingPoints 
)
pure virtual

◆ setFixedMesh()

void fast::CoherentPointDrift::setFixedMesh ( Mesh::pointer  data)

◆ setFixedMeshPort()

void fast::CoherentPointDrift::setFixedMeshPort ( DataChannel::pointer  port)

◆ setMaximumIterations()

void fast::CoherentPointDrift::setMaximumIterations ( unsigned char  maxIterations)

◆ setMovingMesh()

void fast::CoherentPointDrift::setMovingMesh ( Mesh::pointer  data)

◆ setMovingMeshPort()

void fast::CoherentPointDrift::setMovingMeshPort ( DataChannel::pointer  port)

◆ setTolerance()

void fast::CoherentPointDrift::setTolerance ( double  tolerance)

◆ setUniformWeight()

void fast::CoherentPointDrift::setUniformWeight ( float  uniformWeight)

Member Data Documentation

◆ mFixedMeanInitial

MatrixXf fast::CoherentPointDrift::mFixedMeanInitial
protected

◆ mFixedNormalizationScale

double fast::CoherentPointDrift::mFixedNormalizationScale
protected

◆ mFixedPoints

MatrixXf fast::CoherentPointDrift::mFixedPoints
protected

◆ mIteration

unsigned char fast::CoherentPointDrift::mIteration
protected

◆ mMovingMeanInitial

MatrixXf fast::CoherentPointDrift::mMovingMeanInitial
protected

◆ mMovingNormalizationScale

double fast::CoherentPointDrift::mMovingNormalizationScale
protected

◆ mMovingPoints

MatrixXf fast::CoherentPointDrift::mMovingPoints
protected

◆ mNumDimensions

unsigned int fast::CoherentPointDrift::mNumDimensions
protected

◆ mNumFixedPoints

unsigned int fast::CoherentPointDrift::mNumFixedPoints
protected

◆ mNumMovingPoints

unsigned int fast::CoherentPointDrift::mNumMovingPoints
protected

◆ mObjectiveFunction

double fast::CoherentPointDrift::mObjectiveFunction
protected

◆ mRegistrationConverged

bool fast::CoherentPointDrift::mRegistrationConverged
protected

◆ mResponsibilityMatrix

MatrixXf fast::CoherentPointDrift::mResponsibilityMatrix
protected

◆ mScale

double fast::CoherentPointDrift::mScale
protected

◆ mTolerance

double fast::CoherentPointDrift::mTolerance
protected

◆ mTransformation

AffineTransformation::pointer fast::CoherentPointDrift::mTransformation
protected

◆ mUniformWeight

float fast::CoherentPointDrift::mUniformWeight
protected

◆ mVariance

double fast::CoherentPointDrift::mVariance
protected

◆ timeE

double fast::CoherentPointDrift::timeE
protected

◆ timeEDistances

double fast::CoherentPointDrift::timeEDistances
protected

◆ timeENormal

double fast::CoherentPointDrift::timeENormal
protected

◆ timeEPosterior

double fast::CoherentPointDrift::timeEPosterior
protected

◆ timeEPosteriorDivision

double fast::CoherentPointDrift::timeEPosteriorDivision
protected

◆ timeM

double fast::CoherentPointDrift::timeM
protected

◆ timeMCenter

double fast::CoherentPointDrift::timeMCenter
protected

◆ timeMParameters

double fast::CoherentPointDrift::timeMParameters
protected

◆ timeMSVD

double fast::CoherentPointDrift::timeMSVD
protected

◆ timeMUpdate

double fast::CoherentPointDrift::timeMUpdate
protected

◆ timeMUseful

double fast::CoherentPointDrift::timeMUseful
protected

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