Skip to content

Class organization, ImGui version [DEPRECATED]

Otto Link edited this page Apr 22, 2024 · 1 revision

Namespace(s)

flowchart LR
    git-hmap(["otto-link/HighMap"]) --> hmap

    git-gnode(["otto-link/GNode"]) --> gnode
    
    git-hesiod(["otto-link/Hesiod"]) --> hesiod
    hesiod --> serialization
    hesiod --> cnode
    hesiod --> attribute
    hesiod --> vnode
    hesiod --> gui
Loading

Node graph classes

classDiagram
    class Tree {
        + std::string id
        - std::map<...> nodes_map
        + update()
    }
    class ViewTree {
    }
    class Node {
        + std::string id
        + int hash_id
        # std::string node_type
        - std::map<...> ports
    }
    class Port {
        + std::string id
        + int hash_id
    }

    class ControlNode {
        - std::map<...> attr
    }
    class Filter {
        + compute()
    }
%%    class Gradient {
%%        + compute()
%%    }
    class LinkInfos {
%%        + std::string node_id_from
%%        + std::string port_id_from
%%        + int         port_hash_id_from
%%        + std::string node_id_to
%%        + std::string port_id_to
%%        + int         port_hash_id_to
    }

    Node "1" *-- "*" Port

    Node <|-- ControlNode
    ControlNode "1" *-- "*" Attribute
    
    Attribute <|-- BoolAttribute
    Attribute <|-- FloatAttribute

    Tree <|-- ControlTree
    Tree "1" *-- "*" Node

    ControlTree <-- ViewTree
    ViewTree "1" *-- "*" LinkInfos

%%    ControlNode <|-- Gradient
    ControlNode <|-- Filter
    Filter <|-- Clamp
    Filter <|-- Remap

    ControlNode <|-- ViewNode

%%    ViewNode <-- ViewGradient
%%    Gradient <-- ViewGradient

    ViewNode <|-- ViewClamp
    Clamp <|-- ViewClamp

    ViewNode <|-- ViewRemap
    Remap <|-- ViewRemap

    style Tree fill:#f9f
    style Node fill:#f9f
    style Port fill:#f9f

    style ControlTree fill:#aff
    style ControlNode fill:#aff
    style Filter fill:#aff
    style Clamp fill:#aff
    style Gradient fill:#aff
    style Remap fill:#aff
    
    style ViewTree fill:#ffa
    style ViewNode fill:#ffa
    style LinkInfos fill:#ffa
    style ViewClamp fill:#ffa
    style ViewGradient fill:#ffa
    style ViewRemap fill:#ffa
    
    style Attribute fill:#ddd
    style BoolAttribute fill:#ddd
    style FloatAttribute fill:#ddd
Loading

Window system

classDiagram
    MainWindow
    MainWindow "1" *-- "1" WindowManager

    WindowManager "1" *-- "*" Window
    Window <|-- NodeEditor
    Window <|-- NodeList
    Window <|-- NodeSettings
    Window <|-- Viewer2D    
    Window <|-- Viewer3D
Loading
Clone this wiki locally