pub struct RoundedRect { /* private fields */ }Expand description
Rounded rectangle vertex source.
Generates vertices for a rectangle where each corner can have its own elliptical radius. The corners are emitted as arcs (bottom-left, bottom-right, top-right, top-left) connected by line segments, forming a closed polygon.
Port of C++ agg::rounded_rect.
Implementations§
Source§impl RoundedRect
impl RoundedRect
Sourcepub fn new(x1: f64, y1: f64, x2: f64, y2: f64, r: f64) -> Self
pub fn new(x1: f64, y1: f64, x2: f64, y2: f64, r: f64) -> Self
Create a new rounded rectangle with uniform corner radius.
Sourcepub fn default_new() -> Self
pub fn default_new() -> Self
Create a default (zero-sized) rounded rectangle.
Sourcepub fn radius_xy(&mut self, rx: f64, ry: f64)
pub fn radius_xy(&mut self, rx: f64, ry: f64)
Set corner radii with separate x/y values (uniform across corners).
Sourcepub fn radius_bottom_top(
&mut self,
rx_bottom: f64,
ry_bottom: f64,
rx_top: f64,
ry_top: f64,
)
pub fn radius_bottom_top( &mut self, rx_bottom: f64, ry_bottom: f64, rx_top: f64, ry_top: f64, )
Set corner radii for bottom and top edges.
Sourcepub fn radius_all(
&mut self,
rx1: f64,
ry1: f64,
rx2: f64,
ry2: f64,
rx3: f64,
ry3: f64,
rx4: f64,
ry4: f64,
)
pub fn radius_all( &mut self, rx1: f64, ry1: f64, rx2: f64, ry2: f64, rx3: f64, ry3: f64, rx4: f64, ry4: f64, )
Set each corner radius individually.
Corners are numbered 1-4 starting from bottom-left going clockwise: 1 = bottom-left, 2 = bottom-right, 3 = top-right, 4 = top-left.
Sourcepub fn normalize_radius(&mut self)
pub fn normalize_radius(&mut self)
Normalize radii so they don’t exceed rectangle dimensions.
If the sum of adjacent corner radii exceeds the corresponding dimension, all radii are uniformly scaled down.
Sourcepub fn set_approximation_scale(&mut self, s: f64)
pub fn set_approximation_scale(&mut self, s: f64)
Set the approximation scale for arc generation.
Sourcepub fn approximation_scale(&self) -> f64
pub fn approximation_scale(&self) -> f64
Get the current approximation scale.