Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jun 2, 2005, 12:14:27 AM (19 years ago)
Author:
patrick
Message:

orxonox/trunk: md2model data/model seperation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • orxonox/trunk/src/lib/graphics/importer/md2Model.cc

    r4357 r4459  
    2525using namespace std;
    2626
    27 
     27//! the model anorms
    2828sVec3D MD2Model::anorms[NUM_VERTEX_NORMALS] = {
    2929 #include "anorms.h"
    3030};
    3131
     32//! anormal dots, no idea of how this shall work, but it does
    3233float MD2Model::anormsDots[SHADEDOT_QUANT][256] = {
    3334  #include "anormtab.h"
    3435};
    3536
     37//! again one of these strange id software parts
    3638static float *shadeDots = MD2Model::anormsDots[0];
    3739
     40//! the angle under which the model is viewd, used internaly
    3841float md2Angle = 0.0f;
    3942
    4043
     44//! list of all different animations a std md2model supports
    4145sAnim MD2Model::animationList[21] =
    4246  {
    4347 // begin, end, fps
    44     {   0,  39,  9 },   // STAND
    45     {  40,  45, 10 },   // RUN
    46     {  46,  53, 10 },   // ATTACK
    47     {  54,  57,  7 },   // PAIN_A
    48     {  58,  61,  7 },   // PAIN_B
    49     {  62,  65,  7 },   // PAIN_C
    50     {  66,  71,  7 },   // JUMP
    51     {  72,  83,  7 },   // FLIP
    52     {  84,  94,  7 },   // SALUTE
    53     {  95, 111, 10 },   // FALLBACK
    54     { 112, 122,  7 },   // WAVE
    55     { 123, 134,  6 },   // POINTT
    56     { 135, 153, 10 },   // CROUCH_STAND
    57     { 154, 159,  7 },   // CROUCH_WALK
    58     { 160, 168, 10 },   // CROUCH_ATTACK
    59     { 196, 172,  7 },   // CROUCH_PAIN
    60     { 173, 177,  5 },   // CROUCH_DEATH
    61     { 178, 183,  7 },   // DEATH_FALLBACK
    62     { 184, 189,  7 },   // DEATH_FALLFORWARD
    63     { 190, 197,  7 },   // DEATH_FALLBACKSLOW
    64     { 198, 198,  5 },   // BOOM
     48    {   0,  39,  9 },   //!< STAND
     49    {  40,  45, 10 },   //!< RUN
     50    {  46,  53, 10 },   //!< ATTACK
     51    {  54,  57,  7 },   //!< PAIN_A
     52    {  58,  61,  7 },   //!< PAIN_B
     53    {  62,  65,  7 },   //!< PAIN_C
     54    {  66,  71,  7 },   //!< JUMP
     55    {  72,  83,  7 },   //!< FLIP
     56    {  84,  94,  7 },   //!< SALUTE
     57    {  95, 111, 10 },   //!< FALLBACK
     58    { 112, 122,  7 },   //!< WAVE
     59    { 123, 134,  6 },   //!< POINTT
     60    { 135, 153, 10 },   //!< CROUCH_STAND
     61    { 154, 159,  7 },   //!< CROUCH_WALK
     62    { 160, 168, 10 },   //!< CROUCH_ATTACK
     63    { 196, 172,  7 },   //!< CROUCH_PAIN
     64    { 173, 177,  5 },   //!< CROUCH_DEATH
     65    { 178, 183,  7 },   //!< DEATH_FALLBACK
     66    { 184, 189,  7 },   //!< DEATH_FALLFORWARD
     67    { 190, 197,  7 },   //!< DEATH_FALLBACKSLOW
     68    { 198, 198,  5 },   //!< BOOM
    6569  };
    6670
     
    6872
    6973/********************************************************************************
    70  *   MD2Model                                                                   * ********************************************************************************/
     74 *   MD2Model                                                                   *
     75 ********************************************************************************/
    7176
    7277/*
    7378  \brief simple constructor initializing all variables
    7479*/
    75 MD2Model::MD2Model()
     80MD2Model::MD2Model(const char* modelFileName, const char* skinFileName)
    7681{
    7782  /* this creates the data container via ressource manager */
    78   this->data = new MD2Data();
     83  this->data = new MD2Data(modelFileName, skinFileName);
    7984  this->scaleFactor = this->data->scaleFactor;
    8085
     
    9095{
    9196
    92 }
    93 
    94 /*
    95   \brief load model
    96   \param name of the model file
    97   \return true if everything worked out smoothly
    98 */
    99 bool MD2Model::loadModel(const char* fileName)
    100 {
    101   return this->data->loadModel(fileName);
    102 }
    103 
    104 
    105 /*
    106   \brief load the skin as a material
    107   \param name of the texture file
    108   \return true if ok
    109 */
    110 bool MD2Model::loadSkin(const char* fileName)
    111 {
    112   return this->data->loadSkin(fileName);
    11397}
    11498
     
    116100/**
    117101   \brief initializes an array of vert with the current frame scaled vertices
     102   \param verticesList: the list of vertices to interpolate between
    118103
    119104   we won't use the pVertices array directly, since its much easier and we need
     
    139124/*
    140125  \brief sets the animation type
    141   \param animation type
     126  \param type: animation type
    142127
    143128  the animation types can be looked up in the animationType table
     
    163148/*
    164149  \brief sets the time in seconds passed since the last tick
    165   \param time in sec
     150  \param time: in sec
    166151*/
    167152void MD2Model::tick(float time)
     
    291276  \brief simple constructor
    292277*/
    293 MD2Data::MD2Data()
     278MD2Data::MD2Data(const char* modelFileName, const char* skinFileName)
    294279{
    295280  this->pVertices = NULL;
     
    302287 
    303288  this->scaleFactor = 1.0f;
     289
     290  this->loadModel(modelFileName);
     291  this->loadSkin(skinFileName);
    304292}
    305293
     
    321309/*
    322310  \brief this will load the whole model data (vertices, opengl command list, ...)
    323   \param name to the model file
     311  \param fileName to the model file
    324312  \return true if success
    325313*/
     
    391379/*
    392380  \brief loads the skin/material stuff
    393   \param name of the skin file
     381  \param fileName of the skin file
    394382  \return true if success
    395383*/
    396384bool MD2Data::loadSkin(const char* fileName)
    397385{
     386  if( fileName == NULL)
     387    {
     388      this->skinFileName = NULL;
     389      return false;
     390    }
     391
    398392  this->skinFileName = new char[strlen(fileName)+1];
    399393  strcpy(this->skinFileName, fileName);
Note: See TracChangeset for help on using the changeset viewer.