(type, num) class MwNode


Public Fields

MwFieldList parentFields
List of parent SFNodes or MFNodes which contains this node.

Public Methods

static void addCopy(const MwNode *orig, const MwNode *copy)
void addParent(MwField *pField)
static void copyDone()
virtual void copyFieldData(const MwNode *orig)
copies fields from orig to this, Scripts and PROTOs override this method to add fields if necessary
virtual MwNode* duplicate()
Create a clone of itself
static MwType* getClassType()
static MwNode* getCopy(const MwNode *orig)
static MwSceneState* getCurrentSceneState()
virtual MwField* getField(const MwName &n)
Returns a pointer to the field with the given name
virtual const MwFieldData* getFieldData()
MbBool getFieldName(const MwField *field, MwName &fieldName)
Returns (in fieldName) the name of the field pointed to
virtual int getFields(MwFieldList &list)
Returns a list of fields in this node/engine
virtual MwNode* getMwNode()
Indirection function for protos
const MwName& getName()
To confuse the issue further, I've set pfNode's name using these functions, if the MwNode is also a pfNode
virtual MwNode* getNode()
virtual pfNode* getPfNode()
non null if node is a pfNode
virtual pfMatrix* getTraversal()
Returns the current transformation matrix of the parent node
virtual MwType* getType()
const char* getTypeName()
virtual MbBool handleFieldChange(MwField *field)
Returns true if it handled the field change
static void init()
Called by MwDB::init(). Make sure it is called only once
static void initCopyDict(MwSceneState *)
void isConstructed(MbBool b)
MbBool isConstructed()
MbBool isDirty()
MbBool isEvaluating()
virtual int isExactType(MwType *_type)
MbBool isNotifyingParents()
virtual int isOfType(MwType *_type)
void makeClean()
virtual void makeNode(MwSceneState *sceneState)
Initializes the node
MwNode()
virtual void notify(MwField *)
Called for each route
virtual MbBool readInstance(MwInput *in)
Reads instance from in, and then calls makeNode()
void ref()
Adds reference
void removeParent(MwField *pField)
void setIsEvaluating(MbBool flag)
Indicates whether the node is in the process of evaluating itself Needed to prevent recursive calls to container=>update() in e
void setName(const MwName &name)
void setNotifyParents(MbBool flag)
Indicates whether notification will propagate to parent Nodes as the result of setting the node value
void unref()
Removes reference, deletes if now 0
void unrefNoDelete()
Removes reference, never deletes
virtual void update()
notifies its eventOuts and auditors that this object has changed
virtual ~MwNode()

Protected Classes

struct
unsigned int dirtyFields : 29
if non-zero, holds the OR-ed masks of the fields that are in the fieldData list that have been marked dirty
unsigned int notifyParents : 1
unsigned int isEvaluating: 1
unsigned int constructed: 1

Protected Fields

static MwType* classType
classType defines making MwNodes similar to pfNodes

Protected Methods

static int getBitMask(int i)
Each field has a bitmask corresponding to its position in fieldData
static const MwFieldData** getFieldDataPtr()
This is used by the field-inheritence mechanism, hidden in the MwSubNode macros

Protected

struct
unsigned int dirtyFields : 29
if non-zero, holds the OR-ed masks of the fields that are in the fieldData list that have been marked dirty
unsigned int notifyParents : 1
unsigned int isEvaluating: 1
unsigned int constructed: 1

Private Fields

static MwParamList <MbDict> * copyDictList
friend class MwInput
static MbDict* nameDict
name for DEF, USE and routes
MwName* objName
int refCount
Reference counting:
static MwParamList <MwSceneState> * sceneStateList
stack of MwSceneStates to go with stack of copyDicts Could be a single pointer to a MwSceneState

Private Methods

static void addName(MwNode *, const char *)
Internal methods used to maintain the global name dictionary
static MwNode* createInstance(MwInput *in, const MwName &className)
static MwNode* createInstanceFromName(const MwName &className)
static void flushInput(MwInput *in)
static MwNode* getNamedNode(const MwName &, MwType *)
Helper routine used to get stuff out of nameDict
int getRefCount()
Returns current reference count
MwNode(const MwNode &)
no copy
MwNode& operator=(const MwNode &)
no assigment
static MbBool readNode(MwInput *in, MwName &className, MwNode *&node)
static MbBool readNodeInstance(MwInput *in, const MwName &className, const MwName &refName, MwNode *&node)
static void removeName(MwNode *, const char *)

Documentation

MwNode()

virtual ~MwNode()

