Open Inventor Release 2024.2.2
 
Loading...
Searching...
No Matches
SoHeightFieldRender.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 : Julien SALLANNE (Dec 2012)
22**=======================================================================*/
23
24#ifndef _SO_HEIGHTFIELD_RENDER_H
25#define _SO_HEIGHTFIELD_RENDER_H
26
27#ifdef _WIN32
28#pragma warning( push )
29#pragma warning(disable:4251)
30#endif
31
32#include <Inventor/SbBox.h>
33#include <VolumeViz/nodes/SoSlice.h>
34#include <Inventor/fields/SoSFColor.h>
35
38class SoHeightFieldRenderImpl;
39class SoVolumeStateHeightField;
40
450{
451 SO_NODE_HEADER( SoHeightFieldRender );
452
453public:
454
459
467
475
478 {
481
484
486 NONE
487 };
488
496
501
507 static SbBool isSupported(SoState* state=NULL);
508
509private:
510
512 virtual void computeBBox(SoAction *, SbBox3f &box, SbVec3f &center);
513
516 virtual void rayPick(SoRayPickAction* action);
517
519 virtual void getBoundingBox(SoGetBoundingBoxAction *action);
520
521private:
522 static void initClass();
523 static void exitClass();
524
528 virtual void notify(SoNotList *list);
529
533 SoVolumeStateHeightField* getVolumeStateHeightField() const;
534
535private:
537 virtual void generatePrimitives(SoAction *action);
538
540 virtual void doRendering(SoGLRenderAction *action);
541
544 virtual SbBool shouldGLRender(SoGLRenderAction* action, SbBool isPointOrLine = FALSE);
545
547 virtual ~SoHeightFieldRender();
548
549SoINTERNAL private:
550
552 virtual void ldmAction( SoLdmValuationAction* action );
553
554private:
558 virtual SoDetail* createTriangleDetail( SoRayPickAction* action,
559 const SoPrimitiveVertex* v0,
560 const SoPrimitiveVertex* v1,
561 const SoPrimitiveVertex* v2,
562 SoPickedPoint* pp );
563
564private:
565
566#if 1 SoDEPRECATED enum
569 NormalPrecision
570 {
572 NORMAL,
573
575 HIGH
576 };
577SoDEPRECATED
579 SoSFEnum normalPrecision;
580#endif
587 SoHeightFieldRenderImpl* getImpl( SoState* state );
588 SoHeightFieldRenderImpl* m_heightFieldRenderImpl;
589
592 SoVolumeStateHeightField* m_volumeStateHeightField;
593
595};
596
597#ifdef _WIN32
598#pragma warning( pop )
599#endif
600#endif // _SO_HEIGHTFIELD_RENDER_H
601
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="extVR.gif" alt="VolumeViz" border="0"></a> Height field data nod...
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Height field property...
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Heightfield rendering...
SoSFEnum boundaryCells
Boundary cells mode.
SoSFFloat cellOutlineWidth
When cellOutline is TRUE, this value specifies the cell outline width in pixels.
friend class SoVolumeStateHeightField
SoSFColor cellOutlineColor
When cellOutline is TRUE, this value specifies the cell outline color.
static SbBool isSupported(SoState *state=NULL)
Returns true if graphic card can render an SoHeightFieldRender.
SoSFBool cellOutline
If true, draw outline of each heightField cell (default is false).
BoundaryCells
Boundary cells mode.
@ SMART
Computes boundary cells according to the distance to the view.
@ ALWAYS
Always compute boundary cells.
@ NONE
Never computes boundary cells.
SoHeightFieldRender()
Constructor.
friend class SoLdmValuationAction
Definition SoLdmShape.h:84
Represents point on surface of picked object.
Represents a vertex of a generated primitive.
Intersects objects with a ray cast into scene.
Field containing a single Boolean value.
Definition SoSFBool.h:79
Field containing an RGB color.
Definition SoSFColor.h:82
Field containing an enumerated value.
Definition SoSFEnum.h:89
Field containing a floating-point value.
Definition SoSFFloat.h:78
<a href="IconLegend.html"><img src="extVR.gif" alt="VolumeViz" border="0"></a> Abstract base class f...
Definition SoSlice.h:62
Traversal state.
Definition SoState.h:74
int SbBool
Boolean type.
Definition SbBase.h:87