1 #ifndef _SurfaceCtrl_Definition_h_ 2 #define _SurfaceCtrl_Definition_h_ 3 #include <CtrlLib/CtrlLib.h> 4 #include <Surface/Surface.h> 5 6 #include <GLCtrl/GLCtrl.h> 7 8 #include <plugin/assimp/assimp.h> 9 10 #define GLM_ENABLE_EXPERIMENTAL 11 #include <plugin/glm/glm.hpp> 12 #include <plugin/glm/gtc/matrix_transform.hpp> 13 #include <plugin/glm/gtc/type_ptr.hpp> 14 #include <plugin/glm/gtx/quaternion.hpp> 15 #include <plugin/glm/ext/quaternion_trigonometric.hpp> 16 #include <plugin/glm/gtc/constants.hpp> 17 #include <plugin/glm/gtx/norm.hpp> 18 #include <plugin/glm/gtx/compatibility.hpp> 19 #include <plugin/glm/gtx/string_cast.hpp> 20 #include <plugin/glm/gtx/vector_angle.hpp> 21 22 #define STRINGIFY(...) #__VA_ARGS__ 23 #define SHADER(version, shader) "#version " #version "\n" STRINGIFY(shader) 24 25 namespace Upp{ 26 enum class CameraMovementDirection {FORWARD,BACKWARD,LEFT,RIGHT};// Defines several possible options for camera movement. Used as abstraction to stay away from window-system specific input methods 27 enum class CameraType{PERSPECTIVE = 0 ,ORTHOGRAPHIC = 1};//,CT_FRUSTUM = 2}; //Type of camera rendering 28 enum class DrawType { TRIANGLE, QUAD }; 29 enum class TexturesMaterial { WATER, STONE, BRICK, METAL, WOOD}; 30 31 class SurfaceCtrl; 32 class Skybox; 33 class Object3D; 34 class Object3DProvider; 35 36 class Mesh; 37 class BoundingBox; 38 class OpenGLShader; 39 class OpenGLProgram; 40 41 class Transform; 42 43 class UOGL_Camera; 44 class MagicCamera; 45 46 struct Texture; 47 struct Material; 48 } 49 50 #endif 51