skia_safe/modules/svg/
transformable_node.rs

1use super::{DebugAttributes, NodeSubtype};
2use crate::{prelude::*, Matrix};
3use skia_bindings as sb;
4
5pub type TransformableNode = RCHandle<sb::SkSVGTransformableNode>;
6
7impl NodeSubtype for sb::SkSVGTransformableNode {
8    type Base = sb::SkSVGNode;
9}
10
11impl DebugAttributes for TransformableNode {
12    const NAME: &'static str = "TransformableNode";
13
14    fn _dbg(&self, builder: &mut std::fmt::DebugStruct) {
15        self.as_base()
16            ._dbg(builder.field("transform", self.transform()));
17    }
18}
19
20impl TransformableNode {
21    pub fn set_transform(&mut self, transform: &Matrix) {
22        unsafe { sb::C_SkSVGTransformableNode_setTransform(self.native_mut(), transform.native()) }
23    }
24
25    pub fn transform(&self) -> &Matrix {
26        Matrix::from_native_ref(&self.native().fTransform)
27    }
28}