Slicer  5.2
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Macros
Helper macros for copying node properties from a source node.

Macros

#define vtkMRMLPrintBeginMacro(os, indent)
 
#define vtkMRMLPrintBooleanMacro(propertyName)   printOutputStream << printOutputIndent << #propertyName ": " << (this->Get##propertyName() ? "true" : "false") << "\n";
 Macro for printing bool node property value. More...
 
#define vtkMRMLPrintEndMacro()   }
 This macro must be placed after the last value printing macro. More...
 
#define vtkMRMLPrintEnumMacro(propertyName)   printOutputStream << printOutputIndent << #propertyName ": " << (Get##propertyName##AsString(Get##propertyName())) << "\n";
 Macro for printing enum node property value. More...
 
#define vtkMRMLPrintFloatMacro(propertyName)   printOutputStream << printOutputIndent << #propertyName ": " << this->Get##propertyName() << "\n";
 Macro for printing floating-point (float or double) node property value. More...
 
#define vtkMRMLPrintIntMacro(propertyName)   printOutputStream << printOutputIndent << #propertyName ": " << this->Get##propertyName() << "\n";
 Macro for printing int node property value. More...
 
#define vtkMRMLPrintMatrix4x4Macro(propertyName)
 
#define vtkMRMLPrintObjectMacro(propertyName)
 
#define vtkMRMLPrintStdFloatVectorMacro(propertyName, vectorType)
 
#define vtkMRMLPrintStdIntVectorMacro(propertyName, vectorType)
 
#define vtkMRMLPrintStdStringMacro(propertyName)   printOutputStream << printOutputIndent << #propertyName ": " << this->Get##propertyName() << "\n";
 Macro for printing std::string node property value. More...
 
#define vtkMRMLPrintStdStringVectorMacro(propertyName, vectorType)
 Macro for printing iterable container (of std::string) node property value. More...
 
#define vtkMRMLPrintStringMacro(propertyName)   printOutputStream << printOutputIndent << #propertyName ": " << (this->Get##propertyName() != nullptr ? this->Get##propertyName() : "(none)") << "\n";
 Macro for printing char* node property value. More...
 
#define vtkMRMLPrintVectorMacro(propertyName, vectorType, vectorSize)
 

Detailed Description

They are To be used in PrintSelf(ostream& os, vtkIndent indent) method. Arguments of value printing macros:

Macro Definition Documentation

◆ vtkMRMLPrintBeginMacro

#define vtkMRMLPrintBeginMacro (   os,
  indent 
)
Value:
{ \
ostream& printOutputStream = os; \
vtkIndent printOutputIndent = indent;

This macro must be placed before the first value printing macro.

  • os: output stream
  • indent: current indentation level

Definition at line 463 of file vtkMRMLNodePropertyMacros.h.

◆ vtkMRMLPrintBooleanMacro

#define vtkMRMLPrintBooleanMacro (   propertyName)    printOutputStream << printOutputIndent << #propertyName ": " << (this->Get##propertyName() ? "true" : "false") << "\n";

Macro for printing bool node property value.

Definition at line 473 of file vtkMRMLNodePropertyMacros.h.

◆ vtkMRMLPrintEndMacro

#define vtkMRMLPrintEndMacro ( )    }

This macro must be placed after the last value printing macro.

Definition at line 469 of file vtkMRMLNodePropertyMacros.h.

◆ vtkMRMLPrintEnumMacro

#define vtkMRMLPrintEnumMacro (   propertyName)    printOutputStream << printOutputIndent << #propertyName ": " << (Get##propertyName##AsString(Get##propertyName())) << "\n";

Macro for printing enum node property value.

Definition at line 485 of file vtkMRMLNodePropertyMacros.h.

◆ vtkMRMLPrintFloatMacro

#define vtkMRMLPrintFloatMacro (   propertyName)    printOutputStream << printOutputIndent << #propertyName ": " << this->Get##propertyName() << "\n";

Macro for printing floating-point (float or double) node property value.

Definition at line 493 of file vtkMRMLNodePropertyMacros.h.

◆ vtkMRMLPrintIntMacro

#define vtkMRMLPrintIntMacro (   propertyName)    printOutputStream << printOutputIndent << #propertyName ": " << this->Get##propertyName() << "\n";

Macro for printing int node property value.

Definition at line 489 of file vtkMRMLNodePropertyMacros.h.

◆ vtkMRMLPrintMatrix4x4Macro

#define vtkMRMLPrintMatrix4x4Macro (   propertyName)
Value:
{ \
vtkMatrix4x4* matrix = this->Get##propertyName(); \
printOutputStream << printOutputIndent << #propertyName ":"; \
if (matrix) \
{ \
printOutputStream << "\n"; \
matrix->PrintSelf(printOutputStream, printOutputIndent.GetNextIndent()); \
} \
else \
{ \
printOutputStream << " (none)\n"; \
} \
}

Definition at line 566 of file vtkMRMLNodePropertyMacros.h.

◆ vtkMRMLPrintObjectMacro

#define vtkMRMLPrintObjectMacro (   propertyName)
Value:
{ \
vtkObject* obj = this->Get##propertyName(); \
printOutputStream << printOutputIndent << #propertyName ":"; \
if (obj) \
{ \
printOutputStream << "\n"; \
obj->PrintSelf(printOutputStream, printOutputIndent.GetNextIndent()); \
} \
else \
{ \
printOutputStream << " (none)\n"; \
} \
}

Definition at line 581 of file vtkMRMLNodePropertyMacros.h.

◆ vtkMRMLPrintStdFloatVectorMacro

#define vtkMRMLPrintStdFloatVectorMacro (   propertyName,
  vectorType 
)
Value:
{ \
printOutputStream << printOutputIndent << #propertyName " : ("; \
vectorType vector = this->Get##propertyName(); \
for (vectorType::iterator it=vector.begin(); it!=vector.end(); it++) \
{ \
if (it != vector.begin()) \
{ \
printOutputStream << ", "; \
} \
printOutputStream << *it; \
} \
printOutputStream << ")\n"; \
}

