Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/graphics/importer/vertex_array_model.h @ 6453

Last change on this file since 6453 was 6453, checked in by bensch, 18 years ago

trunk Vectors instead of floats used in VertexArrayModel

File size: 2.1 KB
Line 
1/*!
2 * @file vertex_array_model.h
3 * @brief Contains the VertexArrayModel Class that handles 3D-Models rendered out of VertexArrays
4 */
5
6#ifndef _VERTEX_ARRAY_MODEL_H
7#define _VERTEX_ARRAY_MODEL_H
8
9#include "model.h"
10
11#include "glincl.h"
12
13#include <vector>
14
15/* Forward Declaration */
16class Material;
17
18
19/////////////
20/// MODEL ///
21/////////////
22//! Class that handles 3D-Models. it can also read them in and display them.
23/**
24 * this renders models with help of the OpenGL glVertexArray
25 */
26class VertexArrayModel : public Model
27{
28 public:
29  VertexArrayModel();
30  VertexArrayModel(const Model& model);
31  virtual ~VertexArrayModel();
32
33  void draw() const;
34
35
36  void newStripe();
37
38  void addVertex(float x, float y, float z);
39  void addNormal(float x, float y, float z);
40  void addTexCoor(float u, float v);
41  void addColor(float r, float g, float b);
42
43  void addIndice(GLuint indice);
44
45  void finalize();
46
47  unsigned int vertexCount() const { return this->vertices.size(); };
48  unsigned int normalCount() const { return this->normals.size(); };
49  unsigned int texCoordCount() const { return this->texCoords.size(); };
50  unsigned int colorCount() const { return this->colors.size(); };
51  unsigned int indiceCount() const { return this->indices.size(); };
52
53//  float& vertex(unsigned int i) { return this->vertices[i]; };
54
55  //
56  void planeModel(float sizeX, float sizeY, unsigned int resolutionX, unsigned int resolutionY);
57  void spiralSphere(const float radius, const unsigned int loops, const unsigned int segmentsPerLoop);
58
59  void debug() const;
60
61 private:
62  void importToVertexArray();
63
64 private:
65  std::vector<Vector>        vertices;        //!< The Array that handles the Vertices.
66  std::vector<Vector>        normals;         //!< The Array that handles the Normals.
67  std::vector<float>         texCoords;       //!< The Array that handles the VertexTextureCoordinates.
68  std::vector<Vector>        colors;          //!< The Array that handles Colors.
69
70  std::vector<GLuint>        indices;         //!< The Array that tells us what Vertex is connected to which other one.
71
72  std::vector<GLuint>        stripes;         //!< A lsit of Stripes of this Model.
73
74};
75
76#endif
Note: See TracBrowser for help on using the repository browser.