bigbluebutton-Github/bbb-export-annotations/shapes/Ellipse.js

37 lines
860 B
JavaScript

import {Ellipse as SVGEllipse} from '@svgdotjs/svg.js';
import {Geo} from './Geo.js';
/**
* Creates an SVG ellipse shape from Tldraw v2 JSON data.
*
* @class Ellipse
* @extends {Geo}
*/
export class Ellipse extends Geo {
/**
* Draws an ellipse shape on the SVG canvas.
* @return {G} Returns the SVG group element containing the ellipse.
*/
draw() {
const rx = this.w / 2;
const ry = (this.h + this.growY) / 2;
const ellipseGroup = this.shapeGroup;
const ellipse = new SVGEllipse({
'cx': rx.toFixed(2),
'cy': ry.toFixed(2),
'rx': rx.toFixed(2),
'ry': ry.toFixed(2),
'stroke': this.shapeColor,
'stroke-width': this.thickness,
'style': this.dasharray,
});
this.setFill(ellipse);
ellipseGroup.add(ellipse);
this.drawLabel(ellipseGroup);
return ellipseGroup;
}
}