graph LR
Standard_Poster_Renderer["Standard Poster Renderer"]
Circular_Poster_Renderer["Circular Poster Renderer"]
Drawing_Data_Structures["Drawing Data Structures"]
Drawing_Utilities["Drawing Utilities"]
Standard_Calendar_Year_Drawer["Standard Calendar Year Drawer"]
Circular_Year_Drawer["Circular Year Drawer"]
Day_Box_Generator["Day Box Generator"]
Circle_Segment_Generator["Circle Segment Generator"]
Standard_Poster_Renderer -- "delegates to" --> Standard_Calendar_Year_Drawer
Standard_Poster_Renderer -- "depends on" --> Drawing_Data_Structures
Standard_Poster_Renderer -- "uses" --> Drawing_Utilities
Circular_Poster_Renderer -- "delegates to" --> Circular_Year_Drawer
Circular_Poster_Renderer -- "depends on" --> Drawing_Data_Structures
Circular_Poster_Renderer -- "uses" --> Drawing_Utilities
Drawing_Data_Structures -- "used by" --> Standard_Poster_Renderer
Drawing_Data_Structures -- "used by" --> Circular_Poster_Renderer
Drawing_Data_Structures -- "used by" --> Standard_Calendar_Year_Drawer
Drawing_Data_Structures -- "used by" --> Circular_Year_Drawer
Drawing_Data_Structures -- "used by" --> Day_Box_Generator
Drawing_Data_Structures -- "used by" --> Circle_Segment_Generator
Drawing_Utilities -- "used by" --> Standard_Poster_Renderer
Drawing_Utilities -- "used by" --> Circular_Poster_Renderer
Drawing_Utilities -- "used by" --> Standard_Calendar_Year_Drawer
Drawing_Utilities -- "used by" --> Circular_Year_Drawer
Drawing_Utilities -- "used by" --> Day_Box_Generator
Drawing_Utilities -- "used by" --> Circle_Segment_Generator
Standard_Calendar_Year_Drawer -- "composes using" --> Day_Box_Generator
Standard_Calendar_Year_Drawer -- "depends on" --> Drawing_Data_Structures
Standard_Calendar_Year_Drawer -- "uses" --> Drawing_Utilities
Circular_Year_Drawer -- "composes using" --> Circle_Segment_Generator
Circular_Year_Drawer -- "depends on" --> Drawing_Data_Structures
Circular_Year_Drawer -- "uses" --> Drawing_Utilities
Day_Box_Generator -- "depends on" --> Drawing_Data_Structures
Day_Box_Generator -- "uses" --> Drawing_Utilities
Circle_Segment_Generator -- "depends on" --> Drawing_Data_Structures
Circle_Segment_Generator -- "uses" --> Drawing_Utilities
click Circular_Poster_Renderer href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/GitHubPoster/Circular_Poster_Renderer.md" "Details"
The SVG Drawing Engine subsystem is responsible for rendering various shapes, text, and elements onto an SVG canvas, serving as the foundational drawing layer for all specific poster renderers.
Orchestrates the generation of the standard GitHub-style contribution poster. It acts as the primary high-level renderer for this specific visualization type.
Related Classes/Methods:
Circular Poster Renderer [Expand]
Orchestrates the generation of the circular contribution poster. It serves as another primary high-level renderer for a distinct visualization type.
Related Classes/Methods:
Provides foundational data structures (e.g., XY for 2D points) and potentially geometric calculation utilities essential for all drawing operations. This is a core dependency for rendering.
Related Classes/Methods:
Provides common utility functions (e.g., color handling, SVG attribute generation, general math helpers) that are reused across both standard and circular drawing logic to avoid duplication.
Related Classes/Methods:
Manages the rendering of all day boxes for a single calendar year within the standard poster. It's a mid-level drawing function, delegating to lower-level primitives.
Related Classes/Methods:
Handles the drawing of a single year's data in the circular poster format. It's a mid-level drawing function for the circular visualization, delegating to lower-level primitives.
Related Classes/Methods:
Generates individual day box SVG elements for the standard poster. This is a low-level primitive generator, responsible for creating the basic visual units.
Related Classes/Methods:
Renders segments of the circular design. This is another low-level primitive generator, responsible for creating the basic visual units for the circular poster.
Related Classes/Methods: