Stellarium
0.20.4
|
Manage a non-convex polygon which can extends on more than 180 deg. More...
#include <OctahedronPolygon.hpp>
Public Member Functions | |
OctahedronPolygon (const SubContour &subContour) | |
Create the OctahedronPolygon by splitting the passed SubContour on the 8 sides of the octahedron. | |
OctahedronPolygon (const QVector< QVector< Vec3d > > &contours) | |
OctahedronPolygon (const QVector< Vec3d > &contour) | |
OctahedronPolygon (const QList< OctahedronPolygon > &octContours) | |
double | getArea () const |
Vec3d | getPointInside () const |
StelVertexArray | getFillVertexArray () const |
Returns the list of triangles resulting from tesselating the contours. | |
StelVertexArray | getOutlineVertexArray () const |
void | getBoundingCap (Vec3d &v, double &d) const |
void | inPlaceIntersection (const OctahedronPolygon &mpoly) |
Set this OctahedronPolygon as the intersection of itself with the given OctahedronPolygon. | |
void | inPlaceUnion (const OctahedronPolygon &mpoly) |
Set this OctahedronPolygon as the union of itself with the given OctahedronPolygon. | |
void | inPlaceSubtraction (const OctahedronPolygon &mpoly) |
Set this OctahedronPolygon as the subtraction of itself with the given OctahedronPolygon. | |
bool | intersects (const OctahedronPolygon &mpoly) const |
bool | contains (const OctahedronPolygon &mpoly) const |
bool | contains (const Vec3d &p) const |
bool | isEmpty () const |
QString | toJson () const |
Static Public Member Functions | |
static const OctahedronPolygon & | getAllSkyOctahedronPolygon () |
static const OctahedronPolygon & | getEmptyOctahedronPolygon () |
static double | sphericalTriangleArea (const Vec3d &v0, const Vec3d &v1, const Vec3d &v2) |
Friends | |
class | TestStelSphericalGeometry |
QDataStream & | operator<< (QDataStream &, const OctahedronPolygon &) |
QDataStream & | operator>> (QDataStream &, OctahedronPolygon &) |
OctahedronPolygon | createAllSkyOctahedronPolygon () |
The contours defining the polygon are splitted and projected on the 8 sides of an Octahedron to enable 2D geometry algorithms to be used.