Macro for printing an iterable container (float or double) node property value. Follow VTK's PrintSelf convention of using parentheses for multiple values.

Definition at line 518 of file vtkMRMLNodePropertyMacros.h.

◆ vtkMRMLPrintStdIntVectorMacro

#define vtkMRMLPrintStdIntVectorMacro (   propertyName,
  vectorType 
)
Value:
{ \
printOutputStream << printOutputIndent << #propertyName " : ("; \
vectorType vector = this->Get##propertyName(); \
for (vectorType::iterator it=vector.begin(); it!=vector.end(); it++) \
{ \
if (it != vector.begin()) \
{ \
printOutputStream << ", "; \
} \
printOutputStream << *it; \
} \
printOutputStream << ")\n"; \
}

Macro for printing an iterable container (int) node property value. Follow VTK's PrintSelf convention of using parentheses for multiple values.

Definition at line 535 of file vtkMRMLNodePropertyMacros.h.

◆ vtkMRMLPrintStdStringMacro

#define vtkMRMLPrintStdStringMacro (   propertyName)    printOutputStream << printOutputIndent << #propertyName ": " << this->Get##propertyName() << "\n";

Macro for printing std::string node property value.

Definition at line 481 of file vtkMRMLNodePropertyMacros.h.

◆ vtkMRMLPrintStdStringVectorMacro

#define vtkMRMLPrintStdStringVectorMacro (   propertyName,
  vectorType 
)
Value:
{ \
printOutputStream << printOutputIndent << #propertyName " : (\""; \
vectorType<std::string> vector = this->Get##propertyName(); \
for (vectorType<std::string>::iterator it=vector.begin(); it!=vector.end(); it++) \
{ \
if (it != vector.begin()) \
{ \
printOutputStream << "\", \""; \
} \
printOutputStream << *it; \
} \
printOutputStream << "\")\n"; \
}

Macro for printing iterable container (of std::string) node property value.

Definition at line 551 of file vtkMRMLNodePropertyMacros.h.

◆ vtkMRMLPrintStringMacro

#define vtkMRMLPrintStringMacro (   propertyName)    printOutputStream << printOutputIndent << #propertyName ": " << (this->Get##propertyName() != nullptr ? this->Get##propertyName() : "(none)") << "\n";

Macro for printing char* node property value.

Definition at line 477 of file vtkMRMLNodePropertyMacros.h.

◆ vtkMRMLPrintVectorMacro

#define vtkMRMLPrintVectorMacro (   propertyName,
  vectorType,
  vectorSize 
)
Value:
{ \
printOutputStream << printOutputIndent << #propertyName ": ("; \
vectorType* vectorValue = this->Get##propertyName(); \
if (vectorValue) \
{ \
for (int i=0; i<vectorSize; i++) \
{ \
if (i > 0) \
{ \
printOutputStream << ", "; \
} \
printOutputStream << vectorValue[i]; \
} \
printOutputStream << ")\n"; \
} \
}

Macro for printing floating-point (float or double) vector node property value. Follow VTK's PrintSelf convention of using parentheses for multiple values.

Definition at line 498 of file vtkMRMLNodePropertyMacros.h.