Files
leocad/common/lc_global.h
T
Leonardo Zide 3d1091492e Reduce asset header dependencies
Keep library source storage details in the implementation and move the primitive constructor out of line so the library header no longer needs string helpers. Use shared forward declarations and asset types in loader and manager headers, keeping the full texture definition in its implementation.
2026-10-20 21:31:31 -07:00

137 lines
3.0 KiB
C++

#ifndef LC_GLOBAL_H
#define LC_GLOBAL_H
#ifdef __cplusplus
#define QT_NO_DEPRECATED_WARNINGS
#include <QtGlobal>
#include <QtWidgets>
#include <QtConcurrent>
#include <QtOpenGL>
#include <QtGui>
#include <QWidget>
#include <QOpenGLWidget>
#include <QCryptographicHash>
#include <QPrinter>
#include <QPrintDialog>
#include <QSaveFile>
#include <map>
#include <vector>
#include <array>
#include <atomic>
#include <set>
#include <unordered_set>
#include <deque>
#include <functional>
#include <limits>
#include <memory>
#include <optional>
#include <string_view>
#include <unordered_map>
#include <variant>
#include <cmath>
#if _MSC_VER
#pragma warning(default : 4062) // enumerator 'identifier' in switch of enum 'enumeration' is not handled
#pragma warning(default : 4388) // 'token' : signed/unsigned mismatch
#pragma warning(default : 4389) // 'equality-operator' : signed/unsigned mismatch
#pragma warning(default : 5038) // data member 'A::y' will be initialized after data member 'A::x'
#endif
#ifdef QT_NO_PRINTER
class QPrinter;
#endif
#ifndef Q_FALLTHROUGH
#define Q_FALLTHROUGH();
#endif
#ifndef QT_STRINGIFY
#define QT_STRINGIFY2(x) #x
#define QT_STRINGIFY(x) QT_STRINGIFY2(x)
#endif
#define LC_ARRAY_COUNT(x) ((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x])))))
#define LC_ARRAY_SIZE_CHECK(a,s) static_assert(LC_ARRAY_COUNT(a) == static_cast<int>(s), QT_STRINGIFY(a) " size mismatch.")
#if defined(EGL_VERSION_1_0) || defined(GL_ES_VERSION_2_0) || defined(GL_ES_VERSION_3_0) || defined(QT_OPENGL_ES)
#define LC_OPENGLES 1
#endif
// Old defines and declarations.
#define LC_MAXPATH 1024
#define LC_MAXNAME 1000
typedef quint32 lcStep;
#define LC_STEP_MAX 0xffffffff
// Version number.
#define LC_VERSION_MAJOR 26
#define LC_VERSION_MINOR 9
#define LC_VERSION_PATCH 0
#define LC_VERSION_TEXT "26.09"
// Forward declarations.
class Project;
class lcModel;
enum class lcGeometryBoundsMode;
class lcObject;
class lcPiece;
class lcCamera;
class lcLight;
enum class lcLightType;
enum class lcLightAreaShape;
class lcGroup;
class lcModelHistory;
class lcPieceData;
class lcSynthInfo;
class lcTrainTrackInfo;
typedef std::map<const lcPieceData*, std::map<int, int>> lcPartsList;
struct lcModelPartsEntry;
struct lcMinifig;
enum class lcViewpoint;
enum class lcShadingMode;
enum class lcStudStyle;
class lcInstructions;
struct lcInstructionsPageSetup;
struct lcObjectRayTest;
struct lcObjectBoxTest;
class lcVector2;
class lcVector3;
class lcVector4;
class lcMatrix33;
class lcMatrix44;
class lcFindReplaceWidget;
struct lcFindReplaceParams;
class lcCollapsibleWidget;
class lcViewWidget;
class lcView;
class lcContext;
class lcMesh;
struct lcMeshSection;
struct lcRenderMesh;
struct lcObjectSection;
struct lcPieceRayTest;
class lcTexture;
class lcScene;
class lcViewManipulator;
class lcViewSphere;
enum class lcRenderMeshState : int;
enum class lcTrackTool;
enum class lcTrackButton;
class lcThumbnailManager;
class lcAssetLoader;
class lcTextureManager;
class lcPieceManager;
class lcFile;
class lcMemFile;
class lcDiskFile;
#endif
#endif // LC_GLOBAL_H