Go to the documentation of this file.00001 #ifndef ENVIRONMENT_H
00002 #define ENVIRONMENT_H
00003
00004 #include <fstream>
00005 #include <vector>
00006 #include <ObjObject.h>
00007 #include <SpatialPartioning.h>
00008 #include "CollisionsManager.h"
00009 #include <QFile>
00010 #include <QMessageBox>
00011 #include <QString>
00012
00013
00014
00019
00027
00028 class Environment
00029 {
00030
00031
00032 public:
00033
00035
00036 std::vector<ObjObject*> m_listOfObjects;
00037
00038
00040
00041 CollisionsManager* m_collisionsManager;
00042
00043 public:
00046 Environment(ngl::TransformStack *_transform);
00047
00049 ~Environment();
00050
00052 void PutObjectsInHash();
00053
00055 void UpdateEnvironment();
00056
00058 void CheckCollisions();
00059
00062 void setCurrentObject(std::string _currentObject);
00063
00066 void setCurrentCloth(std::string _currentCloth);
00067
00071 std::string CreateObject(std::string _fileName, std::string _objectName);
00072
00076 bool deleteObject(std::string _objectName);
00077
00091 std::string CreateClothObject(float _clothSize,
00092 int _massesNum,
00093 float _damping,
00094 float _springDamping,
00095 float _timeStep,
00096 float _gravity,
00097 float _stiffeness,
00098 float _criticalDistance,
00099 float _friction,
00100 float _bumpiness,
00101 std::string _objectName,
00102 std::string _fileName
00103 );
00107 std::string CreateAnimation(QStringList _listOfOBJs, std::string _animName);
00108
00122 std::string ResetTheScene(std::string _fileName,
00123 std::string _objectName,
00124 float _clothSize,
00125 int _massesNum,
00126 float _damping,
00127 float _springDamping,
00128 float _timeStep,
00129 float _gravity,
00130 float _stiffeness,
00131 float _criticalDistance,
00132 float _friction,
00133 float _bumpiness
00134 );
00146 std::string resetCloth(float _clothSize,
00147 int _massesNum,
00148 float _damping,
00149 float _springDamping,
00150 float _timeStep,
00151 float _gravity,
00152 float _stiffeness,
00153 float _criticalDistance,
00154 float _friction,
00155 float _bumpiness
00156 );
00157
00161 ObjObject* getObjectByName(std::string _objectName);
00162
00166 void setMovingMass(int x, int y);
00167
00172 void moveMass(int x, int y, int z);
00173
00174
00176
00177 ObjObject* m_currentObject;
00178
00180
00181 ObjObject* m_currentCloth;
00182
00183 private:
00184
00186
00187 SpatialPartioning *m_spatialPartManager;
00188
00190 void CalculateNeighbours();
00191
00193
00194 ObjObject* m_currentAnimFrame;
00195
00196
00197
00198 protected:
00199
00201
00202 ngl::TransformStack *m_transform;
00203
00204 };
00205
00206 #endif // ENVIRONMENT_H