Stellarium  1.2
Public Member Functions | Protected Attributes
SphericalTexturedConvexPolygon Class Reference

#include <StelSphereGeometry.hpp>

Public Member Functions

 SphericalTexturedConvexPolygon ()
 Default constructor.
 
 SphericalTexturedConvexPolygon (const QVector< Vec3d > &contour, const QVector< Vec2f > &texCoord)
 Constructor from one contour.
 
 SphericalTexturedConvexPolygon (const Vec3d &e0, const Vec3d &e1, const Vec3d &e2, const Vec3d &e3)
 Special constructor for quads. More...
 
virtual StelVertexArray getFillVertexArray (const Vec3d &observerVelocityForAberration) Q_DECL_OVERRIDE
 Return an OpenGL compatible array to be displayed using vertex arrays. More...
 
virtual StelVertexArray getFillVertexArray () const Q_DECL_OVERRIDE
 Return array without any aberration.
 
virtual void setContour (const QVector< Vec3d > &acontour, const QVector< Vec2f > &texCoord)
 Set a single contour defining the SphericalPolygon. More...
 
virtual QVariantList toQVariant () const Q_DECL_OVERRIDE
 Serialize the region into a QVariant map matching the JSON format. More...
 
virtual void serialize (QDataStream &out) const Q_DECL_OVERRIDE
 Serialize the region. This method must allow as fast as possible serialization and work with deserialize().
 
- Public Member Functions inherited from SphericalConvexPolygon
 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 Q_DECL_OVERRIDE
 
virtual OctahedronPolygon getOctahedronPolygon () const Q_DECL_OVERRIDE
 Return the octahedron contour representation of the polygon. More...
 
virtual StelVertexArray getOutlineVertexArray () const Q_DECL_OVERRIDE
 Get the outline of the contours defining the SphericalPolygon. More...
 
virtual StelVertexArray getOutlineVertexArray (Vec3d observerVelocityForAberration) Q_DECL_OVERRIDE
 Get the outline of the contours defining the SphericalPolygon. More...
 
virtual double getArea () const Q_DECL_OVERRIDE
 Return the area of the region in steradians.
 
virtual bool isEmpty () const Q_DECL_OVERRIDE
 Return true if the region is empty.
 
virtual Vec3d getPointInside () const Q_DECL_OVERRIDE
 Return a point located inside the region.
 
virtual SphericalCap getBoundingCap () const Q_DECL_OVERRIDE
 Return a bounding SphericalCap. More...
 
QVector< SphericalCapgetBoundingSphericalCaps () const Q_DECL_OVERRIDE
 Return the list of SphericalCap bounding the ConvexPolygon.
 
virtual bool contains (const Vec3d &p) const Q_DECL_OVERRIDE
 
virtual bool contains (const SphericalPolygon &r) const Q_DECL_OVERRIDE
 
virtual bool contains (const SphericalConvexPolygon &r) const Q_DECL_OVERRIDE
 
virtual bool contains (const SphericalCap &r) const Q_DECL_OVERRIDE
 
virtual bool contains (const SphericalPoint &r) const Q_DECL_OVERRIDE
 
virtual bool contains (const AllSkySphericalRegion &) const Q_DECL_OVERRIDE
 
virtual bool intersects (const SphericalCap &r) const Q_DECL_OVERRIDE
 
virtual bool intersects (const SphericalPolygon &r) const Q_DECL_OVERRIDE
 
virtual bool intersects (const SphericalConvexPolygon &r) const Q_DECL_OVERRIDE
 
virtual bool intersects (const SphericalPoint &r) const Q_DECL_OVERRIDE
 
virtual bool intersects (const AllSkySphericalRegion &) const Q_DECL_OVERRIDE
 
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.
 
bool checkValid () const
 Check if the polygon is valid, i.e. it has no side >180.
 
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
 
virtual bool intersects (const SphericalPolygon &r) const
 
virtual bool intersects (const SphericalConvexPolygon &r) const
 
virtual bool intersects (const SphericalCap &r) const
 
virtual bool intersects (const SphericalPoint &r) const
 
virtual bool intersects (const AllSkySphericalRegion &r) const
 
bool intersects (const EmptySphericalRegion &) const
 
bool contains (const SphericalRegion *r) const
 Returns whether a SphericalRegion is contained into this region. More...
 
bool contains (const SphericalRegionP r) const
 
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 &r) const
 
bool contains (const EmptySphericalRegion &) const
 
- Public Member Functions inherited from SphericalRegion
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 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
 

Protected Attributes

QVector< Vec2ftextureCoords
 A list of uv textures coordinates corresponding to the triangle vertices. More...
 
- Protected Attributes inherited from SphericalConvexPolygon
QVector< Vec3dcontour
 A list of vertices of the convex contour.
 
QVector< Vec3daberratedContour
 A list of vertices, built on the fly from the contour when aberration is required.
 
SphericalCap cachedBoundingCap
 Cache the bounding cap.
 

Additional Inherited Members

- Public Types inherited from SphericalRegion
enum  SphericalRegionType {
  Point = 0, Cap = 1, AllSky = 2, Polygon = 3,
  ConvexPolygon = 4, Empty = 5, Invalid = 6
}
 
- Static Public Member Functions inherited from SphericalConvexPolygon
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 inherited from SphericalConvexPolygon
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 inherited from SphericalConvexPolygon
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...
 

Detailed Description

Extension of SphericalConvexPolygon for textured polygon.

Constructor & Destructor Documentation

◆ SphericalTexturedConvexPolygon()

SphericalTexturedConvexPolygon::SphericalTexturedConvexPolygon ( const Vec3d e0,
const Vec3d e1,
const Vec3d e2,
const Vec3d e3 
)
inline

Use the 4 textures corners for the 4 vertices.

Member Function Documentation

◆ getFillVertexArray()

virtual StelVertexArray SphericalTexturedConvexPolygon::getFillVertexArray ( const Vec3d observerVelocityForAberration)
virtual

This method is not optimized for SphericalConvexPolygon instances. Return an OpenGL compatible array to be displayed using vertex arrays.

Parameters
observerVelocityForAberrationa vector to add to all contour vertices.

Reimplemented from SphericalConvexPolygon.

◆ setContour()

virtual void SphericalTexturedConvexPolygon::setContour ( const QVector< Vec3d > &  acontour,
const QVector< Vec2f > &  texCoord 
)
inlinevirtual
Parameters
acontoura contour defining the polygon area.
texCoorda list of texture coordinates matching the vertices of the contour.

◆ toQVariant()

virtual QVariantList SphericalTexturedConvexPolygon::toQVariant ( ) const
virtual

The format is:

["TEXTURED_CONVEX_POLYGON", [[ra,dec], [ra,dec], [ra,dec], [ra,dec]], [[u,v],[u,v],[u,v],[u,v]]]

where the two lists are a closed convex contours, with each points defined by ra dec in degree in the ICRS frame followed by a list of texture coordinates in the u,v texture space (between 0 and 1). There must be one texture coordinate for each vertex.

Reimplemented from SphericalConvexPolygon.

Field Documentation

◆ textureCoords

QVector<Vec2f> SphericalTexturedConvexPolygon::textureCoords
protected

There should be 1 uv position per vertex.