85 lines
1.6 KiB
C++
85 lines
1.6 KiB
C++
// C
|
|
#include <stdio.h>
|
|
|
|
// System (C)
|
|
#include <sys/stat.h>
|
|
#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>
|
|
#include <map>
|
|
#include <set>
|
|
#include <regex>
|
|
#include <unordered_map>
|
|
using std::swap;
|
|
|
|
// ImGui
|
|
#include <imgui.h>
|
|
|
|
// GLM
|
|
#include <glm/mat3x3.hpp>
|
|
#include <glm/gtx/euler_angles.hpp>
|
|
|
|
// PicoJSON
|
|
#include <picojson.h>
|
|
|
|
// 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;
|
|
|
|
using ebcl::T_Optional;
|
|
using ebcl::T_Union;
|
|
using ebcl::T_Variant;
|
|
|
|
using ebcl::T_Array;
|
|
using ebcl::T_AutoArray;
|
|
|
|
using ebcl::T_String;
|
|
using ebcl::T_StringBuilder;
|
|
|
|
using ebcl::T_HashIndex;
|
|
using ebcl::T_ObjectTable;
|
|
using ebcl::T_KeyValueTable;
|
|
|
|
// Silly decoration macros I use everywhere
|
|
#define __rd__
|
|
#define __wr__
|
|
#define __rw__
|
|
|
|
// 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
|
|
#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
|
|
#define COPY( CLS ) \
|
|
CLS( CLS const& ); \
|
|
CLS& operator =( CLS const& )
|
|
#define MOVE( CLS ) \
|
|
CLS( CLS&& ) noexcept; \
|
|
CLS& operator =( CLS&& ) noexcept
|