2017-09-30 10:37:45 +02:00
|
|
|
// C
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
// System (C)
|
2017-10-04 16:29:39 +02:00
|
|
|
#include <sys/stat.h>
|
2017-09-30 10:37:45 +02:00
|
|
|
#include <sys/inotify.h>
|
|
|
|
#include <fcntl.h>
|
|
|
|
#include <libgen.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
|
|
|
|
// Misc (C)
|
|
|
|
#include <SDL.h>
|
|
|
|
#include <GL/glew.h>
|
|
|
|
|
|
|
|
// C++ std
|
|
|
|
#include <vector>
|
|
|
|
#include <string>
|
|
|
|
#include <algorithm>
|
|
|
|
#include <functional>
|
|
|
|
#include <memory>
|
|
|
|
#include <fstream>
|
2017-10-01 11:37:04 +02:00
|
|
|
#include <map>
|
2017-10-03 16:09:12 +02:00
|
|
|
#include <set>
|
2017-10-03 13:53:50 +02:00
|
|
|
#include <regex>
|
2017-10-07 16:56:20 +02:00
|
|
|
#include <unordered_map>
|
2017-11-03 09:08:19 +01:00
|
|
|
using std::swap;
|
2017-09-30 10:37:45 +02:00
|
|
|
|
|
|
|
// ImGui
|
|
|
|
#include <imgui.h>
|
|
|
|
|
|
|
|
// GLM
|
|
|
|
#include <glm/mat3x3.hpp>
|
|
|
|
#include <glm/gtx/euler_angles.hpp>
|
|
|
|
|
2017-10-31 09:22:38 +01:00
|
|
|
// PicoJSON
|
|
|
|
#include <picojson.h>
|
|
|
|
|
2017-11-03 09:08:19 +01:00
|
|
|
// EBCL
|
|
|
|
#include <ebcl/Arrays.hh>
|
|
|
|
#include <ebcl/Strings.hh>
|
|
|
|
#include <ebcl/HashTables.hh>
|
|
|
|
|
|
|
|
using ebcl::T_OwnPtr;
|
|
|
|
using ebcl::NewOwned;
|
|
|
|
using ebcl::T_SharedPtr;
|
|
|
|
using ebcl::NewShared;
|
2017-11-04 21:23:50 +01:00
|
|
|
|
|
|
|
using ebcl::T_Optional;
|
|
|
|
using ebcl::T_Union;
|
|
|
|
using ebcl::T_Variant;
|
|
|
|
|
2017-11-03 09:08:19 +01:00
|
|
|
using ebcl::T_Array;
|
|
|
|
using ebcl::T_AutoArray;
|
2017-11-04 21:23:50 +01:00
|
|
|
|
2017-11-03 09:08:19 +01:00
|
|
|
using ebcl::T_String;
|
2017-11-04 21:23:50 +01:00
|
|
|
using ebcl::T_StringBuilder;
|
|
|
|
|
2017-11-03 09:08:19 +01:00
|
|
|
using ebcl::T_HashIndex;
|
|
|
|
using ebcl::T_ObjectTable;
|
|
|
|
using ebcl::T_KeyValueTable;
|
|
|
|
|
2017-09-30 10:37:45 +02:00
|
|
|
// Silly decoration macros I use everywhere
|
|
|
|
#define __rd__
|
|
|
|
#define __wr__
|
|
|
|
#define __rw__
|
2017-10-02 13:51:08 +02:00
|
|
|
|
|
|
|
// Macros that enable/disable copying/moving
|
|
|
|
#define NO_COPY( CLS ) \
|
|
|
|
CLS( CLS const& ) = delete; \
|
|
|
|
CLS& operator =( CLS const& ) = delete
|
|
|
|
#define NO_MOVE( CLS ) \
|
|
|
|
CLS( CLS&& ) = delete; \
|
|
|
|
CLS& operator =( CLS&& ) = delete
|
2017-10-09 10:58:03 +02:00
|
|
|
#define DEF_COPY( CLS ) \
|
|
|
|
CLS( CLS const& ) = default; \
|
|
|
|
CLS& operator =( CLS const& ) = default
|
|
|
|
#define DEF_MOVE( CLS ) \
|
|
|
|
CLS( CLS&& ) noexcept = default; \
|
|
|
|
CLS& operator =( CLS&& ) noexcept = default
|
2017-10-02 13:51:08 +02:00
|
|
|
#define COPY( CLS ) \
|
|
|
|
CLS( CLS const& ); \
|
|
|
|
CLS& operator =( CLS const& )
|
|
|
|
#define MOVE( CLS ) \
|
2017-10-04 16:29:39 +02:00
|
|
|
CLS( CLS&& ) noexcept; \
|
|
|
|
CLS& operator =( CLS&& ) noexcept
|