@@ -233,7 +233,7 @@ impl GraphicGroup {
233
233
} ;
234
234
235
235
pub fn to_usvg_tree ( & self , resolution : UVec2 , viewbox : [ DVec2 ; 2 ] ) -> usvg:: Tree {
236
- let root_node = usvg:: Node :: new ( usvg :: NodeKind :: Group ( usvg :: Group :: default ( ) ) ) ;
236
+ let mut root_node = usvg:: Group :: default ( ) ;
237
237
let tree = usvg:: Tree {
238
238
size : usvg:: Size :: from_wh ( resolution. x as f32 , resolution. y as f32 ) . unwrap ( ) ,
239
239
view_box : usvg:: ViewBox {
@@ -244,7 +244,7 @@ impl GraphicGroup {
244
244
} ;
245
245
246
246
for element in self . iter ( ) {
247
- root_node. append ( element. to_usvg_node ( ) ) ;
247
+ root_node. children . push ( element. to_usvg_node ( ) ) ;
248
248
}
249
249
tree
250
250
}
@@ -283,35 +283,34 @@ impl GraphicElement {
283
283
}
284
284
let path = builder. finish ( ) . unwrap ( ) ;
285
285
let mut path = usvg:: Path :: new ( path. into ( ) ) ;
286
- path. transform = transform;
286
+ path. abs_transform = transform;
287
287
// TODO: use proper style
288
288
path. fill = None ;
289
289
path. stroke = Some ( usvg:: Stroke :: default ( ) ) ;
290
- usvg:: Node :: new ( usvg :: NodeKind :: Path ( path) )
290
+ usvg:: Node :: Path ( Box :: new ( path) )
291
291
}
292
292
GraphicElement :: ImageFrame ( image_frame) => {
293
293
if image_frame. image . width * image_frame. image . height == 0 {
294
- return usvg:: Node :: new ( usvg :: NodeKind :: Group ( usvg:: Group :: default ( ) ) ) ;
294
+ return usvg:: Node :: Group ( Box :: new ( usvg:: Group :: default ( ) ) ) ;
295
295
}
296
296
let png = image_frame. image . to_png ( ) ;
297
- usvg:: Node :: new ( usvg :: NodeKind :: Image ( usvg:: Image {
297
+ usvg:: Node :: Image ( Box :: new ( usvg:: Image {
298
298
id : String :: new ( ) ,
299
- transform : to_transform ( image_frame. transform ) ,
299
+ abs_transform : to_transform ( image_frame. transform ) ,
300
300
visibility : usvg:: Visibility :: Visible ,
301
301
view_box : usvg:: ViewBox {
302
302
rect : usvg:: NonZeroRect :: from_xywh ( 0. , 0. , 1. , 1. ) . unwrap ( ) ,
303
303
aspect : usvg:: AspectRatio :: default ( ) ,
304
304
} ,
305
305
rendering_mode : usvg:: ImageRendering :: OptimizeSpeed ,
306
306
kind : usvg:: ImageKind :: PNG ( png. into ( ) ) ,
307
+ bounding_box : None ,
307
308
} ) )
308
309
}
309
- GraphicElement :: Text ( text) => usvg:: Node :: new ( usvg :: NodeKind :: Text ( usvg:: Text {
310
+ GraphicElement :: Text ( text) => usvg:: Node :: Text ( Box :: new ( usvg:: Text {
310
311
id : String :: new ( ) ,
311
- transform : usvg:: Transform :: identity ( ) ,
312
+ abs_transform : usvg:: Transform :: identity ( ) ,
312
313
rendering_mode : usvg:: TextRendering :: OptimizeSpeed ,
313
- positions : Vec :: new ( ) ,
314
- rotate : Vec :: new ( ) ,
315
314
writing_mode : usvg:: WritingMode :: LeftToRight ,
316
315
chunks : vec ! [ usvg:: TextChunk {
317
316
text: text. clone( ) ,
@@ -321,17 +320,25 @@ impl GraphicElement {
321
320
spans: vec![ ] ,
322
321
text_flow: usvg:: TextFlow :: Linear ,
323
322
} ] ,
323
+ dx : Vec :: new ( ) ,
324
+ dy : Vec :: new ( ) ,
325
+ rotate : Vec :: new ( ) ,
326
+ bounding_box : None ,
327
+ abs_bounding_box : None ,
328
+ stroke_bounding_box : None ,
329
+ abs_stroke_bounding_box : None ,
330
+ flattened : None ,
324
331
} ) ) ,
325
332
GraphicElement :: GraphicGroup ( group) => {
326
- let group_element = usvg:: Node :: new ( usvg :: NodeKind :: Group ( usvg :: Group :: default ( ) ) ) ;
333
+ let mut group_element = usvg:: Group :: default ( ) ;
327
334
328
335
for element in group. iter ( ) {
329
- group_element. append ( element. to_usvg_node ( ) ) ;
336
+ group_element. children . push ( element. to_usvg_node ( ) ) ;
330
337
}
331
- group_element
338
+ usvg :: Node :: Group ( Box :: new ( group_element) )
332
339
}
333
340
// TODO
334
- GraphicElement :: Artboard ( _board) => usvg:: Node :: new ( usvg :: NodeKind :: Group ( usvg:: Group :: default ( ) ) ) ,
341
+ GraphicElement :: Artboard ( _board) => usvg:: Node :: Group ( Box :: new ( usvg:: Group :: default ( ) ) ) ,
335
342
}
336
343
}
337
344
}
0 commit comments