Changeset 10

Show
Ignore:
Timestamp:
03/31/09 23:23:29 (3 years ago)
Author:
nktug
Message:

Evolution : Extension des fonctionnalités de l'éditeur d'objet
Version 0.4.0 en cours

Location:
trunk
Files:
2 added
10 modified

Legend:

Unmodified
Added
Removed
  • trunk/include/dreamforge/GameEngine.hh

    r4 r10  
    8484        * Get the current window 
    8585        */ 
    86         inline Ogre::SceneManager* getSceneMgr(void) { return mSceneMgr; }        
     86        inline Ogre::SceneManager* getSceneMgr(const Ogre::String &name) { return mRoot->getSceneManager(name); }        
    8787       /** 
    8888        * initEngine 
  • trunk/src/LevelEditor.cc

    r9 r10  
    2828{ 
    2929        setAttribute(Qt::WA_PaintOnScreen, true); 
    30    
     30  setAcceptDrops(false); 
     31  // Enable tracking mouse event even if we do not clic any buttons 
     32  setMouseTracking(true); 
     33   
     34  //mCamNode = 0; 
    3135        mRenderWindow = 0; 
    3236        mSceneMgr = 0; 
    3337  mCamera = 0; 
    34   //mCamNode = 0; 
    3538        mVp = 0; 
    3639         
     
    6568  mRoot = CEngineSystem::getInstance()->getRoot(); 
    6669   
    67     // Create a tree widget 
     70  // Create a tree widget 
    6871  objProperties = new SelectedObjProp; 
    6972   
    70    // Connect action 
     73  // Create a widget we can drag around the workbench 
     74  mLevelDock = new QDockWidget(tr("Propriétés Monde"), this); 
     75  mLevelDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); 
     76  mLevelDock->setWidget(objProperties); 
     77  mLevelDock->setFloating(false); 
     78   
     79  // Connect action 
    7180  connect(objProperties->objectView, SIGNAL(clicked( const QModelIndex & )),this, SLOT(chooseObject())); 
    7281  connect(objProperties->sObjInput, SIGNAL(editingFinished()),this, SLOT(changeObjectName())); 
     
    8089  connect(objProperties->rnodeYVal, SIGNAL(valueChanged ( double )),this, SLOT(yawSelectedObject())); 
    8190  connect(objProperties->rnodeZVal, SIGNAL(valueChanged ( double )),this, SLOT(rollSelectedObject()));  
    82   // Enable tracking mouse event even if we do not clic any buttons 
    83   setMouseTracking(true); 
    84 } 
    85  
    86 LevelEdWidget::~LevelEdWidget() 
     91 
     92} 
     93 
     94LevelEdWidget::~LevelEdWidget( void ) 
    8795 
    8896  // Destroy all object loaded in game 
     
    149157void LevelEdWidget::changeObjectName( void ) 
    150158{ 
    151   //Get the new text enter in the QLineEdit box 
    152   mCurentObject->setObjectName(objProperties->sObjInput->text().toStdString()); 
    153  
     159  if(mCurentObject.use_count()) 
     160  { 
     161    //Get the new text enter in the QLineEdit box 
     162    mCurentObject->setObjectName(objProperties->sObjInput->text().toStdString()); 
     163  } 
    154164} 
    155165 
     
    157167void LevelEdWidget::changeObjectPositionX( void) 
    158168{ 
    159   float x = objProperties->nodeXVal->value();   
    160   //Get the new text enter in the QLineEdit box 
    161   mCurentObject->getSceneNode()->setPosition(x, mCurentObject->getSceneNode()->getPosition().y, mCurentObject->getSceneNode()->getPosition().z); 
     169  if(mCurentObject.use_count()) 
     170  {   
     171    float x = objProperties->nodeXVal->value();   
     172    //Get the new text enter in the QLineEdit box 
     173    mCurentObject->getSceneNode()->setPosition(x, mCurentObject->getSceneNode()->getPosition().y, mCurentObject->getSceneNode()->getPosition().z); 
     174  } 
    162175} 
    163176//------------------------------------------------------------------------------------------------  
    164177void LevelEdWidget::changeObjectPositionY( void) 
    165178{ 
    166   float y = objProperties->nodeYVal->value();  
    167   //Get the new text enter in the QLineEdit box 
    168   mCurentObject->getSceneNode()->setPosition(mCurentObject->getSceneNode()->getPosition().x, y, mCurentObject->getSceneNode()->getPosition().z); 
     179  if(mCurentObject.use_count()) 
     180  {   
     181    float y = objProperties->nodeYVal->value();  
     182    //Get the new text enter in the QLineEdit box 
     183    mCurentObject->getSceneNode()->setPosition(mCurentObject->getSceneNode()->getPosition().x, y, mCurentObject->getSceneNode()->getPosition().z); 
     184  } 
     185  //TODO : Otherwise disable the field 
    169186} 
    170187//------------------------------------------------------------------------------------------------  
    171188void LevelEdWidget::changeObjectPositionZ( void) 
    172189{ 
    173   float z = objProperties->nodeZVal->value(); 
    174   //Get the new text enter in the QLineEdit box 
    175   mCurentObject->getSceneNode()->setPosition(mCurentObject->getSceneNode()->getPosition().x, mCurentObject->getSceneNode()->getPosition().y, z); 
     190  if(mCurentObject.use_count()) 
     191  {   
     192    float z = objProperties->nodeZVal->value(); 
     193    //Get the new text enter in the QLineEdit box 
     194    mCurentObject->getSceneNode()->setPosition(mCurentObject->getSceneNode()->getPosition().x, mCurentObject->getSceneNode()->getPosition().y, z); 
     195  } 
     196  //TODO : Otherwise disable the field 
    176197} 
    177198//------------------------------------------------------------------------------------------------  
     
    179200void LevelEdWidget::changeObjectScaleX( void) 
    180201{ 
    181   float x = objProperties->snodeXVal->value();   
    182   //Get the new text enter in the QLineEdit box 
    183   mCurentObject->getSceneNode()->setScale(x, mCurentObject->getSceneNode()->getScale().y, mCurentObject->getSceneNode()->getScale().z); 
     202  if(mCurentObject.use_count()) 
     203  {     
     204    float x = objProperties->snodeXVal->value();   
     205    //Get the new text enter in the QLineEdit box 
     206    mCurentObject->getSceneNode()->setScale(x, mCurentObject->getSceneNode()->getScale().y, mCurentObject->getSceneNode()->getScale().z); 
     207  } 
     208  //TODO : Otherwise disable the field 
    184209} 
    185210//------------------------------------------------------------------------------------------------  
    186211void LevelEdWidget::changeObjectScaleY( void) 
    187212{ 
    188   float y = objProperties->snodeYVal->value();  
    189   //Get the new text enter in the QLineEdit box 
    190   mCurentObject->getSceneNode()->setScale(mCurentObject->getSceneNode()->getScale().x, y, mCurentObject->getSceneNode()->getScale().z); 
     213  if(mCurentObject.use_count()) 
     214  {   
     215    float y = objProperties->snodeYVal->value();  
     216    //Get the new text enter in the QLineEdit box 
     217    mCurentObject->getSceneNode()->setScale(mCurentObject->getSceneNode()->getScale().x, y, mCurentObject->getSceneNode()->getScale().z); 
     218  } 
     219  //TODO : Otherwise disable the field 
    191220} 
    192221//------------------------------------------------------------------------------------------------  
    193222void LevelEdWidget::changeObjectScaleZ( void) 
    194223{ 
    195   float z = objProperties->snodeZVal->value(); 
    196   //Get the new text enter in the QLineEdit box 
    197   mCurentObject->getSceneNode()->setScale(mCurentObject->getSceneNode()->getScale().x, mCurentObject->getSceneNode()->getScale().y, z); 
     224  if(mCurentObject.use_count()) 
     225  {   
     226    float z = objProperties->snodeZVal->value(); 
     227    //Get the new text enter in the QLineEdit box 
     228    mCurentObject->getSceneNode()->setScale(mCurentObject->getSceneNode()->getScale().x, mCurentObject->getSceneNode()->getScale().y, z); 
     229  } 
     230  //TODO : Otherwise disable the field 
    198231} 
    199232//------------------------------------------------------------------------------------------------  
     
    201234void LevelEdWidget::pitchSelectedObject( void) 
    202235{ 
    203   float x = objProperties->rnodeXVal->value();   
    204     Ogre::Degree rX(x); 
    205   //Get the new text enter in the QLineEdit box 
    206   mCurentObject->getSceneNode()->pitch(rX); 
     236  if(mCurentObject.use_count()) 
     237  {   
     238    float x = objProperties->rnodeXVal->value();   
     239      Ogre::Degree rX(x); 
     240    //Get the new text enter in the QLineEdit box 
     241    mCurentObject->getSceneNode()->pitch(rX); 
     242  } 
     243  //TODO : Otherwise disable the field 
    207244} 
    208245//------------------------------------------------------------------------------------------------  
    209246void LevelEdWidget::yawSelectedObject( void) 
    210247{ 
    211   float y = objProperties->rnodeYVal->value(); 
    212   Ogre::Degree rY(y); 
    213   //Get the new text enter in the QLineEdit box 
    214   mCurentObject->getSceneNode()->yaw(rY); 
     248  if(mCurentObject.use_count()) 
     249  {   
     250    float y = objProperties->rnodeYVal->value(); 
     251    Ogre::Degree rY(y); 
     252    //Get the new text enter in the QLineEdit box 
     253    mCurentObject->getSceneNode()->yaw(rY); 
     254  } 
     255  //TODO : Otherwise disable the field 
    215256} 
    216257//------------------------------------------------------------------------------------------------  
    217258void LevelEdWidget::rollSelectedObject( void) 
    218259{ 
    219   float z = objProperties->rnodeZVal->value(); 
    220     Ogre::Degree rZ(z); 
    221   //Get the new text enter in the QLineEdit box 
    222   mCurentObject->getSceneNode()->roll(rZ); 
     260  if(mCurentObject.use_count()) 
     261  {   
     262    float z = objProperties->rnodeZVal->value(); 
     263      Ogre::Degree rZ(z); 
     264    //Get the new text enter in the QLineEdit box 
     265    mCurentObject->getSceneNode()->roll(rZ); 
     266  } 
     267  //TODO : Otherwise disable the field 
    223268} 
    224269 
     
    244289 
    245290//------------------------------------------------------------------------------------------------  
    246 void LevelEdWidget::createScene() 
     291void LevelEdWidget::createScene( void ) 
    247292{ 
    248293         
     
    265310 
    266311//------------------------------------------------------------------------------------------------  
    267 void LevelEdWidget::setupView() 
     312void LevelEdWidget::setupView( void ) 
    268313{ 
    269314    if(mRenderWindow) 
     
    290335        mSceneMgr = mRoot->createSceneManager("TerrainSceneManager");//Ogre::ST_GENERIC); 
    291336*/ 
    292   CEngineSystem::getInstance()->createWindow("View", width(), height(), false, &params); 
     337  CEngineSystem::getInstance()->createWindow("LEVEL VIEW", width(), height(), false, &params); 
    293338  CEngineSystem::getInstance()->chooseSceneManager(); 
    294339 
    295340  mRenderWindow = CEngineSystem::getInstance()->getRenderWindow(); 
    296   mSceneMgr = CEngineSystem::getInstance()->getSceneMgr(); 
    297    
    298    
    299         mCamera = mSceneMgr->createCamera("PlayerCam 1"); 
     341  mSceneMgr = CEngineSystem::getInstance()->getSceneMgr("LEVELSCMGR"); 
     342   
     343   
     344        mCamera = mSceneMgr->createCamera("LEVELCAM"); 
    300345        mCamera->setPosition(Ogre::Vector3(17519,913,16033)); 
    301346        mCamera->lookAt(Ogre::Vector3(16073,0,16600));   
     
    409454/////////////////////////////       UPDATE                ///////////////////////////////////// 
    410455//------------------------------------------------------------------------------------------------  
    411 void LevelEdWidget::update() 
     456void LevelEdWidget::update( void ) 
    412457{ 
    413458        if(mRenderWindow != 0) 
  • trunk/src/LevelEditor.hh

    r9 r10  
    1 #ifndef QTOGREWIDGET_H 
    2 #define QTOGREWIDGET_H 
    3  
     1#ifndef __LEVEL_EDITOR_HH__ 
     2 #define __LEVEL_EDITOR_HH__ 
     3  
    44//#include <vector> 
    55#include <OGRE/Ogre.h> 
     
    1717{ 
    1818 
    19 //#include <OGRE/OgreRoot.h> 
    20 //#include <OGRE/OgreRenderWindow.h> 
     19  //#include <OGRE/OgreRoot.h> 
     20  //#include <OGRE/OgreRenderWindow.h> 
    2121 
    22 /** A QWidget specialised for embedding an Ogre window. */ 
    23 class LevelEdWidget : public QWidget 
    24 { 
    25         Q_OBJECT 
     22  /** A QWidget specialised for embedding an Ogre window. */ 
     23  class LevelEdWidget : public QWidget 
     24  { 
     25    Q_OBJECT 
    2626 
    27 public: 
    28         LevelEdWidget(QWidget* parent = 0); 
    29         ~LevelEdWidget(); 
    30    
    31   void createTempObject(std::string& name, std::string& file, std::string& type); 
    32   void changeInsertionMode(bool val); 
    33   void saveObjectToFile(std::string& savefile); 
    34   void loadObjectFromFile(std::string& loadfile);   
    35    
    36   inline Ogre::Root* getRoot(void) { return mRoot; } 
    37   inline Ogre::RenderWindow* getRenderWindow(void) { return mRenderWindow; } 
    38   inline Ogre::SceneManager* getSceneMgr(void) { return mSceneMgr; }  
    39   inline Ogre::Camera* getCam(void) { return mCamera; }  
    40    
    41         ObjectPtr                               mCurentObject; // Selected object 
    42         Ogre::MovableObject*    closestObject; // Object use in the ray cast 
    43   Ogre::Entity*         mTempEnt; 
    44   Ogre::SceneNode*                      mTempObject;   // Object use to fallow the mouse cursor for insertion 
    45   Ogre::AnimationState* mAnimState;   
     27  public: 
     28    LevelEdWidget(QWidget* parent = 0); 
     29    ~LevelEdWidget(void); 
     30     
     31    void createTempObject(std::string& name, std::string& file, std::string& type); 
     32    void changeInsertionMode(bool val); 
     33    void saveObjectToFile(std::string& savefile); 
     34    void loadObjectFromFile(std::string& loadfile);   
     35     
     36    inline Ogre::Root* getRoot(void) { return mRoot; } 
     37    inline Ogre::RenderWindow* getRenderWindow(void) { return mRenderWindow; } 
     38    inline Ogre::SceneManager* getSceneMgr(void) { return mSceneMgr; }  
     39    inline Ogre::Camera* getCam(void) { return mCamera; }  
     40     
     41    ObjectPtr                           mCurentObject; // Selected object 
     42    Ogre::MovableObject*        closestObject; // Object use in the ray cast 
     43    Ogre::Entity*         mTempEnt; 
     44    Ogre::SceneNode*                    mTempObject;   // Object use to fallow the mouse cursor for insertion 
     45    Ogre::AnimationState* mAnimState;   
    4646 
    47   /////////////////////// 
    48   SelectedObjProp* objProperties; 
     47    /////////////////////// 
     48    QDockWidget* mLevelDock; 
     49    SelectedObjProp* objProperties; 
    4950 
    50 private slots: 
    51   void chooseObject(void); 
    52   void changeObjectName( void ); 
    53   void changeObjectPositionX( void); 
    54   void changeObjectPositionY( void); 
    55   void changeObjectPositionZ( void); 
    56   void changeObjectScaleX( void); 
    57   void changeObjectScaleY( void); 
    58   void changeObjectScaleZ( void); 
    59   void pitchSelectedObject(void); 
    60   void yawSelectedObject(void); 
    61   void rollSelectedObject(void); 
    62    
    63 protected: 
    64   void setupView(); 
    65         void update(); 
    66          
    67         void clamToTerrain(Ogre::SceneNode* node); 
    68         //Ogre::MovableObject* getSelectedNode(float mouseScreenX, float mouseScreenY); 
    69         bool isHoverObjectSelected(void) const; 
    70         void createScene(); 
    71    
    72   void getSelectedObjectInfo(void); 
    73   void resetSelectedObjectInfo(void); 
    74         void moveObjectFromRay(QMouseEvent* evt, Ogre::SceneNode* node); 
    75    
    76         void keyPressEvent(QKeyEvent* evt); 
    77         void keyReleaseEvent(QKeyEvent* evt); 
    78         void mousePressEvent(QMouseEvent* evt); 
    79         void mouseReleaseEvent(QMouseEvent* evt); 
    80         void mouseMoveEvent(QMouseEvent* evt); 
    81         void wheelEvent(QWheelEvent* evt); 
     51  private slots: 
     52    void chooseObject(void); 
     53    void changeObjectName( void ); 
     54    void changeObjectPositionX( void); 
     55    void changeObjectPositionY( void); 
     56    void changeObjectPositionZ( void); 
     57    void changeObjectScaleX( void); 
     58    void changeObjectScaleY( void); 
     59    void changeObjectScaleZ( void); 
     60    void pitchSelectedObject(void); 
     61    void yawSelectedObject(void); 
     62    void rollSelectedObject(void); 
     63     
     64  protected: 
     65    void setupView( void ); 
     66    void update(void); 
     67     
     68    void clamToTerrain(Ogre::SceneNode* node); 
     69    //Ogre::MovableObject* getSelectedNode(float mouseScreenX, float mouseScreenY); 
     70    bool isHoverObjectSelected(void) const; 
     71    void createScene( void ); 
     72     
     73    void getSelectedObjectInfo(void); 
     74    void resetSelectedObjectInfo(void); 
     75    void moveObjectFromRay(QMouseEvent* evt, Ogre::SceneNode* node); 
     76     
     77    void keyPressEvent(QKeyEvent* evt); 
     78    void keyReleaseEvent(QKeyEvent* evt); 
     79    void mousePressEvent(QMouseEvent* evt); 
     80    void mouseReleaseEvent(QMouseEvent* evt); 
     81    void mouseMoveEvent(QMouseEvent* evt); 
     82    void wheelEvent(QWheelEvent* evt); 
    8283 
    83         void resizeEvent(QResizeEvent* evt); 
    84         void timerEvent(QTimerEvent* evt); 
    85         void paintEvent(QPaintEvent* evt); 
    86  
    87         //Setup 
    88         Ogre::RenderWindow* mRenderWindow; 
    89         Ogre::SceneManager* mSceneMgr; 
    90         Ogre::Camera* mCamera; 
    91         //Ogre::SceneNode* mCamNode;   
    92         Ogre::Viewport* mVp; 
    93         Ogre::Root* mRoot; 
    94          
    95         ///// Deplacement Camera 
    96         Ogre::Vector3 mDirection, mTranslateVector; 
    97         QPoint mousePressPos; 
    98         QPoint mousePos; 
    99         float angleX, angleY; 
    100   float mMoveScale; 
    101    
    102         /////////////////////// 
    103   std::string mName; 
    104   std::string mFile; 
    105   std::string mType; 
    106          
    107         bool mouseLeftPressed; 
    108         bool mouseRightPressed; 
    109         bool mouseMiddleBtn; 
    110   bool keyCtrlPressed; 
    111   bool keyShiftPressed; 
    112          
    113   // Action mode 
    114   bool mInsertMode; 
    115   bool mEditionMode; 
    116          
    117 }; 
     84    void resizeEvent(QResizeEvent* evt); 
     85    void timerEvent(QTimerEvent* evt); 
     86    void paintEvent(QPaintEvent* evt); 
     87     
     88    ///////Setup 
     89    Ogre::RenderWindow* mRenderWindow; 
     90    Ogre::SceneManager* mSceneMgr; 
     91    Ogre::Camera* mCamera; 
     92    //Ogre::SceneNode* mCamNode;   
     93    Ogre::Viewport* mVp; 
     94    Ogre::Root* mRoot; 
     95     
     96    ///// Deplacement Camera 
     97    Ogre::Vector3 mDirection, mTranslateVector; 
     98    QPoint mousePressPos; 
     99    QPoint mousePos; 
     100    float angleX, angleY; 
     101    float mMoveScale; 
     102     
     103    /////////////////////// 
     104    std::string mName; 
     105    std::string mFile; 
     106    std::string mType; 
     107     
     108    bool mouseLeftPressed; 
     109    bool mouseRightPressed; 
     110    bool mouseMiddleBtn; 
     111    bool keyCtrlPressed; 
     112    bool keyShiftPressed; 
     113     
     114    // Action mode 
     115    bool mInsertMode; 
     116    bool mEditionMode; 
     117     
     118  }; 
    118119 
    119120}// namespace dreamforge  
  • trunk/src/Properties.cc

    r8 r10  
    99using namespace dreamforge; 
    1010 
    11  
     11//------------------------------------------------------------------------------------------------  
     12////////// SELECTED OBJECT PROPERTIES 
    1213//------------------------------------------------------------------------------------------------  
    1314SelectedObjProp::SelectedObjProp(QWidget* parent) : QWidget(parent) 
    1415{ 
    15   /*QGroupBox* groupCombo = new QGroupBox("Sélection"); 
    16    
    17   QLabel* objCat = new QLabel(tr("Objet Catégorie :")); 
    18   QComboBox* objCatCombo = new QComboBox; 
    19   objCatCombo->addItem(tr("Faune")); 
    20   objCatCombo->addItem(tr("Flore")); 
    21  
    22   QLabel* objType = new QLabel(tr("Objet Type :")); 
    23   QComboBox* objTypeCombo = new QComboBox; 
    24   objTypeCombo->addItem(tr("Batiments")); 
    25   objTypeCombo->addItem(tr("Monstres")); 
    26   objTypeCombo->addItem(tr("NPJ")); 
    27    
    28   QGridLayout* gridObjLayout = new QGridLayout; 
    29   gridObjLayout->addWidget(objCat, 0, 0); 
    30   gridObjLayout->addWidget(objCatCombo, 0, 1); 
    31   gridObjLayout->addWidget(objType, 1, 0); 
    32   gridObjLayout->addWidget(objTypeCombo, 1, 1); 
    33    
    34   groupCombo->setLayout(gridObjLayout); 
    35  
    36   //******************************************** 
    37   mObjectList = new QListWidget; 
    38   new QListWidgetItem(tr("Chien"), mObjectList); 
    39   new QListWidgetItem(tr("Loup"), mObjectList); 
    40   new QListWidgetItem(tr("Loup sauvage"), mObjectList); 
    41   new QListWidgetItem(tr("Ogre"), mObjectList); 
    42   new QListWidgetItem(tr("Tigre"), mObjectList); 
    43  
    44   connect(mObjectList, SIGNAL(itemClicked ( QListWidgetItem * )), this, SLOT(chooseObject()));*/ 
    45      
    4616 
    4717  QStringList headers; 
     
    204174 
    205175//------------------------------------------------------------------------------------------------  
    206 // 
    207 //------------------------------------------------------------------------------------------------  
    208 EnvProperties::EnvProperties(QWidget* parent) : QWidget(parent) 
     176////////// SELECTED OBJECT PROPERTIES 
     177//------------------------------------------------------------------------------------------------  
     178ObjEdProp::ObjEdProp(QWidget* parent) : QWidget(parent) 
     179{ 
     180  //*************** CARACTERISTIQUES 
     181  /* 
     182    * Force 
     183    * Dextérité 
     184    * Constitution 
     185    * Rapidité 
     186    * Agilité 
     187    * Volonté 
     188    * Intelligence 
     189    * Chance 
     190    * Fluide  
     191    */ 
     192  QGroupBox* groupCaract = new QGroupBox("Caractéristiques"); 
     193   
     194  QLabel* lObjName = new QLabel(tr("Nom :")); 
     195  QLabel* lObjType = new QLabel(tr("Type :")); 
     196  QLabel* lObjForce = new QLabel(tr("Force :")); 
     197  QLabel* lObjDext = new QLabel(tr("Dextérité :")); 
     198  QLabel* lObjConst = new QLabel(tr("Constitution :")); 
     199  QLabel* lObjRap = new QLabel(tr("Rapidité :")); 
     200  QLabel* lObjAgil = new QLabel(tr("Agilité :")); 
     201  QLabel* lObjVol = new QLabel(tr("Volonté :")); 
     202  QLabel* lObjIntel = new QLabel(tr("Intelligence :")); 
     203  QLabel* lObjChance = new QLabel(tr("Chance :")); 
     204  QLabel* lObjFluide = new QLabel(tr("Fluide :")); 
     205   
     206  cObjName = new QLineEdit; 
     207  cObjType = new QComboBox; 
     208  cObjType->addItem("PNJ"); 
     209  cObjType->addItem("MONSTRE"); 
     210  cObjType->addItem("DECORS"); 
     211  cObjType->addItem("BATIMENT"); 
     212  cObjType->addItem("ARMES"); 
     213  cObjForce = new QSpinBox; 
     214  cObjDext = new QSpinBox; 
     215  cObjConst = new QSpinBox; 
     216  cObjRap = new QSpinBox; 
     217  cObjAgil = new QSpinBox; 
     218  cObjVol = new QSpinBox; 
     219  cObjIntel = new QSpinBox; 
     220  cObjChance = new QSpinBox; 
     221  cObjFluide = new QSpinBox; 
     222   
     223  QGridLayout* gridObjCaracLayout = new QGridLayout; 
     224  gridObjCaracLayout->addWidget(lObjName, 0, 0); 
     225  gridObjCaracLayout->addWidget(cObjName, 0, 1); 
     226  gridObjCaracLayout->addWidget(lObjType, 1, 0); 
     227  gridObjCaracLayout->addWidget(cObjType, 1, 1); 
     228  gridObjCaracLayout->addWidget(lObjForce, 2, 0); 
     229  gridObjCaracLayout->addWidget(cObjForce, 2, 1); 
     230  gridObjCaracLayout->addWidget(lObjDext, 3, 0); 
     231  gridObjCaracLayout->addWidget(cObjDext, 3, 1); 
     232  gridObjCaracLayout->addWidget(lObjConst, 4, 0); 
     233  gridObjCaracLayout->addWidget(cObjConst, 4, 1); 
     234  gridObjCaracLayout->addWidget(lObjRap, 5, 0); 
     235  gridObjCaracLayout->addWidget(cObjRap, 5, 1); 
     236  gridObjCaracLayout->addWidget(lObjAgil, 6, 0); 
     237  gridObjCaracLayout->addWidget(cObjAgil, 6, 1); 
     238  gridObjCaracLayout->addWidget(lObjVol, 7, 0); 
     239  gridObjCaracLayout->addWidget(cObjVol, 7, 1); 
     240  gridObjCaracLayout->addWidget(lObjIntel, 8, 0); 
     241  gridObjCaracLayout->addWidget(cObjIntel, 8, 1); 
     242  gridObjCaracLayout->addWidget(lObjChance, 9, 0); 
     243  gridObjCaracLayout->addWidget(cObjChance, 9, 1); 
     244  gridObjCaracLayout->addWidget(lObjFluide, 10, 0); 
     245  gridObjCaracLayout->addWidget(cObjFluide, 10, 1); 
     246   
     247  groupCaract->setLayout(gridObjCaracLayout); 
     248   
     249  //*************** MANIPULATION 
     250  QGroupBox* groupManip = new QGroupBox("Manipulation"); 
     251   
     252  // SubMesh list combo 
     253  QLabel* labSubMesh = new QLabel(tr("Objet SousMesh :")); 
     254  objMeshCombo = new QComboBox; 
     255  objMeshCombo->setSizeAdjustPolicy ( QComboBox::AdjustToContents ); 
     256  // Bone list combo 
     257  QLabel* labBone = new QLabel(tr("Objet Bone :")); 
     258  objBoneCombo = new QComboBox; 
     259  objBoneCombo->setSizeAdjustPolicy ( QComboBox::AdjustToContents ); 
     260  // Animation list combo 
     261  QLabel* labAnim = new QLabel(tr("Objet Animation :")); 
     262  objAnimCombo = new QComboBox; 
     263  objAnimCombo->setSizeAdjustPolicy ( QComboBox::AdjustToContents ); 
     264   
     265  showSkelCheckBox = new QCheckBox(tr("Show Skeleton")); 
     266  playAnimCheckBox = new QCheckBox(tr("Pla&y Animation")); 
     267  showBBCheckBox = new QCheckBox(tr("Show BoundedBox")); 
     268   
     269  mButton = new QPushButton("&Change Text");//, this); 
     270  mAttButton = new QPushButton("&Attach Shield"); 
     271  //mAttArm2Button = new QPushButton("&Attach Sword"); 
     272   
     273  QGridLayout* gridObjLayout = new QGridLayout; 
     274  gridObjLayout->addWidget(labSubMesh, 0, 0); 
     275  gridObjLayout->addWidget(objMeshCombo, 0, 1); 
     276  gridObjLayout->addWidget(labBone, 2, 0); 
     277  gridObjLayout->addWidget(objBoneCombo, 2, 1); 
     278  gridObjLayout->addWidget(showSkelCheckBox, 3, 0);  
     279  gridObjLayout->addWidget(showBBCheckBox, 3, 1); 
     280  gridObjLayout->addWidget(labAnim, 4, 0); 
     281  gridObjLayout->addWidget(objAnimCombo, 4, 1); 
     282  gridObjLayout->addWidget(playAnimCheckBox, 5, 0);     
     283  gridObjLayout->addWidget(mButton, 6, 0); 
     284  gridObjLayout->addWidget(mAttButton, 6, 1); 
     285  //gridObjLayout->addWidget(mAttArm2Button, 7, 0); 
     286   
     287  groupManip->setLayout(gridObjLayout); 
     288 
     289  QVBoxLayout* objLayout = new QVBoxLayout; 
     290  objLayout->addWidget(groupCaract); 
     291  objLayout->addWidget(groupManip); 
     292   
     293  setLayout(objLayout); 
     294} 
     295 
     296//------------------------------------------------------------------------------------------------  
     297ObjEdProp::~ObjEdProp() 
     298{ 
     299 
     300} 
     301 
     302//------------------------------------------------------------------------------------------------  
     303void ObjEdProp::mousePressEvent(QMouseEvent* evt) 
     304{ 
     305} 
     306 
     307//------------------------------------------------------------------------------------------------  
     308void ObjEdProp::mouseReleaseEvent(QMouseEvent* evt) 
     309{ 
     310} 
     311 
     312//------------------------------------------------------------------------------------------------  
     313////////// ENVIRONNEMENT PROPERTIES 
     314//------------------------------------------------------------------------------------------------  
     315ResourcesProp::ResourcesProp(QWidget* parent) : QWidget(parent) 
    209316{ 
    210317  //QStringList files; 
     
    227334 
    228335//------------------------------------------------------------------------------------------------  
    229 EnvProperties::~EnvProperties() 
    230 { 
    231  
    232 } 
    233  
    234 //------------------------------------------------------------------------------------------------  
    235 void EnvProperties::chooseObject() 
     336ResourcesProp::~ResourcesProp() 
     337{ 
     338 
     339} 
     340 
     341//------------------------------------------------------------------------------------------------  
     342void ResourcesProp::chooseObject() 
    236343{ 
    237344    QModelIndex item = mMeshTree->currentIndex(); 
     
    247354 
    248355//------------------------------------------------------------------------------------------------  
    249 void EnvProperties::mousePressEvent(QMouseEvent* evt) 
    250 { 
    251 } 
    252  
    253 //------------------------------------------------------------------------------------------------  
    254 void EnvProperties::mouseReleaseEvent(QMouseEvent* evt) 
    255 { 
    256 } 
     356void ResourcesProp::mousePressEvent(QMouseEvent* evt) 
     357{ 
     358} 
     359 
     360//------------------------------------------------------------------------------------------------  
     361void ResourcesProp::mouseReleaseEvent(QMouseEvent* evt) 
     362{ 
     363} 
  • trunk/src/Properties.hh

    r5 r10  
    22 
    33 
    4 #ifndef __EnvProperties_h__ 
    5 #define __EnvProperties_h__ 
     4#ifndef __PROPERTIES_HH__ 
     5 #define __PROPERTIES_HH__ 
    66 
    77#include <QtGui/QtGui> 
     
    1111{ 
    1212 
    13 class SelectedObjProp : public QWidget 
    14 { 
    15   Q_OBJECT 
    16   
    17   public: 
    18     SelectedObjProp(QWidget *parent = 0); 
    19     ~SelectedObjProp(); 
     13  /** 
     14    *   
     15    */   
     16  class SelectedObjProp : public QWidget 
     17  { 
     18    Q_OBJECT 
     19    
     20    public: 
     21      SelectedObjProp(QWidget *parent = 0); 
     22      ~SelectedObjProp(); 
     23       
     24      QTreeView* objectView; 
     25      TreeModel *model; 
     26      QLineEdit* sObjInput; 
     27      // Postion 
     28      QDoubleSpinBox* nodeXVal; 
     29      QDoubleSpinBox* nodeYVal; 
     30      QDoubleSpinBox* nodeZVal; 
     31      // Scale 
     32      QDoubleSpinBox* snodeXVal; 
     33      QDoubleSpinBox* snodeYVal; 
     34      QDoubleSpinBox* snodeZVal;       
     35      // Rotation 
     36      QDoubleSpinBox* rnodeXVal; 
     37      QDoubleSpinBox* rnodeYVal; 
     38      QDoubleSpinBox* rnodeZVal;   
     39       
     40    protected: 
     41      void mousePressEvent(QMouseEvent* evt); 
     42      void mouseReleaseEvent(QMouseEvent* evt);    
     43       
     44  }; 
     45 
     46  /** 
     47    *   
     48    */   
     49  class ObjEdProp : public QWidget 
     50  { 
     51    Q_OBJECT 
     52    
     53    public: 
     54      ObjEdProp(QWidget *parent = 0); 
     55      ~ObjEdProp(); 
     56 
     57      // CARACTERITICS 
     58      QLineEdit* cObjName; 
     59      QComboBox* cObjType; 
     60      QSpinBox* cObjForce; 
     61      QSpinBox* cObjDext; 
     62      QSpinBox* cObjConst; 
     63      QSpinBox* cObjRap; 
     64      QSpinBox* cObjAgil; 
     65      QSpinBox* cObjVol; 
     66      QSpinBox* cObjIntel; 
     67      QSpinBox* cObjChance; 
     68      QSpinBox* cObjFluide; 
     69   
     70      // MANIPULATION 
     71      QComboBox* objMeshCombo; 
     72      QComboBox* objBoneCombo; 
     73      QComboBox* objAnimCombo; 
     74      QCheckBox* playAnimCheckBox; 
     75      QCheckBox* showSkelCheckBox; 
     76      QCheckBox* showBBCheckBox; 
     77      QPushButton* mButton; 
     78      QPushButton* mAttButton; 
     79      //QPushButton* mAttArm2Button; 
     80      
     81    protected: 
     82      void mousePressEvent(QMouseEvent* evt); 
     83      void mouseReleaseEvent(QMouseEvent* evt); 
     84       
     85      //QListWidget* mObjectList; 
     86  };   
     87   
     88  /** 
     89    *   
     90    */ 
     91  class ResourcesProp : public QWidget 
     92  { 
     93    Q_OBJECT 
     94    
     95    public: 
     96      ResourcesProp(QWidget *parent = 0); 
     97      ~ResourcesProp(); 
    2098     
    21     QTreeView* objectView; 
    22     TreeModel *model; 
    23     QLineEdit* sObjInput; 
    24     // Postion 
    25     QDoubleSpinBox* nodeXVal; 
    26     QDoubleSpinBox* nodeYVal; 
    27     QDoubleSpinBox* nodeZVal; 
    28     // Scale 
    29     QDoubleSpinBox* snodeXVal; 
    30     QDoubleSpinBox* snodeYVal; 
    31     QDoubleSpinBox* snodeZVal;       
    32     // Rotation 
    33     QDoubleSpinBox* rnodeXVal; 
    34     QDoubleSpinBox* rnodeYVal; 
    35     QDoubleSpinBox* rnodeZVal;   
    36      
    37   protected: 
    38     void mousePressEvent(QMouseEvent* evt); 
    39     void mouseReleaseEvent(QMouseEvent* evt);    
    40      
    41 }; 
    42  
    43 class EnvProperties : public QWidget 
    44 { 
    45   Q_OBJECT 
    46   
    47   public: 
    48     EnvProperties(QWidget *parent = 0); 
    49     ~EnvProperties(); 
    50    
    51   protected: 
    52     void mousePressEvent(QMouseEvent* evt); 
    53     void mouseReleaseEvent(QMouseEvent* evt); 
    54   private slots: 
    55      void chooseObject(); 
    56      
    57   private:   
    58     QTreeView *mMeshTree; 
    59     QDirModel *mMeshModel; 
    60     QString mCurSelect; 
    61 }; 
     99    protected: 
     100      void mousePressEvent(QMouseEvent* evt); 
     101      void mouseReleaseEvent(QMouseEvent* evt); 
     102    private slots: 
     103       void chooseObject(); 
     104       
     105    private:   
     106      QTreeView *mMeshTree; 
     107      QDirModel *mMeshModel; 
     108      QString mCurSelect; 
     109  }; 
    62110 
    63111}// namespace dreamforge  
  • trunk/src/SConscript

    r8 r10  
    2121  'treeitem.cpp', 
    2222  'Properties.cc', 
     23  'ObjectEditor.cc', 
    2324  'LevelEditor.cc', 
    2425        'Workbench.cc', 
  • trunk/src/Workbench.cc

    r7 r10  
    2626  mLevelEd = new LevelEdWidget; 
    2727  mLevelEd->setFocusPolicy(Qt::ClickFocus); 
    28   mLevelEd->setMinimumSize(105, 355); 
     28  mLevelEd->setMinimumSize(105, 655); 
     29     
     30  mObjectEd = new ObjectEdWidget; 
     31  mObjectEd->setFocusPolicy(Qt::ClickFocus); 
     32  mObjectEd->setMinimumSize(90, 655); 
     33  mObjectEd->objEdProperties->hide(); 
    2934 
    3035  // Create the tab widget 
    3136  tabWidget = new QTabWidget; 
    32   tabWidget->addTab(mLevelEd, tr("Editeur de niveau")); 
    33    
    34    
    35   // Create a widget we can drag around the workbench 
    36   QDockWidget *dock = new QDockWidget(tr("Propriétés"), this); 
    37   dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); 
    38   dock->setWidget(mLevelEd->objProperties); 
    39  
    40   addDockWidget(Qt::RightDockWidgetArea, dock); 
    41    
     37  tabWidget->addTab(mLevelEd, tr("Editeur de monde")); 
     38  tabWidget->addTab(mObjectEd, tr("Editeur d'objets"));  
     39 
     40  // Ogre and Editor Log screen 
     41  appLog = new QTextEdit; 
     42  appLog->setReadOnly(true); 
     43  appLog->insertPlainText( "xxxxxxxxxxxxx STARTING EDITOR LOG xxxxxxxxxxxxxxx \n" ); 
     44  appLog->setFont( QFont("Monospace") ); 
     45   
     46  ogreLog = new QTextEdit; 
     47  ogreLog->setReadOnly(true); 
     48  ogreLog->insertPlainText( "xxxxxxxxxxxxx STARTING OGRE LOG xxxxxxxxxxxxxxx \n" ); 
     49  ogreLog->setFont( QFont("Monospace") ); 
     50 
     51  // Log Tab 
     52        logTab = new QTabWidget; 
     53        //logTab->setMinimumSize(100, 73); 
     54        logTab->setTabPosition(QTabWidget::West); 
     55        logTab->addTab(appLog, tr("EDITEUR")); 
     56  logTab->addTab(ogreLog, tr("OGRE")); 
     57 
     58        QDockWidget *logDock = new QDockWidget("Log"); 
     59  //logDock->setMinimumSize(105, 100); 
     60        logDock->setWidget(logTab); 
     61        logDock->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea); 
     62 
     63  // Add and put dock widget 
     64        addDockWidget(Qt::BottomDockWidgetArea, logDock);  
     65  addDockWidget(Qt::RightDockWidgetArea, mLevelEd->mLevelDock); 
     66  addDockWidget(Qt::RightDockWidgetArea, mObjectEd->mObjDock); 
    4267   
    4368  // Try to register the icon resources : Fix me does not work  
     
    5782  setCentralWidget(tabWidget); 
    5883   
    59   this->readSettings();      
     84  this->readSettings();  
     85   
     86  mLevelEd->setFocus(); 
    6087} 
    6188 
     
    81108void Workbench::exportScene( void ) 
    82109{ 
     110  appLog->insertPlainText( "xxxxxx Exporting Objects xxxxxx"); 
     111   
    83112  QString fileName = QFileDialog::getSaveFileName(this); 
    84113  if (false == fileName.isEmpty()) 
     
    107136void Workbench::importScene( void ) 
    108137{ 
     138  appLog->insertPlainText( "xxxxxx Importing Objects xxxxxx"); 
     139   
    109140  QString fileName = QFileDialog::getOpenFileName(this); 
    110141  if (false == fileName.isEmpty()) 
     
    125156 
    126157    statusBar()->showMessage(tr("File loaded"), 2000); 
     158  }   
     159} 
     160 
     161//------------------------------------------------------------------------------------------------  
     162void Workbench::scrollLog( void ) 
     163{ 
     164  appLog->verticalScrollBar()->setValue( appLog->verticalScrollBar()->maximum() ); 
     165  ogreLog->verticalScrollBar()->setValue( ogreLog->verticalScrollBar()->maximum() ); 
     166} 
     167 
     168 
     169//------------------------------------------------------------------------------------------------  
     170void Workbench::changeTab( int index) 
     171{ 
     172  //switch(tabWidget->currentIndex()) 
     173  switch(index) 
     174  { 
     175    case -1: 
     176    case 0 : //We are in World editor 
     177      //appLog->insertPlainText( "xxxxxxxxxxxxx HIDE OBJECT EDITOR \n" ); 
     178      mObjectEd->objEdProperties->hide(); 
     179      //mObjectEd->objEdProperties->setEnabled ( false); 
     180      if(mLevelEd->objProperties->isHidden()) 
     181      { 
     182        mLevelEd->objProperties->show(); 
     183        mLevelEd->setFocus(); 
     184      } 
     185      // Enable Import and Export actions if it was disable 
     186      if( !exportAct->isEnabled() || !importAct->isEnabled()) 
     187      { 
     188        exportAct->setDisabled(false); 
     189        importAct->setDisabled(false); 
     190      } 
     191      break; 
     192    case 1 : //We are in Object editor 
     193      //appLog->insertPlainText( "xxxxxxxxxxxxx HIDE WORLD EDITOR \n" ); 
     194      mLevelEd->objProperties->hide();  
     195      if(mObjectEd->objEdProperties->isHidden()) 
     196      { 
     197        mObjectEd->objEdProperties->show(); 
     198        mObjectEd->setFocus(); 
     199      } 
     200      // Disable Import and Export actions 
     201      exportAct->setDisabled(true); 
     202      importAct->setDisabled(true); 
     203      break; 
     204    case 2: 
     205    default: 
     206      appLog->insertPlainText( "xxxxxxxxxxxxx DEFAUT HIDE OBJECT EDITOR \n" ); 
     207      mObjectEd->objEdProperties->hide(); 
    127208  } 
    128    
    129  
    130  
    131209} 
    132210 
     
    134212void Workbench::createActions( void ) 
    135213{ 
    136    newAct = new QAction(QIcon("../../data/icons/copy.png"), tr("&New"), this); 
    137    newAct->setShortcut(tr("Ctrl+N")); 
    138    newAct->setStatusTip(tr("Create a new file")); 
    139  
    140    openAct = new QAction(QIcon("../../data/icons/open.png"), tr("&Open..."), this); 
    141    openAct->setShortcut(tr("Ctrl+O")); 
    142    openAct->setStatusTip(tr("Open an existing file"));; 
    143  
    144    saveAct = new QAction(QIcon("../../data/icons/save.png"), tr("&Save"), this); 
    145    saveAct->setShortcut(tr("Ctrl+S")); 
    146    saveAct->setStatusTip(tr("Save the document to disk")); 
    147  
    148    saveAsAct = new QAction(tr("Save &As..."), this); 
    149    saveAsAct->setStatusTip(tr("Save the document under a new name")); 
     214  //// ToolBar 
     215  newAct = new QAction(QIcon("../../data/icons/copy.png"), tr("&New"), this); 
     216  newAct->setShortcut(tr("Ctrl+N")); 
     217  newAct->setStatusTip(tr("Create a new file")); 
     218 
     219  openAct = new QAction(QIcon("../../data/icons/open.png"), tr("&Open..."), this); 
     220  openAct->setShortcut(tr("Ctrl+O")); 
     221  openAct->setStatusTip(tr("Open an existing file"));; 
     222 
     223  saveAct = new QAction(QIcon("../../data/icons/save.png"), tr("&Save"), this); 
     224  saveAct->setShortcut(tr("Ctrl+S")); 
     225  saveAct->setStatusTip(tr("Save the document to disk")); 
     226 
     227  saveAsAct = new QAction(tr("Save &As..."), this); 
     228  saveAsAct->setStatusTip(tr("Save the document under a new name")); 
     229 
     230  exportAct = new QAction(QIcon("../../data/icons/new.png"), tr("&Export scene..."), this); 
     231  exportAct->setStatusTip(tr("Export the scen objects in XML document")); 
     232  connect(exportAct, SIGNAL(triggered()), this, SLOT(exportScene())); 
     233 
     234  importAct = new QAction(QIcon("../../data/icons/cut.png"), tr("&Import scene..."), this); 
     235  importAct->setStatusTip(tr("Import the scene objects from XML document"));   
     236  connect(importAct, SIGNAL(triggered()), this, SLOT(importScene())); 
     237 
     238  exitAct = new QAction(tr("E&xit"), this); 
     239  exitAct->setShortcut(tr("Ctrl+Q")); 
     240  exitAct->setStatusTip(tr("Exit the application")); 
     241  connect(exitAct, SIGNAL(triggered()), this, SLOT(close())); 
     242 
     243  aboutAct = new QAction(tr("&About"), this); 
     244  aboutAct->setStatusTip(tr("Show the application's About box")); 
     245  connect(aboutAct, SIGNAL(triggered()), this, SLOT(about())); 
     246 
     247  aboutQtAct = new QAction(tr("About &Qt"), this); 
     248  aboutQtAct->setStatusTip(tr("Show the Qt library's About box")); 
     249  connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt())); 
    150250    
    151    exportAct = new QAction(QIcon("../../data/icons/new.png"), tr("&Export scene..."), this); 
    152    exportAct->setStatusTip(tr("Export the scen objects in XML document")); 
    153    connect(exportAct, SIGNAL(triggered()), this, SLOT(exportScene())); 
    154  
    155    importAct = new QAction(QIcon("../../data/icons/cut.png"), tr("&Import scene..."), this); 
    156    importAct->setStatusTip(tr("Import the scene objects from XML document"));   
    157    connect(importAct, SIGNAL(triggered()), this, SLOT(importScene())); 
    158     
    159    exitAct = new QAction(tr("E&xit"), this); 
    160    exitAct->setShortcut(tr("Ctrl+Q")); 
    161    exitAct->setStatusTip(tr("Exit the application")); 
    162    connect(exitAct, SIGNAL(triggered()), this, SLOT(close())); 
    163  
    164    aboutAct = new QAction(tr("&About"), this); 
    165    aboutAct->setStatusTip(tr("Show the application's About box")); 
    166    connect(aboutAct, SIGNAL(triggered()), this, SLOT(about())); 
    167  
    168    aboutQtAct = new QAction(tr("About &Qt"), this); 
    169    aboutQtAct->setStatusTip(tr("Show the Qt library's About box")); 
    170    connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt())); 
    171  
     251  //// TabWidget 
     252  connect(tabWidget, SIGNAL(currentChanged( int )),this, SLOT(changeTab(int))); 
     253  connect(appLog, SIGNAL(textChanged()), this, SLOT(scrollLog())); 
    172254} 
    173255 
     
    181263   fileMenu->addAction(saveAsAct); 
    182264   fileMenu->addAction(exportAct); 
    183    fileMenu->addAction(importAct);    
     265   fileMenu->addAction(importAct);   
     266    
    184267   fileMenu->addSeparator(); 
    185268   fileMenu->addAction(exitAct); 
  • trunk/src/Workbench.hh

    r7 r10  
    22 #define __WORKBENCH_HH__ 
    33  
    4  #include <QtGui/QMainWindow> 
    5  #include <QtGui/QtGui> 
    6   
    7   
    8  #include "LevelEditor.hh" 
    9   
    10   
    11  //class QAction; 
    12  //class QMenu; 
    13  //class QTextEdit; 
     4#include <QtGui/QMainWindow> 
     5#include <QtGui/QtGui> 
     6 
     7 
     8#include "LevelEditor.hh" 
     9#include "ObjectEditor.hh" 
     10 
     11//class QAction; 
     12//class QMenu; 
     13//class QTextEdit; 
    1414 
    1515namespace dreamforge  
     
    2222 class Workbench : public QMainWindow 
    2323 { 
    24      Q_OBJECT 
     24    Q_OBJECT 
     25       
     26    public: 
     27      Workbench( void ); 
    2528 
    26  public: 
    27     Workbench( void ); 
     29    protected: 
     30      void closeEvent(QCloseEvent *event); 
     31      void timerEvent(QTimerEvent* evt); 
    2832 
    29  protected: 
    30     void closeEvent(QCloseEvent *event); 
    31     void timerEvent(QTimerEvent* evt); 
    32    
    33  private slots: 
    34     void about(void); 
    35     void exportScene(void); 
    36     void importScene(void); 
     33    private slots: 
     34      void about(void); 
     35      void exportScene(void); 
     36      void importScene(void); 
     37      void changeTab(int index); 
     38      void scrollLog( void ); 
    3739     
    38  private: 
    39     void createActions( void ); 
    40     void createMenus( void ); 
    41     void createToolBars( void ); 
    42     void createStatusBar( void ); 
    43     void readSettings( void ); 
    44     void writeSettings( void ); 
    45                          
    46     void resizeEvent(QResizeEvent* evt); 
     40    private: 
     41      void createActions( void ); 
     42      void createMenus( void ); 
     43      void createToolBars( void ); 
     44      void createStatusBar( void ); 
     45      void readSettings( void ); 
     46      void writeSettings( void ); 
     47         
     48      void resizeEvent(QResizeEvent* evt); 
    4749 
    48     QMenu *fileMenu; 
    49     QMenu *helpMenu; 
    50     QToolBar *fileToolBar; 
    51     QToolBar *editToolBar; 
    52     QAction *newAct; 
    53     QAction *openAct; 
    54     QAction *saveAct; 
    55     QAction *saveAsAct; 
    56     QAction *exportAct; 
    57     QAction *importAct;     
    58     QAction *exitAct; 
    59     QAction *aboutAct; 
    60     QAction *aboutQtAct; 
    61      
    62     QString mExportFile; 
     50      QMenu *fileMenu; 
     51      QMenu *helpMenu; 
     52      QToolBar *fileToolBar; 
     53      QToolBar *editToolBar; 
     54      QAction *newAct; 
     55      QAction *openAct; 
     56      QAction *saveAct; 
     57      QAction *saveAsAct; 
     58      QAction *exportAct; 
     59      QAction *importAct;     
     60      QAction *exitAct; 
     61      QAction *aboutAct; 
     62      QAction *aboutQtAct; 
     63       
     64      QString mExportFile; 
     65       
     66      //Output log 
     67      QTabWidget* logTab; 
     68      QTextEdit* appLog; 
     69      QTextEdit* ogreLog;  
    6370 
    64     QTabWidget *tabWidget; 
    65     LevelEdWidget *mLevelEd; 
    66  
     71      QTabWidget* tabWidget; 
     72      LevelEdWidget* mLevelEd; 
     73      ObjectEdWidget* mObjectEd; 
    6774 }; 
    6875 
  • trunk/src/dreamforge/GameEngine.cc

    r7 r10  
    127127                Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/models/textures", "FileSystem", "General"); 
    128128                Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/models/animation", "FileSystem", "General"); 
    129                 Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/models/scripts", "FileSystem", "General");     
     129                Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/models/scripts", "FileSystem", "General");   
     130                Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/models/humain", "FileSystem", "General"); 
     131    Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/models/armes", "FileSystem", "General");  
     132    //Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/models/test", "FileSystem", "General");  
    130133                Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/terrain", "FileSystem", "General"); 
    131134                Ogre::ResourceGroupManager::getSingleton().addResourceLocation("../../data/terrain/ET", "FileSystem", "General");     
     
    159162        LOG_INFO( Logger::getLogger("dreamforge"), " == Create Scene manager and Camera == "); 
    160163        // Create a generic scene manager and our main camera 
    161         mSceneMgr = mRoot->createSceneManager("TerrainSceneManager"); 
     164        mSceneMgr = mRoot->createSceneManager("TerrainSceneManager", "LEVELSCMGR"); 
    162165} 
    163166 
  • trunk/src/dreamforge/objects/Object.cc

    r7 r10  
    5151void CGameObject::destroy( void ) 
    5252{ 
    53   CEngineSystem::getInstance()->getSceneMgr()->destroyEntity (mEntity); 
    54   CEngineSystem::getInstance()->getSceneMgr()->destroySceneNode(mObjectNode->getName()); 
     53  CEngineSystem::getInstance()->getSceneMgr("LEVELSCMGR")->destroyEntity (mEntity); 
     54  CEngineSystem::getInstance()->getSceneMgr("LEVELSCMGR")->destroySceneNode(mObjectNode->getName()); 
    5555} 
    5656 
     
    5959{ 
    6060  //TODO : Check the file and name if it empty 
    61         mObjectNode = CEngineSystem::getInstance()->getSceneMgr()->getRootSceneNode()->createChildSceneNode(mObjectID); 
    62         mEntity = CEngineSystem::getInstance()->getSceneMgr( )->createEntity(mObjectID, mObjectMesh); 
     61        mObjectNode = CEngineSystem::getInstance()->getSceneMgr("LEVELSCMGR")->getRootSceneNode()->createChildSceneNode(mObjectID); 
     62        mEntity = CEngineSystem::getInstance()->getSceneMgr("LEVELSCMGR")->createEntity(mObjectID, mObjectMesh); 
    6363        mEntity->setCastShadows(true); 
    6464        mObjectNode->attachObject(mEntity);   
     
    7373  mParentNode = parent; 
    7474        mObjectNode = mParentNode->createChildSceneNode(mObjectID); 
    75         mEntity = CEngineSystem::getInstance()->getSceneMgr( )->createEntity(mObjectID, mObjectMesh); 
     75        mEntity = CEngineSystem::getInstance()->getSceneMgr("LEVELSCMGR")->createEntity(mObjectID, mObjectMesh); 
    7676        mEntity->setCastShadows(true); 
    7777        mObjectNode->attachObject(mEntity);       
     
    110110  { 
    111111    mParentNode = parent; 
    112     mObjectNode = static_cast<Ogre::SceneNode*>(CEngineSystem::getInstance()->getSceneMgr()->getRootSceneNode()->removeChild(mObjectID)); 
     112    mObjectNode = static_cast<Ogre::SceneNode*>(CEngineSystem::getInstance()->getSceneMgr("LEVELSCMGR")->getRootSceneNode()->removeChild(mObjectID)); 
    113113    mParentNode->addChild(mObjectNode); 
    114114  }