MwFieldList parentFields
List of parent SFNodes or MFNodes which contains this node.

void addParent(MwField *pField)

void removeParent(MwField *pField)

const MwName& getName()
To confuse the issue further, I've set pfNode's name using these functions, if the MwNode is also a pfNode. While getting name from getName, either pfNode's or MwNode's getName() will give the same name. However, woe betides s/he who set's name using only pfNode's getName.

void setName(const MwName &name)

void ref()
Adds reference

void unref()
Removes reference, deletes if now 0

void unrefNoDelete()
Removes reference, never deletes

virtual int getFields(MwFieldList &list)
Returns a list of fields in this node/engine. This is virtual so private fields can be hidden. Use getFieldName to get the names of the fields, and use MwField::getType() to figure out their types. The number of fields added to the list is returned.

virtual MwField* getField(const MwName &n)
Returns a pointer to the field with the given name. If no such field exists, NULL is returned. Overridden by Script & Proto

MbBool getFieldName(const MwField *field, MwName &fieldName)
Returns (in fieldName) the name of the field pointed to. Returns FALSE if the field is not contained within the field container instance.

virtual void update()
notifies its eventOuts and auditors that this object has changed

void setIsEvaluating(MbBool flag)
Indicates whether the node is in the process of evaluating itself Needed to prevent recursive calls to container=>update() in e.g. MF interpolators

MbBool isEvaluating()

void setNotifyParents(MbBool flag)
Indicates whether notification will propagate to parent Nodes as the result of setting the node value

MbBool isNotifyingParents()

virtual void notify(MwField *)
Called for each route

virtual MbBool handleFieldChange(MwField *field)
Returns true if it handled the field change

virtual MbBool readInstance(MwInput *in)
Reads instance from in, and then calls makeNode()

virtual void copyFieldData(const MwNode *orig)
copies fields from orig to this, Scripts and PROTOs override this method to add fields if necessary

static MwType* getClassType()

virtual int isOfType(MwType *_type)

virtual int isExactType(MwType *_type)

virtual MwType* getType()

const char* getTypeName()

virtual pfMatrix* getTraversal()
Returns the current transformation matrix of the parent node

virtual MwNode* duplicate()
Create a clone of itself

virtual MwNode* getMwNode()
Indirection function for protos

virtual void makeNode(MwSceneState *sceneState)
Initializes the node

static void initCopyDict(MwSceneState *)

static void addCopy(const MwNode *orig, const MwNode *copy)

static MwNode* getCopy(const MwNode *orig)

static void copyDone()

static MwSceneState* getCurrentSceneState()

virtual pfNode* getPfNode()
non null if node is a pfNode. Returns the pfNode pointer if this node is also a MwPfNode. Needed because casts from MwNode to pfNode won't work

virtual MwNode* getNode()

virtual const MwFieldData* getFieldData()

static void init()
Called by MwDB::init(). Make sure it is called only once

MbBool isConstructed()

void isConstructed(MbBool b)

MbBool isDirty()

void makeClean()

struct

unsigned int dirtyFields : 29
if non-zero, holds the OR-ed masks of the fields that are in the fieldData list that have been marked dirty

unsigned int notifyParents : 1

unsigned int isEvaluating: 1

unsigned int constructed: 1

static int getBitMask(int i)
Each field has a bitmask corresponding to its position in fieldData

static const MwFieldData** getFieldDataPtr()
This is used by the field-inheritence mechanism, hidden in the MwSubNode macros

static MwType* classType
classType defines making MwNodes similar to pfNodes

MwName* objName

static MbDict* nameDict
name for DEF, USE and routes

static MwParamList <MbDict> * copyDictList

int refCount
Reference counting:

static MwParamList <MwSceneState> * sceneStateList
stack of MwSceneStates to go with stack of copyDicts Could be a single pointer to a MwSceneState

static void addName(MwNode *, const char *)
Internal methods used to maintain the global name dictionary

static void removeName(MwNode *, const char *)

static MwNode* getNamedNode(const MwName &, MwType *)
Helper routine used to get stuff out of nameDict

int getRefCount()
Returns current reference count

static MbBool readNode(MwInput *in, MwName &className, MwNode *&node)

static MbBool readNodeInstance(MwInput *in, const MwName &className, const MwName &refName, MwNode *&node)

static MwNode* createInstance(MwInput *in, const MwName &className)

static MwNode* createInstanceFromName(const MwName &className)

static void flushInput(MwInput *in)

MwNode& operator=(const MwNode &)
no assigment

MwNode(const MwNode &)
no copy

friend class MwInput


This class has no child classes.

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de