26 #ifndef EDELSBRUNNER96_LINE_WALKER_H_
27 #define EDELSBRUNNER96_LINE_WALKER_H_
31 namespace edelsbrunner96 {
37 template <
typename Traits>
38 typename Traits::SimplexRef
LineWalk(
typename Traits::Storage& storage,
39 typename Traits::SimplexRef s_0,
40 const typename Traits::Point& p);
59 template <
typename Traits,
typename InputIterator,
typename OutputIterator>
61 typename Traits::SimplexRef s_0,
62 InputIterator Vf_begin, InputIterator Vf_end,
66 template <
typename Traits,
class OutputIterator>
67 void FuzzyWalk_(
typename Traits::Storage& storage,
68 const typename Traits::SimplexRef s_0,
69 const typename Traits::Point& x_q,
70 const typename Traits::Scalar epsilon,
71 std::list<typename Traits::SimplexRef>& search_queue,
95 template <
typename Traits,
class OutputIterator>
96 void FuzzyWalk(
typename Traits::Storage& storage,
97 const typename Traits::SimplexRef s_0,
98 const typename Traits::Point& x_q,
99 const typename Traits::Scalar epsilon,
103 template<
class Traits>
105 typename Traits::Storage& storage,
typename Traits::SimplexRef s_ref,
106 const typename Traits::Point& x_q,
107 typename Traits::Scalar epsilon=0.0);
111 template<
class Traits,
class OutputIterator>
113 typename Traits::Storage& storage,
typename Traits::SimplexRef s_0,
114 const typename Traits::Point& x_q,
119 template<
class Traits,
class OutputIterator>
121 typename Traits::SimplexRef simplex_ref,
126 #endif // EDELSBRUNNER96_LINE_WALKER_H_
void FeatureWalk(typename Traits::Storage &storage, typename Traits::SimplexRef s_0, InputIterator Vf_begin, InputIterator Vf_end, OutputIterator out)
Given a sub-simplex feature and a simplex adjacent to that feature, enumerate all simplices that are ...
bool IsVisible(typename Traits::Storage &storage, typename Traits::SimplexRef s_ref, const typename Traits::Point &x_q, typename Traits::Scalar epsilon=0.0)
Given a hull simplex, return true if it is visible by the query point.
void FuzzyWalk_(typename Traits::Storage &storage, const typename Traits::SimplexRef s_0, const typename Traits::Point &x_q, const typename Traits::Scalar epsilon, std::list< typename Traits::SimplexRef > &search_queue, OutputIterator out)
Implementation, exposed so that the search_queue can be examined in tests.
Traits::SimplexRef LineWalk(typename Traits::Storage &storage, typename Traits::SimplexRef s_0, const typename Traits::Point &p)
Starting at the median point of simplex s_0, walk the triangulation in the direction of p until the s...
void GetVisibleHull(typename Traits::Storage &storage, typename Traits::SimplexRef s_0, const typename Traits::Point &x_q, OutputIterator out)
Starting at some x-visible hull simplex, return a list of all x-visible hull simplices.
void FuzzyWalk(typename Traits::Storage &storage, const typename Traits::SimplexRef s_0, const typename Traits::Point &x_q, const typename Traits::Scalar epsilon, OutputIterator out)
Given a simplex in a triangulation and a query point, walk the triangulation in the direction of x_q ...
void BreadthFirstSearch(typename Traits::Storage &storage, typename Traits::SimplexRef simplex_ref, OutputIterator out)
Get a list of all simplices by breadth first search starting at simplex_ref.