Coin Logo http://www.sim.no
http://www.coin3d.org

Public Types | Public Member Functions | Protected Member Functions | List of all members
SoPathSensor Class Reference

The SoPathSensor class detects changes to paths.If you need to know when a path changes (i.e. nodes in the path has been removed, or new nodes is added), use this sensor to get a notification. More...

#include <Inventor/sensors/SoPathSensor.h>

Inheritance diagram for SoPathSensor:
SoDataSensor SoDelayQueueSensor SoSensor

Public Types

enum  TriggerFilter { PATH = 0x1, NODES = 0x2, PATH_AND_NODES = 0x3 }
 

Public Member Functions

 SoPathSensor (void)
 
 SoPathSensor (SoSensorCB *func, void *data)
 
virtual ~SoPathSensor (void)
 
void setTriggerFilter (const TriggerFilter type)
 
TriggerFilter getTriggerFilter (void) const
 
void attach (SoPath *path)
 
void detach (void)
 
SoPathgetAttachedPath (void) const
 
- Public Member Functions inherited from SoDataSensor
 SoDataSensor (void)
 
 SoDataSensor (SoSensorCB *func, void *data)
 
virtual ~SoDataSensor (void)
 
void setDeleteCallback (SoSensorCB *function, void *data=NULL)
 
SoNodegetTriggerNode (void) const
 
SoFieldgetTriggerField (void) const
 
SoPathgetTriggerPath (void) const
 
void setTriggerPathFlag (SbBool flag)
 
SbBool getTriggerPathFlag (void) const
 
virtual void trigger (void)
 
- Public Member Functions inherited from SoDelayQueueSensor
 SoDelayQueueSensor (void)
 
 SoDelayQueueSensor (SoSensorCB *func, void *data)
 
virtual ~SoDelayQueueSensor (void)
 
void setPriority (uint32_t pri)
 
uint32_t getPriority (void) const
 
virtual void schedule (void)
 
virtual void unschedule (void)
 
virtual SbBool isScheduled (void) const
 
virtual SbBool isIdleOnly (void) const
 
- Public Member Functions inherited from SoSensor
 SoSensor (void)
 
 SoSensor (SoSensorCB *func, void *data)
 
virtual ~SoSensor (void)
 
void setFunction (SoSensorCB *callbackfunction)
 
SoSensorCBPtr getFunction (void) const
 
void setData (void *callbackdata)
 
void * getData (void) const
 
void setNextInQueue (SoSensor *next)
 
SoSensorgetNextInQueue (void) const
 

Protected Member Functions

virtual void notify (SoNotList *l)
 
- Protected Member Functions inherited from SoDataSensor
void invokeDeleteCallback (void)
 

Additional Inherited Members

- Static Public Member Functions inherited from SoDelayQueueSensor
static uint32_t getDefaultPriority (void)
 
- Static Public Member Functions inherited from SoSensor
static void initClass (void)
 
- Protected Attributes inherited from SoDelayQueueSensor
SbBool scheduled
 
- Protected Attributes inherited from SoSensor
SoSensorCB * func
 
void * funcData
 

Detailed Description

The SoPathSensor class detects changes to paths.

If you need to know when a path changes (i.e. nodes in the path has been removed, or new nodes is added), use this sensor to get a notification.

You can also use this sensor to detect when some node in the path is changed.

Member Enumeration Documentation

◆ TriggerFilter

Trigger filter, which decides if the sensor should trigger on path changes, changes on nodes in the path, or both.

Enumerator
PATH 

Trigger on path changes only.

NODES 

Trigger on node changes only. This can be nodes in the path, or nodes affecting the nodes in the path (nodes that updates the state and are left of the node in the path).

PATH_AND_NODES 

Trigger on both path changes and node changes.

Constructor & Destructor Documentation

◆ SoPathSensor() [1/2]

SoPathSensor::SoPathSensor ( void  )

Default constructor. Use setFunction() to set up a callback function later.

◆ SoPathSensor() [2/2]

SoPathSensor::SoPathSensor ( SoSensorCB *  func,
void *  data 
)

Constructor taking as parameters the sensor callback function and the userdata which will be passed the callback.

See also
setFunction(), setData()

References PATH_AND_NODES.

◆ ~SoPathSensor()

SoPathSensor::~SoPathSensor ( void  )
virtual

Destructor.

References detach().

Member Function Documentation

◆ setTriggerFilter()

void SoPathSensor::setTriggerFilter ( const TriggerFilter  filter)

Set the TriggerFilter for this sensor.

The default is PATH_AND_NODES.

Since
Coin 2.0

◆ getTriggerFilter()

SoPathSensor::TriggerFilter SoPathSensor::getTriggerFilter ( void  ) const

Return the TriggerFilter for this sensor.

Since
Coin 2.0

◆ attach()

void SoPathSensor::attach ( SoPath path)

Attach sensor to a path. Whenever the path changes, the sensor will be triggered and call the callback function.

See also
detach()

References detach(), and SoPath::getHead().

◆ detach()

void SoPathSensor::detach ( void  )

Detach sensor from path. As long as an SoPathSensor is detached, it will never invoke its callback function.

See also
attach()

References SoDelayQueueSensor::isScheduled(), and SoDelayQueueSensor::unschedule().

Referenced by attach(), notify(), and ~SoPathSensor().

◆ getAttachedPath()

SoPath * SoPathSensor::getAttachedPath ( void  ) const

Returns a pointer to the path connected to the sensor.

See also
attach(), detach()

Referenced by notify().

◆ notify()

void SoPathSensor::notify ( SoNotList l)
protectedvirtual

Called from entity we are monitoring when it changes.

If this is an immediate sensor, the field and node (if any) causing the change will be stored and can be fetched by getTriggerField() and getTriggerNode(). If the triggerpath flag has been set, the path down to the node is also found and stored for later retrieval by getTriggerPath().

See also
setTriggerPathFlag()

Reimplemented from SoDataSensor.

References detach(), getAttachedPath(), SoNotRec::getBase(), SoNotList::getFirstRec(), SoNotList::getLastRec(), SoDataSensor::invokeDeleteCallback(), NODES, SoDataSensor::notify(), and PATH.


The documentation for this class was generated from the following files:

Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.

Generated on Fri Feb 17 2017 for Coin by Doxygen. 1.8.13