skia_safe/modules/svg/
transformable_node.rs1use 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}