Components / TransformHandles
TransformHandles
Eight handles, a turn and a pivot over a box, returning its geometry.
Example
The component itself, running in WebAssembly, beside its code in a playground. Try it.
Code
use ravenrs::prelude::*;
fn transform_handles() -> impl View {
let layer = State::new(BoxTransform::new(Rect::new(110.0, 70.0, 180.0, 100.0)).rotated(-8.0));
let shown = layer.clone();
let picture = Canvas::new(move |frame, scene| {
let p = shown.get();
let at = p.rect.translate(frame.origin);
// ravenrs-lint: allow(raw_color) the stand-in canvas behind the layer being transformed
scene.push_quad(Quad::new(frame, Color::rgb(0.2, 0.27, 0.35)));
// ravenrs-lint: allow(raw_color) the layer being transformed, as the user painted it
scene.push_quad(Quad::new(at, Color::rgb(0.3, 0.55, 0.75).with_alpha(0.6)));
})
.size(420.0, 230.0);
TransformHandles::new(layer.binding()).stage(picture)
}