175 {
return currentWriteCounter; }
179 {
return writeStuff.multWriteRef; }
188 bool isGroup,
bool isEngine)
const;
217 { currentWriteCounter++; }
222 { currentWriteCounter--; }
271 bool isFromField =
FALSE);
284 static SoType classTypeId;
290 static uint32_t currentWriteCounter;
319 void writeDef(
SoOutput *,
int)
const;
320 void writeRef(
SoOutput *,
int)
const;
321 void writeAnnotation(
SoOutput *)
const;
327 static bool readBaseInstance(
SoInput *in,
const SbName &className,
330 unsigned short ioFlags);
331 static void flushInput(
SoInput *in);
337 static SbDict *nameObjDict;
341 static SbDict *objNameDict;
#define INVENTOR_API
Disable some annoying warnings on MSVC 6.
This is a dictionary mapping (size_t) integer keys to (void *) data pointers.
Character string stored in a hash table.
Class for smart character strings.
Subclasses of the SbPList class which hold lists of pointers of a specific type.
Base class for all nodes, paths, and engines.
void unrefNoDelete() const
static void removeName(SoBase *, const char *)
void addAuditor(void *auditor, SoNotRec::Type type)
Adds/removes an auditor to/from list.
bool shouldWrite()
Returns TRUE if the instance should be written, based on the write-reference info already accumulated...
void removeAuditor(void *auditor, SoNotRec::Type type)
static uint32_t getCurrentWriteCounter()
Returns current write counter.
static void addName(SoBase *, const char *)
Internal methods used to maintain the global name dictionary.
virtual void setName(const SbName &name)
Sets the name of an instance.
virtual void startNotify()
Initiates notification from an instance.
const SoAuditorList & getAuditors()
Returns auditor list– used by SoField and SoEngineOutput to trace forward connections.
virtual bool readInstance(SoInput *in, unsigned short flags)=0
Reads stuff into instance of subclass.
unsigned int hasName
This is TRUE if the object is named.
unsigned int writeCounter
This contains the value of the counter the last time the instance was written.
void touch()
Marks an instance as modified, simulating a change to it.
SoBase()
Constructor is protected - this is an abstract class.
static void setInstancePrefix(const SbString &c)
This defaults to "+" and is used when naming nodes that are DEF's and USE'd.
BaseFlags
This set of enums is used when reading and writing the base.
unsigned int writeRefFromField
This is TRUE if the instance was referenced via a field-to-field connection, which is not a "real" re...
static void decrementCurrentWriteCounter()
Decrements the current write counter after a write operation, in some rare cases.
virtual void notify(SoNotList *list)
Propagates modification notification through an instance.
virtual const char * getFileFormatName() const
Unknown nodes and engines write a different name for themselves than their typeId; this virtual metho...
virtual SoType getTypeId() const =0
Returns the type identifier for a specific instance.
bool hasMultipleWriteRefs() const
Returns TRUE if the instance has multiple write references.
virtual void destroy()
Actually deletes an instance.
void ref() const
Adds and removes a reference to an instance.
static bool traceRefs
Turns on/off reference count tracing (for debugging)
virtual SbName getName() const
Returns the name of an instance.
bool isOfType(SoType type) const
Returns TRUE if this object is of the type specified in type or is derived from that type.
unsigned int multWriteRef
This is TRUE if more than one reference is made to the instance for writing, meaning that we need to ...
static bool read(SoInput *in, SoBase *&base, SoType expectedType)
Reads one instance of some subclass of SoBase.
static void incrementCurrentWriteCounter()
Increments the current write counter at the start of a write operation.
bool writeHeader(SoOutput *out, bool isGroup, bool isEngine) const
Writes a header (name, open brace) or footer (close brace) to file defined by SoOutput.
void writeFooter(SoOutput *out) const
static void initClass()
Setup type information.
virtual ~SoBase()
Virtual destructor so that subclasses are deleted properly.
static SoBase * getNamedBase(const SbName &, SoType)
Helper routines used to get stuff out of nameDict.
virtual void addWriteReference(SoOutput *out, bool isFromField=FALSE)
Adds a reference to the instance when writing.
static SoType getClassTypeId()
Returns type identifier for this class.
static int getNamedBases(const SbName &, SoBaseList &, SoType)
int getRefCount() const
Returns current reference count.
Abstract base class for all database nodes.
Holds a list of SoNotRec notification records.
Type
Notification types (what receives notification).
Used to write Inventor data files.
Path that points to a list of hierarchical nodes.
SoType has no virtual functions to keep it small...