-
Notifications
You must be signed in to change notification settings - Fork 15
Class organization
Otto Link edited this page Apr 11, 2024
·
14 revisions
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
---
title: QtNodes-based
---
classDiagram
class NodeDelegateModel["QtNodes::NodeDelegateModel"] {
- std::shared_ptr<NodeDelegateModelRegistry> _registry;
- std::unordered_map<NodeId, std::unique_ptr<NodeDelegateModel>> _models;
}
class DataFlowGraphModel["QtNodes::DataFlowGraphModel"]
class DataFlowGraphicsScene["QtNodes::DataFlowGraphicsScene"]
QMainWindow <|-- MainWindow
MainWindow "1" *-- "1" ModelConfig
MainWindow "1" *-- "1" Viewer2dWidget
MainWindow "1" *-- "1" Viewer3dWidget
MainWindow "1" *-- "1" NodeEditorWidget
%% QWidget <|-- Viewer2dWidget
%% QWidget <|-- Viewer3dWidget
Viewer3dWidget "1" *-- "1" HmapGLViewer
%% QOpenGLWidget <|-- HmapGLViewer
%% QWidget <|-- NodeEditorWidget
NodeEditorWidget "1" *-- "1" HsdDataFlowGraphModel
NodeEditorWidget "1" *-- "1" DataFlowGraphicsScene
DataFlowGraphModel <|-- HsdDataFlowGraphModel
DataFlowGraphModel "1" *-- "*" NodeDelegateModel
%% AbstractGraphModel <-- DataFlowGraphModel
DataFlowGraphicsScene "1" *-- "1" DataFlowGraphModel
NodeDelegateModel <|-- BaseNode
BaseNode <|-- NoiseFbm
BaseNode <|-- GammaCorrection
%% BaseNode "1" *-- "1" Preview
%% BaseNode "1" *-- "1" QMenu
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
classDiagram
MainWindow
MainWindow "1" *-- "1" WindowManager
WindowManager "1" *-- "*" Window
Window <|-- NodeEditor
Window <|-- NodeList
Window <|-- NodeSettings
Window <|-- Viewer2D
Window <|-- Viewer3D