Skip to content
Otto Link edited this page Mar 14, 2024 · 6 revisions

Welcome to the Hesiod wiki!

Node graph classes

classDiagram
    class Tree {
        + std::string id
        - std::map<...> nodes_map
        + update()
    }
    class ViewTree {
        + render_node_editor()
    }
    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
Clone this wiki locally