Stellarium 0.13.0
List of all members | Public Types | Public Member Functions | Public Attributes
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 >())
 
bool isIndexed () const
 
bool isTextured () 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 discontinuty removed. More...
 

Public Attributes

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. More...
 
QVector< unsigned short > indices
 OpenGL compatible array of indices for the vertex and the textures. More...
 
StelPrimitiveType primitiveType
 

Member Function Documentation

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], unsigned int indices[3]) The method takes arrays of pointers as arguments because we can't assume the values are contiguous

StelVertexArray StelVertexArray::removeDiscontinuousTriangles ( const class StelProjector prj) const

Create a copy of the array with all the triangles intersecting the projector discontinuty removed.

Member Data Documentation

QVector<unsigned short> StelVertexArray::indices

OpenGL compatible array of indices for the vertex and the textures.

QVector<Vec2f> StelVertexArray::texCoords

OpenGL compatible array of edge flags to be displayed using vertex arrays.

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).