Open Inventor Release 2024.2.0
 
Loading...
Searching...
No Matches
SoPathSwitch.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** Modified by : Nick Thompson (MMM yyyy)
26**=======================================================================*/
27/*=======================================================================
28 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
29 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
30 *** ***
31 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
32 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
33 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
34 *** ***
35 *** RESTRICTED RIGHTS LEGEND ***
36 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
37 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
38 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
39 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
40 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
41 *** ***
42 *** COPYRIGHT (C) 1996-2014 BY FEI S.A.S, ***
43 *** BORDEAUX, FRANCE ***
44 *** ALL RIGHTS RESERVED ***
45**=======================================================================*/
46/*=======================================================================
47** Modified by : VSG (MMM YYYY)
48**=======================================================================*/
49
50
51#ifndef _SO_PATH_SWITCH_
52#define _SO_PATH_SWITCH_
53
54#include <Inventor/fields/SoSFPath.h>
55#include <Inventor/nodes/SoGroup.h>
56
58//
59// Class: SoPathSwitch
60//
61// PathSwitch group node: traverses all children only if the path
62// traversed so far matches the one stored in the "path" field. A
63// successful match means that the N nodes in the stored path chain
64// are the same as the last N nodes in the current path, not
65// including the path switch node itself. A NULL path (the default)
66// means don't traverse the children.
67//
69
117class SoPathSwitch : public SoGroup {
118
119 SO_NODE_HEADER(SoPathSwitch);
120
121 public:
122 // Fields
128
133
137 SoPathSwitch(int nChildren);
138
139 private:
140 // Implement actions
141 virtual void doAction(SoAction *action);
142 virtual void GLRender(SoGLRenderAction *action);
143 virtual void pick(SoPickAction *action);
144 virtual void getBoundingBox(SoGetBoundingBoxAction *action);
145 virtual void handleEvent(SoHandleEventAction *action);
146 virtual void getMatrix(SoGetMatrixAction *action);
147 virtual void search(SoSearchAction *action);
148 virtual void getPrimitiveCount(SoGetPrimitiveCountAction *action);
149
150 private:
151 static void initClass();
152 static void exitClass();
153
154 private:
155 virtual ~SoPathSwitch();
156
157 private:
158
159 // Checks for match of path with current path
160 SbBool matchesPath(const SoPath *switchPath,
161 const SoPath *currentPath) const;
162};
163
164#endif /* _SO_PATH_SWITCH_ */
165
Abstract base class for all actions.
Definition SoAction.h:132
Renders a scene graph using Open Inventor's Render Engine.
Computes bounding box of a scene.
Computes transformation matrix for a subgraph.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Counts number of...
Base class for all group nodes.
Definition SoGroup.h:122
Allows nodes in a graph to receive input events.
Path that points to a list of hierarchical nodes.
Definition SoPath.h:187
Group node that traverses only when traversed along a given path.
SoPathSwitch()
Creates a path switch node with default settings.
SoPathSwitch(int nChildren)
Constructor that takes approximate number of children.
SoSFPath path
The path that must match the current traversal path.
Abstract base class for picking objects in a scene.
Field containing an SoPath.
Definition SoSFPath.h:89
Searches for nodes in a scene graph.
int SbBool
Boolean type.
Definition SbBase.h:87