Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/model/fragment.cc')
-rw-r--r--src/model/fragment.cc17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/model/fragment.cc b/src/model/fragment.cc
index 38990d5..b655807 100644
--- a/src/model/fragment.cc
+++ b/src/model/fragment.cc
@@ -10,10 +10,14 @@
namespace model
{
+/*
+ Triangles: the number of triangles is size/3
+ Quads: the number of Quads is size/4
+*/
Fragment::Fragment(Type type, unsigned int material)
{
fragment_type = type;
- fragment_start = VertexArray::instance()->index();
+ fragment_index = VertexArray::instance()->index() / 3;
fragment_material = material;
fragment_structural_size = 0;
fragment_detail_size = 0;
@@ -22,11 +26,12 @@ Fragment::Fragment(Type type, unsigned int material)
size_t Fragment::add_vertex(math::Vector3f const & vertex, math::Vector3f const &normal, math::Color const & color, bool detail)
{
size_t n = VertexArray::instance()->add_vertex(vertex, normal, color);
-
- if (detail)
- fragment_detail_size += n;
- else
- fragment_structural_size += n;
+ if (n) {
+ if (detail)
+ fragment_detail_size += n;
+ else
+ fragment_structural_size += n;
+ }
return n;
}