![]() |
http://www.sim.no http://www.coin3d.org |
SoNodeEngine is the base class for Coin node engines. More...
#include <Inventor/engines/SoNodeEngine.h>
Protected Member Functions | |
SoNodeEngine (void) | |
virtual | ~SoNodeEngine () |
virtual void | evaluate (void)=0 |
virtual SbBool | readInstance (SoInput *in, unsigned short flags) |
virtual void | inputChanged (SoField *which) |
void | writeOutputTypes (SoOutput *out) |
![]() | |
SoNode (void) | |
virtual | ~SoNode () |
![]() | |
SoFieldContainer (void) | |
~SoFieldContainer () | |
![]() | |
SoBase (void) | |
virtual | ~SoBase () |
SbBool | hasMultipleWriteRefs (void) const |
SbBool | writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) const |
void | writeFooter (SoOutput *out) const |
virtual const char * | getFileFormatName (void) const |
Static Protected Member Functions | |
static const SoFieldData ** | getFieldDataPtr (void) |
static const SoEngineOutputData ** | getOutputDataPtr (void) |
![]() | |
static const SoFieldData ** | getFieldDataPtr (void) |
static void | setNextActionMethodIndex (int index) |
static int | getNextActionMethodIndex (void) |
static void | incNextActionMethodIndex (void) |
static void | setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask) |
![]() | |
static uint32_t | getCurrentWriteCounter (void) |
static void | staticDataLock (void) |
static void | staticDataUnlock (void) |
Additional Inherited Members | |
![]() | |
enum | NodeType { INVENTOR = 0x0000 , VRML1 = 0x0001 , VRML2 = 0x0002 , INVENTOR_1 = 0x0004 , INVENTOR_2_0 = 0x0008 , INVENTOR_2_1 = 0x0010 , INVENTOR_2_5 = 0x0020 , INVENTOR_2_6 = 0x0040 , COIN_1_0 = 0x0080 , COIN_2_0 = 0x0100 , EXTENSION = 0x0200 , COIN_2_2 = 0x0400 , COIN_2_3 = 0x0800 , COIN_2_4 = 0x1000 , INVENTOR_5_0 = 0x2000 , COIN_2_5 = 0x4000 } |
![]() | |
enum | BaseFlags { IS_ENGINE = 0x01 , IS_GROUP = 0x02 } |
![]() | |
uint32_t | uniqueId |
![]() | |
SbBool | isBuiltIn |
![]() | |
static uint32_t | nextUniqueId = 0 |
static int | nextActionMethodIndex = 0 |
SoNodeEngine is the base class for Coin node engines.
Node engines have the same functionality as normal engines, except that they inherit SoNode, which makes it possible to insert node engines in the scene graph.
The main rationale for this class is to simplify the implementation of VRML interpolator nodes, which are in a sense engines embedded in the shape of ordinary nodes.
This abstract superclass will likely be of no interest to the Coin application programmer, and you can safely ignore it.
Be aware that this class is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.
|
protected |
Default constructor.
|
protectedvirtual |
Destructor.
References SoDebugError::postInfo().
Triggers an engine evaluation.
References evaluate(), and getOutputData().
Referenced by SoField::evaluateConnection().
|
virtual |
Adds all outputs to list. Returns the number of outputs added to the list.
References SbList< Type >::append(), and getOutputData().
SoEngineOutput * SoNodeEngine::getOutput | ( | const SbName & | outputname | ) | const |
Returns the output with name outputname, or NULL
if no such output exists.
References getOutputData().
SbBool SoNodeEngine::getOutputName | ( | const SoEngineOutput * | output, |
SbName & | outputname ) const |
Sets \outputname to the name of output. Returns FALSE
if no such output is contained within the engine instance.
References getOutputData().
|
pure virtual |
This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.
Implemented in SoVRMLColorInterpolator, SoVRMLCoordinateInterpolator, SoVRMLInterpolator, SoVRMLNormalInterpolator, SoVRMLOrientationInterpolator, SoVRMLPositionInterpolator, SoVRMLScalarInterpolator, and SoVRMLTimeSensor.
Referenced by evaluateWrapper(), SoEngineOutput::getConnectionType(), getOutput(), getOutputName(), getOutputs(), and notify().
SbBool SoNodeEngine::isNotifying | ( | void | ) | const |
Returns whether we're in a notification process. This is needed to avoid double notification when an engine enables outputs during inputChanged().
Referenced by notify().
Notifies all auditors for this instance when changes are made.
Reimplemented from SoNode.
Reimplemented in SoVRMLTimeSensor.
References SbList< Type >::append(), SoNotList::getLastField(), SoBase::getName(), getOutputData(), SoBase::getTypeId(), inputChanged(), SoFieldContainer::isNotifyEnabled(), isNotifying(), and SoDebugError::postInfo().
Referenced by SoVRMLTimeSensor::notify().
Writes all the fields contained in this instance to the output stream within out.
This method is solely called from the write methods of fields.
Either from SoField if the write is done because of a field-to-field connection, or from one of the fields which may actually write SoFieldContainer instances, i.e. SoSFNode, SoMFNode, SoSFEngine, SoMFEngine, SoSFPath and SoMFPath.
This method, in addition to the ordinary write() method of SoNode, needs to be present since the fields don't have a write action instance in their writeValue() method, and writeInstance() will create a new SoWriteAction and call continueToApply() on it.
Reimplemented from SoNode.
References SoNode::writeInstance().
This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.
Referenced by evaluateWrapper().
This method is mainly intended for internal use during file import operations.
It reads a definition of an instance from the input stream in. The input stream state points to the start of a serialized / persistant representation of an instance of this class type.
TRUE
or FALSE
is returned, depending on if the instantiation and configuration of the new object of this class type went ok or not. The import process should be robust and handle corrupted input streams by returning FALSE
.
flags is used internally during binary import when reading user extension nodes, group nodes or engines.
Reimplemented from SoNode.
References SoNode::readInstance().
Called when an input is changed. The default method does nothing, but subclasses may override this method to do the The Right Thing when a specific field is changed.
Reimplemented in SoVRMLTimeSensor.
Referenced by notify().
|
staticprotected |
Returns the SoFieldData class which holds information about inputs in this engine.
|
staticprotected |
Returns the SoEngineOutputData class which holds information about the outputs in this engine.
Writes the types of engine outputs for extension engines (i.e. engines not built in to Coin).
Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.
Generated on Mon Jan 22 2024 for Coin by Doxygen. 1.10.0