1#ifndef COIN_SOWRITEREFCOUNTER_H
2#define COIN_SOWRITEREFCOUNTER_H
36class SoWriterefCounterP;
42#error this is a private header file
45#include <Inventor/SbBasic.h>
46#include <Inventor/SbName.h>
48class SoWriterefCounter {
50 static void initClass(
void);
52 static void setInstancePrefix(
const SbString & s);
55 static void destruct(
SoOutput * out);
57 static SoWriterefCounter * instance(
SoOutput * out);
59 SbBool shouldWrite(
const SoBase * base)
const;
61 SbBool hasMultipleWriteRefs(
const SoBase * base)
const;
62 int getWriteref(
const SoBase * base)
const;
63 void setWriteref(
const SoBase * base,
const int ref);
64 void removeWriteref(
const SoBase * base);
65 void decrementWriteref(
const SoBase * base);
67 SbBool isInGraph(
const SoBase * base)
const;
68 void setInGraph(
const SoBase * base,
const SbBool ingraph);
69 void debugCleanup(
void);
78 int addReference(
const SoBase * base);
79 int findReference(
const SoBase * base)
const;
80 void setReference(
const SoBase * base,
int refid);
81 void removeSoBase2IdRef(
const SoBase * base);
83 static SbBool debugWriterefs(
void);
92 SoWriterefCounterP * pimpl;
The SbName class stores strings by reference.
Definition SbName.h:40
The SbString class is a string class with convenience functions for string operations.
Definition SbString.h:52
The SoBase class is the top-level superclass for a number of class-hierarchies.
Definition SoBase.h:45
The SoOutput class is an abstraction of an output stream.
Definition SoOutput.h:51