Loading...
Searching...
No Matches
CG.hpp
93int convertBarycentricToFlagSegment( std::array<double,2> const &, double tolerance = DEFAULT_DISTANCE_TOLERANCE);
94int convertBarycentricToFlagSegment( const double *lambda, double tolerance = DEFAULT_DISTANCE_TOLERANCE);
95int convertBarycentricToFlagTriangle( std::array<double,3> const &, double tolerance = DEFAULT_DISTANCE_TOLERANCE);
96int convertBarycentricToFlagTriangle( const double *lambda, double tolerance = DEFAULT_DISTANCE_TOLERANCE);
97int convertBarycentricToFlagPolygon( std::vector<double> const &, double tolerance = DEFAULT_DISTANCE_TOLERANCE);
98int convertBarycentricToFlagPolygon( std::size_t, double const *, double tolerance = DEFAULT_DISTANCE_TOLERANCE);
100void computeGeneralizedBarycentric( array3D const &, std::vector<array3D> const &, std::vector<double> &);
101void computeGeneralizedBarycentric( array3D const &, std::size_t, array3D const *, std::vector<double> &);
104array3D reconstructPointFromBarycentricSegment( array3D const &, array3D const &, std::array<double,2> const & );
105array3D reconstructPointFromBarycentricSegment( array3D const &, array3D const &, double const * );
106array3D reconstructPointFromBarycentricTriangle( array3D const &, array3D const &, array3D const &, std::array<double,3> const & );
107array3D reconstructPointFromBarycentricTriangle( array3D const &, array3D const &, array3D const &, double const * );
108array3D reconstructPointFromBarycentricPolygon( std::vector<array3D> const &, std::vector<double> const & );
109array3D reconstructPointFromBarycentricPolygon( std::size_t, array3D const *, std::vector<double> const & );
117array3D projectPointSegment( array3D const &, array3D const &, array3D const &, std::array<double,2> & );
119array3D projectPointTriangle( array3D const &, array3D const &, array3D const &, array3D const & );
120array3D projectPointTriangle( array3D const &, array3D const &, array3D const &, array3D const &, array3D & );
121array3D projectPointTriangle( array3D const &P, array3D const &Q0, array3D const &Q1, array3D const &Q2, double *lambda );
124array3D projectPointPolygon( array3D const &, std::vector<array3D> const &, std::vector<double> & );
125array3D projectPointPolygon( array3D const &, std::size_t, array3D const *, std::vector<double> & );
128std::vector<array3D> projectCloudTriangle( std::vector<array3D> const &, array3D const &, array3D const &, array3D const &, std::vector<array3D> &);
137double distancePointSegment( array3D const &, array3D const &, array3D const &, std::array<double,2> & );
139double distancePointTriangle( array3D const &, array3D const &, array3D const &, array3D const &);
140double distancePointTriangle( array3D const &, array3D const &, array3D const &, array3D const &, array3D &);
146double distancePointPolygon( array3D const &, std::vector<array3D> const &, std::vector<double> & );
147double distancePointPolygon( array3D const &, std::size_t, array3D const *, std::vector<double> & );
152std::vector<double> distanceCloudTriangle( std::vector<array3D> const &, array3D const &, array3D const &, array3D const &);
153std::vector<double> distanceCloudTriangle( std::vector<array3D> const &, array3D const &, array3D const &, array3D const &, std::vector<array3D> & );
155std::vector<double> distanceCloudPolygon( std::vector<array3D> const &, std::vector<array3D> const &, std::vector<array3D> &, std::vector<int> & );
156std::vector<double> distanceCloudPolygon( std::vector<array3D> const &, std::size_t, array3D const *, std::vector<array3D> &, std::vector<int> & );
157std::vector<double> distanceCloudPolygon( std::vector<array3D> const &, std::vector<array3D> const &);
158std::vector<double> distanceCloudPolygon( std::vector<array3D> const &, std::size_t, array3D const *);
159std::vector<double> distanceCloudPolygon( std::vector<array3D> const &, std::vector<array3D> const &, std::vector<std::vector<double>> &);
160std::vector<double> distanceCloudPolygon( std::vector<array3D> const &, std::size_t, array3D const *, std::vector<std::vector<double>> &);
163double distanceLineLine(array3D const &, array3D const &, array3D const &, array3D const &, array3D &, array3D &);
175bool intersectLineLine( array3D const &, array3D const &, array3D const &, array3D const &, array3D &,
177bool intersectLinePlane( array3D const &, array3D const &, array3D const &, array3D const &, array3D &,
179bool intersectLineTriangle( array3D const &, array3D const &, array3D const &, array3D const &, array3D const &,
181bool intersectLinePolygon( array3D const &, array3D const &, std::vector<array3D> const &, array3D &,
183bool intersectLinePolygon( array3D const &, array3D const &, std::size_t, array3D const *, array3D &,
186bool intersectSegmentSegment( array3D const &, array3D const &, array3D const &, array3D const &, array3D &,
188bool intersectSegmentPlane( array3D const &, array3D const &, array3D const &, array3D const &, array3D &,
190bool intersectSegmentTriangle( array3D const &, array3D const &, array3D const &, array3D const &, array3D const &,
192bool intersectSegmentPolygon( array3D const &, array3D const &, std::vector<array3D> const &, array3D &,
194bool intersectSegmentPolygon( array3D const &, array3D const &, std::size_t, array3D const *, array3D &,
197bool intersectSegmentBox( array3D const &, array3D const &, array3D const &, array3D const &, int dim = 3,
199bool intersectSegmentBox( array3D const &, array3D const &, array3D const &, array3D const &, bool, bool,
200 std::vector<array3D> &, int dim=3, const double distanceTolerance = DEFAULT_DISTANCE_TOLERANCE);
201bool intersectSegmentBox( array3D const &, array3D const &, array3D const &, array3D const &, bool, bool,
202 std::vector<array3D> &, std::vector<int> &, int dim=3, const double distanceTolerance = DEFAULT_DISTANCE_TOLERANCE);
204bool intersectPlanePixel(array3D const &Pp, array3D const &nP, array3D const *V, std::array<array3D, 2> &intersection,
205 std::array<int, 2> &edges_of_intersection, const double distanceTolerance = DEFAULT_COPLANARITY_TOLERANCE);
207 std::array<array3D, 2> &intersection, const double distanceTolerance = DEFAULT_COPLANARITY_TOLERANCE);
209 std::array<array3D, 2> &intersection, std::vector<array3D> &poly, const double distanceTolerance = DEFAULT_COPLANARITY_TOLERANCE);
210bool intersectPlaneTriangle(array3D const &P0, array3D const &P1, array3D const &P2, array3D const &Pp, array3D const &nP, std::array<array3D, 2> &intersection,
211 std::array<int, 2> &edges_of_intersection, const double distanceTolerance = DEFAULT_COPLANARITY_TOLERANCE);
212bool intersectPlaneTriangle(array3D const &P0, array3D const &P1, array3D const &P2, array3D const &Pp, array3D const &nP, std::array<array3D, 2> &intersection,
214bool intersectPlaneTriangle(array3D const &P0, array3D const &P1, array3D const &P2, array3D const &Pp, array3D const &nP,
215 std::array<array3D, 2> &intersection, std::vector<array3D> &poly, const double distanceTolerance = DEFAULT_COPLANARITY_TOLERANCE);
216bool intersectPlanePolygon(array3D const &P, array3D const &nP, std::size_t nV, array3D const *V, std::vector<std::array<array3D, 2>> &Qs,
217 std::vector<std::array<int, 2>> &edges_of_Qs, const double distanceTolerance = DEFAULT_COPLANARITY_TOLERANCE);
218bool intersectPlanePolygon(array3D const &P, array3D const &nP, std::size_t nV, array3D const *V,
219 std::vector<std::array<array3D, 2>> &Qs, const double distanceTolerance = DEFAULT_COPLANARITY_TOLERANCE);
220bool intersectPlanePolygon(array3D const &P, array3D const &nP, std::size_t nV, array3D const *V,
221 std::vector<std::array<array3D, 2>> &Qs, std::vector< std::vector<array3D> > &polys, const double distanceTolerance = DEFAULT_DISTANCE_TOLERANCE);
223void reconstructPlaneIntersectedPolygons(std::size_t nV, array3D const *V, std::vector<std::array<array3D, 2>> const &Qs,
225 std::vector< std::vector<array3D> > &polys, const double distanceTolerance = DEFAULT_DISTANCE_TOLERANCE);
229bool intersectPlaneBox( array3D const &, array3D const &, array3D const &, array3D const &, int dim=3,
232 std::vector<array3D> &, int dim=3, const double distanceTolerance = DEFAULT_DISTANCE_TOLERANCE);
234bool intersectBoxBox( array3D const &, array3D const &, array3D const &, array3D const &, int dim = 3,
237 array3D &, array3D &, int dim = 3, const double distanceTolerance = DEFAULT_DISTANCE_TOLERANCE) ;
239bool intersectBoxTriangle( array3D const &, array3D const &, array3D const &, array3D const &, array3D const &,
241bool intersectBoxTriangle( array3D const &, array3D const &, array3D const &, array3D const &, array3D const &,
242 bool, bool, bool, std::vector<array3D> &, int dim=3, const double distanceTolerance = DEFAULT_DISTANCE_TOLERANCE) ;
243bool intersectBoxTriangle( array3D const &, array3D const &, array3D const &, array3D const &, array3D const &,
248bool intersectBoxPolygon( array3D const &, array3D const &, std::vector<array3D> const &, int dim=3,
250bool intersectBoxPolygon( array3D const &, array3D const &, std::size_t, array3D const *, int dim=3,
252bool intersectBoxPolygon( array3D const &, array3D const &, std::vector<array3D> const &, bool, bool, bool,
253 std::vector<array3D> &, int dim=3, const double distanceTolerance = DEFAULT_DISTANCE_TOLERANCE);
254bool intersectBoxPolygon( array3D const &, array3D const &, std::size_t, array3D const *, bool, bool, bool,
255 std::vector<array3D> &, int dim=3, const double distanceTolerance = DEFAULT_DISTANCE_TOLERANCE);
256bool intersectBoxPolygon( array3D const &, array3D const &, std::vector<array3D> const &, bool, bool, bool,
257 std::vector<array3D> &, std::vector<int> &, int dim=3, const double distanceTolerance = DEFAULT_DISTANCE_TOLERANCE);
258bool intersectBoxPolygon( array3D const &, array3D const &, std::size_t, array3D const *, bool, bool, bool,
259 std::vector<array3D> &, std::vector<int> &, int dim=3, const double distanceTolerance = DEFAULT_DISTANCE_TOLERANCE);
261bool intersectBoxCircle( array3D const &A0, array3D const &A1, array3D const ¢re, double radius, const double distanceTolerance = DEFAULT_DISTANCE_TOLERANCE);
263bool intersectBoxSphere( array3D const &A0, array3D const &A1, array3D const ¢re, double radius, const double distanceTolerance = DEFAULT_DISTANCE_TOLERANCE);
266void computeAABBTriangle( array3D const &, array3D const &, array3D const &, array3D &, array3D & ) ;
270void unionAABB( array3D const &, array3D const &, array3D const &, array3D const &, array3D &, array3D & );
271void intersectionAABB( array3D const &, array3D const &, array3D const &, array3D const &, array3D &, array3D & );
272void subtractionAABB( array3D const &, array3D const &, array3D const &, array3D const &, array3D &, array3D & );
273void unionAABB( std::vector<array3D> const &, std::vector<array3D> const &, array3D &, array3D & );
281void edgeOfTriangle( int, array3D const &, array3D const &, array3D const &, array3D &, array3D &);
285void faceOfBox( int, array3D const &, array3D const &, array3D &, array3D &, array3D &, array3D & );
302double grad1DUpdate( // Update the local solution to the 1D grad limiting equation on a vertex of a 1D manifold
323double grad2DUpdate( // Update the local solution to the 2D grad limiting equation on a vertex of a 2D manifold
327 std::vector<std::vector<std::vector<int>>> &, // (input) list of simplicies in the 1-ring of the given vertex
343double grad2DUpdate( // Update the local solution to the 2D grad limiting equation on a cell of a 2D volume
void edgeOfPolygon(int, std::vector< array3D > const &, array3D &, array3D &)
Definition CG_elem.cpp:3698
std::vector< double > distanceCloudTriangle(std::vector< array3D > const &, array3D const &, array3D const &, array3D const &)
Definition CG_elem.cpp:1454
double distancePointLine(array3D const &, array3D const &, array3D const &, array3D &)
Definition CG_elem.cpp:1356
double distancePointCone(array3D const &, array3D const &, array3D const &, double)
Definition CG_elem.cpp:1440
array3D projectPointLine(array3D const &, array3D const &, array3D const &)
Definition CG_elem.cpp:971
void edgeOfTriangle(int, array3D const &, array3D const &, array3D const &, array3D &, array3D &)
Definition CG_elem.cpp:3463
const std::array< std::array< int, 2 >, 12 > boxEdgeVertexConnectivity
Definition CG.hpp:53
bool intersectPlaneBox(array3D const &, array3D const &, array3D const &, array3D const &, int dim=3, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:1954
void unionAABB(array3D const &, array3D const &, array3D const &, array3D const &, array3D &, array3D &)
Definition CG_elem.cpp:3314
bool intersectPointTriangle(array3D const &, array3D const &, array3D const &, array3D const &, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:3196
array3D computePolygonNormal(std::size_t nV, const array3D *V)
Definition CG_elem.cpp:2638
bool intersectBoxBox(array3D const &, array3D const &, array3D const &, array3D const &, int dim=3, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:2772
array3D projectPointTriangle(array3D const &, array3D const &, array3D const &, array3D const &)
Definition CG_elem.cpp:1050
array3D rotateVector(array3D const &, array3D const &, double)
Definition CG_elem.cpp:3615
array3D projectPointSegment(array3D const &, array3D const &, array3D const &)
Definition CG_elem.cpp:997
bool intersectPlaneTriangle(array3D const &P0, array3D const &P1, array3D const &P2, array3D const &Pp, array3D const &nP, std::array< array3D, 2 > &intersection, std::array< int, 2 > &edges_of_intersection, const double distanceTolerance=DEFAULT_COPLANARITY_TOLERANCE)
Definition CG_elem.cpp:2309
double distancePointPlane(array3D const &, array3D const &, array3D const &, array3D &)
Definition CG_elem.cpp:1370
bool intersectBoxTriangle(array3D const &, array3D const &, array3D const &, array3D const &, array3D const &, int dim=3, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:2824
int convertBarycentricToFlagSegment(std::array< double, 2 > const &, double tolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:619
void computeAABBTriangle(array3D const &, array3D const &, array3D const &, array3D &, array3D &)
Definition CG_elem.cpp:3256
bool validBarycentric(double const *, int)
Definition CG_elem.cpp:586
void intersectionAABB(array3D const &, array3D const &, array3D const &, array3D const &, array3D &, array3D &)
Definition CG_elem.cpp:3357
double distanceLineLine(array3D const &, array3D const &, array3D const &, array3D const &)
Definition CG_elem.cpp:1729
bool intersectPlanePixel(array3D const &Pp, array3D const &nP, array3D const *V, std::array< array3D, 2 > &intersection, std::array< int, 2 > &edges_of_intersection, const double distanceTolerance=DEFAULT_COPLANARITY_TOLERANCE)
Definition CG_elem.cpp:2138
array3D reconstructPointFromBarycentricTriangle(array3D const &, array3D const &, array3D const &, std::array< double, 3 > const &)
Definition CG_elem.cpp:858
array3D reconstructPointFromBarycentricSegment(array3D const &, array3D const &, std::array< double, 2 > const &)
Definition CG_elem.cpp:829
const std::array< std::array< int, 4 >, 6 > boxFaceVertexConnectivity
Definition CG.hpp:73
std::vector< double > distanceCloudPolygon(std::vector< array3D > const &, std::vector< array3D > const &, std::vector< array3D > &, std::vector< int > &)
Definition CG_elem.cpp:1599
void vertexOfSegment(int, array3D const &, array3D const &, array3D &)
Definition CG_elem.cpp:3402
void vertexOfTriangle(int, array3D const &, array3D const &, array3D const &, array3D &)
Definition CG_elem.cpp:3430
int convertBarycentricToFlagPolygon(std::vector< double > const &, double tolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:687
bool intersectSegmentPlane(array3D const &, array3D const &, array3D const &, array3D const &, array3D &, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:1872
bool intersectLineTriangle(array3D const &, array3D const &, array3D const &, array3D const &, array3D const &, array3D &, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:1988
bool intersectSegmentSegment(array3D const &, array3D const &, array3D const &, array3D const &, array3D &, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:1808
double distancePointTriangle(array3D const &, array3D const &, array3D const &, array3D const &)
Definition CG_elem.cpp:1411
bool intersectPointLine(array3D const &, array3D const &, array3D const &, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:3157
int polygonEdgesCount(std::vector< array3D > const &)
Definition CG_elem.cpp:3643
int polygonSubtriangleCount(std::vector< array3D > const &)
Definition CG_elem.cpp:3669
bool intersectBoxSphere(array3D const &A0, array3D const &A1, array3D const ¢re, double radius, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:3063
int convertBarycentricToFlagTriangle(std::array< double, 3 > const &, double tolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:659
double areaTriangle(array3D const &, array3D const &, array3D const &)
Definition CG_elem.cpp:3634
array3D projectPointPlane(array3D const &, array3D const &, array3D const &)
Definition CG_elem.cpp:984
void subtriangleOfPolygon(int, std::vector< array3D > const &, array3D &, array3D &, array3D &)
Definition CG_elem.cpp:3734
bool intersectSegmentBox(array3D const &, array3D const &, array3D const &, array3D const &, int dim=3, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:2880
bool intersectPlanePlane(array3D const &, array3D const &, array3D const &, array3D const &, array3D &, array3D &, const double coplanarityTolerance=DEFAULT_COPLANARITY_TOLERANCE)
Definition CG_elem.cpp:1902
void computeGeneralizedBarycentric(array3D const &, std::vector< array3D > const &, std::vector< double > &)
Definition CG_elem.cpp:751
double distancePointSegment(array3D const &, array3D const &, array3D const &)
Definition CG_elem.cpp:1383
bool intersectLinePlane(array3D const &, array3D const &, array3D const &, array3D const &, array3D &, const double coplanarityTolerance=DEFAULT_COPLANARITY_TOLERANCE)
Definition CG_elem.cpp:1839
bool validPlane(array3D const &, array3D const &)
Definition CG_elem.cpp:541
array3D rotatePoint(const array3D &P, const array3D &n0, const array3D &n1, double angle)
Definition CG_elem.cpp:893
double distancePointPolygon(array3D const &, std::vector< array3D > const &, array3D &, int &)
Definition CG_elem.cpp:1500
void computeAABBPolygon(std::vector< array3D > const &, array3D &, array3D &)
Definition CG_elem.cpp:3278
bool validTriangle(array3D const &, array3D const &, array3D const &)
Definition CG_elem.cpp:554
array3D reconstructPointFromBarycentricPolygon(std::vector< array3D > const &, std::vector< double > const &)
Definition CG_elem.cpp:928
bool intersectSegmentTriangle(array3D const &, array3D const &, array3D const &, array3D const &, array3D const &, array3D &, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:2016
array3D restrictPointTriangle(array3D const &, array3D const &, array3D const &, array3D &)
Definition CG_elem.cpp:1097
bool intersectBoxPolygon(array3D const &, array3D const &, std::vector< array3D > const &, int dim=3, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:2931
void faceOfBox(int, array3D const &, array3D const &, array3D &, array3D &, array3D &, array3D &)
Definition CG_elem.cpp:3500
bool intersectPlanePolygon(array3D const &P, array3D const &nP, std::size_t nV, array3D const *V, std::vector< std::array< array3D, 2 > > &Qs, std::vector< std::array< int, 2 > > &edges_of_Qs, const double distanceTolerance=DEFAULT_COPLANARITY_TOLERANCE)
Definition CG_elem.cpp:2460
std::vector< array3D > projectCloudTriangle(std::vector< array3D > const &, array3D const &, array3D const &, array3D const &, std::vector< array3D > &)
Definition CG_elem.cpp:1194
void reconstructPlaneIntersectedPolygons(std::size_t nV, array3D const *V, std::vector< std::array< array3D, 2 > > const &Qs, std::vector< std::array< int, 2 > > const &edges_of_Qs, std::vector< std::vector< array3D > > &polys, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:2680
array3D projectPointCone(array3D const &, array3D const &, array3D const &, double)
Definition CG_elem.cpp:1315
void vertexOfBox(int, array3D const &, array3D const &, array3D &)
Definition CG_elem.cpp:3546
void edgeOfBox(int, array3D const &, array3D const &, array3D &, array3D &)
Definition CG_elem.cpp:3526
void subtractionAABB(array3D const &, array3D const &, array3D const &, array3D const &, array3D &, array3D &)
Definition CG_elem.cpp:3372
array3D projectPointPolygon(array3D const &, std::vector< array3D > const &)
Definition CG_elem.cpp:1215
bool validSegment(array3D const &, array3D const &)
Definition CG_elem.cpp:518
void computeAABBSegment(array3D const &, array3D const &, array3D &, array3D &)
Definition CG_elem.cpp:3234
bool intersectPointBox(array3D const &, array3D const &, array3D const &, int dim=3, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:3215
bool intersectPointSegment(array3D const &, array3D const &, array3D const &, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:3177
bool intersectLineLine(array3D const &, array3D const &, array3D const &, array3D const &, array3D &, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:1787
bool intersectBoxCircle(array3D const &A0, array3D const &A1, array3D const ¢re, double radius, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:3037
bool intersectLinePolygon(array3D const &, array3D const &, std::vector< array3D > const &, array3D &, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:2042
bool intersectSegmentPolygon(array3D const &, array3D const &, std::vector< array3D > const &, array3D &, const double distanceTolerance=DEFAULT_DISTANCE_TOLERANCE)
Definition CG_elem.cpp:2084
