Stellarium 0.11.4 | |||
Home · All Namespaces · All Classes · Functions · Coding Style · Scripting · Plugins · File Structure |
A special case of SphericalPolygon for which the polygon is convex. More...
#include <StelSphereGeometry.hpp>
Public Member Functions | |
SphericalConvexPolygon () | |
Default constructor. | |
SphericalConvexPolygon (const QVector< QVector< Vec3d > > &contours) | |
Constructor from a list of contours. | |
SphericalConvexPolygon (const QVector< Vec3d > &contour) | |
Constructor from one contour. | |
SphericalConvexPolygon (const Vec3d &e0, const Vec3d &e1, const Vec3d &e2) | |
Special constructor for triangle. | |
SphericalConvexPolygon (const Vec3d &e0, const Vec3d &e1, const Vec3d &e2, const Vec3d &e3) | |
Special constructor for quads. | |
virtual SphericalRegionType | getType () const |
virtual OctahedronPolygon | getOctahedronPolygon () const |
Return the octahedron contour representation of the polygon. | |
virtual StelVertexArray | getFillVertexArray () const |
Return an openGL compatible array to be displayed using vertex arrays. | |
virtual StelVertexArray | getOutlineVertexArray () const |
Get the outline of the contours defining the SphericalPolygon. | |
virtual double | getArea () const |
Return the area of the region in steradians. | |
virtual bool | isEmpty () const |
Return true if the region is empty. | |
virtual Vec3d | getPointInside () const |
Return a point located inside the region. | |
virtual SphericalCap | getBoundingCap () const |
Return a bounding SphericalCap. | |
QVector< SphericalCap > | getBoundingSphericalCaps () const |
Return the list of SphericalCap bounding the ConvexPolygon. | |
virtual QVariantList | toQVariant () const |
Serialize the region into a QVariant map matching the JSON format. | |
virtual void | serialize (QDataStream &out) const |
Serialize the region. This method must allow as fast as possible serialization and work with deserialize(). | |
virtual bool | contains (const Vec3d &p) const |
virtual bool | contains (const SphericalPolygon &r) const |
virtual bool | contains (const SphericalConvexPolygon &r) const |
virtual bool | contains (const SphericalCap &r) const |
virtual bool | contains (const SphericalPoint &r) const |
virtual bool | contains (const AllSkySphericalRegion &) const |
virtual bool | intersects (const SphericalCap &r) const |
virtual bool | intersects (const SphericalPolygon &r) const |
virtual bool | intersects (const SphericalConvexPolygon &r) const |
virtual bool | intersects (const SphericalPoint &r) const |
virtual bool | intersects (const AllSkySphericalRegion &) const |
void | setContour (const QVector< Vec3d > &acontour) |
Set a single contour defining the SphericalPolygon. | |
const QVector< Vec3d > & | getConvexContour () const |
Get the single contour defining the SphericalConvexPolygon. | |
bool | checkValid () const |
Check if the polygon is valid, i.e. it has no side >180. | |
Static Public Member Functions | |
static bool | checkValidContour (const QVector< Vec3d > &contour) |
Check if the passed contour is convex and valid, i.e. it has no side >180. | |
static SphericalRegionP | deserialize (QDataStream &in) |
Deserialize the region. This method must allow as fast as possible deserialization. | |
Protected Member Functions | |
void | updateBoundingCap () |
Update the bounding cap from the vertex list. | |
bool | areAllPointsOutsideOneSide (const QVector< Vec3d > &points) const |
Computes whether the passed points are all outside of at least one SphericalCap defining the polygon boundary. | |
bool | containsConvexContour (const Vec3d *vertice, int nbVertex) const |
Static Protected Member Functions | |
static bool | areAllPointsOutsideOneSide (const Vec3d *thisContour, int nbThisContour, const Vec3d *points, int nbPoints) |
Computes whether the passed points are all outside of at least one SphericalCap defining the polygon boundary. | |
Protected Attributes | |
QVector< Vec3d > | contour |
A list of vertices of the convex contour. | |
SphericalCap | cachedBoundingCap |
Cache the bounding cap. |
A special case of SphericalPolygon for which the polygon is convex.
SphericalConvexPolygon::SphericalConvexPolygon | ( | ) | [inline] |
Default constructor.
SphericalConvexPolygon::SphericalConvexPolygon | ( | const QVector< QVector< Vec3d > > & | contours | ) | [inline] |
Constructor from a list of contours.
SphericalConvexPolygon::SphericalConvexPolygon | ( | const QVector< Vec3d > & | contour | ) | [inline] |
Constructor from one contour.
SphericalConvexPolygon::SphericalConvexPolygon | ( | const Vec3d & | e0, | |
const Vec3d & | e1, | |||
const Vec3d & | e2 | |||
) | [inline] |
Special constructor for triangle.
SphericalConvexPolygon::SphericalConvexPolygon | ( | const Vec3d & | e0, | |
const Vec3d & | e1, | |||
const Vec3d & | e2, | |||
const Vec3d & | e3 | |||
) | [inline] |
Special constructor for quads.
bool SphericalConvexPolygon::areAllPointsOutsideOneSide | ( | const QVector< Vec3d > & | points | ) | const [inline, protected] |
Computes whether the passed points are all outside of at least one SphericalCap defining the polygon boundary.
static bool SphericalConvexPolygon::areAllPointsOutsideOneSide | ( | const Vec3d * | thisContour, | |
int | nbThisContour, | |||
const Vec3d * | points, | |||
int | nbPoints | |||
) | [static, protected] |
Computes whether the passed points are all outside of at least one SphericalCap defining the polygon boundary.
thisContour | the vertices defining the contour. | |
nbThisContour | nb of vertice of the contour. | |
points | the points to test. | |
nbPoints | the number of points to test. |
bool SphericalConvexPolygon::checkValid | ( | ) | const |
Check if the polygon is valid, i.e. it has no side >180.
static bool SphericalConvexPolygon::checkValidContour | ( | const QVector< Vec3d > & | contour | ) | [static] |
Check if the passed contour is convex and valid, i.e. it has no side >180.
static SphericalRegionP SphericalConvexPolygon::deserialize | ( | QDataStream & | in | ) | [static] |
Deserialize the region. This method must allow as fast as possible deserialization.
virtual double SphericalConvexPolygon::getArea | ( | ) | const [virtual] |
Return the area of the region in steradians.
Reimplemented from SphericalRegion.
virtual SphericalCap SphericalConvexPolygon::getBoundingCap | ( | ) | const [inline, virtual] |
Return a bounding SphericalCap.
This method is heavily used and therefore needs to be very fast. The returned SphericalCap doesn't have to be the smallest one, but smaller is better.
Reimplemented from SphericalRegion.
QVector<SphericalCap> SphericalConvexPolygon::getBoundingSphericalCaps | ( | ) | const [virtual] |
Return the list of SphericalCap bounding the ConvexPolygon.
Reimplemented from SphericalRegion.
const QVector<Vec3d>& SphericalConvexPolygon::getConvexContour | ( | ) | const [inline] |
Get the single contour defining the SphericalConvexPolygon.
virtual StelVertexArray SphericalConvexPolygon::getFillVertexArray | ( | ) | const [inline, virtual] |
Return an openGL compatible array to be displayed using vertex arrays.
Reimplemented from SphericalRegion.
Reimplemented in SphericalTexturedConvexPolygon.
virtual OctahedronPolygon SphericalConvexPolygon::getOctahedronPolygon | ( | ) | const [inline, virtual] |
Return the octahedron contour representation of the polygon.
It can be used for safe computation of intersection/union in the general case.
Implements SphericalRegion.
virtual StelVertexArray SphericalConvexPolygon::getOutlineVertexArray | ( | ) | const [inline, virtual] |
Get the outline of the contours defining the SphericalPolygon.
Reimplemented from SphericalRegion.
virtual Vec3d SphericalConvexPolygon::getPointInside | ( | ) | const [virtual] |
Return a point located inside the region.
Reimplemented from SphericalRegion.
virtual bool SphericalConvexPolygon::isEmpty | ( | ) | const [inline, virtual] |
Return true if the region is empty.
Reimplemented from SphericalRegion.
virtual void SphericalConvexPolygon::serialize | ( | QDataStream & | out | ) | const [inline, virtual] |
Serialize the region. This method must allow as fast as possible serialization and work with deserialize().
Implements SphericalRegion.
Reimplemented in SphericalTexturedConvexPolygon.
void SphericalConvexPolygon::setContour | ( | const QVector< Vec3d > & | acontour | ) | [inline] |
Set a single contour defining the SphericalPolygon.
acontour | a contour defining the polygon area. |
virtual QVariantList SphericalConvexPolygon::toQVariant | ( | ) | const [virtual] |
Serialize the region into a QVariant map matching the JSON format.
The format is
["CONVEX_POLYGON", [[ra,dec], [ra,dec], [ra,dec], [ra,dec]]]
where the coords are a closed convex contour, with each points defined by ra dec in degree in the ICRS frame.
Implements SphericalRegion.
Reimplemented in SphericalTexturedConvexPolygon.
void SphericalConvexPolygon::updateBoundingCap | ( | ) | [protected] |
Update the bounding cap from the vertex list.
Cache the bounding cap.
QVector<Vec3d> SphericalConvexPolygon::contour [protected] |
A list of vertices of the convex contour.