mirror of https://github.com/CGAL/cgal
removing redefinition of Support_line in KSP_2
This commit is contained in:
parent
55c9b036e0
commit
fa11cf6fce
|
|
@ -38,13 +38,13 @@ public:
|
|||
typedef typename Kernel::Line_2 Line_2;
|
||||
typedef typename Kernel::Segment_2 Segment_2;
|
||||
|
||||
typedef Support_line<Kernel> Support_line;
|
||||
typedef Support_line<Kernel> Support_line_DS;
|
||||
typedef Segment Segment;
|
||||
typedef Vertex<FT> Vertex;
|
||||
|
||||
typedef Meta_vertex<Point_2> Meta_vertex;
|
||||
|
||||
typedef std::vector<Support_line> Support_lines;
|
||||
typedef std::vector<Support_line_DS> Support_lines;
|
||||
typedef std::vector<Segment> Segments;
|
||||
typedef std::vector<Vertex> Vertices;
|
||||
|
||||
|
|
@ -96,8 +96,8 @@ public:
|
|||
Segment& segment(std::size_t idx) { return m_segments[idx]; }
|
||||
|
||||
std::size_t number_of_support_lines() const { return m_support_lines.size(); }
|
||||
const Support_line& support_line(std::size_t idx) const { return m_support_lines[idx]; }
|
||||
Support_line& support_line(std::size_t idx) { return m_support_lines[idx]; }
|
||||
const Support_line_DS& support_line(std::size_t idx) const { return m_support_lines[idx]; }
|
||||
Support_line_DS& support_line(std::size_t idx) { return m_support_lines[idx]; }
|
||||
|
||||
std::size_t number_of_meta_vertices() const { return m_meta_vertices.size(); }
|
||||
const Meta_vertex& meta_vertex(std::size_t idx) const { return m_meta_vertices[idx]; }
|
||||
|
|
@ -216,37 +216,37 @@ public:
|
|||
|
||||
|
||||
// Segment/idx -> Support_line
|
||||
inline const Support_line& support_line_of_segment(const Segment& segment) const
|
||||
inline const Support_line_DS& support_line_of_segment(const Segment& segment) const
|
||||
{
|
||||
return m_support_lines[segment.support_line_idx()];
|
||||
}
|
||||
inline Support_line& support_line_of_segment(const Segment& segment)
|
||||
inline Support_line_DS& support_line_of_segment(const Segment& segment)
|
||||
{
|
||||
return m_support_lines[segment.support_line_idx()];
|
||||
}
|
||||
inline const Support_line& support_line_of_segment(std::size_t segment_idx) const
|
||||
inline const Support_line_DS& support_line_of_segment(std::size_t segment_idx) const
|
||||
{
|
||||
return support_line_of_segment(m_segments[segment_idx]);
|
||||
}
|
||||
inline Support_line& support_line_of_segment(std::size_t segment_idx)
|
||||
inline Support_line_DS& support_line_of_segment(std::size_t segment_idx)
|
||||
{
|
||||
return support_line_of_segment(m_segments[segment_idx]);
|
||||
}
|
||||
|
||||
// Vertex/idx -> Support_line
|
||||
inline const Support_line& support_line_of_vertex(const Vertex& vertex) const
|
||||
inline const Support_line_DS& support_line_of_vertex(const Vertex& vertex) const
|
||||
{
|
||||
return support_line_of_segment(vertex.segment_idx());
|
||||
}
|
||||
inline Support_line& support_line_of_vertex(const Vertex& vertex)
|
||||
inline Support_line_DS& support_line_of_vertex(const Vertex& vertex)
|
||||
{
|
||||
return support_line_of_segment(vertex.segment_idx());
|
||||
}
|
||||
inline const Support_line& support_line_of_vertex(std::size_t vertex_idx) const
|
||||
inline const Support_line_DS& support_line_of_vertex(std::size_t vertex_idx) const
|
||||
{
|
||||
return support_line_of_vertex(m_vertices[vertex_idx]);
|
||||
}
|
||||
inline Support_line& support_line_of_vertex(std::size_t vertex_idx)
|
||||
inline Support_line_DS& support_line_of_vertex(std::size_t vertex_idx)
|
||||
{
|
||||
return support_line_of_vertex(m_vertices[vertex_idx]);
|
||||
}
|
||||
|
|
@ -294,7 +294,7 @@ public:
|
|||
const Meta_vertex& meta_vertex = m_meta_vertices[meta_vertex_idx];
|
||||
for (std::size_t support_line_idx : meta_vertex.support_lines_idx())
|
||||
{
|
||||
const Support_line& support_line = m_support_lines[support_line_idx];
|
||||
const Support_line_DS& support_line = m_support_lines[support_line_idx];
|
||||
for (std::size_t segment_idx : support_line.segments_idx())
|
||||
{
|
||||
const Segment& segment = m_segments[segment_idx];
|
||||
|
|
@ -309,7 +309,7 @@ public:
|
|||
{
|
||||
return point_of_vertex(vertex).bbox();
|
||||
}
|
||||
inline CGAL::Bbox_2 bbox(const Support_line& support_line) const
|
||||
inline CGAL::Bbox_2 bbox(const Support_line_DS& support_line) const
|
||||
{
|
||||
return std::accumulate(support_line.segments_idx().begin(), support_line.segments_idx().end(),
|
||||
CGAL::Bbox_2(),
|
||||
|
|
@ -330,7 +330,7 @@ public:
|
|||
Segment_2 segment_2(std::size_t segment_idx) const
|
||||
{
|
||||
const Segment& segment = m_segments[segment_idx];
|
||||
const Support_line& support_line = m_support_lines[segment.support_line_idx()];
|
||||
const Support_line_DS& support_line = m_support_lines[segment.support_line_idx()];
|
||||
const Vertex& source = m_vertices[segment.source_idx()];
|
||||
const Vertex& target = m_vertices[segment.target_idx()];
|
||||
|
||||
|
|
@ -426,14 +426,14 @@ public:
|
|||
|
||||
std::size_t add_support_line(const Segment_2& segment)
|
||||
{
|
||||
m_support_lines.push_back(Support_line(segment));
|
||||
m_support_lines.push_back(Support_line_DS(segment));
|
||||
return std::size_t(m_support_lines.size() - 1);
|
||||
}
|
||||
|
||||
Segment& add_segment(const Segment_2 segment, std::size_t input_idx = std::size_t(-1))
|
||||
{
|
||||
// Check if support line exists first
|
||||
Support_line new_support_line(segment);
|
||||
Support_line_DS new_support_line(segment);
|
||||
std::size_t support_line_idx = std::size_t(-1);
|
||||
for (std::size_t i = 0; i < number_of_support_lines(); ++i)
|
||||
if (new_support_line == support_line(i))
|
||||
|
|
@ -563,7 +563,7 @@ public:
|
|||
// std::size_t source_idx = segment.source_idx();
|
||||
std::size_t target_idx = segment.target_idx();
|
||||
|
||||
Support_line& support_line = support_line_of_segment(segment_idx);
|
||||
Support_line_DS& support_line = support_line_of_segment(segment_idx);
|
||||
|
||||
std::sort(meta_vertices_idx.begin(), meta_vertices_idx.end(),
|
||||
[&](const std::size_t& a,
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public:
|
|||
typedef typename Kernel::Vector_2 Vector_2;
|
||||
|
||||
typedef KSP_2::internal::Data_structure<Kernel> Data;
|
||||
typedef typename Data::Support_line Support_line;
|
||||
typedef typename Data::Support_line_DS Support_line_DS;
|
||||
typedef typename Data::Segment Segment;
|
||||
typedef typename Data::Vertex Vertex;
|
||||
|
||||
|
|
@ -107,7 +107,7 @@ public:
|
|||
// Prepare output by sorting segments along support lines;
|
||||
for (std::size_t i = 0; i < m_data.number_of_support_lines(); ++ i)
|
||||
{
|
||||
Support_line& support_line = m_data.support_line(i);
|
||||
Support_line_DS& support_line = m_data.support_line(i);
|
||||
std::sort (support_line.segments_idx().begin(), support_line.segments_idx().end(),
|
||||
[&](const std::size_t& a, const std::size_t& b) -> bool
|
||||
{
|
||||
|
|
@ -121,7 +121,7 @@ public:
|
|||
{
|
||||
for (std::size_t i = 0; i < m_data.number_of_support_lines(); ++ i)
|
||||
{
|
||||
const Support_line& support_line = m_data.support_line(i);
|
||||
const Support_line_DS& support_line = m_data.support_line(i);
|
||||
for (std::size_t s : support_line.segments_idx())
|
||||
{
|
||||
if (s == std::size_t(-1))
|
||||
|
|
@ -555,7 +555,7 @@ private:
|
|||
|
||||
void initialize_vertices_directions (Segment& segment, unsigned int k)
|
||||
{
|
||||
const Support_line& support_line = m_data.support_line_of_segment (segment);
|
||||
const Support_line_DS& support_line = m_data.support_line_of_segment (segment);
|
||||
|
||||
Vertex& source = m_data.source_of_segment (segment);
|
||||
Vertex& target = m_data.target_of_segment (segment);
|
||||
|
|
@ -701,7 +701,7 @@ private:
|
|||
if (m_data.segment_of_vertex(vertex).support_line_idx() == j)
|
||||
continue;
|
||||
|
||||
const Support_line& support_line = m_data.support_line(j);
|
||||
const Support_line_DS& support_line = m_data.support_line(j);
|
||||
|
||||
if (!CGAL::do_overlap(si_bbox, support_line_bboxes[j]))
|
||||
continue;
|
||||
|
|
@ -715,7 +715,7 @@ private:
|
|||
if (!KSP::internal::intersection(si, segments_2[segment_idx], point))
|
||||
continue;
|
||||
|
||||
Support_line& sli = m_data.support_line_of_vertex(vertex);
|
||||
Support_line_DS& sli = m_data.support_line_of_vertex(vertex);
|
||||
FT dist = CGAL::approximate_sqrt (CGAL::squared_distance (sli.to_2d(vertex.point(0)), point));
|
||||
FT time = dist / vertex.speed();
|
||||
|
||||
|
|
@ -755,7 +755,7 @@ private:
|
|||
// intersection between two colinear segments
|
||||
for (std::size_t i = 0; i < m_data.number_of_support_lines(); ++ i)
|
||||
{
|
||||
Support_line& support_line = m_data.support_line(i);
|
||||
Support_line_DS& support_line = m_data.support_line(i);
|
||||
if (support_line.connected_components() < 2)
|
||||
continue;
|
||||
|
||||
|
|
@ -814,7 +814,7 @@ private:
|
|||
|
||||
for (std::size_t i = 0; i < m_data.number_of_support_lines(); ++ i)
|
||||
{
|
||||
Support_line& support_line = m_data.support_line(i);
|
||||
Support_line_DS& support_line = m_data.support_line(i);
|
||||
|
||||
for (std::size_t segment_idx : support_line.segments_idx())
|
||||
{
|
||||
|
|
@ -930,7 +930,7 @@ private:
|
|||
{
|
||||
for (std::size_t i = 0; i < m_data.number_of_support_lines(); ++ i)
|
||||
{
|
||||
const Support_line& support_line = m_data.support_line(i);
|
||||
const Support_line_DS& support_line = m_data.support_line(i);
|
||||
|
||||
CGAL_assertion (support_line.meta_vertices_idx().size() > 1);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue