Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Feb 1, 2006, 7:42:35 PM (18 years ago)
Author:
bensch
Message:

orxonox/trunk: new entity

File:
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/world_entities/environments/movie_entity.cc

    r6967 r6968  
    1616#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WORLD_ENTITY
    1717
    18 #include "planet.h"
     18#include "movie_entity.h"
    1919
    2020#include "load_param.h"
     
    2222#include "static_model.h"
    2323
    24 #include "material.h"
    25 #include "texture.h"
    26 
    27 #include "network_game_manager.h"
    28 #include "converter.h"
    29 #include "vertex_array_model.h"
    30 #include "primitive_model.h"
    31 
    3224using namespace std;
    3325
    3426
    35 CREATE_FACTORY(Planet, CL_PLANET);
     27CREATE_FACTORY(ModelEntity, CL_MODEL_ENTITY);
    3628
    3729
     
    4032 *  initializes a skybox from a XmlElement
    4133*/
    42 Planet::Planet(const TiXmlElement* root)
     34ModelEntity::ModelEntity(const TiXmlElement* root)
    4335{
    44   this->setClassID(CL_PLANET, "Planet");
    45   this->toList(OM_GROUP_01);
     36  this->setClassID(CL_MODEL_ENTITY, "ModelEntity");
     37  this->toList(OM_ENVIRON_NOTICK);
    4638
    47   this->material = new Material();
    48   //this->material->setIllum(20);
    49   //this->material->setAmbient(0.1, 0.1, 0.1);
    50 
    51 
    52 
    53       //st float radius, const unsigned int loops, const unsigned int segmentsPerLoop
    54 
    55   this->loadParams(root);
    56 
    57 //   VertexArrayModel* model = new VertexArrayModel();
    58 //   model->spiralSphere(this->size, 10, 10);
    59 //   this->setModel(model);
    60 //   model->debug();
    61 //
    62   PrimitiveModel* model = new PrimitiveModel(PRIM_SPHERE, this->size, 50);
    63   this->setModel(model);
     39  if (root != NULL)
     40    this->loadParams(root);
    6441}
    6542
     
    6845 *  default destructor
    6946*/
    70 Planet::~Planet()
     47ModelEntity::~ModelEntity()
    7148{
    72   PRINTF(5)("Deleting Planet\n");
    73   if( this->material)
    74     delete this->material;
    7549}
    7650
    7751
    78 void Planet::loadParams(const TiXmlElement* root)
    79 {
    80   WorldEntity::loadParams(root);
    81 
    82   LoadParam(root, "texture", this, Planet, setTexture)
    83       .describe("Sets the material on the Planet. The string must be the path relative to the data-dir, and without a trailing .jpg");
    84 
    85   LoadParam(root, "size", this, Planet, setSize)
    86       .describe("Sets the Size of the Planet (normally this should be 90% of the maximal viewing Distance).");
    87 }
    88 
    89 
    90 /**
    91  *  Defines which textures should be loaded onto the Planet.
    92  * @param textureName the top texture.
    93 */
    94 void Planet::setTexture(const char* textureName)
    95 {
    96   this->material->setDiffuseMap(textureName);
    97 }
    98 
    99 
    100 /**
    101  * @param size The new size of the Planet
    102 
    103  * do not forget to rebuild the Planet after this.
    104 */
    105 void Planet::setSize(float size)
    106 {
    107   this->size = size;
    108 }
    109 
    110 
    111 
    112 void Planet::draw() const
    113 {
    114   glMatrixMode(GL_MODELVIEW);
    115   glPushMatrix();
    116 
    117   glShadeModel(GL_SMOOTH);
    118 
    119   /* translate */
    120   glTranslatef (this->getAbsCoor ().x,
    121                 this->getAbsCoor ().y,
    122                 this->getAbsCoor ().z);
    123   Vector tmpRot = this->getAbsDir().getSpacialAxis();
    124   glRotatef (this->getAbsDir().getSpacialAxisAngle(), tmpRot.x, tmpRot.y, tmpRot.z );
    125 
    126   this->material->select();
    127 
    128 //   /WorldEntity::draw();
    129   this->getModel(0)->draw();
    130  // static_cast<VertexArrayModel*>(this->getModel(0))->debug();
    131 
    132   glPopMatrix();
    133 }
    134 
    135 
    136 
Note: See TracChangeset for help on using the changeset viewer.