Index: orxonox/trunk/src/importer/framework.cc
===================================================================
--- orxonox/trunk/src/importer/framework.cc	(revision 3398)
+++ orxonox/trunk/src/importer/framework.cc	(revision 3400)
@@ -52,5 +52,5 @@
 int main(int argc, char *argv[])
 {
-  verbose = 2;
+  verbose = 3;
 
   Uint8* keys; // This variable will be used in the keyboard routine
@@ -80,27 +80,27 @@
       obj = (OBJModel*) new Model();
       obj->setName("CUBE");
-      obj->addVertex ("-0.5 -0.5 0.5");
-      obj->addVertex ("0.5 -0.5 0.5");
-      obj->addVertex ("-0.5 0.5 0.5");
-      obj->addVertex ("0.5 0.5 0.5");
-      obj->addVertex ("-0.5 0.5 -0.5");
-      obj->addVertex ("0.5 0.5 -0.5");
-      obj->addVertex ("-0.5 -0.5 -0.5");
-      obj->addVertex ("0.5 -0.5 -0.5");
+      obj->addVertex (-0.5, -0.5, 0.5);
+      obj->addVertex (0.5, -0.5, 0.5);
+      obj->addVertex (-0.5, 0.5, 0.5);
+      obj->addVertex (0.5, 0.5, 0.5);
+      obj->addVertex (-0.5, 0.5, -0.5);
+      obj->addVertex (0.5, 0.5, -0.5);
+      obj->addVertex (-0.5, -0.5, -0.5);
+      obj->addVertex (0.5, -0.5, -0.5);
       
-      obj->addVertexTexture ("0.0 0.0");
-      obj->addVertexTexture ("1.0 0.0");
-      obj->addVertexTexture ("0.0 1.0");
-      obj->addVertexTexture ("1.0 1.0");
-      obj->addVertexTexture ("0.0 2.0");
-      obj->addVertexTexture ("1.0 2.0");
-      obj->addVertexTexture ("0.0 3.0");
-      obj->addVertexTexture ("1.0 3.0");
-      obj->addVertexTexture ("0.0 4.0");
-      obj->addVertexTexture ("1.0 4.0");
-      obj->addVertexTexture ("2.0 0.0");
-      obj->addVertexTexture ("2.0 1.0");
-      obj->addVertexTexture ("-1.0 0.0");
-      obj->addVertexTexture ("-1.0 1.0");
+      obj->addVertexTexture (0.0, 0.0);
+      obj->addVertexTexture (1.0, 0.0);
+      obj->addVertexTexture (0.0, 1.0);
+      obj->addVertexTexture (1.0, 1.0);
+      obj->addVertexTexture (0.0, 2.0);
+      obj->addVertexTexture (1.0, 2.0);
+      obj->addVertexTexture (0.0, 3.0);
+      obj->addVertexTexture (1.0, 3.0);
+      obj->addVertexTexture (0.0, 4.0);
+      obj->addVertexTexture (1.0, 4.0);
+      obj->addVertexTexture (2.0, 0.0);
+      obj->addVertexTexture (2.0, 1.0);
+      obj->addVertexTexture (-1.0, 0.0);
+      obj->addVertexTexture (-1.0, 1.0);
 
       obj->addFace ("1 2 4 3");
Index: orxonox/trunk/src/importer/model.cc
===================================================================
--- orxonox/trunk/src/importer/model.cc	(revision 3398)
+++ orxonox/trunk/src/importer/model.cc	(revision 3400)
@@ -15,4 +15,5 @@
 
 #include "model.h"
+#include <math.h>
 
 using namespace std;
@@ -39,7 +40,16 @@
   this->initialize();
 
-  if (type == CUBE)
-    this->BoxModel();
-
+  switch (type)
+    {
+    default:
+    case CUBE:
+      this->cubeModel();
+      break;
+    case SPHERE:
+      break;
+    case CYLINDER:
+      break;
+
+    }
   this->importToGL ();
 
@@ -369,9 +379,22 @@
 
 /**
+   \brief parses a vertex-String
+   \param x the X-coordinate of the Vertex to add.
+   \param y the Y-coordinate of the Vertex to add.
+   \param z the Z-coordinate of the Vertex to add.
+   
+*/
+bool Model::addVertex(const float x, const float y, const float z)
+{
+  PRINTF(4)("reading in a vertex: %f %f %f\n", x, y, z);
+  this->vertices->addEntry(x*scaleFactor, y*scaleFactor, z*scaleFactor);
+  return true;
+}
+
+/**
    \brief parses a face-string
    \param faceString The String that will be parsed.
 
    If a face line is found this function will add it to the glList.
-   The function makes a difference between QUADS and TRIANGLES, and will if changed re-open, set and re-close the gl-processe.
 */
 bool Model::addFace (char* faceString)
@@ -433,4 +456,17 @@
 
 /**
+   \brief imports a new Face.
+   \param faceElemCount The Cout of Vertices this Face has.
+   \param ... The Elements by number.
+
+   \todo hmmpf... this also has to parse normals and vertices... sounds like stress...
+*/
+bool Model::addFace(const float faceElemCount, ...)
+{
+  // TODO
+
+}
+
+/**
    \brief parses a vertexNormal-String
    \param normalString The String that will be parsed.
@@ -450,4 +486,18 @@
 
 /**
+   \brief adds a VertexNormal.
+   \param x The x coordinate of the Normal.
+   \param y The y coordinate of the Normal.
+   \param z The z coordinate of the Normal.
+
+   If a vertexNormal line is found this function will inject it into the vertexNormal-Array
+*/
+bool Model::addVertexNormal(const float x, const float y, const float z)
+{
+  PRINTF(3)("found vertex-Normal %f, %f, %f\n", x, y, z);
+  this->normals->addEntry(x, y, z);
+}
+
+/**
    \brief parses a vertexTextureCoordinate-String
    \param vTextureString The String that will be parsed.
@@ -465,4 +515,18 @@
   this->vTexture->addEntry(subbuffer2);
   return true;
+}
+
+/**
+   \brief adds a Texture Coordinate
+   \param u The u coordinate of the TextureCoordinate.
+   \param v The y coordinate of the TextureCoordinate.
+
+   If a TextureCoordinate line is found this function will inject it into the TextureCoordinate-Array
+*/
+bool Model::addVertexTexture(const float u, const float v)
+{
+  PRINTF(3)("found vertex-Texture %f, %f\n", u, v);
+  this->vTexture->addEntry(u);
+  this->vTexture->addEntry(v);
 }
 
@@ -696,5 +760,5 @@
    This will inject a Cube, because this is the most basic model.
 */
-void Model::BoxModel(void)
+void Model::cubeModel(void)
 {
   this->addVertex ("-0.5 -0.5 0.5");
@@ -764,2 +828,13 @@
 
 }
+
+
+void Model::cylinderModel()
+{
+  int detailLevel = 10;
+  float size;
+  for (int i = 0; i < detailLevel; i++)
+    {
+      this->addVertex(sin((float)i/detailLevel), -size/2, cos((float)i/detailLevel));
+    }
+}
Index: orxonox/trunk/src/importer/model.h
===================================================================
--- orxonox/trunk/src/importer/model.h	(revision 3398)
+++ orxonox/trunk/src/importer/model.h	(revision 3400)
@@ -92,5 +92,5 @@
   float scaleFactor;    //!< The Factor with which the Model should be scaled. \todo maybe one wants to scale the Model after Initialisation
 
-  bool initialize (void);
+  bool initialize(void);
   bool initGroup(Group* group);
   bool initFace (Face* face);
@@ -101,19 +101,24 @@
 
  public:
-  bool addGroup (char* groupString);
-  bool addVertex (char* vertexString);
-  bool addFace (char* faceString);
-  bool addVertexNormal (char* normalString);
-  bool addVertexTexture (char* vTextureString);
-  bool addUseMtl (char* mtlString);
+  bool addGroup(char* groupString);
+  bool addVertex(char* vertexString);
+  bool addVertex(const float x, const float y, const float z);
+  bool addFace(char* faceString);
+  bool addFace(const float faceElemCount, ...);
+  bool addVertexNormal(char* normalString);
+  bool addVertexNormal(const float x, const float y, const float z);
+  bool addVertexTexture(char* vTextureString);
+  bool addVertexTexture(const float u, const float v);
+  bool addUseMtl(char* mtlString);
   void finalize(void);
 
  protected:
-  bool importToGL (void);
-  bool addGLElement (FaceElement* elem);
+  bool importToGL(void);
+  bool addGLElement(FaceElement* elem);
 
-  bool buildVertexNormals ();
+  bool buildVertexNormals(void);
 
-  void BoxModel (void);
+  void cubeModel(void);
+  void cylinderModel(void);
 };
 
Index: orxonox/trunk/src/importer/objModel.cc
===================================================================
--- orxonox/trunk/src/importer/objModel.cc	(revision 3398)
+++ orxonox/trunk/src/importer/objModel.cc	(revision 3400)
@@ -133,6 +133,6 @@
   if (OBJ_FILE->fail())
     {
-      PRINTF(1)("unable to open .OBJ file: %s\n Loading Box Model instead.\n", fileName);
-      BoxModel();
+      PRINTF(1)("unable to open .OBJ file: %s\n Loading cube-Model instead.\n", fileName);
+      cubeModel();
       OBJ_FILE->close();
       delete []fileName;
