123 SbName &outputName)
const;
195 static SoType classTypeId;
197 bool needsEvaluation;
262 {
return connections.getLength(); }
266 {
return connections.
get(i); }
#define INVENTOR_API
Disable some annoying warnings on MSVC 6.
Character string stored in a hash table.
Maintains a list of pointers to engines.
The SoEngineOutputData class holds data about engine outputs: the number of outputs the engine has,...
Maintains a list of pointers to engine outputs.
Class for all engine outputs.
int getNumConnections() const
Number of connections this output currently has.
SoType getConnectionType() const
Returns the type of field this output can connect to.
void enable(bool flag)
Enables or disables all connections from this ouptut.
void setContainer(SoEngine *eng)
void prepareToWrite() const
Before evaluating (which is done with the regular field API), we must disable notification on all the...
bool isEnabled() const
Returns TRUE if this output is currently enabled.
virtual ~SoEngineOutput()
void removeConnection(SoField *)
SoEngine * getContainer() const
Returns containing engine.
int getForwardConnections(SoFieldList &list) const
Returns the number of fields this output is writing to, and adds pointers to those fields to the give...
SoField * operator[](int i) const
Returns the fields this output is writing into.
void addConnection(SoField *)
Adds/removes connection to field.
Base class for all engines.
static SoEngine * getByName(const SbName &name)
Look up engine(s) by name.
virtual void evaluate()=0
User-written evaluation engine.
static void initClasses()
Initialize ALL Inventor engine classes.
virtual const SoEngineOutputData * getOutputData() const =0
Info on outputs:
static const SoEngineOutputData ** getOutputDataPtr()
SoEngine()
Constructor, destructor.
virtual void inputChanged(SoField *whichField)
This is called whenever the value of an input is changed.
virtual void writeInstance(SoOutput *out)
Writes instance to SoOutput. (Used only for last stage of writing)
bool shouldCopy() const
Recursive procedure that determines if this engine should be copied during a copy operation,...
virtual void notify(SoNotList *list)
Propagates modification notification through an instance.
static void initClass()
Initializes base engine class.
void writeOutputTypes(SoOutput *out)
Write output type information for engines that are not built-in.
virtual bool readInstance(SoInput *in, unsigned short flags)
Reads stuff into instance. Returns FALSE on error.
void evaluateWrapper()
wrapper for the user's evaluate() engine
static const SoFieldData ** getInputDataPtr()
This is used by the input&output inheritence mechanism, hidden in the SoSubEngine macros.
virtual int getOutputs(SoEngineOutputList &list) const
Returns a list of outputs in this engine.
bool getOutputName(const SoEngineOutput *output, SbName &outputName) const
Returns (in outputName) the name of the engine output (output).
SoEngine * copy() const
Creates and returns an exact copy of the engine.
SoEngineOutput * getOutput(const SbName &outputName) const
Returns a pointer to the engine output with the given name.
bool isNotifying() const
A very annoying double notification occurs with engines that enable their outputs during inputChanged...
static SoType getClassTypeId()
Returns the type identifier for the SoEngine class.
static int getByName(const SbName &name, SoEngineList &list)
Look up engine(s) by name.
virtual SoFieldContainer * copyThroughConnection() const
Copies an instance that is encountered through a field connection.
Abstract base class for objects that contain fields.
The SoFieldData class holds data about fields of an object: the number of fields the object has,...
Maintains a list of pointers to fields.
Base class for all fields.
void get(SbString &valueString)
Returns the value of the field in the Inventor file format, even if the field has its default value.
Holds a list of SoNotRec notification records.
Used to write Inventor data files.
SoType has no virtual functions to keep it small...