Stellarium  HEAD
Public Types | Public Member Functions | Data Fields
StelVertexArray Struct Reference

Public Types

enum  StelPrimitiveType {
  Points = 0x0000 , Lines = 0x0001 , LineLoop = 0x0002 , LineStrip = 0x0003 ,
  Triangles = 0x0004 , TriangleStrip = 0x0005 , TriangleFan = 0x0006
}
 

Public Member Functions

 StelVertexArray (StelPrimitiveType pType=StelVertexArray::Triangles)
 
 StelVertexArray (const QVector< Vec3d > &v, StelPrimitiveType pType=StelVertexArray::Triangles, const QVector< Vec2f > &t=QVector< Vec2f >(), const QVector< unsigned short > i=QVector< unsigned short >(), const QVector< Vec3f > &col=QVector< Vec3f >())
 
bool isIndexed () const
 
bool isTextured () const
 
bool isColored () const
 
template<class Func >
Func foreachTriangle (Func func) const
 call a function for each triangle of the array. More...
 
StelVertexArray removeDiscontinuousTriangles (const class StelProjector *prj) const
 Create a copy of the array with all the triangles intersecting the projector discontinuity removed.
 

Data Fields

QVector< Vec3dvertex
 OpenGL compatible array of 3D vertex to be displayed using vertex arrays. More...
 
QVector< Vec2ftexCoords
 OpenGL compatible array of edge flags to be displayed using vertex arrays.
 
QVector< Vec3fcolors
 OpenGL compatible array of vertex colors to be displayed using arrays. More...
 
QVector< unsigned short > indices
 OpenGL compatible array of indices for the vertex and the textures.
 
StelPrimitiveType primitiveType
 

Member Function Documentation

◆ foreachTriangle()

template<class Func >
Func StelVertexArray::foreachTriangle ( Func  func) const
inline

call a function for each triangle of the array.

func should define the following method : void operator() (const Vec3d* vertex[3], const Vec2f* tex[3], const Vec3f* colors[3], unsigned int indices[3]) The method takes arrays of pointers as arguments because we can't assume the values are contiguous

Field Documentation

◆ colors

QVector<Vec3f> StelVertexArray::colors

OpenGL compatible array of vertex colors to be displayed using arrays.

The color (if exists) shall be multiplied with texture to modulate e.g. for extinction of Milky Way or other large items.

◆ vertex

QVector<Vec3d> StelVertexArray::vertex

OpenGL compatible array of 3D vertex to be displayed using vertex arrays.

TODO, move to float? Most of the vectors are normalized, thus the precision is around 1E-45 using float which is enough (=2E-37 milli arcsec).