H3D API
2.4.1
|
Template to make sure that the Node that is set in a SFNode is of a specified type. More...
#include <H3D/SFNode.h>
Public Member Functions | |
virtual Type * | getCastedValue (int id=0) |
Get the value casted to the Type. | |
![]() | |
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. | |
![]() | |
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 Node * | getValue (int id=0) |
Get the value of the 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 Field * | replaceRoute (Field *f, unsigned int i, int id=0) |
Replace the i:th route to f with a route from this field. More... | |
virtual Field * | replaceRouteNoEvent (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. | |
Node * | getOwner () |
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 Event & | getLatestEvent () |
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. | |
Protected Member Functions | |
virtual void | onAdd (Node *n) |
We check that the type of the Node is of the correct type. | |
![]() | |
virtual void | update () |
Make the field up to date if an event has occured. | |
virtual void | onRemove (Node *n) |
This function will be called when the value of RefCountSField changes. More... | |
![]() | |
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... | |
![]() | |
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 Field * | replaceRouteFrom (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. | |
Additional Inherited Members | |
![]() | |
typedef Node | typed_class_type |
The same as class_type, but if e.g. More... | |
typedef Node * | typed_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 Node * | value_type |
The type of the value in this field. | |
![]() | |
enum | AccessType { INITIALIZE_ONLY , OUTPUT_ONLY , INPUT_ONLY , INPUT_OUTPUT } |
The different access types that a field can have. More... | |
![]() | |
static string | classTypeName () |
Returns a string name for this field type i.e. SFNode. | |
![]() | |
static string | classTypeName () |
Returns a string name for this field type. More... | |
![]() | |
RefCountSFieldAutoRef | value |
The encapsulated value. | |
![]() | |
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. | |
Node * | owner |
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... | |
Template to make sure that the Node that is set in a SFNode is of a specified type.
This is the same as TypedSFNode but with the difference that the type does not have to be a node type but can be an abstract base class such as X3DMetadataObject. This makes it impossible however to override the getValue() function to return the correct type. Hence the getCastedValue() function must be used. You only have to use this template if you want to use one of the interface base classes such as X3DMetadataObject and H3DDisplayListObject as the Type parameter. In all other cases the TypedSFNode template is recommended.
Type | The expected type. |