graph TD subgraph Core_Geometry["Core Geometry"] P[Point] --> V[Vector2] P --> I[Interval] P --> PL[Polygon] P --> RP[RPolygon] RP --> RP_CUT[RPolygon Cut] RP --> RP_HULL[RPolygon Hull] end subgraph Algorithms["Routing Algorithms"] DME[DME Algorithm] --> MA[ManhattanArc] GR[Global Router] --> RT[RoutingNode] GR --> RTREE[RoutingTree] end subgraph Data_Structures["Data Structures"] DL[Dllink] --> RDL[RDllist] end Core_Geometry --> Algorithms Data_Structures --> RP_CUT Data_Structures --> RP_HULL style Core_Geometry fill:#4caf50 style Algorithms fill:#2196f3 style Data_Structures fill:#ff9800
graph TD subgraph Input["Input Polygon"] A[Non-convex RPolygon] end subgraph Output["Output Pieces"] B[Convex Piece 1] C[Convex Piece 2] D[...] end A -->|rpolygon_cut_convex| B A -->|rpolygon_cut_convex| C A -->|rpolygon_cut_convex| D style Input fill:#ff9800 style Output fill:#4caf50
graph TD S1[s1] --> N1[n0] S2[s2] --> N1 S3[s3] --> N2[n1] S4[s4] --> N2 N1 --> N3[n2] N2 --> N3 style S1 fill:#4caf50 style S2 fill:#4caf50 style S3 fill:#4caf50 style S4 fill:#4caf50 style N3 fill:#f44336
graph TD SOURCE[Source ๐ด] -->|"path"| S1[Steiner ๐ต] SOURCE --> T2[Terminal ๐ข] S1 --> T1[Terminal ๐ข] S1 --> S2[Steiner ๐ต] S2 --> T3[Terminal ๐ข] style SOURCE fill:#f44336,color:#fff style S1 fill:#2196f3,color:#fff style S2 fill:#2196f3,color:#fff
graph LR subgraph Shapes["Test Shapes"] SQ[Square\nArea = 1] LS[L-Shape\nArea = 4] CP[Complex 12-vertex\nArea = 53] end subgraph Hull_Areas["Convex Hull Areas"] SQ_H[Area = 1\nโ hull = orig] LS_H[Area = 5\nโ hull > orig] CP_H[Area = 135\nโ hull > orig] end SQ --> SQ_H LS --> LS_H CP --> CP_H style Shapes fill:#ff9800 style Hull_Areas fill:#4caf50