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