Open Inventor Release 2024.2.0
 
Loading...
Searching...
No Matches
SoVolumeIsosurface.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 : Benjamin GRANGE (Aug 2005)
22**=======================================================================*/
23
24
25#ifndef _SO_ISOSURFACE_H_
26#define _SO_ISOSURFACE_H_
27
28
29#include <Inventor/SbBasic.h>
30#include <Inventor/caches/SoNodeDependencies.h>
31#include <Inventor/nodes/SoNode.h>
32#include <Inventor/nodes/SoSubNode.h>
33#include <Inventor/fields/SoMFNode.h>
34#include <VolumeViz/nodes/SoVolumeData.h>
35#include <VolumeViz/nodes/SoVolumeShader.h>
36
37
38/*----------------------------------------------------------------------------*/
39class SoMaterial;
40class SoDataRange;
41class SoIsosurfaceTexture;
42class SoMaterial;
44
126
127 SO_NODE_HEADER(SoVolumeIsosurface);
128
129public:
134
139
140#ifndef HIDDEN_FROM_DOC
141private:
142 virtual void notify(SoNotList* list);
143
144 virtual void GLRender(SoGLRenderAction *action);
145
146 // Initializes the classes.
147 static void initClass() ;
148 static void exitClass() ;
149
151 virtual void installTextures(SoGLRenderAction* action);
152
154 bool isFakeDrawStyleOnState(SoState* state) const;
155
157 virtual void allocateTextureUnit(SoGLRenderAction *action) const;
158
159private:
160 virtual void rayPick(SoRayPickAction *action);
161
162private:
163 virtual ~SoVolumeIsosurface();
164
166 virtual SoShaderProgram* generateShadowShader() const;
167
173 virtual SbString getRenderingModeFragmentName(SoState* state);
174
175#endif // HIDDEN_FROM_DOC
176
177private:
181 void handleVolumeRenderingQuality(SoState* state);
182
184 void updateShadowShaderIsoValue();
185
187 SoVolumeDataDrawStyle* m_volumeDataDrawStyle;
188
189 bool m_needUpdate;
190};
191/*----------------------------------------------------------------------------*/
192
193#endif /*_SO_ISOSURFACE_H_*/
194
195
Class for smart character strings.
Definition SbString.h:202
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Range of...
Renders a scene graph using Open Inventor's Render Engine.
Multiple-value field containing any number of floating point values.
Definition SoMFFloat.h:90
Surface material definition node.
Definition SoMaterial.h:173
Intersects objects with a ray cast into scene.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Shader program p...
Traversal state.
Definition SoState.h:74
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Volume draw style.
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Isosurface property n...
SoMFFloat isovalues
Specifies the list of isovalues to display.
SoVolumeIsosurface()
Constructor.
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Shader node for volum...