Open Inventor Release 2025.2.0
 
Loading...
Searching...
No Matches
SoQuadAreaLight.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-2025 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19 **=======================================================================*/
20
21#pragma once
22
23#include <Inventor/nodes/SoLight.h>
24#include <Inventor/nodes/SoSeparator.h>
25#include <Inventor/nodes/SoTexture3.h>
26
27#include <Inventor/fields/SoSFVec3f.h>
28#include <Inventor/fields/SoSFRotation.h>
29#include <Inventor/fields/SoSFFloat.h>
30#include <Inventor/fields/SoSFBool.h>
31
32class SoTextureUnit;
35class SoSwitch;
38class SoMaterial;
39
99class SoQuadAreaLight : public SoLight
100{
101 SO_NODE_HEADER(SoQuadAreaLight);
102
103public:
110
120
127
134
143
148
149private:
150 void GLRender(SoGLRenderAction* action) override;
151 void getBoundingBox(SoGetBoundingBoxAction* action) override;
152
153private:
154 static void initClass();
155 static void exitClass();
156
162 SoSFBool display;
163
164 void getCameras(SoState* state, SoPath* scene, float visibilityLength, SoNodeList& lightCams) override;
165
166 static SoTexture3* getLTCTexture();
167
168private:
169 virtual ~SoQuadAreaLight();
170
171private:
172 void getUpAndRightVectors(SbVec3f& upVector, SbVec3f& rightVector) const;
173 SoSeparator* getShapeSep();
174
175 static SoRef<SoTexture3> s_ltcTexture;
176 SoRef<SoSeparator> m_shapeSep;
177 SoIndexedTriangleSet* m_shape;
178 SoSwitch* m_displaySwitch;
179 SoMaterial* m_shapeFrontMaterial;
180 SoMaterial* m_shapeBackMaterial;
181};
3D vector class.
Definition SbVec.h:932
Renders a scene graph using Open Inventor's Render Engine.
Computes bounding box of a scene.
Indexed triangle shape node.
Surface material definition node.
Definition SoMaterial.h:173
friend class SoPath
Definition SoNode.h:470
Maintains a list of pointers to nodes.
Definition SoNodeList.h:74
SoSFVec3f location
Location of the source (center of the area).
SoSFFloat width
Width of the area.
SoSFFloat height
Height of the area.
SoSFRotation orientation
Principal orientation of illumination (normal vector of the area), defined as a SoSFRotation object.
SoQuadAreaLight()
Creates an area light source node with default settings.
SoSFBool twoSided
Two-Sided illumination.
Smart pointer for any class inheriting SoRefCounter.
Definition SoRef.h:90
Field containing a single Boolean value.
Definition SoSFBool.h:79
Field containing a floating-point value.
Definition SoSFFloat.h:78
Field containing a rotation.
Field containing a three-dimensional vector.
Definition SoSFVec3f.h:80
Group node that saves and restores traversal state.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
Traversal state.
Definition SoState.h:74
Group node that traverses one chosen child.
Definition SoSwitch.h:179
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> 3D texture mappi...
Definition SoTexture3.h:173
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Node that specif...