itkFEMMacro.h defines macros that allow simple and consistent FEM code creation. Use these macros whenever posible (always)!
Definition in file itkFEMMacro.h.
Go to the source code of this file.
Namespaces | |
namespace | itk |
namespace | itk::fem |
Classes | |
class | itk::fem::INITClass |
Class that is used in FEM_CLASS_INIT macro. More... | |
Defines | |
#define | FEM_ABSTRACT_CLASS(thisClass, parentClass) |
#define | FEM_CLASS(thisClass, parentClass) |
#define | FEM_CLASS_INIT(thisClass) static INITClass Initializer_##thisClass(thisClass::CLID()); |
#define | FEM_CLASS_REGISTER(thisClass) |
Typedefs | |
typedef const Self * | ConstPointer |
typedef Self * | Pointer |
typedef parentClass | Superclass |
#define FEM_ABSTRACT_CLASS | ( | thisClass, | |||
parentClass | ) |
Value:
public: \ \ typedef thisClass Self; \
This macro should be called immediately after the { in class declaration. It defines Self, Superclass, Pointer and ConstPointer typedef members in a class. It also includes all the necessary typedefs for compatibility when SmartPointer classes are used (itkTypeMacro).
thisClass | Name of the class that is being declared. | |
parentClass | Name of the class from which the current class is being derived. If this is the base class that is not derived from anything, let parentClass=thisClass. |
Definition at line 112 of file itkFEMMacro.h.
#define FEM_CLASS | ( | thisClass, | |||
parentClass | ) |
Value:
/* Pointers.... */ \ FEM_ABSTRACT_CLASS(thisClass,parentClass) \ public: \
This macro should be called immediately after the { in class declaration. It first calls the FEM_ABSTRACT_CLASS macro. In addition it defines the Clone() function, CLID member that holds the class ID for FEMObjectFactory. Also, the New() static member is defined, as required, for compatibility with SmartPointer classes (itkNewMacro is called).
thisClass | Name of the class that is being declared. | |
parentClass | Name of the class from which the current class is being derived. |
Definition at line 169 of file itkFEMMacro.h.
#define FEM_CLASS_INIT | ( | thisClass | ) | static INITClass Initializer_##thisClass(thisClass::CLID()); |
Perform any initialization tasks for a class.
This macro creates a static object of INITClass class that references thisClass::CLID static member in a constructor. This insures that any initialization code for CLID is always executed, and thisClass is properly registered with FEMObjectFactory.
thisClass | Name of the class that needs to be initialized. |
Definition at line 290 of file itkFEMMacro.h.
#define FEM_CLASS_REGISTER | ( | thisClass | ) |
Value:
int thisClass::CLID(void) \ { static const int CLID_ = FEMObjectFactory<thisClass::Baseclass>::Register( thisClass::NewB, #thisClass); \ return CLID_; }
Registering is required for every class that the object factory will later be able to create. The class must contain static const int member CLID and must define or inherit Baseclass typedef. This is automatic if FEM_CLASS macro was used when declaring a class. CLID is initialized to a value assigned by the FEMObjectFactory.
This macro provides the definition for CLID static member function of a class. This function can't be defined inline.
thisClass | Name of the class that needs to be registered with FEMObjectFactory. |
Definition at line 243 of file itkFEMMacro.h.
typedef const Self* ConstPointer |
Const pointer or SmartPointer to an object.
Definition at line 124 of file itkFEMMacro.h.
typedef Self* Pointer |
Pointer or SmartPointer to an object.
Definition at line 121 of file itkFEMMacro.h.
typedef parentClass Superclass |
Standard "Superclass" typedef.
Definition at line 118 of file itkFEMMacro.h.