Open Inventor Release 2024.2.1
 
Loading...
Searching...
No Matches
SoLightAttenuationElement.h
1/*=======================================================================
2 * Copyright 1991-1996, Silicon Graphics, Inc.
3 * ALL RIGHTS RESERVED
4 *
5 * UNPUBLISHED -- Rights reserved under the copyright laws of the United
6 * States. Use of a copyright notice is precautionary only and does not
7 * imply publication or disclosure.
8 *
9 * U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
10 * Use, duplication or disclosure by the Government is subject to restrictions
11 * as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights
12 * in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or
13 * in similar or successor clauses in the FAR, or the DOD or NASA FAR
14 * Supplement. Contractor/manufacturer is Silicon Graphics, Inc.,
15 * 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311.
16 *
17 * THE CONTENT OF THIS WORK CONTAINS CONFIDENTIAL AND PROPRIETARY
18 * INFORMATION OF SILICON GRAPHICS, INC. ANY DUPLICATION, MODIFICATION,
19 * DISTRIBUTION, OR DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY
20 * PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SILICON
21 * GRAPHICS, INC.
22**=======================================================================*/
23/*=======================================================================
24** Author : Paul S. Strauss (MMM yyyy)
25**=======================================================================*/
26/*=======================================================================
27 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
28 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
29 *** ***
30 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
31 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
32 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
33 *** ***
34 *** RESTRICTED RIGHTS LEGEND ***
35 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
36 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
37 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
38 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
39 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
40 *** ***
41 *** COPYRIGHT (C) 1996-2014 BY FEI S.A.S, ***
42 *** BORDEAUX, FRANCE ***
43 *** ALL RIGHTS RESERVED ***
44**=======================================================================*/
45/*=======================================================================
46** Modified by : VSG (MMM YYYY)
47**=======================================================================*/
48
49
50#ifndef _SO_LIGHT_ATTENUATION_ELEMENT
51#define _SO_LIGHT_ATTENUATION_ELEMENT
52
53#include <Inventor/SbLinear.h>
54#include <Inventor/SoPreferences.h>
55#include <Inventor/elements/SoReplacedElement.h>
56
74SoEXTENDER_Documented class SoLightAttenuationElement : public SoReplacedElement {
75
76 SO_ELEMENT_HEADER(SoLightAttenuationElement);
77
78 public:
82 static void set(SoState *state, SoNode *node,
83 const SbVec3f &attenuation);
84
88 static const SbVec3f & get(SoState *state);
89
93 static SbVec3f getDefault() { return SoPreferences::getVec3f ("OIV_LIGHT_ATTENUATION", SbVec3f(0., 0., 1.)); }
94
98 virtual void print(FILE *fp) const;
99
100private:
101
103 virtual void init(SoState *state);
104
108 virtual SoElement* copyMatchInfo() const;
109
113 virtual SbBool matches(const SoElement* elt) const;
114
115 private:
116 // Initializes the SoLightAttenuationElement class
117 static void initClass();
118 static void exitClass();
119
120 private:
121 SbVec3f attenuation;
122
124};
125
126#endif /* _SO_LIGHT_ATTENUATION_ELEMENT */
127
128
3D vector class.
Definition SbVec.h:932
Abstract base class for all state elements.
Definition SoElement.h:102
Stores the light attenuation(s) of the current environment.
static const SbVec3f & get(SoState *state)
Returns the current light attenuation from the state.
static void set(SoState *state, SoNode *node, const SbVec3f &attenuation)
Sets the current light attenuation(s).
static SbVec3f getDefault()
Returns the default light attenuation.
virtual void print(FILE *fp) const
Prints element (for debugging).
Abstract base class for all database nodes.
Definition SoNode.h:145
static SoNONUNICODE const SbVec3f & getVec3f(const char *name, const SbVec3f &defaultValue)
Returns the value of the specified environment variable in the Open Inventor environment,...
Abstract base class for each state element whose value is replaced whenever it is set.
Traversal state.
Definition SoState.h:74
int SbBool
Boolean type.
Definition SbBase.h:87