feat: Implement copper pour solver pipeline #2
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 implements the core logic for the copper pour solver. It introduces a complete
pipeline that takes a circuit-json input and generates B-Rep shapes for the copper pour regions.
Key changes include:
• Copper Pour Solver Implementation: The CopperPourPipelineSolver is built out to process
obstacles, perform boolean geometry operations using flatten-js, and generate final B-Rep
shapes.
• Circuit JSON Conversion: A new function convertCircuitJsonToInputProblem is added to
translate standard circuit-json elements (pads, traces, holes) into the solver's internal
InputProblem format.
• Comprehensive Testing: A suite of snapshot tests has been added, rendering the output of the
solver to SVG for multiple circuit configurations to visually validate the results.
• Type Definitions: Updated lib/types.ts to support various pad shapes (rect, circle, trace)
and define the solver's input and output structures.
• Dependency Updates: Added @flatten-js/core for geometric calculations and circuit-to-svg for
test rendering.