Open Inventor Release 2024.1.3
 
Loading...
Searching...
No Matches
SoPathSensor.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 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-2017 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_PATH_SENSOR_
51#define _SO_PATH_SENSOR_
52
53#include <Inventor/SoPath.h>
54#include <Inventor/sensors/SoDataSensor.h>
55
79class SoPathSensor : public SoDataSensor {
80
81 public:
91 SoPathSensor(SoSensorCB *func, void *data);
92
96 virtual ~SoPathSensor();
97
101 void attach(SoPath *path);
102
107 void detach();
108
113 SoPath * getAttachedPath() const { return path; }
114
115 private:
116 virtual void notify(SoNotList *list);
117
118 private:
119 SoFullPath * path; // Path sensor is attached to
120 SoNode * head; // Head of that path
121
122 //Sensors are attached to these nodes and must be removed
123 std::vector<SoNode*> m_forwardTraversedHeads;
124
125 // Called by the attached path when it (the path) is about to be deleted
126 virtual void dyingReference();
127
128 // unlocked calls used internally for correct Multithread management
129 void detach(SoNode* head, SoPath* path, const std::vector<SoNode*>& forwardTraversedHeads);
130};
131
132#endif /* _SO_PATH_SENSOR_ */
133
Abstract base class for sensors attached to parts of a scene.
Path that allows access to hidden children.
Definition SoPath.h:604
Abstract base class for all database nodes.
Definition SoNode.h:145
Path that points to a list of hierarchical nodes.
Definition SoPath.h:187
Sensor class that can be attached to Open Inventor paths.
SoPathSensor()
Default constructor.
SoPath * getAttachedPath() const
Returns the path that this sensor is sensing, or NULL if it is not attached to any path.
SoPathSensor(SoSensorCB *func, void *data)
Constructor that takes the callback function and data to be called when the sensor is triggered.
void detach()
Unschedules this sensor (if it is scheduled) and makes it ignore changes to the scene graph.
virtual ~SoPathSensor()
Destroys the sensor, freeing up any memory associated with it after unscheduling it.
void attach(SoPath *path)
Makes this sensor detect changes to the given path.
void SoSensorCB(void *data, SoSensor *sensor)
This typedef defines the calling sequence for all callbacks from sensors.
Definition SoSensor.h:68