//////////////////////////////////////////////////////////////////////////////// // MESH_SFVertex.inl // //////////////////////////////////////////////////////////////////////////////// namespace X3DTK { namespace MESH { template const typename SFTemplateVertex::MFEdge &SFTemplateVertex::getEdges() const { return _edges; } template const typename SFTemplateVertex::MFFace &SFTemplateVertex::getFaces() const { return _faces; } template VData &SFTemplateVertex::data() { return _data; } template const VData &SFTemplateVertex::data() const { return _data; } #ifdef TEMPLATE_SPECIALIZATION_SUPPORTED template template F &SFTemplateVertex::getData() { return _data.template get(); } template template F &SFTemplateVertex::ogetData() { return _data.template get(); } #endif template SFTemplateVertex::SFTemplateVertex(unsigned int i) : BaseSFVertex(i) { } template SFTemplateVertex::~SFTemplateVertex() { } template bool SFTemplateVertex::isIsolated() const { return (_edges.size() == 0); } template void SFTemplateVertex::addEdge(SFTemplateEdge *edge) { _edges.push_back(edge); } template void SFTemplateVertex::addFace(SFTemplateFace *face) { _faces.push_back(face); } template void SFTemplateVertex::removeEdge(SFTemplateEdge *edge) { typename MFEdge::iterator it = std::find(_edges.begin(), _edges.end(), edge); if (it != _edges.end()) _edges.erase(it); } template void SFTemplateVertex::removeFace(SFTemplateFace *face) { typename MFFace::iterator it = std::find(_faces.begin(), _faces.end(), face); if (it != _faces.end()) _faces.erase(it); } template std::ostream& operator<<(std::ostream& o, const SFTemplateVertex &v) { o << "[ " << v.getIndex() << " ]"; return o; } } }