Index: /orxonox/trunk/src/importer/framework.cc
===================================================================
--- /orxonox/trunk/src/importer/framework.cc	(revision 3397)
+++ /orxonox/trunk/src/importer/framework.cc	(revision 3398)
@@ -15,5 +15,5 @@
 
 #include "framework.h"
-
+int verbose;
 void DrawGLScene()
 {
@@ -53,6 +53,4 @@
 {
   verbose = 2;
-
-  PRINTF(2)("This is The big verbose-Test %i, %s\n", 1, "cool");
 
   Uint8* keys; // This variable will be used in the keyboard routine
@@ -75,6 +73,43 @@
     obj = new OBJModel(argv[1]);
   else 
-    obj = (OBJModel*) new Model();
-  
+    {
+      // This is an example, of how it is possible, to create a new Model, and adding some vertex-information.
+      // This also packs everything into a DisplayList, and can be handled exactly as any other model.
+      // This is an example of a cube with Texture-Coordinates, but without explicite Vertex-Normals. (they are soft-created).
+
+      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->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");
+      obj->addFace ("3 4 6 5");
+      obj->addFace ("5 6 8 7");
+      obj->addFace ("7 8 2 1");
+      obj->addFace ("2 8 6 4");
+      obj->addFace ("7 1 3 5");
+      obj->finalize();
+    }
   M = Vector(wHandler.screen->w/2, wHandler.screen->h/2, 0); 
   rotAxis = Vector (0.0,1.0,0.0);
Index: /orxonox/trunk/src/importer/model.cc
===================================================================
--- /orxonox/trunk/src/importer/model.cc	(revision 3397)
+++ /orxonox/trunk/src/importer/model.cc	(revision 3398)
@@ -15,18 +15,30 @@
 
 #include "model.h"
-int verbose = 1; //! \todo should be GLOBAL
+
 using namespace std;
 
 /**
-   \brief Creates a 3D-Model, but does not load any 3D-models.
-
-   This Constructor is pretty useless, because why load no model in an model-loader??
-*/
-Model::Model ()
-{
-
+   \brief Creates a 3D-Model.
+
+   This only initializes a 3D-Model, but does not cleanup the Faces.
+*/
+Model::Model(void)
+{
   this->initialize();
-
-  this->BoxModel();
+}
+
+/**
+   \brief Creates a 3D-Model of Primitive-Type type
+
+   if you want to just display a Cube/Sphere/Cylinder/... without any material.
+   
+   \todo implement Cube/Sphere/Cylinder/...
+*/
+Model::Model(PRIMITIVE type)
+{
+  this->initialize();
+
+  if (type == CUBE)
+    this->BoxModel();
 
   this->importToGL ();
@@ -36,9 +48,18 @@
 
 /**
+   \brief Creates a 3D-Model. and assigns it a Name.
+*/
+Model::Model(char* modelName)
+{
+  this->initialize();
+  this->setName(modelName);
+}
+
+/**
    \brief deletes an Model.
 
    Looks if any from model allocated space is still in use, and if so deleted it.
 */
-Model::~Model()
+Model::~Model(void)
 {
   PRINTF(3)("Deleting Model ");
@@ -64,4 +85,16 @@
   if (this->material)
     delete this->material;
+}
+
+/**
+   \brief Finalizes an Object. This can be done outside of the Class.
+*/
+void Model::finalize(void)
+{
+  this->importToGL ();
+  
+  this->cleanup();
+
+  this->finalized = true;
 }
 
@@ -157,4 +190,5 @@
 
   this->name = NULL;
+  this->finalized = false;
   // setting the start group;
   this->firstGroup = new Group;
@@ -173,4 +207,11 @@
 }
 
+void Model::setName(const char* name)
+{
+  if (this->name) 
+    delete this->name;
+  this->name = new char[strlen(name)+1];
+  strcpy(this->name, name);
+}
 /**
    \brief initializes a new Group model
Index: /orxonox/trunk/src/importer/model.h
===================================================================
--- /orxonox/trunk/src/importer/model.h	(revision 3397)
+++ /orxonox/trunk/src/importer/model.h	(revision 3398)
@@ -15,5 +15,5 @@
 using namespace std;
 
-
+enum PRIMITIVE {PLANE, CUBE, SPHERE, CYLINDER};
 
 //! Class that handles 3D-Models. it can also read them in and display them.
@@ -22,5 +22,9 @@
  public:
   Model(void);
+  Model(PRIMITIVE type);
+  Model(char* modelName);
   virtual ~Model(void);
+
+  void setName(const char* name);
   
   void draw(void) const;
@@ -30,5 +34,7 @@
 
  protected:
-  char* name;            //!< This is the name of the Model;
+  char* name;            //!< This is the name of the Model.
+  bool finalized;        //!< Sets the Object to be finalized.
+  
   //! This is the placeholder of one Vertex beloning to a Face.
   struct FaceElement
@@ -94,4 +100,5 @@
   bool cleanupFaceElement(FaceElement* faceElem);
 
+ public:
   bool addGroup (char* groupString);
   bool addVertex (char* vertexString);
@@ -100,5 +107,7 @@
   bool addVertexTexture (char* vTextureString);
   bool addUseMtl (char* mtlString);
+  void finalize(void);
 
+ protected:
   bool importToGL (void);
   bool addGLElement (FaceElement* elem);
Index: /orxonox/trunk/src/importer/objModel.cc
===================================================================
--- /orxonox/trunk/src/importer/objModel.cc	(revision 3397)
+++ /orxonox/trunk/src/importer/objModel.cc	(revision 3398)
@@ -109,7 +109,5 @@
       PRINTF(0)("Resolved file %s.\n", name);
   
-  if (this->name) delete this->name;
-  this->name = new char[strlen(name)+1];
-  strcpy(this->name, name);
+  this->setName(name);
   if (this->material)
     this->material->addTexturePath(this->objPath);
Index: /orxonox/trunk/src/orxonox.cc
===================================================================
--- /orxonox/trunk/src/orxonox.cc	(revision 3397)
+++ /orxonox/trunk/src/orxonox.cc	(revision 3398)
@@ -31,4 +31,5 @@
 #include "game_loader.h"
 #include <string.h>
+int verbose;
 
 using namespace std;
