Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CGeometry.hpp
Go to the documentation of this file.
1#ifndef LIBS_MATH_CGEOMETRY_HPP_
2#define LIBS_MATH_CGEOMETRY_HPP_
3
4#include "math/structs.hpp"
5
6#include <cstdint>
7#include <memory>
8#include <vector>
9
11{
12public:
13 static void addPadding(double x, double y, double sizeX, double sizeY, double padding, double *xPadding,
14 double *yPadding, double *sizeXPadding, double *sizeYPadding);
15 static void restPadding(double x, double y, double sizeX, double sizeY, double padding, double *xPadding,
16 double *yPadding, double *sizeXPadding, double *sizeYPadding);
17 static void addRectangle(double *xMin, double *yMin, double *xMax, double *yMax, double propMarginAdd);
18 static double module2D(double x1, double y1, double x2, double y2);
19 static double module2DSquare(double x1, double y1, double x2, double y2);
20 static void horizontalAxisFromThePlaneNormal(double A, double B, double C, double *Ux, double *Uy, double *Uz,
21 double *Vx, double *Vy, double *Vz);
22 static void rectangleWithProportional(double widthWindow, double heightWindow, double coefficientPercentageBorder,
23 double xMin, double yMin, double zMin, double xMax, double yMax, double zMax,
24 double *xMinOut, double *yMinOut, double *zMinOut, double *xMaxOut,
25 double *yMaxOut, double *zMaxOut);
26 static double module3D(double x1, double y1, double z1, double x2, double y2, double z2);
27 static void pointsRectangle(double xCenter, double yCenter, double sizeX, double sizeY, double *x1, double *y1,
28 double *x2, double *y2);
29 static void calculateCoefficientEquationPlane(double x1, double y1, double z1, double x2, double y2, double z2,
30 double x3, double y3, double z3, double *A, double *B, double *C,
31 double *D);
32 static double distanceToPlane(double A, double B, double C, double D, double x, double y, double z);
33 static void point3dProjectedTo2D(double Xo, double Yo, double Zo, double Ux, double Uy, double Uz, double Vx,
34 double Vy, double Vz, double x3D, double y3D, double z3D, double *x2D,
35 double *y2D);
36 static void calculateParametricPoint(double x1, double y1, double z1, double x2, double y2, double z2, double t,
37 double *x, double *y, double *z);
38 static void extrusion(double Nx, double Ny, double Nz, double *Ux, double *Uy, double *Uz, double *Vx, double *Vy,
39 double *Vz);
40 static void rotate2D(double x, double y, double xc, double yc, double Ux, double Uy, double *x_rotate,
41 double *y_rotate);
42 static void movePoint2D(double x, double y, double dx, double dy, double Ux, double Uy, double *xMove,
43 double *yMove);
44 static double angleVectorZeroTo2PiRadians(double x, double y);
45 static void calculateCenter(double xMin, double yMin, double zMin, double xMax, double yMax, double zMax,
46 double *xCenter, double *yCenter, double *zCenter);
47 static double calculatePointYStraight(double y0, double slope, double x);
48 static int32_t compare2PointsVertical(double x1, double y1, double x2, double y2);
49 static int32_t compare2PointsHorizontal(double x1, double y1, double x2, double y2);
50 static void distancePointToLineWithIntersection(double xPoint, double yPoint, double x1, double y1, double x2,
51 double y2, double *xIntersectionOpt, double *yIntersectionOpt,
52 double *distance);
53 static bool pointIsLimits2D(double x, double y, double xMin, double yMin, double xMax, double yMax,
54 double precision);
55 static bool pointIsLimits3D(double x, double y, double z, double xMin, double yMin, double zMin, double xMax,
56 double yMax, double zMax, double precision);
57
58 static void getCoordCornerLeftDownRectangleCenter(double widthRectangle, double heightRectangle,
59 unsigned char justify, double *dx, double *dy);
60 static void getCoordCornerLeftDownRectangleGeneral(double widthRectangle, double heightRectangle, double distLeftX,
61 double distBottomY, unsigned char justify, double *dx,
62 double *dy);
63 static void getParametricValue(double x1, double y1, double x2, double y2, double x, double y, double *tOpt,
64 double *nOpt, double *xtOpt, double *ytOpt);
65 static double getZPointPlane(double A, double B, double C, double D, double x, double y);
66 static double getAreaTrapeze(double x1, double y1, double x2, double y2);
67 static void getAreaAndXCGTrapeze(double xInf, double yInf, double xSup, double ySup, double *areaTrapeze,
68 double *xcgTrapeze);
69 static double
70 getAreaTriangleByCoordinates2D(const std::shared_ptr<std::vector<iv::math::geometry::Point2d>> &trianglePoints);
71
72 static bool hasIntersection(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4,
73 double *tOpt, double *nOpt, double *xOpt, double *yOpt, double precision);
74 static bool areCollinearPoints(double x1, double y1, double z1, double x2, double y2, double z2, double x3,
75 double y3, double z3, double precision);
76 static bool areCollinearPoints2D(double x1, double y1, double x2, double y2, double x3, double y3,
77 double precision);
78 static bool isPointIntoRectangle(double x, double y, double xOrg, double yOrg, double sizeX, double sizeY,
79 double precision);
80 static bool hasIntersectionSegmentPlane(double x1, double y1, double z1, double x2, double y2, double z2, double A,
81 double B, double C, double D, double *tOpt, double *xOpt, double *yOpt,
82 double *zOpt);
83 static bool isSamePoint3D(double x1, double y1, double z1, double x2, double y2, double z2, double precision);
84 static bool isSamePoint2D(double x1, double y1, double x2, double y2, double precision);
85};
86
87#endif /* LIBS_MATH_CGEOMETRY_HPP_ */
Definition CGeometry.hpp:11
static void getAreaAndXCGTrapeze(double xInf, double yInf, double xSup, double ySup, double *areaTrapeze, double *xcgTrapeze)
Definition CGeometry.cpp:690
static void pointsRectangle(double xCenter, double yCenter, double sizeX, double sizeY, double *x1, double *y1, double *x2, double *y2)
Definition CGeometry.cpp:282
static bool pointIsLimits3D(double x, double y, double z, double xMin, double yMin, double zMin, double xMax, double yMax, double zMax, double precision)
Definition CGeometry.cpp:561
static bool areCollinearPoints(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3, double precision)
Definition CGeometry.cpp:838
static void calculateCenter(double xMin, double yMin, double zMin, double xMax, double yMax, double zMax, double *xCenter, double *yCenter, double *zCenter)
Definition CGeometry.cpp:444
static void getParametricValue(double x1, double y1, double x2, double y2, double x, double y, double *tOpt, double *nOpt, double *xtOpt, double *ytOpt)
Definition CGeometry.cpp:594
static bool hasIntersection(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4, double *tOpt, double *nOpt, double *xOpt, double *yOpt, double precision)
Definition CGeometry.cpp:779
static void addPadding(double x, double y, double sizeX, double sizeY, double padding, double *xPadding, double *yPadding, double *sizeXPadding, double *sizeYPadding)
Definition CGeometry.cpp:99
static void movePoint2D(double x, double y, double dx, double dy, double Ux, double Uy, double *xMove, double *yMove)
Definition CGeometry.cpp:420
static double module3D(double x1, double y1, double z1, double x2, double y2, double z2)
Definition CGeometry.cpp:269
static void horizontalAxisFromThePlaneNormal(double A, double B, double C, double *Ux, double *Uy, double *Uz, double *Vx, double *Vy, double *Vz)
Definition CGeometry.cpp:161
static int32_t compare2PointsVertical(double x1, double y1, double x2, double y2)
Definition CGeometry.cpp:465
static bool isSamePoint2D(double x1, double y1, double x2, double y2, double precision)
Definition CGeometry.cpp:985
static double calculatePointYStraight(double y0, double slope, double x)
Definition CGeometry.cpp:456
static void getCoordCornerLeftDownRectangleGeneral(double widthRectangle, double heightRectangle, double distLeftX, double distBottomY, unsigned char justify, double *dx, double *dy)
Definition CGeometry.cpp:578
static double getZPointPlane(double A, double B, double C, double D, double x, double y)
Definition CGeometry.cpp:660
static void calculateCoefficientEquationPlane(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3, double *A, double *B, double *C, double *D)
Definition CGeometry.cpp:296
static bool pointIsLimits2D(double x, double y, double xMin, double yMin, double xMax, double yMax, double precision)
Definition CGeometry.cpp:555
static void calculateParametricPoint(double x1, double y1, double z1, double x2, double y2, double z2, double t, double *x, double *y, double *z)
Definition CGeometry.cpp:354
static int32_t compare2PointsHorizontal(double x1, double y1, double x2, double y2)
Definition CGeometry.cpp:479
static bool hasIntersectionSegmentPlane(double x1, double y1, double z1, double x2, double y2, double z2, double A, double B, double C, double D, double *tOpt, double *xOpt, double *yOpt, double *zOpt)
Definition CGeometry.cpp:924
static double angleVectorZeroTo2PiRadians(double x, double y)
Definition CGeometry.cpp:430
static bool areCollinearPoints2D(double x1, double y1, double x2, double y2, double x3, double y3, double precision)
Definition CGeometry.cpp:880
static bool isSamePoint3D(double x1, double y1, double z1, double x2, double y2, double z2, double precision)
Definition CGeometry.cpp:979
static void distancePointToLineWithIntersection(double xPoint, double yPoint, double x1, double y1, double x2, double y2, double *xIntersectionOpt, double *yIntersectionOpt, double *distance)
Definition CGeometry.cpp:493
static void addRectangle(double *xMin, double *yMin, double *xMax, double *yMax, double propMarginAdd)
Definition CGeometry.cpp:111
static void getCoordCornerLeftDownRectangleCenter(double widthRectangle, double heightRectangle, unsigned char justify, double *dx, double *dy)
Definition CGeometry.cpp:568
static void restPadding(double x, double y, double sizeX, double sizeY, double padding, double *xPadding, double *yPadding, double *sizeXPadding, double *sizeYPadding)
Definition CGeometry.cpp:105
static void rectangleWithProportional(double widthWindow, double heightWindow, double coefficientPercentageBorder, double xMin, double yMin, double zMin, double xMax, double yMax, double zMax, double *xMinOut, double *yMinOut, double *zMinOut, double *xMaxOut, double *yMaxOut, double *zMaxOut)
Definition CGeometry.cpp:200
static double module2DSquare(double x1, double y1, double x2, double y2)
Definition CGeometry.cpp:150
static void rotate2D(double x, double y, double xc, double yc, double Ux, double Uy, double *x_rotate, double *y_rotate)
Definition CGeometry.cpp:401
static double module2D(double x1, double y1, double x2, double y2)
Definition CGeometry.cpp:139
static double getAreaTriangleByCoordinates2D(const std::shared_ptr< std::vector< iv::math::geometry::Point2d > > &trianglePoints)
Definition CGeometry.cpp:744
static bool isPointIntoRectangle(double x, double y, double xOrg, double yOrg, double sizeX, double sizeY, double precision)
Definition CGeometry.cpp:917
static void point3dProjectedTo2D(double Xo, double Yo, double Zo, double Ux, double Uy, double Uz, double Vx, double Vy, double Vz, double x3D, double y3D, double z3D, double *x2D, double *y2D)
Definition CGeometry.cpp:336
static double distanceToPlane(double A, double B, double C, double D, double x, double y, double z)
Definition CGeometry.cpp:331
static void extrusion(double Nx, double Ny, double Nz, double *Ux, double *Uy, double *Uz, double *Vx, double *Vy, double *Vz)
Definition CGeometry.cpp:366
static double getAreaTrapeze(double x1, double y1, double x2, double y2)
Definition CGeometry.cpp:667