forked from icemiliang/lscm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathEdge.cpp
36 lines (28 loc) · 891 Bytes
/
Edge.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <assert.h>
#include <iostream>
#include "Edge.h"
#include "Vertex.h"
using namespace MeshLib;
EdgeKey::EdgeKey(Vertex * v1, Vertex* v2) {
assert(v1->id() != v2->id());
if (v1->id() < v2->id()) {
m_vertices[0] = v1;
m_vertices[1] = v2;
}
else {
m_vertices[0] = v2;
m_vertices[1] = v1;
}
}
bool EdgeKey::operator<(const EdgeKey & key) const {
if (m_vertices[0]->id() < key.m_vertices[0]->id()) return true;
if (m_vertices[0]->id() > key.m_vertices[0]->id()) return false;
if (m_vertices[1]->id() < key.m_vertices[1]->id()) return true;
if (m_vertices[1]->id() > key.m_vertices[1]->id()) return false;
return false;
}
bool EdgeKey::operator==(const EdgeKey & key) const {
if (m_vertices[0]->id() != key.m_vertices[0]->id()) return false;
if (m_vertices[1]->id() != key.m_vertices[1]->id()) return false;
return true;
}