From f6a9812732c87698594888a3c33f7c7bc72c3d1f Mon Sep 17 00:00:00 2001 From: seveibar Date: Sat, 21 Sep 2024 17:07:47 -0700 Subject: [PATCH] fix 3d model always being at (0,0) --- lib/components/normal-components/Chip.ts | 24 +++++++++++++++++++ .../normal-components/chip.test.tsx | 2 ++ 2 files changed, 26 insertions(+) diff --git a/lib/components/normal-components/Chip.ts b/lib/components/normal-components/Chip.ts index fd2ea04..604bfff 100644 --- a/lib/components/normal-components/Chip.ts +++ b/lib/components/normal-components/Chip.ts @@ -95,4 +95,28 @@ export class Chip extends NormalComponent< this.pcb_component_id = pcb_component.pcb_component_id } + + _getPcbCircuitJsonBounds(): { + center: { x: number; y: number } + bounds: { left: number; top: number; right: number; bottom: number } + width: number + height: number + } { + const { db } = this.root! + if (!this.pcb_component_id) return super._getPcbCircuitJsonBounds() + + const pcb_component = db.pcb_component.get(this.pcb_component_id)! + + return { + center: { x: pcb_component.center.x, y: pcb_component.center.y }, + bounds: { + left: pcb_component.center.x - pcb_component.width / 2, + top: pcb_component.center.y - pcb_component.height / 2, + right: pcb_component.center.x + pcb_component.width / 2, + bottom: pcb_component.center.y + pcb_component.height / 2, + }, + width: pcb_component.width, + height: pcb_component.height, + } + } } diff --git a/tests/components/normal-components/chip.test.tsx b/tests/components/normal-components/chip.test.tsx index 41aa564..f577dbb 100644 --- a/tests/components/normal-components/chip.test.tsx +++ b/tests/components/normal-components/chip.test.tsx @@ -70,6 +70,7 @@ it("should create a Chip component with cadModel prop", async () => { { const cadComponents = circuit.db.cad_component.list() expect(cadComponents).toHaveLength(1) + expect(cadComponents[0].position.x).toBeCloseTo(4) expect(cadComponents[0].model_stl_url).toBe("https://example.com/chip.stl") })