Implement auto-layout algorithm and restructure gallery documentation#22
Merged
Conversation
…ew findings Adds the "auto" meta-layout-algorithm that routes each connected component of a graph to the layered, containment, or hierarchical engine based on its shape, then packs the results together. Adds edge-count-aware gap widening shared across the containment and hierarchical algorithms via a common EdgeCountGapWidener helper. Restructures docs/gallery/ into topic-based groups, each with its own README, and rewrites the top-level docs/gallery/README.md as a marketing index that links to the group pages. Enforces that every gallery image is produced via LayoutEngine.Layout, isolating the one hand-built LayoutTree example into a dedicated custom-rendering group. Remediates all 16 findings from the formal-review pass across the 18 review-sets covering this branch's changes: - Fixes a real ComponentPacker/LayeredLayoutPipeline double axis-swap bug by making AxisTransform.NormalizeInputAxes idempotent per graph. - Strengthens a weak AutoLayoutAlgorithm test to actually assert that a graph-level NodeSpacing override reaches a split-off component. - Splits several compound reqstream requirements (hierarchical-layout- algorithm, containment-layout, containment-layout-algorithm) into atomic, independently-verifiable requirements, updating design/verification docs and coverage tables to match. - Fixes stale documentation: removed a nonexistent orthogonal-router test reference, corrected ConnectorRouter's Connection XML doc describing obstacle handling, and added missing dependencies to the connector-router design doc. - Fixes GalleryShowcaseTests.cs: adds AAA-style Arrange/Act-Assert comments to every fact, removes an orphaned XML doc summary, and adds the missing Gallery_ContainmentManySmallWideBoxes_RendersSvg fact. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Rendering-OTS-SonarScanner requirement had no satisfying test, failing dotnet reqstream --enforce (333 of 334 requirements satisfied). Removes the OTS reqstream/design/verification trio, the requirements.yaml include, the .reviewmark.yaml review-set entry, and the catalog entry in docs/design/ots.md. The actual SonarScanner for .NET tool install and CI usage (dotnet-tools.json, build.yaml, versionmark.yaml) are unaffected. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces and documents a new
AutoLayoutAlgorithmmeta-algorithm to the Rendering.Layout system, updates the architectural and design documentation to reflect this addition, and improves review coverage for new and existing layout engine units. It also adds documentation for SonarScanner for .NET integration and makes minor improvements to gallery documentation and spell-check configuration.Rendering.Layout algorithm and documentation enhancements:
Added the
AutoLayoutAlgorithmmeta-algorithm, which automatically selects the best layout algorithm for each connected component and packs the results together. Updated all relevant documentation (README.md,docs/design/introduction.md,docs/design/rendering-layout.md) to describe this new algorithm and its capabilities. [1] [2] [3] [4] [5] [6] [7] [8] [9]Updated system diagrams and lists to include new engine units (
LayoutTreePacker,EdgeCountGapWidener) and clarified the composition of the engine and algorithm units in the design documentation. [1] [2] [3]Review coverage improvements:
AutoLayoutAlgorithm,LayoutTreePacker, andEdgeCountGapWidener, ensuring these new units and their tests are included in the review process. [1] [2]SonarScanner integration documentation:
Other improvements: