Open Inventor Release 2024.2.0
 
Loading...
Searching...
No Matches
SoComplexityTypeElement.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-2018 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_COMPLEXITY_TYPE_ELEMENT
51#define _SO_COMPLEXITY_TYPE_ELEMENT
52
53#include <Inventor/elements/SoInt32Element.h>
54
66SoEXTENDER_Documented class SoComplexityTypeElement : public SoInt32Element {
67
68 SO_ELEMENT_HEADER(SoComplexityTypeElement);
69
70 public:
74 enum Type {
75 OBJECT_SPACE, // Complexity computed in object space
76 SCREEN_SPACE, // Complexity computed in screen space
77 BOUNDING_BOX // Bounding box used to represent object
78 };
79
83 static void set(SoState *state, Type type);
84
88 static void set(SoState *state, SoNode *, Type type)
89 { set(state, type); }
90
94 static Type get(SoState *state)
95 { return (Type)SoInt32Element::get(getClassTypeId(), getClassStackIndex(), state); }
96
100 static Type getDefault(); // { return OBJECT_SPACE; }
101
105 virtual void print(FILE *fp) const;
106
107private:
108
110 virtual void init(SoState *state);
111
112 private:
113 // Initializes the SoComplexityTypeElement class
114 static void initClass();
115 static void exitClass();
116
117 private:
118 virtual ~SoComplexityTypeElement();
119};
120
121#endif /* _SO_COMPLEXITY_TYPE_ELEMENT */
122
123
Stores the current complexity type.
static Type get(SoState *state)
Returns current complexity type from the state.
static int getClassStackIndex()
Returns the stack id for this element.
virtual void print(FILE *fp) const
Prints element (for debugging).
Type
These are the available complexity types:
static void set(SoState *state, Type type)
Sets the current complexity type in the state.
static SoType getClassTypeId()
Returns the type identifier for this class.
static Type getDefault()
Returns the default complexity type.
static void set(SoState *state, SoNode *, Type type)
Sets the current complexity type in the state.
Stores a single int32_t, int, or enum value.
Abstract base class for all database nodes.
Definition SoNode.h:145
Traversal state.
Definition SoState.h:74