forked from edwardsjohnmartin/gvd
/
mvertex_network.cpp
59 lines (47 loc) · 1.81 KB
/
mvertex_network.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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*******************************************************
** Generalized Voronoi Diagram Project **
** Copyright (c) 2015 John Martin Edwards **
** Scientific Computing and Imaging Institute **
** 72 S Central Campus Drive, Room 3750 **
** Salt Lake City, UT 84112 **
** **
** For information about this project contact **
** John Edwards at **
** edwardsjohnmartin@gmail.com **
** or visit **
** sci.utah.edu/~jedwards/research/gvd/index.html **
*******************************************************/
#include "./mvertex_network.h"
NAMESPACE_OCT_BEGIN
MVertexNetwork make_mvertex_network() {
MVertexNetwork mvn;
mvn.header.reset(new int[2]);
SetNumVertices(0, &mvn);
mvn.vertex_array_capacity = 64;
mvn.vertices = shared_array<Vertex>(new Vertex[64]);
SetNumCPoints(0, &mvn);
mvn.cpoint_array_capacity = 0;
mvn.cpoints = shared_array<GeomPoint>();
UVertexNetwork uvn = make_vertex_network(mvn);
Initialize(&uvn);
update_mvertex_network(uvn, mvn);
return mvn;
}
UVertexNetwork make_vertex_network(MVertexNetwork mvn) {
UVertexNetwork vn;
vn.header = mvn.header.get();
// vn.num_vertices = NumVertices(mvn);
vn.vertices = mvn.vertices.get();
// vn.num_cpoints = NumCPoints(mvn);
vn.cpoints = mvn.cpoints.get();
return vn;
}
void update_mvertex_network(UVertexNetwork vn, MVertexNetwork& mvn) {
assert(vn.vertices == mvn.vertices.get());
assert(vn.cpoints == mvn.cpoints.get());
// mvn.num_vertices = NumVertices(vn);
// mvn.num_cpoints = NumCPoints(vn);
SetNumVertices(NumVertices(vn), &mvn);
SetNumCPoints(NumCPoints(vn), &mvn);
}
NAMESPACE_OCT_END