20 #ifndef INCLUDE_WYKOBI_ND
21 #define INCLUDE_WYKOBI_ND
32 template <
typename T, std::
size_t D>
35 template <
typename T, std::
size_t D>
39 template <
typename T, std::
size_t D>
42 template <
typename T, std::
size_t D>
46 template <
typename T, std::
size_t D>
50 template <
typename T, std::
size_t D>
55 template <
typename T, std::
size_t D>
58 const bool robust =
false);
60 template <
typename T, std::
size_t D>
64 template <
typename T, std::
size_t D>
66 const T& fuzzy = T(0.0));
68 template <
typename T, std::
size_t D>
71 const T& fuzzy = T(0.0));
73 template <
typename T, std::
size_t D>
76 const T& fuzzy = T(0.0));
78 template <
typename T, std::
size_t D>
81 template <
typename T, std::
size_t D>
84 template <
typename T, std::
size_t D>
87 template <
typename T, std::
size_t D>
90 template <
typename T, std::
size_t D>
93 template <
typename T, std::
size_t D>
96 template <
typename T, std::
size_t D>
99 template <
typename T, std::
size_t D>
102 template <
typename T, std::
size_t D>
106 template <
typename T, std::
size_t D>
109 template <
typename T, std::
size_t D>
113 template <
typename T, std::
size_t D>
117 template <
typename T, std::
size_t D>
121 template <
typename T, std::
size_t D>
125 template <
typename T, std::
size_t D>
128 template <
typename T, std::
size_t D>
132 template <
typename T, std::
size_t D>
136 template <
typename T, std::
size_t D>
140 template <
typename T, std::
size_t D>
144 template <
typename T, std::
size_t D>
148 template <
typename T, std::
size_t D>
152 template <
typename T, std::
size_t D>
157 template <
typename T, std::
size_t D>
162 template <
typename T, std::
size_t D>
166 template <
typename T, std::
size_t D>
170 template <
typename T, std::
size_t D>
174 template <
typename T, std::
size_t D>
177 template <
typename T, std::
size_t D>
181 template <
typename T, std::
size_t D>
185 template <
typename T, std::
size_t D>
189 template <
typename T, std::
size_t D>
193 template <
typename T, std::
size_t D>
197 template <
typename T, std::
size_t D>
201 template <
typename T, std::
size_t D>
205 template <
typename T, std::
size_t D>
209 template <
typename T, std::
size_t D>
213 template <
typename T, std::
size_t D>
217 template <
typename T, std::
size_t D>
220 template <
typename T, std::
size_t D>
223 template <
typename T, std::
size_t D>
226 template <
typename T, std::
size_t D>
229 template <
typename T, std::
size_t D>
232 template <
typename T, std::
size_t D>
235 template <
typename T, std::
size_t D>
238 template <
typename T, std::
size_t D,
typename OutputIterator>
240 const std::size_t& point_count,
243 template <
typename T, std::
size_t D,
typename OutputIterator>
245 const std::size_t& point_count,
248 template <
typename T, std::
size_t D,
typename OutputIterator>
250 const std::size_t& point_count,
253 template <
typename T, std::
size_t D,
typename OutputIterator>
255 const std::size_t& point_count,
258 template <
typename T, std::
size_t D>
261 template <
typename T, std::
size_t D>
264 template <
typename T, std::
size_t D>
268 template <
typename T, std::
size_t D>
272 template <
typename T, std::
size_t D>
275 template <
typename T, std::
size_t D>
278 template <
typename T, std::
size_t D>
281 template <
typename T, std::
size_t D>
284 template <
typename T, std::
size_t D>
287 template <
typename T, std::
size_t D>
290 template <
typename T, std::
size_t D>
293 template <
typename T, std::
size_t D>
297 template <
typename T, std::
size_t D>
301 template <
typename T, std::
size_t D>
305 template <
typename T, std::
size_t D>
309 template <
typename T>
312 template <
typename T>
316 template <
typename T, std::
size_t D>
319 template <
typename T, std::
size_t D>
322 template <
typename T, std::
size_t D>
326 template <
typename T, std::
size_t D>
330 template <
typename T, std::
size_t D>
333 template <
typename T, std::
size_t D>
337 template <
typename T, std::
size_t D>
340 template <
typename T, std::
size_t D>
343 template <
typename T, std::
size_t D>
346 template <
typename T, std::
size_t D>
349 template <
typename T, std::
size_t D>
352 template <
typename T, std::
size_t D>
355 template <
typename T, std::
size_t D>
358 template <
typename T, std::
size_t D>
361 template <
typename T, std::
size_t D>
364 template <
typename T, std::
size_t D>
367 template <
typename T, std::
size_t D>
370 template <
typename T, std::
size_t D>
373 template <
typename T, std::
size_t D>
376 template <
typename T, std::
size_t D>
379 template <
typename T, std::
size_t D>
383 template <
typename T, std::
size_t D>
387 template <
typename T, std::
size_t D>
391 template <
typename T, std::
size_t D>
395 template <
typename T, std::
size_t D>
400 template <
typename T, std::
size_t D>
406 template <
typename T, std::
size_t D>
410 template <
typename T, std::
size_t D>
414 template <
typename T, std::
size_t D>
418 template <
typename T, std::
size_t D>
421 template <
typename T, std::
size_t D>
426 #include "wykobi_nd.inl"
Definition: wykobi.hpp:702
Definition: wykobi.hpp:440
Definition: wykobi.hpp:287
Definition: wykobi.hpp:688
Definition: wykobi.hpp:166
Definition: wykobi.hpp:383
Definition: wykobi.hpp:359
Definition: wykobi.hpp:674
Definition: wykobi.hpp:263
Definition: wykobi.hpp:433
Definition: wykobi.hpp:311
Definition: wykobi.hpp:614
Definition: wykobi.hpp:32
point3d< T > closest_point_on_plane_from_point(const plane< T, 3 > &plane, const point3d< T > &point)
T manhattan_distance(const T &x1, const T &y1, const T &x2, const T &y2)
T vector_norm(const vector2d< T > &v)
polygon< T, D > make_polygon(const InputIterator begin, const InputIterator end)
sphere< T > make_sphere(const T &x, const T &y, const T &z, const T &radius)
segment< T, 2 > make_segment(const T &x1, const T &y1, const T &x2, const T &y2)
ray< T, 2 > make_ray(const T &ox, const T &oy, const T &dir_x, const T &dir_y)
void swap(point2d< T > &point1, point2d< T > &point2)
bool is_point_collinear(const T &x1, const T &y1, const T &x2, const T &y2, const T &px, const T &py, const bool robust=false)
void project_point(const T &srcx, const T &srcy, const T &destx, const T &desty, const T &dist, T &nx, T &ny)
vectornd< T, D > degenerate_vectornd()
bool parallel(const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4, const T &epsilon=T(Epsilon))
bool perpendicular(const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4, const T &epsilon=T(Epsilon))
bool intersect(const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4)
bool operator<(const point2d< T > &point1, const point2d< T > &point2)
triangle< T, D > degenerate_trianglend()
bool is_equal(const T &val1, const T &val2, const T &epsilon)
bool collinear(const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &epsilon=T(Epsilon))
quadix< T, 2 > make_quadix(const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4)
point3d< T > closest_point_on_sphere_from_point(const sphere< T > &sphere, const point3d< T > &point)
T perimeter(const point2d< T > &point1, const point2d< T > &point2, const point2d< T > &point3)
pointnd< T, D > negative_infinite_pointnd()
void project_point_t(const T &srcx, const T &srcy, const T &destx, const T &desty, const T &t, T &nx, T &ny)
vector2d< T > operator+(const vector2d< T > &v1, const vector2d< T > &v2)
bool operator>(const point2d< T > &point1, const point2d< T > &point2)
void closest_point_on_line_from_point(const T &x1, const T &y1, const T &x2, const T &y2, const T &px, const T &py, T &nx, T &ny)
ray< T, D > degenerate_raynd()
void closest_point_on_box_from_point(const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2, const T &px, const T &py, const T &pz, T &nx, T &ny, T &nz)
bool robust_collinear(const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &epsilon=T(Epsilon))
void closest_point_on_segment_from_point(const T &x1, const T &y1, const T &x2, const T &y2, const T &px, const T &py, T &nx, T &ny)
bool not_equal(const T &val1, const T &val2, const T &epsilon)
box< T, 3 > make_box(const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2)
pointnd< T, D > degenerate_pointnd()
T chebyshev_distance(const T &x1, const T &y1, const T &x2, const T &y2)
point2d< T > generate_random_point(const T &dx, const T &dy)
bool point_in_sphere(const T &px, const T &py, const T &pz, const T &cx, const T &cy, const T &cz, const T &radius)
T lay_distance(const T &x1, const T &y1, const T &x2, const T &y2)
hypersphere< T, D > degenerate_hypersphere()
void intersection_point(const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3, const T &x4, const T &y4, T &ix, T &iy)
segment< T, D > degenerate_segmentnd()
void generate_random_points(const T &x1, const T &y1, const T &x2, const T &y2, const std::size_t &point_count, OutputIterator out)
line< T, D > degenerate_linend()
T operator*(const vector2d< T > &v1, const vector2d< T > &v2)
triangle< T, 2 > make_triangle(const T &x1, const T &y1, const T &x2, const T &y2, const T &x3, const T &y3)
segment< T, 2 > project_onto_axis(const point2d< T > &point, const line< T, 2 > &axis)
bool operator==(const point2d< T > &point1, const point2d< T > &point2)
vector2d< T > operator/(const vector2d< T > &v1, const T &scale)
void mirror(const T &px, const T &py, const T &x1, const T &y1, const T &x2, const T &y2, T &nx, T &ny)
box< T, D > degenerate_box()
vector2d< T > operator-(const vector2d< T > &v1, const vector2d< T > &v2)
pointnd< T, D > positive_infinite_pointnd()
T dot_product(const vector2d< T > &v1, const vector2d< T > &v2)
vector2d< T > make_vector(const T &x, const T &y)
quadix< T, D > degenerate_quadixnd()
bool point_in_box(const T &px, const T &py, const T &pz, const T &x1, const T &y1, const T &z1, const T &x2, const T &y2, const T &z2)
point2d< T > scale(const T &dx, const T &dy, const point2d< T > &point)
T inverse_chebyshev_distance(const T &x1, const T &y1, const T &x2, const T &y2)
line< T, 2 > make_line(const T &x1, const T &y1, const T &x2, const T &y2)
vector2d< T > normalize(const vector2d< T > &v)
T distance(const T &x1, const T &y1, const T &x2, const T &y2)