H3D API  2.4.1
Public Member Functions | Static Public Member Functions | List of all members
H3D::SFNode Class Reference

SFNode is almost like any SField but it encapsulates a pointer to a Node. More...

#include <H3D/SFNode.h>

Inheritance diagram for H3D::SFNode:
Inheritance graph

Public Member Functions

 SFNode ()
 Constructor.
 
 SFNode (Node *_value)
 Constructor.
 
virtual string getTypeName ()
 Returns a string name for this field type i.e. SFNode.
 
virtual X3DTypes::X3DType getX3DType ()
 Returns the X3DType of the field.
 
- Public Member Functions inherited from H3D::RefCountSField< Node, TypedField< Field, void, AnyNumber< SFNode > > >
 RefCountSField ()
 Constructor. Default value of value is NULL.
 
 RefCountSField (Node *_value)
 Constructor.
 
virtual void setValue (const AutoRef< Node > &n, int id=0)
 Set the value of the field.
 
virtual void setValue (Node *n, int id=0)
 Set the value of the field.
 
virtual NodegetValue (int id=0)
 Get the value of the field.
 
- Public Member Functions inherited from H3D::Field
 Field ()
 Constructor.
 
virtual ~Field ()
 Destructor.
 
void setName (string _name)
 Sets local the name of the field. Will be used in error reporting.
 
string getName ()
 Gets the name of the field.
 
string getFullName ()
 Get the full name of the field including the name of the owner node if it exists (ownername.fieldname). More...
 
virtual void route (Field *, int id=0)
 Set up a route from this field to the field given as argument. More...
 
virtual void routeNoEvent (Field *, int id=0)
 Set up a route from this field to the field given as argument. More...
 
virtual void unroute (Field *)
 Remove the route from this field to the field given as argument.
 
virtual FieldreplaceRoute (Field *f, unsigned int i, int id=0)
 Replace the i:th route to f with a route from this field. More...
 
virtual FieldreplaceRouteNoEvent (Field *f, unsigned int i, int id=0)
 Replace the i:th route to f with a route from this field. More...
 
template<class F >
void route (H3DUniquePtr< F > &f, int id=0)
 Set up a route from this field to the field residing in the H3DUniquePtr given as argument. More...
 
template<class F >
void routeNoEvent (H3DUniquePtr< F > &f, int id=0)
 Set up a route from this field to the field residing in the H3DUniquePtr given as argument. More...
 
template<class F >
void unroute (H3DUniquePtr< F > &f)
 Remove the route from this field to the field residing in the H3DUniquePtr given as argument.
 
void unrouteAll ()
 Remove all the routes from this field.
 
virtual void upToDate ()
 Check that the field is up-to-date, if not update() is called to make it up-to-date.
 
bool isUpToDate ()
 Returns true if the field is up to date, i.e. More...
 
virtual void touch ()
 Generates an event from this field.
 
NodegetOwner ()
 Get the Node that contains this field.
 
void setOwner (Node *n)
 Set the Node that contains this field.
 
void setAccessType (AccessType _access_type)
 Set the access type of the field.
 
AccessType getAccessType ()
 Get the access type of the field.
 
bool routesTo (Field *f)
 Returns true if this field is routed to the field given as argument.
 
bool hasRouteFrom (Field *f)
 Returns true if the field given as argument is routed to this field.
 
const FieldVector & getRoutesIn ()
 Get the Fields that are routed to this Field.
 
const FieldSet & getRoutesOut ()
 Get the Fields this Field is routed to.
 
const EventgetLatestEvent ()
 Get the latest event.
 
void setAccessCheck (bool on)
 Set access type checking on or off. More...
 
bool isAccessCheckOn ()
 Returns true if checking of access types is on.
 

Static Public Member Functions

static string classTypeName ()
 Returns a string name for this field type i.e. SFNode.
 
- Static Public Member Functions inherited from H3D::Field
static string classTypeName ()
 Returns a string name for this field type. More...
 

Additional Inherited Members

- Public Types inherited from H3D::RefCountSField< Node, TypedField< Field, void, AnyNumber< SFNode > > >
typedef Node typed_class_type
 The same as class_type, but if e.g. More...
 
typedef Nodetyped_value_type
 The same as value_type, but if e.g. More...
 
typedef Node class_type
 The type of which this field contains a pointer to.
 
typedef Nodevalue_type
 The type of the value in this field.
 
- Public Types inherited from H3D::Field
enum  AccessType { INITIALIZE_ONLY , OUTPUT_ONLY , INPUT_ONLY , INPUT_OUTPUT }
 The different access types that a field can have. More...
 
- Protected Member Functions inherited from H3D::RefCountSField< Node, TypedField< Field, void, AnyNumber< SFNode > > >
virtual void update ()
 Make the field up to date if an event has occured.
 
virtual void onAdd (Node *n)
 This function will be called when the value of RefCountSField changes. More...
 
virtual void onRemove (Node *n)
 This function will be called when the value of RefCountSField changes. More...
 
- Protected Member Functions inherited from H3D::TypedField< Field, void, AnyNumber< SFNode > >
void checkFieldType (Field *f, int index)
 Function for checking that a field is of a correct type given type specification according to the TypedField template arguments. More...
 
void checkTemplateArguments ()
 Function for checking that a field given TypedField type specification is valid. More...
 
- Protected Member Functions inherited from H3D::Field
virtual void startEvent ()
 Start a new event from this field. More...
 
virtual void propagateEvent (Event e)
 Propagates an event to all Fields we are routed to. More...
 
virtual void routeFrom (Field *, int id)
 Set up a route to this field from the field given as argument.
 
virtual void unrouteFrom (Field *)
 Remove the route to this field from the field given as argument.
 
virtual FieldreplaceRouteFrom (Field *f, unsigned int i, int id)
 Replace the i:th route to this field with the field given as argument.
 
void checkAccessTypeRoute (Field *f, int id)
 Check the access type is correct for performing a route from this field to f. More...
 
void checkAccessTypeRouteFrom (Field *f, int id)
 Check the access type is correct for performing a route from f to this field. More...
 
void checkAccessTypeGet (int id)
 Check the access type is valid for getting the value of a field. More...
 
void checkAccessTypeSet (int id)
 Check the access type is valid for changing the value of a field. More...
 
int ownerId ()
 Gets the id of the owner node, -1 if no owner.
 
bool isProgramSetting ()
 Returns true if this field is part of program settings fields. More...
 
void markProgramSetting (bool used_as_setting)
 Set it this field is used by program settings fields in scene or not.
 
- Protected Attributes inherited from H3D::RefCountSField< Node, TypedField< Field, void, AnyNumber< SFNode > > >
RefCountSFieldAutoRef value
 The encapsulated value.
 
- Protected Attributes inherited from H3D::Field
string name
 The name of the field.
 
bool event_lock
 If true, stops events from being propagated. More...
 
bool update_lock
 If true, stops the update() function from being called in the upToDate() function.
 
FieldSet routes_out
 The Fields that this field is routed to.
 
FieldVector routes_in
 The Field that are routed to this field.
 
Event event
 The last event that happened.
 
Nodeowner
 The node that contain this field. More...
 
AccessType access_type
 The type of access to the field.
 
bool access_check_on
 If true, access type checks will be done when getting/setting values and setting up routes. More...
 

Detailed Description

SFNode is almost like any SField but it encapsulates a pointer to a Node.

Reference counting on the encapsulated Node is also upheld.


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