Open Inventor Release 2024.2.1
 
Loading...
Searching...
No Matches
SoVolumeDataDrawStyle.h
1/*=======================================================================
2 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
3 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
4 *** ***
5 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
6 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
7 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
8 *** ***
9 *** RESTRICTED RIGHTS LEGEND ***
10 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
11 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
12 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
13 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
14 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
15 *** ***
16 *** COPYRIGHT (C) 1996-2022 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : VSG (MMM YYYY)
22**=======================================================================*/
23#ifndef SOVOLUMEDATADRAWSTYLE_H
24#define SOVOLUMEDATADRAWSTYLE_H
25
26#include <Inventor/nodes/SoNode.h>
27#include <Inventor/fields/SoMFFloat.h>
28#include <Inventor/fields/SoSFVec4f.h>
29#include <Inventor/fields/SoMFVec4f.h>
30#include <Inventor/fields/SoSFBitMask.h>
31#include <Inventor/fields/SoSFBool.h>
32#include <Inventor/fields/SoSFMaterial.h>
33
34#include <LDM/SoLDM.h>
35
36#ifdef _WIN32
37#pragma warning( push )
38#pragma warning(disable:4251)
39#endif
40
99{
100 SO_NODE_HEADER(SoVolumeDataDrawStyle);
101public:
106
107#ifndef HIDDEN_FROM_DOC
108 //WARNING: This enum must stay in sync with defines from shaders source
109#endif
117 NONE = 0,
126
133 ISOSURFACE = 1 << 2
134 };
135
151
156
161
167
168private:
169 virtual void doAction(SoAction *action);
170 virtual void GLRender(SoGLRenderAction *action);
171 virtual void callback(SoCallbackAction *action);
172 virtual void pick(SoPickAction *action);
173
174private:
175 typedef std::map<SoLDM::DataSetIdPair, SoVolumeDataDrawStyle::DrawStyle> MaskDrawStyleValueMap;
176 typedef std::vector<float> IsovalueVec;
177 typedef std::map<SoLDM::DataSetIdPair, IsovalueVec> IsovalueMap;
178
179 static void initClass();
180 static void exitClass();
181
183 static void ldmAction(SoAction *action, SoNode* node);
184
186 static const SoLDM::DataSetIdPair S_INTERSECTION_KEY;
187
188private:
190};
191
192#ifdef _WIN32
193#pragma warning( pop )
194#endif
195
196#endif
197
198
Abstract base class for all actions.
Definition SoAction.h:132
Performs a generic traversal of a scene graph or path.
Renders a scene graph using Open Inventor's Render Engine.
Multiple-value field containing any number of floating point values.
Definition SoMFFloat.h:90
Abstract base class for all database nodes.
Definition SoNode.h:145
Abstract base class for picking objects in a scene.
Single-value field containing a set of bit flags.
Field containing an SoMaterial node.
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Volume draw style.
SoMFFloat isovalues
Values of isosurfaces to display.
SoSFBitMask style
Set the draw style used for a volume or mask: Use enum DrawStyle.
SoVolumeDataDrawStyle()
Creates a volume draw style node with default settings.
DrawStyle
Volume rendering style.
@ VOLUME_RENDER
Display the volume mask using the associated transfer function.
@ ISOSURFACE
Display isosurfaces using isovalues and isosurfacesMaterial.
@ MASK_BOUNDARY
Display only the mask boundary, using boundaryMaterial.
SoSFMaterial boundaryMaterial
Material used to render the mask boundary.
SoSFMaterial isosurfacesMaterial
Material used to render isosurfaces.
std::pair< SoDataSet *, int > DataSetIdPair
Pair containing an SoDataset and its dataSetId.
Definition SoLDM.h:71