Open Inventor Release 2023.2.3
 
Loading...
Searching...
No Matches
SoVolumeSkin.h
Go to the documentation of this file.
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-2023 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
32#include <Inventor/SbBox.h>
33
35
36class SoVertexShader;
37class SoVolumeSkinLdm;
38class SoVolumeSkinInterface;
39class SoVolumeStateSkin;
41
411class SoVolumeSkin : public SoSlice
412{
414
415public:
416
429
434
447
457
458private:
459
467 virtual SoNode* getAlternateRep( SoAction* action );
468
470 virtual void GLRender(SoGLRenderAction* action);
471
475 void computeBBox(SoAction *, SbBox3f &box, SbVec3f &center);
476
477private:
481 static void initClass();
485 static void exitClass();
486
492 virtual SoNode* createAlternateRep( SoAction *action );
493
497 virtual void notify(SoNotList *list);
498
502 virtual bool intersect( SoLDMNodeFrontManager* nfm, const SoLDMTileID& tileId );
503
504private:
508 bool setupRenderInterface(SoAction* action);
509
511 SoVolumeSkinLdm* m_volSkinLdm;
512
514 SoVolumeSkinInterface* m_volSkinInterface;
515
516private:
520 virtual ~SoVolumeSkin();
521
525 virtual void doRendering(SoGLRenderAction *action);
526
530 void generatePrimitives(SoAction *action);
531
537 SoDetail *createTriangleDetail(SoRayPickAction *,
538 const SoPrimitiveVertex *v1,
539 const SoPrimitiveVertex *,
540 const SoPrimitiveVertex *,
541 SoPickedPoint *);
542
543 SoVolumeStateSkin* m_vs;
544
545 friend class SoVolumeSkinLdm;
546};
547#endif // _SO_VOLUME_SKIN_
548
549
#define SO_NODE_HEADER(className)
Definition SoSubNode.h:151
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.