import {
SYMBOL_FILL,
SYMBOL_STROKE,
SymbolSvg,
} from "./primitives";
const PNCH012_STROKE = "#8b134f";
const PNCH_CHAMBER_CONTENT_SCALE = 0.45;
const PNCH_CHAMBER_CONTENT_CENTER = { x: 32, y: 24 } as const;
const PNCH_CHAMBER_CONTENT_TRANSFORM = `translate(${PNCH_CHAMBER_CONTENT_CENTER.x} ${PNCH_CHAMBER_CONTENT_CENTER.y}) scale(${PNCH_CHAMBER_CONTENT_SCALE}) translate(${-PNCH_CHAMBER_CONTENT_CENTER.x} ${-PNCH_CHAMBER_CONTENT_CENTER.y})`;
const PNCH_CHAMBER_LABEL_RENDERED_SIZE = 15;
const PNCH_CHAMBER_SMALL_CANVAS_SCALE = 96 / 64;
// SVG 字号使用 viewBox 逻辑单位;抵消 small 画布缩放后,工作区最终显示为 15px。
const PNCH_CHAMBER_LABEL_FONT_SIZE =
PNCH_CHAMBER_LABEL_RENDERED_SIZE / PNCH_CHAMBER_SMALL_CANVAS_SCALE;
function scalePnchChamberAnchor(x: number, y: number) {
return {
x:
PNCH_CHAMBER_CONTENT_CENTER.x +
(x - PNCH_CHAMBER_CONTENT_CENTER.x) * PNCH_CHAMBER_CONTENT_SCALE,
y:
PNCH_CHAMBER_CONTENT_CENTER.y +
(y - PNCH_CHAMBER_CONTENT_CENTER.y) * PNCH_CHAMBER_CONTENT_SCALE,
} as const;
}
export const PNCH012_PORT_ANCHORS = {
bottom: scalePnchChamberAnchor(32, 56),
left: scalePnchChamberAnchor(0, 24),
right: scalePnchChamberAnchor(64, 24),
top: scalePnchChamberAnchor(32, -8),
} as const;
export const PNCH023_PORT_ANCHORS = {
left: PNCH012_PORT_ANCHORS.left,
right: PNCH012_PORT_ANCHORS.right,
} as const;
export function AmesimPnch023Symbol() {
return (
Cp
);
}
export function AmesimPnch012Symbol() {
return (
{[0, 90, 180, 270].map((rotation) => (
))}
Cp
);
}