Open Inventor Release 2024.2.0
 
Loading...
Searching...
No Matches
SoPickMethodElement.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_PICK_METHOD_ELEMENT
51#define _SO_PICK_METHOD_ELEMENT
52
53#include <Inventor/elements/SoInt32Element.h>
54
67SoEXTENDER_Documented class SoPickMethodElement : public SoInt32Element {
68
69 SO_ELEMENT_HEADER(SoPickMethodElement);
70
71public:
75 enum Method {
87 CPU
88 };
89
93 static void set(SoState *state, Method method)
94 {
95 SoInt32Element::set(getClassTypeId(), getClassStackIndex(), state, (int32_t)method);
96 }
97
101 static void set(SoState *state, SoNode *, Method method)
102 {
103 set(state, method);
104 }
105
109 static Method get(SoState *state)
110 {
111 return (Method)SoInt32Element::get(getClassTypeId(), getClassStackIndex(), state);
112 }
113
117 static Method getDefault() { return AUTO; }
118
122 virtual void print(FILE *fp) const;
123
124private:
125
127 virtual void init(SoState *state);
128
129 private:
130 // Initializes/unload the SoPickMethodElement class
131 static void initClass();
132 static void exitClass();
133
134private:
135 virtual ~SoPickMethodElement();
136};
137
138#endif /* _SO_PICK_METHOD_ELEMENT */
139
140
Stores a single int32_t, int, or enum value.
Abstract base class for all database nodes.
Definition SoNode.h:145
Stores the current pick method.
static Method get(SoState *state)
Returns current pick method from the state.
virtual void print(FILE *fp) const
Prints element (for debugging).
static void set(SoState *state, Method method)
Sets the current pick method in the state.
static Method getDefault()
Returns the default pick method.
static int getClassStackIndex()
Returns the stack id for this element.
static void set(SoState *state, SoNode *, Method method)
Sets the current pick method in the state.
Method
These are the available pick methods.
@ GPU
Force using GPU picking if the shape supports it.
@ AUTO
OIV is in charge of selecting the best method to use when picking a shape.
@ CPU
Force using CPU picking, even if shape supports other picking method.
static SoType getClassTypeId()
Returns the type identifier for this class.
Traversal state.
Definition SoState.h:74