![]() |
Stellarium 0.12.4
|
A special case of SphericalPolygon for which the polygon is convex. More...
#include <StelSphereGeometry.hpp>
Public Member Functions | |
SphericalConvexPolygon () | |
Default constructor. More... | |
SphericalConvexPolygon (const QVector< QVector< Vec3d > > &contours) | |
Constructor from a list of contours. More... | |
SphericalConvexPolygon (const QVector< Vec3d > &contour) | |
Constructor from one contour. More... | |
SphericalConvexPolygon (const Vec3d &e0, const Vec3d &e1, const Vec3d &e2) | |
Special constructor for triangle. More... | |
SphericalConvexPolygon (const Vec3d &e0, const Vec3d &e1, const Vec3d &e2, const Vec3d &e3) | |
Special constructor for quads. More... | |
virtual SphericalRegionType | getType () const |
virtual OctahedronPolygon | getOctahedronPolygon () const |
Return the octahedron contour representation of the polygon. More... | |
virtual const QVector< Vec3d > & | getFillVertexPositions () const |
Get a vector of vertex positions forming the region. More... | |
virtual PrimitiveType | getFillPrimitiveType () const |
Get primitive type determining how vertices in vector returned by getFillVertexPositions() form triangles. More... | |
virtual const QVector< Vec3d > & | getOutlineVertexPositions () const |
Get the outline of the contours defining the SphericalPolygon. More... | |
virtual PrimitiveType | getOutlinePrimitiveType () const |
Get primitive type determining how vertices in vector returned by getOutlinePrimitiveType() form lines. More... | |
virtual double | getArea () const |
Return the area of the region in steradians. More... | |
virtual bool | isEmpty () const |
Return true if the region is empty. More... | |
virtual Vec3d | getPointInside () const |
Return a point located inside the region. More... | |
virtual SphericalCap | getBoundingCap () const |
Return a bounding SphericalCap. More... | |
QVector< SphericalCap > | getBoundingSphericalCaps () const |
Return the list of SphericalCap bounding the ConvexPolygon. More... | |
virtual QVariantList | toQVariant () const |
Serialize the region into a QVariant map matching the JSON format. More... | |
virtual void | serialize (QDataStream &out) const |
Serialize the region. This method must allow as fast as possible serialization and work with deserialize(). More... | |
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. More... | |
const QVector< Vec3d > & | getConvexContour () const |
Get the single contour defining the SphericalConvexPolygon. More... | |
bool | checkValid () const |
Check if the polygon is valid, i.e. it has no side >180. More... | |
![]() | |
SphericalRegion () | |
Default constructor. Inializes with no vertex buffers. More... | |
virtual | ~SphericalRegion () |
Destructor. Cleans up vertex buffers, if any. More... | |
virtual SphericalRegionP | getEnlarged (double margin) const |
Return an enlarged version of this SphericalRegion so that any point distant of more than the given margin now lays within the region. More... | |
virtual QVector< QVector< Vec3d > > | getSimplifiedContours () const |
Get the contours defining the SphericalPolygon when combined using a positive winding rule. More... | |
QByteArray | toJSON () const |
Output a JSON string representing the polygon. More... | |
bool | contains (const SphericalRegion *r) const |
Returns whether a SphericalRegion is contained into this region. More... | |
bool | contains (const SphericalRegionP r) const |
bool | contains (const EmptySphericalRegion &) const |
bool | intersects (const SphericalRegion *r) const |
Returns whether a SphericalRegion intersects with this region. More... | |
bool | intersects (const SphericalRegionP r) const |
bool | intersects (const Vec3d &p) const |
bool | intersects (const EmptySphericalRegion &) const |
SphericalRegionP | getIntersection (const SphericalRegion *r) const |
Return a new SphericalRegion consisting of the intersection of this and the given region. More... | |
SphericalRegionP | getIntersection (const SphericalRegionP r) const |
virtual SphericalRegionP | getIntersection (const SphericalPolygon &r) const |
virtual SphericalRegionP | getIntersection (const SphericalConvexPolygon &r) const |
virtual SphericalRegionP | getIntersection (const SphericalCap &r) const |
virtual SphericalRegionP | getIntersection (const SphericalPoint &r) const |
virtual SphericalRegionP | getIntersection (const AllSkySphericalRegion &r) const |
SphericalRegionP | getIntersection (const EmptySphericalRegion &r) const |
SphericalRegionP | getUnion (const SphericalRegion *r) const |
Return a new SphericalRegion consisting of the union of this and the given region. More... | |
SphericalRegionP | getUnion (const SphericalRegionP r) const |
virtual SphericalRegionP | getUnion (const SphericalPolygon &r) const |
virtual SphericalRegionP | getUnion (const SphericalConvexPolygon &r) const |
virtual SphericalRegionP | getUnion (const SphericalCap &r) const |
virtual SphericalRegionP | getUnion (const SphericalPoint &r) const |
SphericalRegionP | getUnion (const AllSkySphericalRegion &r) const |
virtual SphericalRegionP | getUnion (const EmptySphericalRegion &r) const |
SphericalRegionP | getSubtraction (const SphericalRegion *r) const |
Return a new SphericalRegion consisting of the subtraction of the given region from this. More... | |
SphericalRegionP | getSubtraction (const SphericalRegionP r) const |
virtual SphericalRegionP | getSubtraction (const SphericalPolygon &r) const |
virtual SphericalRegionP | getSubtraction (const SphericalConvexPolygon &r) const |
virtual SphericalRegionP | getSubtraction (const SphericalCap &r) const |
virtual SphericalRegionP | getSubtraction (const SphericalPoint &r) const |
SphericalRegionP | getSubtraction (const AllSkySphericalRegion &r) const |
virtual SphericalRegionP | getSubtraction (const EmptySphericalRegion &r) const |
virtual void | drawFill (class StelRenderer *renderer, const DrawParams ¶ms) |
Draw the region as triangles (i.e. More... | |
virtual void | drawOutline (class StelRenderer *renderer, const DrawParams ¶ms) |
Draw the outline of the region. More... | |
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. More... | |
static SphericalRegionP | deserialize (QDataStream &in) |
Deserialize the region. This method must allow as fast as possible deserialization. More... | |
Protected Member Functions | |
void | updateBoundingCap () |
Update the bounding cap from the vertex list. More... | |
virtual void | updateFillVertexBuffer (class StelRenderer *renderer, const DrawParams ¶ms, bool handleDiscontinuity) |
Update the vertex buffer used by drawFill(). More... | |
virtual void | drawFillVertexBuffer (class StelRenderer *renderer, class StelProjector *projector) |
Drawing part of drawFill() - assumes the buffer/s is/are generated. More... | |
virtual bool | needToUpdateFillVertexBuffers () const |
Do we need to update vertex buffer/s used by drawFill()? More... | |
virtual void | fillVertexBuffersUpdated () |
Called after updating vertex buffer/s used by drawFill(). More... | |
bool | areAllPointsOutsideOneSide (const QVector< Vec3d > &points) const |
Computes whether the passed points are all outside of at least one SphericalCap defining the polygon boundary. More... | |
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. More... | |
Protected Attributes | |
QVector< Vec3d > | contour |
A list of vertices of the convex contour. More... | |
SphericalCap | cachedBoundingCap |
Cache the bounding cap. More... | |
bool | fillVertexBufferNeedsUpdate |
Does the drawFill() vertex buffer need an update? More... | |
![]() | |
StelVertexBuffer< PlainVertex > * | fillPlainVertexBuffer |
Cached plain vertex buffer for drawing. More... | |
bool | useProjector |
Should Renderer draw calls specify a projector? More... | |
Additional Inherited Members | |
![]() | |
enum | SphericalRegionType { Point = 0, Cap = 1, AllSky = 2, Polygon = 3, ConvexPolygon = 4, Empty = 5, Invalid = 6 } |
define types for all supported regions. More... | |
A special case of SphericalPolygon for which the polygon is convex.
Definition at line 877 of file StelSphereGeometry.hpp.
|
inline |
Default constructor.
Definition at line 885 of file StelSphereGeometry.hpp.
|
inline |
Constructor from a list of contours.
Definition at line 888 of file StelSphereGeometry.hpp.
|
inline |
Constructor from one contour.
Definition at line 896 of file StelSphereGeometry.hpp.
|
inline |
Special constructor for triangle.
Definition at line 903 of file StelSphereGeometry.hpp.
|
inline |
Special constructor for quads.
Definition at line 910 of file StelSphereGeometry.hpp.
|
staticprotected |
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. |
|
inlineprotected |
Computes whether the passed points are all outside of at least one SphericalCap defining the polygon boundary.
Definition at line 1044 of file StelSphereGeometry.hpp.
bool SphericalConvexPolygon::checkValid | ( | ) | const |
Check if the polygon is valid, i.e. it has no side >180.
|
static |
Check if the passed contour is convex and valid, i.e. it has no side >180.
|
static |
Deserialize the region. This method must allow as fast as possible deserialization.
|
protectedvirtual |
Drawing part of drawFill() - assumes the buffer/s is/are generated.
renderer | Renderer used for drawing. |
projector | Projector to project the vertices (NULL if subdivision is enabled, as in that case the projection is done during buffer generation) |
Reimplemented from SphericalRegion.
Reimplemented in SphericalTexturedConvexPolygon.
|
inlineprotectedvirtual |
Called after updating vertex buffer/s used by drawFill().
Reimplemented from SphericalRegion.
Definition at line 1031 of file StelSphereGeometry.hpp.
|
virtual |
Return the area of the region in steradians.
Reimplemented from SphericalRegion.
|
inlinevirtual |
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.
Definition at line 946 of file StelSphereGeometry.hpp.
|
virtual |
Return the list of SphericalCap bounding the ConvexPolygon.
Reimplemented from SphericalRegion.
|
inline |
Get the single contour defining the SphericalConvexPolygon.
Definition at line 998 of file StelSphereGeometry.hpp.
|
inlinevirtual |
Get primitive type determining how vertices in vector returned by getFillVertexPositions() form triangles.
Reimplemented from SphericalRegion.
Definition at line 928 of file StelSphereGeometry.hpp.
|
inlinevirtual |
Get a vector of vertex positions forming the region.
Reimplemented from SphericalRegion.
Definition at line 923 of file StelSphereGeometry.hpp.
|
inlinevirtual |
Return the octahedron contour representation of the polygon.
It can be used for safe computation of intersection/union in the general case.
Implements SphericalRegion.
Definition at line 918 of file StelSphereGeometry.hpp.
|
inlinevirtual |
Get primitive type determining how vertices in vector returned by getOutlinePrimitiveType() form lines.
Reimplemented from SphericalRegion.
Definition at line 938 of file StelSphereGeometry.hpp.
|
inlinevirtual |
Get the outline of the contours defining the SphericalPolygon.
Reimplemented from SphericalRegion.
Definition at line 933 of file StelSphereGeometry.hpp.
|
virtual |
Return a point located inside the region.
Reimplemented from SphericalRegion.
|
inlinevirtual |
Return true if the region is empty.
Reimplemented from SphericalRegion.
Definition at line 944 of file StelSphereGeometry.hpp.
|
inlineprotectedvirtual |
Do we need to update vertex buffer/s used by drawFill()?
Might be true if e.g. the region has changed. Note that this is only one possible reason to update the buffers, drawFill() contains the full logic to determine this (e.g. we always update when subdividing is enabled).
Reimplemented from SphericalRegion.
Definition at line 1026 of file StelSphereGeometry.hpp.
|
inlinevirtual |
Serialize the region. This method must allow as fast as possible serialization and work with deserialize().
Implements SphericalRegion.
Reimplemented in SphericalTexturedConvexPolygon.
Definition at line 953 of file StelSphereGeometry.hpp.
|
inline |
Set a single contour defining the SphericalPolygon.
acontour | a contour defining the polygon area. |
Definition at line 990 of file StelSphereGeometry.hpp.
|
virtual |
Serialize the region into a QVariant map matching the JSON format.
The format is
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.
|
protected |
Update the bounding cap from the vertex list.
|
protectedvirtual |
Update the vertex buffer used by drawFill().
Called when drawing parameters have changed, or when we cannot cache vertices (e.g. when subdividing and this projecting outside Renderer).
renderer | Renderer to create vertex buffer. |
params | Parameters used for drawing (which also affect vertex generation). |
handleDiscontinuity | Do we need to ensure that no triangles cross a projection discontinuity? |
Reimplemented from SphericalRegion.
Reimplemented in SphericalTexturedConvexPolygon.
|
protected |
Cache the bounding cap.
Definition at line 1014 of file StelSphereGeometry.hpp.
|
protected |
A list of vertices of the convex contour.
Definition at line 1011 of file StelSphereGeometry.hpp.
|
protected |
Does the drawFill() vertex buffer need an update?
Definition at line 1017 of file StelSphereGeometry.hpp.