diff --git a/include/Algo/Import/importObjTex.h b/include/Algo/Import/importObjTex.h index ee52b1dc725e595e0e407f83c0e9aa0881a68062..285bec1347920f75fa6f3cb21e8579cd7f33130c 100644 --- a/include/Algo/Import/importObjTex.h +++ b/include/Algo/Import/importObjTex.h @@ -369,7 +369,13 @@ public: */ bool createGroupMatVBO_PTN( Utils::VBO* positionVBO, Utils::VBO* texcoordVBO, Utils::VBO* normalVBO); - + /** + * @brief add a dart by each face of group in a vector + * @param groupId the group to add + * @param dartFaces the vector in which we want to add + * @return the number of faces added. + */ + unsigned int storeFacesOfGroup(unsigned int groupId, std::vector& dartFaces); }; diff --git a/include/Algo/Import/importObjTex.hpp b/include/Algo/Import/importObjTex.hpp index d51b6f92b1e7416b883f03c4b3d134c420328061..bc097709ce52dc404bbc431d656bcc00e70b2883 100644 --- a/include/Algo/Import/importObjTex.hpp +++ b/include/Algo/Import/importObjTex.hpp @@ -1395,6 +1395,22 @@ bool OBJModel::import( const std::string& filename, std::vector +unsigned int OBJModel::storeFacesOfGroup(unsigned int groupId, std::vector& dartFaces) +{ + unsigned int nb=dartFaces.size(); + + TraversorF traf(m_map); + for (Dart d=traf.begin(); d!= traf.end(); d = traf.next()) + { + if (m_groups[d] == groupId) + { + dartFaces.push_back(d); + } + } + + return dartFaces.size()-nb; +} }