diff --git a/WFMtl.cc b/WFMtl.cc index 2c03d7a..e77f27e 100644 --- a/WFMtl.cc +++ b/WFMtl.cc @@ -129,6 +129,19 @@ string WFMtl::stripFirstToken(string & input) return token; } -void WFMtl::render() +void WFMtl::renderBegin(const string & mtlname) { + map< string, vector< vector > >::iterator it = m_data.find(mtlname); + if (it == m_data.end()) + return; + /* TODO: draw the material at it->second */ } + +void WFMtl::renderEnd(const string & mtlname) +{ + map< string, vector< vector > >::iterator it = m_data.find(mtlname); + if (it == m_data.end()) + return; + /* TODO: end the material at it->second */ +} + diff --git a/WFMtl.hh b/WFMtl.hh index 41b2c32..df58a13 100644 --- a/WFMtl.hh +++ b/WFMtl.hh @@ -8,7 +8,8 @@ class WFMtl { public: bool load(const std::string & filename); - void render(); + void renderBegin(const std::string & mtlname); + void renderEnd(const std::string & mtlname); private: /* methods */ diff --git a/WFObj.cc b/WFObj.cc index d827759..7e44756 100644 --- a/WFObj.cc +++ b/WFObj.cc @@ -258,6 +258,11 @@ GLuint WFObj::render() glEnd(); inFace = false; } + if (inMaterial) + { + material.renderEnd(currentMaterialName); + inMaterial = false; + } glEndList(); return list; }