From adda2963253cee8dce4ff7bb44e0317278f00748 Mon Sep 17 00:00:00 2001 From: ponchio Date: Sun, 4 Jul 2004 14:21:31 +0000 Subject: [PATCH] Added operator< to Link --- apps/nexus/border.h | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/apps/nexus/border.h b/apps/nexus/border.h index f78c6217..2e72730a 100644 --- a/apps/nexus/border.h +++ b/apps/nexus/border.h @@ -24,6 +24,9 @@ History $Log: not supported by cvs2svn $ +Revision 1.1 2004/07/02 13:00:02 ponchio +Created. + ****************************************************************************/ #ifndef NXS_BORDER_H @@ -32,21 +35,40 @@ $Log: not supported by cvs2svn $ namespace nxs { struct Link { - Link(): start_vertex(0xffff), end_vertex(0xffff), end_patch(0xffffffff) {} - - unsigned short start_vertex; - unsigned short end_vertex; + Link(): start_vert(0xffff), end_vert(0xffff), end_patch(0xffffffff) {} + Link(unsigned short sv, unsigned short ev, unsigned int ep): + start_vert(sv), end_vert(ev), end_patch(ep) {} + unsigned short start_vert; + unsigned short end_vert; unsigned int end_patch; - bool IsNull() { return start_vertex == 0xffff; } + bool IsNull() { return end_patch == 0xffffffff; } + + bool operator==(const Link &l) { + return end_patch == l.end_patch && + end_vert == l.end_vert && + start_vert == l.start_vert; + } + bool operator<(const Link &l) { + if(end_patch == l.end_patch) { + if(start_vert == l.start_vert) { + return end_vert < l.end_vert; + } else + return start_vert < l.start_vert; + } else + return end_patch < l.end_patch; + } }; class Border { public: + Border(Link *l = NULL, unsigned short s = 0): start(l), size(s) {} unsigned int Size() { return size; } Link &operator[](unsigned int i) { return start[i]; } + + //TODO implement an iterator! private: - unsigned short size; Link *start; + unsigned short size; }; }