Home · All Namespaces · All Classes · Functions · Coding Style · Scripting · Plugins · File Structure
Public Types | Public Member Functions | Public Attributes

StelVertexArray Struct Reference

List of all members.

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 int > i=QVector< unsigned int >())
bool isIndexed () const
bool isTextured () const
template<class Func >
Func foreachTriangle (Func func) const
StelVertexArray removeDiscontinuousTriangles (const class StelProjector *prj) const

Public Attributes

QVector< Vec3dvertex
QVector< Vec2ftexCoords
QVector< unsigned int > indices
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

Member Data Documentation

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