MCPcopy Create free account
hub / github.com/PyMesh/PyMesh / run

Method run

tools/CGAL/Arrangement2.cpp:16–66  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14using namespace PyMesh;
15
16void Arrangement2::run() {
17 const size_t num_pts = m_points.rows();
18
19 std::vector<Point_2> points;
20 points.reserve(num_pts);
21 for (size_t i=0; i<num_pts; i++) {
22 points.emplace_back(m_points(i, 0), m_points(i, 1));
23 }
24
25 const size_t num_segments = m_segments.rows();
26 std::vector<Segment_2> segments;
27 segments.reserve(num_segments);
28 for (size_t i=0; i<num_segments; i++) {
29 segments.emplace_back(
30 points[m_segments(i, 0)],
31 points[m_segments(i, 1)]);
32 }
33
34 CGAL::insert(m_arrangement, segments.begin(), segments.end());
35 CGAL::is_valid(m_arrangement);
36
37 const size_t num_vertices = m_arrangement.number_of_vertices();
38 m_vertices.resize(num_vertices, 2);
39 size_t count = 0;
40 for (auto itr=m_arrangement.vertices_begin();
41 itr != m_arrangement.vertices_end(); itr++) {
42 m_vertices(count, 0) = CGAL::to_double(itr->point()[0]);
43 m_vertices(count, 1) = CGAL::to_double(itr->point()[1]);
44 itr->set_data(count);
45 count++;
46 }
47
48 const size_t num_edges = m_arrangement.number_of_edges();
49 m_edges.resize(num_edges, 2);
50 count = 0;
51 for (auto itr=m_arrangement.edges_begin();
52 itr != m_arrangement.edges_end(); itr++) {
53 m_edges(count, 0) = itr->source()->data();
54 m_edges(count, 1) = itr->target()->data();
55 itr->set_data(count);
56 itr->twin()->set_data(count);
57 count++;
58 }
59
60 count=0;
61 for (auto itr=m_arrangement.faces_begin();
62 itr != m_arrangement.faces_end(); itr++) {
63 itr->set_data(count);
64 count++;
65 }
66}
67
68std::vector<std::pair<Arrangement2::ElementType, int>> Arrangement2::query(
69 const Matrix2Fr& pts) {

Callers 2

mainFunction · 0.95
compute_cell_labelsFunction · 0.95

Calls 2

beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected