#pragma once #include #include #include #include #include #include #include #include "FastNoiseNodeEditor.h" namespace Magnum { class NoiseToolApp : public Platform::Application { public: explicit NoiseToolApp( const Arguments& arguments ); ~NoiseToolApp(); private: void drawEvent() override; void viewportEvent( ViewportEvent& event ) override; void keyPressEvent( KeyEvent& event ) override; void keyReleaseEvent( KeyEvent& event ) override; void mousePressEvent( MouseEvent& event ) override; void mouseReleaseEvent( MouseEvent& event ) override; void mouseMoveEvent( MouseMoveEvent& event ) override; void mouseScrollEvent( MouseScrollEvent& event ) override; void textInputEvent( TextInputEvent& event ) override; void UpdatePespectiveProjection(); void HandleKeyEvent( KeyEvent::Key key, bool value ); SceneGraph::Object mCameraObject; SceneGraph::Camera3D mCamera{ mCameraObject }; Vector2 mLookAngle{ 0 }; Timeline mFrameTime; Color3 mClearColor{ 0.122f }; bool mBackFaceCulling = false; int mMaxSIMDLevel = 0; std::vector mLevelNames; std::vector mLevelEnums; ImGuiIntegration::Context mImGuiIntegrationContext; ImGuiContext* mImGuiContext; FastNoiseNodeEditor mNodeEditor; enum Key { Key_W, Key_A, Key_S, Key_D, Key_Q, Key_E, Key_Left, Key_Right, Key_Up, Key_Down, Key_PgUp, Key_PgDn, Key_LShift, Key_RShift, Key_Count }; std::array mKeyDown = {}; }; }