diff options
author | Stijn Buys <ingar@osirion.org> | 2008-07-23 15:16:56 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-07-23 15:16:56 +0000 |
commit | 426b766efbccdd8f5715de9526464db251fac30c (patch) | |
tree | f1abfea7c1d4d4f1e97bd534d447cb6907576e2f /src/model/fragment.h | |
parent | 67517585e9b55967f5236ed5ebca77173eb2f2e3 (diff) |
preparing for fragment rendering
Diffstat (limited to 'src/model/fragment.h')
-rw-r--r-- | src/model/fragment.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/model/fragment.h b/src/model/fragment.h new file mode 100644 index 0000000..ba4eaf9 --- /dev/null +++ b/src/model/fragment.h @@ -0,0 +1,51 @@ +/* + model/fragment.h + This file is part of the Osirion project and is distributed under + the terms of the GNU General Public License version 2 +*/ + +#ifndef __INCLUDED_MODEL_FRAGMENT_H__ +#define __INCLUDED_MODEL_FRAGMENT_H__ + +#include "math/vector3f.h" +#include "math/color.h" + +namespace model +{ + +/// a fragment of a model, a pointer into a continuues part of the VertexArray containt Tris or Quad data +class Fragment +{ +public: + /// fragment primitive type: triangles or quads + enum Type {Triangles, Quads}; + + /// create a new fragment + Fragment (Type type, unsigned int material); + + /// add a vertex to the fragment + size_t add_vertex(math::Vector3f const & vertex, math::Vector3f const &normal, math::Color const & color, bool detail); + + /// VertexArray index of the start of the fragment + inline size_t start() const { return fragment_start; } + + /// number of structural vertices in the fragment + inline size_t structural_size() const { return fragment_structural_size; } + + /// number of detail vertices in the fragment + inline size_t detail_size() const { return fragment_detail_size; } + + /// material flags + inline unsigned int material() { return fragment_material; } + +private: + Type fragment_type; + size_t fragment_start; + size_t fragment_structural_size; + size_t fragment_detail_size; + unsigned int fragment_material; +}; + +} + +#endif // __INCLUDED_MODEL_FRAGMENT_H__ |