Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
igl::geodesic::IntervalList Class Reference
+ Collaboration diagram for igl::geodesic::IntervalList:

Public Member Functions

 IntervalList ()
 
 ~IntervalList ()
 
void clear ()
 
void initialize (edge_pointer e)
 
interval_pointer covering_interval (double offset)
 
void find_closest_point (SurfacePoint *point, double &offset, double &distance, interval_pointer &interval)
 
unsigned number_of_intervals ()
 
interval_pointer last ()
 
double signal (double x)
 
interval_pointerfirst ()
 
edge_pointeredge ()
 

Private Attributes

interval_pointer m_first
 
edge_pointer m_edge
 

Detailed Description

Constructor & Destructor Documentation

◆ IntervalList()

igl::geodesic::IntervalList::IntervalList ( )
inline
1339{m_first = NULL;};
interval_pointer m_first
Definition exact_geodesic.cpp:1430

References m_first.

◆ ~IntervalList()

igl::geodesic::IntervalList::~IntervalList ( )
inline
1340{};

Member Function Documentation

◆ clear()

void igl::geodesic::IntervalList::clear ( )
inline
1343 {
1344 m_first = NULL;
1345 };

References m_first.

◆ covering_interval()

interval_pointer igl::geodesic::IntervalList::covering_interval ( double  offset)
inline
1354 {
1355 assert(offset >= 0.0 && offset <= m_edge->length());
1356
1358 while(p && p->stop() < offset)
1359 {
1360 p = p->next();
1361 }
1362
1363 return p;// && p->start() <= offset ? p : NULL;
1364 };
interval_pointer & next()
Definition exact_geodesic.cpp:1305
Interval * interval_pointer
Definition exact_geodesic.cpp:1190
double length(std::vector< SurfacePoint > &path)
Definition exact_geodesic.cpp:1682

References igl::geodesic::length(), m_first, igl::geodesic::Interval::next(), and igl::geodesic::Interval::stop().

Referenced by igl::geodesic::GeodesicAlgorithmExact::best_first_interval(), signal(), and igl::geodesic::GeodesicAlgorithmExact::visible_from_source().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ edge()

edge_pointer & igl::geodesic::IntervalList::edge ( )
inline
1428{return m_edge;};
edge_pointer m_edge
Definition exact_geodesic.cpp:1431

References m_edge.

Referenced by igl::geodesic::GeodesicAlgorithmExact::update_list_and_queue().

+ Here is the caller graph for this function:

◆ find_closest_point()

void igl::geodesic::IntervalList::find_closest_point ( SurfacePoint point,
double &  offset,
double &  distance,
interval_pointer interval 
)
inline
1370 {
1373 interval = NULL;
1374
1375 double x,y;
1376 m_edge->local_coordinates(point, x, y);
1377
1378 while(p)
1379 {
1380 if(p->min()<GEODESIC_INF)
1381 {
1382 double o, d;
1383 p->find_closest_point(x, y, o, d);
1384 if(d < distance)
1385 {
1386 distance = d;
1387 offset = o;
1388 interval = p;
1389 }
1390 }
1391 p = p->next();
1392 }
1393 };
void local_coordinates(Point3D *point, double &x, double &y)
Definition exact_geodesic.cpp:520
const Scalar & y
Definition MathFunctions.h:552
double const GEODESIC_INF
Definition exact_geodesic.cpp:32
TCoord< P > x(const P &p)
Definition geometry_traits.hpp:297
double distance(const P &p1, const P &p2)
Definition geometry_traits.hpp:329
void offset(Slic3r::ExPolygon &sh, coord_t distance, const PolygonTag &)
Definition geometries.hpp:132

References igl::geodesic::Interval::find_closest_point(), igl::geodesic::GEODESIC_INF, igl::geodesic::Edge::local_coordinates(), m_edge, m_first, igl::geodesic::Interval::min(), and igl::geodesic::Interval::next().

Referenced by igl::geodesic::GeodesicAlgorithmExact::best_first_interval(), and igl::geodesic::GeodesicAlgorithmExact::best_point_on_the_edge_set().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ first()

interval_pointer & igl::geodesic::IntervalList::first ( )
inline
1427{return m_first;};

References m_first.

Referenced by igl::geodesic::GeodesicAlgorithmExact::update_list_and_queue().

+ Here is the caller graph for this function:

◆ initialize()

void igl::geodesic::IntervalList::initialize ( edge_pointer  e)
inline
1348 {
1349 m_edge = e;
1350 m_first = NULL;
1351 };

References m_edge, and m_first.

◆ last()

interval_pointer igl::geodesic::IntervalList::last ( )
inline
1408 {
1410 if(p)
1411 {
1412 while(p->next())
1413 {
1414 p = p->next();
1415 }
1416 }
1417 return p;
1418 }

References m_first, and igl::geodesic::Interval::next().

+ Here is the call graph for this function:

◆ number_of_intervals()

unsigned igl::geodesic::IntervalList::number_of_intervals ( )
inline
1396 {
1398 unsigned count = 0;
1399 while(p)
1400 {
1401 ++count;
1402 p = p->next();
1403 }
1404 return count;
1405 }
IGL_INLINE void count(const Eigen::SparseMatrix< XType > &X, const int dim, Eigen::SparseVector< SType > &S)
Definition count.cpp:12

References igl::count(), m_first, and igl::geodesic::Interval::next().

+ Here is the call graph for this function:

◆ signal()

double igl::geodesic::IntervalList::signal ( double  x)
inline
1421 {
1422 interval_pointer interval = covering_interval(x);
1423
1424 return interval ? interval->signal(x) : GEODESIC_INF;
1425 }
interval_pointer covering_interval(double offset)
Definition exact_geodesic.cpp:1353

References covering_interval(), igl::geodesic::GEODESIC_INF, and igl::geodesic::Interval::signal().

Referenced by igl::geodesic::GeodesicAlgorithmExact::check_stop_conditions().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_edge

edge_pointer igl::geodesic::IntervalList::m_edge
private

◆ m_first


The documentation for this class was generated from the following file: