STIR  6.2.0
ObjectTransformation.h
Go to the documentation of this file.
1 //
2 //
3 /*
4  Copyright (C) 2005- 2005 , Hammersmith Imanet Ltd
5  For internal GE use only
6 */
16 #ifndef __stir_motion_ObjectTransformation_H__
17 #define __stir_motion_ObjectTransformation_H__
18 
19 #include "stir/BasicCoordinate.h"
20 #include "stir/RegisteredObject.h"
21 #include "stir/ParsingObject.h"
22 
23 START_NAMESPACE_STIR
24 
28 template <int num_dimensions, class elemT>
29 class ObjectTransformation : public RegisteredObject<ObjectTransformation<num_dimensions, elemT>>
30 {
31 public:
34 
35  ~ObjectTransformation() override {}
37  /* \todo should be CartesianCoordinate<num_dimensions,elemT>, but we don't have that class yet*/
38  virtual BasicCoordinate<num_dimensions, elemT> transform_point(const BasicCoordinate<num_dimensions, elemT>& point) const = 0;
39 
41 
42  virtual float jacobian(const BasicCoordinate<num_dimensions, elemT>& point) const = 0;
43 };
44 
45 END_NAMESPACE_STIR
46 
47 #endif
ObjectTransformation hierarchy_base_type
typedef used by read_from_file
Definition: ObjectTransformation.h:33
Declaration of class stir::ParsingObject.
This file declares class stir::BasicCoordinate and some functions acting on stir::BasicCoordinate obj...
Base-class for performing (potentially non-rigid) object transformations.
Definition: ObjectTransformation.h:29
Declaration of class stiir::RegisteredObject.
Helper class to provide registry mechanisms to a Base classSuppose you have a hierarchy of classes wi...
Definition: RegisteredObject.h:95