Open Inventor Release 2024.2.2
 
Loading...
Searching...
No Matches
SoOverlayGroup.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#pragma once
22
23#include <Inventor/nodes/SoGroup.h>
24#include <Inventor/nodes/SoSeparator.h>
25#include <Inventor/nodes/SoTexture2.h>
26#include <Inventor/nodes/SoCallback.h>
27#include <Inventor/nodes/SoShaderProgram.h>
28#include <Inventor/nodes/SoSwitch.h>
29
30class SoRayPickAction;
31
94class SoOverlayGroup : public SoGroup
95{
96 SO_NODE_HEADER(SoOverlayGroup);
97
98public:
103
104private:
105 void GLRender(SoGLRenderAction* action) override;
106 void rayPick(SoRayPickAction* action) override;
107
108private:
109
110 // Specifies whether SoOverlayGroup behavior is enabled or disabled.
111 // If disabled, the SoOverlayGroup behaves like an SoGroup.
112 // Default is true.
113 SoSFBool enabled;
114
115 static void initClass();
116 static void exitClass();
117
118private:
119 ~SoOverlayGroup() override;
120
121private:
122 SoRef<SoSeparator> m_composeOpaque;
123 SoRef<SoSeparator> m_composeTransp;
124
125 std::vector<SoCallback*> m_callbackNodes;
126 SoRef<SoCallback> m_updateElementsCallback;
127
128 SoRef<SoTexture2> m_depthTexture;
129 SoRef<SoTexture2> m_colorTexture;
130
131 SoRef<SoShaderProgram> m_opaqueShaderProg;
132 SoRef<SoShaderProgram> m_transparentShaderProg;
133};
Renders a scene graph using Open Inventor's Render Engine.
Base class for all group nodes.
Definition SoGroup.h:122
Group node dedicated to render multiple co-planar shapes.
SoOverlayGroup()
Creates an empty overlay group node.
Intersects objects with a ray cast into scene.
Smart pointer for any class inheriting SoRefCounter.
Definition SoRef.h:90
Field containing a single Boolean value.
Definition SoSFBool.h:79