NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
niftkVLMapper.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef niftkVLMapper_h
16 #define niftkVLMapper_h
17 
18 #include <niftkVLExports.h>
19 #include <niftkVLUtils.h>
20 
21 #include <vlCore/Vector3.hpp>
22 #include <vlCore/Vector4.hpp>
23 #include <vlCore/vlnamespace.hpp>
24 #include <vlGraphics/Texture.hpp>
25 #include <vlVivid/VividRendering.hpp>
26 
27 #include <mitkDataNode.h>
28 #include <mitkBaseData.h>
29 
30 #ifdef _USE_CUDA
31  #include <niftkCUDAManager.h>
32  #include <niftkCUDAImage.h>
34  #include <niftkCUDAImageProperty.h>
35  #include <niftkFlipImageLauncher.h>
36  #include <cuda_gl_interop.h>
37 #endif
38 
39 #define VL_CUDA_STREAM_NAME "VL-CUDA-STREAM"
40 
41 namespace mitk
42 {
43 class DataStorage;
44 class PointSet;
45 class Surface;
46 }
47 
48 namespace niftk
49 {
50 
51 class CoordinateAxesData;
52 class PCLData;
53 class VLSceneView;
54 
65 class NIFTKVL_EXPORT VLMapper : public vl::Object
66 {
67 public:
68  VLMapper(const mitk::DataNode* node, VLSceneView* sv);
69 
73  virtual ~VLMapper() { VIVID_CHECK( ! m_Actor ); }
74 
78  static vl::ref<VLMapper> create(const mitk::DataNode* node, VLSceneView*);
79 
83  virtual bool init() = 0;
84 
88  virtual void update() = 0;
89 
93  virtual void remove() {
94  m_VividRendering->sceneManager()->tree()->eraseActor(m_Actor.get());
95  m_Actor = 0;
96  }
97 
102  void updateCommon();
103 
108  vl::Actor* actor() { return m_Actor.get(); }
109  const vl::Actor* actor() const { return m_Actor.get(); }
110 
111  //--------------------------------------------------------------------------------
112 
120  void setDataNodeVividUpdateEnabled( bool enable ) { m_DataNodeVividUpdateEnabled = enable; }
121  bool isDataNodeVividUpdateEnabled() const { return m_DataNodeVividUpdateEnabled; }
122 
123  //--------------------------------------------------------------------------------
124  // User managed Vivid API to be used when isDataNodeVividUpdateEnabled() == false
125  //--------------------------------------------------------------------------------
126 
127  // -- At the moment this only applies to VLMapperSurface, VLMapper2DImage, VLMapperCUDAImage ---
128 
129  // -- Rendering Mode --
130 
144  void setRenderingMode(vl::Vivid::ERenderingMode mode) {
145  actor()->effect()->shader()->getUniform("vl_Vivid.renderMode")->setUniformI( mode );
146  }
147  vl::Vivid::ERenderingMode renderingMode() const {
148  return (vl::Vivid::ERenderingMode)actor()->effect()->shader()->getUniform("vl_Vivid.renderMode")->getUniformI();
149  }
150 
151  // --- Outline properties of both the 2D and 3D outlines ---
152 
156  void setOutlineColor(const vl::vec4& color ) {
157  actor()->effect()->shader()->getUniform("vl_Vivid.outline.color")->setUniform( color );
158  }
159  vl::vec4 outlineColor() const {
160  return actor()->effect()->shader()->getUniform("vl_Vivid.outline.color")->getUniform4F();
161  }
162 
166  void setOutlineWidth( float width ) {
167  actor()->effect()->shader()->getUniform("vl_Vivid.outline.width")->setUniformF( width );
168  }
169  float outlineWidth() const {
170  return actor()->effect()->shader()->getUniform("vl_Vivid.outline.width")->getUniformF();
171  }
172 
176  void setOutlineSlicePlane( const vl::vec4& plane ) {
177  actor()->effect()->shader()->getUniform("vl_Vivid.outline.slicePlane")->setUniform( plane );
178  }
179  vl::vec4 outlineSlicePlane() const {
180  return actor()->effect()->shader()->getUniform("vl_Vivid.outline.slicePlane")->getUniform4F();
181  }
182 
183  // --- Stencil ---
184 
188  void setIsStencil( bool is_stencil ) {
189  VIVID_CHECK( actor() );
190  std::vector< vl::ref<vl::Actor> >::iterator it = std::find( m_VividRendering->stencilActors().begin(), m_VividRendering->stencilActors().end(), actor() );
191  if ( ! is_stencil && it != m_VividRendering->stencilActors().end() ) {
192  m_VividRendering->stencilActors().erase( it );
193  } else
194  if ( is_stencil && it == m_VividRendering->stencilActors().end() ) {
195  m_VividRendering->stencilActors().push_back( m_Actor );
196  }
197  }
198  bool isStencil() const {
199  return std::find( m_VividRendering->stencilActors().begin(), m_VividRendering->stencilActors().end(), actor() ) != m_VividRendering->stencilActors().end();
200  }
201 
202  // --- Lighting properties ---
203 
213  void setLightingEnabled( bool enable ) {
214  actor()->effect()->shader()->getUniform( "vl_Vivid.enableLighting" )->setUniformI( enable );
215  }
216  int isLightingEnabled() const {
217  return actor()->effect()->shader()->getUniform( "vl_Vivid.enableLighting" )->getUniformI();
218  }
219 
220  // --- Material and opacity properties (requires isLightingEnabled() == true) ---
221 
225  void setMaterialDiffuseRGBA(const vl::vec4& rgba) {
226  actor()->effect()->shader()->getMaterial()->setFrontDiffuse( rgba );
227  }
228  const vl::vec4& materialDiffuseRGBA() const {
229  return actor()->effect()->shader()->getMaterial()->frontDiffuse();
230  }
231 
235  void setMaterialSpecularColor(const vl::vec4& color ) {
236  actor()->effect()->shader()->getMaterial()->setFrontSpecular( color );
237  }
238  const vl::vec4& materialSpecularColor() const {
239  return actor()->effect()->shader()->getMaterial()->frontSpecular();
240  }
241 
245  void setMaterialSpecularShininess( float shininess ) {
246  actor()->effect()->shader()->getMaterial()->setFrontShininess( shininess );
247  }
249  return actor()->effect()->shader()->getMaterial()->frontShininess();
250  }
251 
252  // --- Texturing and Point Sprites ---
253  // At the moment we only support one 2D texture. 1D and 3D texture support is experimental.
254 
259  actor()->effect()->shader()->getUniform( "vl_Vivid.enableTextureMapping" )->setUniformI( enable );
260  }
261  bool isTextureMappingEnabled() const {
262  return actor()->effect()->shader()->getUniform( "vl_Vivid.enableTextureMapping" )->getUniformI();
263  }
264 
269  void setTexture( vl::Texture* tex ) {
270  actor()->effect()->shader()->gocTextureSampler( vl::Vivid::UserTexture )->setTexture( tex );
271  }
272  vl::Texture* texture() {
273  return actor()->effect()->shader()->getTextureSampler( vl::Vivid::UserTexture )->texture();
274  }
275  const vl::Texture* texture() const {
276  return actor()->effect()->shader()->getTextureSampler( vl::Vivid::UserTexture )->texture();
277  }
278 
285  actor()->effect()->shader()->getUniform( "vl_Vivid.enablePointSprite" )->setUniformI( enable );
286  }
287  bool isPointSpriteEnabled() const {
288  return actor()->effect()->shader()->getUniform( "vl_Vivid.enablePointSprite" )->getUniformI();
289  }
290 
294  vl::PointSize* pointSize() { return actor()->effect()->shader()->getPointSize(); }
295  const vl::PointSize* pointSize() const { return actor()->effect()->shader()->getPointSize(); }
296 
297  // --- PolygonMode ---
298 
302  vl::PolygonMode* polygonMode() { return actor()->effect()->shader()->getPolygonMode(); }
303  const vl::PolygonMode* polygonMode() const { return actor()->effect()->shader()->getPolygonMode(); }
304 
305  // --- "Smart" Fogging ---
306 
312  void setFogMode( vl::Vivid::EFogMode mode ) {
313  actor()->effect()->shader()->getUniform("vl_Vivid.smartFog.mode")->setUniformI( mode );
314  }
315  vl::Vivid::EFogMode fogMode() const {
316  return (vl::Vivid::EFogMode)actor()->effect()->shader()->getUniform("vl_Vivid.smartFog.mode")->getUniformI();
317  }
318 
322  void setFogTarget( vl::Vivid::ESmartTarget target ) {
323  actor()->effect()->shader()->getUniform("vl_Vivid.smartFog.target")->setUniformI( target );
324  }
325  vl::Vivid::ESmartTarget fogTarget() const {
326  return (vl::Vivid::ESmartTarget)actor()->effect()->shader()->getUniform("vl_Vivid.smartFog.target")->getUniformI();
327  }
328 
332  void setFogColor( const vl::vec4& color ) {
333  actor()->effect()->shader()->gocFog()->setColor( color );
334  }
335  const vl::vec4& fogColor() const {
336  return actor()->effect()->shader()->getFog()->color();
337  }
338 
342  void setFogStart( float start ) {
343  actor()->effect()->shader()->gocFog()->setStart( start );
344  }
345  float fogStart() const {
346  return actor()->effect()->shader()->getFog()->start();
347  }
348 
352  void setFogEnd( float end ) {
353  actor()->effect()->shader()->gocFog()->setEnd( end );
354  }
355  float fogEnd() const {
356  return actor()->effect()->shader()->getFog()->end();
357  }
358 
362  void setFogDensity( float density ) {
363  actor()->effect()->shader()->gocFog()->setDensity( density );
364  }
365  float fogDensity() const {
366  return actor()->effect()->shader()->getFog()->density();
367  }
368 
369  // --- "Smart" Clipping ---
370 
371  #define VL_SMARTCLIP(var) (std::string("vl_Vivid.smartClip[") + (char)('0' + i) + "]." + var).c_str()
372 
384  void setClipMode( int i, vl::Vivid::EClipMode mode ) {
385  actor()->effect()->shader()->getUniform(VL_SMARTCLIP("mode"))->setUniformI( mode );
386  }
387  vl::Vivid::EClipMode clipMode( int i ) const {
388  return (vl::Vivid::EClipMode)actor()->effect()->shader()->getUniform(VL_SMARTCLIP("mode"))->getUniformI();
389  }
390 
394  void setClipTarget( int i, vl::Vivid::ESmartTarget target ) {
395  actor()->effect()->shader()->getUniform(VL_SMARTCLIP("target"))->setUniformI( target );
396  }
397  vl::Vivid::ESmartTarget clipTarget( int i ) const {
398  return (vl::Vivid::ESmartTarget)actor()->effect()->shader()->getUniform(VL_SMARTCLIP("target"))->getUniformI();
399  }
400 
404  void setClipFadeRange( int i, float fadeRange ) {
405  actor()->effect()->shader()->getUniform(VL_SMARTCLIP("fadeRange"))->setUniformF( fadeRange );
406  }
407  float clipFadeRange( int i ) const {
408  return actor()->effect()->shader()->getUniform(VL_SMARTCLIP("fadeRange"))->getUniformF();
409  }
410 
414  void setClipColor( int i, const vl::vec4& color ) {
415  actor()->effect()->shader()->getUniform(VL_SMARTCLIP("color"))->setUniform( color );
416  }
417  vl::vec4 clipColor( int i ) const {
418  return actor()->effect()->shader()->getUniform(VL_SMARTCLIP("color"))->getUniform4F();
419  }
420 
424  void setClipPlane( int i, const vl::vec4& plane ) {
425  actor()->effect()->shader()->getUniform(VL_SMARTCLIP("plane"))->setUniform( plane );
426  }
427  vl::vec4 clipPlane( int i ) const {
428  return actor()->effect()->shader()->getUniform(VL_SMARTCLIP("plane"))->getUniform4F();
429  }
430 
434  void setClipSphere( int i, const vl::vec4& sphere ) {
435  actor()->effect()->shader()->getUniform(VL_SMARTCLIP("sphere"))->setUniform( sphere );
436  }
437  vl::vec4 clipSphere( int i ) const {
438  return actor()->effect()->shader()->getUniform(VL_SMARTCLIP("sphere"))->getUniform4F();
439  }
440 
444  void setClipBoxMin( int i, const vl::vec3& boxMin ) {
445  actor()->effect()->shader()->getUniform(VL_SMARTCLIP("boxMin"))->setUniform( boxMin );
446  }
447  vl::vec3 clipBoxMin( int i ) const {
448  return actor()->effect()->shader()->getUniform(VL_SMARTCLIP("boxMin"))->getUniform3F();
449  }
450 
454  void setClipBoxMax( int i, const vl::vec3& boxMax ) {
455  actor()->effect()->shader()->getUniform(VL_SMARTCLIP("boxMax"))->setUniform( boxMax );
456  }
457  vl::vec3 clipBoxMax( int i ) const {
458  return actor()->effect()->shader()->getUniform(VL_SMARTCLIP("boxMax"))->getUniform3F();
459  }
460 
464  void setClipReverse( int i, bool reverse ) {
465  actor()->effect()->shader()->getUniform(VL_SMARTCLIP("reverse"))->setUniformI( reverse );
466  }
467  bool clipReverse( int i ) const {
468  return actor()->effect()->shader()->getUniform(VL_SMARTCLIP("reverse"))->getUniformI();
469  }
470 
471  #undef VL_SMARTCLIP
472 
473 protected:
474  // Initialize an Actor to be used with the Vivid renderer
475  vl::ref<vl::Actor> initActor(vl::Geometry* geom, vl::Effect* fx = NULL, vl::Transform* tr = NULL);
476 
477 protected:
478  vl::OpenGLContext* m_OpenGLContext;
479  vl::VividRendering* m_VividRendering;
480  mitk::DataStorage* m_DataStorage;
482  const mitk::DataNode* m_DataNode;
483  vl::ref<vl::Actor> m_Actor;
485 };
486 
487 //-----------------------------------------------------------------------------
488 
489 class NIFTKVL_EXPORT VLMapperVLGlobalSettings: public VLMapper
490 {
491 public:
492  VLMapperVLGlobalSettings( const mitk::DataNode* node, VLSceneView* sv );
493 
494  virtual bool init();
495 
496  virtual void update();
497 
498  virtual void updateVLGlobalSettings();
499 };
500 
501 //-----------------------------------------------------------------------------
502 
503 class NIFTKVL_EXPORT VLMapperSurface: public VLMapper
504 {
505 public:
506  VLMapperSurface( const mitk::DataNode* node, VLSceneView* sv );
507 
508  virtual bool init();
509 
510  virtual void update();
511 
512 protected:
513  const mitk::Surface* m_MitkSurf;
514 };
515 
516 //-----------------------------------------------------------------------------
517 
518 class NIFTKVL_EXPORT VLMapper2DImage: public VLMapper
519 {
520 public:
521  VLMapper2DImage( const mitk::DataNode* node, VLSceneView* sv );
522 
523  virtual bool init();
524 
525  virtual void update();
526 
528  vl::ArrayFloat3* vertexArray() { return m_VertexArray.get(); }
529  const vl::ArrayFloat3* vertexArray() const { return m_VertexArray.get(); }
530 
532  vl::ArrayFloat3* texCoordarray() { return m_TexCoordArray.get(); }
533  const vl::ArrayFloat3* texCoordarray() const { return m_TexCoordArray.get(); }
534 
535 protected:
536  mitk::Image* m_MitkImage;
537  vl::ref<vl::ArrayFloat3> m_VertexArray;
538  vl::ref<vl::ArrayFloat3> m_TexCoordArray;
539 };
540 
541 //-----------------------------------------------------------------------------
542 
543 class NIFTKVL_EXPORT VLMapper3DImage: public VLMapper {
544 public:
545  VLMapper3DImage( const mitk::DataNode* node, VLSceneView* sv );
546 
547  virtual bool init();
548 
549  virtual void update();
550 
551 protected:
552  const mitk::Image* m_MitkImage;
553  vl::ref<vl::VividVolume> m_VividVolume;
554 };
555 
556 //-----------------------------------------------------------------------------
557 
558 class NIFTKVL_EXPORT VLMapperCoordinateAxes: public VLMapper {
559 public:
560  VLMapperCoordinateAxes( const mitk::DataNode* node, VLSceneView* sv );
561 
562  virtual bool init();
563 
564  virtual void update();
565 
566 protected:
568  vl::ref<vl::ArrayFloat3> m_Vertices;
569 };
570 
571 //-----------------------------------------------------------------------------
572 
573 class NIFTKVL_EXPORT VLMapperPoints: public VLMapper {
574 public:
575  VLMapperPoints( const mitk::DataNode* node, VLSceneView* sv );
576 
577  virtual void updatePoints( const vl::vec4& color ) = 0 ;
578 
579  void initPointSetProps();
580 
581  virtual bool init();
582 
583  virtual void update();
584 
585  void remove();
586 
587 protected:
588  void init3D();
589  void init2D();
590 
591 protected:
593  vl::ref<vl::ActorTree> m_SphereActors;
594  vl::ref<vl::Geometry> m_3DSphereGeom;
595  vl::ref<vl::Effect> m_Point2DFX;
596  vl::ref<vl::Geometry> m_2DGeometry;
597  vl::ref<vl::ArrayFloat3> m_PositionArray;
598  vl::ref<vl::ArrayFloat4> m_ColorArray;
599  vl::ref<vl::DrawArrays> m_DrawPoints;
600 };
601 
602 //-----------------------------------------------------------------------------
603 
604 class NIFTKVL_EXPORT VLMapperPointSet: public VLMapperPoints
605 {
606 public:
607  VLMapperPointSet( const mitk::DataNode* node, VLSceneView* sv );
608 
609  virtual void updatePoints( const vl::vec4& color );
610 
611 protected:
612  const mitk::PointSet* m_MitkPointSet;
613 };
614 
615 //-----------------------------------------------------------------------------
616 
617 #ifdef _USE_PCL
618 
619 class NIFTKVL_EXPORT VLMapperPCL: public VLMapperPoints
620 {
621 public:
622  VLMapperPCL( const mitk::DataNode* node, VLSceneView* sv );
623 
624  virtual void updatePoints( const vl::vec4& /*color*/ );
625 
626 protected:
627  const niftk::PCLData* m_NiftkPCL;
628 };
629 
630 #endif
631 
632 //-----------------------------------------------------------------------------
633 
634 #ifdef _USE_CUDA
635 
636 class NIFTKVL_EXPORT VLMapperCUDAImage: public VLMapper
637 {
638 public:
639  VLMapperCUDAImage( const mitk::DataNode* node, VLSceneView* sv );
640 
641  niftk::LightweightCUDAImage getLWCI();
642 
643  virtual bool init();
644 
645  virtual void update();
646 
647  virtual void remove();
648 
649 protected:
650  cudaGraphicsResource_t m_CudaResource;
651  vl::ref<vl::Texture> m_Texture;
652 };
653 
654 #endif
655 
656 }
657 
658 #endif
void setMaterialSpecularColor(const vl::vec4 &color)
Definition: niftkVLMapper.h:235
void setOutlineSlicePlane(const vl::vec4 &plane)
Definition: niftkVLMapper.h:176
GLboolean enable
Definition: glew.h:2642
Definition: niftkVLMapper.h:573
vl::vec4 outlineColor() const
Definition: niftkVLMapper.h:159
void setFogStart(float start)
Definition: niftkVLMapper.h:342
vl::ref< vl::ArrayFloat3 > m_VertexArray
Definition: niftkVLMapper.h:537
const CoordinateAxesData * m_MitkAxes
Definition: niftkVLMapper.h:567
void setRenderingMode(vl::Vivid::ERenderingMode mode)
Definition: niftkVLMapper.h:144
float fogDensity() const
Definition: niftkVLMapper.h:365
bool isDataNodeVividUpdateEnabled() const
Definition: niftkVLMapper.h:121
void setClipMode(int i, vl::Vivid::EClipMode mode)
Definition: niftkVLMapper.h:384
bool m_3DSphereMode
Definition: niftkVLMapper.h:592
const vl::Texture * texture() const
Definition: niftkVLMapper.h:275
vl::vec4 clipSphere(int i) const
Definition: niftkVLMapper.h:437
mitk::Image * m_MitkImage
Definition: niftkVLMapper.h:536
void setClipSphere(int i, const vl::vec4 &sphere)
Definition: niftkVLMapper.h:434
Definition: niftkVLMapper.h:489
void setLightingEnabled(bool enable)
Definition: niftkVLMapper.h:213
#define VIVID_CHECK(expr)
Definition: niftkVLUtils.h:40
vl::ref< vl::Geometry > m_3DSphereGeom
Definition: niftkVLMapper.h:594
vl::ref< vl::ArrayFloat3 > m_Vertices
Definition: niftkVLMapper.h:568
float fogEnd() const
Definition: niftkVLMapper.h:355
const vl::PolygonMode * polygonMode() const
Definition: niftkVLMapper.h:303
Definition: ReceptorMemberCommandTest.cxx:25
vl::vec3 clipBoxMin(int i) const
Definition: niftkVLMapper.h:447
void setFogTarget(vl::Vivid::ESmartTarget target)
Definition: niftkVLMapper.h:322
mitk::DataStorage * m_DataStorage
Definition: niftkVLMapper.h:480
GLenum mode
Definition: glew.h:2404
vl::ArrayFloat3 * texCoordarray()
This texture coordinates array contains 4 3D texture coordinates one for each plane corner...
Definition: niftkVLMapper.h:532
vl::OpenGLContext * m_OpenGLContext
Definition: niftkVLMapper.h:478
void setFogColor(const vl::vec4 &color)
Definition: niftkVLMapper.h:332
vl::ref< vl::Geometry > m_2DGeometry
Definition: niftkVLMapper.h:596
vl::Vivid::ESmartTarget fogTarget() const
Definition: niftkVLMapper.h:325
vl::ref< vl::Effect > m_Point2DFX
Definition: niftkVLMapper.h:595
vl::vec3 clipBoxMax(int i) const
Definition: niftkVLMapper.h:457
void setMaterialDiffuseRGBA(const vl::vec4 &rgba)
Definition: niftkVLMapper.h:225
bool clipReverse(int i) const
Definition: niftkVLMapper.h:467
GLuint GLuint end
Definition: glew.h:1237
void setIsStencil(bool is_stencil)
Definition: niftkVLMapper.h:188
Definition: niftkVLMapper.h:518
bool isTextureMappingEnabled() const
Definition: niftkVLMapper.h:261
const vl::vec4 & fogColor() const
Definition: niftkVLMapper.h:335
A vl::UIEventListener bound to a QGLWidget (niftk::VLWidget) managing all VL/Vivid rendering and opti...
Definition: niftkVLSceneView.h:70
vl::ref< vl::ActorTree > m_SphereActors
Definition: niftkVLMapper.h:593
const vl::ArrayFloat3 * vertexArray() const
Definition: niftkVLMapper.h:529
void setClipBoxMin(int i, const vl::vec3 &boxMin)
Definition: niftkVLMapper.h:444
GLuint start
Definition: glew.h:1237
vl::vec4 clipColor(int i) const
Definition: niftkVLMapper.h:417
void setClipColor(int i, const vl::vec4 &color)
Definition: niftkVLMapper.h:414
bool isPointSpriteEnabled() const
Definition: niftkVLMapper.h:287
A VL representation of a mitk::DataNode for rendering purposes.
Definition: niftkVLMapper.h:65
float fogStart() const
Definition: niftkVLMapper.h:345
void setClipReverse(int i, bool reverse)
Definition: niftkVLMapper.h:464
vl::ref< vl::ArrayFloat3 > m_PositionArray
Definition: niftkVLMapper.h:597
void setFogDensity(float density)
Definition: niftkVLMapper.h:362
void setClipPlane(int i, const vl::vec4 &plane)
Definition: niftkVLMapper.h:424
int isLightingEnabled() const
Definition: niftkVLMapper.h:216
void setOutlineColor(const vl::vec4 &color)
Definition: niftkVLMapper.h:156
void setTextureMappingEnabled(bool enable)
Definition: niftkVLMapper.h:258
GLuint color
Definition: glew.h:6687
Class to enable the data to represent coordinate axes to be added as a mitk::BaseData to the mitk::Da...
Definition: niftkCoordinateAxesData.h:33
bool m_DataNodeVividUpdateEnabled
Definition: niftkVLMapper.h:484
float outlineWidth() const
Definition: niftkVLMapper.h:169
vl::Vivid::EFogMode fogMode() const
Definition: niftkVLMapper.h:315
bool isStencil() const
Definition: niftkVLMapper.h:198
#define VL_SMARTCLIP(var)
Definition: niftkVLMapper.h:371
Definition: niftkVLMapper.h:558
void setFogMode(vl::Vivid::EFogMode mode)
Definition: niftkVLMapper.h:312
const mitk::PointSet * m_MitkPointSet
Definition: niftkVLMapper.h:612
Definition: niftkPCLData.h:27
vl::PointSize * pointSize()
Definition: niftkVLMapper.h:294
Definition: niftkVLMapper.h:543
const vl::vec4 & materialSpecularColor() const
Definition: niftkVLMapper.h:238
vl::ref< vl::ArrayFloat3 > m_TexCoordArray
Definition: niftkVLMapper.h:538
void setDataNodeVividUpdateEnabled(bool enable)
Definition: niftkVLMapper.h:120
VLSceneView * m_VLSceneView
Definition: niftkVLMapper.h:481
void setFogEnd(float end)
Definition: niftkVLMapper.h:352
vl::ref< vl::VividVolume > m_VividVolume
Definition: niftkVLMapper.h:553
const mitk::DataNode * m_DataNode
Definition: niftkVLMapper.h:482
void setOutlineWidth(float width)
Definition: niftkVLMapper.h:166
vl::ArrayFloat3 * vertexArray()
This vertex array contains 4 points representing the plane.
Definition: niftkVLMapper.h:528
const mitk::Surface * m_MitkSurf
Definition: niftkVLMapper.h:513
float clipFadeRange(int i) const
Definition: niftkVLMapper.h:407
const vl::Actor * actor() const
Definition: niftkVLMapper.h:109
void setClipBoxMax(int i, const vl::vec3 &boxMax)
Definition: niftkVLMapper.h:454
const vl::ArrayFloat3 * texCoordarray() const
Definition: niftkVLMapper.h:533
vl::Texture * texture()
Definition: niftkVLMapper.h:272
vl::Vivid::EClipMode clipMode(int i) const
Definition: niftkVLMapper.h:387
vl::vec4 clipPlane(int i) const
Definition: niftkVLMapper.h:427
Definition: niftkVLMapper.h:604
Definition: niftkVLMapper.h:503
vl::ref< vl::DrawArrays > m_DrawPoints
Definition: niftkVLMapper.h:599
GLint GLint GLint GLint GLint GLint GLsizei width
Definition: glew.h:1236
vl::Actor * actor()
Definition: niftkVLMapper.h:108
void setPointSpriteEnabled(bool enable)
Definition: niftkVLMapper.h:284
vl::VividRendering * m_VividRendering
Definition: niftkVLMapper.h:479
vl::PolygonMode * polygonMode()
Definition: niftkVLMapper.h:302
vl::ref< vl::Actor > m_Actor
Definition: niftkVLMapper.h:483
void setTexture(vl::Texture *tex)
Definition: niftkVLMapper.h:269
vl::vec4 outlineSlicePlane() const
Definition: niftkVLMapper.h:179
Definition: niftkLightweightCUDAImage.h:33
const vl::vec4 & materialDiffuseRGBA() const
Definition: niftkVLMapper.h:228
vl::Vivid::ESmartTarget clipTarget(int i) const
Definition: niftkVLMapper.h:397
Definition: niftkExceptionObject.h:21
vl::Vivid::ERenderingMode renderingMode() const
Definition: niftkVLMapper.h:147
const mitk::Image * m_MitkImage
Definition: niftkVLMapper.h:552
vl::ref< vl::ArrayFloat4 > m_ColorArray
Definition: niftkVLMapper.h:598
void setClipFadeRange(int i, float fadeRange)
Definition: niftkVLMapper.h:404
float materialSpecularShininess() const
Definition: niftkVLMapper.h:248
const vl::PointSize * pointSize() const
Definition: niftkVLMapper.h:295
virtual ~VLMapper()
Definition: niftkVLMapper.h:73
GLenum target
Definition: glew.h:5584
void setClipTarget(int i, vl::Vivid::ESmartTarget target)
Definition: niftkVLMapper.h:394
void setMaterialSpecularShininess(float shininess)
Definition: niftkVLMapper.h:245