Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 5994 in orxonox.OLD for trunk/src/world_entities/skybox.cc


Ignore:
Timestamp:
Dec 9, 2005, 10:43:31 AM (18 years ago)
Author:
bensch
Message:

orxonox/trunk: much cleaner Model Loading unloading, model is now private to WorldEntity (not protected)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/world_entities/skybox.cc

    r5750 r5994  
    9292{
    9393  PRINTF(5)("Deleting SkyBox\n");
     94  this->setModel(NULL); //< so that WorldEntity does not try to delete it again.
    9495  for (int i = 0; i < 6; i++)
    9596    delete this->material[i];
    9697  delete[] this->material;
    97   delete this->model;
    98   this->model = NULL; //< so that WorldEntity does not try to delete it again.
    99 }
     98 }
    10099
    101100/**
     
    171170void SkyBox::rebuild()
    172171{
    173   if (this->model)
    174     delete this->model;
    175   model = new Model();
    176 
    177   this->model->addVertex (-0.5*size, -0.5*size, 0.5*size);
    178   this->model->addVertex (0.5*size, -0.5*size, 0.5*size);
    179   this->model->addVertex (-0.5*size, 0.5*size, 0.5*size);
    180   this->model->addVertex (0.5*size, 0.5*size, 0.5*size);
    181   this->model->addVertex (-0.5*size, 0.5*size, -0.5*size);
    182   this->model->addVertex (0.5*size, 0.5*size, -0.5*size);
    183   this->model->addVertex (-0.5*size, -0.5*size, -0.5*size);
    184   this->model->addVertex (0.5*size, -0.5*size, -0.5*size);
    185 
    186   this->model->addVertexTexture (0.0, 1.0);
    187   this->model->addVertexTexture (1.0, 1.0);
    188   this->model->addVertexTexture (1.0, 0.0);
    189   this->model->addVertexTexture (0.0, 0.0);
    190 
    191   this->model->addVertexNormal (0.0, 0.0, 1.0);
    192   this->model->addVertexNormal (0.0, 1.0, 0.0);
    193   this->model->addVertexNormal (0.0, 0.0, -1.0);
    194   this->model->addVertexNormal (0.0, -1.0, 0.0);
    195   this->model->addVertexNormal (1.0, 0.0, 0.0);
    196   this->model->addVertexNormal (-1.0, 0.0, 0.0);
    197 
    198   this->model->setMaterial(material[0]);
    199   this->model->addFace (4, VERTEX_TEXCOORD_NORMAL, 2,0,3, 3,1,3, 5,2,3, 4,3,3); // top
    200   this->model->setMaterial(material[1]);
    201   this->model->addFace (4, VERTEX_TEXCOORD_NORMAL, 6,0,1, 7,1,1, 1,2,1, 0,3,1); // bottom
    202   this->model->setMaterial(material[2]);
    203   this->model->addFace (4, VERTEX_TEXCOORD_NORMAL, 4,2,2, 5,3,2, 7,0,2, 6,1,2); // left
    204   this->model->setMaterial(material[3]);
    205   this->model->addFace (4, VERTEX_TEXCOORD_NORMAL, 0,0,0, 1,1,0, 3,2,0, 2,3,0); // right
    206   this->model->setMaterial(material[4]);
    207   this->model->addFace (4, VERTEX_TEXCOORD_NORMAL, 1,0,5, 7,1,5, 5,2,5, 3,3,5); // front
    208   this->model->setMaterial(material[5]);
    209   this->model->addFace (4, VERTEX_TEXCOORD_NORMAL, 6,0,4, 0,1,4, 2,2,4, 4,3,4); // back
    210 
    211   this->model->finalize();
    212 }
     172  Model* model = new Model();
     173
     174  model->addVertex (-0.5*size, -0.5*size, 0.5*size);
     175  model->addVertex (0.5*size, -0.5*size, 0.5*size);
     176  model->addVertex (-0.5*size, 0.5*size, 0.5*size);
     177  model->addVertex (0.5*size, 0.5*size, 0.5*size);
     178  model->addVertex (-0.5*size, 0.5*size, -0.5*size);
     179  model->addVertex (0.5*size, 0.5*size, -0.5*size);
     180  model->addVertex (-0.5*size, -0.5*size, -0.5*size);
     181  model->addVertex (0.5*size, -0.5*size, -0.5*size);
     182
     183  model->addVertexTexture (0.0, 1.0);
     184  model->addVertexTexture (1.0, 1.0);
     185  model->addVertexTexture (1.0, 0.0);
     186  model->addVertexTexture (0.0, 0.0);
     187
     188  model->addVertexNormal (0.0, 0.0, 1.0);
     189  model->addVertexNormal (0.0, 1.0, 0.0);
     190  model->addVertexNormal (0.0, 0.0, -1.0);
     191  model->addVertexNormal (0.0, -1.0, 0.0);
     192  model->addVertexNormal (1.0, 0.0, 0.0);
     193  model->addVertexNormal (-1.0, 0.0, 0.0);
     194
     195  model->setMaterial(material[0]);
     196  model->addFace (4, VERTEX_TEXCOORD_NORMAL, 2,0,3, 3,1,3, 5,2,3, 4,3,3); // top
     197  model->setMaterial(material[1]);
     198  model->addFace (4, VERTEX_TEXCOORD_NORMAL, 6,0,1, 7,1,1, 1,2,1, 0,3,1); // bottom
     199  model->setMaterial(material[2]);
     200  model->addFace (4, VERTEX_TEXCOORD_NORMAL, 4,2,2, 5,3,2, 7,0,2, 6,1,2); // left
     201  model->setMaterial(material[3]);
     202  model->addFace (4, VERTEX_TEXCOORD_NORMAL, 0,0,0, 1,1,0, 3,2,0, 2,3,0); // right
     203  model->setMaterial(material[4]);
     204  model->addFace (4, VERTEX_TEXCOORD_NORMAL, 1,0,5, 7,1,5, 5,2,5, 3,3,5); // front
     205  model->setMaterial(material[5]);
     206  model->addFace (4, VERTEX_TEXCOORD_NORMAL, 6,0,4, 0,1,4, 2,2,4, 4,3,4); // back
     207
     208  model->finalize();
     209
     210  this->setModel(model);
     211}
Note: See TracChangeset for help on using the changeset viewer.