1 #ifndef _computationalGeometry_h_ 2 #define _computationalGeometry_h_ 10 int FRAM(
struct IntPoints &intPts,
unsigned int count, std::vector<IntPoints> &intPtsList,
struct Poly &newPoly,
struct Poly &poly2,
struct Stats &pstats, std::vector<TriplePtTempData> &tempData, std::vector<Point> &triplePoints, std::vector<IntPoints> &tempIntPts);
11 int intersectionChecking(
struct Poly &newPoly, std::vector<Poly> &acceptedPoly, std::vector<IntPoints> &intpts,
struct Stats &pstats, std::vector<Point> &triplePoints);
struct IntPoints polyAndIntersection_RotationToXY(struct IntPoints &intersection, Poly &newPoly, std::vector< Point > &triplePoints, std::vector< Point > &tempTripPts)
void translate(Poly &newPoly, double *translation)
double lineSegToLineSeg(const double *line1, const double *line2, Point &pt)
struct IntPoints findIntersections(short &flag, struct Poly &poly1, struct Poly &poly2)
bool checkDistToNewIntersections(std::vector< IntPoints > &tempIntPts, IntPoints &intpts, std::vector< TriplePtTempData > &tempTripPts, double minDistance)
void printBoundingBox(struct Poly &newPoly)
Point lineIntersection3D(const double *p1, double *v1, const double *p2, double *v2)
double lineSegToLineSegSep(const double *line1, const double *line2)
double pointToLineSeg(const double *point, const double *line)
bool checkDistIntPtsEdge(struct PointList &tmpPoints, struct Poly &newPoly, struct Poly &poly2)
int checkForTripleIntersections(IntPoints &intPts, unsigned int count, std::vector< IntPoints > &intPtsList, Poly &newPoly, Poly &poly2, std::vector< TriplePtTempData > &tempData, std::vector< Point > &triplePoints)
bool shrinkIntersection(IntPoints &intPts, double *edge, double shrinkLimit, double firstNodeMinDist, double minDist)
void applyRotation3D(struct Poly &newPoly, double *normal)
bool checkCloseEdge(Poly &poly1, IntPoints &intPts, double shrinkLimit, Stats &pstats)
void createBoundingBox(struct Poly &newPoly)
int FRAM(struct IntPoints &intPts, unsigned int count, std::vector< IntPoints > &intPtsList, struct Poly &newPoly, struct Poly &poly2, struct Stats &pstats, std::vector< TriplePtTempData > &tempData, std::vector< Point > &triplePoints, std::vector< IntPoints > &tempIntPts)
bool checkBoundingBox(struct Poly &poly1, struct Poly &poly2)
int intersectionChecking(struct Poly &newPoly, std::vector< Poly > &acceptedPoly, std::vector< IntPoints > &intpts, struct Stats &pstats, std::vector< Point > &triplePoints)
bool checkDistanceFromNodes(struct Poly &poly, IntPoints &intPts, double minSize, Stats &pstats)
bool PointOnLineSeg(const Point &pt, const double *line)
void applyRotation2D(struct Poly &newPoly, float angle)
bool checkDistToOldIntersections(std::vector< IntPoints > &intPtsList, IntPoints &intPts, Poly &poly2, double minDistance)
double * rotationMatrix(double *normalA, double *normalB)