A homegrown 3D model format. More...
Classes | |
struct | glut::material_t |
material (used for rendering polygons) More... | |
class | glut::MaterialRegistry |
Clients of the parsing APIs must implement this interface themselves. More... | |
struct | glut::polygon_t |
polygon object. More... | |
class | glut::model_t |
model object. More... | |
struct | glut::lod_entry_t |
level-of-detail entry. contains a model and distance information More... | |
struct | glut::lod_model_t |
level-of-detail model. Contains multiple level-of-detail entries (models) More... | |
Functions | |
glut::material_t::~material_t (void) throw () | |
void | glut::material_t::clear (void) throw () |
virtual smart_ptr< material_t > | glut::MaterialRegistry::getMaterial (IN const char *id)=0 |
glut::polygon_t::~polygon_t (void) throw () | |
void | glut::polygon_t::clear (void) throw () |
glut::model_t::~model_t (void) throw () | |
void | glut::model_t::clear (void) throw () |
void | glut::model_t::render (IN const render_context_t &rc, IN RenderQueue *rq) |
this method is called to actually draw the object. | |
rect3d_t | glut::model_t::getBoundingBox (void) const throw () |
here the object must provide a bounding box. | |
glut::lod_model_t::~lod_model_t (void) throw () | |
void | glut::lod_model_t::clear (void) throw () |
void | glut::lod_model_t::render (IN const render_context_t &rc, IN RenderQueue *rq) |
this method is called to actually draw the object. | |
rect3d_t | glut::lod_model_t::getBoundingBox (void) const throw () |
here the object must provide a bounding box. | |
void | glut::parseColor (IO std::istream &stream, OUT img_color_t &color) |
void | glut::parseMaterial (IO std::istream &stream, IN const char *parentDir, OUT material_t &material) |
void | glut::parsePolygon (IN MaterialRegistry *mreg, IO std::istream &stream, OUT polygon_t &polygon) |
void | glut::parseModel (IN MaterialRegistry *mreg, IO std::istream &stream, OUT model_t &model) |
void | glut::parseLodEntry (IN MaterialRegistry *mreg, IO std::istream &stream, OUT lod_entry_t &entry) |
void | glut::parseLodModel (IN MaterialRegistry *mreg, IO std::istream &stream, OUT lod_model_t &lod_model) |
smart_ptr< MaterialRegistry > | glut::getSimpleRegistry (IN const char *materialDir) |
get a simple implementation of a material registry. | |
smart_ptr< Renderable > | glut::loadModel (IN const char *filename, IN MaterialRegistry *reg) |
load a model from a Wavepacket Glut Model file (.wgm extension, normally) | |
void | glut::writeModelToStream (IO std::ostream &stream, IN const model_t &model) |
assumes you have already written the key name, this will write the opening and closing brackets | |
Variables | |
int | glut::material_t::texture_id |
openGL texture if nonzero | |
bool | glut::material_t::isTransparent |
does texture contain non-1 alpha? | |
glut_color_t | glut::material_t::color |
use color if no texture ID | |
int | glut::polygon_t::nVertices |
number of vertices in the polygon | |
int * | glut::polygon_t::indices |
array of vertex indices | |
float * | glut::polygon_t::u |
array of vertex texture u-coords | |
float * | glut::polygon_t::v |
array of vertex texture v-coords | |
smart_ptr< material_t > | glut::polygon_t::material |
material (texture etc) | |
point3d_t | glut::polygon_t::normal |
polygon normal | |
int | glut::model_t::nVertices |
number of vertices in model | |
point3d_t * | glut::model_t::vertices |
array of vertices | |
int | glut::model_t::nPolygons |
number of polygons in model | |
polygon_t * | glut::model_t::polygons |
array of polygons | |
rect3d_t | glut::model_t::boundingBox |
bounding box | |
model_t | glut::lod_entry_t::model |
model to use for this entry | |
float | glut::lod_entry_t::distance |
distance at which to use model | |
int | glut::lod_model_t::nEntries |
number of level-of-detail entries | |
lod_entry_t * | glut::lod_model_t::entries |
array of level-of-detail entries | |
rect3d_t | glut::lod_model_t::boundingBox |
bounding box |
A homegrown 3D model format.
This is a simple reference implementation of OpenGL-enabled 3D models.
glut::material_t::~material_t | ( | void | ) | throw () [inline, inherited] |
Definition at line 71 of file glut-model.h.
void glut::material_t::clear | ( | void | ) | throw () [inline, inherited] |
Definition at line 72 of file glut-model.h.
virtual smart_ptr<material_t> glut::MaterialRegistry::getMaterial | ( | IN const char * | id | ) | [pure virtual, inherited] |
glut::polygon_t::~polygon_t | ( | void | ) | throw () [inline, inherited] |
Definition at line 111 of file glut-model.h.
void glut::polygon_t::clear | ( | void | ) | throw () [inline, inherited] |
Definition at line 112 of file glut-model.h.
glut::model_t::~model_t | ( | void | ) | throw () [inline, inherited] |
Definition at line 147 of file glut-model.h.
void glut::model_t::clear | ( | void | ) | throw () [inline, inherited] |
Definition at line 148 of file glut-model.h.
void glut::model_t::render | ( | IN const render_context_t & | rc, | |
IN RenderQueue * | rq | |||
) | [virtual, inherited] |
this method is called to actually draw the object.
The object can assume that all necessary transforms (translation, rotation, scaling, etc.) have already been applied. There is no default implementation since this method is the whole point of the interface!
Implements glut::Renderable.
Definition at line 150 of file model-draw.cpp.
rect3d_t glut::model_t::getBoundingBox | ( | void | ) | const throw () [inline, virtual, inherited] |
here the object must provide a bounding box.
This is a bounding box in model-relative coordinates, not world coordinates. So this bounding box does not depend on where the model is positioned or how it is rotated, for instance. There is no default implementation since an accurate bounding box is critical for performance when rendering.
Implements glut::Renderable.
Definition at line 164 of file glut-model.h.
glut::lod_model_t::~lod_model_t | ( | void | ) | throw () [inline, inherited] |
Definition at line 195 of file glut-model.h.
void glut::lod_model_t::clear | ( | void | ) | throw () [inline, inherited] |
Definition at line 196 of file glut-model.h.
void glut::lod_model_t::render | ( | IN const render_context_t & | rc, | |
IN RenderQueue * | rq | |||
) | [virtual, inherited] |
this method is called to actually draw the object.
The object can assume that all necessary transforms (translation, rotation, scaling, etc.) have already been applied. There is no default implementation since this method is the whole point of the interface!
Implements glut::Renderable.
Definition at line 195 of file model-draw.cpp.
rect3d_t glut::lod_model_t::getBoundingBox | ( | void | ) | const throw () [inline, virtual, inherited] |
here the object must provide a bounding box.
This is a bounding box in model-relative coordinates, not world coordinates. So this bounding box does not depend on where the model is positioned or how it is rotated, for instance. There is no default implementation since an accurate bounding box is critical for performance when rendering.
Implements glut::Renderable.
Definition at line 208 of file glut-model.h.
void glut::parseColor | ( | IO std::istream & | stream, | |
OUT img_color_t & | color | |||
) |
Definition at line 155 of file model-parsing.cpp.
void glut::parseMaterial | ( | IO std::istream & | stream, | |
IN const char * | parentDir, | |||
OUT material_t & | material | |||
) |
Definition at line 176 of file model-parsing.cpp.
void glut::parsePolygon | ( | IN MaterialRegistry * | mreg, | |
IO std::istream & | stream, | |||
OUT polygon_t & | polygon | |||
) |
Definition at line 227 of file model-parsing.cpp.
void glut::parseModel | ( | IN MaterialRegistry * | mreg, | |
IO std::istream & | stream, | |||
OUT model_t & | model | |||
) |
Definition at line 296 of file model-parsing.cpp.
void glut::parseLodEntry | ( | IN MaterialRegistry * | mreg, | |
IO std::istream & | stream, | |||
OUT lod_entry_t & | entry | |||
) |
Definition at line 360 of file model-parsing.cpp.
void glut::parseLodModel | ( | IN MaterialRegistry * | mreg, | |
IO std::istream & | stream, | |||
OUT lod_model_t & | lod_model | |||
) |
Definition at line 391 of file model-parsing.cpp.
smart_ptr< MaterialRegistry > glut::getSimpleRegistry | ( | IN const char * | materialDir | ) |
get a simple implementation of a material registry.
Intended for testing only. Caller must provide root of material directory tree.
Definition at line 101 of file simple-registry.cpp.
smart_ptr< Renderable > glut::loadModel | ( | IN const char * | filename, | |
IN MaterialRegistry * | reg | |||
) |
load a model from a Wavepacket Glut Model file (.wgm extension, normally)
Definition at line 509 of file model-parsing.cpp.
void glut::writeModelToStream | ( | IO std::ostream & | stream, | |
IN const model_t & | model | |||
) |
assumes you have already written the key name, this will write the opening and closing brackets
Definition at line 439 of file model-parsing.cpp.
int glut::material_t::texture_id [inherited] |
openGL texture if nonzero
Definition at line 81 of file glut-model.h.
bool glut::material_t::isTransparent [inherited] |
does texture contain non-1 alpha?
Definition at line 82 of file glut-model.h.
glut_color_t glut::material_t::color [inherited] |
use color if no texture ID
Definition at line 83 of file glut-model.h.
int glut::polygon_t::nVertices [inherited] |
number of vertices in the polygon
Definition at line 130 of file glut-model.h.
int* glut::polygon_t::indices [inherited] |
array of vertex indices
Definition at line 131 of file glut-model.h.
float* glut::polygon_t::u [inherited] |
array of vertex texture u-coords
Definition at line 132 of file glut-model.h.
float* glut::polygon_t::v [inherited] |
array of vertex texture v-coords
Definition at line 133 of file glut-model.h.
smart_ptr<material_t> glut::polygon_t::material [inherited] |
material (texture etc)
Definition at line 134 of file glut-model.h.
point3d_t glut::polygon_t::normal [inherited] |
polygon normal
Definition at line 135 of file glut-model.h.
int glut::model_t::nVertices [inherited] |
number of vertices in model
Definition at line 167 of file glut-model.h.
point3d_t* glut::model_t::vertices [inherited] |
array of vertices
Definition at line 168 of file glut-model.h.
int glut::model_t::nPolygons [inherited] |
number of polygons in model
Definition at line 169 of file glut-model.h.
polygon_t* glut::model_t::polygons [inherited] |
array of polygons
Definition at line 170 of file glut-model.h.
rect3d_t glut::model_t::boundingBox [inherited] |
bounding box
Definition at line 171 of file glut-model.h.
model_t glut::lod_entry_t::model [inherited] |
model to use for this entry
Definition at line 184 of file glut-model.h.
float glut::lod_entry_t::distance [inherited] |
distance at which to use model
Definition at line 185 of file glut-model.h.
int glut::lod_model_t::nEntries [inherited] |
number of level-of-detail entries
Definition at line 211 of file glut-model.h.
lod_entry_t* glut::lod_model_t::entries [inherited] |
array of level-of-detail entries
Definition at line 212 of file glut-model.h.
rect3d_t glut::lod_model_t::boundingBox [inherited] |
bounding box
Definition at line 213 of file glut-model.h.