table of contents
SoOutput(3IV)() | SoOutput(3IV)() |
NAME¶
SoOutput — used to write Inventor data files
INHERITS FROM¶
SoOutput
SYNOPSIS¶
#include <Inventor/SoOutput.h>
typedef void * SoOutputReallocCB(void *ptr, size_t
newSize)
Methods from class SoOutput:
SoOutput()
~SoOutput()
void setFilePointer(FILE *newFP)
FILE * getFilePointer() const
SbBool openFile(const char *fileName)
closeFile()
void setBuffer(void *bufPointer, size_t initSize,
SoOutputReallocCB *reallocFunc, int32_t offset = 0)
SbBool getBuffer(void *&bufPointer, size_t
&nBytes) const
size_t getBufferSize() const
void resetBuffer()
void setBinary(SbBool flag)
SbBool isBinary() const
void setHeaderString(const SbString &str)
void resetHeaderString()
static SbString getDefaultASCIIHeader()
static SbString getDefaultBinaryHeader()
void setFloatPrecision(int precision)
DESCRIPTION¶
This class is used for writing Inventor data files. It supports both ASCII (default) and binary formats and provides some convenience functions for handling files. It can also write to a buffer in memory as well as to a file pointer. A user-defined header can be specified for the output file. An instance of SoOutput is contained in an SoWriteAction; this is typically the only instance needed.
METHODS¶
SoOutput()
~SoOutput()
Constructor and destructor. The default SoOutput writes to
stdout. The destructor closes any files opened by the
SoOutput.
void setFilePointer(FILE *newFP)
Sets file pointer to write to.
FILE * getFilePointer() const
Returns the file pointer in use, or NULL if using a buffer.
SbBool openFile(const char *fileName)
Opens named file, sets file pointer to result. This returns FALSE on
error.
closeFile()
Closes current file if opened with openFile().
void setBuffer(void *bufPointer, size_t initSize,
SoOutputReallocCB *reallocFunc, int32_t offset = 0)
Sets up memory buffer to write to, initial size, reallocation function (which
is called if there is not enough room in the buffer), and offset in the
buffer at which to begin writing. If the reallocation function returns NULL,
writing will be disabled.
SbBool getBuffer(void *&bufPointer, size_t
&nBytes) const
Returns pointer to memory buffer being written to and the new size of the
buffer. Returns FALSE if not writing into a buffer.
size_t getBufferSize() const
The total number of bytes allocated to a memory buffer may be larger than the
number of bytes written. This returns that total number.
void resetBuffer()
Resets buffer for output again. Output starts over at beginning of buffer.
void setBinary(SbBool flag)
Sets whether output should be ASCII (default) or binary.
SbBool isBinary() const
Returns current state of binary flag.
void setHeaderString(const SbString &str)
Sets the header for output files. This is useful, for example, if you have a
file format that is a superset of the Inventor file format and you want
Inventor to read the files. It is highly recommend that in your new header
you simply append to the header of the Inventor file format you are
extending. For example, if a new file format is based on the Inventor 2.1
file format, register a header similar to: "#Inventor V2.1 ascii MY
FILE FORMAT EXTENSION" Then all Inventor 2.1 applications (and
later) can read the file.
void resetHeaderString()
Resets the header for output files to be the default header.
static SbString getDefaultASCIIHeader()
Returns the string representing the default ASCII header.
static SbString getDefaultBinaryHeader()
Returns the string representing the default binary header.
void setFloatPrecision(int precision)
Sets the precision for writing floating point numbers, i.e. the number of
significant digits. Floating point numbers are written using %.xg format,
where 'x' is the value of the precision argument.
SEE ALSO¶
SoInput, SoWriteAction, SoTranSender