Open Inventor Release 2024.1.2
 
Loading...
Searching...
No Matches
SoVolumeSkin.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-2024 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : P. ESTRADE (Mar 2000)
22**=======================================================================*/
23#ifndef _SO_VOLUME_SKIN_
24#define _SO_VOLUME_SKIN_
25
26#include <Inventor/nodes/SoShape.h>
27#include <Inventor/fields/SoSFBool.h>
28#include <Inventor/fields/SoSFEnum.h>
29#include <Inventor/fields/SoSFFloat.h>
30#include <Inventor/fields/SoSFVec3f.h>
31#include <Inventor/fields/SoSFInt32.h>
32#include <Inventor/SbBox.h>
33
34#include <VolumeViz/nodes/SoSlice.h>
35
36class SoVertexShader;
37class SoVolumeSkinLdm;
38class SoVolumeSkinInterface;
39class SoVolumeStateSkin;
41
394class SoVolumeSkin : public SoSlice
395{
396 SO_NODE_HEADER( SoVolumeSkin );
397
398public:
399
412
417
430
440
441private:
442
450 virtual SoNode* getAlternateRep( SoAction* action );
451
453 virtual void GLRender(SoGLRenderAction* action);
454
458 void computeBBox(SoAction *, SbBox3f &box, SbVec3f &center);
459
460private:
464 static void initClass();
468 static void exitClass();
469
475 virtual SoNode* createAlternateRep( SoAction *action );
476
480 virtual void notify(SoNotList *list);
481
485 virtual bool intersect( SoLDMNodeFrontManager* nfm, const SoLDMTileID& tileId );
486
487private:
491 bool setupRenderInterface(SoAction* action);
492
494 SoVolumeSkinLdm* m_volSkinLdm;
495
497 SoVolumeSkinInterface* m_volSkinInterface;
498
499private:
503 virtual ~SoVolumeSkin();
504
508 virtual void doRendering(SoGLRenderAction *action);
509
513 void generatePrimitives(SoAction *action);
514
520 SoDetail *createTriangleDetail(SoRayPickAction *,
521 const SoPrimitiveVertex *v1,
522 const SoPrimitiveVertex *,
523 const SoPrimitiveVertex *,
524 SoPickedPoint *);
525
526 SoVolumeStateSkin* m_vs;
527
528 friend class SoVolumeSkinLdm;
529};
530#endif // _SO_VOLUME_SKIN_
531
532
3D box class.
Definition SbBox.h:649
3D vector class.
Definition SbVec.h:932
Abstract base class for all actions.
Definition SoAction.h:132
Base class for describing detail information about a shape node.
Definition SoDetail.h:99
Renders a scene graph using Open Inventor's Render Engine.
Computes bounding box of a scene.
<a href="IconLegend.html"><img src="extLDM.gif" alt="Large Data Management" border="0"></a> Tile ID
Definition SoLDMTileID.h:63
Abstract base class for all database nodes.
Definition SoNode.h:145
Represents point on surface of picked object.
Represents a vertex of a generated primitive.
Intersects objects with a ray cast into scene.
Field containing an enumerated value.
Definition SoSFEnum.h:89
Field containing a int32_t integer.
Definition SoSFInt32.h:80
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Abstract base class f...
Definition SoSlice.h:62
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Node that define...
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Draws a data volume s...
SoSFInt32 dataSetId
Specifies the SoVolumeData node to use.
friend class SoVolumeSkinLdm
SoVolumeSkin()
Constructor.
SoSFEnum faceMode
Display front (facing the camera) faces or back faces.
FaceMode
Use this enum with the faceMode field.
@ FRONT
Display only front faces.
@ FRONT_AND_BACK
Display front and back faces.
@ BACK
Display only back faces.