c3d-utils
|
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