Open Inventor
Release 2024.2.0
Loading...
Searching...
No Matches
SoReplacedElement.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_REPLACED_ELEMENT
51
#define _SO_REPLACED_ELEMENT
52
75
#include <Inventor/elements/SoSubElement.h>
76
77
SoEXTENDER_Documented
class
SoReplacedElement
:
public
SoElement
{
78
79
SO_ELEMENT_ABSTRACT_HEADER(
SoReplacedElement
);
80
81
public
:
82
86
virtual
void
print
(FILE *fp)
const
;
87
88
private
:
89
91
virtual
void
commonInit();
92
94
virtual
void
init(
SoState
*state);
95
101
virtual
SoElement
* copyMatchInfo()
const
;
102
106
virtual
SbBool
matches(
const
SoElement
* elt)
const
;
107
108
private
:
109
// Initializes the SoReplacedElement class
110
static
void
initClass();
111
static
void
exitClass();
112
113
// Return nodeId. This was added so the SoTransformSeparator
114
// class can figure out whether or not it contains a camera:
115
uint64_t getNodeId()
const
{
return
nodeId; }
116
117
// Sets the current nodeId.
118
void
setNodeId( uint64_t
id
) { nodeId = id; }
119
120
private
:
121
122
// Overrides SoElement::getElement() to set the nodeId in the
123
// element instance before returning it.
124
static
SoElement
* getElement(
SoState
*state,
SoType
type,
int
stackIndex,
125
SoNode
*node);
126
130
template
<
typename
T>
131
static
T* getElement(
SoState
*state,
SoNode
*node)
132
{
133
return
static_cast<
T*
>
(getElement(state, T::getClassTypeId(), T::getClassStackIndex(), node));
134
}
135
136
// Destructor
137
virtual
~SoReplacedElement
();
138
139
private
:
140
uint64_t nodeId;
141
142
};
143
144
#endif
/* _SO_REPLACED_ELEMENT */
145
146
SoElement
Abstract base class for all state elements.
Definition
SoElement.h:102
SoNode
Abstract base class for all database nodes.
Definition
SoNode.h:145
SoReplacedElement
Abstract base class for each state element whose value is replaced whenever it is set.
Definition
SoReplacedElement.h:77
SoReplacedElement::print
virtual void print(FILE *fp) const
Prints element (for debugging).
SoState
Traversal state.
Definition
SoState.h:74
SoType
Stores runtime type information.
Definition
SoType.h:98
SbBool
int SbBool
Boolean type.
Definition
SbBase.h:87
Inventor
elements
SoReplacedElement.h
Generated by
1.9.8