#include <archon/x3d/server/type.H>
Inheritance diagram for Archon::X3D::FieldBase:
Public Member Functions | |
unsigned long | getId () const |
string | getName () const |
const FieldType * | getType () const |
bool | getIsEventTarget () const |
bool | getIsEventSource () const |
virtual Ref< ValueBase > | get (const NodeBase *) const =0 |
virtual void | set (NodeBase *, const Event *, bool cascade) const =0 |
IF cascade IS FALSE:. | |
virtual bool | changedSince (const NodeBase *n, const Time &) const =0 |
Is this field or any field of child nodes of this field changed? Child nodes of course are only relevant for node fields. | |
virtual bool | addRoute (NodeBase *, const RouteTail *) const =0 |
Add a route to this field through EventSource::addRoute. | |
virtual void | delRoute (NodeBase *, const RouteTail *) const =0 |
Remove a route from this field through EventSource::delRoute. | |
virtual bool | delRouteMatch (NodeBase *, const RouteTail *) const =0 |
Remove a matching route from this field through EventSource::delRouteMAtch. | |
virtual | ~FieldBase () |
Must be called with a scenegraph read lock. | |
Static Public Member Functions | |
static const FieldBase * | fetch (unsigned long fieldId, const NodeBase *n=0) |
Fetch the X3D field associated with the specified field ID. | |
Protected Member Functions | |
FieldBase (string name, const FieldType *, bool isEventTarget, bool isEventSource) | |
FieldBase () | |
Since this is a virtual base class, abstract subclasses will never call a constructor in this class. | |
virtual void | forwardClear (NodeBase *) const =0 |
Protected Attributes | |
bool | isEventTarget |
bool | isEventSource |
unsigned long | id |
string | name |
const FieldType * | type |
This includes the field wrappers that refer to real class level variables as well as the custom fields that can be contained in Script node instanses (the user specified ones).
Definition at line 95 of file type.H.
|
Since this is a virtual base class, abstract subclasses will never call a constructor in this class. Still, if we only provided the a constructor taking arguments then the abstract subclasses would be forced to call it and invent dummy values for the arguments, and completely in vain since the code will never be executed, Thast why we provide this one. DONT EVER USE IT! |
|
Add a route to this field through EventSource::addRoute.
Implemented in Archon::X3D::CustomFieldBase, Archon::X3D::StaticField< N, T >, Archon::X3D::StaticField< N, vector< Ref< C > > >, Archon::X3D::StaticField< N, vector< T > >, and Archon::X3D::StaticField< N, Ref< C > >. |
|
Is this field or any field of child nodes of this field changed? Child nodes of course are only relevant for node fields. Must be called with a scenegraph read lock. Implemented in Archon::X3D::SimpleCustomField< T >, Archon::X3D::SimpleSeqCustomField< T >, Archon::X3D::NodeCustomField< C >, Archon::X3D::NodeSequenceCustomField< C >, Archon::X3D::SimpleField< N, T >, Archon::X3D::NodeField< N, C >, Archon::X3D::NodeSequenceField< N, C >, and Archon::X3D::SimpleField< N, vector< T > >. Referenced by Archon::X3D::Viewer::ShapeCache::updateCalllist(). |
|
Remove a route from this field through EventSource::delRoute.
Implemented in Archon::X3D::CustomFieldBase, Archon::X3D::StaticField< N, T >, Archon::X3D::StaticField< N, vector< Ref< C > > >, Archon::X3D::StaticField< N, vector< T > >, and Archon::X3D::StaticField< N, Ref< C > >. Referenced by Archon::X3D::Route::refDispose(), and Archon::X3D::SAI::ExternalRoute::refDispose(). |
|
Remove a matching route from this field through EventSource::delRouteMAtch.
Implemented in Archon::X3D::CustomFieldBase, Archon::X3D::StaticField< N, T >, Archon::X3D::StaticField< N, vector< Ref< C > > >, Archon::X3D::StaticField< N, vector< T > >, and Archon::X3D::StaticField< N, Ref< C > >. Referenced by Archon::X3D::SAI::ExternalRoute::del(). |
|
|
IF cascade IS FALSE:. Assign the specified event value to this field, but do not cascade the event on through the associated routes. Must be called with a lock on the node and the node must not be realized. IF cascade IS TRUE: Assign the specified event value to this field, and cascade the event on through all associated routes. Must be called with a scenegraph write lock, and never with a lock on any node. Also, this method may never be called for an un-realized node. Implemented in Archon::X3D::SimpleCustomField< T >, Archon::X3D::SimpleSeqCustomField< T >, Archon::X3D::NodeCustomField< C >, Archon::X3D::NodeSequenceCustomField< C >, Archon::X3D::SimpleField< N, T >, Archon::X3D::NodeField< N, C >, Archon::X3D::NodeSequenceField< N, C >, and Archon::X3D::SimpleField< N, vector< T > >. Referenced by Archon::X3D::UrlObject::addUri(), and Archon::X3D::Route::cascadeEvent(). |