2021-11-07 09:06:28 +01:00
|
|
|
module jsdom
|
|
|
|
|
|
|
|
pub struct JS.Path2D {}
|
|
|
|
|
|
|
|
pub fn (p JS.Path2D) addPath(JS.Path2D, JS.DOMMatrix)
|
|
|
|
pub fn (p JS.Path2D) closePath()
|
|
|
|
pub fn (p JS.Path2D) moveTo(x JS.Number, y JS.Number)
|
|
|
|
pub fn (p JS.Path2D) lineTo(x JS.Number, y JS.Number)
|
|
|
|
pub fn (p JS.Path2D) bezierCurveTo(cp1x JS.Number, cp1y JS.Number, cp2x JS.Number, cp2y JS.Number, x JS.Number, y JS.Number)
|
|
|
|
pub fn (p JS.Path2D) quadraticCurveTo(cpx JS.Number, cpy JS.Number, x JS.Number, y JS.Number)
|
|
|
|
pub fn (p JS.Path2D) arc(x JS.Number, y JS.Number, radius JS.Number, startAngle JS.Number, endAngle JS.Number, counter_clockwise JS.Boolean)
|
|
|
|
pub fn (p JS.Path2D) arcTo(x1 JS.Number, y1 JS.Number, x2 JS.Number, y2 JS.Number, radius JS.Number)
|
|
|
|
pub fn (p JS.Path2D) ellipse(x JS.Number, y JS.Number, radius_x JS.Number, radius_y JS.Number, rotation JS.Number, start_angle JS.Number, end_angle JS.Number, counter_clockwise JS.Boolean)
|
|
|
|
pub fn (p JS.Path2D) rect(x JS.Number, y JS.Number, width JS.Number, height JS.Number)
|
|
|
|
|
|
|
|
pub struct Path2D {
|
|
|
|
mut:
|
|
|
|
path JS.Path2D [noinit]
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn (p Path2D) add_path(p2 Path2D) {
|
|
|
|
#p.path.addPath(p2.path);
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn (p Path2D) add_path_with_transform(p2 Path2D, m DOMMatrix) {
|
|
|
|
p.path.addPath(p2.path, m.matrix)
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn (path Path2D) bezier_curve_to(cp1x f64, cp1y f64, cp2x f64, cp2y f64, x f64, y f64) {
|
|
|
|
#path.path.bezierCurveTo(cp1x.val,cp1y.val,cp2x.val,cp2y.val, x.val,y.val);
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn (path Path2D) quadratic_curve_to(cpx f64, cpy f64, x f64, y f64) {
|
|
|
|
#path.path.quadraticCurveTo(cpx.val,cpy.val,x.val,y.val);
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn (path Path2D) arc(x f64, y f64, radius f64, start_angle f64, end_angle f64, counter_clockwise bool) {
|
|
|
|
#path.path.arc(x.val,y.val,radius.val,start_angle.val,end_angle.val,counter_clockwise.val)
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn (path Path2D) arc_to(x1 f64, y1 f64, x2 f64, y2 f64, radius f64) {
|
|
|
|
#path.path.arcTo(x1.val,y1.val,x2.val,y2.val,radius.val);
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn (path Path2D) ellipse(x f64, y f64, radius_x f64, radius_y f64, rotation f64, start_angle f64, end_angle f64, counter_clockwise bool) {
|
|
|
|
#path.path.ellipse(x.val,y.val,radius_x.val,radius_y.val,rotation.val,start_angle.val,end_angle.val,counter_clockwise.val);
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn (path Path2D) rect(x f64, y f64, width f64, height f64) {
|
|
|
|
#path.path.rect(x.val,y.val,widht.val,height.val);
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn (path Path2D) line_to(x f64, y f64) {
|
2021-11-11 13:36:32 +01:00
|
|
|
path.path.lineTo(JS.Number(x), JS.Number(y))
|
2021-11-07 09:06:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
pub fn (path Path2D) move_to(x f64, y f64) {
|
2021-11-11 13:36:32 +01:00
|
|
|
path.path.lineTo(JS.Number(x), JS.Number(y))
|
2021-11-07 09:06:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
pub fn (path Path2D) close_path() {
|
|
|
|
path.path.closePath()
|
|
|
|
}
|