1 #ifndef COIN_SOOUTPUT_H 2 #define COIN_SOOUTPUT_H 36 #include <Inventor/system/inttypes.h> 37 #include <Inventor/SbBasic.h> 38 #include <Inventor/SbString.h> 49 typedef void * SoOutputReallocCB(
void * ptr,
size_t newSize);
53 enum Stage { COUNT_REFS, WRITE };
61 virtual void setFilePointer(FILE * newFP);
62 virtual FILE * getFilePointer(
void)
const;
63 virtual SbBool openFile(
const char *
const fileName);
64 virtual void closeFile(
void);
66 SbBool setCompression(
const SbName & compmethod,
67 const float level = 0.5f);
68 static const SbName * getAvailableCompressionMethods(
unsigned int & num);
70 virtual void setBuffer(
void * bufPointer,
size_t initSize,
71 SoOutputReallocCB * reallocFunc, int32_t offset = 0);
72 virtual SbBool getBuffer(
void * & bufPointer,
size_t & nBytes)
const;
73 virtual size_t getBufferSize(
void)
const;
74 virtual void resetBuffer(
void);
75 virtual void setBinary(
const SbBool flag);
76 virtual SbBool isBinary(
void)
const;
77 virtual void setHeaderString(
const SbString & str);
78 virtual void resetHeaderString(
void);
79 virtual void setFloatPrecision(
const int precision);
81 void setStage(Stage stage);
82 Stage getStage(
void)
const;
84 void incrementIndent(
const int levels = 1);
85 void decrementIndent(
const int levels = 1);
87 virtual void write(
const char c);
88 virtual void write(
const char * s);
89 virtual void write(
const SbString & s);
90 virtual void write(
const SbName & n);
91 virtual void write(
const int i);
92 virtual void write(
const unsigned int i);
93 virtual void write(
const short s);
94 virtual void write(
const unsigned short s);
95 virtual void write(
const float f);
96 virtual void write(
const double d);
99 void write(
long int i);
100 void write(
long unsigned int i);
102 virtual void writeBinaryArray(
const unsigned char * c,
const int length);
103 virtual void writeBinaryArray(
const int32_t *
const l,
const int length);
104 virtual void writeBinaryArray(
const float *
const f,
const int length);
105 virtual void writeBinaryArray(
const double *
const d,
const int length);
107 virtual void indent(
void);
108 virtual void reset(
void);
109 void setCompact(SbBool flag);
110 SbBool isCompact(
void)
const;
111 void setAnnotation(uint32_t bits);
112 uint32_t getAnnotation(
void);
114 static SbString getDefaultASCIIHeader(
void);
115 static SbString getDefaultBinaryHeader(
void);
117 int addReference(
const SoBase * base);
118 int findReference(
const SoBase * base)
const;
119 void setReference(
const SoBase * base,
int refid);
121 void addDEFNode(
SbName name);
122 SbBool lookupDEFNode(
SbName name);
123 void removeDEFNode(
SbName name);
125 void pushProto(
SoProto * proto);
126 SoProto * getCurrentProto(
void)
const;
131 void resolveRoutes(
void);
134 SbBool isToBuffer(
void)
const;
135 size_t bytesInBuf(
void)
const;
136 SbBool makeRoomInBuf(
size_t nBytes);
137 void convertShort(
short s,
char * to);
138 void convertInt32(int32_t l,
char * to);
139 void convertFloat(
float f,
char * to);
140 void convertDouble(
double d,
char * to);
141 void convertShortArray(
short * from,
char * to,
int len);
142 void convertInt32Array(int32_t * from,
char * to,
int len);
143 void convertFloatArray(
float * from,
char * to,
int len);
144 void convertDoubleArray(
double * from,
char * to,
int len);
153 void constructorCommon(
void);
155 void checkHeader(
void);
156 void writeBytesWithPadding(
const char *
const p,
const size_t nr);
159 friend class SoWriterefCounter;
160 void removeSoBase2IdRef(
const SoBase * base);
163 #endif // !COIN_SOOUTPUT_H 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
Annotations
Definition: SoOutput.h:55
The SoFieldContainer class is a base class for all classes that contain fields.
Definition: SoFieldContainer.h:43
The SoField class is the top-level abstract base class for fields.
Definition: SoField.h:47
The SbDict class organizes a dictionary of keys and values.
Definition: SbDict.h:63
SbBool wroteHeader
Definition: SoOutput.h:148
The SoProto class handles PROTO definitions.
Definition: SoProto.h:50
Stage
Definition: SoOutput.h:53
The SbString class is a string class with convenience functions for string operations.
Definition: SbString.h:52
The SbName class stores strings by reference.
Definition: SbName.h:40