|
ivutils
|
Some useful iterators (iterator at points, edges, planes) and classes for 2D and 3D contours. More...
#include <iterator>#include <vector>#include "vector_3.h"#include "plane_3.h"#include "refobj.h"

Classes | |
| class | edge_t< point_it > |
| stores two vertices of the edge More... | |
| class | generic_edge_it< point_it > |
| contour edges iterator, based on contour start and end vertices iterators More... | |
| class | normplanes_it< edge_it > |
| iterator at planes normal to the contour plane and passing through edges of the contour Used in ProjectSimplex only. More... | |
| class | range_store_t< point_it > |
| Storage class used as template parameter in Contour. More... | |
| class | Contour< point_it, store_t, edge_it, edge_t > |
| Basic contour interface. More... | |
| class | Contour_N< point_it, Vector_2, store_t, edge_it, edge_t > |
| Contour_N specialization for 2D. More... | |
| class | Contour_N< point_it, Vector_3, store_t, edge_it, edge_t > |
| Contour_N specialization for 3D. More... | |
| class | PtrContour< N > |
| Contour based on dynamic Vector_Nt array. More... | |
| struct | array_store_t< T, num > |
| Storage class for array storage. More... | |
| class | ArrayContour< N, num > |
| Contour based on Vector_Nt array. More... | |
| struct | vec_store_t< T > |
| Storage class for vector storage. More... | |
| class | VecContour< N > |
| Contour based on Vector_Nt vector. More... | |
| class | contour_projection_it< point_it > |
| 2D points iterator as a projection of given 3D points iterator on 2D coordinate system defined by its origin, and axes x, y More... | |
| class | Contour_3to2< contour_t > |
| 2D contour as a projection of given 3D contour on 2D coordinate system defined by its origin, and axes x, y More... | |
Functions | |
| template<class point_it , int N> | |
| Vector_Nt< vec_type, N > | GetBoundingBox (point_it it, point_it end, Vector_Nt< vec_type, N > *cube1, Vector_Nt< vec_type, N > *cube2) |
| records opposite coordinates of maximal rectangular parallelepiped which contains some points defined by point iterators it and end returns average of selected points | |
| Vector_2 | Vector_3to2 (const Vector_3 &v3, const Vector_3 &origin, const Vector_3 &x, const Vector_3 &y) |
| projects Vector_3 on 2D coordinate system defined by its origin and axes x, y | |
| Vector_3 | Vector_2to3 (const Vector_2 &v2, const Vector_3 &origin, const Vector_3 &x, const Vector_3 &y) |
| opposite to Vector_3to2 | |
| template<class plane_it , class contour_t > | |
| int | ProjectSimplex (const Plane_3 &plane0, plane_it beg, plane_it end, contour_t &cnt, int nplanes=-1) |
| record to the contour cnt section of the plane plane0 by polyhedron, formed by planes iterated from iterator beg till end | |
| template<class out_cont_t , class plane_it > | |
| int | GetFaces (out_cont_t &cont, plane_it beg, plane_it end, const std::vector< int > *redundant_planes=nullptr, std::vector< int > *valid_planes=nullptr) |
| gets all faces of the polyhedral region defined by planes from [beg, end) of type plane_it puts the faces as planar contours into container cont using push_back(...) Parameter redundant_planes specifies the order number of planes that can not form faces. | |
| template<class contour_t > | |
| int | GetPlaneSection (const contour_t &cnt, const Plane_3 &plane, contour_t *cnt_in=nullptr, contour_t *cnt_out=nullptr) |
| Tests whether the contour crosses the plane and optionally outputs inside (side of plane distance >0) and outside subcontours. | |
Some useful iterators (iterator at points, edges, planes) and classes for 2D and 3D contours.
We have different contour implementations that can be used for different purposes
| int GetFaces | ( | out_cont_t & | cont, |
| plane_it | beg, | ||
| plane_it | end, | ||
| const std::vector< int > * | redundant_planes = nullptr, |
||
| std::vector< int > * | valid_planes = nullptr |
||
| ) |
gets all faces of the polyhedral region defined by planes from [beg, end) of type plane_it puts the faces as planar contours into container cont using push_back(...) Parameter redundant_planes specifies the order number of planes that can not form faces.
The order number of planes that actually form faces are placed in output parameter valid_planes, if specified.
| int GetPlaneSection | ( | const contour_t & | cnt, |
| const Plane_3 & | plane, | ||
| contour_t * | cnt_in = nullptr, |
||
| contour_t * | cnt_out = nullptr |
||
| ) |
Tests whether the contour crosses the plane and optionally outputs inside (side of plane distance >0) and outside subcontours.