Open Inventor Release 2024.2.1
 
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
536 virtual unsigned int getSumOfMaxTextures2D(SoLDMNodeFrontManager* nfm);
537
538private:
540 virtual void generatePrimitives(SoAction *action);
541
543 virtual void doRendering(SoGLRenderAction *action);
544
547 virtual SbBool shouldGLRender(SoGLRenderAction* action, SbBool isPointOrLine = FALSE);
548
550 virtual ~SoHeightFieldRender();
551
552SoINTERNAL private:
553
555 virtual void ldmAction( SoLdmValuationAction* action );
556
557private:
561 virtual SoDetail* createTriangleDetail( SoRayPickAction* action,
562 const SoPrimitiveVertex* v0,
563 const SoPrimitiveVertex* v1,
564 const SoPrimitiveVertex* v2,
565 SoPickedPoint* pp );
566
567private:
568
569#if 1 SoDEPRECATED enum
572 NormalPrecision
573 {
575 NORMAL,
576
578 HIGH
579 };
580SoDEPRECATED
582 SoSFEnum normalPrecision;
583#endif
590 SoHeightFieldRenderImpl* getImpl( SoState* state );
591 SoHeightFieldRenderImpl* m_heightFieldRenderImpl;
592
595 SoVolumeStateHeightField* m_volumeStateHeightField;
596
598};
599
600#ifdef _WIN32
601#pragma warning( pop )
602#endif
603#endif // _SO_HEIGHTFIELD_RENDER_H
604
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