c3d-utils
uuc3dlib/skeleton_info.hpp
00001 #ifndef SAJKEUIWOCN389SN56702KDKF
00002 #define SAJKEUIWOCN389SN56702KDKF
00003 
00004 // vim:set tabstop=4 expandtab cindent:
00005 
00006 // Author: Geert-Jan Giezeman <geert@cs.uu.nl>
00007 // Copyright: Utrecht University, 2011
00008 
00009 #include <string>
00010 #include <vector>
00011 
00012 namespace UuIcsC3d {
00013 
00025 
00026 struct ConstNameRange {
00028         ConstNameRange() : m_begin(0), m_end(0) {}
00030         ConstNameRange(std::string *begin, std::string * end): m_begin(begin), m_end(end) {}
00032         std::string const *begin() const {return m_begin;}
00034         std::string const *end() const {return m_end;}
00035 private:
00036         std::string const *m_begin;
00037         std::string const *m_end;
00038 };
00039 
00041 struct MarkerNames {
00043         virtual int count() const;
00045         virtual std::string const *begin() const = 0;
00047         virtual std::string const *end() const = 0;
00048 };
00049 
00056 struct SkeletonInfo: MarkerNames {
00057         struct GrEl { int gr; int el ;};
00059         virtual int group_count() const =0;
00062         virtual std::string group_name(int g) const =0;
00064         virtual ConstNameRange group_members(int g) const =0;
00068         virtual std::vector<int> group_connections(int g) const =0;
00069         virtual GrEl to_grel(int label_no) const =0;
00070         virtual int to_label_no(GrEl const & grel) const =0;
00071 };
00076 }
00077 
00078 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations