Ich bin daran interessiert, eine gute C ++ - Bibliothek (oder einen Basiscode, auf dem eine erstellt wird) zu finden, um interaktive verbundene Diagrammkomponenten in Qt zu zeichnen.
Mit verbundener Graph-Komponente meine ich Graphen, deren Knoten Komponenten mit Eingabe- und Ausgabeabschnitten im Stil von Graph-Knoten im Blender Node Editor oder Grasshopper sind, siehe Beispiel .
Mit interactive meine ich, dass ich in der Lage sein muss, auf die Komponentenposition und -orte zuzugreifen, damit der Benutzer sie auswählen und mit ihnen interagieren kann.
Meine Anforderungen:
Meine aktuelle Implementierung verwendet GraphViz mit QGV , unterstützt jedoch nur einfache Komponentenknoten (keine spezifischen Eingabe- / Ausgabeelemente). Während GraphViz Record- und HTML-Elemente unterstützt, tut QGV dies nicht, und es sieht nach einem ausreichenden Aufwand aus, es in einem Fork von QGV korrekt zu implementieren, angesichts der Einschränkungen von GraphViz, dass ich mich frage, ob es keine bessere Wahl gibt, wenn ich versuche, GraphViz nicht zu verwenden.
Ich könnte auch mit einer einfachen Nicht-Grafikbibliothek zufrieden sein, die das Layout mit Größenbeschränkungen und relativen Positionsbeschränkungen ausführt (die Komponentenblöcke haben eine feste Größe, die Positionen der Eingabe- / Ausgabeknoten sind aufgrund der Position des Komponentenblocks festgelegt).
Vielleicht zu spät, aber hier ist immer noch die Bibliothek, die ich für die allgemeine Bearbeitung von Knotendiagrammen entwickle.
https://github.com/paceholder/nodeeditor
Hauptmerkmale:
QGraphicsScene
Sehen Sie sich das Video an, um zu sehen, wozu die Bibliothek in der Lage ist:
Alexander Kaspar
Tempohalter
std::shared_ptr
, um Benutzerdaten zu verpacken und an das nächste Modell zu übergeben. Dies erfordert einige Speicherzuweisungen und das Kopieren von gemeinsam genutzten Zeigern. Wie auch immer, ein Typ hat es geschafft, einen Echtzeit-GLSL-Renderer basierend auf diesem Node-Editor mit einem Dutzend Primitiven zu erstellen, die 30-60 FPS lieferten ( github.com/v0q/CollaborativeResearchProject ) .Moia