Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | Related Pages

movement.h

00001 /***************************************************************************
00002                           movement.h  -  description
00003          $Id: movement.h 6 2006-06-19 21:43:20Z neoneurone $
00004                              -------------------
00005     begin                : dim mai 16 2004
00006     copyright            : (C) 2004-2006 by Duong-Khang NGUYEN
00007     email                : neoneurone @ users sourceforge net
00008  ***************************************************************************/
00009 
00010 /***************************************************************************
00011  *                                                                         *
00012  *   This program is free software; you can redistribute it and/or modify  *
00013  *   it under the terms of the GNU General Public License as published by  *
00014  *   the Free Software Foundation; either version 2 of the License, or     *
00015  *   any later version.                                                    *
00016  *                                                                         *
00017  ***************************************************************************/
00018 
00019 #ifndef _OPENCITY_MOVEMENT_H_
00020 #define _OPENCITY_MOVEMENT_H_ 1
00021 
00022 #include "main.h"
00023 #include "destination.h"
00024 
00025 #include <vector>
00026 
00027 using std::vector;
00028 
00029 
00030 //========================================================================
00036 class Movement {
00037 public:
00038     Movement();
00039     virtual ~Movement();
00040 
00041 
00042 //========================================================================
00046     virtual const bool
00047     Move() = 0;
00048 
00049 
00050 //========================================================================
00055     virtual void
00056     Start() = 0;
00057 
00058     void
00059     SetPath( vector<Destination> newPath );
00060 
00061     const OPENCITY_GRAPHIC_CODE &
00062     GetGraphicCode() const;
00063 
00064 
00065 //========================================================================
00072     void
00073     SetAngle( const Destination & rcD );
00074 
00075 
00076 //========================================================================
00082     void
00083     SetSlope(
00084         const Destination & rcA,
00085         const Destination & rcB );
00086 
00087 
00088    /*=====================================================================*/
00089    /*                          STATIC    METHODS                          */
00090    /*=====================================================================*/
00091 /* unused
00092     static void
00093     Move2Dir(
00094         Destination & rD );
00095 */
00096 
00097 
00098 public:
00099     OC_FLOAT _fCurrentW;            
00100     OC_FLOAT _fCurrentL;
00101     OC_FLOAT _fCurrentH;
00102     OC_FLOAT _fDeltaW;              
00103     OC_FLOAT _fDeltaL;
00104     OC_FLOAT _fDeltaH;
00105 
00106     GLfloat _fRY;                   
00107     GLfloat _fRX, _fRZ;             
00108     GLfloat _fTX, _fTY, _fTZ;       
00109 
00110 protected:
00111     OPENCITY_DIRECTION      _eDir;  
00112     OPENCITY_GRAPHIC_CODE   _eGC;   
00113 
00114     uint uiCurrentTime;             
00115     int iCurrentSpeed;
00116     uint uiNumberOfFrame;           
00117     uint uiFramePerUnit;            
00118     vector<Destination> vdest;      
00119     uint uiCurrentIndex;            
00120     Destination destCurrent;        
00121 };
00122 
00123 #endif
00124 
00125 
00126 
00127 
00128 
00129 
00130 
00131 
00132 
00133 
00134 
00135 
00136 
00137 
00138 
00139 
00140 
00141 
00142 
00143 
00144 
00145 
00146 
00147 
00148 
00149 
00150 
00151 
00152 
00153 
00154 
00155 

Generated on Sat Nov 11 10:21:10 2006 for OpenCity by  doxygen 1.4.2