Graphite  Version 3
An experimental 3D geometry processing program
OGF::OutputGraphiteFile Class Reference

An extension of InputGeoFile for storing a complete Graphite scenegraph in a structured binary file. More...

#include <OGF/scene_graph/types/geofile.h>

Inheritance diagram for OGF::OutputGraphiteFile:
GEO::OutputGeoFile GEO::GeoFile

Public Member Functions

 OutputGraphiteFile (const std::string &filename, index_t compression_level=3)
 OutputGeoFile constructor. More...
 
void write_history (const std::vector< std::string > &history)
 Writes the commands history into the geofile. More...
 
void write_scene_graph_header (const ArgList &args)
 Writes scene graph informations. More...
 
void write_grob_header (const ArgList &args)
 Writes a grob header. More...
 
void write_shader (const ArgList &args)
 Writes shader informations. More...
 
void write_arg_list (const ArgList &args)
 Writes an ArgList to the GeoFile. More...
 
size_t arg_list_size (const ArgList &args) const
 Computes the size of an ArgList. More...
 
- Public Member Functions inherited from GEO::OutputGeoFile
 OutputGeoFile (const std::string &filename, index_t compression_level=3)
 OutputGeoFile constructor. More...
 
void write_attribute_set (const std::string &name, index_t nb_items)
 Writes a new attribute set to the file. More...
 
void write_attribute (const std::string &attribute_set_name, const std::string &attribute_name, const std::string &element_type, size_t element_size, index_t dimension, const void *data)
 Writes a new attribute to the file. More...
 
void write_comment (const std::string &comment)
 Writes a new comment to the file. More...
 
void write_command_line (const std::vector< std::string > &args)
 Writes the command line to the file. More...
 
void write_separator ()
 Writes a separator into the file. More...
 
- Public Member Functions inherited from GEO::GeoFile
 GeoFile (const std::string &filename)
 GeoFile constructor. More...
 
 ~GeoFile ()
 GeoFile destructor.
 
bool is_ascii () const
 Tests whether this GeoFile is ascii. More...
 
const std::string & current_chunk_class () const
 Gets the current chunk class. More...
 
long current_chunk_size () const
 Gets the size of the current chunk. More...
 
AttributeSetInfofind_attribute_set (const std::string &name)
 Finds an attribute set by name. More...
 
const AttributeSetInfofind_attribute_set (const std::string &name) const
 Finds an attribute set by name. More...
 
index_t read_int ()
 Reads an integer from the file. More...
 
void write_int (index_t x, const char *comment=nullptr)
 Writes an integer into the file. More...
 
std::string read_string ()
 Reads a string from the file. More...
 
void write_string (const std::string &s, const char *comment=nullptr)
 Writes a string into the file. More...
 
size_t read_size ()
 Reads an unsigned 64 bits integer from the file. More...
 
void write_size (size_t x)
 Writes an unsigned 64 bits integer into the file. More...
 
std::string read_chunk_class ()
 Reads a chunk class from the file. More...
 
void write_chunk_class (const std::string &chunk_class)
 Writes a chunk class into the file. More...
 
void write_string_array (const std::vector< std::string > &strings)
 Writes a string array into the file. More...
 
void read_string_array (std::vector< std::string > &strings)
 Reads a string array from the file. More...
 
size_t string_size (const std::string &s) const
 Gets the size in bytes used by a given string in the file. More...
 
size_t string_array_size (const std::vector< std::string > &strings) const
 Gets the size in bytes used by a given string array in the file. More...
 
void read_chunk_header ()
 Reads a chunk header from the file.
 
void write_chunk_header (const std::string &chunk_class, size_t size)
 Writes a chunk header into the file. More...
 
void check_chunk_size ()
 Checks that the actual chunk size corresponds to the specified chunk size.
 
void check_zlib_version ()
 Compares the zlib version declared in the header file with the zlib version obtained from the runtime, and outputs an error message if they differ.
 
void clear_attribute_maps ()
 Clears all memorized information about attributes and attribute sets. More...
 

Additional Inherited Members

- Public Types inherited from GEO::GeoFile
typedef bool(* AsciiAttributeSerializer) (FILE *file, Memory::pointer base_address, index_t nb_elements)
 The function pointer type for reading and writing attributes in ASCII files.
 
- Static Public Member Functions inherited from GEO::GeoFile
static void register_ascii_attribute_serializer (const std::string &type_name, AsciiAttributeSerializer read, AsciiAttributeSerializer write)
 Declares a new attribute type that can be read from and written to ascii files. More...
 
- Protected Attributes inherited from GEO::GeoFile
std::string filename_
 
gzFile file_
 
bool ascii_
 
FILE * ascii_file_
 
std::string current_chunk_class_
 
long current_chunk_size_
 
long current_chunk_file_pos_
 
std::map< std::string, AttributeSetInfoattribute_sets_
 
- Static Protected Attributes inherited from GEO::GeoFile
static std::map< std::string, AsciiAttributeSerializerascii_attribute_read_
 
static std::map< std::string, AsciiAttributeSerializerascii_attribute_write_
 

Detailed Description

An extension of InputGeoFile for storing a complete Graphite scenegraph in a structured binary file.

In addition to GeoFile, InputGraphiteFile handles the following chunk classes:

  • SCNE (Scene): an ArgList with the global attributes related with the Graphite scene graph (current_object)
  • HIST (History): a strings array with all the commands that were recorded in the Graphite session
  • GROB (Graphite Object): an ArgList with the attributes that define a grob (name and classname)
  • SHDR (Shader): an ArgList with the attributes that define a shader attached to a grob (classname and all the properties)

Definition at line 129 of file geofile.h.

Constructor & Destructor Documentation

◆ OutputGraphiteFile()

OGF::OutputGraphiteFile::OutputGraphiteFile ( const std::string &  filename,
index_t  compression_level = 3 
)

OutputGeoFile constructor.

Parameters
[in]filenamea const reference to the file name.
[in]compression_leveloptional compression level, use 0 for uncompressed and 6 for maximum compression.

Member Function Documentation

◆ arg_list_size()

size_t OGF::OutputGraphiteFile::arg_list_size ( const ArgList args) const

Computes the size of an ArgList.

Parameters
[in]argsa const reference to the ArgList
Returns
the size in bytes required to store the ArgList in a GeoFile.

◆ write_arg_list()

void OGF::OutputGraphiteFile::write_arg_list ( const ArgList args)

Writes an ArgList to the GeoFile.

Parameters
[in]argsa const reference to the ArgList

◆ write_grob_header()

void OGF::OutputGraphiteFile::write_grob_header ( const ArgList args)

Writes a grob header.

Parameters
[in]argsthe ArgList that defines the grob name, class name and attirbutes. It should have at least class_name and name

◆ write_history()

void OGF::OutputGraphiteFile::write_history ( const std::vector< std::string > &  history)

Writes the commands history into the geofile.

Parameters
[in]historya vector of strings with the history

◆ write_scene_graph_header()

void OGF::OutputGraphiteFile::write_scene_graph_header ( const ArgList args)

Writes scene graph informations.

Parameters
[in]argsthe ArgList that defines the scene graph properties to be saved.

◆ write_shader()

void OGF::OutputGraphiteFile::write_shader ( const ArgList args)

Writes shader informations.

Parameters
[in]argsthe ArgList that defines the shader class and properties, should have at least class_name.

The documentation for this class was generated from the following file: