From 9b4b852872d4728f19b20460a8dd41e91c7e5edc Mon Sep 17 00:00:00 2001 From: Jan Mrna Date: Fri, 31 Oct 2025 17:30:38 +0100 Subject: [PATCH] Added diagrams --- docs/diagrams/class_diagram.svg | 1 + docs/diagrams/include_diagram.svg | 1 + 2 files changed, 2 insertions(+) create mode 100644 docs/diagrams/class_diagram.svg create mode 100644 docs/diagrams/include_diagram.svg diff --git a/docs/diagrams/class_diagram.svg b/docs/diagrams/class_diagram.svg new file mode 100644 index 0000000..4a5221d --- /dev/null +++ b/docs/diagrams/class_diagram.svg @@ -0,0 +1 @@ +std::arrayT,Nstd::arrayTarr,Mstd::arrayvec<T,N,Tag>,Nstd::integral_constantstd::size_t,2std::tuple_sizestd::tuple_sizevec<T,2,Tag>std::tuple_elementstd::tuple_elementI,vec<T,2,Tag>std::vectorTile const*std::vectorstd::vector<Tile const*>std::vectorvec<int32_t,2,TilePosTag>std::basic_string_viewcharstd::vectorvec<float,2,WorldPosTag>std::unordered_mapvec<int32_t,2,TilePosTag>,double,TilePosHashstd::unordered_mapvec<int32_t,2,TilePosTag>,vec<int32_t,2,TilePosTag>,TilePosHashstd::stringstd::shared_ptrSDL_Rendererstd::unique_ptrSDL_Texture,void(SDL_Texture *)std::optionalvec<float,2,WorldPosTag>std::expectedvoid,std::stringstd::vectorUserActionstd::shared_ptrEntitystd::vectorstd::shared_ptr<Entity>std::pairvec<float,2,WindowPosTag>,vec<float,2,WindowSizeTag>std::weak_ptrEntitystd::vectorstd::weak_ptr<Entity>std::pairstd::weak_ptr<Entity>,std::weak_ptr<Entity>std::vectorstd::pair<std::weak_ptr<Entity>,std::weak_ptr<Entity>>std::unique_ptrpathfinder::PathFinderBasestd::unique_ptrPathFindingDemostd::unique_ptrWindowstd::unique_ptrUserInputAnyvecT,N,OtherTagvecT,size_t N,Tag=Anyvec() : voidvec(std::array<T,N> array) : voidvec<ArgsT...>(ArgsT... args) : voidvec<OtherTag>(vec<T,N,OtherTag> && other) : voidoperator+=(const vec<T,N,Tag> & b) : vec<T,N,Tag> &operator-=(const vec<T,N,Tag> & b) : vec<T,N,Tag> &operator/=(float scalar) : vec<T,N,Tag> &operator[](size_t index) const : const T &operator[](size_t index) : T &ChangeTag<TargetTag>() : vec<T, N, TargetTag>ChangeTag<TargetTag>() const : vec<T, N, TargetTag>Data() : std::array<T,N> &DistanceSquared(const vec<T,N,Tag> & b) const : TDistanceTo(const vec<T,N,Tag> & b) const : TDotProduct(const vec<T,N,Tag> & a, const vec<T,N,Tag> & b) : TDotProduct(const vec<T,N,Tag> & b) const : TGetNormalized() const : vec<T,N,Tag>GetOrthogonal() const : vec<T,N,Tag>Length() const : TLengthSquared() const : TNormalize() : voidget<size_t I>() : T &get<size_t I>() const : const T &x() : T &x() const : const T &y() : T &y() const : const T &z() const : const T &z() : T &m_Array : std::array<T,N>WorldPosTagWorldSizeTagWindowPosTagWindowSizeTagTilePosTagTileSizeTagvecint32_t,2,TilePosTagTilePosHashoperator()(const TilePos & p) const noexcept : std::size_tvecT,N,TagMatrixT,size_t N,Tag=AnyMatrix() = default : voidMatrix<Tarr,size_t M>(std::array<Tarr,M> array) : voidoperator[](size_t index) const : const vec_type &operator[](size_t index) : vec_type &Eye() constexpr : Matrix<T,N,Tag>m_Array : std::array<vec_type,N>vecT,2,TagTileA : uint8_tB : uint8_tG : uint8_tR : uint8_tcost : floatTileTypeGRASSWOODROADWATERWALLvecfloat,2,WorldPosTagvecfloat,2,WorldSizeTagMapMap(int rows, int cols) : voidMap() : voidMap(const Map &) = deleted : voidMap(Map &&) = deleted : voidoperator=(const Map &) = deleted : Map &operator=(Map &&) = deleted : Map &GetCost(TilePos pos) const : floatGetMapTiles() const : const TileGrid &GetNeighbors(TilePos center) const : std::vector<TilePos>GetTileAt(TilePos p) const : const Tile *GetTileAt(WorldPos p) const : const Tile *GetTileSize() const : WorldSizeGetTileVelocityCoeff<T>(T p) const : doubleIsTilePosValid(TilePos p) const : boolPaintCircle(TilePos center, unsigned int radius, TileType tile_type) : voidPaintLine(TilePos start, TilePos stop, double width, TileType tile_type) : voidPaintRectangle(TilePos first_corner, TilePos second_corner, TileType tile_type) : voidTileEdgeToWorld(TilePos p) const : WorldPosTileToWorld(TilePos p) const : WorldPosWorldToTile(WorldPos p) const : TilePosTILE_SIZE : const floatm_Cols : size_tm_Rows : size_tm_Tiles : TileGridpathfinder::PathFinderTypeLINEARBFSDIJKSTRAGBFSCOUNTpathfinder::PathFinderBasePathFinderBase(const Map * m) : voidPathFinderBase(const PathFinderBase &) = deleted : voidPathFinderBase(PathFinderBase &&) = deleted : void~PathFinderBase() constexpr = default : voidoperator=(const PathFinderBase &) = deleted : PathFinderBase &operator=(PathFinderBase &&) = deleted : PathFinderBase &CalculatePath(WorldPos start, WorldPos end) = 0 : PathGetName() const = 0 : const std::string_view &m_Map : const Map *pathfinder::LinearPathFinderLinearPathFinder(const Map * m) : voidCalculatePath(WorldPos start, WorldPos end) : PathGetName() const : const std::string_view &m_Name : const std::string_viewpathfinder::BFSBFS(const Map * m) : voidCalculatePath(WorldPos start, WorldPos end) : PathGetName() const : const std::string_view &m_CameFrom : std::unordered_map<TilePos,TilePos,TilePosHash>m_Distance : std::unordered_map<TilePos,double,TilePosHash>m_Name : const std::string_viewpathfinder::DijkstraDijkstra(const Map * m) : voidCalculatePath(WorldPos start, WorldPos end) : PathGetName() const : const std::string_view &m_CameFrom : std::unordered_map<TilePos,TilePos,TilePosHash>m_Cost : std::unordered_map<TilePos,double,TilePosHash>m_Name : const std::string_viewpathfinder::utils::QueueEntryoperator>(const QueueEntry & o) const noexcept : boolcost : floattile : TilePospathfinder::GBFSGBFS(const Map * m) : voidCalculatePath(WorldPos start, WorldPos end) : PathGetName() const : const std::string_view &Heuristic(const TilePos & a, const TilePos & b) : floatm_CameFrom : std::unordered_map<TilePos,TilePos,TilePosHash>m_Name : const std::string_viewLog::LevelTypesCRITICALERRORWARNINGINFODEBUGPROFILING_DEBUGvecU,size_t M,OtherTagvecfloat,2,WindowPosTagvecfloat,2,WindowSizeTagCameraGetPan() const : WorldPosGetZoom() const : floatPan(const WorldPos & delta) : voidWindowToWorld(WindowPos) const : WorldPosWindowToWorldSize(WindowSize) const : WorldSizeWindowToWorldSize<T>(T window_size) const : TWorldToWindow(WorldPos) const : WindowPosWorldToWindowSize(WorldSize) const : WindowSizeWorldToWindowSize<T>(T world_size) const : TZoom(float delta) : voidm_Pan : WorldPosm_Zoom : floatSpriteSprite() : voidSprite(std::string path, WorldPos center = WorldPos{}) : voidSprite(const Sprite &) = deleted : voidSprite(Sprite &&) = deleted : void~Sprite() : voidoperator=(const Sprite &) = deleted : Sprite &operator=(Sprite &&) = deleted : Sprite &GetCenter() const : WorldPosGetSize() const : WorldSizeGetTexture() : SDL_Texture *LoadImage(std::string path, WorldPos image_center = WorldPos{}) : voidSetRenderer(std::shared_ptr<SDL_Renderer> renderer) : voidm_ImageCenter : WorldPosm_Renderer : std::shared_ptr<SDL_Renderer>m_Size : WorldSizem_Texture : std::unique_ptr<SDL_Texture,decltype(&SDL_DestroyTexture)>m_TextureHeight : floatm_TextureWidth : floatEntityEntity(WorldPos position = = {0.0f, 0.0f}) : voidEntity(const Entity &) = deleted : voidEntity(Entity &&) = deleted : voidoperator=(const Entity &) = deleted : Entity &operator=(Entity &&) = deleted : Entity &CollidesWith(const Entity & other) const : boolDeselect() : voidGetActualVelocity() const : const WorldPos &GetCollisionRadius() constexpr const = 0 : floatGetCollisionRadiusSquared() constexpr const : floatGetMoveTarget() : std::optional<WorldPos>GetPath() : pathfinder::Path &GetPath() const : const pathfinder::Path &GetPosition() const : const WorldPos &GetRequestedVelocity() const : const WorldPos &GetSprite() = 0 : Sprite &GetType() constexpr const = 0 : TypeIsCollidable() const = 0 : boolIsCollisionBoxVisible() const : boolIsFlaggedExpired() const : boolIsMovable() const = 0 : boolIsSelected() const : boolSelect() : voidSetActualVelocity(const WorldPos & new_velocity) : voidSetFlagExpired() : voidSetPath(pathfinder::Path & path) : voidSetPosition(WorldPos new_pos) : voidSetRequestedVelocity(const WorldPos & new_velocity) : voidUpdate(float time_delta) : voidZeroActualVelocityInDirection(WorldPos direction) : voidm_ActualVelocity : WorldPosm_CollisionBoxVisible : boolm_FlagExpired : boolm_Path : pathfinder::Pathm_Position : WorldPosm_RequestedVelocity : WorldPosm_Selected : boolEntity::TypeNONEPLAYERTILECOUNTPlayerPlayer() : voidGetCollisionRadius() constexpr const : floatGetSprite() : Sprite &GetType() constexpr const : Entity::TypeIsCollidable() const : boolIsMovable() const : boolLoadResources() : voidm_Sprite : std::unique_ptr<Sprite>MouseButtonLEFTMIDDLERIGHTUserActionUserAction() : voidUserAction(Type t) : voidUserAction(Type t, char key) : voidUserAction(Type t, WindowPos v) : voidUserAction(Type t, int32_t arg) : voidUserAction(Type t, float arg) : void~UserAction() constexpr = default : voidArgument : UserAction::(Argument)type : TypeUserAction::TypeNONEEXITSET_MOVE_TARGETSELECT_PATHFINDERCAMERA_PANCAMERA_ZOOMSELECTION_STARTSELECTION_CHANGESELECTION_ENDUserAction::(Argument)float_number : floatkey : charnumber : int32_tposition : WindowPosUserInputUserInput() : voidUserInput(const UserInput & x) = deleted : voidUserInput(UserInput && x) = deleted : void~UserInput() : voidoperator=(const UserInput &) = deleted : UserInput &operator=(UserInput &&) = deleted : UserInput &GetActions() : const std::vector<UserAction> &GetActions_keyboard(const SDL_Event &) : voidGetActions_mouse(const SDL_Event &) : voidInit() : std::expected<void,std::string>m_Actions : std::vector<UserAction>m_SelectionActive : boolSelectionBoxactive : boolend : WindowPossize : WindowSizestart : WindowPosPathFindingDemoPathFindingDemo(int width, int height) : voidPathFindingDemo(const PathFindingDemo & m) = deleted : voidPathFindingDemo(PathFindingDemo && m) = deleted : void~PathFindingDemo() : voidoperator=(const PathFindingDemo &) = deleted : PathFindingDemo &operator=(PathFindingDemo &&) = deleted : PathFindingDemo &AddEntity(std::shared_ptr<Entity> e) : voidCreateMap() : voidDeselectEntities() : voidGetCamera() const : const Camera &GetEntities() : std::vector<std::shared_ptr<Entity>> &GetEntityCollisions() : const std::vector<Collision> &GetMap() const : const Map &GetRandomPosition() const : WorldPosGetSelectedEntities() : std::vector<std::weak_ptr<Entity>>GetSelectionBoxPosSize() : std::pair<WindowPos,WindowSize>HandleActions(const std::vector<UserAction> & actions) : voidIsExitRequested() const : boolIsSelectionBoxActive() const : boolSelectEntitiesInRectangle(WorldPos A, WorldPos B) : voidUpdateWorld() : voidm_Camera : Cameram_Entities : std::vector<std::shared_ptr<Entity>>m_ExitRequested : boolm_Map : Mapm_PathFinder : std::unique_ptr<pathfinder::PathFinderBase>m_SelectedEntities : std::vector<std::weak_ptr<Entity>>m_SelectionBox : SelectionBoxWindowWindow(int width, int height) : voidWindow(const Window & x) = deleted : voidWindow(Window && x) = deleted : void~Window() : voidoperator=(const Window &) = deleted : Window &operator=(Window &&) = deleted : Window &ClearWindow() : voidDrawCircle(const WindowPos & position, float radius, uint8_t R, uint8_t G, uint8_t B) : voidDrawFilledRect(const WindowPos & position, const WindowSize size, uint8_t R, uint8_t G, uint8_t B, uint8_t A) : voidDrawLine(const WindowPos & A, const WindowPos & B) : voidDrawRect(const WindowPos & position, const WindowSize size, uint8_t R, uint8_t G, uint8_t B) : voidDrawSprite(const WindowPos & position, Sprite & s, float scale = 1.0f) : voidFlush() : voidInit() : std::expected<void,std::string>m_Context : SDL_GLContextm_Height : uint32_tm_Renderer : std::shared_ptr<SDL_Renderer>m_Width : uint32_tm_Window : SDL_Window *GameLoopGameLoop() = default : voidGameLoop(const GameLoop &) = deleted : voidGameLoop(GameLoop &&) = deleted : void~GameLoop() constexpr = default : voidoperator=(const GameLoop &) = deleted : GameLoop &operator=(GameLoop &&) = deleted : GameLoop &Draw() : voidRun() : voidSetGame(std::unique_ptr<PathFindingDemo> x) : voidSetUserInput(std::unique_ptr<UserInput> x) : voidSetWindow(std::unique_ptr<Window> x) : voidm_Game : std::unique_ptr<PathFindingDemo>m_UserInput : std::unique_ptr<UserInput>m_Window : std::unique_ptr<Window>UserAction::(anonymous_8224030)float_number : floatkey : charnumber : int32_tposition : WindowPosUserAction::(anonymous_7630584)float_number : floatkey : charnumber : int32_tposition : WindowPosUserAction::(anonymous_8808080)float_number : floatkey : charnumber : int32_tposition : WindowPosm_Arraym_Arraym_Tilesm_Mapm_Namem_Namem_Distancem_CameFromm_Namem_Costm_CameFromtilem_Namem_CameFromm_Panm_Texturem_Sizem_ImageCenterm_Positionm_ActualVelocitym_RequestedVelocitym_Pathm_SpritetypeArgumentpositionm_Actionsstartendsizem_Mapm_Cameram_Entitiesm_PathFinderm_SelectedEntitiesm_SelectionBoxm_Rendererm_Gamem_Windowm_UserInputpositionpositionposition \ No newline at end of file diff --git a/docs/diagrams/include_diagram.svg b/docs/diagrams/include_diagram.svg new file mode 100644 index 0000000..cf78dec --- /dev/null +++ b/docs/diagrams/include_diagram.svg @@ -0,0 +1 @@ +cppsrcpathfindermap.hppmath.hpptile.hpplog.hppmain.cppgameloop.hpppathfindingdemo.hppcamera.hppentities.hppsprite.hppuser_input.hppwindow.hppsprite.cppcamera.cppentities.cpppathfindingdemo.cpptile.cppuser_input.cppwindow.cppgameloop.cppmap.cppbase.cppbase.hppbfs.cppbfs.hppdijkstra.cppdijkstra.hpputils.hppgbfs.cppgbfs.hpputils.cpp \ No newline at end of file