diff --git a/src/Gui/DAGView/DAGViewerDesign.svg b/src/Gui/DAGView/DAGViewerDesign.svg new file mode 100644 index 000000000..8dc8877e2 --- /dev/null +++ b/src/Gui/DAGView/DAGViewerDesign.svg @@ -0,0 +1,2987 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + Fuse (multi tool) + Sketch + + + Pad + + + Sketch + + + Pocket + + + Fillet + + Typical Linear Branch. i.e. PartDesign + + + + Cube + Fillet Cylinder + Chamfer + Fuse (multi tool) Path Join + + + + + + + + + Fillet + + Cone Target + + + + Tool Tool Cube Fillet + + Chamfer Path Split + + + + + + + + + + Linked Copy Offset Face Datum Plane Sketch Pad + + + + + + + Cube Fillet Chamfer Combo Linked Copy Offset Face Datum Plane Sketch Pad + + + + Target + + Tool + Tool Cube + Fillet + Cylinder + Chamfer + Fuse + View Anatomy + + + + + Fillet + + Cone Label. more columns? like unique name? + + + Connector: width as a factor of font metric Font metric height + Point Size: size controlled by font metric height + Vertical Spacing + Vertical Spacing + Point Spacing. factor of font metric + NodeToIcon Spacing.Factor of font metric. + Maybe alternate Row colors + boost::multi_index GraphLinkRecord App::DocumentObject*, Gui::ViewProviderDocumentObject*,ViewEntryRectItem *,std::string uniqueName,Graph::Vertex Do we need both Gui::ViewProviderDocumentObject and App::DocumentObject? Model Anatomy boost::graph + + GraphicsItem rectangleGraphicsItem pointGraphicsItem textGraphicsItem iconint rowint columnint colorIndexlastVisibleStatepixmapEnabledpixmapDisabledint creationIndex? + + + + + + + + + + + + Edge contains QGraphicItem for connector.BranchTag: Create, Continue, Terminate.Links to same feature will have to be resolved into one connector object + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Should these be different than node spacing? + + Icon. Scale to font metric + leaf + Problem:We are going to have the same problem as graphviz in that a small change to the graph could result in quite a bit different topological sort. What to do? We enumerate all vertexes with a creation order index. Then custom DFS(topo sort) that scans children and always traverses child with lowest creation order first? + + + + + Start on left and work right. + + + + + + + + + + + + + + + + + + + + + + + + random thoughts:ignore feature groups?ignore new body objects and it's features?filters?After construction can we keep the view in sync from just the signals?Feature will have a virtual method that returns description of results. Modify = for features like fillet, chamfer, fuse, cut, common. Create = for features like box, cylinder, linked copy, section. Construction = datums. These will determin whether dag forks or stays linear by default. Maybe another virtual method to return target for feature that modify. Relation to claimChildren? Relation to BranchTags: Create, Terminate, Continue? splits go right then up. joins go up then left or right. Debate:all QGraphicsView?QGraphicsView with a qtabelviewall qtableview with node and line generation root + + BranchTag::Create + BranchTag::Continue + BranchTag::Terminate + +