QGIS API Documentation
2.18.21-Las Palmas (9fba24a)
|
Functions | |
double ANALYSIS_EXPORT | angle (Point3D *p1, Point3D *p2, Point3D *p3, Point3D *p4) |
Calculates the angle between two segments (in 2 dimension, z-values are ignored) More... | |
bool ANALYSIS_EXPORT | BarycentricToXY (double u, double v, double w, Point3D *p1, Point3D *p2, Point3D *p3, Point3D *result) |
bool ANALYSIS_EXPORT | calcBarycentricCoordinates (double x, double y, Point3D *p1, Point3D *p2, Point3D *p3, Point3D *result) |
Calculates the barycentric coordinates of a point (x,y) with respect to p1, p2, p3 and stores the three barycentric coordinates in 'result'. More... | |
double ANALYSIS_EXPORT | calcBernsteinPoly (int n, int i, double t) |
Calculates the value of a Bernstein polynomial. More... | |
double ANALYSIS_EXPORT | calcCubicHermitePoly (int n, int i, double t) |
Calculates the value of a cubic Hermite polynomial. More... | |
double ANALYSIS_EXPORT | cFDerBernsteinPoly (int n, int i, double t) |
Calculates the first derivative of a Bernstein polynomial with respect to the parameter t. More... | |
double ANALYSIS_EXPORT | cFDerCubicHermitePoly (int n, int i, double t) |
Calculates the first derivative of a cubic Hermite polynomial with respect to the parameter t. More... | |
bool ANALYSIS_EXPORT | circumcenter (Point3D *p1, Point3D *p2, Point3D *p3, Point3D *result) |
Calculates the center of the circle passing through p1, p2 and p3. More... | |
double ANALYSIS_EXPORT | crossVec (Point3D *first, Vector3D *vec1, Point3D *second, Vector3D *vec2) |
Calculates the intersection of the two vectors vec1 and vec2, which start at first(vec1) and second(vec2) end. More... | |
bool ANALYSIS_EXPORT | derVec (const Vector3D *v1, const Vector3D *v2, Vector3D *result, double x, double y) |
Calculates the z-component of a vector with coordinates 'x' and 'y'which is in the same tangent plane as the tangent vectors 'v1' and 'v2'. More... | |
double ANALYSIS_EXPORT | distPointFromLine (Point3D *thepoint, Point3D *p1, Point3D *p2) |
Calculates the (2 dimensional) distance from 'thepoint' to the line defined by p1 and p2. More... | |
int ANALYSIS_EXPORT | faculty (int n) |
Faculty function. More... | |
bool ANALYSIS_EXPORT | inCircle (Point3D *testp, Point3D *p1, Point3D *p2, Point3D *p3) |
Tests, whether 'testp' is inside the circle through 'p1', 'p2' and 'p3'. More... | |
bool ANALYSIS_EXPORT | inDiametral (Point3D *p1, Point3D *p2, Point3D *point) |
Tests, whether 'point' is inside the diametral circle through 'p1' and 'p2'. More... | |
double ANALYSIS_EXPORT | leftOf (Point3D *thepoint, Point3D *p1, Point3D *p2) |
Returns whether 'thepoint' is left or right of the line from 'p1' to 'p2'. More... | |
bool ANALYSIS_EXPORT | lineIntersection (Point3D *p1, Point3D *p2, Point3D *p3, Point3D *p4) |
Returns true, if line1 (p1 to p2) and line2 (p3 to p4) intersect. More... | |
bool ANALYSIS_EXPORT | lineIntersection (Point3D *p1, Point3D *p2, Point3D *p3, Point3D *p4, Point3D *intersection_point) |
Returns true, if line1 (p1 to p2) and line2 (p3 to p4) intersect. More... | |
int ANALYSIS_EXPORT | lower (int n, int i) |
Lower function. More... | |
double ANALYSIS_EXPORT | max (double x, double y) |
Returns the maximum of two doubles or the first argument if both are equal. More... | |
double ANALYSIS_EXPORT | min (double x, double y) |
Returns the minimum of two doubles or the first argument if both are equal. More... | |
void ANALYSIS_EXPORT | normalFromPoints (Point3D *p1, Point3D *p2, Point3D *p3, Vector3D *vec) |
Calculates the normal vector of the plane through the points p1, p2 and p3 and assigns the result to vec. More... | |
bool ANALYSIS_EXPORT | normalLeft (Vector3D *v1, Vector3D *result, double length) |
Assigns the vector 'result', which is normal to the vector 'v1', on the left side of v1 and has length 'length'. More... | |
bool ANALYSIS_EXPORT | normalMinDistance (Vector3D *tangent, Vector3D *target, Vector3D *result) |
Calculates a Vector orthogonal to 'tangent' with length 1 and closest possible to result. More... | |
bool ANALYSIS_EXPORT | normalRight (Vector3D *v1, Vector3D *result, double length) |
Assigns the vector 'result', which is normal to the vector 'v1', on the right side of v1 and has length 'length'. More... | |
double ANALYSIS_EXPORT | planeTest (Point3D *test, Point3D *pt1, Point3D *pt2, Point3D *pt3) |
Tests, if 'test' is in the same plane as 'p1', 'p2' and 'p3' and returns the z-difference from the plane to 'test. More... | |
bool ANALYSIS_EXPORT | pointInsideTriangle (double x, double y, Point3D *p1, Point3D *p2, Point3D *p3) |
Returns true, if the point with coordinates x and y is inside (or at the edge) of the triangle p1,p2,p3 and false, if it is outside. More... | |
double ANALYSIS_EXPORT | power (double a, int b) |
Power function for integer coefficients. More... | |
double ANALYSIS_EXPORT | triArea (Point3D *pa, Point3D *pb, Point3D *pc) |
Returns the area of a triangle. More... | |
Calculates the angle between two segments (in 2 dimension, z-values are ignored)
bool ANALYSIS_EXPORT MathUtils::BarycentricToXY | ( | double | u, |
double | v, | ||
double | w, | ||
Point3D * | p1, | ||
Point3D * | p2, | ||
Point3D * | p3, | ||
Point3D * | result | ||
) |
bool ANALYSIS_EXPORT MathUtils::calcBarycentricCoordinates | ( | double | x, |
double | y, | ||
Point3D * | p1, | ||
Point3D * | p2, | ||
Point3D * | p3, | ||
Point3D * | result | ||
) |
Calculates the barycentric coordinates of a point (x,y) with respect to p1, p2, p3 and stores the three barycentric coordinates in 'result'.
Thus the u-coordinate is stored in result::x, the v-coordinate in result::y and the w-coordinate in result::z. Attention: p1, p2 and p3 have to be ordered counterclockwise
double ANALYSIS_EXPORT MathUtils::calcBernsteinPoly | ( | int | n, |
int | i, | ||
double | t | ||
) |
Calculates the value of a Bernstein polynomial.
double ANALYSIS_EXPORT MathUtils::calcCubicHermitePoly | ( | int | n, |
int | i, | ||
double | t | ||
) |
Calculates the value of a cubic Hermite polynomial.
double ANALYSIS_EXPORT MathUtils::cFDerBernsteinPoly | ( | int | n, |
int | i, | ||
double | t | ||
) |
Calculates the first derivative of a Bernstein polynomial with respect to the parameter t.
double ANALYSIS_EXPORT MathUtils::cFDerCubicHermitePoly | ( | int | n, |
int | i, | ||
double | t | ||
) |
Calculates the first derivative of a cubic Hermite polynomial with respect to the parameter t.
bool ANALYSIS_EXPORT MathUtils::circumcenter | ( | Point3D * | p1, |
Point3D * | p2, | ||
Point3D * | p3, | ||
Point3D * | result | ||
) |
Calculates the center of the circle passing through p1, p2 and p3.
Returns true in case of success and false otherwise (e.g. all three points on a line)
double ANALYSIS_EXPORT MathUtils::crossVec | ( | Point3D * | first, |
Vector3D * | vec1, | ||
Point3D * | second, | ||
Vector3D * | vec2 | ||
) |
Calculates the intersection of the two vectors vec1 and vec2, which start at first(vec1) and second(vec2) end.
The return value is t2(multiplication of v2 with t2 and adding to 'second' results the intersection point)
bool ANALYSIS_EXPORT MathUtils::derVec | ( | const Vector3D * | v1, |
const Vector3D * | v2, | ||
Vector3D * | result, | ||
double | x, | ||
double | y | ||
) |
Calculates the z-component of a vector with coordinates 'x' and 'y'which is in the same tangent plane as the tangent vectors 'v1' and 'v2'.
The result is assigned to 'result'
double ANALYSIS_EXPORT MathUtils::distPointFromLine | ( | Point3D * | thepoint, |
Point3D * | p1, | ||
Point3D * | p2 | ||
) |
Calculates the (2 dimensional) distance from 'thepoint' to the line defined by p1 and p2.
int ANALYSIS_EXPORT MathUtils::faculty | ( | int | n | ) |
Faculty function.
bool ANALYSIS_EXPORT MathUtils::inCircle | ( | Point3D * | testp, |
Point3D * | p1, | ||
Point3D * | p2, | ||
Point3D * | p3 | ||
) |
Tests, whether 'testp' is inside the circle through 'p1', 'p2' and 'p3'.
Tests, whether 'point' is inside the diametral circle through 'p1' and 'p2'.
Returns whether 'thepoint' is left or right of the line from 'p1' to 'p2'.
Negativ values mean left and positiv values right. There may be numerical instabilities, so a threshold may be useful
bool ANALYSIS_EXPORT MathUtils::lineIntersection | ( | Point3D * | p1, |
Point3D * | p2, | ||
Point3D * | p3, | ||
Point3D * | p4 | ||
) |
Returns true, if line1 (p1 to p2) and line2 (p3 to p4) intersect.
If the lines have an endpoint in common, false is returned
bool ANALYSIS_EXPORT MathUtils::lineIntersection | ( | Point3D * | p1, |
Point3D * | p2, | ||
Point3D * | p3, | ||
Point3D * | p4, | ||
Point3D * | intersection_point | ||
) |
Returns true, if line1 (p1 to p2) and line2 (p3 to p4) intersect.
If the lines have an endpoint in common, false is returned. The intersecting point is stored in 'intersection_point.
int ANALYSIS_EXPORT MathUtils::lower | ( | int | n, |
int | i | ||
) |
Lower function.
double ANALYSIS_EXPORT MathUtils::max | ( | double | x, |
double | y | ||
) |
Returns the maximum of two doubles or the first argument if both are equal.
double ANALYSIS_EXPORT MathUtils::min | ( | double | x, |
double | y | ||
) |
Returns the minimum of two doubles or the first argument if both are equal.
void ANALYSIS_EXPORT MathUtils::normalFromPoints | ( | Point3D * | p1, |
Point3D * | p2, | ||
Point3D * | p3, | ||
Vector3D * | vec | ||
) |
Calculates the normal vector of the plane through the points p1, p2 and p3 and assigns the result to vec.
If the points are ordered counterclockwise, the normal will have a positive z-coordinate;
Assigns the vector 'result', which is normal to the vector 'v1', on the left side of v1 and has length 'length'.
This method works only with two dimensions.
bool ANALYSIS_EXPORT MathUtils::normalMinDistance | ( | Vector3D * | tangent, |
Vector3D * | target, | ||
Vector3D * | result | ||
) |
Calculates a Vector orthogonal to 'tangent' with length 1 and closest possible to result.
Returns true in case of success and false otherwise
Assigns the vector 'result', which is normal to the vector 'v1', on the right side of v1 and has length 'length'.
The calculation is only in two dimensions
double ANALYSIS_EXPORT MathUtils::planeTest | ( | Point3D * | test, |
Point3D * | pt1, | ||
Point3D * | pt2, | ||
Point3D * | pt3 | ||
) |
Tests, if 'test' is in the same plane as 'p1', 'p2' and 'p3' and returns the z-difference from the plane to 'test.
bool ANALYSIS_EXPORT MathUtils::pointInsideTriangle | ( | double | x, |
double | y, | ||
Point3D * | p1, | ||
Point3D * | p2, | ||
Point3D * | p3 | ||
) |
Returns true, if the point with coordinates x and y is inside (or at the edge) of the triangle p1,p2,p3 and false, if it is outside.
p1, p2 and p3 have to be ordered counterclockwise
double ANALYSIS_EXPORT MathUtils::power | ( | double | a, |
int | b | ||
) |
Power function for integer coefficients.