15 #ifndef niftkVLUtils_h
16 #define niftkVLUtils_h
18 #include <niftkVLExports.h>
19 #include <vlCore/Vector3.hpp>
20 #include <vlCore/Vector4.hpp>
21 #include <vlCore/vlnamespace.hpp>
22 #include <vlCore/Image.hpp>
23 #include <vlGraphics/Geometry.hpp>
24 #include <vtkSmartPointer.h>
25 #include <vtkMatrix4x4.h>
26 #include <itkMatrix.h>
27 #include <mitkEnumerationProperty.h>
32 #define VIVID_TRAP() { if (IsDebuggerPresent()) { __debugbreak(); } else ::vl::abort_vl(); }
33 #elif defined(__GNUG__) || defined(__MINGW32__)
34 #define VIVID_TRAP() { fflush(stdout); fflush(stderr); asm("int $0x3"); }
36 #define VIVID_TRAP() { ::vl::abort_vl(); }
40 #define VIVID_CHECK(expr) { if ( ! ( expr ) ) { ::vl::log_failed_check( #expr, __FILE__, __LINE__ ); VIVID_TRAP(); } }
43 #define STRINGIZE_DETAIL(x) #x
44 #define STRINGIZE(x) STRINGIZE_DETAIL(x)
45 #define VIVID_CHECK(expr) { if ( ! (expr) ) { throw std::runtime_error( __FILE__ " line " STRINGIZE(__LINE__) ": " #expr ); } }
77 AddEnum(
"DepthPeeling", 0);
78 AddEnum(
"FastRender", 1);
79 AddEnum(
"StencilRender", 2);
93 AddEnum(
"Isosurface", 1);
123 AddEnum(
"Saturation", 2);
137 AddEnum(
"Linear", 1);
153 AddEnum(
"Sphere", 1);
169 AddEnum(
"Outline3D", 1);
170 AddEnum(
"Polys+Outline3D", 2);
172 AddEnum(
"Outline2D", 4);
173 AddEnum(
"Polys+Outline2D", 5);
180 VLUserData(): m_TransformModifiedTime(0), m_ImageModifiedTime(0) { }
188 static vl::vec3 getVector3DProp(
const mitk::DataNode* node,
const char* prop_name, vl::vec3 defval );
190 static vl::vec3 getPoint3DProp(
const mitk::DataNode* node,
const char* prop_name, vl::vec3 defval );
192 static vl::vec4 getPoint4DProp(
const mitk::DataNode* node,
const char* prop_name, vl::vec4 defval );
194 static int getEnumProp(
const mitk::DataNode* node,
const char* prop_name,
int defval = 0 );
196 static bool getBoolProp(
const mitk::DataNode* node,
const char* prop_name,
bool defval );
198 static bool setBoolProp( mitk::DataNode* node,
const char* prop_name,
bool val );
200 static float getFloatProp(
const mitk::DataNode* node,
const char* prop_name,
float defval = 0 );
202 static int getIntProp(
const mitk::DataNode* node,
const char* prop_name,
int defval = 0 );
204 static vl::vec4 getColorProp(
const mitk::DataNode* node,
const char* prop_name, vl::vec4 defval = vl::white );
206 static void initGlobalProps( mitk::DataNode* node );
208 static void initVolumeProps( mitk::DataNode* node );
210 static void updateVolumeProps( vl::VividVolume* vol,
const mitk::DataNode* node );
212 static void initMaterialProps( mitk::DataNode* node );
214 static void updateMaterialProps( vl::Effect* fx,
const mitk::DataNode* node );
216 static void initFogProps( mitk::DataNode* node );
218 static void updateFogProps( vl::Effect* fx,
const mitk::DataNode* node );
220 static void initClipProps( mitk::DataNode* node );
222 static void updateClipProps( vl::Effect* fx,
const mitk::DataNode* node );
224 static void initRenderModeProps( mitk::DataNode* node );
226 static void updateRenderModeProps( vl::Effect* fx,
const mitk::DataNode* node );
228 static vl::EImageType mapITKPixelTypeToVL(
int itkComponentType);
230 static vl::EImageFormat mapComponentsToVLColourFormat(
int components);
232 static vl::ref<vl::Image> wrapMitk2DImage(
const mitk::Image* mitk_image );
234 static VLUserData* getUserData(vl::Actor* actor);
236 static vl::mat4 getVLMatrix(
const itk::Matrix<float, 4, 4>& itkmat);
239 static vl::mat4 getVLMatrix(vtkSmartPointer<vtkMatrix4x4> vtkmat);
242 static vl::mat4 getVLMatrix(
const mitk::BaseData*
data);
244 static void updateTransform(vl::Transform* tr,
const mitk::BaseData* data);
246 static void updateTransform(vl::Transform* txf,
const mitk::DataNode* node);
248 static vl::ref<vl::Geometry> make2DImageGeometry(
int width,
int height);
250 static vl::ref<vl::Geometry> getVLGeometry(vtkPolyData* vtkPoly);
252 static void dumpNodeInfo(
const std::string& prefix,
const mitk::DataNode* node );
254 static void dumpNodeInfo(
const std::string& prefix,
const mitk::BaseData* data );
itkFactorylessNewMacro(Self) protected
Definition: niftkVLUtils.h:165
Definition: niftkVLUtils.h:100
itk::ModifiedTimeType m_TransformModifiedTime
Definition: niftkVLUtils.h:181
Definition: niftkVLUtils.h:161
itkFactorylessNewMacro(Self) protected
Definition: niftkVLUtils.h:89
itkFactorylessNewMacro(Self) protected
Definition: niftkVLUtils.h:149
GLuint const GLfloat * val
Definition: glew.h:2691
itk::ModifiedTimeType m_ImageModifiedTime
Definition: niftkVLUtils.h:182
Definition: ReceptorMemberCommandTest.cxx:25
Definition: niftkVLUtils.h:177
GLint GLenum GLsizei GLint GLsizei const GLvoid * data
Definition: glew.h:1363
Definition: niftkVLUtils.h:57
itkFactorylessNewMacro(Self) protected
Definition: niftkVLUtils.h:104
itkFactorylessNewMacro(Self) protected
Definition: niftkVLUtils.h:74
GLenum GLenum GLuint components
Definition: glew.h:10201
Definition: niftkVLUtils.h:129
itkFactorylessNewMacro(Self) protected
Definition: niftkVLUtils.h:118
itkFactorylessNewMacro(Self) protected
Definition: niftkVLUtils.h:133
VLUserData()
Definition: niftkVLUtils.h:180
Definition: niftkVLUtils.h:185
GLint GLint GLint GLint GLint GLint GLsizei GLsizei height
Definition: glew.h:1236
Definition: niftkVLUtils.h:85
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
Definition: niftkVLUtils.h:145
GLint GLint GLint GLint GLint GLint GLsizei width
Definition: glew.h:1236
Definition: niftkVLUtils.h:70
Definition: niftkExceptionObject.h:21
GLsizei const GLcharARB ** string
Definition: glew.h:5194
Definition: niftkVLUtils.h:114