Estoy interesado en encontrar una buena biblioteca c ++ (o código base sobre el cual crear uno) para dibujar componentes de gráficos conectados interactivos en Qt.
Por componente de gráfico conectado , me refiero a gráficos cuyos nodos son componentes con secciones de entrada y salida al estilo de los nodos de gráfico en Blender Node Editor o Grasshopper , vea el ejemplo .
Por interactivo , quiero decir que necesito poder acceder a la posición y las ubicaciones de los componentes para permitir que el usuario los seleccione e interactúe con ellos.
Mis requisitos:
Mi implementación actual usa GraphViz con QGV , pero solo admite nodos de componentes simples (sin elementos de entrada/salida específicos). Si bien GraphViz admite elementos de registro y html, QGV no lo hace y parece una molestia suficiente para implementarlo dentro de una bifurcación de QGV correctamente dadas las restricciones de GraphViz que me pregunto si no hay una mejor opción, tratando de no usar GraphViz.
También podría estar bien con una biblioteca simple que no sea de gráficos que haga el diseño dadas las restricciones de tamaño y las restricciones de posición relativa (los bloques de componentes tienen un tamaño fijo, las posiciones de los nodos de entrada/salida son fijas dada la ubicación del bloque de componentes).
Tal vez sea demasiado tarde, pero aquí está la biblioteca que desarrollo para la edición de gráficos de nodos de propósito general.
https://github.com/paceholder/nodeeditor
Características clave:
QGraphicsScene
alejandro kaspar
marcapasos
std::shared_ptr
para envolver los datos del usuario y pasarlos al siguiente modelo. Esto requiere algunas asignaciones de memoria y copia de puntero compartido. De todos modos, un chico logró hacer un renderizador GLSL en tiempo real basado en este Editor de nodos con una docena de primitivas que entregaron 30-60 FPS ( github.com/v0q/CollaborativeResearchProject )moia