Open Inventor Release 2023.2.3
 
Loading...
Searching...
No Matches
SoPackedColor.h
Go to the documentation of this file.
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-2020 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_PACKED_COLOR_
51#define _SO_PACKED_COLOR_
52
57
58class SoColorPacker;
59
61//
62// Class: SoPackedColor
63//
64// Surface base color (of material) node. This affects the diffuse
65// color and transparency of the current material. Colors are packed
66// into uint32_ts as 0xaabbggrr. The alpha value is used for
67// transparency.
68//
70
117class SoPackedColor : public SoNode {
118
120
121 public:
122 // Fields
128
133
138 inline virtual void setOverride(const SbBool state)
139 { override.setValue(state); }
140
144 inline virtual SbBool isOverride() const
145 { return override.getValue(); }
146
147 private:
148 virtual void doAction(SoAction *action);
149 virtual void GLRender(SoGLRenderAction *action);
150 virtual void callback(SoCallbackAction *action);
151 SbBool isTransparent()
152 {return transparent;}
153
154 private:
155 static void initClass();
156 static void exitClass();
157
158 SoSFBool override;
159
160 // check for transparency when field changes.
161 virtual void notify(SoNotList *list);
162
163 private:
164 virtual ~SoPackedColor();
165
166 private:
167 // store whether transparent or not
168 SbBool transparent;
169
170 void computeReplacementColors(SoState* state);
171 void updateTransparencies(SoState* state);
172
173 SoRef<SoNodeDependencies> m_replacementColorDependencies;
174 std::vector<uint32_t> m_replacementColors;
175 std::vector<float> m_cachedTransparencies;
176
177};
178
179#endif /* _SO_PACKED_COLOR_ */
180
#define SO_NODE_HEADER(className)
Definition SoSubNode.h:151
Abstract base class for all actions.
Definition SoAction.h:132
Performs a generic traversal of a scene graph or path.
Stores packed colors.
Renders a scene graph using Open Inventor's Render Engine.
Multiple-value field containing any number of uint32_t integers.
Definition SoMFUInt32.h:90
Abstract base class for all database nodes.
Definition SoNode.h:145
Node that defines base colors using packed representation.
SoPackedColor()
Creates a packed color node with default settings.
virtual void setOverride(const SbBool state)
Set the state of the override field.
virtual SbBool isOverride() const
Returns the state of the override field.
SoMFUInt32 orderedRGBA
Defines the packed colors.
Smart pointer for any class inheriting SoRefCounter.
Definition SoRef.h:90
Field containing a single Boolean value.
Definition SoSFBool.h:79
Traversal state.
Definition SoState.h:74
int SbBool
Boolean type.
Definition SbBase.h:87