29 lines
1.2 KiB
TypeScript
29 lines
1.2 KiB
TypeScript
// Metro module 10530 (f10531).
|
|
import Module8531, { Defs, Mask, Rect, Circle } from "../../../../_bundle/Module8531";
|
|
let c7072_5 = Math.PI / 180;
|
|
export default function CircleWithCutout(props) {
|
|
const { circleRadius, cutoutRadius, enableCutout, cutoutPositionInDegrees, circleFillColor } = props;
|
|
const height = 2 * circleRadius;
|
|
return <Module8531 height={height} width={height}>
|
|
<Defs>
|
|
<Mask id="mask">
|
|
<Rect width={height} height={height} fill="white" />
|
|
<Circle cx={circleRadius + circleRadius * Math.sin(cutoutPositionInDegrees * c7072_5)} cy={circleRadius - circleRadius * Math.cos(cutoutPositionInDegrees * c7072_5)} r={cutoutRadius} fill="black" />
|
|
</Mask>
|
|
</Defs>
|
|
<Circle cx={circleRadius} cy={circleRadius} r={circleRadius} fill={circleFillColor} mask={enableCutout ? "url(#mask)" : void 0} />
|
|
</Module8531>;
|
|
};
|
|
export function getBadgeTop(a0, a1, a2) {
|
|
return a1 - a1 * Math.cos(a2 * c7072_5) - a0;
|
|
}
|
|
export function getBadgeLeft(a0, a1, a2) {
|
|
return a1 + a1 * Math.sin(a2 * c7072_5) - a0;
|
|
}
|
|
export function getCutoutCenterX(a0, a1) {
|
|
return a0 + a0 * Math.sin(a1 * c7072_5);
|
|
}
|
|
export function getCutoutCenterY(a0, a1) {
|
|
return a0 - a0 * Math.cos(a1 * c7072_5);
|
|
}
|