@tscircuit/3d-viewer 0.0.384 → 0.0.385

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +35 -4
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -26002,7 +26002,7 @@ import * as THREE11 from "three";
26002
26002
  // package.json
26003
26003
  var package_default = {
26004
26004
  name: "@tscircuit/3d-viewer",
26005
- version: "0.0.383",
26005
+ version: "0.0.384",
26006
26006
  main: "./dist/index.js",
26007
26007
  module: "./dist/index.js",
26008
26008
  type: "module",
@@ -26389,7 +26389,8 @@ var OrbitControls = ({
26389
26389
  rotateSpeed,
26390
26390
  zoomSpeed,
26391
26391
  enableDamping,
26392
- dampingFactor
26392
+ dampingFactor,
26393
+ target
26393
26394
  }) => {
26394
26395
  const { camera, renderer } = useThree();
26395
26396
  const controls = useMemo10(() => {
@@ -26405,6 +26406,10 @@ var OrbitControls = ({
26405
26406
  if (zoomSpeed !== void 0) controls.zoomSpeed = zoomSpeed;
26406
26407
  if (enableDamping !== void 0) controls.enableDamping = enableDamping;
26407
26408
  if (dampingFactor !== void 0) controls.dampingFactor = dampingFactor;
26409
+ if (target) {
26410
+ controls.target.set(target[0], target[1], target[2]);
26411
+ controls.update();
26412
+ }
26408
26413
  }, [
26409
26414
  controls,
26410
26415
  autoRotate,
@@ -26413,7 +26418,8 @@ var OrbitControls = ({
26413
26418
  rotateSpeed,
26414
26419
  zoomSpeed,
26415
26420
  enableDamping,
26416
- dampingFactor
26421
+ dampingFactor,
26422
+ target
26417
26423
  ]);
26418
26424
  useEffect12(() => {
26419
26425
  if (!controls || !onStart) return;
@@ -26571,6 +26577,7 @@ var CadViewerContainer = forwardRef2(
26571
26577
  autoRotateDisabled,
26572
26578
  clickToInteractEnabled = false,
26573
26579
  boardDimensions,
26580
+ boardCenter,
26574
26581
  onUserInteraction
26575
26582
  }, ref) => {
26576
26583
  const [isInteractionEnabled, setIsInteractionEnabled] = useState7(
@@ -26584,6 +26591,10 @@ var CadViewerContainer = forwardRef2(
26584
26591
  const desired = largest * 1.5;
26585
26592
  return desired > 10 ? desired : 10;
26586
26593
  }, [boardDimensions]);
26594
+ const orbitTarget = useMemo13(() => {
26595
+ if (!boardCenter) return void 0;
26596
+ return [boardCenter.x, boardCenter.y, 0];
26597
+ }, [boardCenter]);
26587
26598
  return /* @__PURE__ */ jsxs4("div", { style: { position: "relative", width: "100%", height: "100%" }, children: [
26588
26599
  /* @__PURE__ */ jsx11(
26589
26600
  "div",
@@ -26626,7 +26637,8 @@ var CadViewerContainer = forwardRef2(
26626
26637
  panSpeed: 0.75,
26627
26638
  zoomSpeed: 0.5,
26628
26639
  enableDamping: true,
26629
- dampingFactor: 0.1
26640
+ dampingFactor: 0.1,
26641
+ target: orbitTarget
26630
26642
  }
26631
26643
  ),
26632
26644
  /* @__PURE__ */ jsx11(Lights, {}),
@@ -28204,6 +28216,17 @@ var CadViewerJscad = forwardRef3(
28204
28216
  return void 0;
28205
28217
  }
28206
28218
  }, [internalCircuitJson]);
28219
+ const boardCenter = useMemo17(() => {
28220
+ if (!internalCircuitJson) return void 0;
28221
+ try {
28222
+ const board = su4(internalCircuitJson).pcb_board.list()[0];
28223
+ if (!board || !board.center) return void 0;
28224
+ return { x: board.center.x, y: board.center.y };
28225
+ } catch (e) {
28226
+ console.error(e);
28227
+ return void 0;
28228
+ }
28229
+ }, [internalCircuitJson]);
28207
28230
  const { stls: boardStls, loading } = useStlsFromGeom(boardGeom);
28208
28231
  const cad_components = su4(internalCircuitJson).cad_component.list();
28209
28232
  return /* @__PURE__ */ jsxs6(
@@ -28214,6 +28237,7 @@ var CadViewerJscad = forwardRef3(
28214
28237
  initialCameraPosition,
28215
28238
  clickToInteractEnabled,
28216
28239
  boardDimensions,
28240
+ boardCenter,
28217
28241
  onUserInteraction,
28218
28242
  children: [
28219
28243
  boardStls.map(({ stlData, color }, index) => /* @__PURE__ */ jsx13(
@@ -29544,6 +29568,12 @@ try {
29544
29568
  const { width: width10 = 0, height: height10 = 0 } = boardData;
29545
29569
  return { width: width10, height: height10 };
29546
29570
  }, [boardData]);
29571
+ const boardCenter = useMemo19(() => {
29572
+ if (!boardData) return void 0;
29573
+ const { center } = boardData;
29574
+ if (!center) return void 0;
29575
+ return { x: center.x, y: center.y };
29576
+ }, [boardData]);
29547
29577
  const initialCameraPosition = useMemo19(() => {
29548
29578
  if (!boardData) return [5, 5, 5];
29549
29579
  const { width: width10 = 0, height: height10 = 0 } = boardData;
@@ -29599,6 +29629,7 @@ try {
29599
29629
  autoRotateDisabled,
29600
29630
  clickToInteractEnabled,
29601
29631
  boardDimensions,
29632
+ boardCenter,
29602
29633
  onUserInteraction,
29603
29634
  children: [
29604
29635
  /* @__PURE__ */ jsx14(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tscircuit/3d-viewer",
3
- "version": "0.0.384",
3
+ "version": "0.0.385",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "type": "module",