From 35a96bde514a8897f6f0fcc41c5833bf63df2e2a Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 18:29:01 +0200 Subject: Adding upstream version 1.0.2. Signed-off-by: Daniel Baumann --- share/extensions/tests/data/refs/addnodes.out | 0 .../data/refs/addnodes__--id__p1__--id__r3.out | 41 + .../extensions/tests/data/refs/convert2dashes.out | 0 .../tests/data/refs/dhw_input__PAGE_001__DHW.out | 8 + .../tests/data/refs/dhw_input__PGLT_161__DHW.out | 8 + .../tests/data/refs/dhw_input__PGLT_162__DHW.out | 8 + .../tests/data/refs/dhw_input__PGLT_163__DHW.out | 8 + .../data/refs/dimension__--id__p1__--id__r3.out | 41 + ...mension__--id__p1__--id__r3__--type__visual.out | 41 + share/extensions/tests/data/refs/dm2svg.out | 27 + share/extensions/tests/data/refs/docinfo.out | 9 + share/extensions/tests/data/refs/dpiswitcher.out | 41 + .../data/refs/dpiswitcher__--id__p1__--id__r3.out | 41 + .../draw_from_triangle__--id__p1__--id__r3.out | 41 + .../tests/data/refs/dxf_input__test_r12__dxf.out | 2 + .../tests/data/refs/dxf_input__test_r14__dxf.out | 2 + share/extensions/tests/data/refs/dxf_outlines.out | 3412 ++++++++++++++++++++ .../tests/data/refs/dxf_outlines__--POLY__true.out | 2880 +++++++++++++++++ .../tests/data/refs/dxf_outlines__--ROBO__true.out | 3352 +++++++++++++++++++ .../data/refs/dxf_outlines__--id__p1__--id__r3.out | 3412 ++++++++++++++++++++ .../tests/data/refs/edge3d__--id__p1__--id__r3.out | 44 + share/extensions/tests/data/refs/embedimage.out | 16 + .../tests/data/refs/export_gimp_palette.out | 12 + .../export_gimp_palette__--id__p1__--id__r3.out | 6 + ...ctedonly__False__--filepath__TMP_DIR__img__.out | Bin 0 -> 128 bytes ...embeded_image01__--filepath__TMP_DIR__img__.out | Bin 0 -> 128 bytes .../data/refs/extrude__--id__p1__--id__p2.out | 41 + share/extensions/tests/data/refs/fig_input.out | 22 + share/extensions/tests/data/refs/flatten.out | 0 .../data/refs/flatten__--id__p1__--id__r3.out | 41 + ...dablebox__--proportion__0__5__--guide__true.out | 2 + ...x__--width__20__--height__20__--depth__2__2.out | 2 + .../data/refs/fractalize__--id__p1__--id__p2.out | 41 + .../data/refs/funcplot__--id__p1__--id__r3.out | 40 + ...codetools__06eec9617e749f35cb949d850415f68d.out | 45 + ...codetools__2bf3b298fa730dafb8c6fd51921078f0.out | 40 + ...codetools__4a9fb751baf0533eadd4d394957c966d.out | 0 .../refs/generate_voronoi__--id__r3__--id__p1.out | 41 + share/extensions/tests/data/refs/gimp_xcf.out | Bin 0 -> 70038 bytes .../data/refs/gimp_xcf__-d__true__-r__true.out | Bin 0 -> 126005 bytes .../extensions/tests/data/refs/grid_cartesian.out | 41 + .../refs/grid_cartesian__--id__p1__--id__r3.out | 41 + .../extensions/tests/data/refs/grid_isometric.out | 41 + share/extensions/tests/data/refs/grid_polar.out | 41 + .../data/refs/grid_polar__--id__p1__--id__r3.out | 41 + .../guides_creator__--tab__diagonal_guides.out | 40 + ...om_edges__True__--margins_preset__book_left.out | 40 + ...m_edges__True__--margins_preset__book_right.out | 40 + ..._from_edges__True__--margins_preset__custom.out | 40 + ...ides_preset__5__5__--start_from_edges__True.out | 40 + ...ab__regular_guides__--guides_preset__custom.out | 40 + ...es__--guides_preset__golden__--delete__True.out | 34 + ...--ignore__true__--directory__TMP_DIR__img__.out | Bin 0 -> 133120 bytes ...image__f____oo__--directory__TMP_DIR__img__.out | Bin 0 -> 71680 bytes .../data/refs/handles__--id__curve__--id__quad.out | 10 + share/extensions/tests/data/refs/hershey.out | 52 + .../tests/data/refs/hershey_encoding.out | 13 + .../tests/data/refs/hershey_fonttable.out | 13 + .../tests/data/refs/hershey_glyphtable.out | 13 + .../tests/data/refs/hershey_loadfont.out | 17 + .../tests/data/refs/hershey_partialselection.out | 22 + .../tests/data/refs/hershey_preservetext.out | 22 + share/extensions/tests/data/refs/hpgl_input.out | 2 + .../data/refs/hpgl_output__hpgl_multipen__svg.out | 1 + .../tests/data/refs/hpgl_output__shapes__svg.out | 1 + .../tests/data/refs/image_attributes.out | 18 + ...timizeSpeed__--tab____tab_image_rendering__.out | 18 + ...atio__xMinYMin__--tab____tab_aspect_ratio__.out | 18 + share/extensions/tests/data/refs/ink2canvas.out | 159 + .../tests/data/refs/inkex_extensions_color.out | 32 + .../inkex_extensions_color__--id__color_svg.out | 32 + .../data/refs/inkex_extensions_color__--id__r1.out | 32 + .../inkex_extensions_color__--id__r1__--id__r2.out | 32 + .../data/refs/inkex_extensions_color__--id__r2.out | 32 + .../data/refs/inkex_extensions_color__--id__r3.out | 32 + .../data/refs/inkex_extensions_color__--id__r4.out | 41 + .../tests/data/refs/inkscape_follow_link.out | 0 .../inkscape_follow_link__--id__p1__--id__r3.out | 0 .../interp__2e7c2144ef5878a5c0824e02c83dc243.out | 161 + .../interp__359f83409ebaa8716afca1081eb4987d.out | 161 + ..._--start-val____050505__--end-val____000000.out | 27 + ..._--start-val____181818__--end-val____000000.out | 27 + .../tests/data/refs/interp_att_g__--id__layer1.out | 41 + ...autotexts__--autoText__slideTitle__--id__t1.out | 41 + ...-id__p1__--effectIn__fade__--effectOut__pop.out | 41 + .../refs/jessyink_effects__--id__p1__--id__r3.out | 0 .../data/refs/jessyink_export__--resolution__1.out | Bin 0 -> 960 bytes .../tests/data/refs/jessyink_install.out | 2766 ++++++++++++++++ .../refs/jessyink_install__--id__p1__--id__r3.out | 2766 ++++++++++++++++ ...drawing_undo__ENTER__--index_nextPage__LEFT.out | 61 + ...__a__--drawing_undo__b__--index_nextPage__c.out | 61 + .../tests/data/refs/jessyink_master_slide.out | 0 .../jessyink_master_slide__--id__p1__--id__r3.out | 0 ...yink_mouse_handler__--mouseSetting__default.out | 0 ...mouse_handler__--mouseSetting__draggingZoom.out | 475 +++ ...yink_mouse_handler__--mouseSetting__noclick.out | 94 + .../tests/data/refs/jessyink_summary.out | 10 + .../jessyink_transitions__--layerName__Slide2.out | 0 .../tests/data/refs/jessyink_uninstall.out | 39 + .../extensions/tests/data/refs/jessyink_video.out | 61 + .../jessyink_view__--id__r3__--viewOrder__1.out | 41 + ...s__--id__p1__--dist__gaussian__--end__false.out | 41 + ...__--id__p1__--dist__lognorm__--radiusx__100.out | 41 + ...s__--id__p1__--dist__pareto__--radiusy__100.out | 41 + ...s__--id__p1__--dist__uniform__--ctrl__false.out | 41 + share/extensions/tests/data/refs/layer2png.out | 0 .../data/refs/layer2png__--id__p1__--id__r3.out | 0 .../extensions/tests/data/refs/layers2svgfont.out | 3 + share/extensions/tests/data/refs/lindenmayer.out | 41 + .../data/refs/lindenmayer__--id__p1__--id__r3.out | 41 + share/extensions/tests/data/refs/lorem_ipsum.out | 41 + ...kepaint__--tab____custom____--id__dimension.out | 26 + ...kepaint__--tab____object____--id__dimension.out | 26 + .../data/refs/measure__--id__p1__--id__p2.out | 41 + ..._presets__--presetFormat__FT_bbox__--id__p2.out | 41 + ...presets__--presetFormat__FT_start__--id__p1.out | 41 + ..._presets__--presetFormat__TaP_end__--id__p2.out | 41 + ...resets__--presetFormat__TaP_start__--id__p1.out | 41 + .../data/refs/measure__--type__area__--id__p1.out | 41 + .../data/refs/measure__--type__cofm__--id__c3.out | 41 + share/extensions/tests/data/refs/media_zip.out | Bin 0 -> 7263 bytes .../data/refs/merge_styles__--id__c2__--id__c3.out | 46 + .../tests/data/refs/motion__--id__c3__--id__p2.out | 41 + .../extensions/tests/data/refs/new_glyph_layer.out | 0 .../refs/new_glyph_layer__--id__p1__--id__r3.out | 0 .../tests/data/refs/next_glyph_layer.out | 0 .../refs/next_glyph_layer__--id__p1__--id__r3.out | 0 share/extensions/tests/data/refs/nicechart.out | 41 + ...art__--file__DAT_DIR__io__nicechart_01__csv.out | 13 + ...DAT_DIR__io__nicechart_01__csv__--type__pie.out | 13 + ...DIR__io__nicechart_01__csv__--type__pie_abs.out | 13 + ...T_DIR__io__nicechart_01__csv__--type__stbar.out | 13 + .../data/refs/nicechart__--id__p1__--id__r3.out | 41 + share/extensions/tests/data/refs/output_scour.out | 40 + share/extensions/tests/data/refs/param_curves.out | 0 .../data/refs/param_curves__--id__p1__--id__r3.out | 40 + .../path_envelope__--id__obj__--id__envelope.out | 20 + .../path_envelope__--id__text__--id__envelope.out | 6 + .../path_mesh_m2p__--id__mesh1__--mode__faces.out | 78 + ...th_mesh_m2p__--id__mesh1__--mode__gridlines.out | 78 + ..._mesh_m2p__--id__mesh1__--mode__meshpatches.out | 78 + ...path_mesh_m2p__--id__mesh1__--mode__outline.out | 78 + .../path_mesh_p2m__--id__path1__--id__path9.out | 78 + .../refs/path_number_nodes__--id__p1__--id__r3.out | 40 + ...h_to_absolute__--id__c1__--id__c2__--id__c3.out | 41 + ...ute__--id__p1__--id__p2__--id__s1__--id__u1.out | 41 + ...id__r1__--id__r2__--id__r3__--id__slicerect.out | 41 + ...d__r1__--id__r2__--id__r3__--id__slicerect1.out | 36 + ...ath__--copymode__Single__--id__p1__--id__p2.out | 41 + .../data/refs/pathscatter__--id__p1__--id__r3.out | 41 + .../pdflatex__cceb2358b6829feda6d763508a98eaf1.out | 120 + .../tests/data/refs/perfectboundcover.out | 41 + .../perspective__--id__obj__--id__envelope.out | 20 + .../data/refs/perspective__--id__p1__--id__p2.out | 41 + .../perspective__--id__text__--id__envelope.out | 6 + .../data/refs/pixelsnap__--id__p1__--id__r3.out | 41 + .../data/refs/plotter__--serialPort____test__.out | 35 + ...rialPort____test____--commandLanguage__DMPL.out | 2 + ...erialPort____test____--commandLanguage__KNK.out | 34 + share/extensions/tests/data/refs/plt_output.out | 1 + ...obj__oct__--r1_ax__z__--r1_ang__45__--th__4.out | 2 + ...__x__--r1_ang__45__--r2_ax__y__--r2_ang__45.out | 2 + ...e__--r1_ax__y__--r1_ang__45__--z_sort__cent.out | 2 + ...be__--r1_ax__z__--r1_ang__45__--z_sort__max.out | 2 + .../polyhedron_3d__--show__vtx__--obj__methane.out | 2 + ...hedron_3d__31c852a9dcfffc92123ff370cba34361.out | 41 + .../tests/data/refs/prepare_file_save_as.out | 115 + .../tests/data/refs/previous_glyph_layer.out | 0 .../previous_glyph_layer__--id__p1__--id__r3.out | 0 .../tests/data/refs/print_win32_vector.out | 0 .../print_win32_vector__--id__p1__--id__r3.out | 0 .../extensions/tests/data/refs/printing_marks.out | 41 + .../refs/printing_marks__--id__p1__--id__r3.out | 41 + .../tests/data/refs/ps_input__test__eps.out | 81 + .../tests/data/refs/ps_input__test__ps.out | Bin 0 -> 2547 bytes ...er_barcode__--type__Code93__--text__3332222.out | 41 + .../render_barcode__--type__Ean2__--text__55.out | 41 + ...ender_barcode__--type__Upce__--text__123456.out | 41 + ...matrix__--symbol__rect8x32__--text__1234Foo.out | 2 + .../render_barcode_datamatrix__--symbol__sq10.out | 2 + ...amatrix__--symbol__sq144__--text__HelloTest.out | 2 + ...atamatrix__--symbol__sq96__--text__Sunshine.out | 2 + ...qrcode__--text__0123456789__--typenumber__0.out | 2 + ...Yard__--typenumber__3__--correctionlevel__1.out | 2 + ...eadRolls__--typenumber__2__--encoding__utf8.out | 2 + ...level__2__--symbolid__AirTransportation_Inv.out | 12 + ...erfall__--typenumber__1__--drawtype__circle.out | 2 + ..._qrcode__--text__groupid__--groupid__testid.out | 2 + .../tests/data/refs/render_gear_rack.out | 41 + .../refs/render_gear_rack__--id__p1__--id__r3.out | 41 + share/extensions/tests/data/refs/render_gears.out | 41 + .../data/refs/render_gears__--id__p1__--id__r3.out | 41 + ...r_find__sans-serif__--fr_replace__monospace.out | 41 + .../refs/replace_font__--action__list_only.out | 1 + ...tack__--tab__positional__--id__p1__--id__r3.out | 41 + ...restack__--tab__z_order__--id__p1__--id__r3.out | 41 + share/extensions/tests/data/refs/rtree.out | 41 + .../refs/rubberstretch__--id__p1__--id__r3.out | 41 + .../tests/data/refs/scribus_export_pdf.out | Bin 0 -> 14059 bytes .../tests/data/refs/setup_typography_canvas.out | 41 + ...setup_typography_canvas__--id__p1__--id__r3.out | 41 + share/extensions/tests/data/refs/sk1_output.out | 126 + share/extensions/tests/data/refs/spirograph.out | 41 + .../data/refs/spirograph__--id__p1__--id__r3.out | 41 + share/extensions/tests/data/refs/straightseg.out | 0 .../data/refs/straightseg__--id__p1__--id__r3.out | 41 + share/extensions/tests/data/refs/svgcalendar.out | 41 + .../tests/data/refs/svgfont2layers__--count__3.out | 20 + share/extensions/tests/data/refs/tar_layers.out | Bin 0 -> 13312 bytes .../data/refs/tar_layers__--id__p1__--id__r3.out | Bin 0 -> 13312 bytes ...50__--grid__true__--orientation__horizontal.out | 2 + ...0x50__--grid__true__--orientation__vertical.out | 2 + ...15mm__--background__black__--noborder__true.out | 2 + ...om__--width__100__--height__100__--unit__in.out | 2 + .../refs/template_dvd_cover__-s__10__-b__10.out | 2 + ...amless_pattern__--width__100__--height__100.out | 99 + .../extensions/tests/data/refs/test_color_list.out | 9 + .../data/refs/test_color_list__--id__color_svg.out | 9 + .../tests/data/refs/test_color_list__--id__r1.out | 3 + .../refs/test_color_list__--id__r1__--id__r2.out | 9 + .../tests/data/refs/test_color_list__--id__r2.out | 6 + .../tests/data/refs/test_color_list__--id__r3.out | 8 + .../tests/data/refs/test_color_list__--id__r4.out | 9 + share/extensions/tests/data/refs/text_braille.out | 41 + .../data/refs/text_extract__--direction__bt.out | 8 + .../data/refs/text_extract__--direction__lr.out | 8 + .../data/refs/text_extract__--direction__rl.out | 8 + .../data/refs/text_extract__--direction__tb.out | 8 + share/extensions/tests/data/refs/text_flipcase.out | 41 + .../extensions/tests/data/refs/text_lowercase.out | 41 + share/extensions/tests/data/refs/text_merge.out | 41 + .../extensions/tests/data/refs/text_randomcase.out | 41 + .../tests/data/refs/text_sentencecase.out | 41 + .../data/refs/text_split__--id__t1__--id__t3.out | 41 + .../extensions/tests/data/refs/text_titlecase.out | 41 + .../extensions/tests/data/refs/text_uppercase.out | 41 + share/extensions/tests/data/refs/triangle.out | 41 + .../data/refs/triangle__--id__p1__--id__r3.out | 41 + share/extensions/tests/data/refs/ungroup_deep.out | 33 + .../tests/data/refs/ungroup_deep__--id__layer2.out | 39 + .../data/refs/voronoi2svg__--id__p1__--id__r3.out | 41 + .../web_interactive_mockup__--id__p1__--id__r3.out | 259 ++ .../data/refs/web_set_att__--id__p1__--id__r3.out | 259 ++ .../refs/web_transmit_att__--id__p1__--id__r3.out | 259 ++ .../webslicer_create_group__--id__slicerect1.out | 41 + .../tests/data/refs/webslicer_create_rect.out | 41 + .../webslicer_create_rect__--id__p1__--id__r3.out | 41 + .../data/refs/webslicer_export__--dir__TMP_DIR.out | 0 .../tests/data/refs/whirl__--id__p1__--id__r3.out | 41 + .../tests/data/refs/wireframe_sphere.out | 41 + .../refs/wireframe_sphere__--id__p1__--id__r3.out | 41 + share/extensions/tests/data/refs/wmf_output.out | Bin 0 -> 4698 bytes 252 files changed, 26724 insertions(+) create mode 100644 share/extensions/tests/data/refs/addnodes.out create mode 100644 share/extensions/tests/data/refs/addnodes__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/convert2dashes.out create mode 100644 share/extensions/tests/data/refs/dhw_input__PAGE_001__DHW.out create mode 100644 share/extensions/tests/data/refs/dhw_input__PGLT_161__DHW.out create mode 100644 share/extensions/tests/data/refs/dhw_input__PGLT_162__DHW.out create mode 100644 share/extensions/tests/data/refs/dhw_input__PGLT_163__DHW.out create mode 100644 share/extensions/tests/data/refs/dimension__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/dimension__--id__p1__--id__r3__--type__visual.out create mode 100644 share/extensions/tests/data/refs/dm2svg.out create mode 100644 share/extensions/tests/data/refs/docinfo.out create mode 100644 share/extensions/tests/data/refs/dpiswitcher.out create mode 100644 share/extensions/tests/data/refs/dpiswitcher__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/draw_from_triangle__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/dxf_input__test_r12__dxf.out create mode 100644 share/extensions/tests/data/refs/dxf_input__test_r14__dxf.out create mode 100644 share/extensions/tests/data/refs/dxf_outlines.out create mode 100644 share/extensions/tests/data/refs/dxf_outlines__--POLY__true.out create mode 100644 share/extensions/tests/data/refs/dxf_outlines__--ROBO__true.out create mode 100644 share/extensions/tests/data/refs/dxf_outlines__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/edge3d__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/embedimage.out create mode 100644 share/extensions/tests/data/refs/export_gimp_palette.out create mode 100644 share/extensions/tests/data/refs/export_gimp_palette__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/extractimage__--selectedonly__False__--filepath__TMP_DIR__img__.out create mode 100644 share/extensions/tests/data/refs/extractimage__--selectedonly__True__--id__embeded_image01__--filepath__TMP_DIR__img__.out create mode 100644 share/extensions/tests/data/refs/extrude__--id__p1__--id__p2.out create mode 100644 share/extensions/tests/data/refs/fig_input.out create mode 100644 share/extensions/tests/data/refs/flatten.out create mode 100644 share/extensions/tests/data/refs/flatten__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/foldablebox__--proportion__0__5__--guide__true.out create mode 100644 share/extensions/tests/data/refs/foldablebox__--width__20__--height__20__--depth__2__2.out create mode 100644 share/extensions/tests/data/refs/fractalize__--id__p1__--id__p2.out create mode 100644 share/extensions/tests/data/refs/funcplot__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/gcodetools__06eec9617e749f35cb949d850415f68d.out create mode 100644 share/extensions/tests/data/refs/gcodetools__2bf3b298fa730dafb8c6fd51921078f0.out create mode 100644 share/extensions/tests/data/refs/gcodetools__4a9fb751baf0533eadd4d394957c966d.out create mode 100644 share/extensions/tests/data/refs/generate_voronoi__--id__r3__--id__p1.out create mode 100644 share/extensions/tests/data/refs/gimp_xcf.out create mode 100644 share/extensions/tests/data/refs/gimp_xcf__-d__true__-r__true.out create mode 100644 share/extensions/tests/data/refs/grid_cartesian.out create mode 100644 share/extensions/tests/data/refs/grid_cartesian__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/grid_isometric.out create mode 100644 share/extensions/tests/data/refs/grid_polar.out create mode 100644 share/extensions/tests/data/refs/grid_polar__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/guides_creator__--tab__diagonal_guides.out create mode 100644 share/extensions/tests/data/refs/guides_creator__--tab__margins__--start_from_edges__True__--margins_preset__book_left.out create mode 100644 share/extensions/tests/data/refs/guides_creator__--tab__margins__--start_from_edges__True__--margins_preset__book_right.out create mode 100644 share/extensions/tests/data/refs/guides_creator__--tab__margins__--start_from_edges__True__--margins_preset__custom.out create mode 100644 share/extensions/tests/data/refs/guides_creator__--tab__regular_guides__--guides_preset__5__5__--start_from_edges__True.out create mode 100644 share/extensions/tests/data/refs/guides_creator__--tab__regular_guides__--guides_preset__custom.out create mode 100644 share/extensions/tests/data/refs/guides_creator__--tab__regular_guides__--guides_preset__golden__--delete__True.out create mode 100644 share/extensions/tests/data/refs/guillotine__--ignore__true__--directory__TMP_DIR__img__.out create mode 100644 share/extensions/tests/data/refs/guillotine__--image__f____oo__--directory__TMP_DIR__img__.out create mode 100644 share/extensions/tests/data/refs/handles__--id__curve__--id__quad.out create mode 100755 share/extensions/tests/data/refs/hershey.out create mode 100755 share/extensions/tests/data/refs/hershey_encoding.out create mode 100755 share/extensions/tests/data/refs/hershey_fonttable.out create mode 100755 share/extensions/tests/data/refs/hershey_glyphtable.out create mode 100755 share/extensions/tests/data/refs/hershey_loadfont.out create mode 100755 share/extensions/tests/data/refs/hershey_partialselection.out create mode 100755 share/extensions/tests/data/refs/hershey_preservetext.out create mode 100644 share/extensions/tests/data/refs/hpgl_input.out create mode 100644 share/extensions/tests/data/refs/hpgl_output__hpgl_multipen__svg.out create mode 100644 share/extensions/tests/data/refs/hpgl_output__shapes__svg.out create mode 100644 share/extensions/tests/data/refs/image_attributes.out create mode 100644 share/extensions/tests/data/refs/image_attributes__--id__embeded_image01__--image_rendering__optimizeSpeed__--tab____tab_image_rendering__.out create mode 100644 share/extensions/tests/data/refs/image_attributes__--id__image174__--aspect_ratio__xMinYMin__--tab____tab_aspect_ratio__.out create mode 100644 share/extensions/tests/data/refs/ink2canvas.out create mode 100644 share/extensions/tests/data/refs/inkex_extensions_color.out create mode 100644 share/extensions/tests/data/refs/inkex_extensions_color__--id__color_svg.out create mode 100644 share/extensions/tests/data/refs/inkex_extensions_color__--id__r1.out create mode 100644 share/extensions/tests/data/refs/inkex_extensions_color__--id__r1__--id__r2.out create mode 100644 share/extensions/tests/data/refs/inkex_extensions_color__--id__r2.out create mode 100644 share/extensions/tests/data/refs/inkex_extensions_color__--id__r3.out create mode 100644 share/extensions/tests/data/refs/inkex_extensions_color__--id__r4.out create mode 100644 share/extensions/tests/data/refs/inkscape_follow_link.out create mode 100644 share/extensions/tests/data/refs/inkscape_follow_link__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/interp__2e7c2144ef5878a5c0824e02c83dc243.out create mode 100644 share/extensions/tests/data/refs/interp__359f83409ebaa8716afca1081eb4987d.out create mode 100644 share/extensions/tests/data/refs/interp_att_g__--id__g53__--att__fill__--start-val____050505__--end-val____000000.out create mode 100644 share/extensions/tests/data/refs/interp_att_g__--id__g53__--att__fill__--start-val____181818__--end-val____000000.out create mode 100644 share/extensions/tests/data/refs/interp_att_g__--id__layer1.out create mode 100644 share/extensions/tests/data/refs/jessyink_autotexts__--autoText__slideTitle__--id__t1.out create mode 100644 share/extensions/tests/data/refs/jessyink_effects__--id__p1__--effectIn__fade__--effectOut__pop.out create mode 100644 share/extensions/tests/data/refs/jessyink_effects__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/jessyink_export__--resolution__1.out create mode 100644 share/extensions/tests/data/refs/jessyink_install.out create mode 100644 share/extensions/tests/data/refs/jessyink_install__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/jessyink_key_bindings__--slide_export__SPACE__--drawing_undo__ENTER__--index_nextPage__LEFT.out create mode 100644 share/extensions/tests/data/refs/jessyink_key_bindings__--slide_export__a__--drawing_undo__b__--index_nextPage__c.out create mode 100644 share/extensions/tests/data/refs/jessyink_master_slide.out create mode 100644 share/extensions/tests/data/refs/jessyink_master_slide__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/jessyink_mouse_handler__--mouseSetting__default.out create mode 100644 share/extensions/tests/data/refs/jessyink_mouse_handler__--mouseSetting__draggingZoom.out create mode 100644 share/extensions/tests/data/refs/jessyink_mouse_handler__--mouseSetting__noclick.out create mode 100644 share/extensions/tests/data/refs/jessyink_summary.out create mode 100644 share/extensions/tests/data/refs/jessyink_transitions__--layerName__Slide2.out create mode 100644 share/extensions/tests/data/refs/jessyink_uninstall.out create mode 100644 share/extensions/tests/data/refs/jessyink_video.out create mode 100644 share/extensions/tests/data/refs/jessyink_view__--id__r3__--viewOrder__1.out create mode 100644 share/extensions/tests/data/refs/jitternodes__--id__p1__--dist__gaussian__--end__false.out create mode 100644 share/extensions/tests/data/refs/jitternodes__--id__p1__--dist__lognorm__--radiusx__100.out create mode 100644 share/extensions/tests/data/refs/jitternodes__--id__p1__--dist__pareto__--radiusy__100.out create mode 100644 share/extensions/tests/data/refs/jitternodes__--id__p1__--dist__uniform__--ctrl__false.out create mode 100644 share/extensions/tests/data/refs/layer2png.out create mode 100644 share/extensions/tests/data/refs/layer2png__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/layers2svgfont.out create mode 100644 share/extensions/tests/data/refs/lindenmayer.out create mode 100644 share/extensions/tests/data/refs/lindenmayer__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/lorem_ipsum.out create mode 100644 share/extensions/tests/data/refs/markers_strokepaint__--tab____custom____--id__dimension.out create mode 100644 share/extensions/tests/data/refs/markers_strokepaint__--tab____object____--id__dimension.out create mode 100644 share/extensions/tests/data/refs/measure__--id__p1__--id__p2.out create mode 100644 share/extensions/tests/data/refs/measure__--method__presets__--presetFormat__FT_bbox__--id__p2.out create mode 100644 share/extensions/tests/data/refs/measure__--method__presets__--presetFormat__FT_start__--id__p1.out create mode 100644 share/extensions/tests/data/refs/measure__--method__presets__--presetFormat__TaP_end__--id__p2.out create mode 100644 share/extensions/tests/data/refs/measure__--method__presets__--presetFormat__TaP_start__--id__p1.out create mode 100644 share/extensions/tests/data/refs/measure__--type__area__--id__p1.out create mode 100644 share/extensions/tests/data/refs/measure__--type__cofm__--id__c3.out create mode 100644 share/extensions/tests/data/refs/media_zip.out create mode 100644 share/extensions/tests/data/refs/merge_styles__--id__c2__--id__c3.out create mode 100644 share/extensions/tests/data/refs/motion__--id__c3__--id__p2.out create mode 100644 share/extensions/tests/data/refs/new_glyph_layer.out create mode 100644 share/extensions/tests/data/refs/new_glyph_layer__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/next_glyph_layer.out create mode 100644 share/extensions/tests/data/refs/next_glyph_layer__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/nicechart.out create mode 100644 share/extensions/tests/data/refs/nicechart__--file__DAT_DIR__io__nicechart_01__csv.out create mode 100644 share/extensions/tests/data/refs/nicechart__--file__DAT_DIR__io__nicechart_01__csv__--type__pie.out create mode 100644 share/extensions/tests/data/refs/nicechart__--file__DAT_DIR__io__nicechart_01__csv__--type__pie_abs.out create mode 100644 share/extensions/tests/data/refs/nicechart__--file__DAT_DIR__io__nicechart_01__csv__--type__stbar.out create mode 100644 share/extensions/tests/data/refs/nicechart__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/output_scour.out create mode 100644 share/extensions/tests/data/refs/param_curves.out create mode 100644 share/extensions/tests/data/refs/param_curves__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/path_envelope__--id__obj__--id__envelope.out create mode 100644 share/extensions/tests/data/refs/path_envelope__--id__text__--id__envelope.out create mode 100644 share/extensions/tests/data/refs/path_mesh_m2p__--id__mesh1__--mode__faces.out create mode 100644 share/extensions/tests/data/refs/path_mesh_m2p__--id__mesh1__--mode__gridlines.out create mode 100644 share/extensions/tests/data/refs/path_mesh_m2p__--id__mesh1__--mode__meshpatches.out create mode 100644 share/extensions/tests/data/refs/path_mesh_m2p__--id__mesh1__--mode__outline.out create mode 100644 share/extensions/tests/data/refs/path_mesh_p2m__--id__path1__--id__path9.out create mode 100644 share/extensions/tests/data/refs/path_number_nodes__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/path_to_absolute__--id__c1__--id__c2__--id__c3.out create mode 100644 share/extensions/tests/data/refs/path_to_absolute__--id__p1__--id__p2__--id__s1__--id__u1.out create mode 100644 share/extensions/tests/data/refs/path_to_absolute__--id__r1__--id__r2__--id__r3__--id__slicerect.out create mode 100644 share/extensions/tests/data/refs/path_to_absolute__--id__r1__--id__r2__--id__r3__--id__slicerect1.out create mode 100644 share/extensions/tests/data/refs/pathalongpath__--copymode__Single__--id__p1__--id__p2.out create mode 100644 share/extensions/tests/data/refs/pathscatter__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/pdflatex__cceb2358b6829feda6d763508a98eaf1.out create mode 100644 share/extensions/tests/data/refs/perfectboundcover.out create mode 100644 share/extensions/tests/data/refs/perspective__--id__obj__--id__envelope.out create mode 100644 share/extensions/tests/data/refs/perspective__--id__p1__--id__p2.out create mode 100644 share/extensions/tests/data/refs/perspective__--id__text__--id__envelope.out create mode 100644 share/extensions/tests/data/refs/pixelsnap__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/plotter__--serialPort____test__.out create mode 100644 share/extensions/tests/data/refs/plotter__--serialPort____test____--commandLanguage__DMPL.out create mode 100644 share/extensions/tests/data/refs/plotter__--serialPort____test____--commandLanguage__KNK.out create mode 100644 share/extensions/tests/data/refs/plt_output.out create mode 100644 share/extensions/tests/data/refs/polyhedron_3d__--show__edg__--obj__oct__--r1_ax__z__--r1_ang__45__--th__4.out create mode 100644 share/extensions/tests/data/refs/polyhedron_3d__--show__fce__--obj__cube__--r1_ax__x__--r1_ang__45__--r2_ax__y__--r2_ang__45.out create mode 100644 share/extensions/tests/data/refs/polyhedron_3d__--show__fce__--obj__cube__--r1_ax__y__--r1_ang__45__--z_sort__cent.out create mode 100644 share/extensions/tests/data/refs/polyhedron_3d__--show__fce__--obj__cube__--r1_ax__z__--r1_ang__45__--z_sort__max.out create mode 100644 share/extensions/tests/data/refs/polyhedron_3d__--show__vtx__--obj__methane.out create mode 100644 share/extensions/tests/data/refs/polyhedron_3d__31c852a9dcfffc92123ff370cba34361.out create mode 100644 share/extensions/tests/data/refs/prepare_file_save_as.out create mode 100644 share/extensions/tests/data/refs/previous_glyph_layer.out create mode 100644 share/extensions/tests/data/refs/previous_glyph_layer__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/print_win32_vector.out create mode 100644 share/extensions/tests/data/refs/print_win32_vector__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/printing_marks.out create mode 100644 share/extensions/tests/data/refs/printing_marks__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/ps_input__test__eps.out create mode 100644 share/extensions/tests/data/refs/ps_input__test__ps.out create mode 100644 share/extensions/tests/data/refs/render_barcode__--type__Code93__--text__3332222.out create mode 100644 share/extensions/tests/data/refs/render_barcode__--type__Ean2__--text__55.out create mode 100644 share/extensions/tests/data/refs/render_barcode__--type__Upce__--text__123456.out create mode 100644 share/extensions/tests/data/refs/render_barcode_datamatrix__--symbol__rect8x32__--text__1234Foo.out create mode 100644 share/extensions/tests/data/refs/render_barcode_datamatrix__--symbol__sq10.out create mode 100644 share/extensions/tests/data/refs/render_barcode_datamatrix__--symbol__sq144__--text__HelloTest.out create mode 100644 share/extensions/tests/data/refs/render_barcode_datamatrix__--symbol__sq96__--text__Sunshine.out create mode 100644 share/extensions/tests/data/refs/render_barcode_qrcode__--text__0123456789__--typenumber__0.out create mode 100644 share/extensions/tests/data/refs/render_barcode_qrcode__--text__Blue__Front__Yard__--typenumber__3__--correctionlevel__1.out create mode 100644 share/extensions/tests/data/refs/render_barcode_qrcode__--text__BreadRolls__--typenumber__2__--encoding__utf8.out create mode 100644 share/extensions/tests/data/refs/render_barcode_qrcode__--text__ThingOne__--drawtype__symbol__--correctionlevel__2__--symbolid__AirTransportation_Inv.out create mode 100644 share/extensions/tests/data/refs/render_barcode_qrcode__--text__Waterfall__--typenumber__1__--drawtype__circle.out create mode 100644 share/extensions/tests/data/refs/render_barcode_qrcode__--text__groupid__--groupid__testid.out create mode 100644 share/extensions/tests/data/refs/render_gear_rack.out create mode 100644 share/extensions/tests/data/refs/render_gear_rack__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/render_gears.out create mode 100644 share/extensions/tests/data/refs/render_gears__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/replace_font__--action__find_replace__--fr_find__sans-serif__--fr_replace__monospace.out create mode 100644 share/extensions/tests/data/refs/replace_font__--action__list_only.out create mode 100644 share/extensions/tests/data/refs/restack__--tab__positional__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/restack__--tab__z_order__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/rtree.out create mode 100644 share/extensions/tests/data/refs/rubberstretch__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/scribus_export_pdf.out create mode 100644 share/extensions/tests/data/refs/setup_typography_canvas.out create mode 100644 share/extensions/tests/data/refs/setup_typography_canvas__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/sk1_output.out create mode 100644 share/extensions/tests/data/refs/spirograph.out create mode 100644 share/extensions/tests/data/refs/spirograph__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/straightseg.out create mode 100644 share/extensions/tests/data/refs/straightseg__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/svgcalendar.out create mode 100644 share/extensions/tests/data/refs/svgfont2layers__--count__3.out create mode 100644 share/extensions/tests/data/refs/tar_layers.out create mode 100644 share/extensions/tests/data/refs/tar_layers__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/template__--size__100x50__--grid__true__--orientation__horizontal.out create mode 100644 share/extensions/tests/data/refs/template__--size__100x50__--grid__true__--orientation__vertical.out create mode 100644 share/extensions/tests/data/refs/template__--size__5mmx15mm__--background__black__--noborder__true.out create mode 100644 share/extensions/tests/data/refs/template__--size__custom__--width__100__--height__100__--unit__in.out create mode 100644 share/extensions/tests/data/refs/template_dvd_cover__-s__10__-b__10.out create mode 100644 share/extensions/tests/data/refs/template_seamless_pattern__--width__100__--height__100.out create mode 100644 share/extensions/tests/data/refs/test_color_list.out create mode 100644 share/extensions/tests/data/refs/test_color_list__--id__color_svg.out create mode 100644 share/extensions/tests/data/refs/test_color_list__--id__r1.out create mode 100644 share/extensions/tests/data/refs/test_color_list__--id__r1__--id__r2.out create mode 100644 share/extensions/tests/data/refs/test_color_list__--id__r2.out create mode 100644 share/extensions/tests/data/refs/test_color_list__--id__r3.out create mode 100644 share/extensions/tests/data/refs/test_color_list__--id__r4.out create mode 100644 share/extensions/tests/data/refs/text_braille.out create mode 100644 share/extensions/tests/data/refs/text_extract__--direction__bt.out create mode 100644 share/extensions/tests/data/refs/text_extract__--direction__lr.out create mode 100644 share/extensions/tests/data/refs/text_extract__--direction__rl.out create mode 100644 share/extensions/tests/data/refs/text_extract__--direction__tb.out create mode 100644 share/extensions/tests/data/refs/text_flipcase.out create mode 100644 share/extensions/tests/data/refs/text_lowercase.out create mode 100644 share/extensions/tests/data/refs/text_merge.out create mode 100644 share/extensions/tests/data/refs/text_randomcase.out create mode 100644 share/extensions/tests/data/refs/text_sentencecase.out create mode 100644 share/extensions/tests/data/refs/text_split__--id__t1__--id__t3.out create mode 100644 share/extensions/tests/data/refs/text_titlecase.out create mode 100644 share/extensions/tests/data/refs/text_uppercase.out create mode 100644 share/extensions/tests/data/refs/triangle.out create mode 100644 share/extensions/tests/data/refs/triangle__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/ungroup_deep.out create mode 100644 share/extensions/tests/data/refs/ungroup_deep__--id__layer2.out create mode 100644 share/extensions/tests/data/refs/voronoi2svg__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/web_interactive_mockup__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/web_set_att__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/web_transmit_att__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/webslicer_create_group__--id__slicerect1.out create mode 100644 share/extensions/tests/data/refs/webslicer_create_rect.out create mode 100644 share/extensions/tests/data/refs/webslicer_create_rect__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/webslicer_export__--dir__TMP_DIR.out create mode 100644 share/extensions/tests/data/refs/whirl__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/wireframe_sphere.out create mode 100644 share/extensions/tests/data/refs/wireframe_sphere__--id__p1__--id__r3.out create mode 100644 share/extensions/tests/data/refs/wmf_output.out (limited to 'share/extensions/tests/data/refs') diff --git a/share/extensions/tests/data/refs/addnodes.out b/share/extensions/tests/data/refs/addnodes.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/addnodes__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/addnodes__--id__p1__--id__r3.out new file mode 100644 index 0000000..5ea4d95 --- /dev/null +++ b/share/extensions/tests/data/refs/addnodes__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/convert2dashes.out b/share/extensions/tests/data/refs/convert2dashes.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/dhw_input__PAGE_001__DHW.out b/share/extensions/tests/data/refs/dhw_input__PAGE_001__DHW.out new file mode 100644 index 0000000..f6ae72b --- /dev/null +++ b/share/extensions/tests/data/refs/dhw_input__PAGE_001__DHW.out @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/dhw_input__PGLT_161__DHW.out b/share/extensions/tests/data/refs/dhw_input__PGLT_161__DHW.out new file mode 100644 index 0000000..7e90ed5 --- /dev/null +++ b/share/extensions/tests/data/refs/dhw_input__PGLT_161__DHW.out @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/dhw_input__PGLT_162__DHW.out b/share/extensions/tests/data/refs/dhw_input__PGLT_162__DHW.out new file mode 100644 index 0000000..3c0a2e7 --- /dev/null +++ b/share/extensions/tests/data/refs/dhw_input__PGLT_162__DHW.out @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/dhw_input__PGLT_163__DHW.out b/share/extensions/tests/data/refs/dhw_input__PGLT_163__DHW.out new file mode 100644 index 0000000..d02a0b6 --- /dev/null +++ b/share/extensions/tests/data/refs/dhw_input__PGLT_163__DHW.out @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/dimension__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/dimension__--id__p1__--id__r3.out new file mode 100644 index 0000000..039bb62 --- /dev/null +++ b/share/extensions/tests/data/refs/dimension__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/dimension__--id__p1__--id__r3__--type__visual.out b/share/extensions/tests/data/refs/dimension__--id__p1__--id__r3__--type__visual.out new file mode 100644 index 0000000..bc9a26d --- /dev/null +++ b/share/extensions/tests/data/refs/dimension__--id__p1__--id__r3__--type__visual.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/dm2svg.out b/share/extensions/tests/data/refs/dm2svg.out new file mode 100644 index 0000000..643324f --- /dev/null +++ b/share/extensions/tests/data/refs/dm2svg.out @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + diff --git a/share/extensions/tests/data/refs/docinfo.out b/share/extensions/tests/data/refs/docinfo.out new file mode 100644 index 0000000..a09b4f0 --- /dev/null +++ b/share/extensions/tests/data/refs/docinfo.out @@ -0,0 +1,9 @@ +:::SVG document related info::: +version: 0.0 +width: 1000.0 +height: 1000.0 +viewbox: [0.0, 0.0, 1000.0, 1000.0] +document-units: None +units: None +Document has 6 guides +Grid number 1: Units: None diff --git a/share/extensions/tests/data/refs/dpiswitcher.out b/share/extensions/tests/data/refs/dpiswitcher.out new file mode 100644 index 0000000..0b9cd97 --- /dev/null +++ b/share/extensions/tests/data/refs/dpiswitcher.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + diff --git a/share/extensions/tests/data/refs/dpiswitcher__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/dpiswitcher__--id__p1__--id__r3.out new file mode 100644 index 0000000..0b9cd97 --- /dev/null +++ b/share/extensions/tests/data/refs/dpiswitcher__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + diff --git a/share/extensions/tests/data/refs/draw_from_triangle__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/draw_from_triangle__--id__p1__--id__r3.out new file mode 100644 index 0000000..61c34b2 --- /dev/null +++ b/share/extensions/tests/data/refs/draw_from_triangle__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + diff --git a/share/extensions/tests/data/refs/dxf_input__test_r12__dxf.out b/share/extensions/tests/data/refs/dxf_input__test_r12__dxf.out new file mode 100644 index 0000000..1c87d26 --- /dev/null +++ b/share/extensions/tests/data/refs/dxf_input__test_r12__dxf.out @@ -0,0 +1,2 @@ + + test_r12.dxf - scale = 1.000000, origin = (0.000000, 0.000000), method = manual \ No newline at end of file diff --git a/share/extensions/tests/data/refs/dxf_input__test_r14__dxf.out b/share/extensions/tests/data/refs/dxf_input__test_r14__dxf.out new file mode 100644 index 0000000..45d20d0 --- /dev/null +++ b/share/extensions/tests/data/refs/dxf_input__test_r14__dxf.out @@ -0,0 +1,2 @@ + + test_r14.dxf - scale = 1.000000, origin = (0.000000, 0.000000), method = manual \ No newline at end of file diff --git a/share/extensions/tests/data/refs/dxf_outlines.out b/share/extensions/tests/data/refs/dxf_outlines.out new file mode 100644 index 0000000..148cf1b --- /dev/null +++ b/share/extensions/tests/data/refs/dxf_outlines.out @@ -0,0 +1,3412 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1014 + 9 +$HANDSEED + 5 +FFFF + 9 +$MEASUREMENT + 70 + 1 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 5 +8 +330 +0 +100 +AcDbSymbolTable + 70 + 4 + 0 +VPORT + 5 +2E +330 +8 +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord + 2 +*ACTIVE + 70 + 0 + 10 +0.0 + 20 +0.0 + 11 +1.0 + 21 +1.0 + 12 +210.0 + 22 +148.5 + 13 +0.0 + 23 +0.0 + 14 +10.0 + 24 +10.0 + 15 +10.0 + 25 +10.0 + 16 +0.0 + 26 +0.0 + 36 +1.0 + 17 +0.0 + 27 +0.0 + 37 +0.0 + 40 +341.0 + 41 +1.24 + 42 +50.0 + 43 +0.0 + 44 +0.0 + 50 +0.0 + 51 +0.0 + 71 + 0 + 72 + 100 + 73 + 1 + 74 + 3 + 75 + 0 + 76 + 0 + 77 + 0 + 78 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 5 +5 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +LTYPE + 5 +14 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +BYBLOCK + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +15 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +BYLAYER + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +16 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +CONTINUOUS + 70 + 0 + 3 +Solid line + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 5 +2 +100 +AcDbSymbolTable + 70 +4 + 0 +LAYER + 5 +50 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +0 + 70 +0 + 6 +CONTINUOUS + 0 +LAYER + 5 +51 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Slide3 + 70 +0 + 6 +CONTINUOUS + 0 +LAYER + 5 +52 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Slide2 + 70 +0 + 6 +CONTINUOUS + 0 +LAYER + 5 +53 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Slide1 + 70 +0 + 6 +CONTINUOUS + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 5 +3 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +STYLE + 5 +11 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +STANDARD + 70 + 0 + 40 +0.0 + 41 +1.0 + 50 +0.0 + 71 + 0 + 42 +2.5 + 3 +txt + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 5 +6 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +UCS + 5 +7 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +APPID + 5 +9 +330 +0 +100 +AcDbSymbolTable + 70 + 2 + 0 +APPID + 5 +12 +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +ACAD + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +DIMSTYLE + 5 +A +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +DIMSTYLE +105 +27 +330 +A +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +ISO-25 + 70 + 0 + 3 + + 4 + + 5 + + 6 + + 7 + + 40 +1.0 + 41 +2.5 + 42 +0.625 + 43 +3.75 + 44 +1.25 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 +140 +2.5 +141 +2.5 +142 +0.0 +143 +0.03937007874016 +144 +1.0 +145 +0.0 +146 +1.0 +147 +0.625 + 71 + 0 + 72 + 0 + 73 + 0 + 74 + 0 + 75 + 0 + 76 + 0 + 77 + 1 + 78 + 8 +170 + 0 +171 + 3 +172 + 1 +173 + 0 +174 + 0 +175 + 0 +176 + 0 +177 + 0 +178 + 0 +270 + 2 +271 + 2 +272 + 2 +273 + 2 +274 + 3 +340 +11 +275 + 0 +280 + 0 +281 + 0 +282 + 0 +283 + 0 +284 + 8 +285 + 0 +286 + 0 +287 + 3 +288 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +BLOCK_RECORD + 5 +1 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +BLOCK_RECORD + 5 +1F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*MODEL_SPACE + 0 +BLOCK_RECORD + 5 +1B +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*PAPER_SPACE + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +20 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*MODEL_SPACE + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*MODEL_SPACE + 1 + + 0 +ENDBLK + 5 +21 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +1C +330 +1B +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockBegin + 2 +*PAPER_SPACE + 1 + + 0 +ENDBLK + 5 +1D +330 +1B +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +LINE + 5 +100 +100 +AcDbEntity + 8 +Slide3 + 62 +7 +100 +AcDbLine + 10 +488.481675 + 20 +484.555043 + 30 +0.0 + 11 +675.000015 + 21 +484.555043 + 31 +0.0 + 0 +LINE + 5 +101 +100 +AcDbEntity + 8 +Slide3 + 62 +7 +100 +AcDbLine + 10 +675.000015 + 20 +484.555043 + 30 +0.0 + 11 +675.000015 + 21 +333.431460 + 31 +0.0 + 0 +LINE + 5 +102 +100 +AcDbEntity + 8 +Slide3 + 62 +7 +100 +AcDbLine + 10 +675.000015 + 20 +333.431460 + 30 +0.0 + 11 +488.481675 + 21 +333.431460 + 31 +0.0 + 0 +LINE + 5 +103 +100 +AcDbEntity + 8 +Slide3 + 62 +7 +100 +AcDbLine + 10 +488.481675 + 20 +333.431460 + 30 +0.0 + 11 +488.481675 + 21 +484.555043 + 31 +0.0 + 0 +SPLINE + 5 +104 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +112.500000 + 20 +450.000000 + 30 +0.0 + 10 +97.332666 + 20 +450.000000 + 30 +0.0 + 10 +83.658805 + 20 +440.863418 + 30 +0.0 + 10 +77.854518 + 20 +426.850629 + 30 +0.0 + 0 +SPLINE + 5 +105 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +77.854518 + 20 +426.850629 + 30 +0.0 + 10 +72.050230 + 20 +412.837839 + 30 +0.0 + 10 +75.258571 + 20 +396.708421 + 30 +0.0 + 10 +85.983496 + 20 +385.983496 + 30 +0.0 + 0 +SPLINE + 5 +106 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +85.983496 + 20 +385.983496 + 30 +0.0 + 10 +96.708421 + 20 +375.258571 + 30 +0.0 + 10 +112.837839 + 20 +372.050230 + 30 +0.0 + 10 +126.850629 + 20 +377.854518 + 30 +0.0 + 0 +SPLINE + 5 +107 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +126.850629 + 20 +377.854518 + 30 +0.0 + 10 +140.863418 + 20 +383.658805 + 30 +0.0 + 10 +150.000000 + 20 +397.332666 + 30 +0.0 + 10 +150.000000 + 20 +412.500000 + 30 +0.0 + 0 +SPLINE + 5 +108 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +150.000000 + 20 +412.500000 + 30 +0.0 + 10 +150.000000 + 20 +422.445618 + 30 +0.0 + 10 +146.049118 + 20 +431.983890 + 30 +0.0 + 10 +139.016504 + 20 +439.016504 + 30 +0.0 + 0 +SPLINE + 5 +109 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +139.016504 + 20 +439.016504 + 30 +0.0 + 10 +131.983890 + 20 +446.049118 + 30 +0.0 + 10 +122.445618 + 20 +450.000000 + 30 +0.0 + 10 +112.500000 + 20 +450.000000 + 30 +0.0 + 0 +LINE + 5 +10a +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbLine + 10 +112.500000 + 20 +450.000000 + 30 +0.0 + 11 +112.500000 + 21 +450.000000 + 31 +0.0 + 0 +SPLINE + 5 +10b +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +300.000000 + 20 +450.000000 + 30 +0.0 + 10 +269.665332 + 20 +450.000000 + 30 +0.0 + 10 +242.317610 + 20 +440.863418 + 30 +0.0 + 10 +230.709035 + 20 +426.850629 + 30 +0.0 + 0 +SPLINE + 5 +10c +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +230.709035 + 20 +426.850629 + 30 +0.0 + 10 +219.100460 + 20 +412.837839 + 30 +0.0 + 10 +225.517142 + 20 +396.708421 + 30 +0.0 + 10 +246.966991 + 20 +385.983496 + 30 +0.0 + 0 +SPLINE + 5 +10d +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +246.966991 + 20 +385.983496 + 30 +0.0 + 10 +268.416841 + 20 +375.258571 + 30 +0.0 + 10 +300.675678 + 20 +372.050230 + 30 +0.0 + 10 +328.701257 + 20 +377.854518 + 30 +0.0 + 0 +SPLINE + 5 +10e +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +328.701257 + 20 +377.854518 + 30 +0.0 + 10 +356.726837 + 20 +383.658805 + 30 +0.0 + 10 +375.000000 + 20 +397.332666 + 30 +0.0 + 10 +375.000000 + 20 +412.500000 + 30 +0.0 + 0 +SPLINE + 5 +10f +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +375.000000 + 20 +412.500000 + 30 +0.0 + 10 +375.000000 + 20 +422.445618 + 30 +0.0 + 10 +367.098237 + 20 +431.983890 + 30 +0.0 + 10 +353.033009 + 20 +439.016504 + 30 +0.0 + 0 +SPLINE + 5 +110 +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +353.033009 + 20 +439.016504 + 30 +0.0 + 10 +338.967780 + 20 +446.049118 + 30 +0.0 + 10 +319.891237 + 20 +450.000000 + 30 +0.0 + 10 +300.000000 + 20 +450.000000 + 30 +0.0 + 0 +LINE + 5 +111 +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbLine + 10 +300.000000 + 20 +450.000000 + 30 +0.0 + 11 +300.000000 + 21 +450.000000 + 31 +0.0 + 0 +SPLINE + 5 +112 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +587.314763 + 20 +391.632142 + 30 +0.0 + 10 +569.111537 + 20 +378.042706 + 30 +0.0 + 10 +535.392878 + 20 +371.919721 + 30 +0.0 + 10 +503.990903 + 20 +376.501328 + 30 +0.0 + 0 +SPLINE + 5 +113 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +503.990903 + 20 +376.501328 + 30 +0.0 + 10 +472.588930 + 20 +381.082935 + 30 +0.0 + 10 +450.747983 + 20 +395.312169 + 30 +0.0 + 10 +450.018645 + 20 +411.663900 + 30 +0.0 + 0 +SPLINE + 5 +114 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +450.018645 + 20 +411.663900 + 30 +0.0 + 10 +449.289307 + 20 +428.015634 + 30 +0.0 + 10 +469.839842 + 20 +442.717568 + 30 +0.0 + 10 +500.802098 + 20 +447.994582 + 30 +0.0 + 0 +SPLINE + 5 +115 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +500.802098 + 20 +447.994582 + 30 +0.0 + 10 +531.764347 + 20 +453.271596 + 30 +0.0 + 10 +565.995413 + 20 +447.906301 + 30 +0.0 + 10 +585.392197 + 20 +434.736135 + 30 +0.0 + 0 +LINE + 5 +116 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +585.392197 + 20 +434.736135 + 30 +0.0 + 11 +525.000000 + 21 +412.500000 + 31 +0.0 + 0 +LINE + 5 +117 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +525.000000 + 20 +412.500000 + 30 +0.0 + 11 +587.314763 + 21 +391.632142 + 31 +0.0 + 0 +LINE + 5 +118 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbLine + 10 +75.000000 + 20 +300.000000 + 30 +0.0 + 11 +150.000000 + 21 +225.000000 + 31 +0.0 + 0 +LINE + 5 +119 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbLine + 10 +150.000000 + 20 +225.000000 + 30 +0.0 + 11 +225.000000 + 21 +300.000000 + 31 +0.0 + 0 +LINE + 5 +11a +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbLine + 10 +225.000000 + 20 +300.000000 + 30 +0.0 + 11 +300.000000 + 21 +225.000000 + 31 +0.0 + 0 +SPLINE + 5 +11b +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +375.000000 + 20 +300.000000 + 30 +0.0 + 10 +375.000000 + 20 +300.000000 + 30 +0.0 + 10 +375.000000 + 20 +225.000000 + 30 +0.0 + 10 +450.000000 + 20 +225.000000 + 30 +0.0 + 0 +SPLINE + 5 +11c +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +450.000000 + 20 +225.000000 + 30 +0.0 + 10 +525.000000 + 20 +225.000000 + 30 +0.0 + 10 +450.000000 + 20 +300.000000 + 30 +0.0 + 10 +525.000000 + 20 +300.000000 + 30 +0.0 + 0 +SPLINE + 5 +11d +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +525.000000 + 20 +300.000000 + 30 +0.0 + 10 +600.000000 + 20 +300.000000 + 30 +0.0 + 10 +600.000000 + 20 +225.000000 + 30 +0.0 + 10 +600.000000 + 20 +225.000000 + 30 +0.0 + 0 +LINE + 5 +11e +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +183.624900 + 20 +83.144963 + 30 +0.0 + 11 +149.620747 + 21 +89.245807 + 31 +0.0 + 0 +LINE + 5 +11f +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +149.620747 + 20 +89.245807 + 30 +0.0 + 11 +125.317537 + 21 +64.692660 + 31 +0.0 + 0 +LINE + 5 +120 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +125.317537 + 20 +64.692660 + 30 +0.0 + 11 +120.611925 + 21 +98.917800 + 31 +0.0 + 0 +LINE + 5 +121 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +120.611925 + 20 +98.917800 + 30 +0.0 + 11 +89.750385 + 21 +114.444180 + 31 +0.0 + 0 +LINE + 5 +122 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +89.750385 + 20 +114.444180 + 30 +0.0 + 11 +120.846315 + 21 +129.495637 + 31 +0.0 + 0 +LINE + 5 +123 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +120.846315 + 20 +129.495637 + 30 +0.0 + 11 +126.076042 + 21 +163.644615 + 31 +0.0 + 0 +LINE + 5 +124 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +126.076042 + 20 +163.644615 + 30 +0.0 + 11 +150.000000 + 21 +138.721785 + 31 +0.0 + 0 +LINE + 5 +125 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +150.000000 + 20 +138.721785 + 30 +0.0 + 11 +184.093680 + 21 +144.300637 + 31 +0.0 + 0 +LINE + 5 +126 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +184.093680 + 20 +144.300637 + 30 +0.0 + 11 +167.783572 + 21 +113.846025 + 31 +0.0 + 0 +LINE + 5 +127 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +167.783572 + 20 +113.846025 + 30 +0.0 + 11 +183.624900 + 21 +83.144963 + 31 +0.0 + 0 +LINE + 5 +128 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +333.624900 + 20 +80.897798 + 30 +0.0 + 11 +299.620747 + 21 +86.998642 + 31 +0.0 + 0 +LINE + 5 +129 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +299.620747 + 20 +86.998642 + 30 +0.0 + 11 +275.317537 + 21 +62.445495 + 31 +0.0 + 0 +LINE + 5 +12a +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +275.317537 + 20 +62.445495 + 30 +0.0 + 11 +270.611925 + 21 +96.670635 + 31 +0.0 + 0 +LINE + 5 +12b +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +270.611925 + 20 +96.670635 + 30 +0.0 + 11 +239.750385 + 21 +112.197015 + 31 +0.0 + 0 +LINE + 5 +12c +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +239.750385 + 20 +112.197015 + 30 +0.0 + 11 +270.846315 + 21 +127.248472 + 31 +0.0 + 0 +LINE + 5 +12d +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +270.846315 + 20 +127.248472 + 30 +0.0 + 11 +276.076042 + 21 +161.397450 + 31 +0.0 + 0 +LINE + 5 +12e +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +276.076042 + 20 +161.397450 + 30 +0.0 + 11 +300.000000 + 21 +136.474620 + 31 +0.0 + 0 +LINE + 5 +12f +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +300.000000 + 20 +136.474620 + 30 +0.0 + 11 +334.093680 + 21 +142.053472 + 31 +0.0 + 0 +LINE + 5 +130 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +334.093680 + 20 +142.053472 + 30 +0.0 + 11 +317.783572 + 21 +111.598860 + 31 +0.0 + 0 +LINE + 5 +131 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +317.783572 + 20 +111.598860 + 30 +0.0 + 11 +333.624900 + 21 +80.897798 + 31 +0.0 + 0 +LINE + 5 +132 +100 +AcDbEntity + 8 +Slide1 + 62 +7 +100 +AcDbLine + 10 +75.000000 + 20 +600.000000 + 30 +0.0 + 11 +150.000000 + 21 +600.000000 + 31 +0.0 + 0 +LINE + 5 +133 +100 +AcDbEntity + 8 +Slide1 + 62 +7 +100 +AcDbLine + 10 +150.000000 + 20 +600.000000 + 30 +0.0 + 11 +150.000000 + 21 +525.000000 + 31 +0.0 + 0 +LINE + 5 +134 +100 +AcDbEntity + 8 +Slide1 + 62 +7 +100 +AcDbLine + 10 +150.000000 + 20 +525.000000 + 30 +0.0 + 11 +75.000000 + 21 +525.000000 + 31 +0.0 + 0 +LINE + 5 +135 +100 +AcDbEntity + 8 +Slide1 + 62 +7 +100 +AcDbLine + 10 +75.000000 + 20 +525.000000 + 30 +0.0 + 11 +75.000000 + 21 +600.000000 + 31 +0.0 + 0 +LINE + 5 +136 +100 +AcDbEntity + 8 +Slide1 + 62 +1 +100 +AcDbLine + 10 +225.000000 + 20 +600.000000 + 30 +0.0 + 11 +375.000000 + 21 +600.000000 + 31 +0.0 + 0 +LINE + 5 +137 +100 +AcDbEntity + 8 +Slide1 + 62 +1 +100 +AcDbLine + 10 +375.000000 + 20 +600.000000 + 30 +0.0 + 11 +375.000000 + 21 +525.000000 + 31 +0.0 + 0 +LINE + 5 +138 +100 +AcDbEntity + 8 +Slide1 + 62 +1 +100 +AcDbLine + 10 +375.000000 + 20 +525.000000 + 30 +0.0 + 11 +225.000000 + 21 +525.000000 + 31 +0.0 + 0 +LINE + 5 +139 +100 +AcDbEntity + 8 +Slide1 + 62 +1 +100 +AcDbLine + 10 +225.000000 + 20 +525.000000 + 30 +0.0 + 11 +225.000000 + 21 +600.000000 + 31 +0.0 + 0 +LINE + 5 +13a +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbLine + 10 +483.707420 + 20 +600.000000 + 30 +0.0 + 11 +566.292580 + 21 +600.000000 + 31 +0.0 + 0 +SPLINE + 5 +13b +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +566.292580 + 20 +600.000000 + 30 +0.0 + 10 +575.232344 + 20 +600.000000 + 30 +0.0 + 10 +583.805958 + 20 +596.922200 + 30 +0.0 + 10 +590.127325 + 20 +591.443682 + 30 +0.0 + 0 +SPLINE + 5 +13c +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +590.127325 + 20 +591.443682 + 30 +0.0 + 10 +596.448693 + 20 +585.965163 + 30 +0.0 + 10 +600.000000 + 20 +578.534697 + 30 +0.0 + 10 +600.000000 + 20 +570.786901 + 30 +0.0 + 0 +LINE + 5 +13d +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbLine + 10 +600.000000 + 20 +570.786901 + 30 +0.0 + 11 +600.000000 + 21 +554.213099 + 31 +0.0 + 0 +SPLINE + 5 +13e +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +600.000000 + 20 +554.213099 + 30 +0.0 + 10 +600.000000 + 20 +546.465303 + 30 +0.0 + 10 +596.448693 + 20 +539.034837 + 30 +0.0 + 10 +590.127325 + 20 +533.556318 + 30 +0.0 + 0 +SPLINE + 5 +13f +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +590.127325 + 20 +533.556318 + 30 +0.0 + 10 +583.805958 + 20 +528.077800 + 30 +0.0 + 10 +575.232344 + 20 +525.000000 + 30 +0.0 + 10 +566.292581 + 20 +525.000000 + 30 +0.0 + 0 +LINE + 5 +140 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbLine + 10 +566.292581 + 20 +525.000000 + 30 +0.0 + 11 +483.707420 + 21 +525.000000 + 31 +0.0 + 0 +SPLINE + 5 +141 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +483.707420 + 20 +525.000000 + 30 +0.0 + 10 +474.767656 + 20 +525.000000 + 30 +0.0 + 10 +466.194042 + 20 +528.077800 + 30 +0.0 + 10 +459.872675 + 20 +533.556318 + 30 +0.0 + 0 +SPLINE + 5 +142 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +459.872675 + 20 +533.556318 + 30 +0.0 + 10 +453.551307 + 20 +539.034837 + 30 +0.0 + 10 +450.000000 + 20 +546.465303 + 30 +0.0 + 10 +450.000000 + 20 +554.213099 + 30 +0.0 + 0 +LINE + 5 +143 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbLine + 10 +450.000000 + 20 +554.213099 + 30 +0.0 + 11 +450.000000 + 21 +570.786901 + 31 +0.0 + 0 +SPLINE + 5 +144 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +450.000000 + 20 +570.786901 + 30 +0.0 + 10 +450.000000 + 20 +578.534697 + 30 +0.0 + 10 +453.551307 + 20 +585.965163 + 30 +0.0 + 10 +459.872675 + 20 +591.443682 + 30 +0.0 + 0 +SPLINE + 5 +145 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +459.872675 + 20 +591.443682 + 30 +0.0 + 10 +466.194042 + 20 +596.922200 + 30 +0.0 + 10 +474.767656 + 20 +600.000000 + 30 +0.0 + 10 +483.707420 + 20 +600.000000 + 30 +0.0 + 0 +LINE + 5 +146 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbLine + 10 +483.707420 + 20 +600.000000 + 30 +0.0 + 11 +483.707420 + 21 +600.000000 + 31 +0.0 + 0 +ENDSEC + 0 +SECTION + 2 +OBJECTS + 0 +DICTIONARY + 5 +C +330 +0 +100 +AcDbDictionary + 3 +ACAD_GROUP +350 +D + 3 +ACAD_MLINESTYLE +350 +17 + 0 +DICTIONARY + 5 +D +330 +C +100 +AcDbDictionary + 0 +DICTIONARY + 5 +1A +330 +C +100 +AcDbDictionary + 0 +DICTIONARY + 5 +17 +330 +C +100 +AcDbDictionary + 3 +STANDARD +350 +18 + 0 +DICTIONARY + 5 +19 +330 +C +100 +AcDbDictionary + 0 +ENDSEC + 0 +EOF diff --git a/share/extensions/tests/data/refs/dxf_outlines__--POLY__true.out b/share/extensions/tests/data/refs/dxf_outlines__--POLY__true.out new file mode 100644 index 0000000..34e4875 --- /dev/null +++ b/share/extensions/tests/data/refs/dxf_outlines__--POLY__true.out @@ -0,0 +1,2880 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1014 + 9 +$HANDSEED + 5 +FFFF + 9 +$MEASUREMENT + 70 + 1 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 5 +8 +330 +0 +100 +AcDbSymbolTable + 70 + 4 + 0 +VPORT + 5 +2E +330 +8 +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord + 2 +*ACTIVE + 70 + 0 + 10 +0.0 + 20 +0.0 + 11 +1.0 + 21 +1.0 + 12 +210.0 + 22 +148.5 + 13 +0.0 + 23 +0.0 + 14 +10.0 + 24 +10.0 + 15 +10.0 + 25 +10.0 + 16 +0.0 + 26 +0.0 + 36 +1.0 + 17 +0.0 + 27 +0.0 + 37 +0.0 + 40 +341.0 + 41 +1.24 + 42 +50.0 + 43 +0.0 + 44 +0.0 + 50 +0.0 + 51 +0.0 + 71 + 0 + 72 + 100 + 73 + 1 + 74 + 3 + 75 + 0 + 76 + 0 + 77 + 0 + 78 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 5 +5 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +LTYPE + 5 +14 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +BYBLOCK + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +15 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +BYLAYER + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +16 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +CONTINUOUS + 70 + 0 + 3 +Solid line + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 5 +2 +100 +AcDbSymbolTable + 70 +4 + 0 +LAYER + 5 +50 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +0 + 70 +0 + 6 +CONTINUOUS + 0 +LAYER + 5 +51 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Slide3 + 70 +0 + 6 +CONTINUOUS + 0 +LAYER + 5 +52 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Slide2 + 70 +0 + 6 +CONTINUOUS + 0 +LAYER + 5 +53 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Slide1 + 70 +0 + 6 +CONTINUOUS + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 5 +3 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +STYLE + 5 +11 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +STANDARD + 70 + 0 + 40 +0.0 + 41 +1.0 + 50 +0.0 + 71 + 0 + 42 +2.5 + 3 +txt + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 5 +6 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +UCS + 5 +7 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +APPID + 5 +9 +330 +0 +100 +AcDbSymbolTable + 70 + 2 + 0 +APPID + 5 +12 +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +ACAD + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +DIMSTYLE + 5 +A +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +DIMSTYLE +105 +27 +330 +A +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +ISO-25 + 70 + 0 + 3 + + 4 + + 5 + + 6 + + 7 + + 40 +1.0 + 41 +2.5 + 42 +0.625 + 43 +3.75 + 44 +1.25 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 +140 +2.5 +141 +2.5 +142 +0.0 +143 +0.03937007874016 +144 +1.0 +145 +0.0 +146 +1.0 +147 +0.625 + 71 + 0 + 72 + 0 + 73 + 0 + 74 + 0 + 75 + 0 + 76 + 0 + 77 + 1 + 78 + 8 +170 + 0 +171 + 3 +172 + 1 +173 + 0 +174 + 0 +175 + 0 +176 + 0 +177 + 0 +178 + 0 +270 + 2 +271 + 2 +272 + 2 +273 + 2 +274 + 3 +340 +11 +275 + 0 +280 + 0 +281 + 0 +282 + 0 +283 + 0 +284 + 8 +285 + 0 +286 + 0 +287 + 3 +288 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +BLOCK_RECORD + 5 +1 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +BLOCK_RECORD + 5 +1F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*MODEL_SPACE + 0 +BLOCK_RECORD + 5 +1B +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*PAPER_SPACE + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +20 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*MODEL_SPACE + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*MODEL_SPACE + 1 + + 0 +ENDBLK + 5 +21 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +1C +330 +1B +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockBegin + 2 +*PAPER_SPACE + 1 + + 0 +ENDBLK + 5 +1D +330 +1B +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +SPLINE + 5 +100 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +112.500000 + 20 +450.000000 + 30 +0.0 + 10 +97.332666 + 20 +450.000000 + 30 +0.0 + 10 +83.658805 + 20 +440.863418 + 30 +0.0 + 10 +77.854518 + 20 +426.850629 + 30 +0.0 + 0 +SPLINE + 5 +101 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +77.854518 + 20 +426.850629 + 30 +0.0 + 10 +72.050230 + 20 +412.837839 + 30 +0.0 + 10 +75.258571 + 20 +396.708421 + 30 +0.0 + 10 +85.983496 + 20 +385.983496 + 30 +0.0 + 0 +SPLINE + 5 +102 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +85.983496 + 20 +385.983496 + 30 +0.0 + 10 +96.708421 + 20 +375.258571 + 30 +0.0 + 10 +112.837839 + 20 +372.050230 + 30 +0.0 + 10 +126.850629 + 20 +377.854518 + 30 +0.0 + 0 +SPLINE + 5 +103 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +126.850629 + 20 +377.854518 + 30 +0.0 + 10 +140.863418 + 20 +383.658805 + 30 +0.0 + 10 +150.000000 + 20 +397.332666 + 30 +0.0 + 10 +150.000000 + 20 +412.500000 + 30 +0.0 + 0 +SPLINE + 5 +104 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +150.000000 + 20 +412.500000 + 30 +0.0 + 10 +150.000000 + 20 +422.445618 + 30 +0.0 + 10 +146.049118 + 20 +431.983890 + 30 +0.0 + 10 +139.016504 + 20 +439.016504 + 30 +0.0 + 0 +SPLINE + 5 +105 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +139.016504 + 20 +439.016504 + 30 +0.0 + 10 +131.983890 + 20 +446.049118 + 30 +0.0 + 10 +122.445618 + 20 +450.000000 + 30 +0.0 + 10 +112.500000 + 20 +450.000000 + 30 +0.0 + 0 +LWPOLYLINE + 5 +106 +100 +AcDbEntity + 8 +Slide3 + 62 +7 +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +488.481675 + 20 +484.555043 + 30 +0.0 + 10 +675.000015 + 20 +484.555043 + 30 +0.0 + 10 +675.000015 + 20 +333.431460 + 30 +0.0 + 10 +488.481675 + 20 +333.431460 + 30 +0.0 + 0 +SPLINE + 5 +107 +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +300.000000 + 20 +450.000000 + 30 +0.0 + 10 +269.665332 + 20 +450.000000 + 30 +0.0 + 10 +242.317610 + 20 +440.863418 + 30 +0.0 + 10 +230.709035 + 20 +426.850629 + 30 +0.0 + 0 +SPLINE + 5 +108 +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +230.709035 + 20 +426.850629 + 30 +0.0 + 10 +219.100460 + 20 +412.837839 + 30 +0.0 + 10 +225.517142 + 20 +396.708421 + 30 +0.0 + 10 +246.966991 + 20 +385.983496 + 30 +0.0 + 0 +SPLINE + 5 +109 +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +246.966991 + 20 +385.983496 + 30 +0.0 + 10 +268.416841 + 20 +375.258571 + 30 +0.0 + 10 +300.675678 + 20 +372.050230 + 30 +0.0 + 10 +328.701257 + 20 +377.854518 + 30 +0.0 + 0 +SPLINE + 5 +10a +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +328.701257 + 20 +377.854518 + 30 +0.0 + 10 +356.726837 + 20 +383.658805 + 30 +0.0 + 10 +375.000000 + 20 +397.332666 + 30 +0.0 + 10 +375.000000 + 20 +412.500000 + 30 +0.0 + 0 +SPLINE + 5 +10b +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +375.000000 + 20 +412.500000 + 30 +0.0 + 10 +375.000000 + 20 +422.445618 + 30 +0.0 + 10 +367.098237 + 20 +431.983890 + 30 +0.0 + 10 +353.033009 + 20 +439.016504 + 30 +0.0 + 0 +SPLINE + 5 +10c +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +353.033009 + 20 +439.016504 + 30 +0.0 + 10 +338.967780 + 20 +446.049118 + 30 +0.0 + 10 +319.891237 + 20 +450.000000 + 30 +0.0 + 10 +300.000000 + 20 +450.000000 + 30 +0.0 + 0 +LWPOLYLINE + 5 +10d +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbPolyline + 90 +1 + 70 +1 + 10 +112.500000 + 20 +450.000000 + 30 +0.0 + 0 +SPLINE + 5 +10e +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +587.314763 + 20 +391.632142 + 30 +0.0 + 10 +569.111537 + 20 +378.042706 + 30 +0.0 + 10 +535.392878 + 20 +371.919721 + 30 +0.0 + 10 +503.990903 + 20 +376.501328 + 30 +0.0 + 0 +SPLINE + 5 +10f +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +503.990903 + 20 +376.501328 + 30 +0.0 + 10 +472.588930 + 20 +381.082935 + 30 +0.0 + 10 +450.747983 + 20 +395.312169 + 30 +0.0 + 10 +450.018645 + 20 +411.663900 + 30 +0.0 + 0 +SPLINE + 5 +110 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +450.018645 + 20 +411.663900 + 30 +0.0 + 10 +449.289307 + 20 +428.015634 + 30 +0.0 + 10 +469.839842 + 20 +442.717568 + 30 +0.0 + 10 +500.802098 + 20 +447.994582 + 30 +0.0 + 0 +SPLINE + 5 +111 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +500.802098 + 20 +447.994582 + 30 +0.0 + 10 +531.764347 + 20 +453.271596 + 30 +0.0 + 10 +565.995413 + 20 +447.906301 + 30 +0.0 + 10 +585.392197 + 20 +434.736135 + 30 +0.0 + 0 +LWPOLYLINE + 5 +112 +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbPolyline + 90 +1 + 70 +1 + 10 +300.000000 + 20 +450.000000 + 30 +0.0 + 0 +LWPOLYLINE + 5 +113 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbPolyline + 90 +3 + 70 +0 + 10 +585.392197 + 20 +434.736135 + 30 +0.0 + 10 +525.000000 + 20 +412.500000 + 30 +0.0 + 10 +587.314763 + 20 +391.632142 + 30 +0.0 + 0 +SPLINE + 5 +114 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +375.000000 + 20 +300.000000 + 30 +0.0 + 10 +375.000000 + 20 +300.000000 + 30 +0.0 + 10 +375.000000 + 20 +225.000000 + 30 +0.0 + 10 +450.000000 + 20 +225.000000 + 30 +0.0 + 0 +SPLINE + 5 +115 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +450.000000 + 20 +225.000000 + 30 +0.0 + 10 +525.000000 + 20 +225.000000 + 30 +0.0 + 10 +450.000000 + 20 +300.000000 + 30 +0.0 + 10 +525.000000 + 20 +300.000000 + 30 +0.0 + 0 +SPLINE + 5 +116 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +525.000000 + 20 +300.000000 + 30 +0.0 + 10 +600.000000 + 20 +300.000000 + 30 +0.0 + 10 +600.000000 + 20 +225.000000 + 30 +0.0 + 10 +600.000000 + 20 +225.000000 + 30 +0.0 + 0 +LWPOLYLINE + 5 +117 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbPolyline + 90 +4 + 70 +0 + 10 +75.000000 + 20 +300.000000 + 30 +0.0 + 10 +150.000000 + 20 +225.000000 + 30 +0.0 + 10 +225.000000 + 20 +300.000000 + 30 +0.0 + 10 +300.000000 + 20 +225.000000 + 30 +0.0 + 0 +LWPOLYLINE + 5 +118 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbPolyline + 90 +10 + 70 +1 + 10 +183.624900 + 20 +83.144963 + 30 +0.0 + 10 +149.620747 + 20 +89.245807 + 30 +0.0 + 10 +125.317537 + 20 +64.692660 + 30 +0.0 + 10 +120.611925 + 20 +98.917800 + 30 +0.0 + 10 +89.750385 + 20 +114.444180 + 30 +0.0 + 10 +120.846315 + 20 +129.495637 + 30 +0.0 + 10 +126.076042 + 20 +163.644615 + 30 +0.0 + 10 +150.000000 + 20 +138.721785 + 30 +0.0 + 10 +184.093680 + 20 +144.300637 + 30 +0.0 + 10 +167.783572 + 20 +113.846025 + 30 +0.0 + 0 +LWPOLYLINE + 5 +119 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbPolyline + 90 +10 + 70 +1 + 10 +333.624900 + 20 +80.897798 + 30 +0.0 + 10 +299.620747 + 20 +86.998642 + 30 +0.0 + 10 +275.317537 + 20 +62.445495 + 30 +0.0 + 10 +270.611925 + 20 +96.670635 + 30 +0.0 + 10 +239.750385 + 20 +112.197015 + 30 +0.0 + 10 +270.846315 + 20 +127.248472 + 30 +0.0 + 10 +276.076042 + 20 +161.397450 + 30 +0.0 + 10 +300.000000 + 20 +136.474620 + 30 +0.0 + 10 +334.093680 + 20 +142.053472 + 30 +0.0 + 10 +317.783572 + 20 +111.598860 + 30 +0.0 + 0 +LWPOLYLINE + 5 +11a +100 +AcDbEntity + 8 +Slide1 + 62 +7 +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +75.000000 + 20 +600.000000 + 30 +0.0 + 10 +150.000000 + 20 +600.000000 + 30 +0.0 + 10 +150.000000 + 20 +525.000000 + 30 +0.0 + 10 +75.000000 + 20 +525.000000 + 30 +0.0 + 0 +LWPOLYLINE + 5 +11b +100 +AcDbEntity + 8 +Slide1 + 62 +1 +100 +AcDbPolyline + 90 +4 + 70 +1 + 10 +225.000000 + 20 +600.000000 + 30 +0.0 + 10 +375.000000 + 20 +600.000000 + 30 +0.0 + 10 +375.000000 + 20 +525.000000 + 30 +0.0 + 10 +225.000000 + 20 +525.000000 + 30 +0.0 + 0 +SPLINE + 5 +11c +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +566.292580 + 20 +600.000000 + 30 +0.0 + 10 +575.232344 + 20 +600.000000 + 30 +0.0 + 10 +583.805958 + 20 +596.922200 + 30 +0.0 + 10 +590.127325 + 20 +591.443682 + 30 +0.0 + 0 +SPLINE + 5 +11d +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +590.127325 + 20 +591.443682 + 30 +0.0 + 10 +596.448693 + 20 +585.965163 + 30 +0.0 + 10 +600.000000 + 20 +578.534697 + 30 +0.0 + 10 +600.000000 + 20 +570.786901 + 30 +0.0 + 0 +LWPOLYLINE + 5 +11e +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbPolyline + 90 +2 + 70 +0 + 10 +483.707420 + 20 +600.000000 + 30 +0.0 + 10 +566.292580 + 20 +600.000000 + 30 +0.0 + 0 +SPLINE + 5 +11f +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +600.000000 + 20 +554.213099 + 30 +0.0 + 10 +600.000000 + 20 +546.465303 + 30 +0.0 + 10 +596.448693 + 20 +539.034837 + 30 +0.0 + 10 +590.127325 + 20 +533.556318 + 30 +0.0 + 0 +SPLINE + 5 +120 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +590.127325 + 20 +533.556318 + 30 +0.0 + 10 +583.805958 + 20 +528.077800 + 30 +0.0 + 10 +575.232344 + 20 +525.000000 + 30 +0.0 + 10 +566.292581 + 20 +525.000000 + 30 +0.0 + 0 +LWPOLYLINE + 5 +121 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbPolyline + 90 +2 + 70 +0 + 10 +600.000000 + 20 +570.786901 + 30 +0.0 + 10 +600.000000 + 20 +554.213099 + 30 +0.0 + 0 +SPLINE + 5 +122 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +483.707420 + 20 +525.000000 + 30 +0.0 + 10 +474.767656 + 20 +525.000000 + 30 +0.0 + 10 +466.194042 + 20 +528.077800 + 30 +0.0 + 10 +459.872675 + 20 +533.556318 + 30 +0.0 + 0 +SPLINE + 5 +123 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +459.872675 + 20 +533.556318 + 30 +0.0 + 10 +453.551307 + 20 +539.034837 + 30 +0.0 + 10 +450.000000 + 20 +546.465303 + 30 +0.0 + 10 +450.000000 + 20 +554.213099 + 30 +0.0 + 0 +LWPOLYLINE + 5 +124 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbPolyline + 90 +2 + 70 +0 + 10 +566.292581 + 20 +525.000000 + 30 +0.0 + 10 +483.707420 + 20 +525.000000 + 30 +0.0 + 0 +SPLINE + 5 +125 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +450.000000 + 20 +570.786901 + 30 +0.0 + 10 +450.000000 + 20 +578.534697 + 30 +0.0 + 10 +453.551307 + 20 +585.965163 + 30 +0.0 + 10 +459.872675 + 20 +591.443682 + 30 +0.0 + 0 +SPLINE + 5 +126 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +459.872675 + 20 +591.443682 + 30 +0.0 + 10 +466.194042 + 20 +596.922200 + 30 +0.0 + 10 +474.767656 + 20 +600.000000 + 30 +0.0 + 10 +483.707420 + 20 +600.000000 + 30 +0.0 + 0 +LWPOLYLINE + 5 +127 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbPolyline + 90 +2 + 70 +0 + 10 +450.000000 + 20 +554.213099 + 30 +0.0 + 10 +450.000000 + 20 +570.786901 + 30 +0.0 + 0 +LWPOLYLINE + 5 +128 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbPolyline + 90 +1 + 70 +1 + 10 +483.707420 + 20 +600.000000 + 30 +0.0 + 0 +ENDSEC + 0 +SECTION + 2 +OBJECTS + 0 +DICTIONARY + 5 +C +330 +0 +100 +AcDbDictionary + 3 +ACAD_GROUP +350 +D + 3 +ACAD_MLINESTYLE +350 +17 + 0 +DICTIONARY + 5 +D +330 +C +100 +AcDbDictionary + 0 +DICTIONARY + 5 +1A +330 +C +100 +AcDbDictionary + 0 +DICTIONARY + 5 +17 +330 +C +100 +AcDbDictionary + 3 +STANDARD +350 +18 + 0 +DICTIONARY + 5 +19 +330 +C +100 +AcDbDictionary + 0 +ENDSEC + 0 +EOF diff --git a/share/extensions/tests/data/refs/dxf_outlines__--ROBO__true.out b/share/extensions/tests/data/refs/dxf_outlines__--ROBO__true.out new file mode 100644 index 0000000..e793414 --- /dev/null +++ b/share/extensions/tests/data/refs/dxf_outlines__--ROBO__true.out @@ -0,0 +1,3352 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1014 + 9 +$HANDSEED + 5 +FFFF + 9 +$MEASUREMENT + 70 + 1 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 5 +8 +330 +0 +100 +AcDbSymbolTable + 70 + 4 + 0 +VPORT + 5 +2E +330 +8 +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord + 2 +*ACTIVE + 70 + 0 + 10 +0.0 + 20 +0.0 + 11 +1.0 + 21 +1.0 + 12 +210.0 + 22 +148.5 + 13 +0.0 + 23 +0.0 + 14 +10.0 + 24 +10.0 + 15 +10.0 + 25 +10.0 + 16 +0.0 + 26 +0.0 + 36 +1.0 + 17 +0.0 + 27 +0.0 + 37 +0.0 + 40 +341.0 + 41 +1.24 + 42 +50.0 + 43 +0.0 + 44 +0.0 + 50 +0.0 + 51 +0.0 + 71 + 0 + 72 + 100 + 73 + 1 + 74 + 3 + 75 + 0 + 76 + 0 + 77 + 0 + 78 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 5 +5 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +LTYPE + 5 +14 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +BYBLOCK + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +15 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +BYLAYER + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +16 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +CONTINUOUS + 70 + 0 + 3 +Solid line + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 5 +2 +100 +AcDbSymbolTable + 70 +4 + 0 +LAYER + 5 +50 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +0 + 70 +0 + 6 +CONTINUOUS + 0 +LAYER + 5 +51 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Slide3 + 70 +0 + 6 +CONTINUOUS + 0 +LAYER + 5 +52 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Slide2 + 70 +0 + 6 +CONTINUOUS + 0 +LAYER + 5 +53 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Slide1 + 70 +0 + 6 +CONTINUOUS + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 5 +3 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +STYLE + 5 +11 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +STANDARD + 70 + 0 + 40 +0.0 + 41 +1.0 + 50 +0.0 + 71 + 0 + 42 +2.5 + 3 +txt + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 5 +6 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +UCS + 5 +7 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +APPID + 5 +9 +330 +0 +100 +AcDbSymbolTable + 70 + 2 + 0 +APPID + 5 +12 +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +ACAD + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +DIMSTYLE + 5 +A +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +DIMSTYLE +105 +27 +330 +A +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +ISO-25 + 70 + 0 + 3 + + 4 + + 5 + + 6 + + 7 + + 40 +1.0 + 41 +2.5 + 42 +0.625 + 43 +3.75 + 44 +1.25 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 +140 +2.5 +141 +2.5 +142 +0.0 +143 +0.03937007874016 +144 +1.0 +145 +0.0 +146 +1.0 +147 +0.625 + 71 + 0 + 72 + 0 + 73 + 0 + 74 + 0 + 75 + 0 + 76 + 0 + 77 + 1 + 78 + 8 +170 + 0 +171 + 3 +172 + 1 +173 + 0 +174 + 0 +175 + 0 +176 + 0 +177 + 0 +178 + 0 +270 + 2 +271 + 2 +272 + 2 +273 + 2 +274 + 3 +340 +11 +275 + 0 +280 + 0 +281 + 0 +282 + 0 +283 + 0 +284 + 8 +285 + 0 +286 + 0 +287 + 3 +288 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +BLOCK_RECORD + 5 +1 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +BLOCK_RECORD + 5 +1F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*MODEL_SPACE + 0 +BLOCK_RECORD + 5 +1B +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*PAPER_SPACE + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +20 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*MODEL_SPACE + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*MODEL_SPACE + 1 + + 0 +ENDBLK + 5 +21 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +1C +330 +1B +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockBegin + 2 +*PAPER_SPACE + 1 + + 0 +ENDBLK + 5 +1D +330 +1B +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +LINE + 5 +100 +100 +AcDbEntity + 8 +Slide3 + 62 +7 +100 +AcDbLine + 10 +488.481675 + 20 +484.555043 + 30 +0.0 + 11 +675.000015 + 21 +484.555043 + 31 +0.0 + 0 +LINE + 5 +101 +100 +AcDbEntity + 8 +Slide3 + 62 +7 +100 +AcDbLine + 10 +675.000015 + 20 +484.555043 + 30 +0.0 + 11 +675.000015 + 21 +333.431460 + 31 +0.0 + 0 +LINE + 5 +102 +100 +AcDbEntity + 8 +Slide3 + 62 +7 +100 +AcDbLine + 10 +675.000015 + 20 +333.431460 + 30 +0.0 + 11 +488.481675 + 21 +333.431460 + 31 +0.0 + 0 +LINE + 5 +103 +100 +AcDbEntity + 8 +Slide3 + 62 +7 +100 +AcDbLine + 10 +488.481675 + 20 +333.431460 + 30 +0.0 + 11 +488.481675 + 21 +484.555043 + 31 +0.0 + 0 +LINE + 5 +104 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbLine + 10 +112.500000 + 20 +450.000000 + 30 +0.0 + 11 +112.500000 + 21 +450.000000 + 31 +0.0 + 0 +SPLINE + 5 +105 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +0 + 71 +3 + 72 +25 + 73 +21 + 74 +19 + 40 +0.000000 + 40 +0.000000 + 40 +0.000000 + 40 +0.000000 + 40 +14.719403 + 40 +29.176694 + 40 +43.896097 + 40 +58.615501 + 40 +73.072791 + 40 +87.792195 + 40 +102.511598 + 40 +116.968889 + 40 +131.688292 + 40 +146.407696 + 40 +160.864986 + 40 +175.584390 + 40 +185.400948 + 40 +195.136270 + 40 +204.952828 + 40 +214.769386 + 40 +224.504709 + 40 +234.321267 + 40 +234.321267 + 40 +234.321267 + 40 +234.321267 + 10 +112.500000 + 20 +450.000000 + 30 +0.0 + 10 +107.561852 + 20 +449.430182 + 30 +0.0 + 10 +97.773491 + 20 +448.300694 + 30 +0.0 + 10 +85.299689 + 20 +439.636229 + 30 +0.0 + 10 +76.941599 + 20 +427.247780 + 30 +0.0 + 10 +74.028507 + 20 +412.490567 + 30 +0.0 + 10 +76.955275 + 20 +397.783055 + 30 +0.0 + 10 +85.284776 + 20 +385.284419 + 30 +0.0 + 10 +97.781711 + 20 +376.955346 + 30 +0.0 + 10 +112.495527 + 20 +374.028572 + 30 +0.0 + 10 +127.228881 + 20 +376.941259 + 30 +0.0 + 10 +139.706194 + 20 +385.300972 + 30 +0.0 + 10 +148.042805 + 20 +397.768756 + 30 +0.0 + 10 +150.654153 + 20 +410.870662 + 30 +0.0 + 10 +149.136137 + 20 +422.315952 + 30 +0.0 + 10 +145.348676 + 20 +431.462699 + 30 +0.0 + 10 +139.322768 + 20 +439.331018 + 30 +0.0 + 10 +131.464345 + 20 +445.317462 + 30 +0.0 + 10 +122.317524 + 20 +449.252106 + 30 +0.0 + 10 +115.781560 + 20 +449.750012 + 30 +0.0 + 10 +112.500000 + 20 +450.000000 + 30 +0.0 + 11 +112.500000 + 21 +450.000000 + 31 +0.0 + 11 +98.066642 + 21 +447.112264 + 31 +0.0 + 11 +86.045844 + 21 +439.080224 + 31 +0.0 + 11 +77.854518 + 21 +426.850629 + 31 +0.0 + 11 +74.999030 + 21 +412.410856 + 31 +0.0 + 11 +77.819508 + 21 +398.231358 + 31 +0.0 + 11 +85.983496 + 21 +385.983496 + 31 +0.0 + 11 +98.231358 + 21 +377.819508 + 31 +0.0 + 11 +112.410856 + 21 +374.999030 + 31 +0.0 + 11 +126.850629 + 21 +377.854518 + 31 +0.0 + 11 +139.080224 + 21 +386.045844 + 31 +0.0 + 11 +147.112264 + 21 +398.066642 + 31 +0.0 + 11 +150.000000 + 21 +412.500000 + 31 +0.0 + 11 +148.715230 + 21 +422.232121 + 31 +0.0 + 11 +144.989684 + 21 +431.226386 + 31 +0.0 + 11 +139.016504 + 21 +439.016504 + 31 +0.0 + 11 +131.226386 + 21 +444.989684 + 31 +0.0 + 11 +122.232121 + 21 +448.715230 + 31 +0.0 + 11 +112.500000 + 21 +450.000000 + 31 +0.0 + 0 +LINE + 5 +106 +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbLine + 10 +300.000000 + 20 +450.000000 + 30 +0.0 + 11 +300.000000 + 21 +450.000000 + 31 +0.0 + 0 +SPLINE + 5 +107 +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +0 + 71 +3 + 72 +25 + 73 +21 + 74 +19 + 40 +0.000000 + 40 +0.000000 + 40 +0.000000 + 40 +0.000000 + 40 +29.010796 + 40 +54.358617 + 40 +74.802548 + 40 +90.330660 + 40 +105.591018 + 40 +126.002116 + 40 +151.822481 + 40 +180.321389 + 40 +209.341760 + 40 +235.136136 + 40 +255.199891 + 40 +270.745884 + 40 +280.811504 + 40 +292.491213 + 40 +306.753100 + 40 +323.439101 + 40 +341.809374 + 40 +361.315971 + 40 +361.315971 + 40 +361.315971 + 40 +361.315971 + 10 +300.000000 + 20 +450.000000 + 30 +0.0 + 10 +290.305002 + 20 +449.486685 + 30 +0.0 + 10 +272.139122 + 20 +448.524868 + 30 +0.0 + 10 +248.195734 + 20 +440.689710 + 30 +0.0 + 10 +230.602913 + 20 +429.477726 + 30 +0.0 + 10 +222.591013 + 20 +412.489527 + 30 +0.0 + 10 +230.594261 + 20 +395.578337 + 30 +0.0 + 10 +248.211541 + 20 +384.232094 + 30 +0.0 + 10 +272.152557 + 20 +376.690134 + 30 +0.0 + 10 +299.994278 + 20 +374.112398 + 30 +0.0 + 10 +327.837007 + 20 +376.671686 + 30 +0.0 + 10 +351.818560 + 20 +384.253523 + 30 +0.0 + 10 +369.396163 + 20 +395.600689 + 30 +0.0 + 10 +376.552453 + 20 +410.631567 + 30 +0.0 + 10 +372.866676 + 20 +423.160090 + 30 +0.0 + 10 +364.703798 + 20 +432.276506 + 30 +0.0 + 10 +352.528624 + 20 +439.856101 + 30 +0.0 + 10 +337.031906 + 20 +445.559527 + 30 +0.0 + 10 +319.142731 + 20 +449.292775 + 30 +0.0 + 10 +306.507267 + 20 +449.759590 + 30 +0.0 + 10 +300.000000 + 20 +450.000000 + 30 +0.0 + 11 +300.000000 + 21 +450.000000 + 31 +0.0 + 11 +271.133284 + 21 +447.112264 + 31 +0.0 + 11 +247.091689 + 21 +439.080224 + 31 +0.0 + 11 +230.709035 + 21 +426.850629 + 31 +0.0 + 11 +224.998061 + 21 +412.410856 + 31 +0.0 + 11 +230.639016 + 21 +398.231358 + 31 +0.0 + 11 +246.966991 + 21 +385.983496 + 31 +0.0 + 11 +271.462717 + 21 +377.819508 + 31 +0.0 + 11 +299.821712 + 21 +374.999030 + 31 +0.0 + 11 +328.701257 + 21 +377.854518 + 31 +0.0 + 11 +353.160448 + 21 +386.045844 + 31 +0.0 + 11 +369.224529 + 21 +398.066642 + 31 +0.0 + 11 +375.000000 + 21 +412.500000 + 31 +0.0 + 11 +372.430460 + 21 +422.232121 + 31 +0.0 + 11 +364.979367 + 21 +431.226386 + 31 +0.0 + 11 +353.033009 + 21 +439.016504 + 31 +0.0 + 11 +337.452772 + 21 +444.989684 + 31 +0.0 + 11 +319.464242 + 21 +448.715230 + 31 +0.0 + 11 +300.000000 + 21 +450.000000 + 31 +0.0 + 0 +LINE + 5 +108 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +585.392197 + 20 +434.736135 + 30 +0.0 + 11 +525.000000 + 21 +412.500000 + 31 +0.0 + 0 +LINE + 5 +109 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +525.000000 + 20 +412.500000 + 30 +0.0 + 11 +587.314763 + 21 +391.632142 + 31 +0.0 + 0 +LINE + 5 +10a +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbLine + 10 +75.000000 + 20 +300.000000 + 30 +0.0 + 11 +150.000000 + 21 +225.000000 + 31 +0.0 + 0 +LINE + 5 +10b +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbLine + 10 +150.000000 + 20 +225.000000 + 30 +0.0 + 11 +225.000000 + 21 +300.000000 + 31 +0.0 + 0 +LINE + 5 +10c +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbLine + 10 +225.000000 + 20 +300.000000 + 30 +0.0 + 11 +300.000000 + 21 +225.000000 + 31 +0.0 + 0 +SPLINE + 5 +10d +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbSpline + 70 +0 + 71 +3 + 72 +19 + 73 +15 + 74 +13 + 40 +0.000000 + 40 +0.000000 + 40 +0.000000 + 40 +0.000000 + 40 +25.229507 + 40 +54.800847 + 40 +86.334975 + 40 +115.121403 + 40 +137.614535 + 40 +154.642643 + 40 +171.262440 + 40 +193.065954 + 40 +221.348998 + 40 +252.783952 + 40 +282.682243 + 40 +308.562793 + 40 +308.562793 + 40 +308.562793 + 40 +308.562793 + 10 +587.314763 + 20 +391.632142 + 30 +0.0 + 10 +579.906492 + 20 +387.528282 + 30 +0.0 + 10 +563.815038 + 20 +378.614312 + 30 +0.0 + 10 +534.823599 + 20 +374.463329 + 30 +0.0 + 10 +504.775620 + 20 +375.231094 + 30 +0.0 + 10 +477.765552 + 20 +382.201524 + 30 +0.0 + 10 +457.561218 + 20 +393.399115 + 30 +0.0 + 10 +447.150586 + 20 +411.387937 + 30 +0.0 + 10 +455.810561 + 20 +430.089688 + 30 +0.0 + 10 +475.313194 + 20 +441.789347 + 30 +0.0 + 10 +501.673589 + 20 +449.310722 + 30 +0.0 + 10 +531.639583 + 20 +450.719221 + 30 +0.0 + 10 +560.964913 + 20 +447.141615 + 30 +0.0 + 10 +577.650386 + 20 +438.667840 + 30 +0.0 + 10 +585.392197 + 20 +434.736135 + 30 +0.0 + 11 +587.314763 + 21 +391.632142 + 31 +0.0 + 11 +564.600175 + 21 +380.651454 + 31 +0.0 + 11 +535.504657 + 21 +375.367987 + 31 +0.0 + 11 +503.990903 + 21 +376.501328 + 31 +0.0 + 11 +476.203738 + 21 +384.020102 + 31 +0.0 + 11 +457.357387 + 21 +396.298376 + 31 +0.0 + 11 +450.018645 + 21 +411.663900 + 31 +0.0 + 11 +455.980074 + 21 +427.177733 + 31 +0.0 + 11 +473.712940 + 21 +439.863896 + 31 +0.0 + 11 +500.802098 + 21 +447.994582 + 31 +0.0 + 11 +532.183467 + 21 +449.829250 + 31 +0.0 + 11 +561.721138 + 21 +445.199587 + 31 +0.0 + 11 +585.392197 + 21 +434.736135 + 31 +0.0 + 0 +LINE + 5 +10e +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +183.624900 + 20 +83.144963 + 30 +0.0 + 11 +149.620747 + 21 +89.245807 + 31 +0.0 + 0 +LINE + 5 +10f +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +149.620747 + 20 +89.245807 + 30 +0.0 + 11 +125.317537 + 21 +64.692660 + 31 +0.0 + 0 +LINE + 5 +110 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +125.317537 + 20 +64.692660 + 30 +0.0 + 11 +120.611925 + 21 +98.917800 + 31 +0.0 + 0 +LINE + 5 +111 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +120.611925 + 20 +98.917800 + 30 +0.0 + 11 +89.750385 + 21 +114.444180 + 31 +0.0 + 0 +LINE + 5 +112 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +89.750385 + 20 +114.444180 + 30 +0.0 + 11 +120.846315 + 21 +129.495637 + 31 +0.0 + 0 +LINE + 5 +113 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +120.846315 + 20 +129.495637 + 30 +0.0 + 11 +126.076042 + 21 +163.644615 + 31 +0.0 + 0 +LINE + 5 +114 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +126.076042 + 20 +163.644615 + 30 +0.0 + 11 +150.000000 + 21 +138.721785 + 31 +0.0 + 0 +LINE + 5 +115 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +150.000000 + 20 +138.721785 + 30 +0.0 + 11 +184.093680 + 21 +144.300637 + 31 +0.0 + 0 +LINE + 5 +116 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +184.093680 + 20 +144.300637 + 30 +0.0 + 11 +167.783572 + 21 +113.846025 + 31 +0.0 + 0 +LINE + 5 +117 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +167.783572 + 20 +113.846025 + 30 +0.0 + 11 +183.624900 + 21 +83.144963 + 31 +0.0 + 0 +LINE + 5 +118 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +333.624900 + 20 +80.897798 + 30 +0.0 + 11 +299.620747 + 21 +86.998642 + 31 +0.0 + 0 +LINE + 5 +119 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +299.620747 + 20 +86.998642 + 30 +0.0 + 11 +275.317537 + 21 +62.445495 + 31 +0.0 + 0 +LINE + 5 +11a +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +275.317537 + 20 +62.445495 + 30 +0.0 + 11 +270.611925 + 21 +96.670635 + 31 +0.0 + 0 +LINE + 5 +11b +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +270.611925 + 20 +96.670635 + 30 +0.0 + 11 +239.750385 + 21 +112.197015 + 31 +0.0 + 0 +LINE + 5 +11c +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +239.750385 + 20 +112.197015 + 30 +0.0 + 11 +270.846315 + 21 +127.248472 + 31 +0.0 + 0 +LINE + 5 +11d +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +270.846315 + 20 +127.248472 + 30 +0.0 + 11 +276.076042 + 21 +161.397450 + 31 +0.0 + 0 +LINE + 5 +11e +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +276.076042 + 20 +161.397450 + 30 +0.0 + 11 +300.000000 + 21 +136.474620 + 31 +0.0 + 0 +LINE + 5 +11f +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +300.000000 + 20 +136.474620 + 30 +0.0 + 11 +334.093680 + 21 +142.053472 + 31 +0.0 + 0 +LINE + 5 +120 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +334.093680 + 20 +142.053472 + 30 +0.0 + 11 +317.783572 + 21 +111.598860 + 31 +0.0 + 0 +LINE + 5 +121 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +317.783572 + 20 +111.598860 + 30 +0.0 + 11 +333.624900 + 21 +80.897798 + 31 +0.0 + 0 +LINE + 5 +122 +100 +AcDbEntity + 8 +Slide1 + 62 +7 +100 +AcDbLine + 10 +75.000000 + 20 +600.000000 + 30 +0.0 + 11 +150.000000 + 21 +600.000000 + 31 +0.0 + 0 +LINE + 5 +123 +100 +AcDbEntity + 8 +Slide1 + 62 +7 +100 +AcDbLine + 10 +150.000000 + 20 +600.000000 + 30 +0.0 + 11 +150.000000 + 21 +525.000000 + 31 +0.0 + 0 +LINE + 5 +124 +100 +AcDbEntity + 8 +Slide1 + 62 +7 +100 +AcDbLine + 10 +150.000000 + 20 +525.000000 + 30 +0.0 + 11 +75.000000 + 21 +525.000000 + 31 +0.0 + 0 +LINE + 5 +125 +100 +AcDbEntity + 8 +Slide1 + 62 +7 +100 +AcDbLine + 10 +75.000000 + 20 +525.000000 + 30 +0.0 + 11 +75.000000 + 21 +600.000000 + 31 +0.0 + 0 +LINE + 5 +126 +100 +AcDbEntity + 8 +Slide1 + 62 +1 +100 +AcDbLine + 10 +225.000000 + 20 +600.000000 + 30 +0.0 + 11 +375.000000 + 21 +600.000000 + 31 +0.0 + 0 +LINE + 5 +127 +100 +AcDbEntity + 8 +Slide1 + 62 +1 +100 +AcDbLine + 10 +375.000000 + 20 +600.000000 + 30 +0.0 + 11 +375.000000 + 21 +525.000000 + 31 +0.0 + 0 +LINE + 5 +128 +100 +AcDbEntity + 8 +Slide1 + 62 +1 +100 +AcDbLine + 10 +375.000000 + 20 +525.000000 + 30 +0.0 + 11 +225.000000 + 21 +525.000000 + 31 +0.0 + 0 +LINE + 5 +129 +100 +AcDbEntity + 8 +Slide1 + 62 +1 +100 +AcDbLine + 10 +225.000000 + 20 +525.000000 + 30 +0.0 + 11 +225.000000 + 21 +600.000000 + 31 +0.0 + 0 +LINE + 5 +12a +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbLine + 10 +483.707420 + 20 +600.000000 + 30 +0.0 + 11 +566.292580 + 21 +600.000000 + 31 +0.0 + 0 +SPLINE + 5 +12b +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +0 + 71 +3 + 72 +16 + 73 +12 + 74 +10 + 40 +0.000000 + 40 +0.000000 + 40 +0.000000 + 40 +0.000000 + 40 +19.641855 + 40 +60.655252 + 40 +116.900966 + 40 +157.914363 + 40 +194.132154 + 40 +235.145551 + 40 +291.391265 + 40 +332.404662 + 40 +352.046517 + 40 +352.046517 + 40 +352.046517 + 40 +352.046517 + 10 +375.000000 + 20 +300.000000 + 30 +0.0 + 10 +375.648652 + 20 +293.482054 + 30 +0.0 + 10 +377.651731 + 20 +273.354235 + 30 +0.0 + 10 +396.800281 + 20 +236.572428 + 30 +0.0 + 10 +442.770864 + 20 +217.685125 + 30 +0.0 + 10 +496.030996 + 20 +238.007710 + 30 +0.0 + 10 +478.969004 + 20 +286.992290 + 30 +0.0 + 10 +532.229136 + 20 +307.314875 + 30 +0.0 + 10 +578.199719 + 20 +288.427572 + 30 +0.0 + 10 +597.348269 + 20 +251.645765 + 30 +0.0 + 10 +599.351348 + 20 +231.517946 + 30 +0.0 + 10 +600.000000 + 20 +225.000000 + 30 +0.0 + 11 +375.000000 + 21 +300.000000 + 31 +0.0 + 11 +377.777778 + 21 +280.555556 + 31 +0.0 + 11 +397.222222 + 21 +244.444444 + 31 +0.0 + 11 +450.000000 + 21 +225.000000 + 31 +0.0 + 11 +486.111111 + 21 +244.444444 + 31 +0.0 + 11 +488.888889 + 21 +280.555556 + 31 +0.0 + 11 +525.000000 + 21 +300.000000 + 31 +0.0 + 11 +577.777778 + 21 +280.555556 + 31 +0.0 + 11 +597.222222 + 21 +244.444444 + 31 +0.0 + 11 +600.000000 + 21 +225.000000 + 31 +0.0 + 0 +LINE + 5 +12c +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbLine + 10 +600.000000 + 20 +570.786901 + 30 +0.0 + 11 +600.000000 + 21 +554.213099 + 31 +0.0 + 0 +SPLINE + 5 +12d +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +0 + 71 +3 + 72 +13 + 73 +9 + 74 +7 + 40 +0.000000 + 40 +0.000000 + 40 +0.000000 + 40 +0.000000 + 40 +8.804927 + 40 +17.394705 + 40 +25.802080 + 40 +33.904871 + 40 +41.670676 + 40 +49.339603 + 40 +49.339603 + 40 +49.339603 + 40 +49.339603 + 10 +566.292580 + 20 +600.000000 + 30 +0.0 + 10 +569.234269 + 20 +599.807758 + 30 +0.0 + 10 +575.045765 + 20 +599.427971 + 30 +0.0 + 10 +583.219162 + 20 +596.409240 + 30 +0.0 + 10 +590.291969 + 20 +591.789973 + 30 +0.0 + 10 +595.712344 + 20 +585.676608 + 30 +0.0 + 10 +599.311321 + 20 +578.516472 + 30 +0.0 + 10 +599.771403 + 20 +573.352621 + 30 +0.0 + 10 +600.000000 + 20 +570.786901 + 30 +0.0 + 11 +566.292580 + 21 +600.000000 + 31 +0.0 + 11 +575.040439 + 21 +598.999144 + 31 +0.0 + 11 +583.125065 + 21 +596.096884 + 31 +0.0 + 11 +590.127325 + 21 +591.443682 + 31 +0.0 + 11 +595.496404 + 21 +585.375055 + 31 +0.0 + 11 +598.845166 + 21 +578.368379 + 31 +0.0 + 11 +600.000000 + 21 +570.786901 + 31 +0.0 + 0 +LINE + 5 +12e +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbLine + 10 +566.292581 + 20 +525.000000 + 30 +0.0 + 11 +483.707420 + 21 +525.000000 + 31 +0.0 + 0 +SPLINE + 5 +12f +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +0 + 71 +3 + 72 +13 + 73 +9 + 74 +7 + 40 +0.000000 + 40 +0.000000 + 40 +0.000000 + 40 +0.000000 + 40 +7.668927 + 40 +15.434731 + 40 +23.537523 + 40 +31.944898 + 40 +40.534676 + 40 +49.339603 + 40 +49.339603 + 40 +49.339603 + 40 +49.339603 + 10 +600.000000 + 20 +554.213099 + 30 +0.0 + 10 +599.771403 + 20 +551.647379 + 30 +0.0 + 10 +599.311321 + 20 +546.483528 + 30 +0.0 + 10 +595.712344 + 20 +539.323392 + 30 +0.0 + 10 +590.291969 + 20 +533.210027 + 30 +0.0 + 10 +583.219162 + 20 +528.590760 + 30 +0.0 + 10 +575.045765 + 20 +525.572029 + 30 +0.0 + 10 +569.234269 + 20 +525.192242 + 30 +0.0 + 10 +566.292581 + 20 +525.000000 + 30 +0.0 + 11 +600.000000 + 21 +554.213099 + 31 +0.0 + 11 +598.845166 + 21 +546.631621 + 31 +0.0 + 11 +595.496404 + 21 +539.624945 + 31 +0.0 + 11 +590.127325 + 21 +533.556318 + 31 +0.0 + 11 +583.125065 + 21 +528.903116 + 31 +0.0 + 11 +575.040439 + 21 +526.000856 + 31 +0.0 + 11 +566.292581 + 21 +525.000000 + 31 +0.0 + 0 +LINE + 5 +130 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbLine + 10 +450.000000 + 20 +554.213099 + 30 +0.0 + 11 +450.000000 + 21 +570.786901 + 31 +0.0 + 0 +SPLINE + 5 +131 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +0 + 71 +3 + 72 +13 + 73 +9 + 74 +7 + 40 +0.000000 + 40 +0.000000 + 40 +0.000000 + 40 +0.000000 + 40 +8.804927 + 40 +17.394705 + 40 +25.802080 + 40 +33.904871 + 40 +41.670676 + 40 +49.339603 + 40 +49.339603 + 40 +49.339603 + 40 +49.339603 + 10 +483.707420 + 20 +525.000000 + 30 +0.0 + 10 +480.765731 + 20 +525.192242 + 30 +0.0 + 10 +474.954235 + 20 +525.572029 + 30 +0.0 + 10 +466.780838 + 20 +528.590760 + 30 +0.0 + 10 +459.708031 + 20 +533.210027 + 30 +0.0 + 10 +454.287656 + 20 +539.323392 + 30 +0.0 + 10 +450.688679 + 20 +546.483528 + 30 +0.0 + 10 +450.228597 + 20 +551.647379 + 30 +0.0 + 10 +450.000000 + 20 +554.213099 + 30 +0.0 + 11 +483.707420 + 21 +525.000000 + 31 +0.0 + 11 +474.959561 + 21 +526.000856 + 31 +0.0 + 11 +466.874935 + 21 +528.903116 + 31 +0.0 + 11 +459.872675 + 21 +533.556318 + 31 +0.0 + 11 +454.503596 + 21 +539.624945 + 31 +0.0 + 11 +451.154834 + 21 +546.631621 + 31 +0.0 + 11 +450.000000 + 21 +554.213099 + 31 +0.0 + 0 +LINE + 5 +132 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbLine + 10 +483.707420 + 20 +600.000000 + 30 +0.0 + 11 +483.707420 + 21 +600.000000 + 31 +0.0 + 0 +SPLINE + 5 +133 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +0 + 71 +3 + 72 +13 + 73 +9 + 74 +7 + 40 +0.000000 + 40 +0.000000 + 40 +0.000000 + 40 +0.000000 + 40 +7.668927 + 40 +15.434731 + 40 +23.537523 + 40 +31.944898 + 40 +40.534676 + 40 +49.339603 + 40 +49.339603 + 40 +49.339603 + 40 +49.339603 + 10 +450.000000 + 20 +570.786901 + 30 +0.0 + 10 +450.228597 + 20 +573.352621 + 30 +0.0 + 10 +450.688679 + 20 +578.516472 + 30 +0.0 + 10 +454.287656 + 20 +585.676608 + 30 +0.0 + 10 +459.708031 + 20 +591.789973 + 30 +0.0 + 10 +466.780838 + 20 +596.409240 + 30 +0.0 + 10 +474.954235 + 20 +599.427971 + 30 +0.0 + 10 +480.765731 + 20 +599.807758 + 30 +0.0 + 10 +483.707420 + 20 +600.000000 + 30 +0.0 + 11 +450.000000 + 21 +570.786901 + 31 +0.0 + 11 +451.154834 + 21 +578.368379 + 31 +0.0 + 11 +454.503596 + 21 +585.375055 + 31 +0.0 + 11 +459.872675 + 21 +591.443682 + 31 +0.0 + 11 +466.874935 + 21 +596.096884 + 31 +0.0 + 11 +474.959561 + 21 +598.999144 + 31 +0.0 + 11 +483.707420 + 21 +600.000000 + 31 +0.0 + 0 +ENDSEC + 0 +SECTION + 2 +OBJECTS + 0 +DICTIONARY + 5 +C +330 +0 +100 +AcDbDictionary + 3 +ACAD_GROUP +350 +D + 3 +ACAD_MLINESTYLE +350 +17 + 0 +DICTIONARY + 5 +D +330 +C +100 +AcDbDictionary + 0 +DICTIONARY + 5 +1A +330 +C +100 +AcDbDictionary + 0 +DICTIONARY + 5 +17 +330 +C +100 +AcDbDictionary + 3 +STANDARD +350 +18 + 0 +DICTIONARY + 5 +19 +330 +C +100 +AcDbDictionary + 0 +ENDSEC + 0 +EOF diff --git a/share/extensions/tests/data/refs/dxf_outlines__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/dxf_outlines__--id__p1__--id__r3.out new file mode 100644 index 0000000..148cf1b --- /dev/null +++ b/share/extensions/tests/data/refs/dxf_outlines__--id__p1__--id__r3.out @@ -0,0 +1,3412 @@ + 0 +SECTION + 2 +HEADER + 9 +$ACADVER + 1 +AC1014 + 9 +$HANDSEED + 5 +FFFF + 9 +$MEASUREMENT + 70 + 1 + 0 +ENDSEC + 0 +SECTION + 2 +TABLES + 0 +TABLE + 2 +VPORT + 5 +8 +330 +0 +100 +AcDbSymbolTable + 70 + 4 + 0 +VPORT + 5 +2E +330 +8 +100 +AcDbSymbolTableRecord +100 +AcDbViewportTableRecord + 2 +*ACTIVE + 70 + 0 + 10 +0.0 + 20 +0.0 + 11 +1.0 + 21 +1.0 + 12 +210.0 + 22 +148.5 + 13 +0.0 + 23 +0.0 + 14 +10.0 + 24 +10.0 + 15 +10.0 + 25 +10.0 + 16 +0.0 + 26 +0.0 + 36 +1.0 + 17 +0.0 + 27 +0.0 + 37 +0.0 + 40 +341.0 + 41 +1.24 + 42 +50.0 + 43 +0.0 + 44 +0.0 + 50 +0.0 + 51 +0.0 + 71 + 0 + 72 + 100 + 73 + 1 + 74 + 3 + 75 + 0 + 76 + 0 + 77 + 0 + 78 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +LTYPE + 5 +5 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +LTYPE + 5 +14 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +BYBLOCK + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +15 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +BYLAYER + 70 + 0 + 3 + + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +LTYPE + 5 +16 +330 +5 +100 +AcDbSymbolTableRecord +100 +AcDbLinetypeTableRecord + 2 +CONTINUOUS + 70 + 0 + 3 +Solid line + 72 + 65 + 73 + 0 + 40 +0.0 + 0 +ENDTAB + 0 +TABLE + 2 +LAYER + 5 +2 +100 +AcDbSymbolTable + 70 +4 + 0 +LAYER + 5 +50 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +0 + 70 +0 + 6 +CONTINUOUS + 0 +LAYER + 5 +51 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Slide3 + 70 +0 + 6 +CONTINUOUS + 0 +LAYER + 5 +52 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Slide2 + 70 +0 + 6 +CONTINUOUS + 0 +LAYER + 5 +53 +100 +AcDbSymbolTableRecord +100 +AcDbLayerTableRecord + 2 +Slide1 + 70 +0 + 6 +CONTINUOUS + 0 +ENDTAB + 0 +TABLE + 2 +STYLE + 5 +3 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +STYLE + 5 +11 +330 +3 +100 +AcDbSymbolTableRecord +100 +AcDbTextStyleTableRecord + 2 +STANDARD + 70 + 0 + 40 +0.0 + 41 +1.0 + 50 +0.0 + 71 + 0 + 42 +2.5 + 3 +txt + 4 + + 0 +ENDTAB + 0 +TABLE + 2 +VIEW + 5 +6 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +UCS + 5 +7 +330 +0 +100 +AcDbSymbolTable + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +APPID + 5 +9 +330 +0 +100 +AcDbSymbolTable + 70 + 2 + 0 +APPID + 5 +12 +330 +9 +100 +AcDbSymbolTableRecord +100 +AcDbRegAppTableRecord + 2 +ACAD + 70 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +DIMSTYLE + 5 +A +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +DIMSTYLE +105 +27 +330 +A +100 +AcDbSymbolTableRecord +100 +AcDbDimStyleTableRecord + 2 +ISO-25 + 70 + 0 + 3 + + 4 + + 5 + + 6 + + 7 + + 40 +1.0 + 41 +2.5 + 42 +0.625 + 43 +3.75 + 44 +1.25 + 45 +0.0 + 46 +0.0 + 47 +0.0 + 48 +0.0 +140 +2.5 +141 +2.5 +142 +0.0 +143 +0.03937007874016 +144 +1.0 +145 +0.0 +146 +1.0 +147 +0.625 + 71 + 0 + 72 + 0 + 73 + 0 + 74 + 0 + 75 + 0 + 76 + 0 + 77 + 1 + 78 + 8 +170 + 0 +171 + 3 +172 + 1 +173 + 0 +174 + 0 +175 + 0 +176 + 0 +177 + 0 +178 + 0 +270 + 2 +271 + 2 +272 + 2 +273 + 2 +274 + 3 +340 +11 +275 + 0 +280 + 0 +281 + 0 +282 + 0 +283 + 0 +284 + 8 +285 + 0 +286 + 0 +287 + 3 +288 + 0 + 0 +ENDTAB + 0 +TABLE + 2 +BLOCK_RECORD + 5 +1 +330 +0 +100 +AcDbSymbolTable + 70 + 1 + 0 +BLOCK_RECORD + 5 +1F +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*MODEL_SPACE + 0 +BLOCK_RECORD + 5 +1B +330 +1 +100 +AcDbSymbolTableRecord +100 +AcDbBlockTableRecord + 2 +*PAPER_SPACE + 0 +ENDTAB + 0 +ENDSEC + 0 +SECTION + 2 +BLOCKS + 0 +BLOCK + 5 +20 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockBegin + 2 +*MODEL_SPACE + 70 + 0 + 10 +0.0 + 20 +0.0 + 30 +0.0 + 3 +*MODEL_SPACE + 1 + + 0 +ENDBLK + 5 +21 +330 +1F +100 +AcDbEntity + 8 +0 +100 +AcDbBlockEnd + 0 +BLOCK + 5 +1C +330 +1B +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockBegin + 2 +*PAPER_SPACE + 1 + + 0 +ENDBLK + 5 +1D +330 +1B +100 +AcDbEntity + 67 + 1 + 8 +0 +100 +AcDbBlockEnd + 0 +ENDSEC + 0 +SECTION + 2 +ENTITIES + 0 +LINE + 5 +100 +100 +AcDbEntity + 8 +Slide3 + 62 +7 +100 +AcDbLine + 10 +488.481675 + 20 +484.555043 + 30 +0.0 + 11 +675.000015 + 21 +484.555043 + 31 +0.0 + 0 +LINE + 5 +101 +100 +AcDbEntity + 8 +Slide3 + 62 +7 +100 +AcDbLine + 10 +675.000015 + 20 +484.555043 + 30 +0.0 + 11 +675.000015 + 21 +333.431460 + 31 +0.0 + 0 +LINE + 5 +102 +100 +AcDbEntity + 8 +Slide3 + 62 +7 +100 +AcDbLine + 10 +675.000015 + 20 +333.431460 + 30 +0.0 + 11 +488.481675 + 21 +333.431460 + 31 +0.0 + 0 +LINE + 5 +103 +100 +AcDbEntity + 8 +Slide3 + 62 +7 +100 +AcDbLine + 10 +488.481675 + 20 +333.431460 + 30 +0.0 + 11 +488.481675 + 21 +484.555043 + 31 +0.0 + 0 +SPLINE + 5 +104 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +112.500000 + 20 +450.000000 + 30 +0.0 + 10 +97.332666 + 20 +450.000000 + 30 +0.0 + 10 +83.658805 + 20 +440.863418 + 30 +0.0 + 10 +77.854518 + 20 +426.850629 + 30 +0.0 + 0 +SPLINE + 5 +105 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +77.854518 + 20 +426.850629 + 30 +0.0 + 10 +72.050230 + 20 +412.837839 + 30 +0.0 + 10 +75.258571 + 20 +396.708421 + 30 +0.0 + 10 +85.983496 + 20 +385.983496 + 30 +0.0 + 0 +SPLINE + 5 +106 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +85.983496 + 20 +385.983496 + 30 +0.0 + 10 +96.708421 + 20 +375.258571 + 30 +0.0 + 10 +112.837839 + 20 +372.050230 + 30 +0.0 + 10 +126.850629 + 20 +377.854518 + 30 +0.0 + 0 +SPLINE + 5 +107 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +126.850629 + 20 +377.854518 + 30 +0.0 + 10 +140.863418 + 20 +383.658805 + 30 +0.0 + 10 +150.000000 + 20 +397.332666 + 30 +0.0 + 10 +150.000000 + 20 +412.500000 + 30 +0.0 + 0 +SPLINE + 5 +108 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +150.000000 + 20 +412.500000 + 30 +0.0 + 10 +150.000000 + 20 +422.445618 + 30 +0.0 + 10 +146.049118 + 20 +431.983890 + 30 +0.0 + 10 +139.016504 + 20 +439.016504 + 30 +0.0 + 0 +SPLINE + 5 +109 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +139.016504 + 20 +439.016504 + 30 +0.0 + 10 +131.983890 + 20 +446.049118 + 30 +0.0 + 10 +122.445618 + 20 +450.000000 + 30 +0.0 + 10 +112.500000 + 20 +450.000000 + 30 +0.0 + 0 +LINE + 5 +10a +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbLine + 10 +112.500000 + 20 +450.000000 + 30 +0.0 + 11 +112.500000 + 21 +450.000000 + 31 +0.0 + 0 +SPLINE + 5 +10b +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +300.000000 + 20 +450.000000 + 30 +0.0 + 10 +269.665332 + 20 +450.000000 + 30 +0.0 + 10 +242.317610 + 20 +440.863418 + 30 +0.0 + 10 +230.709035 + 20 +426.850629 + 30 +0.0 + 0 +SPLINE + 5 +10c +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +230.709035 + 20 +426.850629 + 30 +0.0 + 10 +219.100460 + 20 +412.837839 + 30 +0.0 + 10 +225.517142 + 20 +396.708421 + 30 +0.0 + 10 +246.966991 + 20 +385.983496 + 30 +0.0 + 0 +SPLINE + 5 +10d +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +246.966991 + 20 +385.983496 + 30 +0.0 + 10 +268.416841 + 20 +375.258571 + 30 +0.0 + 10 +300.675678 + 20 +372.050230 + 30 +0.0 + 10 +328.701257 + 20 +377.854518 + 30 +0.0 + 0 +SPLINE + 5 +10e +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +328.701257 + 20 +377.854518 + 30 +0.0 + 10 +356.726837 + 20 +383.658805 + 30 +0.0 + 10 +375.000000 + 20 +397.332666 + 30 +0.0 + 10 +375.000000 + 20 +412.500000 + 30 +0.0 + 0 +SPLINE + 5 +10f +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +375.000000 + 20 +412.500000 + 30 +0.0 + 10 +375.000000 + 20 +422.445618 + 30 +0.0 + 10 +367.098237 + 20 +431.983890 + 30 +0.0 + 10 +353.033009 + 20 +439.016504 + 30 +0.0 + 0 +SPLINE + 5 +110 +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +353.033009 + 20 +439.016504 + 30 +0.0 + 10 +338.967780 + 20 +446.049118 + 30 +0.0 + 10 +319.891237 + 20 +450.000000 + 30 +0.0 + 10 +300.000000 + 20 +450.000000 + 30 +0.0 + 0 +LINE + 5 +111 +100 +AcDbEntity + 8 +Slide2 + 62 +1 +100 +AcDbLine + 10 +300.000000 + 20 +450.000000 + 30 +0.0 + 11 +300.000000 + 21 +450.000000 + 31 +0.0 + 0 +SPLINE + 5 +112 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +587.314763 + 20 +391.632142 + 30 +0.0 + 10 +569.111537 + 20 +378.042706 + 30 +0.0 + 10 +535.392878 + 20 +371.919721 + 30 +0.0 + 10 +503.990903 + 20 +376.501328 + 30 +0.0 + 0 +SPLINE + 5 +113 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +503.990903 + 20 +376.501328 + 30 +0.0 + 10 +472.588930 + 20 +381.082935 + 30 +0.0 + 10 +450.747983 + 20 +395.312169 + 30 +0.0 + 10 +450.018645 + 20 +411.663900 + 30 +0.0 + 0 +SPLINE + 5 +114 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +450.018645 + 20 +411.663900 + 30 +0.0 + 10 +449.289307 + 20 +428.015634 + 30 +0.0 + 10 +469.839842 + 20 +442.717568 + 30 +0.0 + 10 +500.802098 + 20 +447.994582 + 30 +0.0 + 0 +SPLINE + 5 +115 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +500.802098 + 20 +447.994582 + 30 +0.0 + 10 +531.764347 + 20 +453.271596 + 30 +0.0 + 10 +565.995413 + 20 +447.906301 + 30 +0.0 + 10 +585.392197 + 20 +434.736135 + 30 +0.0 + 0 +LINE + 5 +116 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +585.392197 + 20 +434.736135 + 30 +0.0 + 11 +525.000000 + 21 +412.500000 + 31 +0.0 + 0 +LINE + 5 +117 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +525.000000 + 20 +412.500000 + 30 +0.0 + 11 +587.314763 + 21 +391.632142 + 31 +0.0 + 0 +LINE + 5 +118 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbLine + 10 +75.000000 + 20 +300.000000 + 30 +0.0 + 11 +150.000000 + 21 +225.000000 + 31 +0.0 + 0 +LINE + 5 +119 +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbLine + 10 +150.000000 + 20 +225.000000 + 30 +0.0 + 11 +225.000000 + 21 +300.000000 + 31 +0.0 + 0 +LINE + 5 +11a +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbLine + 10 +225.000000 + 20 +300.000000 + 30 +0.0 + 11 +300.000000 + 21 +225.000000 + 31 +0.0 + 0 +SPLINE + 5 +11b +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +375.000000 + 20 +300.000000 + 30 +0.0 + 10 +375.000000 + 20 +300.000000 + 30 +0.0 + 10 +375.000000 + 20 +225.000000 + 30 +0.0 + 10 +450.000000 + 20 +225.000000 + 30 +0.0 + 0 +SPLINE + 5 +11c +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +450.000000 + 20 +225.000000 + 30 +0.0 + 10 +525.000000 + 20 +225.000000 + 30 +0.0 + 10 +450.000000 + 20 +300.000000 + 30 +0.0 + 10 +525.000000 + 20 +300.000000 + 30 +0.0 + 0 +SPLINE + 5 +11d +100 +AcDbEntity + 8 +Slide2 + 62 +7 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +525.000000 + 20 +300.000000 + 30 +0.0 + 10 +600.000000 + 20 +300.000000 + 30 +0.0 + 10 +600.000000 + 20 +225.000000 + 30 +0.0 + 10 +600.000000 + 20 +225.000000 + 30 +0.0 + 0 +LINE + 5 +11e +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +183.624900 + 20 +83.144963 + 30 +0.0 + 11 +149.620747 + 21 +89.245807 + 31 +0.0 + 0 +LINE + 5 +11f +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +149.620747 + 20 +89.245807 + 30 +0.0 + 11 +125.317537 + 21 +64.692660 + 31 +0.0 + 0 +LINE + 5 +120 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +125.317537 + 20 +64.692660 + 30 +0.0 + 11 +120.611925 + 21 +98.917800 + 31 +0.0 + 0 +LINE + 5 +121 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +120.611925 + 20 +98.917800 + 30 +0.0 + 11 +89.750385 + 21 +114.444180 + 31 +0.0 + 0 +LINE + 5 +122 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +89.750385 + 20 +114.444180 + 30 +0.0 + 11 +120.846315 + 21 +129.495637 + 31 +0.0 + 0 +LINE + 5 +123 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +120.846315 + 20 +129.495637 + 30 +0.0 + 11 +126.076042 + 21 +163.644615 + 31 +0.0 + 0 +LINE + 5 +124 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +126.076042 + 20 +163.644615 + 30 +0.0 + 11 +150.000000 + 21 +138.721785 + 31 +0.0 + 0 +LINE + 5 +125 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +150.000000 + 20 +138.721785 + 30 +0.0 + 11 +184.093680 + 21 +144.300637 + 31 +0.0 + 0 +LINE + 5 +126 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +184.093680 + 20 +144.300637 + 30 +0.0 + 11 +167.783572 + 21 +113.846025 + 31 +0.0 + 0 +LINE + 5 +127 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +167.783572 + 20 +113.846025 + 30 +0.0 + 11 +183.624900 + 21 +83.144963 + 31 +0.0 + 0 +LINE + 5 +128 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +333.624900 + 20 +80.897798 + 30 +0.0 + 11 +299.620747 + 21 +86.998642 + 31 +0.0 + 0 +LINE + 5 +129 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +299.620747 + 20 +86.998642 + 30 +0.0 + 11 +275.317537 + 21 +62.445495 + 31 +0.0 + 0 +LINE + 5 +12a +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +275.317537 + 20 +62.445495 + 30 +0.0 + 11 +270.611925 + 21 +96.670635 + 31 +0.0 + 0 +LINE + 5 +12b +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +270.611925 + 20 +96.670635 + 30 +0.0 + 11 +239.750385 + 21 +112.197015 + 31 +0.0 + 0 +LINE + 5 +12c +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +239.750385 + 20 +112.197015 + 30 +0.0 + 11 +270.846315 + 21 +127.248472 + 31 +0.0 + 0 +LINE + 5 +12d +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +270.846315 + 20 +127.248472 + 30 +0.0 + 11 +276.076042 + 21 +161.397450 + 31 +0.0 + 0 +LINE + 5 +12e +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +276.076042 + 20 +161.397450 + 30 +0.0 + 11 +300.000000 + 21 +136.474620 + 31 +0.0 + 0 +LINE + 5 +12f +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +300.000000 + 20 +136.474620 + 30 +0.0 + 11 +334.093680 + 21 +142.053472 + 31 +0.0 + 0 +LINE + 5 +130 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +334.093680 + 20 +142.053472 + 30 +0.0 + 11 +317.783572 + 21 +111.598860 + 31 +0.0 + 0 +LINE + 5 +131 +100 +AcDbEntity + 8 +Slide2 + 62 +3 +100 +AcDbLine + 10 +317.783572 + 20 +111.598860 + 30 +0.0 + 11 +333.624900 + 21 +80.897798 + 31 +0.0 + 0 +LINE + 5 +132 +100 +AcDbEntity + 8 +Slide1 + 62 +7 +100 +AcDbLine + 10 +75.000000 + 20 +600.000000 + 30 +0.0 + 11 +150.000000 + 21 +600.000000 + 31 +0.0 + 0 +LINE + 5 +133 +100 +AcDbEntity + 8 +Slide1 + 62 +7 +100 +AcDbLine + 10 +150.000000 + 20 +600.000000 + 30 +0.0 + 11 +150.000000 + 21 +525.000000 + 31 +0.0 + 0 +LINE + 5 +134 +100 +AcDbEntity + 8 +Slide1 + 62 +7 +100 +AcDbLine + 10 +150.000000 + 20 +525.000000 + 30 +0.0 + 11 +75.000000 + 21 +525.000000 + 31 +0.0 + 0 +LINE + 5 +135 +100 +AcDbEntity + 8 +Slide1 + 62 +7 +100 +AcDbLine + 10 +75.000000 + 20 +525.000000 + 30 +0.0 + 11 +75.000000 + 21 +600.000000 + 31 +0.0 + 0 +LINE + 5 +136 +100 +AcDbEntity + 8 +Slide1 + 62 +1 +100 +AcDbLine + 10 +225.000000 + 20 +600.000000 + 30 +0.0 + 11 +375.000000 + 21 +600.000000 + 31 +0.0 + 0 +LINE + 5 +137 +100 +AcDbEntity + 8 +Slide1 + 62 +1 +100 +AcDbLine + 10 +375.000000 + 20 +600.000000 + 30 +0.0 + 11 +375.000000 + 21 +525.000000 + 31 +0.0 + 0 +LINE + 5 +138 +100 +AcDbEntity + 8 +Slide1 + 62 +1 +100 +AcDbLine + 10 +375.000000 + 20 +525.000000 + 30 +0.0 + 11 +225.000000 + 21 +525.000000 + 31 +0.0 + 0 +LINE + 5 +139 +100 +AcDbEntity + 8 +Slide1 + 62 +1 +100 +AcDbLine + 10 +225.000000 + 20 +525.000000 + 30 +0.0 + 11 +225.000000 + 21 +600.000000 + 31 +0.0 + 0 +LINE + 5 +13a +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbLine + 10 +483.707420 + 20 +600.000000 + 30 +0.0 + 11 +566.292580 + 21 +600.000000 + 31 +0.0 + 0 +SPLINE + 5 +13b +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +566.292580 + 20 +600.000000 + 30 +0.0 + 10 +575.232344 + 20 +600.000000 + 30 +0.0 + 10 +583.805958 + 20 +596.922200 + 30 +0.0 + 10 +590.127325 + 20 +591.443682 + 30 +0.0 + 0 +SPLINE + 5 +13c +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +590.127325 + 20 +591.443682 + 30 +0.0 + 10 +596.448693 + 20 +585.965163 + 30 +0.0 + 10 +600.000000 + 20 +578.534697 + 30 +0.0 + 10 +600.000000 + 20 +570.786901 + 30 +0.0 + 0 +LINE + 5 +13d +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbLine + 10 +600.000000 + 20 +570.786901 + 30 +0.0 + 11 +600.000000 + 21 +554.213099 + 31 +0.0 + 0 +SPLINE + 5 +13e +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +600.000000 + 20 +554.213099 + 30 +0.0 + 10 +600.000000 + 20 +546.465303 + 30 +0.0 + 10 +596.448693 + 20 +539.034837 + 30 +0.0 + 10 +590.127325 + 20 +533.556318 + 30 +0.0 + 0 +SPLINE + 5 +13f +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +590.127325 + 20 +533.556318 + 30 +0.0 + 10 +583.805958 + 20 +528.077800 + 30 +0.0 + 10 +575.232344 + 20 +525.000000 + 30 +0.0 + 10 +566.292581 + 20 +525.000000 + 30 +0.0 + 0 +LINE + 5 +140 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbLine + 10 +566.292581 + 20 +525.000000 + 30 +0.0 + 11 +483.707420 + 21 +525.000000 + 31 +0.0 + 0 +SPLINE + 5 +141 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +483.707420 + 20 +525.000000 + 30 +0.0 + 10 +474.767656 + 20 +525.000000 + 30 +0.0 + 10 +466.194042 + 20 +528.077800 + 30 +0.0 + 10 +459.872675 + 20 +533.556318 + 30 +0.0 + 0 +SPLINE + 5 +142 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +459.872675 + 20 +533.556318 + 30 +0.0 + 10 +453.551307 + 20 +539.034837 + 30 +0.0 + 10 +450.000000 + 20 +546.465303 + 30 +0.0 + 10 +450.000000 + 20 +554.213099 + 30 +0.0 + 0 +LINE + 5 +143 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbLine + 10 +450.000000 + 20 +554.213099 + 30 +0.0 + 11 +450.000000 + 21 +570.786901 + 31 +0.0 + 0 +SPLINE + 5 +144 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +450.000000 + 20 +570.786901 + 30 +0.0 + 10 +450.000000 + 20 +578.534697 + 30 +0.0 + 10 +453.551307 + 20 +585.965163 + 30 +0.0 + 10 +459.872675 + 20 +591.443682 + 30 +0.0 + 0 +SPLINE + 5 +145 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbSpline + 70 +8 + 71 +3 + 72 +8 + 73 +4 + 74 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +0 + 40 +1 + 40 +1 + 40 +1 + 40 +1 + 10 +459.872675 + 20 +591.443682 + 30 +0.0 + 10 +466.194042 + 20 +596.922200 + 30 +0.0 + 10 +474.767656 + 20 +600.000000 + 30 +0.0 + 10 +483.707420 + 20 +600.000000 + 30 +0.0 + 0 +LINE + 5 +146 +100 +AcDbEntity + 8 +Slide1 + 62 +3 +100 +AcDbLine + 10 +483.707420 + 20 +600.000000 + 30 +0.0 + 11 +483.707420 + 21 +600.000000 + 31 +0.0 + 0 +ENDSEC + 0 +SECTION + 2 +OBJECTS + 0 +DICTIONARY + 5 +C +330 +0 +100 +AcDbDictionary + 3 +ACAD_GROUP +350 +D + 3 +ACAD_MLINESTYLE +350 +17 + 0 +DICTIONARY + 5 +D +330 +C +100 +AcDbDictionary + 0 +DICTIONARY + 5 +1A +330 +C +100 +AcDbDictionary + 0 +DICTIONARY + 5 +17 +330 +C +100 +AcDbDictionary + 3 +STANDARD +350 +18 + 0 +DICTIONARY + 5 +19 +330 +C +100 +AcDbDictionary + 0 +ENDSEC + 0 +EOF diff --git a/share/extensions/tests/data/refs/edge3d__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/edge3d__--id__p1__--id__r3.out new file mode 100644 index 0000000..3bb5a06 --- /dev/null +++ b/share/extensions/tests/data/refs/edge3d__--id__p1__--id__r3.out @@ -0,0 +1,44 @@ + + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/embedimage.out b/share/extensions/tests/data/refs/embedimage.out new file mode 100644 index 0000000..6f7540b --- /dev/null +++ b/share/extensions/tests/data/refs/embedimage.out @@ -0,0 +1,16 @@ + + + + + + + image/svg+xml + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/export_gimp_palette.out b/share/extensions/tests/data/refs/export_gimp_palette.out new file mode 100644 index 0000000..d5e846b --- /dev/null +++ b/share/extensions/tests/data/refs/export_gimp_palette.out @@ -0,0 +1,12 @@ +GIMP Palette +Name: +# + 0 0 0 #000000 + 0 0 255 BLUE + 46 52 54 #2E3436 + 52 101 164 #3465A4 + 92 53 102 #5C3566 +114 159 207 #729FCF +117 80 123 #75507B +204 0 0 #CC0000 +255 0 0 RED diff --git a/share/extensions/tests/data/refs/export_gimp_palette__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/export_gimp_palette__--id__p1__--id__r3.out new file mode 100644 index 0000000..17b677f --- /dev/null +++ b/share/extensions/tests/data/refs/export_gimp_palette__--id__p1__--id__r3.out @@ -0,0 +1,6 @@ +GIMP Palette +Name: +# + 46 52 54 #2E3436 +204 0 0 #CC0000 +255 0 0 RED diff --git a/share/extensions/tests/data/refs/extractimage__--selectedonly__False__--filepath__TMP_DIR__img__.out b/share/extensions/tests/data/refs/extractimage__--selectedonly__False__--filepath__TMP_DIR__img__.out new file mode 100644 index 0000000..3bc0a06 Binary files /dev/null and b/share/extensions/tests/data/refs/extractimage__--selectedonly__False__--filepath__TMP_DIR__img__.out differ diff --git a/share/extensions/tests/data/refs/extractimage__--selectedonly__True__--id__embeded_image01__--filepath__TMP_DIR__img__.out b/share/extensions/tests/data/refs/extractimage__--selectedonly__True__--id__embeded_image01__--filepath__TMP_DIR__img__.out new file mode 100644 index 0000000..3bc0a06 Binary files /dev/null and b/share/extensions/tests/data/refs/extractimage__--selectedonly__True__--id__embeded_image01__--filepath__TMP_DIR__img__.out differ diff --git a/share/extensions/tests/data/refs/extrude__--id__p1__--id__p2.out b/share/extensions/tests/data/refs/extrude__--id__p1__--id__p2.out new file mode 100644 index 0000000..d6b2b44 --- /dev/null +++ b/share/extensions/tests/data/refs/extrude__--id__p1__--id__p2.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/fig_input.out b/share/extensions/tests/data/refs/fig_input.out new file mode 100644 index 0000000..8200ef9 --- /dev/null +++ b/share/extensions/tests/data/refs/fig_input.out @@ -0,0 +1,22 @@ + + + + + + + + + + + + + +Hello Inkscape + + diff --git a/share/extensions/tests/data/refs/flatten.out b/share/extensions/tests/data/refs/flatten.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/flatten__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/flatten__--id__p1__--id__r3.out new file mode 100644 index 0000000..f05ae54 --- /dev/null +++ b/share/extensions/tests/data/refs/flatten__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/foldablebox__--proportion__0__5__--guide__true.out b/share/extensions/tests/data/refs/foldablebox__--proportion__0__5__--guide__true.out new file mode 100644 index 0000000..34f61cd --- /dev/null +++ b/share/extensions/tests/data/refs/foldablebox__--proportion__0__5__--guide__true.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/foldablebox__--width__20__--height__20__--depth__2__2.out b/share/extensions/tests/data/refs/foldablebox__--width__20__--height__20__--depth__2__2.out new file mode 100644 index 0000000..e4872bc --- /dev/null +++ b/share/extensions/tests/data/refs/foldablebox__--width__20__--height__20__--depth__2__2.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/fractalize__--id__p1__--id__p2.out b/share/extensions/tests/data/refs/fractalize__--id__p1__--id__p2.out new file mode 100644 index 0000000..ec00e57 --- /dev/null +++ b/share/extensions/tests/data/refs/fractalize__--id__p1__--id__p2.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/funcplot__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/funcplot__--id__p1__--id__r3.out new file mode 100644 index 0000000..b0e5bd5 --- /dev/null +++ b/share/extensions/tests/data/refs/funcplot__--id__p1__--id__r3.out @@ -0,0 +1,40 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/gcodetools__06eec9617e749f35cb949d850415f68d.out b/share/extensions/tests/data/refs/gcodetools__06eec9617e749f35cb949d850415f68d.out new file mode 100644 index 0000000..5ccabd0 --- /dev/null +++ b/share/extensions/tests/data/refs/gcodetools__06eec9617e749f35cb949d850415f68d.out @@ -0,0 +1,45 @@ +% +(Header) +(Generated by gcodetools from Inkscape.) +(Using default header. To add your own header create file "header" in the output dir.) +M3 +(Header end.) +G21 (All units in mm) + +(Start cutting path id: p1) +(Change tool to Default tool) + +G00 Z5.000000 +G00 X100.000000 Y400.000000 + +G01 Z-0.125000 F100.0(Penetrate) +G01 X200.000000 Y300.000000 Z-0.125000 F400.000000 +G01 X300.000000 Y400.000000 Z-0.125000 +G01 X400.000000 Y300.000000 Z-0.125000 +G00 Z5.000000 + +(End cutting path id: p1) + + +(Start cutting path id: p1) +(Change tool to Default tool) + +G00 Z5.000000 +G00 X100.000000 Y400.000000 + +G01 Z-0.125000 F100.0(Penetrate) +G01 X200.000000 Y300.000000 Z-0.125000 F400.000000 +G01 X300.000000 Y400.000000 Z-0.125000 +G01 X400.000000 Y300.000000 Z-0.125000 +G00 Z5.000000 + +(End cutting path id: p1) + + +(Footer) +M5 +G00 X0.0000 Y0.0000 +M2 +(Using default footer. To add your own footer create file "footer" in the output dir.) +(end) +% \ No newline at end of file diff --git a/share/extensions/tests/data/refs/gcodetools__2bf3b298fa730dafb8c6fd51921078f0.out b/share/extensions/tests/data/refs/gcodetools__2bf3b298fa730dafb8c6fd51921078f0.out new file mode 100644 index 0000000..8694e43 --- /dev/null +++ b/share/extensions/tests/data/refs/gcodetools__2bf3b298fa730dafb8c6fd51921078f0.out @@ -0,0 +1,40 @@ +% +(Header) +(Generated by gcodetools from Inkscape.) +(Using default header. To add your own header create file "header" in the output dir.) +M3 +(Header end.) +G21 (All units in mm) +(Change tool to Default tool) + +G01 Z 16.000000 F 800.000000 +G01 X 100.000000 Z 16.000000 F 800.000000 +G01 X 100.000000 Z 16.000000 F 800.000000 +G01 X 100.000000 Z 401.000000 F 800.000000 +G01 X 200.000000 Z 301.000000 F 800.000000 +G01 X 300.000000 Z 401.000000 F 800.000000 +G01 X 400.000000 Z 301.000000 F 800.000000 +G01 X 400.000000 Z 16.000000 F 800.000000 +G01 X 100.000000 Z 16.000000 F 800.000000 + +(Fine cutting start) +(Calculating fine cut using Move path) + +(Fine cut 1-th cicle start) +G01 X 100.000000 Z 16.000000 F 800.000000 +G01 X 100.000000 Z 401.000000 F 800.000000 +G01 X 100.000000 Z 400.000000 F 800.000000 +G01 X 100.000000 Z 400.000000 F 800.000000 +G01 X 200.000000 Z 300.000000 F 800.000000 +G01 X 300.000000 Z 400.000000 F 800.000000 +G01 X 400.000000 Z 300.000000 F 800.000000 +G01 Z 16.000000 F 800.000000 +G01 X 100.000000 Z 16.000000 F 800.000000 + +(Footer) +M5 +G00 X0.0000 Y0.0000 +M2 +(Using default footer. To add your own footer create file "footer" in the output dir.) +(end) +% \ No newline at end of file diff --git a/share/extensions/tests/data/refs/gcodetools__4a9fb751baf0533eadd4d394957c966d.out b/share/extensions/tests/data/refs/gcodetools__4a9fb751baf0533eadd4d394957c966d.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/generate_voronoi__--id__r3__--id__p1.out b/share/extensions/tests/data/refs/generate_voronoi__--id__r3__--id__p1.out new file mode 100644 index 0000000..700fba3 --- /dev/null +++ b/share/extensions/tests/data/refs/generate_voronoi__--id__r3__--id__p1.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/gimp_xcf.out b/share/extensions/tests/data/refs/gimp_xcf.out new file mode 100644 index 0000000..9438924 Binary files /dev/null and b/share/extensions/tests/data/refs/gimp_xcf.out differ diff --git a/share/extensions/tests/data/refs/gimp_xcf__-d__true__-r__true.out b/share/extensions/tests/data/refs/gimp_xcf__-d__true__-r__true.out new file mode 100644 index 0000000..183fb9b Binary files /dev/null and b/share/extensions/tests/data/refs/gimp_xcf__-d__true__-r__true.out differ diff --git a/share/extensions/tests/data/refs/grid_cartesian.out b/share/extensions/tests/data/refs/grid_cartesian.out new file mode 100644 index 0000000..1e79428 --- /dev/null +++ b/share/extensions/tests/data/refs/grid_cartesian.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/grid_cartesian__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/grid_cartesian__--id__p1__--id__r3.out new file mode 100644 index 0000000..1e79428 --- /dev/null +++ b/share/extensions/tests/data/refs/grid_cartesian__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/grid_isometric.out b/share/extensions/tests/data/refs/grid_isometric.out new file mode 100644 index 0000000..6d4b675 --- /dev/null +++ b/share/extensions/tests/data/refs/grid_isometric.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/grid_polar.out b/share/extensions/tests/data/refs/grid_polar.out new file mode 100644 index 0000000..7b5037d --- /dev/null +++ b/share/extensions/tests/data/refs/grid_polar.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + 0.015.030.045.060.075.090.0105.0120.0135.0150.0165.0180.0195.0210.0225.0240.0255.0270.0285.0300.0315.0330.0345.0 + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/grid_polar__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/grid_polar__--id__p1__--id__r3.out new file mode 100644 index 0000000..7b5037d --- /dev/null +++ b/share/extensions/tests/data/refs/grid_polar__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + 0.015.030.045.060.075.090.0105.0120.0135.0150.0165.0180.0195.0210.0225.0240.0255.0270.0285.0300.0315.0330.0345.0 + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/guides_creator__--tab__diagonal_guides.out b/share/extensions/tests/data/refs/guides_creator__--tab__diagonal_guides.out new file mode 100644 index 0000000..2c97aca --- /dev/null +++ b/share/extensions/tests/data/refs/guides_creator__--tab__diagonal_guides.out @@ -0,0 +1,40 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/guides_creator__--tab__margins__--start_from_edges__True__--margins_preset__book_left.out b/share/extensions/tests/data/refs/guides_creator__--tab__margins__--start_from_edges__True__--margins_preset__book_left.out new file mode 100644 index 0000000..7fd0af8 --- /dev/null +++ b/share/extensions/tests/data/refs/guides_creator__--tab__margins__--start_from_edges__True__--margins_preset__book_left.out @@ -0,0 +1,40 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/guides_creator__--tab__margins__--start_from_edges__True__--margins_preset__book_right.out b/share/extensions/tests/data/refs/guides_creator__--tab__margins__--start_from_edges__True__--margins_preset__book_right.out new file mode 100644 index 0000000..51cee7d --- /dev/null +++ b/share/extensions/tests/data/refs/guides_creator__--tab__margins__--start_from_edges__True__--margins_preset__book_right.out @@ -0,0 +1,40 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/guides_creator__--tab__margins__--start_from_edges__True__--margins_preset__custom.out b/share/extensions/tests/data/refs/guides_creator__--tab__margins__--start_from_edges__True__--margins_preset__custom.out new file mode 100644 index 0000000..1218e33 --- /dev/null +++ b/share/extensions/tests/data/refs/guides_creator__--tab__margins__--start_from_edges__True__--margins_preset__custom.out @@ -0,0 +1,40 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/guides_creator__--tab__regular_guides__--guides_preset__5__5__--start_from_edges__True.out b/share/extensions/tests/data/refs/guides_creator__--tab__regular_guides__--guides_preset__5__5__--start_from_edges__True.out new file mode 100644 index 0000000..67d930a --- /dev/null +++ b/share/extensions/tests/data/refs/guides_creator__--tab__regular_guides__--guides_preset__5__5__--start_from_edges__True.out @@ -0,0 +1,40 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/guides_creator__--tab__regular_guides__--guides_preset__custom.out b/share/extensions/tests/data/refs/guides_creator__--tab__regular_guides__--guides_preset__custom.out new file mode 100644 index 0000000..50293ea --- /dev/null +++ b/share/extensions/tests/data/refs/guides_creator__--tab__regular_guides__--guides_preset__custom.out @@ -0,0 +1,40 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/guides_creator__--tab__regular_guides__--guides_preset__golden__--delete__True.out b/share/extensions/tests/data/refs/guides_creator__--tab__regular_guides__--guides_preset__golden__--delete__True.out new file mode 100644 index 0000000..2f3669a --- /dev/null +++ b/share/extensions/tests/data/refs/guides_creator__--tab__regular_guides__--guides_preset__golden__--delete__True.out @@ -0,0 +1,34 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/guillotine__--ignore__true__--directory__TMP_DIR__img__.out b/share/extensions/tests/data/refs/guillotine__--ignore__true__--directory__TMP_DIR__img__.out new file mode 100644 index 0000000..f7bcbef Binary files /dev/null and b/share/extensions/tests/data/refs/guillotine__--ignore__true__--directory__TMP_DIR__img__.out differ diff --git a/share/extensions/tests/data/refs/guillotine__--image__f____oo__--directory__TMP_DIR__img__.out b/share/extensions/tests/data/refs/guillotine__--image__f____oo__--directory__TMP_DIR__img__.out new file mode 100644 index 0000000..fc02093 Binary files /dev/null and b/share/extensions/tests/data/refs/guillotine__--image__f____oo__--directory__TMP_DIR__img__.out differ diff --git a/share/extensions/tests/data/refs/handles__--id__curve__--id__quad.out b/share/extensions/tests/data/refs/handles__--id__curve__--id__quad.out new file mode 100644 index 0000000..48f9e0e --- /dev/null +++ b/share/extensions/tests/data/refs/handles__--id__curve__--id__quad.out @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/hershey.out b/share/extensions/tests/data/refs/hershey.out new file mode 100755 index 0000000..27a137a --- /dev/null +++ b/share/extensions/tests/data/refs/hershey.out @@ -0,0 +1,52 @@ + + + + + + + + image/svg+xml + + + + + + +     + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/hershey_encoding.out b/share/extensions/tests/data/refs/hershey_encoding.out new file mode 100755 index 0000000..92979a0 --- /dev/null +++ b/share/extensions/tests/data/refs/hershey_encoding.out @@ -0,0 +1,13 @@ + + + + + + + image/svg+xml + + + + + EMSAllureEMSElfinEMSFelixEMSNixishEMSNixishItalicEMSOsmotronEMSReadabilityEMSReadabilityItalicEMSTechHersheyGothEnglishHersheySans1HersheySansMedHersheyScript1HersheyScriptMedHersheySerifBoldHersheySerifBoldItalicHersheySerifMedHersheySerifMedItalic + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/hershey_fonttable.out b/share/extensions/tests/data/refs/hershey_fonttable.out new file mode 100755 index 0000000..35ed814 --- /dev/null +++ b/share/extensions/tests/data/refs/hershey_fonttable.out @@ -0,0 +1,13 @@ + + + + + + + image/svg+xml + + + + + EMSAllureEMSElfinEMSFelixEMSNixishEMSNixishItalicEMSOsmotronEMSReadabilityEMSReadabilityItalicEMSTechHersheyGothEnglishHersheySans1HersheySansMedHersheyScript1HersheyScriptMedHersheySerifBoldHersheySerifBoldItalicHersheySerifMedHersheySerifMedItalic + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/hershey_glyphtable.out b/share/extensions/tests/data/refs/hershey_glyphtable.out new file mode 100755 index 0000000..cfb0ecc --- /dev/null +++ b/share/extensions/tests/data/refs/hershey_glyphtable.out @@ -0,0 +1,13 @@ + + + + + + + image/svg+xml + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/hershey_loadfont.out b/share/extensions/tests/data/refs/hershey_loadfont.out new file mode 100755 index 0000000..003e932 --- /dev/null +++ b/share/extensions/tests/data/refs/hershey_loadfont.out @@ -0,0 +1,17 @@ + + + + + + + + image/svg+xml + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/hershey_partialselection.out b/share/extensions/tests/data/refs/hershey_partialselection.out new file mode 100755 index 0000000..21324f9 --- /dev/null +++ b/share/extensions/tests/data/refs/hershey_partialselection.out @@ -0,0 +1,22 @@ + + + + + + + + image/svg+xml + + + + + + + + + + Text + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/hershey_preservetext.out b/share/extensions/tests/data/refs/hershey_preservetext.out new file mode 100755 index 0000000..b566766 --- /dev/null +++ b/share/extensions/tests/data/refs/hershey_preservetext.out @@ -0,0 +1,22 @@ + + + + + + + + image/svg+xml + + + + + + + + + + Flow Text + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/hpgl_input.out b/share/extensions/tests/data/refs/hpgl_input.out new file mode 100644 index 0000000..b00d209 --- /dev/null +++ b/share/extensions/tests/data/refs/hpgl_input.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/hpgl_output__hpgl_multipen__svg.out b/share/extensions/tests/data/refs/hpgl_output__hpgl_multipen__svg.out new file mode 100644 index 0000000..4ad90c4 --- /dev/null +++ b/share/extensions/tests/data/refs/hpgl_output__hpgl_multipen__svg.out @@ -0,0 +1 @@ +IN;FS24;VS20;PU;SP1;PU0,0;PD0,90;PU855,1988;PD860,1986,864,1983,865,1977,863,1972,859,1969,855,1968,855,1170,850,1172,846,1176,845,1180,0,1180,2,1185,5,1189,10,1190,10,1988,15,1986,19,1983,20,1978,865,1978,863,1973,860,1969,855,1968,855,1928;PU;SP2;PU855,798;PD855,798,855,0,850,2,846,6,845,10,0,10,2,16,5,19,10,20,10,818,15,817,19,813,20,808,865,808,863,803,860,799,855,798,855,758;PU;SP3;PU855,3108;PD855,3108,855,2310,850,2311,846,2315,845,2320,0,2320,2,2325,5,2329,10,2330,10,3128,15,3126,19,3122,20,3118,865,3118,863,3112,860,3109,855,3108,855,3068;SP0;PU0,0;IN; \ No newline at end of file diff --git a/share/extensions/tests/data/refs/hpgl_output__shapes__svg.out b/share/extensions/tests/data/refs/hpgl_output__shapes__svg.out new file mode 100644 index 0000000..378db19 --- /dev/null +++ b/share/extensions/tests/data/refs/hpgl_output__shapes__svg.out @@ -0,0 +1 @@ +IN;FS24;VS20;PU;SP1;PU0,0;PD0,90;PU5966,2652;PD5971,2651,5975,2647,5976,2641,5975,2636,5971,2633,5966,2632,5966,0,5961,1,5957,5,5956,10,3824,10,3825,15,3829,19,3834,20,3834,2652,3839,2651,3843,2647,3844,2642,5976,2642,5975,2637,5971,2633,5966,2632,5966,2592;PU5479,7938;PD5474,7939,5470,7943,5469,7948,5470,7953,5474,7957,5478,7957,5477,7997,5476,7997,5472,8037,5471,8036,5464,8075,5463,8075,5453,8112,5452,8112,5439,8149,5439,8148,5423,8184,5405,8218,5404,8217,5384,8250,5361,8281,5361,8280,5336,8310,5335,8309,5308,8337,5308,8336,5279,8362,5248,8385,5247,8385,5214,8406,5214,8405,5180,8425,5179,8424,5143,8441,5143,8440,5105,8454,5105,8453,5067,8464,5067,8463,5029,8471,5028,8470,4990,8476,4990,8475,4951,8477,4951,8476,4913,8476,4913,8475,4874,8472,4874,8471,4836,8465,4837,8464,4799,8455,4763,8443,4763,8442,4727,8428,4727,8427,4692,8411,4693,8410,4659,8390,4660,8390,4627,8368,4628,8367,4597,8343,4597,8342,4568,8315,4569,8314,4541,8285,4542,8285,4517,8254,4518,8253,4496,8221,4497,8221,4477,8187,4478,8187,4461,8152,4461,8151,4447,8116,4448,8115,4436,8079,4437,8078,4428,8041,4429,8041,4423,8003,4420,7964,4421,7964,4420,7926,4421,7926,4423,7887,4424,7887,4429,7849,4430,7849,4438,7811,4439,7811,4450,7773,4464,7736,4465,7736,4481,7700,4482,7700,4501,7665,4502,7666,4523,7633,4524,7633,4548,7603,4574,7574,4574,7575,4602,7548,4603,7548,4632,7524,4664,7502,4697,7482,4697,7483,4731,7465,4732,7466,4767,7450,4767,7451,4804,7438,4804,7439,4842,7429,4842,7430,4880,7422,4880,7423,4920,7419,4959,7418,4959,7419,5014,7422,5013,7423,5066,7431,5066,7432,5117,7445,5116,7446,5165,7463,5164,7464,5211,7487,5210,7487,5254,7514,5253,7515,5294,7545,5293,7546,5331,7580,5330,7581,5365,7618,5364,7619,5394,7660,5393,7660,5420,7704,5419,7704,5441,7751,5458,7800,5457,7800,5470,7851,5469,7851,5477,7903,5476,7903,5479,7957,5478,7957,5477,7997,5476,7997;PU5478,5312;PD5478,5312,5477,5391,5472,5470,5465,5547,5464,5547,5454,5622,5441,5695,5425,5766,5407,5834,5387,5899,5386,5899,5364,5961,5363,5961,5338,6020,5311,6075,5310,6075,5282,6126,5281,6126,5250,6173,5217,6216,5216,6215,5182,6254,5181,6253,5145,6286,5144,6285,5107,6313,5106,6312,5068,6334,5067,6333,5029,6349,5029,6348,4990,6358,4990,6356,4951,6361,4951,6359,4913,6358,4913,6357,4874,6350,4875,6349,4837,6337,4837,6335,4800,6318,4800,6317,4764,6293,4728,6264,4729,6263,4694,6230,4695,6229,4661,6190,4662,6190,4630,6145,4599,6096,4600,6095,4571,6041,4544,5982,4520,5920,4498,5856,4499,5855,4479,5788,4480,5788,4463,5718,4449,5647,4449,5646,4438,5573,4429,5498,4430,5498,4424,5422,4421,5346,4420,5268,4421,5268,4423,5191,4428,5114,4429,5114,4437,5037,4448,4962,4449,4962,4462,4887,4463,4887,4479,4814,4480,4815,4499,4745,4499,4746,4521,4680,4545,4618,4546,4619,4571,4561,4572,4561,4599,4507,4600,4508,4629,4458,4630,4458,4661,4413,4662,4414,4695,4374,4729,4339,4730,4339,4765,4309,4766,4310,4803,4284,4803,4285,4841,4265,4841,4266,4880,4252,4880,4253,4919,4244,4920,4246,4959,4243,4959,4244,4987,4245,4987,4246,5013,4250,5013,4251,5040,4258,5040,4259,5066,4268,5065,4269,5091,4281,5090,4282,5116,4296,5115,4297,5140,4313,5139,4314,5163,4333,5186,4354,5186,4355,5209,4378,5208,4379,5230,4404,5252,4432,5251,4432,5292,4493,5291,4494,5328,4562,5362,4638,5361,4638,5392,4719,5391,4720,5418,4807,5417,4807,5439,4899,5439,4900,5457,4997,5456,4997,5469,5098,5477,5203,5476,5203,5479,5312,5478,5312,5478,5352;PU4655,1257;PD4650,1256,4649,1256,4615,1306,4615,1307,4583,1362,4584,1362,4554,1422,4555,1422,4528,1486,4528,1487,4504,1554,4505,1554,4483,1625,4484,1625,4465,1699,4466,1699,4450,1775,4451,1775,4438,1854,4429,1934,4423,2016,4420,2099,4421,2099,4421,2182,4425,2266,4432,2350,4443,2433,4457,2514,4474,2592,4494,2667,4495,2667,4517,2737,4542,2803,4543,2803,4570,2865,4571,2865,4600,2922,4601,2922,4632,2975,4633,2974,4667,3022,4667,3021,4703,3064,4703,3063,4741,3100,4741,3099,4780,3130,4780,3129,4820,3154,4821,3153,4862,3171,4862,3170,4904,3182,4905,3181,4948,3186,4948,3184,4991,3183,4990,3181,5033,3173,5032,3171,5074,3156,5073,3155,5114,3134,5113,3133,5152,3105,5151,3104,5189,3071,5188,3070,5225,3031,5224,3031,5259,2986,5258,2986,5291,2936,5290,2936,5321,2881,5349,2821,5375,2757,5375,2756,5398,2688,5419,2615,5437,2539,5437,2538,5452,2458,5464,2376,5472,2293,5477,2209,5479,2126,5477,2043,5472,1961,5464,1880,5453,1800,5439,1723,5438,1723,5422,1647,5421,1648,5401,1575,5378,1505,5378,1506,5352,1439,5352,1440,5324,1377,5323,1378,5292,1319,5292,1320,5258,1266,5254,1270,5253,1275,5255,1280,5259,1284,5260,1284,4946,2136,4942,2133,4940,2128,4940,2123,4944,2119,4946,2117,4652,1238,4647,1241,4645,1246,4646,1251,4649,1255,4649,1256,4627,1289;PU3356,8485;PD3353,8481,3352,8476,3354,8471,3355,8470,2297,7411,2301,7409,2307,7409,2311,7411,3369,6353,3364,6350,3359,6350,3355,6353,2297,5295;PU3355,4236;PD3352,4241,3352,4243,3307,4241,3307,4240,3254,4235,3187,4225,3107,4209,3107,4208,3017,4185,3018,4184,2970,4169,2971,4169,2922,4151,2873,4130,2824,4107,2824,4106,2774,4080,2775,4079,2726,4050,2726,4049,2678,4016,2631,3979,2631,3978,2585,3938,2586,3937,2542,3892,2543,3892,2501,3843,2502,3842,2463,3789,2464,3788,2428,3730,2429,3730,2397,3667,2398,3666,2369,3598,2370,3598,2346,3525,2347,3525,2327,3446,2328,3446,2314,3361,2315,3361,2306,3271,2303,3175,2304,3175,2307,3082,2308,3082,2317,3000,2324,2964,2332,2930,2333,2930,2342,2899,2352,2870,2353,2870,2364,2843,2365,2843,2378,2819,2392,2797,2393,2797,2407,2777,2408,2777,2423,2759,2424,2760,2440,2743,2441,2744,2458,2729,2459,2729,2477,2716,2478,2717,2516,2695,2517,2696,2558,2680,2559,2681,2603,2669,2603,2670,2648,2662,2648,2663,2696,2658,2696,2659,2744,2656,2744,2657,2843,2656,2942,2655,2942,2654,2990,2652,2990,2651,3037,2647,3037,2646,3083,2638,3082,2637,3126,2625,3126,2624,3167,2608,3167,2607,3205,2585,3205,2584,3223,2571,3222,2570,3240,2555,3239,2555,3256,2538,3255,2537,3271,2519,3270,2519,3285,2498,3284,2498,3298,2475,3297,2475,3310,2450,3309,2450,3320,2423,3330,2394,3339,2362,3338,2362,3346,2328,3345,2328,3352,2291,3351,2291,3360,2210,3359,2210,3362,2117,3359,2021,3358,2021,3349,1930,3348,1931,3334,1846,3333,1846,3314,1768,3313,1768,3289,1695,3261,1627,3260,1627,3228,1564,3227,1564,3191,1506,3191,1507,3152,1453,3151,1454,3110,1405,3066,1360,3065,1361,3020,1320,3019,1321,2972,1284,2923,1251,2923,1252,2874,1222,2824,1196,2774,1173,2774,1174,2725,1153,2725,1154,2676,1136,2629,1121,2629,1122,2539,1098,2539,1099,2459,1083,2391,1074,2339,1069,2339,1070,2294,1068;PU292,6943;PD293,6949,297,6952,302,6954,304,6954,390,7434,384,7433,381,7431,34,7774,39,7776,44,7776,49,7773,51,7769,51,7768,534,7834,532,7839,529,7842,748,8277,752,8274,754,8269,752,8264,749,8260,748,8260,960,7821,964,7824,966,7828,1448,7754,1446,7750,1441,7746,1436,7746,1431,7749,1079,7411,1084,7409,1088,7408,1167,6927,1161,6928,1157,6931,1155,6936,1156,6941,1156,6942,726,7172,725,7167,726,7163,293,6939,292,6944,294,6950,298,6953,303,6954,304,6954,311,6993;PU272,4837;PD272,4837,358,5317,353,5316,349,5314,3,5657,7,5660,13,5660,17,5657,20,5652,20,5651,503,5718,501,5723,497,5725,716,6161,720,6157,722,6152,721,6147,717,6143,716,6143,929,5704,933,5708,934,5712,1416,5638,1414,5633,1409,5630,1404,5629,1399,5632,1047,5295,1052,5292,1056,5292,1135,4811,1130,4811,1125,4814,1123,4819,1124,4825,695,5055,693,5050,695,5046,261,4823,260,4828,262,4833,266,4836,271,4837,272,4837,279,4876;PU8793,5312;PD8798,5309,8801,5305,8801,5299,8798,5295,8794,5292,8791,5292,8791,4551,8786,4552,8782,4556,8781,4561,8047,4561,8048,4566,8052,4570,8057,4571,8057,5312,8062,5310,8066,5306,8067,5302,8801,5302,8800,5297,8796,5293,8791,5292,8791,5252;PU7595,8467;PD7595,8467,7595,7408,7590,7410,7587,7414,7585,7418,6527,7418,6528,7423,6532,7427,6537,7428,6537,8487,6542,8485,6546,8481,6547,8477,7605,8477,7604,8472,7600,8468,7595,8467,7595,8427;PU7595,6350;PD7595,6350,7595,4233,7590,4235,7587,4239,7585,4243,6527,4243,6528,4248,6532,4252,6537,4253,6537,6370,6542,6369,6546,6365,6547,6360,7605,6360,7604,6355,7600,6351,7595,6350,7595,6310;PU7595,2699;PD7595,2699,7595,1534,7593,1487,7592,1487,7586,1441,7585,1441,7575,1396,7561,1352,7560,1353,7543,1311,7542,1311,7521,1271,7521,1272,7497,1234,7496,1235,7468,1200,7437,1169,7437,1170,7404,1142,7404,1143,7369,1119,7368,1120,7332,1100,7332,1101,7294,1085,7293,1086,7254,1075,7254,1076,7214,1069,7214,1070,7173,1068,6939,1068,6939,1069,6899,1071,6899,1072,6859,1079,6859,1080,6820,1092,6820,1093,6782,1108,6783,1109,6746,1129,6747,1130,6712,1154,6713,1155,6680,1183,6681,1183,6651,1215,6652,1216,6624,1250,6625,1251,6601,1289,6602,1289,6581,1329,6582,1329,6565,1371,6565,1372,6552,1415,6553,1415,6543,1461,6544,1461,6538,1507,6539,1507,6537,1554,6537,2719,6539,2766,6540,2766,6546,2812,6547,2812,6557,2857,6558,2857,6571,2901,6572,2901,6589,2943,6590,2942,6611,2982,6612,2982,6636,3019,6637,3019,6664,3054,6665,3053,6695,3085,6696,3084,6728,3112,6729,3111,6763,3135,6764,3134,6800,3154,6801,3153,6839,3168,6839,3167,6878,3179,6878,3177,6918,3184,6918,3183,6959,3186,6959,3185,7193,3185,7193,3184,7234,3182,7234,3181,7274,3174,7274,3173,7313,3162,7312,3161,7350,3145,7350,3144,7386,3124,7385,3123,7420,3099,7419,3099,7452,3071,7451,3070,7482,3038,7481,3038,7508,3003,7507,3002,7531,2965,7531,2964,7551,2924,7568,2882,7567,2882,7580,2838,7589,2793,7595,2746,7594,2746,7596,2699,7595,2699,7595,2659;SP0;PU0,0;IN; \ No newline at end of file diff --git a/share/extensions/tests/data/refs/image_attributes.out b/share/extensions/tests/data/refs/image_attributes.out new file mode 100644 index 0000000..90f335e --- /dev/null +++ b/share/extensions/tests/data/refs/image_attributes.out @@ -0,0 +1,18 @@ + + + + + + + image/svg+xml + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/image_attributes__--id__embeded_image01__--image_rendering__optimizeSpeed__--tab____tab_image_rendering__.out b/share/extensions/tests/data/refs/image_attributes__--id__embeded_image01__--image_rendering__optimizeSpeed__--tab____tab_image_rendering__.out new file mode 100644 index 0000000..9dbd633 --- /dev/null +++ b/share/extensions/tests/data/refs/image_attributes__--id__embeded_image01__--image_rendering__optimizeSpeed__--tab____tab_image_rendering__.out @@ -0,0 +1,18 @@ + + + + + + + image/svg+xml + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/image_attributes__--id__image174__--aspect_ratio__xMinYMin__--tab____tab_aspect_ratio__.out b/share/extensions/tests/data/refs/image_attributes__--id__image174__--aspect_ratio__xMinYMin__--tab____tab_aspect_ratio__.out new file mode 100644 index 0000000..2553d2b --- /dev/null +++ b/share/extensions/tests/data/refs/image_attributes__--id__image174__--aspect_ratio__xMinYMin__--tab____tab_aspect_ratio__.out @@ -0,0 +1,18 @@ + + + + + + + image/svg+xml + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/ink2canvas.out b/share/extensions/tests/data/refs/ink2canvas.out new file mode 100644 index 0000000..9080d0f --- /dev/null +++ b/share/extensions/tests/data/refs/ink2canvas.out @@ -0,0 +1,159 @@ + + + + + Inkscape Output + + + + + + diff --git a/share/extensions/tests/data/refs/inkex_extensions_color.out b/share/extensions/tests/data/refs/inkex_extensions_color.out new file mode 100644 index 0000000..cd9b9b2 --- /dev/null +++ b/share/extensions/tests/data/refs/inkex_extensions_color.out @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/inkex_extensions_color__--id__color_svg.out b/share/extensions/tests/data/refs/inkex_extensions_color__--id__color_svg.out new file mode 100644 index 0000000..cd9b9b2 --- /dev/null +++ b/share/extensions/tests/data/refs/inkex_extensions_color__--id__color_svg.out @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/inkex_extensions_color__--id__r1.out b/share/extensions/tests/data/refs/inkex_extensions_color__--id__r1.out new file mode 100644 index 0000000..8cf8e48 --- /dev/null +++ b/share/extensions/tests/data/refs/inkex_extensions_color__--id__r1.out @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/inkex_extensions_color__--id__r1__--id__r2.out b/share/extensions/tests/data/refs/inkex_extensions_color__--id__r1__--id__r2.out new file mode 100644 index 0000000..9f25954 --- /dev/null +++ b/share/extensions/tests/data/refs/inkex_extensions_color__--id__r1__--id__r2.out @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/inkex_extensions_color__--id__r2.out b/share/extensions/tests/data/refs/inkex_extensions_color__--id__r2.out new file mode 100644 index 0000000..56035d9 --- /dev/null +++ b/share/extensions/tests/data/refs/inkex_extensions_color__--id__r2.out @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/inkex_extensions_color__--id__r3.out b/share/extensions/tests/data/refs/inkex_extensions_color__--id__r3.out new file mode 100644 index 0000000..36dea0a --- /dev/null +++ b/share/extensions/tests/data/refs/inkex_extensions_color__--id__r3.out @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/inkex_extensions_color__--id__r4.out b/share/extensions/tests/data/refs/inkex_extensions_color__--id__r4.out new file mode 100644 index 0000000..9a4c73f --- /dev/null +++ b/share/extensions/tests/data/refs/inkex_extensions_color__--id__r4.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/inkscape_follow_link.out b/share/extensions/tests/data/refs/inkscape_follow_link.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/inkscape_follow_link__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/inkscape_follow_link__--id__p1__--id__r3.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/interp__2e7c2144ef5878a5c0824e02c83dc243.out b/share/extensions/tests/data/refs/interp__2e7c2144ef5878a5c0824e02c83dc243.out new file mode 100644 index 0000000..3a9a33b --- /dev/null +++ b/share/extensions/tests/data/refs/interp__2e7c2144ef5878a5c0824e02c83dc243.out @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/share/extensions/tests/data/refs/interp__359f83409ebaa8716afca1081eb4987d.out b/share/extensions/tests/data/refs/interp__359f83409ebaa8716afca1081eb4987d.out new file mode 100644 index 0000000..f257f70 --- /dev/null +++ b/share/extensions/tests/data/refs/interp__359f83409ebaa8716afca1081eb4987d.out @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/interp_att_g__--id__g53__--att__fill__--start-val____050505__--end-val____000000.out b/share/extensions/tests/data/refs/interp_att_g__--id__g53__--att__fill__--start-val____050505__--end-val____000000.out new file mode 100644 index 0000000..aef30dd --- /dev/null +++ b/share/extensions/tests/data/refs/interp_att_g__--id__g53__--att__fill__--start-val____050505__--end-val____000000.out @@ -0,0 +1,27 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/interp_att_g__--id__g53__--att__fill__--start-val____181818__--end-val____000000.out b/share/extensions/tests/data/refs/interp_att_g__--id__g53__--att__fill__--start-val____181818__--end-val____000000.out new file mode 100644 index 0000000..8b968a3 --- /dev/null +++ b/share/extensions/tests/data/refs/interp_att_g__--id__g53__--att__fill__--start-val____181818__--end-val____000000.out @@ -0,0 +1,27 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/interp_att_g__--id__layer1.out b/share/extensions/tests/data/refs/interp_att_g__--id__layer1.out new file mode 100644 index 0000000..14044d2 --- /dev/null +++ b/share/extensions/tests/data/refs/interp_att_g__--id__layer1.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/jessyink_autotexts__--autoText__slideTitle__--id__t1.out b/share/extensions/tests/data/refs/jessyink_autotexts__--autoText__slideTitle__--id__t1.out new file mode 100644 index 0000000..acc2010 --- /dev/null +++ b/share/extensions/tests/data/refs/jessyink_autotexts__--autoText__slideTitle__--id__t1.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/jessyink_effects__--id__p1__--effectIn__fade__--effectOut__pop.out b/share/extensions/tests/data/refs/jessyink_effects__--id__p1__--effectIn__fade__--effectOut__pop.out new file mode 100644 index 0000000..e101ee3 --- /dev/null +++ b/share/extensions/tests/data/refs/jessyink_effects__--id__p1__--effectIn__fade__--effectOut__pop.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + diff --git a/share/extensions/tests/data/refs/jessyink_effects__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/jessyink_effects__--id__p1__--id__r3.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/jessyink_export__--resolution__1.out b/share/extensions/tests/data/refs/jessyink_export__--resolution__1.out new file mode 100644 index 0000000..b9168de Binary files /dev/null and b/share/extensions/tests/data/refs/jessyink_export__--resolution__1.out differ diff --git a/share/extensions/tests/data/refs/jessyink_install.out b/share/extensions/tests/data/refs/jessyink_install.out new file mode 100644 index 0000000..f9d81b7 --- /dev/null +++ b/share/extensions/tests/data/refs/jessyink_install.out @@ -0,0 +1,2766 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + // Copyright 2008, 2009 Hannes Hochreiner +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see http://www.gnu.org/licenses/. + +// Set onload event handler. +window.onload = jessyInkInit; + +// Creating a namespace dictionary. The standard Inkscape namespaces are taken from inkex.py. +var NSS = new Object(); +NSS['sodipodi']='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd'; +NSS['cc']='http://web.resource.org/cc/'; +NSS['svg']='http://www.w3.org/2000/svg'; +NSS['dc']='http://purl.org/dc/elements/1.1/'; +NSS['rdf']='http://www.w3.org/1999/02/22-rdf-syntax-ns#'; +NSS['inkscape']='http://www.inkscape.org/namespaces/inkscape'; +NSS['xlink']='http://www.w3.org/1999/xlink'; +NSS['xml']='http://www.w3.org/XML/1998/namespace'; +NSS['jessyink']='https://launchpad.net/jessyink'; + +// Keycodes. +var LEFT_KEY = 37; // cursor left keycode +var UP_KEY = 38; // cursor up keycode +var RIGHT_KEY = 39; // cursor right keycode +var DOWN_KEY = 40; // cursor down keycode +var PAGE_UP_KEY = 33; // page up keycode +var PAGE_DOWN_KEY = 34; // page down keycode +var HOME_KEY = 36; // home keycode +var END_KEY = 35; // end keycode +var ENTER_KEY = 13; // next slide +var SPACE_KEY = 32; +var ESCAPE_KEY = 27; + +// Presentation modes. +var SLIDE_MODE = 1; +var INDEX_MODE = 2; +var DRAWING_MODE = 3; + +// Mouse handler actions. +var MOUSE_UP = 1; +var MOUSE_DOWN = 2; +var MOUSE_MOVE = 3; +var MOUSE_WHEEL = 4; + +// Parameters. +var ROOT_NODE = document.getElementsByTagNameNS(NSS["svg"], "svg")[0]; +var HEIGHT = 0; +var WIDTH = 0; +var INDEX_COLUMNS_DEFAULT = 4; +var INDEX_COLUMNS = INDEX_COLUMNS_DEFAULT; +var INDEX_OFFSET = 0; +var STATE_START = -1; +var STATE_END = -2; +var BACKGROUND_COLOR = null; +var slides = new Array(); + +// Initialisation. +var currentMode = SLIDE_MODE; +var masterSlide = null; +var activeSlide = 0; +var activeEffect = 0; +var timeStep = 30; // 40 ms equal 25 frames per second. +var lastFrameTime = null; +var processingEffect = false; +var transCounter = 0; +var effectArray = 0; +var defaultTransitionInDict = new Object(); +defaultTransitionInDict["name"] = "appear"; +var defaultTransitionOutDict = new Object(); +defaultTransitionOutDict["name"] = "appear"; +var jessyInkInitialised = false; + +// Initialise char and key code dictionaries. +var charCodeDictionary = getDefaultCharCodeDictionary(); +var keyCodeDictionary = getDefaultKeyCodeDictionary(); + +// Initialise mouse handler dictionary. +var mouseHandlerDictionary = getDefaultMouseHandlerDictionary(); + +var progress_bar_visible = false; +var timer_elapsed = 0; +var timer_start = timer_elapsed; +var timer_duration = 15; // 15 minutes + +var history_counter = 0; +var history_original_elements = new Array(); +var history_presentation_elements = new Array(); + +var mouse_original_path = null; +var mouse_presentation_path = null; +var mouse_last_x = -1; +var mouse_last_y = -1; +var mouse_min_dist_sqr = 3 * 3; +var path_colour = "red"; +var path_width_default = 3; +var path_width = path_width_default; +var path_paint_width = path_width; + +var number_of_added_slides = 0; + +/** Initialisation function. + * The whole presentation is set-up in this function. + */ +function jessyInkInit() +{ + // Make sure we only execute this code once. Double execution can occur if the onload event handler is set + // in the main svg tag as well (as was recommended in earlier versions). Executing this function twice does + // not lead to any problems, but it takes more time. + if (jessyInkInitialised) + return; + + // Making the presentation scalable. + var VIEWBOX = ROOT_NODE.getAttribute("viewBox"); + + if (VIEWBOX) + { + WIDTH = ROOT_NODE.viewBox.animVal.width; + HEIGHT = ROOT_NODE.viewBox.animVal.height; + } + else + { + HEIGHT = parseFloat(ROOT_NODE.getAttribute("height")); + WIDTH = parseFloat(ROOT_NODE.getAttribute("width")); + ROOT_NODE.setAttribute("viewBox", "0 0 " + WIDTH + " " + HEIGHT); + } + + ROOT_NODE.setAttribute("width", "100%"); + ROOT_NODE.setAttribute("height", "100%"); + + // Setting the background color. + var namedViews = document.getElementsByTagNameNS(NSS["sodipodi"], "namedview"); + + for (var counter = 0; counter < namedViews.length; counter++) + { + if (namedViews[counter].hasAttribute("id") && namedViews[counter].hasAttribute("pagecolor")) + { + if (namedViews[counter].getAttribute("id") == "base") + { + BACKGROUND_COLOR = namedViews[counter].getAttribute("pagecolor"); + var newAttribute = "background-color:" + BACKGROUND_COLOR + ";"; + + if (ROOT_NODE.hasAttribute("style")) + newAttribute += ROOT_NODE.getAttribute("style"); + + ROOT_NODE.setAttribute("style", newAttribute); + } + } + } + + // Defining clip-path. + var defsNodes = document.getElementsByTagNameNS(NSS["svg"], "defs"); + + if (defsNodes.length > 0) + { + var existingClipPath = document.getElementById("jessyInkSlideClipPath"); + + if (!existingClipPath) + { + var rectNode = document.createElementNS(NSS["svg"], "rect"); + var clipPath = document.createElementNS(NSS["svg"], "clipPath"); + + rectNode.setAttribute("x", 0); + rectNode.setAttribute("y", 0); + rectNode.setAttribute("width", WIDTH); + rectNode.setAttribute("height", HEIGHT); + + clipPath.setAttribute("id", "jessyInkSlideClipPath"); + clipPath.setAttribute("clipPathUnits", "userSpaceOnUse"); + + clipPath.appendChild(rectNode); + defsNodes[0].appendChild(clipPath); + } + } + + // Making a list of the slide and finding the master slide. + var nodes = document.getElementsByTagNameNS(NSS["svg"], "g"); + var tempSlides = new Array(); + var existingJessyInkPresentationLayer = null; + + for (var counter = 0; counter < nodes.length; counter++) + { + if (nodes[counter].getAttributeNS(NSS["inkscape"], "groupmode") && (nodes[counter].getAttributeNS(NSS["inkscape"], "groupmode") == "layer")) + { + if (nodes[counter].getAttributeNS(NSS["inkscape"], "label") && nodes[counter].getAttributeNS(NSS["jessyink"], "masterSlide") == "masterSlide") + masterSlide = nodes[counter]; + else if (nodes[counter].getAttributeNS(NSS["inkscape"], "label") && nodes[counter].getAttributeNS(NSS["jessyink"], "presentationLayer") == "presentationLayer") + existingJessyInkPresentationLayer = nodes[counter]; + else + tempSlides.push(nodes[counter].getAttribute("id")); + } + else if (nodes[counter].getAttributeNS(NSS['jessyink'], 'element')) + { + handleElement(nodes[counter]); + } + } + + // Hide master slide set default transitions. + if (masterSlide) + { + masterSlide.style.display = "none"; + + if (masterSlide.hasAttributeNS(NSS["jessyink"], "transitionIn")) + defaultTransitionInDict = propStrToDict(masterSlide.getAttributeNS(NSS["jessyink"], "transitionIn")); + + if (masterSlide.hasAttributeNS(NSS["jessyink"], "transitionOut")) + defaultTransitionOutDict = propStrToDict(masterSlide.getAttributeNS(NSS["jessyink"], "transitionOut")); + } + + if (existingJessyInkPresentationLayer != null) + { + existingJessyInkPresentationLayer.parentNode.removeChild(existingJessyInkPresentationLayer); + } + + // Set start slide. + var hashObj = new LocationHash(window.location.hash); + + activeSlide = hashObj.slideNumber; + activeEffect = hashObj.effectNumber; + + if (activeSlide < 0) + activeSlide = 0; + else if (activeSlide >= tempSlides.length) + activeSlide = tempSlides.length - 1; + + var originalNode = document.getElementById(tempSlides[counter]); + + var JessyInkPresentationLayer = document.createElementNS(NSS["svg"], "g"); + JessyInkPresentationLayer.setAttributeNS(NSS["inkscape"], "groupmode", "layer"); + JessyInkPresentationLayer.setAttributeNS(NSS["inkscape"], "label", "JessyInk Presentation Layer"); + JessyInkPresentationLayer.setAttributeNS(NSS["jessyink"], "presentationLayer", "presentationLayer"); + JessyInkPresentationLayer.setAttribute("id", "jessyink_presentation_layer"); + JessyInkPresentationLayer.style.display = "inherit"; + ROOT_NODE.appendChild(JessyInkPresentationLayer); + + // Gathering all the information about the transitions and effects of the slides, set the background + // from the master slide and substitute the auto-texts. + for (var counter = 0; counter < tempSlides.length; counter++) + { + var originalNode = document.getElementById(tempSlides[counter]); + originalNode.style.display = "none"; + var node = suffixNodeIds(originalNode.cloneNode(true), "_" + counter); + JessyInkPresentationLayer.appendChild(node); + slides[counter] = new Object(); + slides[counter]["original_element"] = originalNode; + slides[counter]["element"] = node; + + // Set build in transition. + slides[counter]["transitionIn"] = new Object(); + + var dict; + + if (node.hasAttributeNS(NSS["jessyink"], "transitionIn")) + dict = propStrToDict(node.getAttributeNS(NSS["jessyink"], "transitionIn")); + else + dict = defaultTransitionInDict; + + slides[counter]["transitionIn"]["name"] = dict["name"]; + slides[counter]["transitionIn"]["options"] = new Object(); + + for (key in dict) + if (key != "name") + slides[counter]["transitionIn"]["options"][key] = dict[key]; + + // Set build out transition. + slides[counter]["transitionOut"] = new Object(); + + if (node.hasAttributeNS(NSS["jessyink"], "transitionOut")) + dict = propStrToDict(node.getAttributeNS(NSS["jessyink"], "transitionOut")); + else + dict = defaultTransitionOutDict; + + slides[counter]["transitionOut"]["name"] = dict["name"]; + slides[counter]["transitionOut"]["options"] = new Object(); + + for (key in dict) + if (key != "name") + slides[counter]["transitionOut"]["options"][key] = dict[key]; + + // Copy master slide content. + if (masterSlide) + { + var clonedNode = suffixNodeIds(masterSlide.cloneNode(true), "_" + counter); + clonedNode.removeAttributeNS(NSS["inkscape"], "groupmode"); + clonedNode.removeAttributeNS(NSS["inkscape"], "label"); + clonedNode.style.display = "inherit"; + + node.insertBefore(clonedNode, node.firstChild); + } + + // Setting clip path. + node.setAttribute("clip-path", "url(#jessyInkSlideClipPath)"); + + // Substitute auto texts. + substituteAutoTexts(node, node.getAttributeNS(NSS["inkscape"], "label"), counter + 1, tempSlides.length); + + node.removeAttributeNS(NSS["inkscape"], "groupmode"); + node.removeAttributeNS(NSS["inkscape"], "label"); + + // Set effects. + var tempEffects = new Array(); + var groups = new Object(); + + for (var IOCounter = 0; IOCounter <= 1; IOCounter++) + { + var propName = ""; + var dir = 0; + + if (IOCounter == 0) + { + propName = "effectIn"; + dir = 1; + } + else if (IOCounter == 1) + { + propName = "effectOut"; + dir = -1; + } + + var effects = getElementsByPropertyNS(node, NSS["jessyink"], propName); + + for (var effectCounter = 0; effectCounter < effects.length; effectCounter++) + { + var element = document.getElementById(effects[effectCounter]); + var dict = propStrToDict(element.getAttributeNS(NSS["jessyink"], propName)); + + // Put every element that has an effect associated with it, into its own group. + // Unless of course, we already put it into its own group. + if (!(groups[element.id])) + { + var newGroup = document.createElementNS(NSS["svg"], "g"); + + element.parentNode.insertBefore(newGroup, element); + newGroup.appendChild(element.parentNode.removeChild(element)); + groups[element.id] = newGroup; + } + + var effectDict = new Object(); + + effectDict["effect"] = dict["name"]; + effectDict["dir"] = dir; + effectDict["element"] = groups[element.id]; + + for (var option in dict) + { + if ((option != "name") && (option != "order")) + { + if (!effectDict["options"]) + effectDict["options"] = new Object(); + + effectDict["options"][option] = dict[option]; + } + } + + if (!tempEffects[dict["order"]]) + tempEffects[dict["order"]] = new Array(); + + tempEffects[dict["order"]][tempEffects[dict["order"]].length] = effectDict; + } + } + + // Make invisible, but keep in rendering tree to ensure that bounding box can be calculated. + node.setAttribute("opacity",0); + node.style.display = "inherit"; + + // Create a transform group. + var transformGroup = document.createElementNS(NSS["svg"], "g"); + + // Add content to transform group. + while (node.firstChild) + transformGroup.appendChild(node.firstChild); + + // Transfer the transform attribute from the node to the transform group. + if (node.getAttribute("transform")) + { + transformGroup.setAttribute("transform", node.getAttribute("transform")); + node.removeAttribute("transform"); + } + + // Create a view group. + var viewGroup = document.createElementNS(NSS["svg"], "g"); + + viewGroup.appendChild(transformGroup); + slides[counter]["viewGroup"] = node.appendChild(viewGroup); + + // Insert background. + if (BACKGROUND_COLOR != null) + { + var rectNode = document.createElementNS(NSS["svg"], "rect"); + + rectNode.setAttribute("x", 0); + rectNode.setAttribute("y", 0); + rectNode.setAttribute("width", WIDTH); + rectNode.setAttribute("height", HEIGHT); + rectNode.setAttribute("id", "jessyInkBackground" + counter); + rectNode.setAttribute("fill", BACKGROUND_COLOR); + + slides[counter]["viewGroup"].insertBefore(rectNode, slides[counter]["viewGroup"].firstChild); + } + + // Set views. + var tempViews = new Array(); + var views = getElementsByPropertyNS(node, NSS["jessyink"], "view"); + var matrixOld = (new matrixSVG()).fromElements(1, 0, 0, 0, 1, 0, 0, 0, 1); + + // Set initial view even if there are no other views. + slides[counter]["viewGroup"].setAttribute("transform", matrixOld.toAttribute()); + slides[counter].initialView = matrixOld.toAttribute(); + + for (var viewCounter = 0; viewCounter < views.length; viewCounter++) + { + var element = document.getElementById(views[viewCounter]); + var dict = propStrToDict(element.getAttributeNS(NSS["jessyink"], "view")); + + if (dict["order"] == 0) + { + matrixOld = pointMatrixToTransformation(rectToMatrix(element)).mult((new matrixSVG()).fromSVGMatrix(slides[counter].viewGroup.getScreenCTM()).inv().mult((new matrixSVG()).fromSVGMatrix(element.parentNode.getScreenCTM())).inv()); + slides[counter].initialView = matrixOld.toAttribute(); + } + else + { + var effectDict = new Object(); + + effectDict["effect"] = dict["name"]; + effectDict["dir"] = 1; + effectDict["element"] = slides[counter]["viewGroup"]; + effectDict["order"] = dict["order"]; + + for (var option in dict) + { + if ((option != "name") && (option != "order")) + { + if (!effectDict["options"]) + effectDict["options"] = new Object(); + + effectDict["options"][option] = dict[option]; + } + } + + effectDict["options"]["matrixNew"] = pointMatrixToTransformation(rectToMatrix(element)).mult((new matrixSVG()).fromSVGMatrix(slides[counter].viewGroup.getScreenCTM()).inv().mult((new matrixSVG()).fromSVGMatrix(element.parentNode.getScreenCTM())).inv()); + + tempViews[dict["order"]] = effectDict; + } + + // Remove element. + element.parentNode.removeChild(element); + } + + // Consolidate view array and append it to the effect array. + if (tempViews.length > 0) + { + for (var viewCounter = 0; viewCounter < tempViews.length; viewCounter++) + { + if (tempViews[viewCounter]) + { + tempViews[viewCounter]["options"]["matrixOld"] = matrixOld; + matrixOld = tempViews[viewCounter]["options"]["matrixNew"]; + + if (!tempEffects[tempViews[viewCounter]["order"]]) + tempEffects[tempViews[viewCounter]["order"]] = new Array(); + + tempEffects[tempViews[viewCounter]["order"]][tempEffects[tempViews[viewCounter]["order"]].length] = tempViews[viewCounter]; + } + } + } + + // Set consolidated effect array. + if (tempEffects.length > 0) + { + slides[counter]["effects"] = new Array(); + + for (var effectCounter = 0; effectCounter < tempEffects.length; effectCounter++) + { + if (tempEffects[effectCounter]) + slides[counter]["effects"][slides[counter]["effects"].length] = tempEffects[effectCounter]; + } + } + + node.setAttribute("onmouseover", "if ((currentMode == INDEX_MODE) && ( activeSlide != " + counter + ")) { indexSetActiveSlide(" + counter + "); };"); + + // Set visibility for initial state. + if (counter == activeSlide) + { + node.style.display = "inherit"; + node.setAttribute("opacity",1); + } + else + { + node.style.display = "none"; + node.setAttribute("opacity",0); + } + } + + // Set key handler. + var jessyInkObjects = document.getElementsByTagNameNS(NSS["svg"], "g"); + + for (var counter = 0; counter < jessyInkObjects.length; counter++) + { + var elem = jessyInkObjects[counter]; + + if (elem.getAttributeNS(NSS["jessyink"], "customKeyBindings")) + { + if (elem.getCustomKeyBindings != undefined) + keyCodeDictionary = elem.getCustomKeyBindings(); + + if (elem.getCustomCharBindings != undefined) + charCodeDictionary = elem.getCustomCharBindings(); + } + } + + // Set mouse handler. + var jessyInkMouseHandler = document.getElementsByTagNameNS(NSS["jessyink"], "mousehandler"); + + for (var counter = 0; counter < jessyInkMouseHandler.length; counter++) + { + var elem = jessyInkMouseHandler[counter]; + + if (elem.getMouseHandler != undefined) + { + var tempDict = elem.getMouseHandler(); + + for (mode in tempDict) + { + if (!mouseHandlerDictionary[mode]) + mouseHandlerDictionary[mode] = new Object(); + + for (handler in tempDict[mode]) + mouseHandlerDictionary[mode][handler] = tempDict[mode][handler]; + } + } + } + + // Check effect number. + if ((activeEffect < 0) || (!slides[activeSlide].effects)) + { + activeEffect = 0; + } + else if (activeEffect > slides[activeSlide].effects.length) + { + activeEffect = slides[activeSlide].effects.length; + } + + createProgressBar(JessyInkPresentationLayer); + hideProgressBar(); + setProgressBarValue(activeSlide); + setTimeIndicatorValue(0); + setInterval("updateTimer()", 1000); + setSlideToState(activeSlide, activeEffect); + jessyInkInitialised = true; +} + +/** Function to substitute the auto-texts. + * + * @param node the node + * @param slideName name of the slide the node is on + * @param slideNumber number of the slide the node is on + * @param numberOfSlides number of slides in the presentation + */ +function substituteAutoTexts(node, slideName, slideNumber, numberOfSlides) +{ + var texts = node.getElementsByTagNameNS(NSS["svg"], "tspan"); + + for (var textCounter = 0; textCounter < texts.length; textCounter++) + { + if (texts[textCounter].getAttributeNS(NSS["jessyink"], "autoText") == "slideNumber") + texts[textCounter].firstChild.nodeValue = slideNumber; + else if (texts[textCounter].getAttributeNS(NSS["jessyink"], "autoText") == "numberOfSlides") + texts[textCounter].firstChild.nodeValue = numberOfSlides; + else if (texts[textCounter].getAttributeNS(NSS["jessyink"], "autoText") == "slideTitle") + texts[textCounter].firstChild.nodeValue = slideName; + } +} + +/** Convenience function to get an element depending on whether it has a property with a particular name. + * This function emulates some dearly missed XPath functionality. + * + * @param node the node + * @param namespace namespace of the attribute + * @param name attribute name + */ +function getElementsByPropertyNS(node, namespace, name) +{ + var elems = new Array(); + + if (node.getAttributeNS(namespace, name)) + elems.push(node.getAttribute("id")); + + for (var counter = 0; counter < node.childNodes.length; counter++) + { + if (node.childNodes[counter].nodeType == 1) + elems = elems.concat(getElementsByPropertyNS(node.childNodes[counter], namespace, name)); + } + + return elems; +} + +/** Function to dispatch the next effect, if there is none left, change the slide. + * + * @param dir direction of the change (1 = forwards, -1 = backwards) + */ +function dispatchEffects(dir) +{ + if (slides[activeSlide]["effects"] && (((dir == 1) && (activeEffect < slides[activeSlide]["effects"].length)) || ((dir == -1) && (activeEffect > 0)))) + { + processingEffect = true; + + if (dir == 1) + { + effectArray = slides[activeSlide]["effects"][activeEffect]; + activeEffect += dir; + } + else if (dir == -1) + { + activeEffect += dir; + effectArray = slides[activeSlide]["effects"][activeEffect]; + } + + transCounter = 0; + startTime = (new Date()).getTime(); + lastFrameTime = null; + effect(dir); + } + else if (((dir == 1) && (activeSlide < (slides.length - 1))) || (((dir == -1) && (activeSlide > 0)))) + { + changeSlide(dir); + } +} + +/** Function to skip effects and directly either put the slide into start or end state or change slides. + * + * @param dir direction of the change (1 = forwards, -1 = backwards) + */ +function skipEffects(dir) +{ + if (slides[activeSlide]["effects"] && (((dir == 1) && (activeEffect < slides[activeSlide]["effects"].length)) || ((dir == -1) && (activeEffect > 0)))) + { + processingEffect = true; + + if (slides[activeSlide]["effects"] && (dir == 1)) + activeEffect = slides[activeSlide]["effects"].length; + else + activeEffect = 0; + + if (dir == 1) + setSlideToState(activeSlide, STATE_END); + else + setSlideToState(activeSlide, STATE_START); + + processingEffect = false; + } + else if (((dir == 1) && (activeSlide < (slides.length - 1))) || (((dir == -1) && (activeSlide > 0)))) + { + changeSlide(dir); + } +} + +/** Function to change between slides. + * + * @param dir direction (1 = forwards, -1 = backwards) + */ +function changeSlide(dir) +{ + processingEffect = true; + effectArray = new Array(); + + effectArray[0] = new Object(); + if (dir == 1) + { + effectArray[0]["effect"] = slides[activeSlide]["transitionOut"]["name"]; + effectArray[0]["options"] = slides[activeSlide]["transitionOut"]["options"]; + effectArray[0]["dir"] = -1; + } + else if (dir == -1) + { + effectArray[0]["effect"] = slides[activeSlide]["transitionIn"]["name"]; + effectArray[0]["options"] = slides[activeSlide]["transitionIn"]["options"]; + effectArray[0]["dir"] = 1; + } + effectArray[0]["element"] = slides[activeSlide]["element"]; + + activeSlide += dir; + setProgressBarValue(activeSlide); + + effectArray[1] = new Object(); + + if (dir == 1) + { + effectArray[1]["effect"] = slides[activeSlide]["transitionIn"]["name"]; + effectArray[1]["options"] = slides[activeSlide]["transitionIn"]["options"]; + effectArray[1]["dir"] = 1; + } + else if (dir == -1) + { + effectArray[1]["effect"] = slides[activeSlide]["transitionOut"]["name"]; + effectArray[1]["options"] = slides[activeSlide]["transitionOut"]["options"]; + effectArray[1]["dir"] = -1; + } + + effectArray[1]["element"] = slides[activeSlide]["element"]; + + if (slides[activeSlide]["effects"] && (dir == -1)) + activeEffect = slides[activeSlide]["effects"].length; + else + activeEffect = 0; + + if (dir == -1) + setSlideToState(activeSlide, STATE_END); + else + setSlideToState(activeSlide, STATE_START); + + transCounter = 0; + startTime = (new Date()).getTime(); + lastFrameTime = null; + effect(dir); +} + +/** Function to toggle between index and slide mode. +*/ +function toggleSlideIndex() +{ + var suspendHandle = ROOT_NODE.suspendRedraw(500); + + if (currentMode == SLIDE_MODE) + { + hideProgressBar(); + INDEX_OFFSET = -1; + indexSetPageSlide(activeSlide); + currentMode = INDEX_MODE; + } + else if (currentMode == INDEX_MODE) + { + for (var counter = 0; counter < slides.length; counter++) + { + slides[counter]["element"].setAttribute("transform","scale(1)"); + + if (counter == activeSlide) + { + slides[counter]["element"].style.display = "inherit"; + slides[counter]["element"].setAttribute("opacity",1); + activeEffect = 0; + } + else + { + slides[counter]["element"].setAttribute("opacity",0); + slides[counter]["element"].style.display = "none"; + } + } + currentMode = SLIDE_MODE; + setSlideToState(activeSlide, STATE_START); + setProgressBarValue(activeSlide); + + if (progress_bar_visible) + { + showProgressBar(); + } + } + + ROOT_NODE.unsuspendRedraw(suspendHandle); + ROOT_NODE.forceRedraw(); +} + +/** Function to run an effect. + * + * @param dir direction in which to play the effect (1 = forwards, -1 = backwards) + */ +function effect(dir) +{ + var done = true; + + var suspendHandle = ROOT_NODE.suspendRedraw(200); + + for (var counter = 0; counter < effectArray.length; counter++) + { + if (effectArray[counter]["effect"] == "fade") + done &= fade(parseInt(effectArray[counter]["dir"]) * dir, effectArray[counter]["element"], transCounter, effectArray[counter]["options"]); + else if (effectArray[counter]["effect"] == "appear") + done &= appear(parseInt(effectArray[counter]["dir"]) * dir, effectArray[counter]["element"], transCounter, effectArray[counter]["options"]); + else if (effectArray[counter]["effect"] == "pop") + done &= pop(parseInt(effectArray[counter]["dir"]) * dir, effectArray[counter]["element"], transCounter, effectArray[counter]["options"]); + else if (effectArray[counter]["effect"] == "view") + done &= view(parseInt(effectArray[counter]["dir"]) * dir, effectArray[counter]["element"], transCounter, effectArray[counter]["options"]); + } + + ROOT_NODE.unsuspendRedraw(suspendHandle); + ROOT_NODE.forceRedraw(); + + if (!done) + { + var currentTime = (new Date()).getTime(); + var timeDiff = 1; + + transCounter = currentTime - startTime; + + if (lastFrameTime != null) + { + timeDiff = timeStep - (currentTime - lastFrameTime); + + if (timeDiff <= 0) + timeDiff = 1; + } + + lastFrameTime = currentTime; + + window.setTimeout("effect(" + dir + ")", timeDiff); + } + else + { + window.location.hash = (activeSlide + 1) + '_' + activeEffect; + processingEffect = false; + } +} + +/** Function to display the index sheet. + * + * @param offsetNumber offset number + */ +function displayIndex(offsetNumber) +{ + var offsetX = 0; + var offsetY = 0; + + if (offsetNumber < 0) + offsetNumber = 0; + else if (offsetNumber >= slides.length) + offsetNumber = slides.length - 1; + + for (var counter = 0; counter < slides.length; counter++) + { + if ((counter < offsetNumber) || (counter > offsetNumber + INDEX_COLUMNS * INDEX_COLUMNS - 1)) + { + slides[counter]["element"].setAttribute("opacity",0); + slides[counter]["element"].style.display = "none"; + } + else + { + offsetX = ((counter - offsetNumber) % INDEX_COLUMNS) * WIDTH; + offsetY = Math.floor((counter - offsetNumber) / INDEX_COLUMNS) * HEIGHT; + + slides[counter]["element"].setAttribute("transform","scale("+1/INDEX_COLUMNS+") translate("+offsetX+","+offsetY+")"); + slides[counter]["element"].style.display = "inherit"; + slides[counter]["element"].setAttribute("opacity",0.5); + } + + setSlideToState(counter, STATE_END); + } + + //do we need to save the current offset? + if (INDEX_OFFSET != offsetNumber) + INDEX_OFFSET = offsetNumber; +} + +/** Function to set the active slide in the slide view. + * + * @param nbr index of the active slide + */ +function slideSetActiveSlide(nbr) +{ + if (nbr >= slides.length) + nbr = slides.length - 1; + else if (nbr < 0) + nbr = 0; + + slides[activeSlide]["element"].setAttribute("opacity",0); + slides[activeSlide]["element"].style.display = "none"; + + activeSlide = parseInt(nbr); + + setSlideToState(activeSlide, STATE_START); + slides[activeSlide]["element"].style.display = "inherit"; + slides[activeSlide]["element"].setAttribute("opacity",1); + + activeEffect = 0; + setProgressBarValue(nbr); +} + +/** Function to set the active slide in the index view. + * + * @param nbr index of the active slide + */ +function indexSetActiveSlide(nbr) +{ + if (nbr >= slides.length) + nbr = slides.length - 1; + else if (nbr < 0) + nbr = 0; + + slides[activeSlide]["element"].setAttribute("opacity",0.5); + + activeSlide = parseInt(nbr); + window.location.hash = (activeSlide + 1) + '_0'; + + slides[activeSlide]["element"].setAttribute("opacity",1); +} + +/** Function to set the page and active slide in index view. + * + * @param nbr index of the active slide + * + * NOTE: To force a redraw, + * set INDEX_OFFSET to -1 before calling indexSetPageSlide(). + * + * This is necessary for zooming (otherwise the index might not + * get redrawn) and when switching to index mode. + * + * INDEX_OFFSET = -1 + * indexSetPageSlide(activeSlide); + */ +function indexSetPageSlide(nbr) +{ + if (nbr >= slides.length) + nbr = slides.length - 1; + else if (nbr < 0) + nbr = 0; + + //calculate the offset + var offset = nbr - nbr % (INDEX_COLUMNS * INDEX_COLUMNS); + + if (offset < 0) + offset = 0; + + //if different from kept offset, then record and change the page + if (offset != INDEX_OFFSET) + { + INDEX_OFFSET = offset; + displayIndex(INDEX_OFFSET); + } + + //set the active slide + indexSetActiveSlide(nbr); +} + +/** Event handler for key press. + * + * @param e the event + */ +function keydown(e) +{ + if (!e) + e = window.event; + + code = e.keyCode || e.charCode; + + if (!processingEffect && keyCodeDictionary[currentMode] && keyCodeDictionary[currentMode][code]) + return keyCodeDictionary[currentMode][code](); + else + document.onkeypress = keypress; +} +// Set event handler for key down. +document.onkeydown = keydown; + +/** Event handler for key press. + * + * @param e the event + */ +function keypress(e) +{ + document.onkeypress = null; + + if (!e) + e = window.event; + + str = String.fromCharCode(e.keyCode || e.charCode); + + if (!processingEffect && charCodeDictionary[currentMode] && charCodeDictionary[currentMode][str]) + return charCodeDictionary[currentMode][str](); +} + +/** Function to supply the default char code dictionary. + * + * @returns default char code dictionary + */ +function getDefaultCharCodeDictionary() +{ + var charCodeDict = new Object(); + + charCodeDict[SLIDE_MODE] = new Object(); + charCodeDict[INDEX_MODE] = new Object(); + charCodeDict[DRAWING_MODE] = new Object(); + + charCodeDict[SLIDE_MODE]["i"] = function () { return toggleSlideIndex(); }; + charCodeDict[SLIDE_MODE]["d"] = function () { return slideSwitchToDrawingMode(); }; + charCodeDict[SLIDE_MODE]["D"] = function () { return slideQueryDuration(); }; + charCodeDict[SLIDE_MODE]["n"] = function () { return slideAddSlide(activeSlide); }; + charCodeDict[SLIDE_MODE]["p"] = function () { return slideToggleProgressBarVisibility(); }; + charCodeDict[SLIDE_MODE]["t"] = function () { return slideResetTimer(); }; + charCodeDict[SLIDE_MODE]["e"] = function () { return slideUpdateExportLayer(); }; + + charCodeDict[DRAWING_MODE]["d"] = function () { return drawingSwitchToSlideMode(); }; + charCodeDict[DRAWING_MODE]["0"] = function () { return drawingResetPathWidth(); }; + charCodeDict[DRAWING_MODE]["1"] = function () { return drawingSetPathWidth(1.0); }; + charCodeDict[DRAWING_MODE]["3"] = function () { return drawingSetPathWidth(3.0); }; + charCodeDict[DRAWING_MODE]["5"] = function () { return drawingSetPathWidth(5.0); }; + charCodeDict[DRAWING_MODE]["7"] = function () { return drawingSetPathWidth(7.0); }; + charCodeDict[DRAWING_MODE]["9"] = function () { return drawingSetPathWidth(9.0); }; + charCodeDict[DRAWING_MODE]["b"] = function () { return drawingSetPathColour("blue"); }; + charCodeDict[DRAWING_MODE]["c"] = function () { return drawingSetPathColour("cyan"); }; + charCodeDict[DRAWING_MODE]["g"] = function () { return drawingSetPathColour("green"); }; + charCodeDict[DRAWING_MODE]["k"] = function () { return drawingSetPathColour("black"); }; + charCodeDict[DRAWING_MODE]["m"] = function () { return drawingSetPathColour("magenta"); }; + charCodeDict[DRAWING_MODE]["o"] = function () { return drawingSetPathColour("orange"); }; + charCodeDict[DRAWING_MODE]["r"] = function () { return drawingSetPathColour("red"); }; + charCodeDict[DRAWING_MODE]["w"] = function () { return drawingSetPathColour("white"); }; + charCodeDict[DRAWING_MODE]["y"] = function () { return drawingSetPathColour("yellow"); }; + charCodeDict[DRAWING_MODE]["z"] = function () { return drawingUndo(); }; + + charCodeDict[INDEX_MODE]["i"] = function () { return toggleSlideIndex(); }; + charCodeDict[INDEX_MODE]["-"] = function () { return indexDecreaseNumberOfColumns(); }; + charCodeDict[INDEX_MODE]["="] = function () { return indexIncreaseNumberOfColumns(); }; + charCodeDict[INDEX_MODE]["+"] = function () { return indexIncreaseNumberOfColumns(); }; + charCodeDict[INDEX_MODE]["0"] = function () { return indexResetNumberOfColumns(); }; + + return charCodeDict; +} + +/** Function to supply the default key code dictionary. + * + * @returns default key code dictionary + */ +function getDefaultKeyCodeDictionary() +{ + var keyCodeDict = new Object(); + + keyCodeDict[SLIDE_MODE] = new Object(); + keyCodeDict[INDEX_MODE] = new Object(); + keyCodeDict[DRAWING_MODE] = new Object(); + + keyCodeDict[SLIDE_MODE][LEFT_KEY] = function() { return dispatchEffects(-1); }; + keyCodeDict[SLIDE_MODE][RIGHT_KEY] = function() { return dispatchEffects(1); }; + keyCodeDict[SLIDE_MODE][UP_KEY] = function() { return skipEffects(-1); }; + keyCodeDict[SLIDE_MODE][DOWN_KEY] = function() { return skipEffects(1); }; + keyCodeDict[SLIDE_MODE][PAGE_UP_KEY] = function() { return dispatchEffects(-1); }; + keyCodeDict[SLIDE_MODE][PAGE_DOWN_KEY] = function() { return dispatchEffects(1); }; + keyCodeDict[SLIDE_MODE][HOME_KEY] = function() { return slideSetActiveSlide(0); }; + keyCodeDict[SLIDE_MODE][END_KEY] = function() { return slideSetActiveSlide(slides.length - 1); }; + keyCodeDict[SLIDE_MODE][SPACE_KEY] = function() { return dispatchEffects(1); }; + + keyCodeDict[INDEX_MODE][LEFT_KEY] = function() { return indexSetPageSlide(activeSlide - 1); }; + keyCodeDict[INDEX_MODE][RIGHT_KEY] = function() { return indexSetPageSlide(activeSlide + 1); }; + keyCodeDict[INDEX_MODE][UP_KEY] = function() { return indexSetPageSlide(activeSlide - INDEX_COLUMNS); }; + keyCodeDict[INDEX_MODE][DOWN_KEY] = function() { return indexSetPageSlide(activeSlide + INDEX_COLUMNS); }; + keyCodeDict[INDEX_MODE][PAGE_UP_KEY] = function() { return indexSetPageSlide(activeSlide - INDEX_COLUMNS * INDEX_COLUMNS); }; + keyCodeDict[INDEX_MODE][PAGE_DOWN_KEY] = function() { return indexSetPageSlide(activeSlide + INDEX_COLUMNS * INDEX_COLUMNS); }; + keyCodeDict[INDEX_MODE][HOME_KEY] = function() { return indexSetPageSlide(0); }; + keyCodeDict[INDEX_MODE][END_KEY] = function() { return indexSetPageSlide(slides.length - 1); }; + keyCodeDict[INDEX_MODE][ENTER_KEY] = function() { return toggleSlideIndex(); }; + + keyCodeDict[DRAWING_MODE][ESCAPE_KEY] = function () { return drawingSwitchToSlideMode(); }; + + return keyCodeDict; +} + +/** Function to handle all mouse events. + * + * @param evnt event + * @param action type of event (e.g. mouse up, mouse wheel) + */ +function mouseHandlerDispatch(evnt, action) +{ + if (!evnt) + evnt = window.event; + + var retVal = true; + + if (!processingEffect && mouseHandlerDictionary[currentMode] && mouseHandlerDictionary[currentMode][action]) + { + var subRetVal = mouseHandlerDictionary[currentMode][action](evnt); + + if (subRetVal != null && subRetVal != undefined) + retVal = subRetVal; + } + + if (evnt.preventDefault && !retVal) + evnt.preventDefault(); + + evnt.returnValue = retVal; + + return retVal; +} + +// Set mouse event handler. +document.onmousedown = function(e) { return mouseHandlerDispatch(e, MOUSE_DOWN); }; +document.onmouseup = function(e) { return mouseHandlerDispatch(e, MOUSE_UP); }; +document.onmousemove = function(e) { return mouseHandlerDispatch(e, MOUSE_MOVE); }; + +// Moz +if (window.addEventListener) +{ + window.addEventListener('DOMMouseScroll', function(e) { return mouseHandlerDispatch(e, MOUSE_WHEEL); }, false); +} + +// Opera Safari OK - may not work in IE +window.onmousewheel = function(e) { return mouseHandlerDispatch(e, MOUSE_WHEEL); }; + +/** Function to supply the default mouse handler dictionary. + * + * @returns default mouse handler dictionary + */ +function getDefaultMouseHandlerDictionary() +{ + var mouseHandlerDict = new Object(); + + mouseHandlerDict[SLIDE_MODE] = new Object(); + mouseHandlerDict[INDEX_MODE] = new Object(); + mouseHandlerDict[DRAWING_MODE] = new Object(); + + mouseHandlerDict[SLIDE_MODE][MOUSE_DOWN] = function(evnt) { return dispatchEffects(1); }; + mouseHandlerDict[SLIDE_MODE][MOUSE_WHEEL] = function(evnt) { return slideMousewheel(evnt); }; + + mouseHandlerDict[INDEX_MODE][MOUSE_DOWN] = function(evnt) { return toggleSlideIndex(); }; + + mouseHandlerDict[DRAWING_MODE][MOUSE_DOWN] = function(evnt) { return drawingMousedown(evnt); }; + mouseHandlerDict[DRAWING_MODE][MOUSE_UP] = function(evnt) { return drawingMouseup(evnt); }; + mouseHandlerDict[DRAWING_MODE][MOUSE_MOVE] = function(evnt) { return drawingMousemove(evnt); }; + + return mouseHandlerDict; +} + +/** Function to switch from slide mode to drawing mode. +*/ +function slideSwitchToDrawingMode() +{ + currentMode = DRAWING_MODE; + + var tempDict; + + if (ROOT_NODE.hasAttribute("style")) + tempDict = propStrToDict(ROOT_NODE.getAttribute("style")); + else + tempDict = new Object(); + + tempDict["cursor"] = "crosshair"; + ROOT_NODE.setAttribute("style", dictToPropStr(tempDict)); +} + +/** Function to switch from drawing mode to slide mode. +*/ +function drawingSwitchToSlideMode() +{ + currentMode = SLIDE_MODE; + + var tempDict; + + if (ROOT_NODE.hasAttribute("style")) + tempDict = propStrToDict(ROOT_NODE.getAttribute("style")); + else + tempDict = new Object(); + + tempDict["cursor"] = "auto"; + ROOT_NODE.setAttribute("style", dictToPropStr(tempDict)); +} + +/** Function to decrease the number of columns in index mode. +*/ +function indexDecreaseNumberOfColumns() +{ + if (INDEX_COLUMNS >= 3) + { + INDEX_COLUMNS -= 1; + INDEX_OFFSET = -1 + indexSetPageSlide(activeSlide); + } +} + +/** Function to increase the number of columns in index mode. +*/ +function indexIncreaseNumberOfColumns() +{ + if (INDEX_COLUMNS < 7) + { + INDEX_COLUMNS += 1; + INDEX_OFFSET = -1 + indexSetPageSlide(activeSlide); + } +} + +/** Function to reset the number of columns in index mode. +*/ +function indexResetNumberOfColumns() +{ + if (INDEX_COLUMNS != INDEX_COLUMNS_DEFAULT) + { + INDEX_COLUMNS = INDEX_COLUMNS_DEFAULT; + INDEX_OFFSET = -1 + indexSetPageSlide(activeSlide); + } +} + +/** Function to reset path width in drawing mode. +*/ +function drawingResetPathWidth() +{ + path_width = path_width_default; + set_path_paint_width(); +} + +/** Function to set path width in drawing mode. + * + * @param width new path width + */ +function drawingSetPathWidth(width) +{ + path_width = width; + set_path_paint_width(); +} + +/** Function to set path colour in drawing mode. + * + * @param colour new path colour + */ +function drawingSetPathColour(colour) +{ + path_colour = colour; +} + +/** Function to query the duration of the presentation from the user in slide mode. +*/ +function slideQueryDuration() +{ + var new_duration = prompt("Length of presentation in minutes?", timer_duration); + + if ((new_duration != null) && (new_duration != '')) + { + timer_duration = new_duration; + } + + updateTimer(); +} + +/** Function to add new slide in slide mode. + * + * @param afterSlide after which slide to insert the new one + */ +function slideAddSlide(afterSlide) +{ + addSlide(afterSlide); + slideSetActiveSlide(afterSlide + 1); + updateTimer(); +} + +/** Function to toggle the visibility of the progress bar in slide mode. +*/ +function slideToggleProgressBarVisibility() +{ + if (progress_bar_visible) + { + progress_bar_visible = false; + hideProgressBar(); + } + else + { + progress_bar_visible = true; + showProgressBar(); + } +} + +/** Function to reset the timer in slide mode. +*/ +function slideResetTimer() +{ + timer_start = timer_elapsed; + updateTimer(); +} + +/** Convenience function to pad a string with zero in front up to a certain length. + */ +function padString(str, len) +{ + var outStr = str; + + while (outStr.length < len) + { + outStr = '0' + outStr; + } + + return outStr; +} + +/** Function to update the export layer. + */ +function slideUpdateExportLayer() +{ + // Suspend redraw since we are going to mess with the slides. + var suspendHandle = ROOT_NODE.suspendRedraw(2000); + + var tmpActiveSlide = activeSlide; + var tmpActiveEffect = activeEffect; + var exportedLayers = new Array(); + + for (var counterSlides = 0; counterSlides < slides.length; counterSlides++) + { + var exportNode; + + setSlideToState(counterSlides, STATE_START); + + var maxEffect = 0; + + if (slides[counterSlides].effects) + { + maxEffect = slides[counterSlides].effects.length; + } + + exportNode = slides[counterSlides].element.cloneNode(true); + exportNode.setAttributeNS(NSS["inkscape"], "groupmode", "layer"); + exportNode.setAttributeNS(NSS["inkscape"], "label", "slide_" + padString((counterSlides + 1).toString(), slides.length.toString().length) + "_effect_" + padString("0", maxEffect.toString().length)); + + exportedLayers.push(exportNode); + + if (slides[counterSlides]["effects"]) + { + for (var counter = 0; counter < slides[counterSlides]["effects"].length; counter++) + { + for (var subCounter = 0; subCounter < slides[counterSlides]["effects"][counter].length; subCounter++) + { + var effect = slides[counterSlides]["effects"][counter][subCounter]; + if (effect["effect"] == "fade") + fade(parseInt(effect["dir"]), effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "appear") + appear(parseInt(effect["dir"]), effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "pop") + pop(parseInt(effect["dir"]), effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "view") + view(parseInt(effect["dir"]), effect["element"], STATE_END, effect["options"]); + } + + var layerName = "slide_" + padString((counterSlides + 1).toString(), slides.length.toString().length) + "_effect_" + padString((counter + 1).toString(), maxEffect.toString().length); + exportNode = slides[counterSlides].element.cloneNode(true); + exportNode.setAttributeNS(NSS["inkscape"], "groupmode", "layer"); + exportNode.setAttributeNS(NSS["inkscape"], "label", layerName); + exportNode.setAttribute("id", layerName); + + exportedLayers.push(exportNode); + } + } + } + + activeSlide = tmpActiveSlide; + activeEffect = tmpActiveEffect; + setSlideToState(activeSlide, activeEffect); + + // Copy image. + var newDoc = document.documentElement.cloneNode(true); + + // Delete viewbox form new imag and set width and height. + newDoc.removeAttribute('viewbox'); + newDoc.setAttribute('width', WIDTH); + newDoc.setAttribute('height', HEIGHT); + + // Delete all layers and script elements. + var nodesToBeRemoved = new Array(); + + for (var childCounter = 0; childCounter < newDoc.childNodes.length; childCounter++) + { + var child = newDoc.childNodes[childCounter]; + + if (child.nodeType == 1) + { + if ((child.nodeName.toUpperCase() == 'G') || (child.nodeName.toUpperCase() == 'SCRIPT')) + { + nodesToBeRemoved.push(child); + } + } + } + + for (var ndCounter = 0; ndCounter < nodesToBeRemoved.length; ndCounter++) + { + var nd = nodesToBeRemoved[ndCounter]; + + // Before removing the node, check whether it contains any definitions. + var defs = nd.getElementsByTagNameNS(NSS["svg"], "defs"); + + for (var defsCounter = 0; defsCounter < defs.length; defsCounter++) + { + if (defs[defsCounter].id) + { + newDoc.appendChild(defs[defsCounter].cloneNode(true)); + } + } + + // Remove node. + nd.parentNode.removeChild(nd); + } + + // Set current layer. + if (exportedLayers[0]) + { + var namedView; + + for (var nodeCounter = 0; nodeCounter < newDoc.childNodes.length; nodeCounter++) + { + if ((newDoc.childNodes[nodeCounter].nodeType == 1) && (newDoc.childNodes[nodeCounter].getAttribute('id') == 'base')) + { + namedView = newDoc.childNodes[nodeCounter]; + } + } + + if (namedView) + { + namedView.setAttributeNS(NSS['inkscape'], 'current-layer', exportedLayers[0].getAttributeNS(NSS['inkscape'], 'label')); + } + } + + // Add exported layers. + while (exportedLayers.length > 0) + { + var nd = exportedLayers.pop(); + + nd.setAttribute("opacity",1); + nd.style.display = "inherit"; + + newDoc.appendChild(nd); + } + + // Serialise the new document. + window.location = 'data:application/svg+xml;base64;charset=utf-8,' + window.btoa(unescape(encodeURIComponent((new XMLSerializer()).serializeToString(newDoc)))); + + // Unsuspend redraw. + ROOT_NODE.unsuspendRedraw(suspendHandle); + ROOT_NODE.forceRedraw(); +} + +/** Function to undo last drawing operation. +*/ +function drawingUndo() +{ + mouse_presentation_path = null; + mouse_original_path = null; + + if (history_presentation_elements.length > 0) + { + var p = history_presentation_elements.pop(); + var parent = p.parentNode.removeChild(p); + + p = history_original_elements.pop(); + parent = p.parentNode.removeChild(p); + } +} + +/** Event handler for mouse down in drawing mode. + * + * @param e the event + */ +function drawingMousedown(e) +{ + var value = 0; + + if (e.button) + value = e.button; + else if (e.which) + value = e.which; + + if (value == 1) + { + history_counter++; + + var p = calcCoord(e); + + mouse_last_x = e.clientX; + mouse_last_y = e.clientY; + mouse_original_path = document.createElementNS(NSS["svg"], "path"); + mouse_original_path.setAttribute("stroke", path_colour); + mouse_original_path.setAttribute("stroke-width", path_paint_width); + mouse_original_path.setAttribute("fill", "none"); + mouse_original_path.setAttribute("id", "path " + Date()); + mouse_original_path.setAttribute("d", "M" + p.x + "," + p.y); + slides[activeSlide]["original_element"].appendChild(mouse_original_path); + history_original_elements.push(mouse_original_path); + + mouse_presentation_path = document.createElementNS(NSS["svg"], "path"); + mouse_presentation_path.setAttribute("stroke", path_colour); + mouse_presentation_path.setAttribute("stroke-width", path_paint_width); + mouse_presentation_path.setAttribute("fill", "none"); + mouse_presentation_path.setAttribute("id", "path " + Date() + " presentation copy"); + mouse_presentation_path.setAttribute("d", "M" + p.x + "," + p.y); + + if (slides[activeSlide]["viewGroup"]) + slides[activeSlide]["viewGroup"].appendChild(mouse_presentation_path); + else + slides[activeSlide]["element"].appendChild(mouse_presentation_path); + + history_presentation_elements.push(mouse_presentation_path); + + return false; + } + + return true; +} + +/** Event handler for mouse up in drawing mode. + * + * @param e the event + */ +function drawingMouseup(e) +{ + if(!e) + e = window.event; + + if (mouse_presentation_path != null) + { + var p = calcCoord(e); + var d = mouse_presentation_path.getAttribute("d"); + d += " L" + p.x + "," + p.y; + mouse_presentation_path.setAttribute("d", d); + mouse_presentation_path = null; + mouse_original_path.setAttribute("d", d); + mouse_original_path = null; + + return false; + } + + return true; +} + +/** Event handler for mouse move in drawing mode. + * + * @param e the event + */ +function drawingMousemove(e) +{ + if(!e) + e = window.event; + + var dist = (mouse_last_x - e.clientX) * (mouse_last_x - e.clientX) + (mouse_last_y - e.clientY) * (mouse_last_y - e.clientY); + + if (mouse_presentation_path == null) + { + return true; + } + + if (dist >= mouse_min_dist_sqr) + { + var p = calcCoord(e); + var d = mouse_presentation_path.getAttribute("d"); + d += " L" + p.x + "," + p.y; + mouse_presentation_path.setAttribute("d", d); + mouse_original_path.setAttribute("d", d); + mouse_last_x = e.clientX; + mouse_last_y = e.clientY; + } + + return false; +} + +/** Event handler for mouse wheel events in slide mode. + * based on http://adomas.org/javascript-mouse-wheel/ + * + * @param e the event + */ +function slideMousewheel(e) +{ + var delta = 0; + + if (!e) + e = window.event; + + if (e.wheelDelta) + { // IE Opera + delta = e.wheelDelta/120; + } + else if (e.detail) + { // MOZ + delta = -e.detail/3; + } + + if (delta > 0) + skipEffects(-1); + else if (delta < 0) + skipEffects(1); + + if (e.preventDefault) + e.preventDefault(); + + e.returnValue = false; +} + +/** Event handler for mouse wheel events in index mode. + * based on http://adomas.org/javascript-mouse-wheel/ + * + * @param e the event + */ +function indexMousewheel(e) +{ + var delta = 0; + + if (!e) + e = window.event; + + if (e.wheelDelta) + { // IE Opera + delta = e.wheelDelta/120; + } + else if (e.detail) + { // MOZ + delta = -e.detail/3; + } + + if (delta > 0) + indexSetPageSlide(activeSlide - INDEX_COLUMNS * INDEX_COLUMNS); + else if (delta < 0) + indexSetPageSlide(activeSlide + INDEX_COLUMNS * INDEX_COLUMNS); + + if (e.preventDefault) + e.preventDefault(); + + e.returnValue = false; +} + +/** Function to set the path paint width. +*/ +function set_path_paint_width() +{ + var svgPoint1 = document.documentElement.createSVGPoint(); + var svgPoint2 = document.documentElement.createSVGPoint(); + + svgPoint1.x = 0.0; + svgPoint1.y = 0.0; + svgPoint2.x = 1.0; + svgPoint2.y = 0.0; + + var matrix = slides[activeSlide]["element"].getTransformToElement(ROOT_NODE); + + if (slides[activeSlide]["viewGroup"]) + matrix = slides[activeSlide]["viewGroup"].getTransformToElement(ROOT_NODE); + + svgPoint1 = svgPoint1.matrixTransform(matrix); + svgPoint2 = svgPoint2.matrixTransform(matrix); + + path_paint_width = path_width / Math.sqrt((svgPoint2.x - svgPoint1.x) * (svgPoint2.x - svgPoint1.x) + (svgPoint2.y - svgPoint1.y) * (svgPoint2.y - svgPoint1.y)); +} + +/** The view effect. + * + * @param dir direction the effect should be played (1 = forwards, -1 = backwards) + * @param element the element the effect should be applied to + * @param time the time that has elapsed since the beginning of the effect + * @param options a dictionary with additional options (e.g. length of the effect); for the view effect the options need to contain the old and the new matrix. + */ +function view(dir, element, time, options) +{ + var length = 250; + var fraction; + + if (!options["matrixInitial"]) + { + var tempString = slides[activeSlide]["viewGroup"].getAttribute("transform"); + + if (tempString) + options["matrixInitial"] = (new matrixSVG()).fromAttribute(tempString); + else + options["matrixInitial"] = (new matrixSVG()).fromSVGElements(1, 0, 0, 1, 0, 0); + } + + if ((time == STATE_END) || (time == STATE_START)) + fraction = 1; + else + { + if (options && options["length"]) + length = options["length"]; + + fraction = time / length; + } + + if (dir == 1) + { + if (fraction <= 0) + { + element.setAttribute("transform", options["matrixInitial"].toAttribute()); + } + else if (fraction >= 1) + { + element.setAttribute("transform", options["matrixNew"].toAttribute()); + + set_path_paint_width(); + + options["matrixInitial"] = null; + return true; + } + else + { + element.setAttribute("transform", options["matrixInitial"].mix(options["matrixNew"], fraction).toAttribute()); + } + } + else if (dir == -1) + { + if (fraction <= 0) + { + element.setAttribute("transform", options["matrixInitial"].toAttribute()); + } + else if (fraction >= 1) + { + element.setAttribute("transform", options["matrixOld"].toAttribute()); + set_path_paint_width(); + + options["matrixInitial"] = null; + return true; + } + else + { + element.setAttribute("transform", options["matrixInitial"].mix(options["matrixOld"], fraction).toAttribute()); + } + } + + return false; +} + +/** The fade effect. + * + * @param dir direction the effect should be played (1 = forwards, -1 = backwards) + * @param element the element the effect should be applied to + * @param time the time that has elapsed since the beginning of the effect + * @param options a dictionary with additional options (e.g. length of the effect) + */ +function fade(dir, element, time, options) +{ + var length = 250; + var fraction; + + if ((time == STATE_END) || (time == STATE_START)) + fraction = 1; + else + { + if (options && options["length"]) + length = options["length"]; + + fraction = time / length; + } + + if (dir == 1) + { + if (fraction <= 0) + { + element.style.display = "none"; + element.setAttribute("opacity", 0); + } + else if (fraction >= 1) + { + element.style.display = "inherit"; + element.setAttribute("opacity", 1); + return true; + } + else + { + element.style.display = "inherit"; + element.setAttribute("opacity", fraction); + } + } + else if (dir == -1) + { + if (fraction <= 0) + { + element.style.display = "inherit"; + element.setAttribute("opacity", 1); + } + else if (fraction >= 1) + { + element.setAttribute("opacity", 0); + element.style.display = "none"; + return true; + } + else + { + element.style.display = "inherit"; + element.setAttribute("opacity", 1 - fraction); + } + } + return false; +} + +/** The appear effect. + * + * @param dir direction the effect should be played (1 = forwards, -1 = backwards) + * @param element the element the effect should be applied to + * @param time the time that has elapsed since the beginning of the effect + * @param options a dictionary with additional options (e.g. length of the effect) + */ +function appear(dir, element, time, options) +{ + if (dir == 1) + { + element.style.display = "inherit"; + element.setAttribute("opacity",1); + } + else if (dir == -1) + { + element.style.display = "none"; + element.setAttribute("opacity",0); + } + return true; +} + +/** The pop effect. + * + * @param dir direction the effect should be played (1 = forwards, -1 = backwards) + * @param element the element the effect should be applied to + * @param time the time that has elapsed since the beginning of the effect + * @param options a dictionary with additional options (e.g. length of the effect) + */ +function pop(dir, element, time, options) +{ + var length = 500; + var fraction; + + if ((time == STATE_END) || (time == STATE_START)) + fraction = 1; + else + { + if (options && options["length"]) + length = options["length"]; + + fraction = time / length; + } + + if (dir == 1) + { + if (fraction <= 0) + { + element.setAttribute("opacity", 0); + element.setAttribute("transform", "scale(0)"); + element.style.display = "none"; + } + else if (fraction >= 1) + { + element.setAttribute("opacity", 1); + element.removeAttribute("transform"); + element.style.display = "inherit"; + return true; + } + else + { + element.style.display = "inherit"; + var opacityFraction = fraction * 3; + if (opacityFraction > 1) + opacityFraction = 1; + element.setAttribute("opacity", opacityFraction); + var offsetX = WIDTH * (1.0 - fraction) / 2.0; + var offsetY = HEIGHT * (1.0 - fraction) / 2.0; + element.setAttribute("transform", "translate(" + offsetX + "," + offsetY + ") scale(" + fraction + ")"); + } + } + else if (dir == -1) + { + if (fraction <= 0) + { + element.setAttribute("opacity", 1); + element.setAttribute("transform", "scale(1)"); + element.style.display = "inherit"; + } + else if (fraction >= 1) + { + element.setAttribute("opacity", 0); + element.removeAttribute("transform"); + element.style.display = "none"; + return true; + } + else + { + element.setAttribute("opacity", 1 - fraction); + element.setAttribute("transform", "scale(" + 1 - fraction + ")"); + element.style.display = "inherit"; + } + } + return false; +} + +/** Function to set a slide either to the start or the end state. + * + * @param slide the slide to use + * @param state the state into which the slide should be set + */ +function setSlideToState(slide, state) +{ + slides[slide]["viewGroup"].setAttribute("transform", slides[slide].initialView); + + if (slides[slide]["effects"]) + { + if (state == STATE_END) + { + for (var counter = 0; counter < slides[slide]["effects"].length; counter++) + { + for (var subCounter = 0; subCounter < slides[slide]["effects"][counter].length; subCounter++) + { + var effect = slides[slide]["effects"][counter][subCounter]; + if (effect["effect"] == "fade") + fade(effect["dir"], effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "appear") + appear(effect["dir"], effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "pop") + pop(effect["dir"], effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "view") + view(effect["dir"], effect["element"], STATE_END, effect["options"]); + } + } + } + else if (state == STATE_START) + { + for (var counter = slides[slide]["effects"].length - 1; counter >= 0; counter--) + { + for (var subCounter = 0; subCounter < slides[slide]["effects"][counter].length; subCounter++) + { + var effect = slides[slide]["effects"][counter][subCounter]; + if (effect["effect"] == "fade") + fade(parseInt(effect["dir"]) * -1, effect["element"], STATE_START, effect["options"]); + else if (effect["effect"] == "appear") + appear(parseInt(effect["dir"]) * -1, effect["element"], STATE_START, effect["options"]); + else if (effect["effect"] == "pop") + pop(parseInt(effect["dir"]) * -1, effect["element"], STATE_START, effect["options"]); + else if (effect["effect"] == "view") + view(parseInt(effect["dir"]) * -1, effect["element"], STATE_START, effect["options"]); + } + } + } + else + { + setSlideToState(slide, STATE_START); + + for (var counter = 0; counter < slides[slide]["effects"].length && counter < state; counter++) + { + for (var subCounter = 0; subCounter < slides[slide]["effects"][counter].length; subCounter++) + { + var effect = slides[slide]["effects"][counter][subCounter]; + if (effect["effect"] == "fade") + fade(effect["dir"], effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "appear") + appear(effect["dir"], effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "pop") + pop(effect["dir"], effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "view") + view(effect["dir"], effect["element"], STATE_END, effect["options"]); + } + } + } + } + + window.location.hash = (activeSlide + 1) + '_' + activeEffect; +} + +/** Convenience function to translate a attribute string into a dictionary. + * + * @param str the attribute string + * @return a dictionary + * @see dictToPropStr + */ +function propStrToDict(str) +{ + var list = str.split(";"); + var obj = new Object(); + + for (var counter = 0; counter < list.length; counter++) + { + var subStr = list[counter]; + var subList = subStr.split(":"); + if (subList.length == 2) + { + obj[subList[0]] = subList[1]; + } + } + + return obj; +} + +/** Convenience function to translate a dictionary into a string that can be used as an attribute. + * + * @param dict the dictionary to convert + * @return a string that can be used as an attribute + * @see propStrToDict + */ +function dictToPropStr(dict) +{ + var str = ""; + + for (var key in dict) + { + str += key + ":" + dict[key] + ";"; + } + + return str; +} + +/** Sub-function to add a suffix to the ids of the node and all its children. + * + * @param node the node to change + * @param suffix the suffix to add + * @param replace dictionary of replaced ids + * @see suffixNodeIds + */ +function suffixNoneIds_sub(node, suffix, replace) +{ + if (node.nodeType == 1) + { + if (node.getAttribute("id")) + { + var id = node.getAttribute("id") + replace["#" + id] = id + suffix; + node.setAttribute("id", id + suffix); + } + + if ((node.nodeName == "use") && (node.getAttributeNS(NSS["xlink"], "href")) && (replace[node.getAttribute(NSS["xlink"], "href")])) + node.setAttribute(NSS["xlink"], "href", node.getAttribute(NSS["xlink"], "href") + suffix); + + if (node.childNodes) + { + for (var counter = 0; counter < node.childNodes.length; counter++) + suffixNoneIds_sub(node.childNodes[counter], suffix, replace); + } + } +} + +/** Function to add a suffix to the ids of the node and all its children. + * + * @param node the node to change + * @param suffix the suffix to add + * @return the changed node + * @see suffixNodeIds_sub + */ +function suffixNodeIds(node, suffix) +{ + var replace = new Object(); + + suffixNoneIds_sub(node, suffix, replace); + + return node; +} + +/** Function to build a progress bar. + * + * @param parent node to attach the progress bar to + */ +function createProgressBar(parent_node) +{ + var g = document.createElementNS(NSS["svg"], "g"); + g.setAttribute("clip-path", "url(#jessyInkSlideClipPath)"); + g.setAttribute("id", "layer_progress_bar"); + g.setAttribute("style", "display: none;"); + + var rect_progress_bar = document.createElementNS(NSS["svg"], "rect"); + rect_progress_bar.setAttribute("style", "marker: none; fill: rgb(128, 128, 128); stroke: none;"); + rect_progress_bar.setAttribute("id", "rect_progress_bar"); + rect_progress_bar.setAttribute("x", 0); + rect_progress_bar.setAttribute("y", 0.99 * HEIGHT); + rect_progress_bar.setAttribute("width", 0); + rect_progress_bar.setAttribute("height", 0.01 * HEIGHT); + g.appendChild(rect_progress_bar); + + var circle_timer_indicator = document.createElementNS(NSS["svg"], "circle"); + circle_timer_indicator.setAttribute("style", "marker: none; fill: rgb(255, 0, 0); stroke: none;"); + circle_timer_indicator.setAttribute("id", "circle_timer_indicator"); + circle_timer_indicator.setAttribute("cx", 0.005 * HEIGHT); + circle_timer_indicator.setAttribute("cy", 0.995 * HEIGHT); + circle_timer_indicator.setAttribute("r", 0.005 * HEIGHT); + g.appendChild(circle_timer_indicator); + + parent_node.appendChild(g); +} + +/** Function to hide the progress bar. + * + */ +function hideProgressBar() +{ + var progress_bar = document.getElementById("layer_progress_bar"); + + if (!progress_bar) + { + return; + } + + progress_bar.setAttribute("style", "display: none;"); +} + +/** Function to show the progress bar. + * + */ +function showProgressBar() +{ + var progress_bar = document.getElementById("layer_progress_bar"); + + if (!progress_bar) + { + return; + } + + progress_bar.setAttribute("style", "display: inherit;"); +} + +/** Set progress bar value. + * + * @param value the current slide number + * + */ +function setProgressBarValue(value) +{ + var rect_progress_bar = document.getElementById("rect_progress_bar"); + + if (!rect_progress_bar) + { + return; + } + + if (value < 1) + { + // First slide, assumed to be the title of the presentation + var x = 0; + var w = 0.01 * HEIGHT; + } + else if (value >= slides.length - 1) + { + // Last slide, assumed to be the end of the presentation + var x = WIDTH - 0.01 * HEIGHT; + var w = 0.01 * HEIGHT; + } + else + { + value -= 1; + value /= (slides.length - 2); + + var x = WIDTH * value; + var w = WIDTH / (slides.length - 2); + } + + rect_progress_bar.setAttribute("x", x); + rect_progress_bar.setAttribute("width", w); +} + +/** Set time indicator. + * + * @param value the percentage of time elapse so far between 0.0 and 1.0 + * + */ +function setTimeIndicatorValue(value) +{ + var circle_timer_indicator = document.getElementById("circle_timer_indicator"); + + if (!circle_timer_indicator) + { + return; + } + + if (value < 0.0) + { + value = 0.0; + } + + if (value > 1.0) + { + value = 1.0; + } + + var cx = (WIDTH - 0.01 * HEIGHT) * value + 0.005 * HEIGHT; + circle_timer_indicator.setAttribute("cx", cx); +} + +/** Update timer. + * + */ +function updateTimer() +{ + timer_elapsed += 1; + setTimeIndicatorValue((timer_elapsed - timer_start) / (60 * timer_duration)); +} + +/** Convert screen coordinates to document coordinates. + * + * @param e event with screen coordinates + * + * @return coordinates in SVG file coordinate system + */ +function calcCoord(e) +{ + var svgPoint = document.documentElement.createSVGPoint(); + svgPoint.x = e.clientX + window.pageXOffset; + svgPoint.y = e.clientY + window.pageYOffset; + + var matrix = slides[activeSlide]["element"].getScreenCTM(); + + if (slides[activeSlide]["viewGroup"]) + matrix = slides[activeSlide]["viewGroup"].getScreenCTM(); + + svgPoint = svgPoint.matrixTransform(matrix.inverse()); + return svgPoint; +} + +/** Add slide. + * + * @param after_slide after which slide the new slide should be inserted into the presentation + */ +function addSlide(after_slide) +{ + number_of_added_slides++; + + var g = document.createElementNS(NSS["svg"], "g"); + g.setAttribute("clip-path", "url(#jessyInkSlideClipPath)"); + g.setAttribute("id", "Whiteboard " + Date() + " presentation copy"); + g.setAttribute("style", "display: none;"); + + var new_slide = new Object(); + new_slide["element"] = g; + + // Set build in transition. + new_slide["transitionIn"] = new Object(); + var dict = defaultTransitionInDict; + new_slide["transitionIn"]["name"] = dict["name"]; + new_slide["transitionIn"]["options"] = new Object(); + + for (key in dict) + if (key != "name") + new_slide["transitionIn"]["options"][key] = dict[key]; + + // Set build out transition. + new_slide["transitionOut"] = new Object(); + dict = defaultTransitionOutDict; + new_slide["transitionOut"]["name"] = dict["name"]; + new_slide["transitionOut"]["options"] = new Object(); + + for (key in dict) + if (key != "name") + new_slide["transitionOut"]["options"][key] = dict[key]; + + // Copy master slide content. + if (masterSlide) + { + var clonedNode = suffixNodeIds(masterSlide.cloneNode(true), "_" + Date() + " presentation_copy"); + clonedNode.removeAttributeNS(NSS["inkscape"], "groupmode"); + clonedNode.removeAttributeNS(NSS["inkscape"], "label"); + clonedNode.style.display = "inherit"; + + g.appendChild(clonedNode); + } + + // Substitute auto texts. + substituteAutoTexts(g, "Whiteboard " + number_of_added_slides, "W" + number_of_added_slides, slides.length); + + g.setAttribute("onmouseover", "if ((currentMode == INDEX_MODE) && ( activeSlide != " + (after_slide + 1) + ")) { indexSetActiveSlide(" + (after_slide + 1) + "); };"); + + // Create a transform group. + var transformGroup = document.createElementNS(NSS["svg"], "g"); + + // Add content to transform group. + while (g.firstChild) + transformGroup.appendChild(g.firstChild); + + // Transfer the transform attribute from the node to the transform group. + if (g.getAttribute("transform")) + { + transformGroup.setAttribute("transform", g.getAttribute("transform")); + g.removeAttribute("transform"); + } + + // Create a view group. + var viewGroup = document.createElementNS(NSS["svg"], "g"); + + viewGroup.appendChild(transformGroup); + new_slide["viewGroup"] = g.appendChild(viewGroup); + + // Insert background. + if (BACKGROUND_COLOR != null) + { + var rectNode = document.createElementNS(NSS["svg"], "rect"); + + rectNode.setAttribute("x", 0); + rectNode.setAttribute("y", 0); + rectNode.setAttribute("width", WIDTH); + rectNode.setAttribute("height", HEIGHT); + rectNode.setAttribute("id", "jessyInkBackground" + Date()); + rectNode.setAttribute("fill", BACKGROUND_COLOR); + + new_slide["viewGroup"].insertBefore(rectNode, new_slide["viewGroup"].firstChild); + } + + // Set initial view even if there are no other views. + var matrixOld = (new matrixSVG()).fromElements(1, 0, 0, 0, 1, 0, 0, 0, 1); + + new_slide["viewGroup"].setAttribute("transform", matrixOld.toAttribute()); + new_slide.initialView = matrixOld.toAttribute(); + + // Insert slide + var node = slides[after_slide]["element"]; + var next_node = node.nextSibling; + var parent_node = node.parentNode; + + if (next_node) + { + parent_node.insertBefore(g, next_node); + } + else + { + parent_node.appendChild(g); + } + + g = document.createElementNS(NSS["svg"], "g"); + g.setAttributeNS(NSS["inkscape"], "groupmode", "layer"); + g.setAttributeNS(NSS["inkscape"], "label", "Whiteboard " + number_of_added_slides); + g.setAttribute("clip-path", "url(#jessyInkSlideClipPath)"); + g.setAttribute("id", "Whiteboard " + Date()); + g.setAttribute("style", "display: none;"); + + new_slide["original_element"] = g; + + node = slides[after_slide]["original_element"]; + next_node = node.nextSibling; + parent_node = node.parentNode; + + if (next_node) + { + parent_node.insertBefore(g, next_node); + } + else + { + parent_node.appendChild(g); + } + + before_new_slide = slides.slice(0, after_slide + 1); + after_new_slide = slides.slice(after_slide + 1); + slides = before_new_slide.concat(new_slide, after_new_slide); + + //resetting the counter attributes on the slides that follow the new slide... + for (var counter = after_slide+2; counter < slides.length; counter++) + { + slides[counter]["element"].setAttribute("onmouseover", "if ((currentMode == INDEX_MODE) && ( activeSlide != " + counter + ")) { indexSetActiveSlide(" + counter + "); };"); + } +} + +/** Convenience function to obtain a transformation matrix from a point matrix. + * + * @param mPoints Point matrix. + * @return A transformation matrix. + */ +function pointMatrixToTransformation(mPoints) +{ + mPointsOld = (new matrixSVG()).fromElements(0, WIDTH, WIDTH, 0, 0, HEIGHT, 1, 1, 1); + + return mPointsOld.mult(mPoints.inv()); +} + +/** Convenience function to obtain a matrix with three corners of a rectangle. + * + * @param rect an svg rectangle + * @return a matrixSVG containing three corners of the rectangle + */ +function rectToMatrix(rect) +{ + rectWidth = rect.getBBox().width; + rectHeight = rect.getBBox().height; + rectX = rect.getBBox().x; + rectY = rect.getBBox().y; + rectXcorr = 0; + rectYcorr = 0; + + scaleX = WIDTH / rectWidth; + scaleY = HEIGHT / rectHeight; + + if (scaleX > scaleY) + { + scaleX = scaleY; + rectXcorr -= (WIDTH / scaleX - rectWidth) / 2; + rectWidth = WIDTH / scaleX; + } + else + { + scaleY = scaleX; + rectYcorr -= (HEIGHT / scaleY - rectHeight) / 2; + rectHeight = HEIGHT / scaleY; + } + + if (rect.transform.baseVal.numberOfItems < 1) + { + mRectTrans = (new matrixSVG()).fromElements(1, 0, 0, 0, 1, 0, 0, 0, 1); + } + else + { + mRectTrans = (new matrixSVG()).fromSVGMatrix(rect.transform.baseVal.consolidate().matrix); + } + + newBasePoints = (new matrixSVG()).fromElements(rectX, rectX, rectX, rectY, rectY, rectY, 1, 1, 1); + newVectors = (new matrixSVG()).fromElements(rectXcorr, rectXcorr + rectWidth, rectXcorr + rectWidth, rectYcorr, rectYcorr, rectYcorr + rectHeight, 0, 0, 0); + + return mRectTrans.mult(newBasePoints.add(newVectors)); +} + +/** Function to handle JessyInk elements. + * + * @param node Element node. + */ +function handleElement(node) +{ + if (node.getAttributeNS(NSS['jessyink'], 'element') == 'core.video') + { + var url; + var width; + var height; + var x; + var y; + var transform; + + var tspans = node.getElementsByTagNameNS("http://www.w3.org/2000/svg", "tspan"); + + for (var tspanCounter = 0; tspanCounter < tspans.length; tspanCounter++) + { + if (tspans[tspanCounter].getAttributeNS("https://launchpad.net/jessyink", "video") == "url") + { + url = tspans[tspanCounter].firstChild.nodeValue; + } + } + + var rects = node.getElementsByTagNameNS("http://www.w3.org/2000/svg", "rect"); + + for (var rectCounter = 0; rectCounter < rects.length; rectCounter++) + { + if (rects[rectCounter].getAttributeNS("https://launchpad.net/jessyink", "video") == "rect") + { + x = rects[rectCounter].getAttribute("x"); + y = rects[rectCounter].getAttribute("y"); + width = rects[rectCounter].getAttribute("width"); + height = rects[rectCounter].getAttribute("height"); + transform = rects[rectCounter].getAttribute("transform"); + } + } + + for (var childCounter = 0; childCounter < node.childNodes.length; childCounter++) + { + if (node.childNodes[childCounter].nodeType == 1) + { + if (node.childNodes[childCounter].style) + { + node.childNodes[childCounter].style.display = 'none'; + } + else + { + node.childNodes[childCounter].setAttribute("style", "display: none;"); + } + } + } + + var foreignNode = document.createElementNS("http://www.w3.org/2000/svg", "foreignObject"); + foreignNode.setAttribute("x", x); + foreignNode.setAttribute("y", y); + foreignNode.setAttribute("width", width); + foreignNode.setAttribute("height", height); + foreignNode.setAttribute("transform", transform); + + var videoNode = document.createElementNS("http://www.w3.org/1999/xhtml", "video"); + videoNode.setAttribute("src", url); + + foreignNode.appendChild(videoNode); + node.appendChild(foreignNode); + } +} + +/** Class processing the location hash. + * + * @param str location hash + */ +function LocationHash(str) +{ + this.slideNumber = 0; + this.effectNumber = 0; + + str = str.substr(1, str.length - 1); + + var parts = str.split('_'); + + // Try to extract slide number. + if (parts.length >= 1) + { + try + { + var slideNumber = parseInt(parts[0]); + + if (!isNaN(slideNumber)) + { + this.slideNumber = slideNumber - 1; + } + } + catch (e) + { + } + } + + // Try to extract effect number. + if (parts.length >= 2) + { + try + { + var effectNumber = parseInt(parts[1]); + + if (!isNaN(effectNumber)) + { + this.effectNumber = effectNumber; + } + } + catch (e) + { + } + } +} + +/** Class representing an svg matrix. +*/ +function matrixSVG() +{ + this.e11 = 0; // a + this.e12 = 0; // c + this.e13 = 0; // e + this.e21 = 0; // b + this.e22 = 0; // d + this.e23 = 0; // f + this.e31 = 0; + this.e32 = 0; + this.e33 = 0; +} + +/** Constructor function. + * + * @param a element a (i.e. 1, 1) as described in the svg standard. + * @param b element b (i.e. 2, 1) as described in the svg standard. + * @param c element c (i.e. 1, 2) as described in the svg standard. + * @param d element d (i.e. 2, 2) as described in the svg standard. + * @param e element e (i.e. 1, 3) as described in the svg standard. + * @param f element f (i.e. 2, 3) as described in the svg standard. + */ +matrixSVG.prototype.fromSVGElements = function(a, b, c, d, e, f) +{ + this.e11 = a; + this.e12 = c; + this.e13 = e; + this.e21 = b; + this.e22 = d; + this.e23 = f; + this.e31 = 0; + this.e32 = 0; + this.e33 = 1; + + return this; +} + +/** Constructor function. + * + * @param matrix an svg matrix as described in the svg standard. + */ +matrixSVG.prototype.fromSVGMatrix = function(m) +{ + this.e11 = m.a; + this.e12 = m.c; + this.e13 = m.e; + this.e21 = m.b; + this.e22 = m.d; + this.e23 = m.f; + this.e31 = 0; + this.e32 = 0; + this.e33 = 1; + + return this; +} + +/** Constructor function. + * + * @param e11 element 1, 1 of the matrix. + * @param e12 element 1, 2 of the matrix. + * @param e13 element 1, 3 of the matrix. + * @param e21 element 2, 1 of the matrix. + * @param e22 element 2, 2 of the matrix. + * @param e23 element 2, 3 of the matrix. + * @param e31 element 3, 1 of the matrix. + * @param e32 element 3, 2 of the matrix. + * @param e33 element 3, 3 of the matrix. + */ +matrixSVG.prototype.fromElements = function(e11, e12, e13, e21, e22, e23, e31, e32, e33) +{ + this.e11 = e11; + this.e12 = e12; + this.e13 = e13; + this.e21 = e21; + this.e22 = e22; + this.e23 = e23; + this.e31 = e31; + this.e32 = e32; + this.e33 = e33; + + return this; +} + +/** Constructor function. + * + * @param attrString string value of the "transform" attribute (currently only "matrix" is accepted) + */ +matrixSVG.prototype.fromAttribute = function(attrString) +{ + str = attrString.substr(7, attrString.length - 8); + + str = str.trim(); + + strArray = str.split(","); + + // Opera does not use commas to separate the values of the matrix, only spaces. + if (strArray.length != 6) + strArray = str.split(" "); + + this.e11 = parseFloat(strArray[0]); + this.e21 = parseFloat(strArray[1]); + this.e31 = 0; + this.e12 = parseFloat(strArray[2]); + this.e22 = parseFloat(strArray[3]); + this.e32 = 0; + this.e13 = parseFloat(strArray[4]); + this.e23 = parseFloat(strArray[5]); + this.e33 = 1; + + return this; +} + +/** Output function + * + * @return a string that can be used as the "transform" attribute. + */ +matrixSVG.prototype.toAttribute = function() +{ + return "matrix(" + this.e11 + ", " + this.e21 + ", " + this.e12 + ", " + this.e22 + ", " + this.e13 + ", " + this.e23 + ")"; +} + +/** Matrix nversion. + * + * @return the inverse of the matrix + */ +matrixSVG.prototype.inv = function() +{ + out = new matrixSVG(); + + det = this.e11 * (this.e33 * this.e22 - this.e32 * this.e23) - this.e21 * (this.e33 * this.e12 - this.e32 * this.e13) + this.e31 * (this.e23 * this.e12 - this.e22 * this.e13); + + out.e11 = (this.e33 * this.e22 - this.e32 * this.e23) / det; + out.e12 = -(this.e33 * this.e12 - this.e32 * this.e13) / det; + out.e13 = (this.e23 * this.e12 - this.e22 * this.e13) / det; + out.e21 = -(this.e33 * this.e21 - this.e31 * this.e23) / det; + out.e22 = (this.e33 * this.e11 - this.e31 * this.e13) / det; + out.e23 = -(this.e23 * this.e11 - this.e21 * this.e13) / det; + out.e31 = (this.e32 * this.e21 - this.e31 * this.e22) / det; + out.e32 = -(this.e32 * this.e11 - this.e31 * this.e12) / det; + out.e33 = (this.e22 * this.e11 - this.e21 * this.e12) / det; + + return out; +} + +/** Matrix multiplication. + * + * @param op another svg matrix + * @return this * op + */ +matrixSVG.prototype.mult = function(op) +{ + out = new matrixSVG(); + + out.e11 = this.e11 * op.e11 + this.e12 * op.e21 + this.e13 * op.e31; + out.e12 = this.e11 * op.e12 + this.e12 * op.e22 + this.e13 * op.e32; + out.e13 = this.e11 * op.e13 + this.e12 * op.e23 + this.e13 * op.e33; + out.e21 = this.e21 * op.e11 + this.e22 * op.e21 + this.e23 * op.e31; + out.e22 = this.e21 * op.e12 + this.e22 * op.e22 + this.e23 * op.e32; + out.e23 = this.e21 * op.e13 + this.e22 * op.e23 + this.e23 * op.e33; + out.e31 = this.e31 * op.e11 + this.e32 * op.e21 + this.e33 * op.e31; + out.e32 = this.e31 * op.e12 + this.e32 * op.e22 + this.e33 * op.e32; + out.e33 = this.e31 * op.e13 + this.e32 * op.e23 + this.e33 * op.e33; + + return out; +} + +/** Matrix addition. + * + * @param op another svg matrix + * @return this + op + */ +matrixSVG.prototype.add = function(op) +{ + out = new matrixSVG(); + + out.e11 = this.e11 + op.e11; + out.e12 = this.e12 + op.e12; + out.e13 = this.e13 + op.e13; + out.e21 = this.e21 + op.e21; + out.e22 = this.e22 + op.e22; + out.e23 = this.e23 + op.e23; + out.e31 = this.e31 + op.e31; + out.e32 = this.e32 + op.e32; + out.e33 = this.e33 + op.e33; + + return out; +} + +/** Matrix mixing. + * + * @param op another svg matrix + * @parma contribOp contribution of the other matrix (0 <= contribOp <= 1) + * @return (1 - contribOp) * this + contribOp * op + */ +matrixSVG.prototype.mix = function(op, contribOp) +{ + contribThis = 1.0 - contribOp; + out = new matrixSVG(); + + out.e11 = contribThis * this.e11 + contribOp * op.e11; + out.e12 = contribThis * this.e12 + contribOp * op.e12; + out.e13 = contribThis * this.e13 + contribOp * op.e13; + out.e21 = contribThis * this.e21 + contribOp * op.e21; + out.e22 = contribThis * this.e22 + contribOp * op.e22; + out.e23 = contribThis * this.e23 + contribOp * op.e23; + out.e31 = contribThis * this.e31 + contribOp * op.e31; + out.e32 = contribThis * this.e32 + contribOp * op.e32; + out.e33 = contribThis * this.e33 + contribOp * op.e33; + + return out; +} + +/** Trimming function for strings. +*/ +String.prototype.trim = function() +{ + return this.replace(/^\s+|\s+$/g, ''); +} + +/** SVGElement.getTransformToElement polyfill */ +SVGElement.prototype.getTransformToElement = SVGElement.prototype.getTransformToElement || function(elem) { + return elem.getScreenCTM().inverse().multiply(this.getScreenCTM()); +}; + diff --git a/share/extensions/tests/data/refs/jessyink_install__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/jessyink_install__--id__p1__--id__r3.out new file mode 100644 index 0000000..5a819a7 --- /dev/null +++ b/share/extensions/tests/data/refs/jessyink_install__--id__p1__--id__r3.out @@ -0,0 +1,2766 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + // Copyright 2008, 2009 Hannes Hochreiner +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see http://www.gnu.org/licenses/. + +// Set onload event handler. +window.onload = jessyInkInit; + +// Creating a namespace dictionary. The standard Inkscape namespaces are taken from inkex.py. +var NSS = new Object(); +NSS['sodipodi']='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd'; +NSS['cc']='http://web.resource.org/cc/'; +NSS['svg']='http://www.w3.org/2000/svg'; +NSS['dc']='http://purl.org/dc/elements/1.1/'; +NSS['rdf']='http://www.w3.org/1999/02/22-rdf-syntax-ns#'; +NSS['inkscape']='http://www.inkscape.org/namespaces/inkscape'; +NSS['xlink']='http://www.w3.org/1999/xlink'; +NSS['xml']='http://www.w3.org/XML/1998/namespace'; +NSS['jessyink']='https://launchpad.net/jessyink'; + +// Keycodes. +var LEFT_KEY = 37; // cursor left keycode +var UP_KEY = 38; // cursor up keycode +var RIGHT_KEY = 39; // cursor right keycode +var DOWN_KEY = 40; // cursor down keycode +var PAGE_UP_KEY = 33; // page up keycode +var PAGE_DOWN_KEY = 34; // page down keycode +var HOME_KEY = 36; // home keycode +var END_KEY = 35; // end keycode +var ENTER_KEY = 13; // next slide +var SPACE_KEY = 32; +var ESCAPE_KEY = 27; + +// Presentation modes. +var SLIDE_MODE = 1; +var INDEX_MODE = 2; +var DRAWING_MODE = 3; + +// Mouse handler actions. +var MOUSE_UP = 1; +var MOUSE_DOWN = 2; +var MOUSE_MOVE = 3; +var MOUSE_WHEEL = 4; + +// Parameters. +var ROOT_NODE = document.getElementsByTagNameNS(NSS["svg"], "svg")[0]; +var HEIGHT = 0; +var WIDTH = 0; +var INDEX_COLUMNS_DEFAULT = 4; +var INDEX_COLUMNS = INDEX_COLUMNS_DEFAULT; +var INDEX_OFFSET = 0; +var STATE_START = -1; +var STATE_END = -2; +var BACKGROUND_COLOR = null; +var slides = new Array(); + +// Initialisation. +var currentMode = SLIDE_MODE; +var masterSlide = null; +var activeSlide = 0; +var activeEffect = 0; +var timeStep = 30; // 40 ms equal 25 frames per second. +var lastFrameTime = null; +var processingEffect = false; +var transCounter = 0; +var effectArray = 0; +var defaultTransitionInDict = new Object(); +defaultTransitionInDict["name"] = "appear"; +var defaultTransitionOutDict = new Object(); +defaultTransitionOutDict["name"] = "appear"; +var jessyInkInitialised = false; + +// Initialise char and key code dictionaries. +var charCodeDictionary = getDefaultCharCodeDictionary(); +var keyCodeDictionary = getDefaultKeyCodeDictionary(); + +// Initialise mouse handler dictionary. +var mouseHandlerDictionary = getDefaultMouseHandlerDictionary(); + +var progress_bar_visible = false; +var timer_elapsed = 0; +var timer_start = timer_elapsed; +var timer_duration = 15; // 15 minutes + +var history_counter = 0; +var history_original_elements = new Array(); +var history_presentation_elements = new Array(); + +var mouse_original_path = null; +var mouse_presentation_path = null; +var mouse_last_x = -1; +var mouse_last_y = -1; +var mouse_min_dist_sqr = 3 * 3; +var path_colour = "red"; +var path_width_default = 3; +var path_width = path_width_default; +var path_paint_width = path_width; + +var number_of_added_slides = 0; + +/** Initialisation function. + * The whole presentation is set-up in this function. + */ +function jessyInkInit() +{ + // Make sure we only execute this code once. Double execution can occur if the onload event handler is set + // in the main svg tag as well (as was recommended in earlier versions). Executing this function twice does + // not lead to any problems, but it takes more time. + if (jessyInkInitialised) + return; + + // Making the presentation scalable. + var VIEWBOX = ROOT_NODE.getAttribute("viewBox"); + + if (VIEWBOX) + { + WIDTH = ROOT_NODE.viewBox.animVal.width; + HEIGHT = ROOT_NODE.viewBox.animVal.height; + } + else + { + HEIGHT = parseFloat(ROOT_NODE.getAttribute("height")); + WIDTH = parseFloat(ROOT_NODE.getAttribute("width")); + ROOT_NODE.setAttribute("viewBox", "0 0 " + WIDTH + " " + HEIGHT); + } + + ROOT_NODE.setAttribute("width", "100%"); + ROOT_NODE.setAttribute("height", "100%"); + + // Setting the background color. + var namedViews = document.getElementsByTagNameNS(NSS["sodipodi"], "namedview"); + + for (var counter = 0; counter < namedViews.length; counter++) + { + if (namedViews[counter].hasAttribute("id") && namedViews[counter].hasAttribute("pagecolor")) + { + if (namedViews[counter].getAttribute("id") == "base") + { + BACKGROUND_COLOR = namedViews[counter].getAttribute("pagecolor"); + var newAttribute = "background-color:" + BACKGROUND_COLOR + ";"; + + if (ROOT_NODE.hasAttribute("style")) + newAttribute += ROOT_NODE.getAttribute("style"); + + ROOT_NODE.setAttribute("style", newAttribute); + } + } + } + + // Defining clip-path. + var defsNodes = document.getElementsByTagNameNS(NSS["svg"], "defs"); + + if (defsNodes.length > 0) + { + var existingClipPath = document.getElementById("jessyInkSlideClipPath"); + + if (!existingClipPath) + { + var rectNode = document.createElementNS(NSS["svg"], "rect"); + var clipPath = document.createElementNS(NSS["svg"], "clipPath"); + + rectNode.setAttribute("x", 0); + rectNode.setAttribute("y", 0); + rectNode.setAttribute("width", WIDTH); + rectNode.setAttribute("height", HEIGHT); + + clipPath.setAttribute("id", "jessyInkSlideClipPath"); + clipPath.setAttribute("clipPathUnits", "userSpaceOnUse"); + + clipPath.appendChild(rectNode); + defsNodes[0].appendChild(clipPath); + } + } + + // Making a list of the slide and finding the master slide. + var nodes = document.getElementsByTagNameNS(NSS["svg"], "g"); + var tempSlides = new Array(); + var existingJessyInkPresentationLayer = null; + + for (var counter = 0; counter < nodes.length; counter++) + { + if (nodes[counter].getAttributeNS(NSS["inkscape"], "groupmode") && (nodes[counter].getAttributeNS(NSS["inkscape"], "groupmode") == "layer")) + { + if (nodes[counter].getAttributeNS(NSS["inkscape"], "label") && nodes[counter].getAttributeNS(NSS["jessyink"], "masterSlide") == "masterSlide") + masterSlide = nodes[counter]; + else if (nodes[counter].getAttributeNS(NSS["inkscape"], "label") && nodes[counter].getAttributeNS(NSS["jessyink"], "presentationLayer") == "presentationLayer") + existingJessyInkPresentationLayer = nodes[counter]; + else + tempSlides.push(nodes[counter].getAttribute("id")); + } + else if (nodes[counter].getAttributeNS(NSS['jessyink'], 'element')) + { + handleElement(nodes[counter]); + } + } + + // Hide master slide set default transitions. + if (masterSlide) + { + masterSlide.style.display = "none"; + + if (masterSlide.hasAttributeNS(NSS["jessyink"], "transitionIn")) + defaultTransitionInDict = propStrToDict(masterSlide.getAttributeNS(NSS["jessyink"], "transitionIn")); + + if (masterSlide.hasAttributeNS(NSS["jessyink"], "transitionOut")) + defaultTransitionOutDict = propStrToDict(masterSlide.getAttributeNS(NSS["jessyink"], "transitionOut")); + } + + if (existingJessyInkPresentationLayer != null) + { + existingJessyInkPresentationLayer.parentNode.removeChild(existingJessyInkPresentationLayer); + } + + // Set start slide. + var hashObj = new LocationHash(window.location.hash); + + activeSlide = hashObj.slideNumber; + activeEffect = hashObj.effectNumber; + + if (activeSlide < 0) + activeSlide = 0; + else if (activeSlide >= tempSlides.length) + activeSlide = tempSlides.length - 1; + + var originalNode = document.getElementById(tempSlides[counter]); + + var JessyInkPresentationLayer = document.createElementNS(NSS["svg"], "g"); + JessyInkPresentationLayer.setAttributeNS(NSS["inkscape"], "groupmode", "layer"); + JessyInkPresentationLayer.setAttributeNS(NSS["inkscape"], "label", "JessyInk Presentation Layer"); + JessyInkPresentationLayer.setAttributeNS(NSS["jessyink"], "presentationLayer", "presentationLayer"); + JessyInkPresentationLayer.setAttribute("id", "jessyink_presentation_layer"); + JessyInkPresentationLayer.style.display = "inherit"; + ROOT_NODE.appendChild(JessyInkPresentationLayer); + + // Gathering all the information about the transitions and effects of the slides, set the background + // from the master slide and substitute the auto-texts. + for (var counter = 0; counter < tempSlides.length; counter++) + { + var originalNode = document.getElementById(tempSlides[counter]); + originalNode.style.display = "none"; + var node = suffixNodeIds(originalNode.cloneNode(true), "_" + counter); + JessyInkPresentationLayer.appendChild(node); + slides[counter] = new Object(); + slides[counter]["original_element"] = originalNode; + slides[counter]["element"] = node; + + // Set build in transition. + slides[counter]["transitionIn"] = new Object(); + + var dict; + + if (node.hasAttributeNS(NSS["jessyink"], "transitionIn")) + dict = propStrToDict(node.getAttributeNS(NSS["jessyink"], "transitionIn")); + else + dict = defaultTransitionInDict; + + slides[counter]["transitionIn"]["name"] = dict["name"]; + slides[counter]["transitionIn"]["options"] = new Object(); + + for (key in dict) + if (key != "name") + slides[counter]["transitionIn"]["options"][key] = dict[key]; + + // Set build out transition. + slides[counter]["transitionOut"] = new Object(); + + if (node.hasAttributeNS(NSS["jessyink"], "transitionOut")) + dict = propStrToDict(node.getAttributeNS(NSS["jessyink"], "transitionOut")); + else + dict = defaultTransitionOutDict; + + slides[counter]["transitionOut"]["name"] = dict["name"]; + slides[counter]["transitionOut"]["options"] = new Object(); + + for (key in dict) + if (key != "name") + slides[counter]["transitionOut"]["options"][key] = dict[key]; + + // Copy master slide content. + if (masterSlide) + { + var clonedNode = suffixNodeIds(masterSlide.cloneNode(true), "_" + counter); + clonedNode.removeAttributeNS(NSS["inkscape"], "groupmode"); + clonedNode.removeAttributeNS(NSS["inkscape"], "label"); + clonedNode.style.display = "inherit"; + + node.insertBefore(clonedNode, node.firstChild); + } + + // Setting clip path. + node.setAttribute("clip-path", "url(#jessyInkSlideClipPath)"); + + // Substitute auto texts. + substituteAutoTexts(node, node.getAttributeNS(NSS["inkscape"], "label"), counter + 1, tempSlides.length); + + node.removeAttributeNS(NSS["inkscape"], "groupmode"); + node.removeAttributeNS(NSS["inkscape"], "label"); + + // Set effects. + var tempEffects = new Array(); + var groups = new Object(); + + for (var IOCounter = 0; IOCounter <= 1; IOCounter++) + { + var propName = ""; + var dir = 0; + + if (IOCounter == 0) + { + propName = "effectIn"; + dir = 1; + } + else if (IOCounter == 1) + { + propName = "effectOut"; + dir = -1; + } + + var effects = getElementsByPropertyNS(node, NSS["jessyink"], propName); + + for (var effectCounter = 0; effectCounter < effects.length; effectCounter++) + { + var element = document.getElementById(effects[effectCounter]); + var dict = propStrToDict(element.getAttributeNS(NSS["jessyink"], propName)); + + // Put every element that has an effect associated with it, into its own group. + // Unless of course, we already put it into its own group. + if (!(groups[element.id])) + { + var newGroup = document.createElementNS(NSS["svg"], "g"); + + element.parentNode.insertBefore(newGroup, element); + newGroup.appendChild(element.parentNode.removeChild(element)); + groups[element.id] = newGroup; + } + + var effectDict = new Object(); + + effectDict["effect"] = dict["name"]; + effectDict["dir"] = dir; + effectDict["element"] = groups[element.id]; + + for (var option in dict) + { + if ((option != "name") && (option != "order")) + { + if (!effectDict["options"]) + effectDict["options"] = new Object(); + + effectDict["options"][option] = dict[option]; + } + } + + if (!tempEffects[dict["order"]]) + tempEffects[dict["order"]] = new Array(); + + tempEffects[dict["order"]][tempEffects[dict["order"]].length] = effectDict; + } + } + + // Make invisible, but keep in rendering tree to ensure that bounding box can be calculated. + node.setAttribute("opacity",0); + node.style.display = "inherit"; + + // Create a transform group. + var transformGroup = document.createElementNS(NSS["svg"], "g"); + + // Add content to transform group. + while (node.firstChild) + transformGroup.appendChild(node.firstChild); + + // Transfer the transform attribute from the node to the transform group. + if (node.getAttribute("transform")) + { + transformGroup.setAttribute("transform", node.getAttribute("transform")); + node.removeAttribute("transform"); + } + + // Create a view group. + var viewGroup = document.createElementNS(NSS["svg"], "g"); + + viewGroup.appendChild(transformGroup); + slides[counter]["viewGroup"] = node.appendChild(viewGroup); + + // Insert background. + if (BACKGROUND_COLOR != null) + { + var rectNode = document.createElementNS(NSS["svg"], "rect"); + + rectNode.setAttribute("x", 0); + rectNode.setAttribute("y", 0); + rectNode.setAttribute("width", WIDTH); + rectNode.setAttribute("height", HEIGHT); + rectNode.setAttribute("id", "jessyInkBackground" + counter); + rectNode.setAttribute("fill", BACKGROUND_COLOR); + + slides[counter]["viewGroup"].insertBefore(rectNode, slides[counter]["viewGroup"].firstChild); + } + + // Set views. + var tempViews = new Array(); + var views = getElementsByPropertyNS(node, NSS["jessyink"], "view"); + var matrixOld = (new matrixSVG()).fromElements(1, 0, 0, 0, 1, 0, 0, 0, 1); + + // Set initial view even if there are no other views. + slides[counter]["viewGroup"].setAttribute("transform", matrixOld.toAttribute()); + slides[counter].initialView = matrixOld.toAttribute(); + + for (var viewCounter = 0; viewCounter < views.length; viewCounter++) + { + var element = document.getElementById(views[viewCounter]); + var dict = propStrToDict(element.getAttributeNS(NSS["jessyink"], "view")); + + if (dict["order"] == 0) + { + matrixOld = pointMatrixToTransformation(rectToMatrix(element)).mult((new matrixSVG()).fromSVGMatrix(slides[counter].viewGroup.getScreenCTM()).inv().mult((new matrixSVG()).fromSVGMatrix(element.parentNode.getScreenCTM())).inv()); + slides[counter].initialView = matrixOld.toAttribute(); + } + else + { + var effectDict = new Object(); + + effectDict["effect"] = dict["name"]; + effectDict["dir"] = 1; + effectDict["element"] = slides[counter]["viewGroup"]; + effectDict["order"] = dict["order"]; + + for (var option in dict) + { + if ((option != "name") && (option != "order")) + { + if (!effectDict["options"]) + effectDict["options"] = new Object(); + + effectDict["options"][option] = dict[option]; + } + } + + effectDict["options"]["matrixNew"] = pointMatrixToTransformation(rectToMatrix(element)).mult((new matrixSVG()).fromSVGMatrix(slides[counter].viewGroup.getScreenCTM()).inv().mult((new matrixSVG()).fromSVGMatrix(element.parentNode.getScreenCTM())).inv()); + + tempViews[dict["order"]] = effectDict; + } + + // Remove element. + element.parentNode.removeChild(element); + } + + // Consolidate view array and append it to the effect array. + if (tempViews.length > 0) + { + for (var viewCounter = 0; viewCounter < tempViews.length; viewCounter++) + { + if (tempViews[viewCounter]) + { + tempViews[viewCounter]["options"]["matrixOld"] = matrixOld; + matrixOld = tempViews[viewCounter]["options"]["matrixNew"]; + + if (!tempEffects[tempViews[viewCounter]["order"]]) + tempEffects[tempViews[viewCounter]["order"]] = new Array(); + + tempEffects[tempViews[viewCounter]["order"]][tempEffects[tempViews[viewCounter]["order"]].length] = tempViews[viewCounter]; + } + } + } + + // Set consolidated effect array. + if (tempEffects.length > 0) + { + slides[counter]["effects"] = new Array(); + + for (var effectCounter = 0; effectCounter < tempEffects.length; effectCounter++) + { + if (tempEffects[effectCounter]) + slides[counter]["effects"][slides[counter]["effects"].length] = tempEffects[effectCounter]; + } + } + + node.setAttribute("onmouseover", "if ((currentMode == INDEX_MODE) && ( activeSlide != " + counter + ")) { indexSetActiveSlide(" + counter + "); };"); + + // Set visibility for initial state. + if (counter == activeSlide) + { + node.style.display = "inherit"; + node.setAttribute("opacity",1); + } + else + { + node.style.display = "none"; + node.setAttribute("opacity",0); + } + } + + // Set key handler. + var jessyInkObjects = document.getElementsByTagNameNS(NSS["svg"], "g"); + + for (var counter = 0; counter < jessyInkObjects.length; counter++) + { + var elem = jessyInkObjects[counter]; + + if (elem.getAttributeNS(NSS["jessyink"], "customKeyBindings")) + { + if (elem.getCustomKeyBindings != undefined) + keyCodeDictionary = elem.getCustomKeyBindings(); + + if (elem.getCustomCharBindings != undefined) + charCodeDictionary = elem.getCustomCharBindings(); + } + } + + // Set mouse handler. + var jessyInkMouseHandler = document.getElementsByTagNameNS(NSS["jessyink"], "mousehandler"); + + for (var counter = 0; counter < jessyInkMouseHandler.length; counter++) + { + var elem = jessyInkMouseHandler[counter]; + + if (elem.getMouseHandler != undefined) + { + var tempDict = elem.getMouseHandler(); + + for (mode in tempDict) + { + if (!mouseHandlerDictionary[mode]) + mouseHandlerDictionary[mode] = new Object(); + + for (handler in tempDict[mode]) + mouseHandlerDictionary[mode][handler] = tempDict[mode][handler]; + } + } + } + + // Check effect number. + if ((activeEffect < 0) || (!slides[activeSlide].effects)) + { + activeEffect = 0; + } + else if (activeEffect > slides[activeSlide].effects.length) + { + activeEffect = slides[activeSlide].effects.length; + } + + createProgressBar(JessyInkPresentationLayer); + hideProgressBar(); + setProgressBarValue(activeSlide); + setTimeIndicatorValue(0); + setInterval("updateTimer()", 1000); + setSlideToState(activeSlide, activeEffect); + jessyInkInitialised = true; +} + +/** Function to substitute the auto-texts. + * + * @param node the node + * @param slideName name of the slide the node is on + * @param slideNumber number of the slide the node is on + * @param numberOfSlides number of slides in the presentation + */ +function substituteAutoTexts(node, slideName, slideNumber, numberOfSlides) +{ + var texts = node.getElementsByTagNameNS(NSS["svg"], "tspan"); + + for (var textCounter = 0; textCounter < texts.length; textCounter++) + { + if (texts[textCounter].getAttributeNS(NSS["jessyink"], "autoText") == "slideNumber") + texts[textCounter].firstChild.nodeValue = slideNumber; + else if (texts[textCounter].getAttributeNS(NSS["jessyink"], "autoText") == "numberOfSlides") + texts[textCounter].firstChild.nodeValue = numberOfSlides; + else if (texts[textCounter].getAttributeNS(NSS["jessyink"], "autoText") == "slideTitle") + texts[textCounter].firstChild.nodeValue = slideName; + } +} + +/** Convenience function to get an element depending on whether it has a property with a particular name. + * This function emulates some dearly missed XPath functionality. + * + * @param node the node + * @param namespace namespace of the attribute + * @param name attribute name + */ +function getElementsByPropertyNS(node, namespace, name) +{ + var elems = new Array(); + + if (node.getAttributeNS(namespace, name)) + elems.push(node.getAttribute("id")); + + for (var counter = 0; counter < node.childNodes.length; counter++) + { + if (node.childNodes[counter].nodeType == 1) + elems = elems.concat(getElementsByPropertyNS(node.childNodes[counter], namespace, name)); + } + + return elems; +} + +/** Function to dispatch the next effect, if there is none left, change the slide. + * + * @param dir direction of the change (1 = forwards, -1 = backwards) + */ +function dispatchEffects(dir) +{ + if (slides[activeSlide]["effects"] && (((dir == 1) && (activeEffect < slides[activeSlide]["effects"].length)) || ((dir == -1) && (activeEffect > 0)))) + { + processingEffect = true; + + if (dir == 1) + { + effectArray = slides[activeSlide]["effects"][activeEffect]; + activeEffect += dir; + } + else if (dir == -1) + { + activeEffect += dir; + effectArray = slides[activeSlide]["effects"][activeEffect]; + } + + transCounter = 0; + startTime = (new Date()).getTime(); + lastFrameTime = null; + effect(dir); + } + else if (((dir == 1) && (activeSlide < (slides.length - 1))) || (((dir == -1) && (activeSlide > 0)))) + { + changeSlide(dir); + } +} + +/** Function to skip effects and directly either put the slide into start or end state or change slides. + * + * @param dir direction of the change (1 = forwards, -1 = backwards) + */ +function skipEffects(dir) +{ + if (slides[activeSlide]["effects"] && (((dir == 1) && (activeEffect < slides[activeSlide]["effects"].length)) || ((dir == -1) && (activeEffect > 0)))) + { + processingEffect = true; + + if (slides[activeSlide]["effects"] && (dir == 1)) + activeEffect = slides[activeSlide]["effects"].length; + else + activeEffect = 0; + + if (dir == 1) + setSlideToState(activeSlide, STATE_END); + else + setSlideToState(activeSlide, STATE_START); + + processingEffect = false; + } + else if (((dir == 1) && (activeSlide < (slides.length - 1))) || (((dir == -1) && (activeSlide > 0)))) + { + changeSlide(dir); + } +} + +/** Function to change between slides. + * + * @param dir direction (1 = forwards, -1 = backwards) + */ +function changeSlide(dir) +{ + processingEffect = true; + effectArray = new Array(); + + effectArray[0] = new Object(); + if (dir == 1) + { + effectArray[0]["effect"] = slides[activeSlide]["transitionOut"]["name"]; + effectArray[0]["options"] = slides[activeSlide]["transitionOut"]["options"]; + effectArray[0]["dir"] = -1; + } + else if (dir == -1) + { + effectArray[0]["effect"] = slides[activeSlide]["transitionIn"]["name"]; + effectArray[0]["options"] = slides[activeSlide]["transitionIn"]["options"]; + effectArray[0]["dir"] = 1; + } + effectArray[0]["element"] = slides[activeSlide]["element"]; + + activeSlide += dir; + setProgressBarValue(activeSlide); + + effectArray[1] = new Object(); + + if (dir == 1) + { + effectArray[1]["effect"] = slides[activeSlide]["transitionIn"]["name"]; + effectArray[1]["options"] = slides[activeSlide]["transitionIn"]["options"]; + effectArray[1]["dir"] = 1; + } + else if (dir == -1) + { + effectArray[1]["effect"] = slides[activeSlide]["transitionOut"]["name"]; + effectArray[1]["options"] = slides[activeSlide]["transitionOut"]["options"]; + effectArray[1]["dir"] = -1; + } + + effectArray[1]["element"] = slides[activeSlide]["element"]; + + if (slides[activeSlide]["effects"] && (dir == -1)) + activeEffect = slides[activeSlide]["effects"].length; + else + activeEffect = 0; + + if (dir == -1) + setSlideToState(activeSlide, STATE_END); + else + setSlideToState(activeSlide, STATE_START); + + transCounter = 0; + startTime = (new Date()).getTime(); + lastFrameTime = null; + effect(dir); +} + +/** Function to toggle between index and slide mode. +*/ +function toggleSlideIndex() +{ + var suspendHandle = ROOT_NODE.suspendRedraw(500); + + if (currentMode == SLIDE_MODE) + { + hideProgressBar(); + INDEX_OFFSET = -1; + indexSetPageSlide(activeSlide); + currentMode = INDEX_MODE; + } + else if (currentMode == INDEX_MODE) + { + for (var counter = 0; counter < slides.length; counter++) + { + slides[counter]["element"].setAttribute("transform","scale(1)"); + + if (counter == activeSlide) + { + slides[counter]["element"].style.display = "inherit"; + slides[counter]["element"].setAttribute("opacity",1); + activeEffect = 0; + } + else + { + slides[counter]["element"].setAttribute("opacity",0); + slides[counter]["element"].style.display = "none"; + } + } + currentMode = SLIDE_MODE; + setSlideToState(activeSlide, STATE_START); + setProgressBarValue(activeSlide); + + if (progress_bar_visible) + { + showProgressBar(); + } + } + + ROOT_NODE.unsuspendRedraw(suspendHandle); + ROOT_NODE.forceRedraw(); +} + +/** Function to run an effect. + * + * @param dir direction in which to play the effect (1 = forwards, -1 = backwards) + */ +function effect(dir) +{ + var done = true; + + var suspendHandle = ROOT_NODE.suspendRedraw(200); + + for (var counter = 0; counter < effectArray.length; counter++) + { + if (effectArray[counter]["effect"] == "fade") + done &= fade(parseInt(effectArray[counter]["dir"]) * dir, effectArray[counter]["element"], transCounter, effectArray[counter]["options"]); + else if (effectArray[counter]["effect"] == "appear") + done &= appear(parseInt(effectArray[counter]["dir"]) * dir, effectArray[counter]["element"], transCounter, effectArray[counter]["options"]); + else if (effectArray[counter]["effect"] == "pop") + done &= pop(parseInt(effectArray[counter]["dir"]) * dir, effectArray[counter]["element"], transCounter, effectArray[counter]["options"]); + else if (effectArray[counter]["effect"] == "view") + done &= view(parseInt(effectArray[counter]["dir"]) * dir, effectArray[counter]["element"], transCounter, effectArray[counter]["options"]); + } + + ROOT_NODE.unsuspendRedraw(suspendHandle); + ROOT_NODE.forceRedraw(); + + if (!done) + { + var currentTime = (new Date()).getTime(); + var timeDiff = 1; + + transCounter = currentTime - startTime; + + if (lastFrameTime != null) + { + timeDiff = timeStep - (currentTime - lastFrameTime); + + if (timeDiff <= 0) + timeDiff = 1; + } + + lastFrameTime = currentTime; + + window.setTimeout("effect(" + dir + ")", timeDiff); + } + else + { + window.location.hash = (activeSlide + 1) + '_' + activeEffect; + processingEffect = false; + } +} + +/** Function to display the index sheet. + * + * @param offsetNumber offset number + */ +function displayIndex(offsetNumber) +{ + var offsetX = 0; + var offsetY = 0; + + if (offsetNumber < 0) + offsetNumber = 0; + else if (offsetNumber >= slides.length) + offsetNumber = slides.length - 1; + + for (var counter = 0; counter < slides.length; counter++) + { + if ((counter < offsetNumber) || (counter > offsetNumber + INDEX_COLUMNS * INDEX_COLUMNS - 1)) + { + slides[counter]["element"].setAttribute("opacity",0); + slides[counter]["element"].style.display = "none"; + } + else + { + offsetX = ((counter - offsetNumber) % INDEX_COLUMNS) * WIDTH; + offsetY = Math.floor((counter - offsetNumber) / INDEX_COLUMNS) * HEIGHT; + + slides[counter]["element"].setAttribute("transform","scale("+1/INDEX_COLUMNS+") translate("+offsetX+","+offsetY+")"); + slides[counter]["element"].style.display = "inherit"; + slides[counter]["element"].setAttribute("opacity",0.5); + } + + setSlideToState(counter, STATE_END); + } + + //do we need to save the current offset? + if (INDEX_OFFSET != offsetNumber) + INDEX_OFFSET = offsetNumber; +} + +/** Function to set the active slide in the slide view. + * + * @param nbr index of the active slide + */ +function slideSetActiveSlide(nbr) +{ + if (nbr >= slides.length) + nbr = slides.length - 1; + else if (nbr < 0) + nbr = 0; + + slides[activeSlide]["element"].setAttribute("opacity",0); + slides[activeSlide]["element"].style.display = "none"; + + activeSlide = parseInt(nbr); + + setSlideToState(activeSlide, STATE_START); + slides[activeSlide]["element"].style.display = "inherit"; + slides[activeSlide]["element"].setAttribute("opacity",1); + + activeEffect = 0; + setProgressBarValue(nbr); +} + +/** Function to set the active slide in the index view. + * + * @param nbr index of the active slide + */ +function indexSetActiveSlide(nbr) +{ + if (nbr >= slides.length) + nbr = slides.length - 1; + else if (nbr < 0) + nbr = 0; + + slides[activeSlide]["element"].setAttribute("opacity",0.5); + + activeSlide = parseInt(nbr); + window.location.hash = (activeSlide + 1) + '_0'; + + slides[activeSlide]["element"].setAttribute("opacity",1); +} + +/** Function to set the page and active slide in index view. + * + * @param nbr index of the active slide + * + * NOTE: To force a redraw, + * set INDEX_OFFSET to -1 before calling indexSetPageSlide(). + * + * This is necessary for zooming (otherwise the index might not + * get redrawn) and when switching to index mode. + * + * INDEX_OFFSET = -1 + * indexSetPageSlide(activeSlide); + */ +function indexSetPageSlide(nbr) +{ + if (nbr >= slides.length) + nbr = slides.length - 1; + else if (nbr < 0) + nbr = 0; + + //calculate the offset + var offset = nbr - nbr % (INDEX_COLUMNS * INDEX_COLUMNS); + + if (offset < 0) + offset = 0; + + //if different from kept offset, then record and change the page + if (offset != INDEX_OFFSET) + { + INDEX_OFFSET = offset; + displayIndex(INDEX_OFFSET); + } + + //set the active slide + indexSetActiveSlide(nbr); +} + +/** Event handler for key press. + * + * @param e the event + */ +function keydown(e) +{ + if (!e) + e = window.event; + + code = e.keyCode || e.charCode; + + if (!processingEffect && keyCodeDictionary[currentMode] && keyCodeDictionary[currentMode][code]) + return keyCodeDictionary[currentMode][code](); + else + document.onkeypress = keypress; +} +// Set event handler for key down. +document.onkeydown = keydown; + +/** Event handler for key press. + * + * @param e the event + */ +function keypress(e) +{ + document.onkeypress = null; + + if (!e) + e = window.event; + + str = String.fromCharCode(e.keyCode || e.charCode); + + if (!processingEffect && charCodeDictionary[currentMode] && charCodeDictionary[currentMode][str]) + return charCodeDictionary[currentMode][str](); +} + +/** Function to supply the default char code dictionary. + * + * @returns default char code dictionary + */ +function getDefaultCharCodeDictionary() +{ + var charCodeDict = new Object(); + + charCodeDict[SLIDE_MODE] = new Object(); + charCodeDict[INDEX_MODE] = new Object(); + charCodeDict[DRAWING_MODE] = new Object(); + + charCodeDict[SLIDE_MODE]["i"] = function () { return toggleSlideIndex(); }; + charCodeDict[SLIDE_MODE]["d"] = function () { return slideSwitchToDrawingMode(); }; + charCodeDict[SLIDE_MODE]["D"] = function () { return slideQueryDuration(); }; + charCodeDict[SLIDE_MODE]["n"] = function () { return slideAddSlide(activeSlide); }; + charCodeDict[SLIDE_MODE]["p"] = function () { return slideToggleProgressBarVisibility(); }; + charCodeDict[SLIDE_MODE]["t"] = function () { return slideResetTimer(); }; + charCodeDict[SLIDE_MODE]["e"] = function () { return slideUpdateExportLayer(); }; + + charCodeDict[DRAWING_MODE]["d"] = function () { return drawingSwitchToSlideMode(); }; + charCodeDict[DRAWING_MODE]["0"] = function () { return drawingResetPathWidth(); }; + charCodeDict[DRAWING_MODE]["1"] = function () { return drawingSetPathWidth(1.0); }; + charCodeDict[DRAWING_MODE]["3"] = function () { return drawingSetPathWidth(3.0); }; + charCodeDict[DRAWING_MODE]["5"] = function () { return drawingSetPathWidth(5.0); }; + charCodeDict[DRAWING_MODE]["7"] = function () { return drawingSetPathWidth(7.0); }; + charCodeDict[DRAWING_MODE]["9"] = function () { return drawingSetPathWidth(9.0); }; + charCodeDict[DRAWING_MODE]["b"] = function () { return drawingSetPathColour("blue"); }; + charCodeDict[DRAWING_MODE]["c"] = function () { return drawingSetPathColour("cyan"); }; + charCodeDict[DRAWING_MODE]["g"] = function () { return drawingSetPathColour("green"); }; + charCodeDict[DRAWING_MODE]["k"] = function () { return drawingSetPathColour("black"); }; + charCodeDict[DRAWING_MODE]["m"] = function () { return drawingSetPathColour("magenta"); }; + charCodeDict[DRAWING_MODE]["o"] = function () { return drawingSetPathColour("orange"); }; + charCodeDict[DRAWING_MODE]["r"] = function () { return drawingSetPathColour("red"); }; + charCodeDict[DRAWING_MODE]["w"] = function () { return drawingSetPathColour("white"); }; + charCodeDict[DRAWING_MODE]["y"] = function () { return drawingSetPathColour("yellow"); }; + charCodeDict[DRAWING_MODE]["z"] = function () { return drawingUndo(); }; + + charCodeDict[INDEX_MODE]["i"] = function () { return toggleSlideIndex(); }; + charCodeDict[INDEX_MODE]["-"] = function () { return indexDecreaseNumberOfColumns(); }; + charCodeDict[INDEX_MODE]["="] = function () { return indexIncreaseNumberOfColumns(); }; + charCodeDict[INDEX_MODE]["+"] = function () { return indexIncreaseNumberOfColumns(); }; + charCodeDict[INDEX_MODE]["0"] = function () { return indexResetNumberOfColumns(); }; + + return charCodeDict; +} + +/** Function to supply the default key code dictionary. + * + * @returns default key code dictionary + */ +function getDefaultKeyCodeDictionary() +{ + var keyCodeDict = new Object(); + + keyCodeDict[SLIDE_MODE] = new Object(); + keyCodeDict[INDEX_MODE] = new Object(); + keyCodeDict[DRAWING_MODE] = new Object(); + + keyCodeDict[SLIDE_MODE][LEFT_KEY] = function() { return dispatchEffects(-1); }; + keyCodeDict[SLIDE_MODE][RIGHT_KEY] = function() { return dispatchEffects(1); }; + keyCodeDict[SLIDE_MODE][UP_KEY] = function() { return skipEffects(-1); }; + keyCodeDict[SLIDE_MODE][DOWN_KEY] = function() { return skipEffects(1); }; + keyCodeDict[SLIDE_MODE][PAGE_UP_KEY] = function() { return dispatchEffects(-1); }; + keyCodeDict[SLIDE_MODE][PAGE_DOWN_KEY] = function() { return dispatchEffects(1); }; + keyCodeDict[SLIDE_MODE][HOME_KEY] = function() { return slideSetActiveSlide(0); }; + keyCodeDict[SLIDE_MODE][END_KEY] = function() { return slideSetActiveSlide(slides.length - 1); }; + keyCodeDict[SLIDE_MODE][SPACE_KEY] = function() { return dispatchEffects(1); }; + + keyCodeDict[INDEX_MODE][LEFT_KEY] = function() { return indexSetPageSlide(activeSlide - 1); }; + keyCodeDict[INDEX_MODE][RIGHT_KEY] = function() { return indexSetPageSlide(activeSlide + 1); }; + keyCodeDict[INDEX_MODE][UP_KEY] = function() { return indexSetPageSlide(activeSlide - INDEX_COLUMNS); }; + keyCodeDict[INDEX_MODE][DOWN_KEY] = function() { return indexSetPageSlide(activeSlide + INDEX_COLUMNS); }; + keyCodeDict[INDEX_MODE][PAGE_UP_KEY] = function() { return indexSetPageSlide(activeSlide - INDEX_COLUMNS * INDEX_COLUMNS); }; + keyCodeDict[INDEX_MODE][PAGE_DOWN_KEY] = function() { return indexSetPageSlide(activeSlide + INDEX_COLUMNS * INDEX_COLUMNS); }; + keyCodeDict[INDEX_MODE][HOME_KEY] = function() { return indexSetPageSlide(0); }; + keyCodeDict[INDEX_MODE][END_KEY] = function() { return indexSetPageSlide(slides.length - 1); }; + keyCodeDict[INDEX_MODE][ENTER_KEY] = function() { return toggleSlideIndex(); }; + + keyCodeDict[DRAWING_MODE][ESCAPE_KEY] = function () { return drawingSwitchToSlideMode(); }; + + return keyCodeDict; +} + +/** Function to handle all mouse events. + * + * @param evnt event + * @param action type of event (e.g. mouse up, mouse wheel) + */ +function mouseHandlerDispatch(evnt, action) +{ + if (!evnt) + evnt = window.event; + + var retVal = true; + + if (!processingEffect && mouseHandlerDictionary[currentMode] && mouseHandlerDictionary[currentMode][action]) + { + var subRetVal = mouseHandlerDictionary[currentMode][action](evnt); + + if (subRetVal != null && subRetVal != undefined) + retVal = subRetVal; + } + + if (evnt.preventDefault && !retVal) + evnt.preventDefault(); + + evnt.returnValue = retVal; + + return retVal; +} + +// Set mouse event handler. +document.onmousedown = function(e) { return mouseHandlerDispatch(e, MOUSE_DOWN); }; +document.onmouseup = function(e) { return mouseHandlerDispatch(e, MOUSE_UP); }; +document.onmousemove = function(e) { return mouseHandlerDispatch(e, MOUSE_MOVE); }; + +// Moz +if (window.addEventListener) +{ + window.addEventListener('DOMMouseScroll', function(e) { return mouseHandlerDispatch(e, MOUSE_WHEEL); }, false); +} + +// Opera Safari OK - may not work in IE +window.onmousewheel = function(e) { return mouseHandlerDispatch(e, MOUSE_WHEEL); }; + +/** Function to supply the default mouse handler dictionary. + * + * @returns default mouse handler dictionary + */ +function getDefaultMouseHandlerDictionary() +{ + var mouseHandlerDict = new Object(); + + mouseHandlerDict[SLIDE_MODE] = new Object(); + mouseHandlerDict[INDEX_MODE] = new Object(); + mouseHandlerDict[DRAWING_MODE] = new Object(); + + mouseHandlerDict[SLIDE_MODE][MOUSE_DOWN] = function(evnt) { return dispatchEffects(1); }; + mouseHandlerDict[SLIDE_MODE][MOUSE_WHEEL] = function(evnt) { return slideMousewheel(evnt); }; + + mouseHandlerDict[INDEX_MODE][MOUSE_DOWN] = function(evnt) { return toggleSlideIndex(); }; + + mouseHandlerDict[DRAWING_MODE][MOUSE_DOWN] = function(evnt) { return drawingMousedown(evnt); }; + mouseHandlerDict[DRAWING_MODE][MOUSE_UP] = function(evnt) { return drawingMouseup(evnt); }; + mouseHandlerDict[DRAWING_MODE][MOUSE_MOVE] = function(evnt) { return drawingMousemove(evnt); }; + + return mouseHandlerDict; +} + +/** Function to switch from slide mode to drawing mode. +*/ +function slideSwitchToDrawingMode() +{ + currentMode = DRAWING_MODE; + + var tempDict; + + if (ROOT_NODE.hasAttribute("style")) + tempDict = propStrToDict(ROOT_NODE.getAttribute("style")); + else + tempDict = new Object(); + + tempDict["cursor"] = "crosshair"; + ROOT_NODE.setAttribute("style", dictToPropStr(tempDict)); +} + +/** Function to switch from drawing mode to slide mode. +*/ +function drawingSwitchToSlideMode() +{ + currentMode = SLIDE_MODE; + + var tempDict; + + if (ROOT_NODE.hasAttribute("style")) + tempDict = propStrToDict(ROOT_NODE.getAttribute("style")); + else + tempDict = new Object(); + + tempDict["cursor"] = "auto"; + ROOT_NODE.setAttribute("style", dictToPropStr(tempDict)); +} + +/** Function to decrease the number of columns in index mode. +*/ +function indexDecreaseNumberOfColumns() +{ + if (INDEX_COLUMNS >= 3) + { + INDEX_COLUMNS -= 1; + INDEX_OFFSET = -1 + indexSetPageSlide(activeSlide); + } +} + +/** Function to increase the number of columns in index mode. +*/ +function indexIncreaseNumberOfColumns() +{ + if (INDEX_COLUMNS < 7) + { + INDEX_COLUMNS += 1; + INDEX_OFFSET = -1 + indexSetPageSlide(activeSlide); + } +} + +/** Function to reset the number of columns in index mode. +*/ +function indexResetNumberOfColumns() +{ + if (INDEX_COLUMNS != INDEX_COLUMNS_DEFAULT) + { + INDEX_COLUMNS = INDEX_COLUMNS_DEFAULT; + INDEX_OFFSET = -1 + indexSetPageSlide(activeSlide); + } +} + +/** Function to reset path width in drawing mode. +*/ +function drawingResetPathWidth() +{ + path_width = path_width_default; + set_path_paint_width(); +} + +/** Function to set path width in drawing mode. + * + * @param width new path width + */ +function drawingSetPathWidth(width) +{ + path_width = width; + set_path_paint_width(); +} + +/** Function to set path colour in drawing mode. + * + * @param colour new path colour + */ +function drawingSetPathColour(colour) +{ + path_colour = colour; +} + +/** Function to query the duration of the presentation from the user in slide mode. +*/ +function slideQueryDuration() +{ + var new_duration = prompt("Length of presentation in minutes?", timer_duration); + + if ((new_duration != null) && (new_duration != '')) + { + timer_duration = new_duration; + } + + updateTimer(); +} + +/** Function to add new slide in slide mode. + * + * @param afterSlide after which slide to insert the new one + */ +function slideAddSlide(afterSlide) +{ + addSlide(afterSlide); + slideSetActiveSlide(afterSlide + 1); + updateTimer(); +} + +/** Function to toggle the visibility of the progress bar in slide mode. +*/ +function slideToggleProgressBarVisibility() +{ + if (progress_bar_visible) + { + progress_bar_visible = false; + hideProgressBar(); + } + else + { + progress_bar_visible = true; + showProgressBar(); + } +} + +/** Function to reset the timer in slide mode. +*/ +function slideResetTimer() +{ + timer_start = timer_elapsed; + updateTimer(); +} + +/** Convenience function to pad a string with zero in front up to a certain length. + */ +function padString(str, len) +{ + var outStr = str; + + while (outStr.length < len) + { + outStr = '0' + outStr; + } + + return outStr; +} + +/** Function to update the export layer. + */ +function slideUpdateExportLayer() +{ + // Suspend redraw since we are going to mess with the slides. + var suspendHandle = ROOT_NODE.suspendRedraw(2000); + + var tmpActiveSlide = activeSlide; + var tmpActiveEffect = activeEffect; + var exportedLayers = new Array(); + + for (var counterSlides = 0; counterSlides < slides.length; counterSlides++) + { + var exportNode; + + setSlideToState(counterSlides, STATE_START); + + var maxEffect = 0; + + if (slides[counterSlides].effects) + { + maxEffect = slides[counterSlides].effects.length; + } + + exportNode = slides[counterSlides].element.cloneNode(true); + exportNode.setAttributeNS(NSS["inkscape"], "groupmode", "layer"); + exportNode.setAttributeNS(NSS["inkscape"], "label", "slide_" + padString((counterSlides + 1).toString(), slides.length.toString().length) + "_effect_" + padString("0", maxEffect.toString().length)); + + exportedLayers.push(exportNode); + + if (slides[counterSlides]["effects"]) + { + for (var counter = 0; counter < slides[counterSlides]["effects"].length; counter++) + { + for (var subCounter = 0; subCounter < slides[counterSlides]["effects"][counter].length; subCounter++) + { + var effect = slides[counterSlides]["effects"][counter][subCounter]; + if (effect["effect"] == "fade") + fade(parseInt(effect["dir"]), effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "appear") + appear(parseInt(effect["dir"]), effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "pop") + pop(parseInt(effect["dir"]), effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "view") + view(parseInt(effect["dir"]), effect["element"], STATE_END, effect["options"]); + } + + var layerName = "slide_" + padString((counterSlides + 1).toString(), slides.length.toString().length) + "_effect_" + padString((counter + 1).toString(), maxEffect.toString().length); + exportNode = slides[counterSlides].element.cloneNode(true); + exportNode.setAttributeNS(NSS["inkscape"], "groupmode", "layer"); + exportNode.setAttributeNS(NSS["inkscape"], "label", layerName); + exportNode.setAttribute("id", layerName); + + exportedLayers.push(exportNode); + } + } + } + + activeSlide = tmpActiveSlide; + activeEffect = tmpActiveEffect; + setSlideToState(activeSlide, activeEffect); + + // Copy image. + var newDoc = document.documentElement.cloneNode(true); + + // Delete viewbox form new imag and set width and height. + newDoc.removeAttribute('viewbox'); + newDoc.setAttribute('width', WIDTH); + newDoc.setAttribute('height', HEIGHT); + + // Delete all layers and script elements. + var nodesToBeRemoved = new Array(); + + for (var childCounter = 0; childCounter < newDoc.childNodes.length; childCounter++) + { + var child = newDoc.childNodes[childCounter]; + + if (child.nodeType == 1) + { + if ((child.nodeName.toUpperCase() == 'G') || (child.nodeName.toUpperCase() == 'SCRIPT')) + { + nodesToBeRemoved.push(child); + } + } + } + + for (var ndCounter = 0; ndCounter < nodesToBeRemoved.length; ndCounter++) + { + var nd = nodesToBeRemoved[ndCounter]; + + // Before removing the node, check whether it contains any definitions. + var defs = nd.getElementsByTagNameNS(NSS["svg"], "defs"); + + for (var defsCounter = 0; defsCounter < defs.length; defsCounter++) + { + if (defs[defsCounter].id) + { + newDoc.appendChild(defs[defsCounter].cloneNode(true)); + } + } + + // Remove node. + nd.parentNode.removeChild(nd); + } + + // Set current layer. + if (exportedLayers[0]) + { + var namedView; + + for (var nodeCounter = 0; nodeCounter < newDoc.childNodes.length; nodeCounter++) + { + if ((newDoc.childNodes[nodeCounter].nodeType == 1) && (newDoc.childNodes[nodeCounter].getAttribute('id') == 'base')) + { + namedView = newDoc.childNodes[nodeCounter]; + } + } + + if (namedView) + { + namedView.setAttributeNS(NSS['inkscape'], 'current-layer', exportedLayers[0].getAttributeNS(NSS['inkscape'], 'label')); + } + } + + // Add exported layers. + while (exportedLayers.length > 0) + { + var nd = exportedLayers.pop(); + + nd.setAttribute("opacity",1); + nd.style.display = "inherit"; + + newDoc.appendChild(nd); + } + + // Serialise the new document. + window.location = 'data:application/svg+xml;base64;charset=utf-8,' + window.btoa(unescape(encodeURIComponent((new XMLSerializer()).serializeToString(newDoc)))); + + // Unsuspend redraw. + ROOT_NODE.unsuspendRedraw(suspendHandle); + ROOT_NODE.forceRedraw(); +} + +/** Function to undo last drawing operation. +*/ +function drawingUndo() +{ + mouse_presentation_path = null; + mouse_original_path = null; + + if (history_presentation_elements.length > 0) + { + var p = history_presentation_elements.pop(); + var parent = p.parentNode.removeChild(p); + + p = history_original_elements.pop(); + parent = p.parentNode.removeChild(p); + } +} + +/** Event handler for mouse down in drawing mode. + * + * @param e the event + */ +function drawingMousedown(e) +{ + var value = 0; + + if (e.button) + value = e.button; + else if (e.which) + value = e.which; + + if (value == 1) + { + history_counter++; + + var p = calcCoord(e); + + mouse_last_x = e.clientX; + mouse_last_y = e.clientY; + mouse_original_path = document.createElementNS(NSS["svg"], "path"); + mouse_original_path.setAttribute("stroke", path_colour); + mouse_original_path.setAttribute("stroke-width", path_paint_width); + mouse_original_path.setAttribute("fill", "none"); + mouse_original_path.setAttribute("id", "path " + Date()); + mouse_original_path.setAttribute("d", "M" + p.x + "," + p.y); + slides[activeSlide]["original_element"].appendChild(mouse_original_path); + history_original_elements.push(mouse_original_path); + + mouse_presentation_path = document.createElementNS(NSS["svg"], "path"); + mouse_presentation_path.setAttribute("stroke", path_colour); + mouse_presentation_path.setAttribute("stroke-width", path_paint_width); + mouse_presentation_path.setAttribute("fill", "none"); + mouse_presentation_path.setAttribute("id", "path " + Date() + " presentation copy"); + mouse_presentation_path.setAttribute("d", "M" + p.x + "," + p.y); + + if (slides[activeSlide]["viewGroup"]) + slides[activeSlide]["viewGroup"].appendChild(mouse_presentation_path); + else + slides[activeSlide]["element"].appendChild(mouse_presentation_path); + + history_presentation_elements.push(mouse_presentation_path); + + return false; + } + + return true; +} + +/** Event handler for mouse up in drawing mode. + * + * @param e the event + */ +function drawingMouseup(e) +{ + if(!e) + e = window.event; + + if (mouse_presentation_path != null) + { + var p = calcCoord(e); + var d = mouse_presentation_path.getAttribute("d"); + d += " L" + p.x + "," + p.y; + mouse_presentation_path.setAttribute("d", d); + mouse_presentation_path = null; + mouse_original_path.setAttribute("d", d); + mouse_original_path = null; + + return false; + } + + return true; +} + +/** Event handler for mouse move in drawing mode. + * + * @param e the event + */ +function drawingMousemove(e) +{ + if(!e) + e = window.event; + + var dist = (mouse_last_x - e.clientX) * (mouse_last_x - e.clientX) + (mouse_last_y - e.clientY) * (mouse_last_y - e.clientY); + + if (mouse_presentation_path == null) + { + return true; + } + + if (dist >= mouse_min_dist_sqr) + { + var p = calcCoord(e); + var d = mouse_presentation_path.getAttribute("d"); + d += " L" + p.x + "," + p.y; + mouse_presentation_path.setAttribute("d", d); + mouse_original_path.setAttribute("d", d); + mouse_last_x = e.clientX; + mouse_last_y = e.clientY; + } + + return false; +} + +/** Event handler for mouse wheel events in slide mode. + * based on http://adomas.org/javascript-mouse-wheel/ + * + * @param e the event + */ +function slideMousewheel(e) +{ + var delta = 0; + + if (!e) + e = window.event; + + if (e.wheelDelta) + { // IE Opera + delta = e.wheelDelta/120; + } + else if (e.detail) + { // MOZ + delta = -e.detail/3; + } + + if (delta > 0) + skipEffects(-1); + else if (delta < 0) + skipEffects(1); + + if (e.preventDefault) + e.preventDefault(); + + e.returnValue = false; +} + +/** Event handler for mouse wheel events in index mode. + * based on http://adomas.org/javascript-mouse-wheel/ + * + * @param e the event + */ +function indexMousewheel(e) +{ + var delta = 0; + + if (!e) + e = window.event; + + if (e.wheelDelta) + { // IE Opera + delta = e.wheelDelta/120; + } + else if (e.detail) + { // MOZ + delta = -e.detail/3; + } + + if (delta > 0) + indexSetPageSlide(activeSlide - INDEX_COLUMNS * INDEX_COLUMNS); + else if (delta < 0) + indexSetPageSlide(activeSlide + INDEX_COLUMNS * INDEX_COLUMNS); + + if (e.preventDefault) + e.preventDefault(); + + e.returnValue = false; +} + +/** Function to set the path paint width. +*/ +function set_path_paint_width() +{ + var svgPoint1 = document.documentElement.createSVGPoint(); + var svgPoint2 = document.documentElement.createSVGPoint(); + + svgPoint1.x = 0.0; + svgPoint1.y = 0.0; + svgPoint2.x = 1.0; + svgPoint2.y = 0.0; + + var matrix = slides[activeSlide]["element"].getTransformToElement(ROOT_NODE); + + if (slides[activeSlide]["viewGroup"]) + matrix = slides[activeSlide]["viewGroup"].getTransformToElement(ROOT_NODE); + + svgPoint1 = svgPoint1.matrixTransform(matrix); + svgPoint2 = svgPoint2.matrixTransform(matrix); + + path_paint_width = path_width / Math.sqrt((svgPoint2.x - svgPoint1.x) * (svgPoint2.x - svgPoint1.x) + (svgPoint2.y - svgPoint1.y) * (svgPoint2.y - svgPoint1.y)); +} + +/** The view effect. + * + * @param dir direction the effect should be played (1 = forwards, -1 = backwards) + * @param element the element the effect should be applied to + * @param time the time that has elapsed since the beginning of the effect + * @param options a dictionary with additional options (e.g. length of the effect); for the view effect the options need to contain the old and the new matrix. + */ +function view(dir, element, time, options) +{ + var length = 250; + var fraction; + + if (!options["matrixInitial"]) + { + var tempString = slides[activeSlide]["viewGroup"].getAttribute("transform"); + + if (tempString) + options["matrixInitial"] = (new matrixSVG()).fromAttribute(tempString); + else + options["matrixInitial"] = (new matrixSVG()).fromSVGElements(1, 0, 0, 1, 0, 0); + } + + if ((time == STATE_END) || (time == STATE_START)) + fraction = 1; + else + { + if (options && options["length"]) + length = options["length"]; + + fraction = time / length; + } + + if (dir == 1) + { + if (fraction <= 0) + { + element.setAttribute("transform", options["matrixInitial"].toAttribute()); + } + else if (fraction >= 1) + { + element.setAttribute("transform", options["matrixNew"].toAttribute()); + + set_path_paint_width(); + + options["matrixInitial"] = null; + return true; + } + else + { + element.setAttribute("transform", options["matrixInitial"].mix(options["matrixNew"], fraction).toAttribute()); + } + } + else if (dir == -1) + { + if (fraction <= 0) + { + element.setAttribute("transform", options["matrixInitial"].toAttribute()); + } + else if (fraction >= 1) + { + element.setAttribute("transform", options["matrixOld"].toAttribute()); + set_path_paint_width(); + + options["matrixInitial"] = null; + return true; + } + else + { + element.setAttribute("transform", options["matrixInitial"].mix(options["matrixOld"], fraction).toAttribute()); + } + } + + return false; +} + +/** The fade effect. + * + * @param dir direction the effect should be played (1 = forwards, -1 = backwards) + * @param element the element the effect should be applied to + * @param time the time that has elapsed since the beginning of the effect + * @param options a dictionary with additional options (e.g. length of the effect) + */ +function fade(dir, element, time, options) +{ + var length = 250; + var fraction; + + if ((time == STATE_END) || (time == STATE_START)) + fraction = 1; + else + { + if (options && options["length"]) + length = options["length"]; + + fraction = time / length; + } + + if (dir == 1) + { + if (fraction <= 0) + { + element.style.display = "none"; + element.setAttribute("opacity", 0); + } + else if (fraction >= 1) + { + element.style.display = "inherit"; + element.setAttribute("opacity", 1); + return true; + } + else + { + element.style.display = "inherit"; + element.setAttribute("opacity", fraction); + } + } + else if (dir == -1) + { + if (fraction <= 0) + { + element.style.display = "inherit"; + element.setAttribute("opacity", 1); + } + else if (fraction >= 1) + { + element.setAttribute("opacity", 0); + element.style.display = "none"; + return true; + } + else + { + element.style.display = "inherit"; + element.setAttribute("opacity", 1 - fraction); + } + } + return false; +} + +/** The appear effect. + * + * @param dir direction the effect should be played (1 = forwards, -1 = backwards) + * @param element the element the effect should be applied to + * @param time the time that has elapsed since the beginning of the effect + * @param options a dictionary with additional options (e.g. length of the effect) + */ +function appear(dir, element, time, options) +{ + if (dir == 1) + { + element.style.display = "inherit"; + element.setAttribute("opacity",1); + } + else if (dir == -1) + { + element.style.display = "none"; + element.setAttribute("opacity",0); + } + return true; +} + +/** The pop effect. + * + * @param dir direction the effect should be played (1 = forwards, -1 = backwards) + * @param element the element the effect should be applied to + * @param time the time that has elapsed since the beginning of the effect + * @param options a dictionary with additional options (e.g. length of the effect) + */ +function pop(dir, element, time, options) +{ + var length = 500; + var fraction; + + if ((time == STATE_END) || (time == STATE_START)) + fraction = 1; + else + { + if (options && options["length"]) + length = options["length"]; + + fraction = time / length; + } + + if (dir == 1) + { + if (fraction <= 0) + { + element.setAttribute("opacity", 0); + element.setAttribute("transform", "scale(0)"); + element.style.display = "none"; + } + else if (fraction >= 1) + { + element.setAttribute("opacity", 1); + element.removeAttribute("transform"); + element.style.display = "inherit"; + return true; + } + else + { + element.style.display = "inherit"; + var opacityFraction = fraction * 3; + if (opacityFraction > 1) + opacityFraction = 1; + element.setAttribute("opacity", opacityFraction); + var offsetX = WIDTH * (1.0 - fraction) / 2.0; + var offsetY = HEIGHT * (1.0 - fraction) / 2.0; + element.setAttribute("transform", "translate(" + offsetX + "," + offsetY + ") scale(" + fraction + ")"); + } + } + else if (dir == -1) + { + if (fraction <= 0) + { + element.setAttribute("opacity", 1); + element.setAttribute("transform", "scale(1)"); + element.style.display = "inherit"; + } + else if (fraction >= 1) + { + element.setAttribute("opacity", 0); + element.removeAttribute("transform"); + element.style.display = "none"; + return true; + } + else + { + element.setAttribute("opacity", 1 - fraction); + element.setAttribute("transform", "scale(" + 1 - fraction + ")"); + element.style.display = "inherit"; + } + } + return false; +} + +/** Function to set a slide either to the start or the end state. + * + * @param slide the slide to use + * @param state the state into which the slide should be set + */ +function setSlideToState(slide, state) +{ + slides[slide]["viewGroup"].setAttribute("transform", slides[slide].initialView); + + if (slides[slide]["effects"]) + { + if (state == STATE_END) + { + for (var counter = 0; counter < slides[slide]["effects"].length; counter++) + { + for (var subCounter = 0; subCounter < slides[slide]["effects"][counter].length; subCounter++) + { + var effect = slides[slide]["effects"][counter][subCounter]; + if (effect["effect"] == "fade") + fade(effect["dir"], effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "appear") + appear(effect["dir"], effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "pop") + pop(effect["dir"], effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "view") + view(effect["dir"], effect["element"], STATE_END, effect["options"]); + } + } + } + else if (state == STATE_START) + { + for (var counter = slides[slide]["effects"].length - 1; counter >= 0; counter--) + { + for (var subCounter = 0; subCounter < slides[slide]["effects"][counter].length; subCounter++) + { + var effect = slides[slide]["effects"][counter][subCounter]; + if (effect["effect"] == "fade") + fade(parseInt(effect["dir"]) * -1, effect["element"], STATE_START, effect["options"]); + else if (effect["effect"] == "appear") + appear(parseInt(effect["dir"]) * -1, effect["element"], STATE_START, effect["options"]); + else if (effect["effect"] == "pop") + pop(parseInt(effect["dir"]) * -1, effect["element"], STATE_START, effect["options"]); + else if (effect["effect"] == "view") + view(parseInt(effect["dir"]) * -1, effect["element"], STATE_START, effect["options"]); + } + } + } + else + { + setSlideToState(slide, STATE_START); + + for (var counter = 0; counter < slides[slide]["effects"].length && counter < state; counter++) + { + for (var subCounter = 0; subCounter < slides[slide]["effects"][counter].length; subCounter++) + { + var effect = slides[slide]["effects"][counter][subCounter]; + if (effect["effect"] == "fade") + fade(effect["dir"], effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "appear") + appear(effect["dir"], effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "pop") + pop(effect["dir"], effect["element"], STATE_END, effect["options"]); + else if (effect["effect"] == "view") + view(effect["dir"], effect["element"], STATE_END, effect["options"]); + } + } + } + } + + window.location.hash = (activeSlide + 1) + '_' + activeEffect; +} + +/** Convenience function to translate a attribute string into a dictionary. + * + * @param str the attribute string + * @return a dictionary + * @see dictToPropStr + */ +function propStrToDict(str) +{ + var list = str.split(";"); + var obj = new Object(); + + for (var counter = 0; counter < list.length; counter++) + { + var subStr = list[counter]; + var subList = subStr.split(":"); + if (subList.length == 2) + { + obj[subList[0]] = subList[1]; + } + } + + return obj; +} + +/** Convenience function to translate a dictionary into a string that can be used as an attribute. + * + * @param dict the dictionary to convert + * @return a string that can be used as an attribute + * @see propStrToDict + */ +function dictToPropStr(dict) +{ + var str = ""; + + for (var key in dict) + { + str += key + ":" + dict[key] + ";"; + } + + return str; +} + +/** Sub-function to add a suffix to the ids of the node and all its children. + * + * @param node the node to change + * @param suffix the suffix to add + * @param replace dictionary of replaced ids + * @see suffixNodeIds + */ +function suffixNoneIds_sub(node, suffix, replace) +{ + if (node.nodeType == 1) + { + if (node.getAttribute("id")) + { + var id = node.getAttribute("id") + replace["#" + id] = id + suffix; + node.setAttribute("id", id + suffix); + } + + if ((node.nodeName == "use") && (node.getAttributeNS(NSS["xlink"], "href")) && (replace[node.getAttribute(NSS["xlink"], "href")])) + node.setAttribute(NSS["xlink"], "href", node.getAttribute(NSS["xlink"], "href") + suffix); + + if (node.childNodes) + { + for (var counter = 0; counter < node.childNodes.length; counter++) + suffixNoneIds_sub(node.childNodes[counter], suffix, replace); + } + } +} + +/** Function to add a suffix to the ids of the node and all its children. + * + * @param node the node to change + * @param suffix the suffix to add + * @return the changed node + * @see suffixNodeIds_sub + */ +function suffixNodeIds(node, suffix) +{ + var replace = new Object(); + + suffixNoneIds_sub(node, suffix, replace); + + return node; +} + +/** Function to build a progress bar. + * + * @param parent node to attach the progress bar to + */ +function createProgressBar(parent_node) +{ + var g = document.createElementNS(NSS["svg"], "g"); + g.setAttribute("clip-path", "url(#jessyInkSlideClipPath)"); + g.setAttribute("id", "layer_progress_bar"); + g.setAttribute("style", "display: none;"); + + var rect_progress_bar = document.createElementNS(NSS["svg"], "rect"); + rect_progress_bar.setAttribute("style", "marker: none; fill: rgb(128, 128, 128); stroke: none;"); + rect_progress_bar.setAttribute("id", "rect_progress_bar"); + rect_progress_bar.setAttribute("x", 0); + rect_progress_bar.setAttribute("y", 0.99 * HEIGHT); + rect_progress_bar.setAttribute("width", 0); + rect_progress_bar.setAttribute("height", 0.01 * HEIGHT); + g.appendChild(rect_progress_bar); + + var circle_timer_indicator = document.createElementNS(NSS["svg"], "circle"); + circle_timer_indicator.setAttribute("style", "marker: none; fill: rgb(255, 0, 0); stroke: none;"); + circle_timer_indicator.setAttribute("id", "circle_timer_indicator"); + circle_timer_indicator.setAttribute("cx", 0.005 * HEIGHT); + circle_timer_indicator.setAttribute("cy", 0.995 * HEIGHT); + circle_timer_indicator.setAttribute("r", 0.005 * HEIGHT); + g.appendChild(circle_timer_indicator); + + parent_node.appendChild(g); +} + +/** Function to hide the progress bar. + * + */ +function hideProgressBar() +{ + var progress_bar = document.getElementById("layer_progress_bar"); + + if (!progress_bar) + { + return; + } + + progress_bar.setAttribute("style", "display: none;"); +} + +/** Function to show the progress bar. + * + */ +function showProgressBar() +{ + var progress_bar = document.getElementById("layer_progress_bar"); + + if (!progress_bar) + { + return; + } + + progress_bar.setAttribute("style", "display: inherit;"); +} + +/** Set progress bar value. + * + * @param value the current slide number + * + */ +function setProgressBarValue(value) +{ + var rect_progress_bar = document.getElementById("rect_progress_bar"); + + if (!rect_progress_bar) + { + return; + } + + if (value < 1) + { + // First slide, assumed to be the title of the presentation + var x = 0; + var w = 0.01 * HEIGHT; + } + else if (value >= slides.length - 1) + { + // Last slide, assumed to be the end of the presentation + var x = WIDTH - 0.01 * HEIGHT; + var w = 0.01 * HEIGHT; + } + else + { + value -= 1; + value /= (slides.length - 2); + + var x = WIDTH * value; + var w = WIDTH / (slides.length - 2); + } + + rect_progress_bar.setAttribute("x", x); + rect_progress_bar.setAttribute("width", w); +} + +/** Set time indicator. + * + * @param value the percentage of time elapse so far between 0.0 and 1.0 + * + */ +function setTimeIndicatorValue(value) +{ + var circle_timer_indicator = document.getElementById("circle_timer_indicator"); + + if (!circle_timer_indicator) + { + return; + } + + if (value < 0.0) + { + value = 0.0; + } + + if (value > 1.0) + { + value = 1.0; + } + + var cx = (WIDTH - 0.01 * HEIGHT) * value + 0.005 * HEIGHT; + circle_timer_indicator.setAttribute("cx", cx); +} + +/** Update timer. + * + */ +function updateTimer() +{ + timer_elapsed += 1; + setTimeIndicatorValue((timer_elapsed - timer_start) / (60 * timer_duration)); +} + +/** Convert screen coordinates to document coordinates. + * + * @param e event with screen coordinates + * + * @return coordinates in SVG file coordinate system + */ +function calcCoord(e) +{ + var svgPoint = document.documentElement.createSVGPoint(); + svgPoint.x = e.clientX + window.pageXOffset; + svgPoint.y = e.clientY + window.pageYOffset; + + var matrix = slides[activeSlide]["element"].getScreenCTM(); + + if (slides[activeSlide]["viewGroup"]) + matrix = slides[activeSlide]["viewGroup"].getScreenCTM(); + + svgPoint = svgPoint.matrixTransform(matrix.inverse()); + return svgPoint; +} + +/** Add slide. + * + * @param after_slide after which slide the new slide should be inserted into the presentation + */ +function addSlide(after_slide) +{ + number_of_added_slides++; + + var g = document.createElementNS(NSS["svg"], "g"); + g.setAttribute("clip-path", "url(#jessyInkSlideClipPath)"); + g.setAttribute("id", "Whiteboard " + Date() + " presentation copy"); + g.setAttribute("style", "display: none;"); + + var new_slide = new Object(); + new_slide["element"] = g; + + // Set build in transition. + new_slide["transitionIn"] = new Object(); + var dict = defaultTransitionInDict; + new_slide["transitionIn"]["name"] = dict["name"]; + new_slide["transitionIn"]["options"] = new Object(); + + for (key in dict) + if (key != "name") + new_slide["transitionIn"]["options"][key] = dict[key]; + + // Set build out transition. + new_slide["transitionOut"] = new Object(); + dict = defaultTransitionOutDict; + new_slide["transitionOut"]["name"] = dict["name"]; + new_slide["transitionOut"]["options"] = new Object(); + + for (key in dict) + if (key != "name") + new_slide["transitionOut"]["options"][key] = dict[key]; + + // Copy master slide content. + if (masterSlide) + { + var clonedNode = suffixNodeIds(masterSlide.cloneNode(true), "_" + Date() + " presentation_copy"); + clonedNode.removeAttributeNS(NSS["inkscape"], "groupmode"); + clonedNode.removeAttributeNS(NSS["inkscape"], "label"); + clonedNode.style.display = "inherit"; + + g.appendChild(clonedNode); + } + + // Substitute auto texts. + substituteAutoTexts(g, "Whiteboard " + number_of_added_slides, "W" + number_of_added_slides, slides.length); + + g.setAttribute("onmouseover", "if ((currentMode == INDEX_MODE) && ( activeSlide != " + (after_slide + 1) + ")) { indexSetActiveSlide(" + (after_slide + 1) + "); };"); + + // Create a transform group. + var transformGroup = document.createElementNS(NSS["svg"], "g"); + + // Add content to transform group. + while (g.firstChild) + transformGroup.appendChild(g.firstChild); + + // Transfer the transform attribute from the node to the transform group. + if (g.getAttribute("transform")) + { + transformGroup.setAttribute("transform", g.getAttribute("transform")); + g.removeAttribute("transform"); + } + + // Create a view group. + var viewGroup = document.createElementNS(NSS["svg"], "g"); + + viewGroup.appendChild(transformGroup); + new_slide["viewGroup"] = g.appendChild(viewGroup); + + // Insert background. + if (BACKGROUND_COLOR != null) + { + var rectNode = document.createElementNS(NSS["svg"], "rect"); + + rectNode.setAttribute("x", 0); + rectNode.setAttribute("y", 0); + rectNode.setAttribute("width", WIDTH); + rectNode.setAttribute("height", HEIGHT); + rectNode.setAttribute("id", "jessyInkBackground" + Date()); + rectNode.setAttribute("fill", BACKGROUND_COLOR); + + new_slide["viewGroup"].insertBefore(rectNode, new_slide["viewGroup"].firstChild); + } + + // Set initial view even if there are no other views. + var matrixOld = (new matrixSVG()).fromElements(1, 0, 0, 0, 1, 0, 0, 0, 1); + + new_slide["viewGroup"].setAttribute("transform", matrixOld.toAttribute()); + new_slide.initialView = matrixOld.toAttribute(); + + // Insert slide + var node = slides[after_slide]["element"]; + var next_node = node.nextSibling; + var parent_node = node.parentNode; + + if (next_node) + { + parent_node.insertBefore(g, next_node); + } + else + { + parent_node.appendChild(g); + } + + g = document.createElementNS(NSS["svg"], "g"); + g.setAttributeNS(NSS["inkscape"], "groupmode", "layer"); + g.setAttributeNS(NSS["inkscape"], "label", "Whiteboard " + number_of_added_slides); + g.setAttribute("clip-path", "url(#jessyInkSlideClipPath)"); + g.setAttribute("id", "Whiteboard " + Date()); + g.setAttribute("style", "display: none;"); + + new_slide["original_element"] = g; + + node = slides[after_slide]["original_element"]; + next_node = node.nextSibling; + parent_node = node.parentNode; + + if (next_node) + { + parent_node.insertBefore(g, next_node); + } + else + { + parent_node.appendChild(g); + } + + before_new_slide = slides.slice(0, after_slide + 1); + after_new_slide = slides.slice(after_slide + 1); + slides = before_new_slide.concat(new_slide, after_new_slide); + + //resetting the counter attributes on the slides that follow the new slide... + for (var counter = after_slide+2; counter < slides.length; counter++) + { + slides[counter]["element"].setAttribute("onmouseover", "if ((currentMode == INDEX_MODE) && ( activeSlide != " + counter + ")) { indexSetActiveSlide(" + counter + "); };"); + } +} + +/** Convenience function to obtain a transformation matrix from a point matrix. + * + * @param mPoints Point matrix. + * @return A transformation matrix. + */ +function pointMatrixToTransformation(mPoints) +{ + mPointsOld = (new matrixSVG()).fromElements(0, WIDTH, WIDTH, 0, 0, HEIGHT, 1, 1, 1); + + return mPointsOld.mult(mPoints.inv()); +} + +/** Convenience function to obtain a matrix with three corners of a rectangle. + * + * @param rect an svg rectangle + * @return a matrixSVG containing three corners of the rectangle + */ +function rectToMatrix(rect) +{ + rectWidth = rect.getBBox().width; + rectHeight = rect.getBBox().height; + rectX = rect.getBBox().x; + rectY = rect.getBBox().y; + rectXcorr = 0; + rectYcorr = 0; + + scaleX = WIDTH / rectWidth; + scaleY = HEIGHT / rectHeight; + + if (scaleX > scaleY) + { + scaleX = scaleY; + rectXcorr -= (WIDTH / scaleX - rectWidth) / 2; + rectWidth = WIDTH / scaleX; + } + else + { + scaleY = scaleX; + rectYcorr -= (HEIGHT / scaleY - rectHeight) / 2; + rectHeight = HEIGHT / scaleY; + } + + if (rect.transform.baseVal.numberOfItems < 1) + { + mRectTrans = (new matrixSVG()).fromElements(1, 0, 0, 0, 1, 0, 0, 0, 1); + } + else + { + mRectTrans = (new matrixSVG()).fromSVGMatrix(rect.transform.baseVal.consolidate().matrix); + } + + newBasePoints = (new matrixSVG()).fromElements(rectX, rectX, rectX, rectY, rectY, rectY, 1, 1, 1); + newVectors = (new matrixSVG()).fromElements(rectXcorr, rectXcorr + rectWidth, rectXcorr + rectWidth, rectYcorr, rectYcorr, rectYcorr + rectHeight, 0, 0, 0); + + return mRectTrans.mult(newBasePoints.add(newVectors)); +} + +/** Function to handle JessyInk elements. + * + * @param node Element node. + */ +function handleElement(node) +{ + if (node.getAttributeNS(NSS['jessyink'], 'element') == 'core.video') + { + var url; + var width; + var height; + var x; + var y; + var transform; + + var tspans = node.getElementsByTagNameNS("http://www.w3.org/2000/svg", "tspan"); + + for (var tspanCounter = 0; tspanCounter < tspans.length; tspanCounter++) + { + if (tspans[tspanCounter].getAttributeNS("https://launchpad.net/jessyink", "video") == "url") + { + url = tspans[tspanCounter].firstChild.nodeValue; + } + } + + var rects = node.getElementsByTagNameNS("http://www.w3.org/2000/svg", "rect"); + + for (var rectCounter = 0; rectCounter < rects.length; rectCounter++) + { + if (rects[rectCounter].getAttributeNS("https://launchpad.net/jessyink", "video") == "rect") + { + x = rects[rectCounter].getAttribute("x"); + y = rects[rectCounter].getAttribute("y"); + width = rects[rectCounter].getAttribute("width"); + height = rects[rectCounter].getAttribute("height"); + transform = rects[rectCounter].getAttribute("transform"); + } + } + + for (var childCounter = 0; childCounter < node.childNodes.length; childCounter++) + { + if (node.childNodes[childCounter].nodeType == 1) + { + if (node.childNodes[childCounter].style) + { + node.childNodes[childCounter].style.display = 'none'; + } + else + { + node.childNodes[childCounter].setAttribute("style", "display: none;"); + } + } + } + + var foreignNode = document.createElementNS("http://www.w3.org/2000/svg", "foreignObject"); + foreignNode.setAttribute("x", x); + foreignNode.setAttribute("y", y); + foreignNode.setAttribute("width", width); + foreignNode.setAttribute("height", height); + foreignNode.setAttribute("transform", transform); + + var videoNode = document.createElementNS("http://www.w3.org/1999/xhtml", "video"); + videoNode.setAttribute("src", url); + + foreignNode.appendChild(videoNode); + node.appendChild(foreignNode); + } +} + +/** Class processing the location hash. + * + * @param str location hash + */ +function LocationHash(str) +{ + this.slideNumber = 0; + this.effectNumber = 0; + + str = str.substr(1, str.length - 1); + + var parts = str.split('_'); + + // Try to extract slide number. + if (parts.length >= 1) + { + try + { + var slideNumber = parseInt(parts[0]); + + if (!isNaN(slideNumber)) + { + this.slideNumber = slideNumber - 1; + } + } + catch (e) + { + } + } + + // Try to extract effect number. + if (parts.length >= 2) + { + try + { + var effectNumber = parseInt(parts[1]); + + if (!isNaN(effectNumber)) + { + this.effectNumber = effectNumber; + } + } + catch (e) + { + } + } +} + +/** Class representing an svg matrix. +*/ +function matrixSVG() +{ + this.e11 = 0; // a + this.e12 = 0; // c + this.e13 = 0; // e + this.e21 = 0; // b + this.e22 = 0; // d + this.e23 = 0; // f + this.e31 = 0; + this.e32 = 0; + this.e33 = 0; +} + +/** Constructor function. + * + * @param a element a (i.e. 1, 1) as described in the svg standard. + * @param b element b (i.e. 2, 1) as described in the svg standard. + * @param c element c (i.e. 1, 2) as described in the svg standard. + * @param d element d (i.e. 2, 2) as described in the svg standard. + * @param e element e (i.e. 1, 3) as described in the svg standard. + * @param f element f (i.e. 2, 3) as described in the svg standard. + */ +matrixSVG.prototype.fromSVGElements = function(a, b, c, d, e, f) +{ + this.e11 = a; + this.e12 = c; + this.e13 = e; + this.e21 = b; + this.e22 = d; + this.e23 = f; + this.e31 = 0; + this.e32 = 0; + this.e33 = 1; + + return this; +} + +/** Constructor function. + * + * @param matrix an svg matrix as described in the svg standard. + */ +matrixSVG.prototype.fromSVGMatrix = function(m) +{ + this.e11 = m.a; + this.e12 = m.c; + this.e13 = m.e; + this.e21 = m.b; + this.e22 = m.d; + this.e23 = m.f; + this.e31 = 0; + this.e32 = 0; + this.e33 = 1; + + return this; +} + +/** Constructor function. + * + * @param e11 element 1, 1 of the matrix. + * @param e12 element 1, 2 of the matrix. + * @param e13 element 1, 3 of the matrix. + * @param e21 element 2, 1 of the matrix. + * @param e22 element 2, 2 of the matrix. + * @param e23 element 2, 3 of the matrix. + * @param e31 element 3, 1 of the matrix. + * @param e32 element 3, 2 of the matrix. + * @param e33 element 3, 3 of the matrix. + */ +matrixSVG.prototype.fromElements = function(e11, e12, e13, e21, e22, e23, e31, e32, e33) +{ + this.e11 = e11; + this.e12 = e12; + this.e13 = e13; + this.e21 = e21; + this.e22 = e22; + this.e23 = e23; + this.e31 = e31; + this.e32 = e32; + this.e33 = e33; + + return this; +} + +/** Constructor function. + * + * @param attrString string value of the "transform" attribute (currently only "matrix" is accepted) + */ +matrixSVG.prototype.fromAttribute = function(attrString) +{ + str = attrString.substr(7, attrString.length - 8); + + str = str.trim(); + + strArray = str.split(","); + + // Opera does not use commas to separate the values of the matrix, only spaces. + if (strArray.length != 6) + strArray = str.split(" "); + + this.e11 = parseFloat(strArray[0]); + this.e21 = parseFloat(strArray[1]); + this.e31 = 0; + this.e12 = parseFloat(strArray[2]); + this.e22 = parseFloat(strArray[3]); + this.e32 = 0; + this.e13 = parseFloat(strArray[4]); + this.e23 = parseFloat(strArray[5]); + this.e33 = 1; + + return this; +} + +/** Output function + * + * @return a string that can be used as the "transform" attribute. + */ +matrixSVG.prototype.toAttribute = function() +{ + return "matrix(" + this.e11 + ", " + this.e21 + ", " + this.e12 + ", " + this.e22 + ", " + this.e13 + ", " + this.e23 + ")"; +} + +/** Matrix nversion. + * + * @return the inverse of the matrix + */ +matrixSVG.prototype.inv = function() +{ + out = new matrixSVG(); + + det = this.e11 * (this.e33 * this.e22 - this.e32 * this.e23) - this.e21 * (this.e33 * this.e12 - this.e32 * this.e13) + this.e31 * (this.e23 * this.e12 - this.e22 * this.e13); + + out.e11 = (this.e33 * this.e22 - this.e32 * this.e23) / det; + out.e12 = -(this.e33 * this.e12 - this.e32 * this.e13) / det; + out.e13 = (this.e23 * this.e12 - this.e22 * this.e13) / det; + out.e21 = -(this.e33 * this.e21 - this.e31 * this.e23) / det; + out.e22 = (this.e33 * this.e11 - this.e31 * this.e13) / det; + out.e23 = -(this.e23 * this.e11 - this.e21 * this.e13) / det; + out.e31 = (this.e32 * this.e21 - this.e31 * this.e22) / det; + out.e32 = -(this.e32 * this.e11 - this.e31 * this.e12) / det; + out.e33 = (this.e22 * this.e11 - this.e21 * this.e12) / det; + + return out; +} + +/** Matrix multiplication. + * + * @param op another svg matrix + * @return this * op + */ +matrixSVG.prototype.mult = function(op) +{ + out = new matrixSVG(); + + out.e11 = this.e11 * op.e11 + this.e12 * op.e21 + this.e13 * op.e31; + out.e12 = this.e11 * op.e12 + this.e12 * op.e22 + this.e13 * op.e32; + out.e13 = this.e11 * op.e13 + this.e12 * op.e23 + this.e13 * op.e33; + out.e21 = this.e21 * op.e11 + this.e22 * op.e21 + this.e23 * op.e31; + out.e22 = this.e21 * op.e12 + this.e22 * op.e22 + this.e23 * op.e32; + out.e23 = this.e21 * op.e13 + this.e22 * op.e23 + this.e23 * op.e33; + out.e31 = this.e31 * op.e11 + this.e32 * op.e21 + this.e33 * op.e31; + out.e32 = this.e31 * op.e12 + this.e32 * op.e22 + this.e33 * op.e32; + out.e33 = this.e31 * op.e13 + this.e32 * op.e23 + this.e33 * op.e33; + + return out; +} + +/** Matrix addition. + * + * @param op another svg matrix + * @return this + op + */ +matrixSVG.prototype.add = function(op) +{ + out = new matrixSVG(); + + out.e11 = this.e11 + op.e11; + out.e12 = this.e12 + op.e12; + out.e13 = this.e13 + op.e13; + out.e21 = this.e21 + op.e21; + out.e22 = this.e22 + op.e22; + out.e23 = this.e23 + op.e23; + out.e31 = this.e31 + op.e31; + out.e32 = this.e32 + op.e32; + out.e33 = this.e33 + op.e33; + + return out; +} + +/** Matrix mixing. + * + * @param op another svg matrix + * @parma contribOp contribution of the other matrix (0 <= contribOp <= 1) + * @return (1 - contribOp) * this + contribOp * op + */ +matrixSVG.prototype.mix = function(op, contribOp) +{ + contribThis = 1.0 - contribOp; + out = new matrixSVG(); + + out.e11 = contribThis * this.e11 + contribOp * op.e11; + out.e12 = contribThis * this.e12 + contribOp * op.e12; + out.e13 = contribThis * this.e13 + contribOp * op.e13; + out.e21 = contribThis * this.e21 + contribOp * op.e21; + out.e22 = contribThis * this.e22 + contribOp * op.e22; + out.e23 = contribThis * this.e23 + contribOp * op.e23; + out.e31 = contribThis * this.e31 + contribOp * op.e31; + out.e32 = contribThis * this.e32 + contribOp * op.e32; + out.e33 = contribThis * this.e33 + contribOp * op.e33; + + return out; +} + +/** Trimming function for strings. +*/ +String.prototype.trim = function() +{ + return this.replace(/^\s+|\s+$/g, ''); +} + +/** SVGElement.getTransformToElement polyfill */ +SVGElement.prototype.getTransformToElement = SVGElement.prototype.getTransformToElement || function(elem) { + return elem.getScreenCTM().inverse().multiply(this.getScreenCTM()); +}; + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/jessyink_key_bindings__--slide_export__SPACE__--drawing_undo__ENTER__--index_nextPage__LEFT.out b/share/extensions/tests/data/refs/jessyink_key_bindings__--slide_export__SPACE__--drawing_undo__ENTER__--index_nextPage__LEFT.out new file mode 100644 index 0000000..4c87b34 --- /dev/null +++ b/share/extensions/tests/data/refs/jessyink_key_bindings__--slide_export__SPACE__--drawing_undo__ENTER__--index_nextPage__LEFT.out @@ -0,0 +1,61 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + +function getCustomKeyBindingsSub() +{ + var keyDict = new Object(); + keyDict[SLIDE_MODE] = new Object(); + keyDict[INDEX_MODE] = new Object(); + keyDict[DRAWING_MODE] = new Object(); + keyDict[SLIDE_MODE][SPACE_KEY] = function() { slideUpdateExportLayer(); }; + keyDict[DRAWING_MODE][ENTER_KEY] = function() { drawingUndo(); }; + keyDict[INDEX_MODE][LEFT_KEY] = function() { indexSetPageSlide(activeSlide + INDEX_COLUMNS * INDEX_COLUMNS); }; + return keyDict; +} + +function getCustomCharBindingsSub() +{ + var charDict = new Object(); + charDict[SLIDE_MODE] = new Object(); + charDict[INDEX_MODE] = new Object(); + charDict[DRAWING_MODE] = new Object(); + return charDict; +} + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/jessyink_key_bindings__--slide_export__a__--drawing_undo__b__--index_nextPage__c.out b/share/extensions/tests/data/refs/jessyink_key_bindings__--slide_export__a__--drawing_undo__b__--index_nextPage__c.out new file mode 100644 index 0000000..ed3b6bb --- /dev/null +++ b/share/extensions/tests/data/refs/jessyink_key_bindings__--slide_export__a__--drawing_undo__b__--index_nextPage__c.out @@ -0,0 +1,61 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + +function getCustomKeyBindingsSub() +{ + var keyDict = new Object(); + keyDict[SLIDE_MODE] = new Object(); + keyDict[INDEX_MODE] = new Object(); + keyDict[DRAWING_MODE] = new Object(); + return keyDict; +} + +function getCustomCharBindingsSub() +{ + var charDict = new Object(); + charDict[SLIDE_MODE] = new Object(); + charDict[INDEX_MODE] = new Object(); + charDict[DRAWING_MODE] = new Object(); + charDict[SLIDE_MODE]["a"] = function() { slideUpdateExportLayer(); }; + charDict[DRAWING_MODE]["b"] = function() { drawingUndo(); }; + charDict[INDEX_MODE]["c"] = function() { indexSetPageSlide(activeSlide + INDEX_COLUMNS * INDEX_COLUMNS); }; + return charDict; +} + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/jessyink_master_slide.out b/share/extensions/tests/data/refs/jessyink_master_slide.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/jessyink_master_slide__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/jessyink_master_slide__--id__p1__--id__r3.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/jessyink_mouse_handler__--mouseSetting__default.out b/share/extensions/tests/data/refs/jessyink_mouse_handler__--mouseSetting__default.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/jessyink_mouse_handler__--mouseSetting__draggingZoom.out b/share/extensions/tests/data/refs/jessyink_mouse_handler__--mouseSetting__draggingZoom.out new file mode 100644 index 0000000..46d82ea --- /dev/null +++ b/share/extensions/tests/data/refs/jessyink_mouse_handler__--mouseSetting__draggingZoom.out @@ -0,0 +1,475 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + +// Copyright 2008, 2009 Hannes Hochreiner +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see http://www.gnu.org/licenses/. + +// Add event listener for initialisation. +document.addEventListener("DOMContentLoaded", jessyInk_core_mouseHandler_zoomControl_init, false); + +/** Initialisation function. + * + * This function looks for the objects of the appropriate sub-type and hands them to another function that will add the required methods. + */ +function jessyInk_core_mouseHandler_zoomControl_init() +{ + var elems = document.getElementsByTagNameNS("https://launchpad.net/jessyink", "mousehandler"); + + for (var counter = 0; counter < elems.length; counter++) + { + if (elems[counter].getAttributeNS("https://launchpad.net/jessyink", "subtype") == "jessyInk_core_mouseHandler_zoomControl") + jessyInk_core_mouseHandler_zoomControl(elems[counter]); + } +} + +/** Function to initialise an object. + * + * @param obj Object to be initialised. + */ +function jessyInk_core_mouseHandler_zoomControl(obj) +{ + // Last dragging position. + obj.dragging_last; + // Flag to indicate whether dragging is active currently. + obj.dragging_active = false; + // Flag to indicate whether dragging is working currently. + obj.dragging_working = false; + // Flag to indicate whether the user clicked. + obj.click = false; + + /** Function supplying a custom mouse handler. + * + * @returns A dictionary containing the new mouse handler functions. + */ + obj.getMouseHandler = function () + { + var handlerDictio = new Object(); + + handlerDictio[SLIDE_MODE] = new Object(); + handlerDictio[SLIDE_MODE][MOUSE_DOWN] = obj.mousedown; + handlerDictio[SLIDE_MODE][MOUSE_MOVE] = obj.mousemove; + handlerDictio[SLIDE_MODE][MOUSE_UP] = obj.mouseup; + handlerDictio[SLIDE_MODE][MOUSE_WHEEL] = obj.mousewheel; + + return handlerDictio; + } + + /** Event handler for mouse clicks. + * + * @param e Event object. + */ + obj.mouseclick = function (e) + { + var elem = obj.getAdHocViewBbox(slides[activeSlide]["viewGroup"], obj.getCoords(e)); + + processingEffect = true; + + effectArray = new Array(); + + effectArray[0] = new Object(); + effectArray[0]["effect"] = "view"; + effectArray[0]["dir"] = 1; + effectArray[0]["element"] = slides[activeSlide]["viewGroup"]; + effectArray[0]["options"] = new Object(); + effectArray[0]["options"]["length"] = 200; + + if (elem == null) + effectArray[0]["options"]["matrixNew"] = (new matrixSVG()).fromSVGElements(1, 0, 0, 1, 0, 0); + else + effectArray[0]["options"]["matrixNew"] = obj.pointMatrixToTransformation(obj.rectToMatrix(elem)).mult((new matrixSVG()).fromSVGMatrix(slides[activeSlide].viewGroup.getScreenCTM()).inv().mult((new matrixSVG()).fromSVGMatrix(elem.parentNode.getScreenCTM())).inv()); + + transCounter = 0; + startTime = (new Date()).getTime(); + lastFrameTime = null; + effect(1); + + return false; + } + + /** Function to search for the element the user clicked on. + * + * This function searches for the element with the highest z-order, which encloses the point the user clicked on + * and which view box fits entierly into the currently visible part of the slide. + * + * @param elem Element to start the search from. + * @param pnt Point where the user clicked. + * @returns The element the user clicked on or null, if no element could be found. + */ + obj.getAdHocViewBbox = function (elem, pnt) + { + var children = elem.childNodes; + + for (var counter = 0; counter < children.length; counter++) + { + if (children[counter].getBBox) + { + var childPointList = obj.projectRect(children[counter].getBBox(), children[counter].getScreenCTM()); + + var viewBbox = document.documentElement.createSVGRect(); + + viewBbox.x = 0.0; + viewBbox.y = 0.0; + viewBbox.width = WIDTH; + viewBbox.height = HEIGHT; + + var screenPointList = obj.projectRect(viewBbox, slides[activeSlide]["element"].getScreenCTM()); + + if (obj.pointsWithinRect([pnt], childPointList) && obj.pointsWithinRect(childPointList, screenPointList)) + return children[counter]; + + child = obj.getAdHocViewBbox(children[counter], pnt); + + if (child != null) + return child; + } + } + + return null; + } + + /** Function to project a rectangle using the projection matrix supplied. + * + * @param rect The rectangle to project. + * @param projectionMatrix The projection matrix. + * @returns A list of the four corners of the projected rectangle starting from the upper left corner and going counter-clockwise. + */ + obj.projectRect = function (rect, projectionMatrix) + { + var pntUL = document.documentElement.createSVGPoint(); + pntUL.x = rect.x; + pntUL.y = rect.y; + pntUL = pntUL.matrixTransform(projectionMatrix); + + var pntLL = document.documentElement.createSVGPoint(); + pntLL.x = rect.x; + pntLL.y = rect.y + rect.height; + pntLL = pntLL.matrixTransform(projectionMatrix); + + var pntUR = document.documentElement.createSVGPoint(); + pntUR.x = rect.x + rect.width; + pntUR.y = rect.y; + pntUR = pntUR.matrixTransform(projectionMatrix); + + var pntLR = document.documentElement.createSVGPoint(); + pntLR.x = rect.x + rect.width; + pntLR.y = rect.y + rect.height; + pntLR = pntLR.matrixTransform(projectionMatrix); + + return [pntUL, pntLL, pntUR, pntLR]; + } + + /** Function to determine whether all the points supplied in a list are within a rectangle. + * + * @param pnts List of points to check. + * @param pointList List of points representing the four corners of the rectangle. + * @return True, if all points are within the rectangle; false, otherwise. + */ + obj.pointsWithinRect = function (pnts, pointList) + { + var pntUL = pointList[0]; + var pntLL = pointList[1]; + var pntUR = pointList[2]; + + var matrixOrig = (new matrixSVG()).fromElements(pntUL.x, pntLL.x, pntUR.x, pntUL.y, pntLL.y, pntUR.y, 1, 1, 1); + var matrixProj = (new matrixSVG()).fromElements(0, 0, 1, 0, 1, 0, 1, 1, 1); + + var matrixProjection = matrixProj.mult(matrixOrig.inv()); + + for (var blockCounter = 0; blockCounter < Math.ceil(pnts.length / 3.0); blockCounter++) + { + var subPnts = new Array(); + + for (var pntCounter = 0; pntCounter < 3.0; pntCounter++) + { + if (blockCounter * 3.0 + pntCounter < pnts.length) + subPnts[pntCounter] = pnts[blockCounter * 3.0 + pntCounter]; + else + { + var tmpPnt = document.documentElement.createSVGPoint(); + + tmpPnt.x = 0.0; + tmpPnt.y = 0.0; + + subPnts[pntCounter] = tmpPnt; + } + } + + var matrixPnt = (new matrixSVG).fromElements(subPnts[0].x, subPnts[1].x, subPnts[2].x, subPnts[0].y, subPnts[1].y, subPnts[2].y, 1, 1, 1); + var matrixTrans = matrixProjection.mult(matrixPnt); + + for (var pntCounter = 0; pntCounter < 3.0; pntCounter++) + { + if (blockCounter * 3.0 + pntCounter < pnts.length) + { + if ((pntCounter == 0) && !((matrixTrans.e11 > 0.01) && (matrixTrans.e11 < 0.99) && (matrixTrans.e21 > 0.01) && (matrixTrans.e21 < 0.99))) + return false; + else if ((pntCounter == 1) && !((matrixTrans.e12 > 0.01) && (matrixTrans.e12 < 0.99) && (matrixTrans.e22 > 0.01) && (matrixTrans.e22 < 0.99))) + return false; + else if ((pntCounter == 2) && !((matrixTrans.e13 > 0.01) && (matrixTrans.e13 < 0.99) && (matrixTrans.e23 > 0.01) && (matrixTrans.e23 < 0.99))) + return false; + } + } + } + + return true; + } + + /** Event handler for mouse movements. + * + * @param e Event object. + */ + obj.mousemove = function (e) + { + obj.click = false; + + if (!obj.dragging_active || obj.dragging_working) + return false; + + obj.dragging_working = true; + + var p = obj.getCoords(e); + + if (slides[activeSlide].viewGroup.transform.baseVal.numberOfItems < 1) + { + var matrix = (new matrixSVG()).fromElements(1, 0, 0, 0, 1, 0, 0, 0, 1); + } + else + { + var matrix = (new matrixSVG()).fromSVGMatrix(slides[activeSlide].viewGroup.transform.baseVal.consolidate().matrix); + } + + matrix.e13 += p.x - obj.dragging_last.x; + matrix.e23 += p.y - obj.dragging_last.y; + + slides[activeSlide]["viewGroup"].setAttribute("transform", matrix.toAttribute()); + + obj.dragging_last = p; + obj.dragging_working = false; + + return false; + } + + /** Event handler for mouse down. + * + * @param e Event object. + */ + obj.mousedown = function (e) + { + if (obj.dragging_active) + return false; + + var value = 0; + + if (e.button) + value = e.button; + else if (e.which) + value = e.which; + + if (value == 1) + { + obj.dragging_last = obj.getCoords(e); + obj.dragging_active = true; + obj.click = true; + } + + return false; + } + + /** Event handler for mouse up. + * + * @param e Event object. + */ + obj.mouseup = function (e) + { + obj.dragging_active = false; + + if (obj.click) + return obj.mouseclick(e); + else + return false; + } + + /** Function to get the coordinates of a point corrected for the offset of the viewport. + * + * @param e Point. + * @returns Coordinates of the point corrected for the offset of the viewport. + */ + obj.getCoords = function (e) + { + var svgPoint = document.documentElement.createSVGPoint(); + svgPoint.x = e.clientX + window.pageXOffset; + svgPoint.y = e.clientY + window.pageYOffset; + + return svgPoint; + } + + /** Event handler for scrolling. + * + * @param e Event object. + */ + obj.mousewheel = function(e) + { + var p = obj.projectCoords(obj.getCoords(e)); + + if (slides[activeSlide].viewGroup.transform.baseVal.numberOfItems < 1) + { + var matrix = (new matrixSVG()).fromElements(1, 0, 0, 0, 1, 0, 0, 0, 1); + } + else + { + var matrix = (new matrixSVG()).fromSVGMatrix(slides[activeSlide].viewGroup.transform.baseVal.consolidate().matrix); + } + + if (e.wheelDelta) + { // IE Opera + delta = e.wheelDelta/120; + } + else if (e.detail) + { // MOZ + delta = -e.detail/3; + } + + var widthOld = p.x * matrix.e11 + p.y * matrix.e12; + var heightOld = p.x * matrix.e21 + p.y * matrix.e22; + + matrix.e11 *= (1.0 - delta / 20.0); + matrix.e12 *= (1.0 - delta / 20.0); + matrix.e21 *= (1.0 - delta / 20.0); + matrix.e22 *= (1.0 - delta / 20.0); + + var widthNew = p.x * matrix.e11 + p.y * matrix.e12; + var heightNew = p.x * matrix.e21 + p.y * matrix.e22; + + matrix.e13 += (widthOld - widthNew); + matrix.e23 += (heightOld - heightNew); + + slides[activeSlide]["viewGroup"].setAttribute("transform", matrix.toAttribute()); + + return false; + } + + /** Function to project a point to screen coordinates. + * + * @param Point. + * @returns The point projected to screen coordinates. + */ + obj.projectCoords = function(pnt) + { + var matrix = slides[activeSlide]["element"].getScreenCTM(); + + if (slides[activeSlide]["viewGroup"]) + matrix = slides[activeSlide]["viewGroup"].getScreenCTM(); + + pnt = pnt.matrixTransform(matrix.inverse()); + return pnt; + } + + /** Function to convert a rectangle into a point matrix. + * + * The function figures out a rectangle that encloses the rectangle given and has the same width/height ratio as the viewport of the presentation. + * + * @param rect Rectangle. + * @return The upper left, upper right and lower right corner of the rectangle in a point matrix. + */ + obj.rectToMatrix = function(rect) + { + rectWidth = rect.getBBox().width; + rectHeight = rect.getBBox().height; + rectX = rect.getBBox().x; + rectY = rect.getBBox().y; + rectXcorr = 0; + rectYcorr = 0; + + scaleX = WIDTH / rectWidth; + scaleY = HEIGHT / rectHeight; + + if (scaleX > scaleY) + { + scaleX = scaleY; + rectXcorr -= (WIDTH / scaleX - rectWidth) / 2; + rectWidth = WIDTH / scaleX; + } + else + { + scaleY = scaleX; + rectYcorr -= (HEIGHT / scaleY - rectHeight) / 2; + rectHeight = HEIGHT / scaleY; + } + + if (rect.transform.baseVal.numberOfItems < 1) + { + mRectTrans = (new matrixSVG()).fromElements(1, 0, 0, 0, 1, 0, 0, 0, 1); + } + else + { + mRectTrans = (new matrixSVG()).fromSVGMatrix(rect.transform.baseVal.consolidate().matrix); + } + + newBasePoints = (new matrixSVG()).fromElements(rectX, rectX, rectX, rectY, rectY, rectY, 1, 1, 1); + newVectors = (new matrixSVG()).fromElements(rectXcorr, rectXcorr + rectWidth, rectXcorr + rectWidth, rectYcorr, rectYcorr, rectYcorr + rectHeight, 0, 0, 0); + + return mRectTrans.mult(newBasePoints.add(newVectors)); + } + + /** Function to return a transformation matrix from a point matrix. + * + * @param mPoints The point matrix. + * @returns The transformation matrix. + */ + obj.pointMatrixToTransformation = function(mPoints) + { + mPointsOld = (new matrixSVG()).fromElements(0, WIDTH, WIDTH, 0, 0, HEIGHT, 1, 1, 1); + + return mPointsOld.mult(mPoints.inv()); + } +} + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/jessyink_mouse_handler__--mouseSetting__noclick.out b/share/extensions/tests/data/refs/jessyink_mouse_handler__--mouseSetting__noclick.out new file mode 100644 index 0000000..c21263c --- /dev/null +++ b/share/extensions/tests/data/refs/jessyink_mouse_handler__--mouseSetting__noclick.out @@ -0,0 +1,94 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + +// Copyright 2008, 2009 Hannes Hochreiner +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see http://www.gnu.org/licenses/. + +// Add event listener for initialisation. +document.addEventListener("DOMContentLoaded", jessyInk_core_mouseHandler_noclick_init, false); + +/** Initialisation function. + * + * This function looks for the objects of the appropriate sub-type and hands them to another function that will add the required methods. + */ +function jessyInk_core_mouseHandler_noclick_init() +{ + var elems = document.getElementsByTagNameNS("https://launchpad.net/jessyink", "mousehandler"); + + for (var counter = 0; counter < elems.length; counter++) + { + if (elems[counter].getAttributeNS("https://launchpad.net/jessyink", "subtype") == "jessyInk_core_mouseHandler_noclick") + jessyInk_core_mouseHandler_noclick(elems[counter]); + } +} + +/** Function to initialise an object. + * + * @param obj Object to be initialised. + */ +function jessyInk_core_mouseHandler_noclick(obj) +{ + /** Function supplying a custom mouse handler. + * + * @returns A dictionary containing the new mouse handler functions. + */ + obj.getMouseHandler = function () + { + var handlerDictio = new Object(); + + handlerDictio[SLIDE_MODE] = new Object(); + handlerDictio[SLIDE_MODE][MOUSE_DOWN] = null; + + return handlerDictio; + } +} + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/jessyink_summary.out b/share/extensions/tests/data/refs/jessyink_summary.out new file mode 100644 index 0000000..0c30d07 --- /dev/null +++ b/share/extensions/tests/data/refs/jessyink_summary.out @@ -0,0 +1,10 @@ +JessyInk script version 1.5.5 installed. + +Slide 1: + Layer name: Slide3 + +Slide 2: + Layer name: Slide2 + +Slide 3: + Layer name: Slide1 diff --git a/share/extensions/tests/data/refs/jessyink_transitions__--layerName__Slide2.out b/share/extensions/tests/data/refs/jessyink_transitions__--layerName__Slide2.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/jessyink_uninstall.out b/share/extensions/tests/data/refs/jessyink_uninstall.out new file mode 100644 index 0000000..f3d83ab --- /dev/null +++ b/share/extensions/tests/data/refs/jessyink_uninstall.out @@ -0,0 +1,39 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/jessyink_video.out b/share/extensions/tests/data/refs/jessyink_video.out new file mode 100644 index 0000000..664de1f --- /dev/null +++ b/share/extensions/tests/data/refs/jessyink_video.out @@ -0,0 +1,61 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + <replace this text with the url of the movie> + + + + + + + JessyInk video element + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/jessyink_view__--id__r3__--viewOrder__1.out b/share/extensions/tests/data/refs/jessyink_view__--id__r3__--viewOrder__1.out new file mode 100644 index 0000000..dd07df6 --- /dev/null +++ b/share/extensions/tests/data/refs/jessyink_view__--id__r3__--viewOrder__1.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/jitternodes__--id__p1__--dist__gaussian__--end__false.out b/share/extensions/tests/data/refs/jitternodes__--id__p1__--dist__gaussian__--end__false.out new file mode 100644 index 0000000..523c51f --- /dev/null +++ b/share/extensions/tests/data/refs/jitternodes__--id__p1__--dist__gaussian__--end__false.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/jitternodes__--id__p1__--dist__lognorm__--radiusx__100.out b/share/extensions/tests/data/refs/jitternodes__--id__p1__--dist__lognorm__--radiusx__100.out new file mode 100644 index 0000000..6aca453 --- /dev/null +++ b/share/extensions/tests/data/refs/jitternodes__--id__p1__--dist__lognorm__--radiusx__100.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/jitternodes__--id__p1__--dist__pareto__--radiusy__100.out b/share/extensions/tests/data/refs/jitternodes__--id__p1__--dist__pareto__--radiusy__100.out new file mode 100644 index 0000000..8c38359 --- /dev/null +++ b/share/extensions/tests/data/refs/jitternodes__--id__p1__--dist__pareto__--radiusy__100.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/jitternodes__--id__p1__--dist__uniform__--ctrl__false.out b/share/extensions/tests/data/refs/jitternodes__--id__p1__--dist__uniform__--ctrl__false.out new file mode 100644 index 0000000..f6425d2 --- /dev/null +++ b/share/extensions/tests/data/refs/jitternodes__--id__p1__--dist__uniform__--ctrl__false.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/layer2png.out b/share/extensions/tests/data/refs/layer2png.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/layer2png__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/layer2png__--id__p1__--id__r3.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/layers2svgfont.out b/share/extensions/tests/data/refs/layers2svgfont.out new file mode 100644 index 0000000..dcfd9f4 --- /dev/null +++ b/share/extensions/tests/data/refs/layers2svgfont.out @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/lindenmayer.out b/share/extensions/tests/data/refs/lindenmayer.out new file mode 100644 index 0000000..8c2ec7d --- /dev/null +++ b/share/extensions/tests/data/refs/lindenmayer.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/lindenmayer__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/lindenmayer__--id__p1__--id__r3.out new file mode 100644 index 0000000..8c2ec7d --- /dev/null +++ b/share/extensions/tests/data/refs/lindenmayer__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/lorem_ipsum.out b/share/extensions/tests/data/refs/lorem_ipsum.out new file mode 100644 index 0000000..c4cccd8 --- /dev/null +++ b/share/extensions/tests/data/refs/lorem_ipsum.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + +Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam molestie nisl at metus. Mauris ac massa vestibulum nisl facilisis viverra. Aliquam justo lectus, iaculis a, auctor sed, congue in, nisl. Sed quis elit. Mauris sed nulla quis nisi interdum tempor. Proin dolor sapien, adipiscing id, sagittis eu, molestie viverra, mauris. Integer tempus malesuada pede. Maecenas rhoncus rhoncus ipsum. Mauris ac massa vestibulum nisl facilisis viverra. Suspendisse fermentum. Phasellus magna sem, vulputate eget, ornare sed, dignissim sit amet, pede. Nam id neque. Nulla blandit justo a metus. Nam laoreet dui sed magna. Vivamus posuere, ante eu tempor dictum, felis nibh facilisis sem, eu auctor metus nulla non lorem. Phasellus at purus sed purus cursus iaculis. Vivamus feugiat. Integer fringilla. Praesent a eros. Aliquam sed erat. Nam a nunc. Maecenas rhoncus rhoncus ipsum. Praesent scelerisque. Proin lectus orci, venenatis pharetra, egestas id, tincidunt vel, eros. Etiam cursus purus interdum libero. Nam massa turpis, nonummy et, consectetuer id, placerat ac, ante. Suspendisse fermentum. Sed at turpis vitae velit euismod aliquet. Aliquam justo lectus, iaculis a, auctor sed, congue in, nisl. Nam massa turpis, nonummy et, consectetuer id, placerat ac, ante. Quisque arcu ante, cursus in, ornare quis, viverra ut, justo. Nam a nunc. Duis sem velit, ultrices et, fermentum auctor, rhoncus ut, ligula. Aliquam metus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse potenti. Mauris tincidunt aliquam ante. Mauris et pede. In consectetuer, lorem eu lobortis egestas, velit odio imperdiet eros, sit amet sagittis nunc mi ac neque. Curabitur risus urna, placerat et, luctus pulvinar, auctor vel, orci. Donec ut purus. Integer accumsan. Morbi volutpat. Suspendisse potenti. Vivamus posuere, ante eu tempor dictum, felis nibh facilisis sem, eu auctor metus nulla non lorem. Aenean luctus vulputate turpis. Pellentesque convallis dolor vel libero. Quisque arcu ante, cursus in, ornare quis, viverra ut, justo. Etiam non neque ac mi vestibulum placerat. Mauris urna sem, suscipit vitae, dignissim id, ultrices sed, nunc. Phasellus at purus sed purus cursus iaculis. Phasellus lacinia iaculis mi. Mauris tempor ultrices justo. Nam massa turpis, nonummy et, consectetuer id, placerat ac, ante. Nam id neque. Fusce venenatis ligula in pede. Nullam libero nunc, tristique eget, laoreet eu, sagittis id, ante. Suspendisse lectus. Phasellus nisi metus, tempus sit amet, ultrices ac, porta nec, felis. Pellentesque suscipit accumsan massa. Aliquam metus. Cras ac enim vel dui vestibulum suscipit. In hac habitasse platea dictumst. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus eu orci. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Suspendisse potenti. Integer accumsan. Nam id neque. Donec at diam a tellus dignissim vestibulum. Donec ut urna. Pellentesque ac turpis. Phasellus hendrerit. Nulla sed lacus. Aenean justo ipsum, luctus ut, volutpat laoreet, vehicula in, libero. Morbi turpis arcu, egestas congue, condimentum quis, tristique cursus, leo. Nam pharetra. Nulla sagittis condimentum ligula. Nam malesuada sapien eu nibh. Sed a lorem ut est tincidunt consectetuer. Sed dolor. Donec ut purus. Phasellus hendrerit. Mauris et pede. Donec diam eros, tristique sit amet, pretium vel, pellentesque ut, neque. Aenean turpis ipsum, rhoncus vitae, posuere vitae, euismod sed, ligula. Nulla sagittis condimentum ligula. Aliquam imperdiet lobortis metus. Integer accumsan. Donec interdum vestibulum libero. Curabitur risus urna, placerat et, luctus pulvinar, auctor vel, orci. Donec interdum vestibulum libero. Nam molestie nisl at metus. In consectetuer, lorem eu lobortis egestas, velit odio imperdiet eros, sit amet sagittis nunc mi ac neque. Phasellus magna sem, vulputate eget, ornare sed, dignissim sit amet, pede. Aliquam imperdiet lobortis metus. Nam consectetuer mollis dolor. Curabitur lorem risus, sagittis vitae, accumsan a, iaculis id, metus. Integer tempus malesuada pede. Nam laoreet dui sed magna. Donec sit amet enim. Mauris et dolor. Ut eu metus id lectus vestibulum ultrices. Quisque aliquam, nulla ac scelerisque convallis, nisi ligula sagittis risus, at nonummy arcu urna pulvinar nibh. Pellentesque sit amet dui vel justo gravida auctor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. Fusce venenatis ligula in pede. Suspendisse potenti. Quisque vehicula porttitor odio. Praesent a lacus vitae turpis consequat semper. Praesent scelerisque. Pellentesque viverra dolor non nunc. Aliquam justo lectus, iaculis a, auctor sed, congue in, nisl. Mauris sed nulla quis nisi interdum tempor. Aliquam velit dui, commodo quis, porttitor eget, convallis et, nisi. Donec ut urna. Morbi turpis arcu, egestas congue, condimentum quis, tristique cursus, leo. \ No newline at end of file diff --git a/share/extensions/tests/data/refs/markers_strokepaint__--tab____custom____--id__dimension.out b/share/extensions/tests/data/refs/markers_strokepaint__--tab____custom____--id__dimension.out new file mode 100644 index 0000000..0a85c09 --- /dev/null +++ b/share/extensions/tests/data/refs/markers_strokepaint__--tab____custom____--id__dimension.out @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/markers_strokepaint__--tab____object____--id__dimension.out b/share/extensions/tests/data/refs/markers_strokepaint__--tab____object____--id__dimension.out new file mode 100644 index 0000000..070a6e8 --- /dev/null +++ b/share/extensions/tests/data/refs/markers_strokepaint__--tab____object____--id__dimension.out @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/measure__--id__p1__--id__p2.out b/share/extensions/tests/data/refs/measure__--id__p1__--id__p2.out new file mode 100644 index 0000000..179cbf8 --- /dev/null +++ b/share/extensions/tests/data/refs/measure__--id__p1__--id__p2.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + 123.48 mm141.14 mm + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/measure__--method__presets__--presetFormat__FT_bbox__--id__p2.out b/share/extensions/tests/data/refs/measure__--method__presets__--presetFormat__FT_bbox__--id__p2.out new file mode 100644 index 0000000..ec3aa85 --- /dev/null +++ b/share/extensions/tests/data/refs/measure__--method__presets__--presetFormat__FT_bbox__--id__p2.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + 141.14 mm + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/measure__--method__presets__--presetFormat__FT_start__--id__p1.out b/share/extensions/tests/data/refs/measure__--method__presets__--presetFormat__FT_start__--id__p1.out new file mode 100644 index 0000000..7b61804 --- /dev/null +++ b/share/extensions/tests/data/refs/measure__--method__presets__--presetFormat__FT_start__--id__p1.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + 123.48 mm + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/measure__--method__presets__--presetFormat__TaP_end__--id__p2.out b/share/extensions/tests/data/refs/measure__--method__presets__--presetFormat__TaP_end__--id__p2.out new file mode 100644 index 0000000..6ef1b7c --- /dev/null +++ b/share/extensions/tests/data/refs/measure__--method__presets__--presetFormat__TaP_end__--id__p2.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + 141.14 mm + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/measure__--method__presets__--presetFormat__TaP_start__--id__p1.out b/share/extensions/tests/data/refs/measure__--method__presets__--presetFormat__TaP_start__--id__p1.out new file mode 100644 index 0000000..da1b409 --- /dev/null +++ b/share/extensions/tests/data/refs/measure__--method__presets__--presetFormat__TaP_start__--id__p1.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + 123.48 mm + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/measure__--type__area__--id__p1.out b/share/extensions/tests/data/refs/measure__--type__area__--id__p1.out new file mode 100644 index 0000000..65d9a94 --- /dev/null +++ b/share/extensions/tests/data/refs/measure__--type__area__--id__p1.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + 0.0 mm2 + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + diff --git a/share/extensions/tests/data/refs/measure__--type__cofm__--id__c3.out b/share/extensions/tests/data/refs/measure__--type__cofm__--id__c3.out new file mode 100644 index 0000000..9deca59 --- /dev/null +++ b/share/extensions/tests/data/refs/measure__--type__cofm__--id__c3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/media_zip.out b/share/extensions/tests/data/refs/media_zip.out new file mode 100644 index 0000000..03215c1 Binary files /dev/null and b/share/extensions/tests/data/refs/media_zip.out differ diff --git a/share/extensions/tests/data/refs/merge_styles__--id__c2__--id__c3.out b/share/extensions/tests/data/refs/merge_styles__--id__c2__--id__c3.out new file mode 100644 index 0000000..13c7bbc --- /dev/null +++ b/share/extensions/tests/data/refs/merge_styles__--id__c2__--id__c3.out @@ -0,0 +1,46 @@ + + + + + + +.css5815 { + display:inline; + stroke-width:16; +} + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/motion__--id__c3__--id__p2.out b/share/extensions/tests/data/refs/motion__--id__c3__--id__p2.out new file mode 100644 index 0000000..aff7cc7 --- /dev/null +++ b/share/extensions/tests/data/refs/motion__--id__c3__--id__p2.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/new_glyph_layer.out b/share/extensions/tests/data/refs/new_glyph_layer.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/new_glyph_layer__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/new_glyph_layer__--id__p1__--id__r3.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/next_glyph_layer.out b/share/extensions/tests/data/refs/next_glyph_layer.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/next_glyph_layer__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/next_glyph_layer__--id__p1__--id__r3.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/nicechart.out b/share/extensions/tests/data/refs/nicechart.out new file mode 100644 index 0000000..ecf7516 --- /dev/null +++ b/share/extensions/tests/data/refs/nicechart.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/nicechart__--file__DAT_DIR__io__nicechart_01__csv.out b/share/extensions/tests/data/refs/nicechart__--file__DAT_DIR__io__nicechart_01__csv.out new file mode 100644 index 0000000..3374868 --- /dev/null +++ b/share/extensions/tests/data/refs/nicechart__--file__DAT_DIR__io__nicechart_01__csv.out @@ -0,0 +1,13 @@ + + + + + + image/svg+xml + + + + + + +JanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember1978 \ No newline at end of file diff --git a/share/extensions/tests/data/refs/nicechart__--file__DAT_DIR__io__nicechart_01__csv__--type__pie.out b/share/extensions/tests/data/refs/nicechart__--file__DAT_DIR__io__nicechart_01__csv__--type__pie.out new file mode 100644 index 0000000..5510547 --- /dev/null +++ b/share/extensions/tests/data/refs/nicechart__--file__DAT_DIR__io__nicechart_01__csv__--type__pie.out @@ -0,0 +1,13 @@ + + + + + + image/svg+xml + + + + + + +JanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember1978 \ No newline at end of file diff --git a/share/extensions/tests/data/refs/nicechart__--file__DAT_DIR__io__nicechart_01__csv__--type__pie_abs.out b/share/extensions/tests/data/refs/nicechart__--file__DAT_DIR__io__nicechart_01__csv__--type__pie_abs.out new file mode 100644 index 0000000..541c4bb --- /dev/null +++ b/share/extensions/tests/data/refs/nicechart__--file__DAT_DIR__io__nicechart_01__csv__--type__pie_abs.out @@ -0,0 +1,13 @@ + + + + + + image/svg+xml + + + + + + +JanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember1978 \ No newline at end of file diff --git a/share/extensions/tests/data/refs/nicechart__--file__DAT_DIR__io__nicechart_01__csv__--type__stbar.out b/share/extensions/tests/data/refs/nicechart__--file__DAT_DIR__io__nicechart_01__csv__--type__stbar.out new file mode 100644 index 0000000..d7fe426 --- /dev/null +++ b/share/extensions/tests/data/refs/nicechart__--file__DAT_DIR__io__nicechart_01__csv__--type__stbar.out @@ -0,0 +1,13 @@ + + + + + + image/svg+xml + + + + + + +JanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember1978 \ No newline at end of file diff --git a/share/extensions/tests/data/refs/nicechart__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/nicechart__--id__p1__--id__r3.out new file mode 100644 index 0000000..5e7b9f7 --- /dev/null +++ b/share/extensions/tests/data/refs/nicechart__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/output_scour.out b/share/extensions/tests/data/refs/output_scour.out new file mode 100644 index 0000000..6b54e20 --- /dev/null +++ b/share/extensions/tests/data/refs/output_scour.out @@ -0,0 +1,40 @@ + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps + UPPER + Multi linetextFOO + + Grouped + text + + + + + + + diff --git a/share/extensions/tests/data/refs/param_curves.out b/share/extensions/tests/data/refs/param_curves.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/param_curves__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/param_curves__--id__p1__--id__r3.out new file mode 100644 index 0000000..c5acfe7 --- /dev/null +++ b/share/extensions/tests/data/refs/param_curves__--id__p1__--id__r3.out @@ -0,0 +1,40 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/path_envelope__--id__obj__--id__envelope.out b/share/extensions/tests/data/refs/path_envelope__--id__obj__--id__envelope.out new file mode 100644 index 0000000..37c35bc --- /dev/null +++ b/share/extensions/tests/data/refs/path_envelope__--id__obj__--id__envelope.out @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/path_envelope__--id__text__--id__envelope.out b/share/extensions/tests/data/refs/path_envelope__--id__text__--id__envelope.out new file mode 100644 index 0000000..d82aee7 --- /dev/null +++ b/share/extensions/tests/data/refs/path_envelope__--id__text__--id__envelope.out @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/path_mesh_m2p__--id__mesh1__--mode__faces.out b/share/extensions/tests/data/refs/path_mesh_m2p__--id__mesh1__--mode__faces.out new file mode 100644 index 0000000..ea1b992 --- /dev/null +++ b/share/extensions/tests/data/refs/path_mesh_m2p__--id__mesh1__--mode__faces.out @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/path_mesh_m2p__--id__mesh1__--mode__gridlines.out b/share/extensions/tests/data/refs/path_mesh_m2p__--id__mesh1__--mode__gridlines.out new file mode 100644 index 0000000..3500bba --- /dev/null +++ b/share/extensions/tests/data/refs/path_mesh_m2p__--id__mesh1__--mode__gridlines.out @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/path_mesh_m2p__--id__mesh1__--mode__meshpatches.out b/share/extensions/tests/data/refs/path_mesh_m2p__--id__mesh1__--mode__meshpatches.out new file mode 100644 index 0000000..da2a30b --- /dev/null +++ b/share/extensions/tests/data/refs/path_mesh_m2p__--id__mesh1__--mode__meshpatches.out @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/path_mesh_m2p__--id__mesh1__--mode__outline.out b/share/extensions/tests/data/refs/path_mesh_m2p__--id__mesh1__--mode__outline.out new file mode 100644 index 0000000..1a27ecb --- /dev/null +++ b/share/extensions/tests/data/refs/path_mesh_m2p__--id__mesh1__--mode__outline.out @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/path_mesh_p2m__--id__path1__--id__path9.out b/share/extensions/tests/data/refs/path_mesh_p2m__--id__path1__--id__path9.out new file mode 100644 index 0000000..0742961 --- /dev/null +++ b/share/extensions/tests/data/refs/path_mesh_p2m__--id__path1__--id__path9.out @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/path_number_nodes__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/path_number_nodes__--id__p1__--id__r3.out new file mode 100644 index 0000000..c3b1c5d --- /dev/null +++ b/share/extensions/tests/data/refs/path_number_nodes__--id__p1__--id__r3.out @@ -0,0 +1,40 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + 1234 + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/path_to_absolute__--id__c1__--id__c2__--id__c3.out b/share/extensions/tests/data/refs/path_to_absolute__--id__c1__--id__c2__--id__c3.out new file mode 100644 index 0000000..e904237 --- /dev/null +++ b/share/extensions/tests/data/refs/path_to_absolute__--id__c1__--id__c2__--id__c3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/path_to_absolute__--id__p1__--id__p2__--id__s1__--id__u1.out b/share/extensions/tests/data/refs/path_to_absolute__--id__p1__--id__p2__--id__s1__--id__u1.out new file mode 100644 index 0000000..8fbffb2 --- /dev/null +++ b/share/extensions/tests/data/refs/path_to_absolute__--id__p1__--id__p2__--id__s1__--id__u1.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/path_to_absolute__--id__r1__--id__r2__--id__r3__--id__slicerect.out b/share/extensions/tests/data/refs/path_to_absolute__--id__r1__--id__r2__--id__r3__--id__slicerect.out new file mode 100644 index 0000000..33edebd --- /dev/null +++ b/share/extensions/tests/data/refs/path_to_absolute__--id__r1__--id__r2__--id__r3__--id__slicerect.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/path_to_absolute__--id__r1__--id__r2__--id__r3__--id__slicerect1.out b/share/extensions/tests/data/refs/path_to_absolute__--id__r1__--id__r2__--id__r3__--id__slicerect1.out new file mode 100644 index 0000000..72e29de --- /dev/null +++ b/share/extensions/tests/data/refs/path_to_absolute__--id__r1__--id__r2__--id__r3__--id__slicerect1.out @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/pathalongpath__--copymode__Single__--id__p1__--id__p2.out b/share/extensions/tests/data/refs/pathalongpath__--copymode__Single__--id__p1__--id__p2.out new file mode 100644 index 0000000..c727c6f --- /dev/null +++ b/share/extensions/tests/data/refs/pathalongpath__--copymode__Single__--id__p1__--id__p2.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/pathscatter__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/pathscatter__--id__p1__--id__r3.out new file mode 100644 index 0000000..0b4f8e2 --- /dev/null +++ b/share/extensions/tests/data/refs/pathscatter__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/pdflatex__cceb2358b6829feda6d763508a98eaf1.out b/share/extensions/tests/data/refs/pdflatex__cceb2358b6829feda6d763508a98eaf1.out new file mode 100644 index 0000000..f8de97b --- /dev/null +++ b/share/extensions/tests/data/refs/pdflatex__cceb2358b6829feda6d763508a98eaf1.out @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/perfectboundcover.out b/share/extensions/tests/data/refs/perfectboundcover.out new file mode 100644 index 0000000..df88e21 --- /dev/null +++ b/share/extensions/tests/data/refs/perfectboundcover.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/perspective__--id__obj__--id__envelope.out b/share/extensions/tests/data/refs/perspective__--id__obj__--id__envelope.out new file mode 100644 index 0000000..df50e03 --- /dev/null +++ b/share/extensions/tests/data/refs/perspective__--id__obj__--id__envelope.out @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/perspective__--id__p1__--id__p2.out b/share/extensions/tests/data/refs/perspective__--id__p1__--id__p2.out new file mode 100644 index 0000000..b7497dc --- /dev/null +++ b/share/extensions/tests/data/refs/perspective__--id__p1__--id__p2.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/perspective__--id__text__--id__envelope.out b/share/extensions/tests/data/refs/perspective__--id__text__--id__envelope.out new file mode 100644 index 0000000..5093cdd --- /dev/null +++ b/share/extensions/tests/data/refs/perspective__--id__text__--id__envelope.out @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/pixelsnap__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/pixelsnap__--id__p1__--id__r3.out new file mode 100644 index 0000000..ad90237 --- /dev/null +++ b/share/extensions/tests/data/refs/pixelsnap__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/plotter__--serialPort____test__.out b/share/extensions/tests/data/refs/plotter__--serialPort____test__.out new file mode 100644 index 0000000..e5b1337 --- /dev/null +++ b/share/extensions/tests/data/refs/plotter__--serialPort____test__.out @@ -0,0 +1,35 @@ +IN +FS24 +VS20 +PU +SP1 +PU0,0 +PD0,90 +PU5966,2652 +PD5971,2651,5975,2647,5976,2641,5975,2636,5971,2633,5966,2632,5966,0,5961,1,5957,5,5956,10,3824,10,3825,15,3829,19,3834,20,3834,2652,3839,2651,3843,2647,3844,2642,5976,2642,5975,2637,5971,2633,5966,2632,5966,2592 +PU5479,7938 +PD5474,7939,5470,7943,5469,7948,5470,7953,5474,7957,5478,7957,5477,7997,5476,7997,5472,8037,5471,8036,5464,8075,5463,8075,5453,8112,5452,8112,5439,8149,5439,8148,5423,8184,5405,8218,5404,8217,5384,8250,5361,8281,5361,8280,5336,8310,5335,8309,5308,8337,5308,8336,5279,8362,5248,8385,5247,8385,5214,8406,5214,8405,5180,8425,5179,8424,5143,8441,5143,8440,5105,8454,5105,8453,5067,8464,5067,8463,5029,8471,5028,8470,4990,8476,4990,8475,4951,8477,4951,8476,4913,8476,4913,8475,4874,8472,4874,8471,4836,8465,4837,8464,4799,8455,4763,8443,4763,8442,4727,8428,4727,8427,4692,8411,4693,8410,4659,8390,4660,8390,4627,8368,4628,8367,4597,8343,4597,8342,4568,8315,4569,8314,4541,8285,4542,8285,4517,8254,4518,8253,4496,8221,4497,8221,4477,8187,4478,8187,4461,8152,4461,8151,4447,8116,4448,8115,4436,8079,4437,8078,4428,8041,4429,8041,4423,8003,4420,7964,4421,7964,4420,7926,4421,7926,4423,7887,4424,7887,4429,7849,4430,7849,4438,7811,4439,7811,4450,7773,4464,7736,4465,7736,4481,7700,4482,7700,4501,7665,4502,7666,4523,7633,4524,7633,4548,7603,4574,7574,4574,7575,4602,7548,4603,7548,4632,7524,4664,7502,4697,7482,4697,7483,4731,7465,4732,7466,4767,7450,4767,7451,4804,7438,4804,7439,4842,7429,4842,7430,4880,7422,4880,7423,4920,7419,4959,7418,4959,7419,5014,7422,5013,7423,5066,7431,5066,7432,5117,7445,5116,7446,5165,7463,5164,7464,5211,7487,5210,7487,5254,7514,5253,7515,5294,7545,5293,7546,5331,7580,5330,7581,5365,7618,5364,7619,5394,7660,5393,7660,5420,7704,5419,7704,5441,7751,5458,7800,5457,7800,5470,7851,5469,7851,5477,7903,5476,7903,5479,7957,5478,7957,5477,7997,5476,7997 +PU5478,5312 +PD5478,5312,5477,5391,5472,5470,5465,5547,5464,5547,5454,5622,5441,5695,5425,5766,5407,5834,5387,5899,5386,5899,5364,5961,5363,5961,5338,6020,5311,6075,5310,6075,5282,6126,5281,6126,5250,6173,5217,6216,5216,6215,5182,6254,5181,6253,5145,6286,5144,6285,5107,6313,5106,6312,5068,6334,5067,6333,5029,6349,5029,6348,4990,6358,4990,6356,4951,6361,4951,6359,4913,6358,4913,6357,4874,6350,4875,6349,4837,6337,4837,6335,4800,6318,4800,6317,4764,6293,4728,6264,4729,6263,4694,6230,4695,6229,4661,6190,4662,6190,4630,6145,4599,6096,4600,6095,4571,6041,4544,5982,4520,5920,4498,5856,4499,5855,4479,5788,4480,5788,4463,5718,4449,5647,4449,5646,4438,5573,4429,5498,4430,5498,4424,5422,4421,5346,4420,5268,4421,5268,4423,5191,4428,5114,4429,5114,4437,5037,4448,4962,4449,4962,4462,4887,4463,4887,4479,4814,4480,4815,4499,4745,4499,4746,4521,4680,4545,4618,4546,4619,4571,4561,4572,4561,4599,4507,4600,4508,4629,4458,4630,4458,4661,4413,4662,4414,4695,4374,4729,4339,4730,4339,4765,4309,4766,4310,4803,4284,4803,4285,4841,4265,4841,4266,4880,4252,4880,4253,4919,4244,4920,4246,4959,4243,4959,4244,4987,4245,4987,4246,5013,4250,5013,4251,5040,4258,5040,4259,5066,4268,5065,4269,5091,4281,5090,4282,5116,4296,5115,4297,5140,4313,5139,4314,5163,4333,5186,4354,5186,4355,5209,4378,5208,4379,5230,4404,5252,4432,5251,4432,5292,4493,5291,4494,5328,4562,5362,4638,5361,4638,5392,4719,5391,4720,5418,4807,5417,4807,5439,4899,5439,4900,5457,4997,5456,4997,5469,5098,5477,5203,5476,5203,5479,5312,5478,5312,5478,5352 +PU4655,1257 +PD4650,1256,4649,1256,4615,1306,4615,1307,4583,1362,4584,1362,4554,1422,4555,1422,4528,1486,4528,1487,4504,1554,4505,1554,4483,1625,4484,1625,4465,1699,4466,1699,4450,1775,4451,1775,4438,1854,4429,1934,4423,2016,4420,2099,4421,2099,4421,2182,4425,2266,4432,2350,4443,2433,4457,2514,4474,2592,4494,2667,4495,2667,4517,2737,4542,2803,4543,2803,4570,2865,4571,2865,4600,2922,4601,2922,4632,2975,4633,2974,4667,3022,4667,3021,4703,3064,4703,3063,4741,3100,4741,3099,4780,3130,4780,3129,4820,3154,4821,3153,4862,3171,4862,3170,4904,3182,4905,3181,4948,3186,4948,3184,4991,3183,4990,3181,5033,3173,5032,3171,5074,3156,5073,3155,5114,3134,5113,3133,5152,3105,5151,3104,5189,3071,5188,3070,5225,3031,5224,3031,5259,2986,5258,2986,5291,2936,5290,2936,5321,2881,5349,2821,5375,2757,5375,2756,5398,2688,5419,2615,5437,2539,5437,2538,5452,2458,5464,2376,5472,2293,5477,2209,5479,2126,5477,2043,5472,1961,5464,1880,5453,1800,5439,1723,5438,1723,5422,1647,5421,1648,5401,1575,5378,1505,5378,1506,5352,1439,5352,1440,5324,1377,5323,1378,5292,1319,5292,1320,5258,1266,5254,1270,5253,1275,5255,1280,5259,1284,5260,1284,4946,2136,4942,2133,4940,2128,4940,2123,4944,2119,4946,2117,4652,1238,4647,1241,4645,1246,4646,1251,4649,1255,4649,1256,4627,1289 +PU3356,8485 +PD3353,8481,3352,8476,3354,8471,3355,8470,2297,7411,2301,7409,2307,7409,2311,7411,3369,6353,3364,6350,3359,6350,3355,6353,2297,5295 +PU3355,4236 +PD3352,4241,3352,4243,3307,4241,3307,4240,3254,4235,3187,4225,3107,4209,3107,4208,3017,4185,3018,4184,2970,4169,2971,4169,2922,4151,2873,4130,2824,4107,2824,4106,2774,4080,2775,4079,2726,4050,2726,4049,2678,4016,2631,3979,2631,3978,2585,3938,2586,3937,2542,3892,2543,3892,2501,3843,2502,3842,2463,3789,2464,3788,2428,3730,2429,3730,2397,3667,2398,3666,2369,3598,2370,3598,2346,3525,2347,3525,2327,3446,2328,3446,2314,3361,2315,3361,2306,3271,2303,3175,2304,3175,2307,3082,2308,3082,2317,3000,2324,2964,2332,2930,2333,2930,2342,2899,2352,2870,2353,2870,2364,2843,2365,2843,2378,2819,2392,2797,2393,2797,2407,2777,2408,2777,2423,2759,2424,2760,2440,2743,2441,2744,2458,2729,2459,2729,2477,2716,2478,2717,2516,2695,2517,2696,2558,2680,2559,2681,2603,2669,2603,2670,2648,2662,2648,2663,2696,2658,2696,2659,2744,2656,2744,2657,2843,2656,2942,2655,2942,2654,2990,2652,2990,2651,3037,2647,3037,2646,3083,2638,3082,2637,3126,2625,3126,2624,3167,2608,3167,2607,3205,2585,3205,2584,3223,2571,3222,2570,3240,2555,3239,2555,3256,2538,3255,2537,3271,2519,3270,2519,3285,2498,3284,2498,3298,2475,3297,2475,3310,2450,3309,2450,3320,2423,3330,2394,3339,2362,3338,2362,3346,2328,3345,2328,3352,2291,3351,2291,3360,2210,3359,2210,3362,2117,3359,2021,3358,2021,3349,1930,3348,1931,3334,1846,3333,1846,3314,1768,3313,1768,3289,1695,3261,1627,3260,1627,3228,1564,3227,1564,3191,1506,3191,1507,3152,1453,3151,1454,3110,1405,3066,1360,3065,1361,3020,1320,3019,1321,2972,1284,2923,1251,2923,1252,2874,1222,2824,1196,2774,1173,2774,1174,2725,1153,2725,1154,2676,1136,2629,1121,2629,1122,2539,1098,2539,1099,2459,1083,2391,1074,2339,1069,2339,1070,2294,1068 +PU292,6943 +PD293,6949,297,6952,302,6954,304,6954,390,7434,384,7433,381,7431,34,7774,39,7776,44,7776,49,7773,51,7769,51,7768,534,7834,532,7839,529,7842,748,8277,752,8274,754,8269,752,8264,749,8260,748,8260,960,7821,964,7824,966,7828,1448,7754,1446,7750,1441,7746,1436,7746,1431,7749,1079,7411,1084,7409,1088,7408,1167,6927,1161,6928,1157,6931,1155,6936,1156,6941,1156,6942,726,7172,725,7167,726,7163,293,6939,292,6944,294,6950,298,6953,303,6954,304,6954,311,6993 +PU272,4837 +PD272,4837,358,5317,353,5316,349,5314,3,5657,7,5660,13,5660,17,5657,20,5652,20,5651,503,5718,501,5723,497,5725,716,6161,720,6157,722,6152,721,6147,717,6143,716,6143,929,5704,933,5708,934,5712,1416,5638,1414,5633,1409,5630,1404,5629,1399,5632,1047,5295,1052,5292,1056,5292,1135,4811,1130,4811,1125,4814,1123,4819,1124,4825,695,5055,693,5050,695,5046,261,4823,260,4828,262,4833,266,4836,271,4837,272,4837,279,4876 +PU8793,5312 +PD8798,5309,8801,5305,8801,5299,8798,5295,8794,5292,8791,5292,8791,4551,8786,4552,8782,4556,8781,4561,8047,4561,8048,4566,8052,4570,8057,4571,8057,5312,8062,5310,8066,5306,8067,5302,8801,5302,8800,5297,8796,5293,8791,5292,8791,5252 +PU7595,8467 +PD7595,8467,7595,7408,7590,7410,7587,7414,7585,7418,6527,7418,6528,7423,6532,7427,6537,7428,6537,8487,6542,8485,6546,8481,6547,8477,7605,8477,7604,8472,7600,8468,7595,8467,7595,8427 +PU7595,6350 +PD7595,6350,7595,4233,7590,4235,7587,4239,7585,4243,6527,4243,6528,4248,6532,4252,6537,4253,6537,6370,6542,6369,6546,6365,6547,6360,7605,6360,7604,6355,7600,6351,7595,6350,7595,6310 +PU7595,2699 +PD7595,2699,7595,1534,7593,1487,7592,1487,7586,1441,7585,1441,7575,1396,7561,1352,7560,1353,7543,1311,7542,1311,7521,1271,7521,1272,7497,1234,7496,1235,7468,1200,7437,1169,7437,1170,7404,1142,7404,1143,7369,1119,7368,1120,7332,1100,7332,1101,7294,1085,7293,1086,7254,1075,7254,1076,7214,1069,7214,1070,7173,1068,6939,1068,6939,1069,6899,1071,6899,1072,6859,1079,6859,1080,6820,1092,6820,1093,6782,1108,6783,1109,6746,1129,6747,1130,6712,1154,6713,1155,6680,1183,6681,1183,6651,1215,6652,1216,6624,1250,6625,1251,6601,1289,6602,1289,6581,1329,6582,1329,6565,1371,6565,1372,6552,1415,6553,1415,6543,1461,6544,1461,6538,1507,6539,1507,6537,1554,6537,2719,6539,2766,6540,2766,6546,2812,6547,2812,6557,2857,6558,2857,6571,2901,6572,2901,6589,2943,6590,2942,6611,2982,6612,2982,6636,3019,6637,3019,6664,3054,6665,3053,6695,3085,6696,3084,6728,3112,6729,3111,6763,3135,6764,3134,6800,3154,6801,3153,6839,3168,6839,3167,6878,3179,6878,3177,6918,3184,6918,3183,6959,3186,6959,3185,7193,3185,7193,3184,7234,3182,7234,3181,7274,3174,7274,3173,7313,3162,7312,3161,7350,3145,7350,3144,7386,3124,7385,3123,7420,3099,7419,3099,7452,3071,7451,3070,7482,3038,7481,3038,7508,3003,7507,3002,7531,2965,7531,2964,7551,2924,7568,2882,7567,2882,7580,2838,7589,2793,7595,2746,7594,2746,7596,2699,7595,2699,7595,2659 +PU0,0 +SP0 +IN + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/plotter__--serialPort____test____--commandLanguage__DMPL.out b/share/extensions/tests/data/refs/plotter__--serialPort____test____--commandLanguage__DMPL.out new file mode 100644 index 0000000..88033f1 --- /dev/null +++ b/share/extensions/tests/data/refs/plotter__--serialPort____test____--commandLanguage__DMPL.out @@ -0,0 +1,2 @@ + +:HAL0V20EC1U,P1,U0,0,D0,90,U5966,2652,D5971,2651,5975,2647,5976,2641,5975,2636,5971,2633,5966,2632,5966,0,5961,1,5957,5,5956,10,3824,10,3825,15,3829,19,3834,20,3834,2652,3839,2651,3843,2647,3844,2642,5976,2642,5975,2637,5971,2633,5966,2632,5966,2592,U5479,7938,D5474,7939,5470,7943,5469,7948,5470,7953,5474,7957,5478,7957,5477,7997,5476,7997,5472,8037,5471,8036,5464,8075,5463,8075,5453,8112,5452,8112,5439,8149,5439,8148,5423,8184,5405,8218,5404,8217,5384,8250,5361,8281,5361,8280,5336,8310,5335,8309,5308,8337,5308,8336,5279,8362,5248,8385,5247,8385,5214,8406,5214,8405,5180,8425,5179,8424,5143,8441,5143,8440,5105,8454,5105,8453,5067,8464,5067,8463,5029,8471,5028,8470,4990,8476,4990,8475,4951,8477,4951,8476,4913,8476,4913,8475,4874,8472,4874,8471,4836,8465,4837,8464,4799,8455,4763,8443,4763,8442,4727,8428,4727,8427,4692,8411,4693,8410,4659,8390,4660,8390,4627,8368,4628,8367,4597,8343,4597,8342,4568,8315,4569,8314,4541,8285,4542,8285,4517,8254,4518,8253,4496,8221,4497,8221,4477,8187,4478,8187,4461,8152,4461,8151,4447,8116,4448,8115,4436,8079,4437,8078,4428,8041,4429,8041,4423,8003,4420,7964,4421,7964,4420,7926,4421,7926,4423,7887,4424,7887,4429,7849,4430,7849,4438,7811,4439,7811,4450,7773,4464,7736,4465,7736,4481,7700,4482,7700,4501,7665,4502,7666,4523,7633,4524,7633,4548,7603,4574,7574,4574,7575,4602,7548,4603,7548,4632,7524,4664,7502,4697,7482,4697,7483,4731,7465,4732,7466,4767,7450,4767,7451,4804,7438,4804,7439,4842,7429,4842,7430,4880,7422,4880,7423,4920,7419,4959,7418,4959,7419,5014,7422,5013,7423,5066,7431,5066,7432,5117,7445,5116,7446,5165,7463,5164,7464,5211,7487,5210,7487,5254,7514,5253,7515,5294,7545,5293,7546,5331,7580,5330,7581,5365,7618,5364,7619,5394,7660,5393,7660,5420,7704,5419,7704,5441,7751,5458,7800,5457,7800,5470,7851,5469,7851,5477,7903,5476,7903,5479,7957,5478,7957,5477,7997,5476,7997,U5478,5312,D5478,5312,5477,5391,5472,5470,5465,5547,5464,5547,5454,5622,5441,5695,5425,5766,5407,5834,5387,5899,5386,5899,5364,5961,5363,5961,5338,6020,5311,6075,5310,6075,5282,6126,5281,6126,5250,6173,5217,6216,5216,6215,5182,6254,5181,6253,5145,6286,5144,6285,5107,6313,5106,6312,5068,6334,5067,6333,5029,6349,5029,6348,4990,6358,4990,6356,4951,6361,4951,6359,4913,6358,4913,6357,4874,6350,4875,6349,4837,6337,4837,6335,4800,6318,4800,6317,4764,6293,4728,6264,4729,6263,4694,6230,4695,6229,4661,6190,4662,6190,4630,6145,4599,6096,4600,6095,4571,6041,4544,5982,4520,5920,4498,5856,4499,5855,4479,5788,4480,5788,4463,5718,4449,5647,4449,5646,4438,5573,4429,5498,4430,5498,4424,5422,4421,5346,4420,5268,4421,5268,4423,5191,4428,5114,4429,5114,4437,5037,4448,4962,4449,4962,4462,4887,4463,4887,4479,4814,4480,4815,4499,4745,4499,4746,4521,4680,4545,4618,4546,4619,4571,4561,4572,4561,4599,4507,4600,4508,4629,4458,4630,4458,4661,4413,4662,4414,4695,4374,4729,4339,4730,4339,4765,4309,4766,4310,4803,4284,4803,4285,4841,4265,4841,4266,4880,4252,4880,4253,4919,4244,4920,4246,4959,4243,4959,4244,4987,4245,4987,4246,5013,4250,5013,4251,5040,4258,5040,4259,5066,4268,5065,4269,5091,4281,5090,4282,5116,4296,5115,4297,5140,4313,5139,4314,5163,4333,5186,4354,5186,4355,5209,4378,5208,4379,5230,4404,5252,4432,5251,4432,5292,4493,5291,4494,5328,4562,5362,4638,5361,4638,5392,4719,5391,4720,5418,4807,5417,4807,5439,4899,5439,4900,5457,4997,5456,4997,5469,5098,5477,5203,5476,5203,5479,5312,5478,5312,5478,5352,U4655,1257,D4650,1256,4649,1256,4615,1306,4615,1307,4583,1362,4584,1362,4554,1422,4555,1422,4528,1486,4528,1487,4504,1554,4505,1554,4483,1625,4484,1625,4465,1699,4466,1699,4450,1775,4451,1775,4438,1854,4429,1934,4423,2016,4420,2099,4421,2099,4421,2182,4425,2266,4432,2350,4443,2433,4457,2514,4474,2592,4494,2667,4495,2667,4517,2737,4542,2803,4543,2803,4570,2865,4571,2865,4600,2922,4601,2922,4632,2975,4633,2974,4667,3022,4667,3021,4703,3064,4703,3063,4741,3100,4741,3099,4780,3130,4780,3129,4820,3154,4821,3153,4862,3171,4862,3170,4904,3182,4905,3181,4948,3186,4948,3184,4991,3183,4990,3181,5033,3173,5032,3171,5074,3156,5073,3155,5114,3134,5113,3133,5152,3105,5151,3104,5189,3071,5188,3070,5225,3031,5224,3031,5259,2986,5258,2986,5291,2936,5290,2936,5321,2881,5349,2821,5375,2757,5375,2756,5398,2688,5419,2615,5437,2539,5437,2538,5452,2458,5464,2376,5472,2293,5477,2209,5479,2126,5477,2043,5472,1961,5464,1880,5453,1800,5439,1723,5438,1723,5422,1647,5421,1648,5401,1575,5378,1505,5378,1506,5352,1439,5352,1440,5324,1377,5323,1378,5292,1319,5292,1320,5258,1266,5254,1270,5253,1275,5255,1280,5259,1284,5260,1284,4946,2136,4942,2133,4940,2128,4940,2123,4944,2119,4946,2117,4652,1238,4647,1241,4645,1246,4646,1251,4649,1255,4649,1256,4627,1289,U3356,8485,D3353,8481,3352,8476,3354,8471,3355,8470,2297,7411,2301,7409,2307,7409,2311,7411,3369,6353,3364,6350,3359,6350,3355,6353,2297,5295,U3355,4236,D3352,4241,3352,4243,3307,4241,3307,4240,3254,4235,3187,4225,3107,4209,3107,4208,3017,4185,3018,4184,2970,4169,2971,4169,2922,4151,2873,4130,2824,4107,2824,4106,2774,4080,2775,4079,2726,4050,2726,4049,2678,4016,2631,3979,2631,3978,2585,3938,2586,3937,2542,3892,2543,3892,2501,3843,2502,3842,2463,3789,2464,3788,2428,3730,2429,3730,2397,3667,2398,3666,2369,3598,2370,3598,2346,3525,2347,3525,2327,3446,2328,3446,2314,3361,2315,3361,2306,3271,2303,3175,2304,3175,2307,3082,2308,3082,2317,3000,2324,2964,2332,2930,2333,2930,2342,2899,2352,2870,2353,2870,2364,2843,2365,2843,2378,2819,2392,2797,2393,2797,2407,2777,2408,2777,2423,2759,2424,2760,2440,2743,2441,2744,2458,2729,2459,2729,2477,2716,2478,2717,2516,2695,2517,2696,2558,2680,2559,2681,2603,2669,2603,2670,2648,2662,2648,2663,2696,2658,2696,2659,2744,2656,2744,2657,2843,2656,2942,2655,2942,2654,2990,2652,2990,2651,3037,2647,3037,2646,3083,2638,3082,2637,3126,2625,3126,2624,3167,2608,3167,2607,3205,2585,3205,2584,3223,2571,3222,2570,3240,2555,3239,2555,3256,2538,3255,2537,3271,2519,3270,2519,3285,2498,3284,2498,3298,2475,3297,2475,3310,2450,3309,2450,3320,2423,3330,2394,3339,2362,3338,2362,3346,2328,3345,2328,3352,2291,3351,2291,3360,2210,3359,2210,3362,2117,3359,2021,3358,2021,3349,1930,3348,1931,3334,1846,3333,1846,3314,1768,3313,1768,3289,1695,3261,1627,3260,1627,3228,1564,3227,1564,3191,1506,3191,1507,3152,1453,3151,1454,3110,1405,3066,1360,3065,1361,3020,1320,3019,1321,2972,1284,2923,1251,2923,1252,2874,1222,2824,1196,2774,1173,2774,1174,2725,1153,2725,1154,2676,1136,2629,1121,2629,1122,2539,1098,2539,1099,2459,1083,2391,1074,2339,1069,2339,1070,2294,1068,U292,6943,D293,6949,297,6952,302,6954,304,6954,390,7434,384,7433,381,7431,34,7774,39,7776,44,7776,49,7773,51,7769,51,7768,534,7834,532,7839,529,7842,748,8277,752,8274,754,8269,752,8264,749,8260,748,8260,960,7821,964,7824,966,7828,1448,7754,1446,7750,1441,7746,1436,7746,1431,7749,1079,7411,1084,7409,1088,7408,1167,6927,1161,6928,1157,6931,1155,6936,1156,6941,1156,6942,726,7172,725,7167,726,7163,293,6939,292,6944,294,6950,298,6953,303,6954,304,6954,311,6993,U272,4837,D272,4837,358,5317,353,5316,349,5314,3,5657,7,5660,13,5660,17,5657,20,5652,20,5651,503,5718,501,5723,497,5725,716,6161,720,6157,722,6152,721,6147,717,6143,716,6143,929,5704,933,5708,934,5712,1416,5638,1414,5633,1409,5630,1404,5629,1399,5632,1047,5295,1052,5292,1056,5292,1135,4811,1130,4811,1125,4814,1123,4819,1124,4825,695,5055,693,5050,695,5046,261,4823,260,4828,262,4833,266,4836,271,4837,272,4837,279,4876,U8793,5312,D8798,5309,8801,5305,8801,5299,8798,5295,8794,5292,8791,5292,8791,4551,8786,4552,8782,4556,8781,4561,8047,4561,8048,4566,8052,4570,8057,4571,8057,5312,8062,5310,8066,5306,8067,5302,8801,5302,8800,5297,8796,5293,8791,5292,8791,5252,U7595,8467,D7595,8467,7595,7408,7590,7410,7587,7414,7585,7418,6527,7418,6528,7423,6532,7427,6537,7428,6537,8487,6542,8485,6546,8481,6547,8477,7605,8477,7604,8472,7600,8468,7595,8467,7595,8427,U7595,6350,D7595,6350,7595,4233,7590,4235,7587,4239,7585,4243,6527,4243,6528,4248,6532,4252,6537,4253,6537,6370,6542,6369,6546,6365,6547,6360,7605,6360,7604,6355,7600,6351,7595,6350,7595,6310,U7595,2699,D7595,2699,7595,1534,7593,1487,7592,1487,7586,1441,7585,1441,7575,1396,7561,1352,7560,1353,7543,1311,7542,1311,7521,1271,7521,1272,7497,1234,7496,1235,7468,1200,7437,1169,7437,1170,7404,1142,7404,1143,7369,1119,7368,1120,7332,1100,7332,1101,7294,1085,7293,1086,7254,1075,7254,1076,7214,1069,7214,1070,7173,1068,6939,1068,6939,1069,6899,1071,6899,1072,6859,1079,6859,1080,6820,1092,6820,1093,6782,1108,6783,1109,6746,1129,6747,1130,6712,1154,6713,1155,6680,1183,6681,1183,6651,1215,6652,1216,6624,1250,6625,1251,6601,1289,6602,1289,6581,1329,6582,1329,6565,1371,6565,1372,6552,1415,6553,1415,6543,1461,6544,1461,6538,1507,6539,1507,6537,1554,6537,2719,6539,2766,6540,2766,6546,2812,6547,2812,6557,2857,6558,2857,6571,2901,6572,2901,6589,2943,6590,2942,6611,2982,6612,2982,6636,3019,6637,3019,6664,3054,6665,3053,6695,3085,6696,3084,6728,3112,6729,3111,6763,3135,6764,3134,6800,3154,6801,3153,6839,3168,6839,3167,6878,3179,6878,3177,6918,3184,6918,3183,6959,3186,6959,3185,7193,3185,7193,3184,7234,3182,7234,3181,7274,3174,7274,3173,7313,3162,7312,3161,7350,3145,7350,3144,7386,3124,7385,3123,7420,3099,7419,3099,7452,3071,7451,3070,7482,3038,7481,3038,7508,3003,7507,3002,7531,2965,7531,2964,7551,2924,7568,2882,7567,2882,7580,2838,7589,2793,7595,2746,7594,2746,7596,2699,7595,2699,7595,2659,P0,U0,0,Z \ No newline at end of file diff --git a/share/extensions/tests/data/refs/plotter__--serialPort____test____--commandLanguage__KNK.out b/share/extensions/tests/data/refs/plotter__--serialPort____test____--commandLanguage__KNK.out new file mode 100644 index 0000000..9457a75 --- /dev/null +++ b/share/extensions/tests/data/refs/plotter__--serialPort____test____--commandLanguage__KNK.out @@ -0,0 +1,34 @@ +ZG +FS24 +VS20 +PU +SP1 +PU0,0 +PD0,90 +PU5966,2652 +PD5971,2651,5975,2647,5976,2641,5975,2636,5971,2633,5966,2632,5966,0,5961,1,5957,5,5956,10,3824,10,3825,15,3829,19,3834,20,3834,2652,3839,2651,3843,2647,3844,2642,5976,2642,5975,2637,5971,2633,5966,2632,5966,2592 +PU5479,7938 +PD5474,7939,5470,7943,5469,7948,5470,7953,5474,7957,5478,7957,5477,7997,5476,7997,5472,8037,5471,8036,5464,8075,5463,8075,5453,8112,5452,8112,5439,8149,5439,8148,5423,8184,5405,8218,5404,8217,5384,8250,5361,8281,5361,8280,5336,8310,5335,8309,5308,8337,5308,8336,5279,8362,5248,8385,5247,8385,5214,8406,5214,8405,5180,8425,5179,8424,5143,8441,5143,8440,5105,8454,5105,8453,5067,8464,5067,8463,5029,8471,5028,8470,4990,8476,4990,8475,4951,8477,4951,8476,4913,8476,4913,8475,4874,8472,4874,8471,4836,8465,4837,8464,4799,8455,4763,8443,4763,8442,4727,8428,4727,8427,4692,8411,4693,8410,4659,8390,4660,8390,4627,8368,4628,8367,4597,8343,4597,8342,4568,8315,4569,8314,4541,8285,4542,8285,4517,8254,4518,8253,4496,8221,4497,8221,4477,8187,4478,8187,4461,8152,4461,8151,4447,8116,4448,8115,4436,8079,4437,8078,4428,8041,4429,8041,4423,8003,4420,7964,4421,7964,4420,7926,4421,7926,4423,7887,4424,7887,4429,7849,4430,7849,4438,7811,4439,7811,4450,7773,4464,7736,4465,7736,4481,7700,4482,7700,4501,7665,4502,7666,4523,7633,4524,7633,4548,7603,4574,7574,4574,7575,4602,7548,4603,7548,4632,7524,4664,7502,4697,7482,4697,7483,4731,7465,4732,7466,4767,7450,4767,7451,4804,7438,4804,7439,4842,7429,4842,7430,4880,7422,4880,7423,4920,7419,4959,7418,4959,7419,5014,7422,5013,7423,5066,7431,5066,7432,5117,7445,5116,7446,5165,7463,5164,7464,5211,7487,5210,7487,5254,7514,5253,7515,5294,7545,5293,7546,5331,7580,5330,7581,5365,7618,5364,7619,5394,7660,5393,7660,5420,7704,5419,7704,5441,7751,5458,7800,5457,7800,5470,7851,5469,7851,5477,7903,5476,7903,5479,7957,5478,7957,5477,7997,5476,7997 +PU5478,5312 +PD5478,5312,5477,5391,5472,5470,5465,5547,5464,5547,5454,5622,5441,5695,5425,5766,5407,5834,5387,5899,5386,5899,5364,5961,5363,5961,5338,6020,5311,6075,5310,6075,5282,6126,5281,6126,5250,6173,5217,6216,5216,6215,5182,6254,5181,6253,5145,6286,5144,6285,5107,6313,5106,6312,5068,6334,5067,6333,5029,6349,5029,6348,4990,6358,4990,6356,4951,6361,4951,6359,4913,6358,4913,6357,4874,6350,4875,6349,4837,6337,4837,6335,4800,6318,4800,6317,4764,6293,4728,6264,4729,6263,4694,6230,4695,6229,4661,6190,4662,6190,4630,6145,4599,6096,4600,6095,4571,6041,4544,5982,4520,5920,4498,5856,4499,5855,4479,5788,4480,5788,4463,5718,4449,5647,4449,5646,4438,5573,4429,5498,4430,5498,4424,5422,4421,5346,4420,5268,4421,5268,4423,5191,4428,5114,4429,5114,4437,5037,4448,4962,4449,4962,4462,4887,4463,4887,4479,4814,4480,4815,4499,4745,4499,4746,4521,4680,4545,4618,4546,4619,4571,4561,4572,4561,4599,4507,4600,4508,4629,4458,4630,4458,4661,4413,4662,4414,4695,4374,4729,4339,4730,4339,4765,4309,4766,4310,4803,4284,4803,4285,4841,4265,4841,4266,4880,4252,4880,4253,4919,4244,4920,4246,4959,4243,4959,4244,4987,4245,4987,4246,5013,4250,5013,4251,5040,4258,5040,4259,5066,4268,5065,4269,5091,4281,5090,4282,5116,4296,5115,4297,5140,4313,5139,4314,5163,4333,5186,4354,5186,4355,5209,4378,5208,4379,5230,4404,5252,4432,5251,4432,5292,4493,5291,4494,5328,4562,5362,4638,5361,4638,5392,4719,5391,4720,5418,4807,5417,4807,5439,4899,5439,4900,5457,4997,5456,4997,5469,5098,5477,5203,5476,5203,5479,5312,5478,5312,5478,5352 +PU4655,1257 +PD4650,1256,4649,1256,4615,1306,4615,1307,4583,1362,4584,1362,4554,1422,4555,1422,4528,1486,4528,1487,4504,1554,4505,1554,4483,1625,4484,1625,4465,1699,4466,1699,4450,1775,4451,1775,4438,1854,4429,1934,4423,2016,4420,2099,4421,2099,4421,2182,4425,2266,4432,2350,4443,2433,4457,2514,4474,2592,4494,2667,4495,2667,4517,2737,4542,2803,4543,2803,4570,2865,4571,2865,4600,2922,4601,2922,4632,2975,4633,2974,4667,3022,4667,3021,4703,3064,4703,3063,4741,3100,4741,3099,4780,3130,4780,3129,4820,3154,4821,3153,4862,3171,4862,3170,4904,3182,4905,3181,4948,3186,4948,3184,4991,3183,4990,3181,5033,3173,5032,3171,5074,3156,5073,3155,5114,3134,5113,3133,5152,3105,5151,3104,5189,3071,5188,3070,5225,3031,5224,3031,5259,2986,5258,2986,5291,2936,5290,2936,5321,2881,5349,2821,5375,2757,5375,2756,5398,2688,5419,2615,5437,2539,5437,2538,5452,2458,5464,2376,5472,2293,5477,2209,5479,2126,5477,2043,5472,1961,5464,1880,5453,1800,5439,1723,5438,1723,5422,1647,5421,1648,5401,1575,5378,1505,5378,1506,5352,1439,5352,1440,5324,1377,5323,1378,5292,1319,5292,1320,5258,1266,5254,1270,5253,1275,5255,1280,5259,1284,5260,1284,4946,2136,4942,2133,4940,2128,4940,2123,4944,2119,4946,2117,4652,1238,4647,1241,4645,1246,4646,1251,4649,1255,4649,1256,4627,1289 +PU3356,8485 +PD3353,8481,3352,8476,3354,8471,3355,8470,2297,7411,2301,7409,2307,7409,2311,7411,3369,6353,3364,6350,3359,6350,3355,6353,2297,5295 +PU3355,4236 +PD3352,4241,3352,4243,3307,4241,3307,4240,3254,4235,3187,4225,3107,4209,3107,4208,3017,4185,3018,4184,2970,4169,2971,4169,2922,4151,2873,4130,2824,4107,2824,4106,2774,4080,2775,4079,2726,4050,2726,4049,2678,4016,2631,3979,2631,3978,2585,3938,2586,3937,2542,3892,2543,3892,2501,3843,2502,3842,2463,3789,2464,3788,2428,3730,2429,3730,2397,3667,2398,3666,2369,3598,2370,3598,2346,3525,2347,3525,2327,3446,2328,3446,2314,3361,2315,3361,2306,3271,2303,3175,2304,3175,2307,3082,2308,3082,2317,3000,2324,2964,2332,2930,2333,2930,2342,2899,2352,2870,2353,2870,2364,2843,2365,2843,2378,2819,2392,2797,2393,2797,2407,2777,2408,2777,2423,2759,2424,2760,2440,2743,2441,2744,2458,2729,2459,2729,2477,2716,2478,2717,2516,2695,2517,2696,2558,2680,2559,2681,2603,2669,2603,2670,2648,2662,2648,2663,2696,2658,2696,2659,2744,2656,2744,2657,2843,2656,2942,2655,2942,2654,2990,2652,2990,2651,3037,2647,3037,2646,3083,2638,3082,2637,3126,2625,3126,2624,3167,2608,3167,2607,3205,2585,3205,2584,3223,2571,3222,2570,3240,2555,3239,2555,3256,2538,3255,2537,3271,2519,3270,2519,3285,2498,3284,2498,3298,2475,3297,2475,3310,2450,3309,2450,3320,2423,3330,2394,3339,2362,3338,2362,3346,2328,3345,2328,3352,2291,3351,2291,3360,2210,3359,2210,3362,2117,3359,2021,3358,2021,3349,1930,3348,1931,3334,1846,3333,1846,3314,1768,3313,1768,3289,1695,3261,1627,3260,1627,3228,1564,3227,1564,3191,1506,3191,1507,3152,1453,3151,1454,3110,1405,3066,1360,3065,1361,3020,1320,3019,1321,2972,1284,2923,1251,2923,1252,2874,1222,2824,1196,2774,1173,2774,1174,2725,1153,2725,1154,2676,1136,2629,1121,2629,1122,2539,1098,2539,1099,2459,1083,2391,1074,2339,1069,2339,1070,2294,1068 +PU292,6943 +PD293,6949,297,6952,302,6954,304,6954,390,7434,384,7433,381,7431,34,7774,39,7776,44,7776,49,7773,51,7769,51,7768,534,7834,532,7839,529,7842,748,8277,752,8274,754,8269,752,8264,749,8260,748,8260,960,7821,964,7824,966,7828,1448,7754,1446,7750,1441,7746,1436,7746,1431,7749,1079,7411,1084,7409,1088,7408,1167,6927,1161,6928,1157,6931,1155,6936,1156,6941,1156,6942,726,7172,725,7167,726,7163,293,6939,292,6944,294,6950,298,6953,303,6954,304,6954,311,6993 +PU272,4837 +PD272,4837,358,5317,353,5316,349,5314,3,5657,7,5660,13,5660,17,5657,20,5652,20,5651,503,5718,501,5723,497,5725,716,6161,720,6157,722,6152,721,6147,717,6143,716,6143,929,5704,933,5708,934,5712,1416,5638,1414,5633,1409,5630,1404,5629,1399,5632,1047,5295,1052,5292,1056,5292,1135,4811,1130,4811,1125,4814,1123,4819,1124,4825,695,5055,693,5050,695,5046,261,4823,260,4828,262,4833,266,4836,271,4837,272,4837,279,4876 +PU8793,5312 +PD8798,5309,8801,5305,8801,5299,8798,5295,8794,5292,8791,5292,8791,4551,8786,4552,8782,4556,8781,4561,8047,4561,8048,4566,8052,4570,8057,4571,8057,5312,8062,5310,8066,5306,8067,5302,8801,5302,8800,5297,8796,5293,8791,5292,8791,5252 +PU7595,8467 +PD7595,8467,7595,7408,7590,7410,7587,7414,7585,7418,6527,7418,6528,7423,6532,7427,6537,7428,6537,8487,6542,8485,6546,8481,6547,8477,7605,8477,7604,8472,7600,8468,7595,8467,7595,8427 +PU7595,6350 +PD7595,6350,7595,4233,7590,4235,7587,4239,7585,4243,6527,4243,6528,4248,6532,4252,6537,4253,6537,6370,6542,6369,6546,6365,6547,6360,7605,6360,7604,6355,7600,6351,7595,6350,7595,6310 +PU7595,2699 +PD7595,2699,7595,1534,7593,1487,7592,1487,7586,1441,7585,1441,7575,1396,7561,1352,7560,1353,7543,1311,7542,1311,7521,1271,7521,1272,7497,1234,7496,1235,7468,1200,7437,1169,7437,1170,7404,1142,7404,1143,7369,1119,7368,1120,7332,1100,7332,1101,7294,1085,7293,1086,7254,1075,7254,1076,7214,1069,7214,1070,7173,1068,6939,1068,6939,1069,6899,1071,6899,1072,6859,1079,6859,1080,6820,1092,6820,1093,6782,1108,6783,1109,6746,1129,6747,1130,6712,1154,6713,1155,6680,1183,6681,1183,6651,1215,6652,1216,6624,1250,6625,1251,6601,1289,6602,1289,6581,1329,6582,1329,6565,1371,6565,1372,6552,1415,6553,1415,6543,1461,6544,1461,6538,1507,6539,1507,6537,1554,6537,2719,6539,2766,6540,2766,6546,2812,6547,2812,6557,2857,6558,2857,6571,2901,6572,2901,6589,2943,6590,2942,6611,2982,6612,2982,6636,3019,6637,3019,6664,3054,6665,3053,6695,3085,6696,3084,6728,3112,6729,3111,6763,3135,6764,3134,6800,3154,6801,3153,6839,3168,6839,3167,6878,3179,6878,3177,6918,3184,6918,3183,6959,3186,6959,3185,7193,3185,7193,3184,7234,3182,7234,3181,7274,3174,7274,3173,7313,3162,7312,3161,7350,3145,7350,3144,7386,3124,7385,3123,7420,3099,7419,3099,7452,3071,7451,3070,7482,3038,7481,3038,7508,3003,7507,3002,7531,2965,7531,2964,7551,2924,7568,2882,7567,2882,7580,2838,7589,2793,7595,2746,7594,2746,7596,2699,7595,2699,7595,2659 +SP0 +PU0,0 +@ \ No newline at end of file diff --git a/share/extensions/tests/data/refs/plt_output.out b/share/extensions/tests/data/refs/plt_output.out new file mode 100644 index 0000000..b64aac8 --- /dev/null +++ b/share/extensions/tests/data/refs/plt_output.out @@ -0,0 +1 @@ +IN;PU7353,7293;PD10160,7293;PD10160,5019;PD7353,5019;PD7353,7293;PU2258,6209;PD2255,6151;PD2246,6095;PD2232,6041;PD2213,5989;PD2190,5940;PD2161,5893;PD2129,5850;PD2092,5810;PD2052,5773;PD2009,5741;PD1962,5713;PD1913,5689;PD1861,5670;PD1807,5656;PD1751,5647;PD1693,5644;PD1636,5647;PD1580,5656;PD1526,5670;PD1474,5689;PD1424,5713;PD1378,5741;PD1334,5773;PD1294,5810;PD1258,5850;PD1225,5893;PD1197,5940;PD1173,5989;PD1154,6041;PD1140,6095;PD1132,6151;PD1129,6209;PD1132,6267;PD1140,6323;PD1154,6377;PD1173,6429;PD1197,6478;PD1225,6524;PD1258,6568;PD1294,6608;PD1334,6644;PD1378,6677;PD1424,6705;PD1474,6729;PD1526,6748;PD1580,6762;PD1636,6770;PD1693,6773;PD1751,6770;PD1807,6762;PD1861,6748;PD1913,6729;PD1962,6705;PD2009,6677;PD2052,6644;PD2092,6608;PD2129,6568;PD2161,6524;PD2190,6478;PD2213,6429;PD2232,6377;PD2246,6323;PD2255,6267;PD2258,6209;PU5644,6209;PD5639,6151;PD5621,6095;PD5594,6041;PD5556,5989;PD5508,5940;PD5452,5893;PD5387,5850;PD5314,5810;PD5233,5773;PD5147,5741;PD5053,5713;PD4955,5689;PD4851,5670;PD4743,5656;PD4631,5647;PD4516,5644;PD4400,5647;PD4288,5656;PD4180,5670;PD4076,5689;PD3978,5713;PD3885,5741;PD3798,5773;PD3717,5810;PD3645,5850;PD3580,5893;PD3523,5940;PD3475,5989;PD3437,6041;PD3410,6095;PD3392,6151;PD3387,6209;PD3392,6267;PD3410,6323;PD3437,6377;PD3475,6429;PD3523,6478;PD3580,6524;PD3645,6568;PD3717,6608;PD3798,6644;PD3885,6677;PD3978,6705;PD4076,6729;PD4180,6748;PD4288,6762;PD4400,6770;PD4516,6773;PD4631,6770;PD4743,6762;PD4851,6748;PD4955,6729;PD5053,6705;PD5147,6677;PD5233,6644;PD5314,6608;PD5387,6568;PD5452,6524;PD5508,6478;PD5556,6429;PD5594,6377;PD5621,6323;PD5639,6267;PD5644,6209;PU8840,5895;PD7902,6209;PD8840,5895;PU1129,4516;PD2258,3387;PD3387,4516;PD4516,3387;PU5644,4516;PD5647,4467;PD5662,4339;PD5679,4254;PD5704,4158;PD5739,4056;PD5786,3951;PD5814,3898;PD5845,3846;PD5881,3794;PD5920,3744;PD5963,3695;PD6011,3648;PD6064,3604;PD6121,3563;PD6183,3525;PD6250,3491;PD6323,3461;PD6401,3435;PD6485,3415;PD6575,3399;PD6671,3390;PD6773,3387;PD6873,3390;PD6960,3399;PD7035,3415;PD7100,3435;PD7154,3461;PD7200,3491;PD7237,3525;PD7267,3563;PD7291,3604;PD7308,3648;PD7321,3695;PD7329,3744;PD7337,3846;PD7338,3951;PD7339,4056;PD7347,4158;PD7355,4207;PD7368,4254;PD7385,4298;PD7408,4339;PD7438,4377;PD7476,4411;PD7521,4441;PD7576,4467;PD7641,4488;PD7716,4503;PD7803,4512;PD7902,4516;PD8005,4512;PD8101,4503;PD8191,4488;PD8275,4467;PD8353,4441;PD8426,4411;PD8493,4377;PD8555,4339;PD8612,4298;PD8664,4254;PD8712,4207;PD8756,4158;PD8795,4108;PD8830,4056;PD8862,4004;PD8890,3951;PD8937,3846;PD8972,3744;PD8997,3648;PD9013,3563;PD9029,3435;PD9031,3387;PU2764,1251;PD2252,1343;PD1886,974;PD1815,1489;PD1351,1723;PD1819,1949;PD1898,2463;PD2258,2088;PD2771,2172;PD2525,1714;PD2764,1251;PU5022,1218;PD4510,1309;PD4144,940;PD4073,1455;PD3609,1689;PD4077,1915;PD4155,2429;PD4516,2054;PD5029,2138;PD4783,1680;PD5022,1218;PU1161,10281;PD1161,10231;PD1221,10231;PD1221,10281;PD1237,10281;PD1237,10160;PD1221,10160;PD1221,10217;PD1161,10217;PD1161,10160;PD1145,10160;PD1145,10281;PD1161,10281;PU1349,10202;PD1281,10202;PD1284,10188;PD1290,10178;PD1300,10172;PD1313,10170;PD1322,10171;PD1330,10172;PD1338,10175;PD1346,10179;PD1346,10165;PD1338,10162;PD1330,10159;PD1321,10158;PD1312,10158;PD1293,10161;PD1278,10170;PD1269,10185;PD1266,10204;PD1269,10224;PD1278,10240;PD1292,10249;PD1310,10253;PD1326,10250;PD1339,10241;PD1347,10227;PD1349,10209;PD1349,10202;PU1310,10240;PD1299,10238;PD1290,10233;PD1284,10225;PD1282,10213;PD1335,10213;PD1333,10224;PD1328,10233;PD1320,10238;PD1310,10240;PU1391,10286;PD1391,10160;PD1376,10160;PD1376,10286;PD1391,10286;PU1438,10286;PD1438,10160;PD1423,10160;PD1423,10286;PD1438,10286;PU1480,10205;PD1481,10191;PD1487,10180;PD1495,10173;PD1506,10170;PD1516,10173;PD1524,10180;PD1530,10191;PD1531,10205;PD1530,10220;PD1524,10231;PD1516,10238;PD1506,10240;PD1495,10238;PD1487,10231;PD1481,10220;PD1480,10205;PU1547,10205;PD1544,10185;PD1536,10170;PD1523,10161;PD1506,10158;PD1488,10161;PD1475,10170;PD1467,10185;PD1464,10205;PD1467,10225;PD1475,10240;PD1488,10250;PD1506,10253;PD1523,10250;PD1536,10240;PD1544,10225;PD1547,10205;PU1635,10281;PD1660,10179;PD1685,10281;PD1704,10281;PD1729,10179;PD1754,10281;PD1771,10281;PD1740,10160;PD1720,10160;PD1694,10265;PD1669,10160;PD1648,10160;PD1618,10281;PD1635,10281;PU1793,10205;PD1795,10191;PD1800,10180;PD1808,10173;PD1819,10170;PD1830,10173;PD1838,10180;PD1843,10191;PD1845,10205;PD1843,10220;PD1838,10231;PD1830,10238;PD1819,10240;PD1808,10238;PD1800,10231;PD1795,10220;PD1793,10205;PU1861,10205;PD1858,10185;PD1850,10170;PD1837,10161;PD1819,10158;PD1802,10161;PD1789,10170;PD1780,10185;PD1778,10205;PD1780,10225;PD1789,10240;PD1802,10250;PD1819,10253;PD1837,10250;PD1850,10240;PD1858,10225;PD1861,10205;PU1928,10239;PD1917,10237;PD1909,10231;PD1904,10221;PD1902,10208;PD1902,10160;PD1887,10160;PD1887,10251;PD1902,10251;PD1902,10236;PD1908,10244;PD1914,10249;PD1923,10252;PD1933,10253;PD1934,10253;PD1936,10253;PD1938,10252;PD1940,10252;PD1940,10237;PD1938,10238;PD1935,10239;PD1932,10239;PD1928,10239;PU1972,10286;PD1972,10160;PD1958,10160;PD1958,10286;PD1972,10286;PU2064,10286;PD2079,10286;PD2079,10160;PD2064,10160;PD2064,10174;PD2059,10167;PD2052,10162;PD2045,10159;PD2035,10158;PD2020,10161;PD2009,10171;PD2001,10186;PD1998,10205;PD2001,10224;PD2009,10240;PD2020,10249;PD2035,10253;PD2045,10252;PD2052,10249;PD2059,10244;PD2064,10237;PD2064,10286;PU2039,10170;PD2049,10172;PD2057,10179;PD2063,10191;PD2064,10205;PD2063,10220;PD2057,10231;PD2049,10238;PD2039,10240;PD2028,10238;PD2020,10231;PD2015,10220;PD2014,10205;PD2015,10191;PD2020,10179;PD2028,10172;PD2039,10170;PU4516,10306;PD5306,10306;PD5306,9523;PD4516,9523;PD4516,10306;PU2289,10281;PD2289,10207;PD2290,10191;PD2296,10179;PD2305,10173;PD2318,10171;PD2332,10173;PD2341,10179;PD2346,10191;PD2348,10207;PD2348,10281;PD2365,10281;PD2365,10205;PD2362,10185;PD2353,10170;PD2338,10161;PD2318,10158;PD2298,10161;PD2284,10170;PD2275,10185;PD2272,10205;PD2272,10281;PD2289,10281;PU2414,10222;PD2435,10222;PD2445,10223;PD2453,10228;PD2457,10235;PD2459,10245;PD2457,10254;PD2453,10261;PD2445,10266;PD2435,10267;PD2414,10267;PD2414,10222;PU2435,10281;PD2453,10278;PD2466,10272;PD2473,10260;PD2476,10245;PD2473,10229;PD2466,10218;PD2453,10211;PD2435,10209;PD2414,10209;PD2414,10160;PD2398,10160;PD2398,10281;PD2435,10281;PU2517,10222;PD2537,10222;PD2547,10223;PD2555,10228;PD2560,10235;PD2561,10245;PD2560,10254;PD2555,10261;PD2547,10266;PD2537,10267;PD2517,10267;PD2517,10222;PU2537,10281;PD2555,10278;PD2568,10272;PD2576,10260;PD2578,10245;PD2576,10229;PD2568,10218;PD2555,10211;PD2537,10209;PD2517,10209;PD2517,10160;PD2500,10160;PD2500,10281;PD2537,10281;PU2679,10281;PD2679,10267;PD2619,10267;PD2619,10231;PD2676,10231;PD2676,10217;PD2619,10217;PD2619,10174;PD2680,10174;PD2680,10160;PD2603,10160;PD2603,10281;PD2679,10281;PU2787,10193;PD2804,10160;PD2786,10160;PD2771,10191;PD2765,10201;PD2759,10207;PD2753,10210;PD2744,10211;PD2726,10211;PD2726,10160;PD2710,10160;PD2710,10281;PD2747,10281;PD2765,10279;PD2777,10272;PD2785,10261;PD2788,10246;PD2786,10236;PD2782,10227;PD2776,10221;PD2767,10217;PD2772,10214;PD2777,10209;PD2782,10202;PD2787,10193;PU2726,10224;PD2747,10224;PD2757,10226;PD2764,10230;PD2769,10237;PD2770,10246;PD2769,10255;PD2764,10262;PD2757,10266;PD2747,10267;PD2726,10267;PD2726,10224;PU3416,10247;PD3438,10188;PD3461,10247;PD3478,10247;PD3478,10160;PD3467,10160;PD3467,10236;PD3444,10177;PD3432,10177;PD3410,10236;PD3410,10160;PD3398,10160;PD3398,10247;PD3416,10247;PU3502,10225;PD3513,10225;PD3513,10186;PD3514,10178;PD3517,10172;PD3521,10169;PD3528,10168;PD3535,10169;PD3541,10173;PD3545,10180;PD3546,10188;PD3546,10225;PD3557,10225;PD3557,10160;PD3546,10160;PD3546,10170;PD3542,10165;PD3537,10161;PD3532,10159;PD3525,10158;PD3515,10160;PD3508,10165;PD3504,10174;PD3502,10186;PD3502,10225;PU3592,10251;PD3592,10160;PD3581,10160;PD3581,10251;PD3592,10251;PU3626,10225;PD3648,10225;PD3648,10217;PD3626,10217;PD3626,10182;PD3626,10175;PD3628,10171;PD3631,10170;PD3637,10169;PD3648,10169;PD3648,10160;PD3637,10160;PD3626,10161;PD3620,10165;PD3616,10171;PD3615,10182;PD3615,10217;PD3607,10217;PD3607,10225;PD3615,10225;PD3615,10244;PD3626,10244;PD3626,10225;PU3674,10225;PD3674,10160;PD3663,10160;PD3663,10225;PD3674,10225;PU3674,10251;PD3674,10237;PD3663,10237;PD3663,10251;PD3674,10251;PU3747,10251;PD3747,10160;PD3736,10160;PD3736,10251;PD3747,10251;PU3781,10225;PD3781,10160;PD3770,10160;PD3770,10225;PD3781,10225;PU3781,10251;PD3781,10237;PD3770,10237;PD3770,10251;PD3781,10251;PU3858,10160;PD3847,10160;PD3847,10199;PD3847,10207;PD3844,10213;PD3839,10216;PD3833,10218;PD3825,10216;PD3819,10212;PD3815,10205;PD3814,10197;PD3814,10160;PD3803,10160;PD3803,10225;PD3814,10225;PD3814,10215;PD3818,10220;PD3823,10224;PD3829,10226;PD3835,10227;PD3845,10225;PD3852,10220;PD3857,10211;PD3858,10199;PD3858,10160;PU3937,10190;PD3888,10190;PD3890,10180;PD3895,10173;PD3902,10169;PD3911,10167;PD3917,10168;PD3923,10169;PD3929,10171;PD3935,10173;PD3935,10163;PD3929,10161;PD3923,10160;PD3917,10159;PD3911,10158;PD3897,10161;PD3886,10167;PD3879,10178;PD3877,10192;PD3879,10206;PD3885,10217;PD3896,10225;PD3909,10227;PD3921,10225;PD3930,10218;PD3935,10208;PD3937,10195;PD3937,10190;PU3909,10218;PD3901,10217;PD3894,10213;PD3890,10207;PD3888,10198;PD3927,10199;PD3925,10206;PD3922,10213;PD3916,10217;PD3909,10218;PU3967,10225;PD3989,10225;PD3989,10217;PD3967,10217;PD3967,10182;PD3968,10175;PD3969,10171;PD3973,10170;PD3978,10169;PD3989,10169;PD3989,10160;PD3978,10160;PD3968,10161;PD3961,10165;PD3958,10171;PD3956,10182;PD3956,10217;PD3949,10217;PD3949,10225;PD3956,10225;PD3956,10244;PD3967,10244;PD3967,10225;PU4061,10190;PD4011,10190;PD4013,10180;PD4018,10173;PD4025,10169;PD4034,10167;PD4041,10168;PD4046,10169;PD4052,10171;PD4058,10173;PD4058,10163;PD4052,10161;PD4046,10160;PD4040,10159;PD4034,10158;PD4020,10161;PD4009,10167;PD4002,10178;PD4000,10192;PD4002,10206;PD4009,10217;PD4019,10225;PD4032,10227;PD4044,10225;PD4053,10218;PD4059,10208;PD4061,10195;PD4061,10190;PU4032,10218;PD4024,10217;PD4018,10213;PD4013,10207;PD4011,10198;PD4050,10199;PD4048,10206;PD4045,10213;PD4039,10217;PD4032,10218;PU4108,10194;PD4133,10160;PD4120,10160;PD4101,10186;PD4082,10160;PD4069,10160;PD4095,10194;PD4071,10225;PD4084,10225;PD4101,10202;PD4119,10225;PD4131,10225;PD4108,10194;PU4160,10225;PD4182,10225;PD4182,10217;PD4160,10217;PD4160,10182;PD4161,10175;PD4162,10171;PD4166,10170;PD4171,10169;PD4182,10169;PD4182,10160;PD4171,10160;PD4161,10161;PD4154,10165;PD4150,10171;PD4149,10182;PD4149,10217;PD4141,10217;PD4141,10225;PD4149,10225;PD4149,10244;PD4160,10244;PD4160,10225;PU4248,10247;PD4248,10237;PD4210,10237;PD4210,10212;PD4244,10212;PD4244,10202;PD4210,10202;PD4210,10160;PD4198,10160;PD4198,10247;PD4248,10247;PU4276,10203;PD4278,10189;PD4283,10177;PD4292,10170;PD4304,10168;PD4315,10170;PD4324,10177;PD4330,10189;PD4331,10203;PD4330,10218;PD4324,10230;PD4315,10237;PD4304,10239;PD4292,10237;PD4283,10230;PD4278,10218;PD4276,10203;PU4344,10203;PD4341,10185;PD4333,10171;PD4320,10161;PD4304,10158;PD4287,10161;PD4274,10171;PD4266,10185;PD4263,10203;PD4266,10222;PD4274,10236;PD4287,10246;PD4304,10249;PD4320,10246;PD4333,10236;PD4341,10222;PD4344,10203;PU4372,10203;PD4374,10189;PD4380,10177;PD4388,10170;PD4400,10168;PD4411,10170;PD4420,10177;PD4426,10189;PD4428,10203;PD4426,10218;PD4420,10230;PD4411,10237;PD4400,10239;PD4388,10237;PD4380,10230;PD4374,10218;PD4372,10203;PU4440,10203;PD4437,10185;PD4429,10171;PD4416,10161;PD4400,10158;PD4383,10161;PD4371,10171;PD4362,10185;PD4360,10203;PD4362,10222;PD4371,10236;PD4383,10246;PD4400,10249;PD4416,10246;PD4429,10236;PD4437,10222;PD4440,10203;PU5716,10196;PD5696,10196;PD5696,10206;PD5727,10206;PD5727,10168;PD5720,10164;PD5712,10161;PD5704,10159;PD5695,10158;PD5676,10161;PD5663,10170;PD5654,10185;PD5651,10203;PD5654,10222;PD5663,10237;PD5676,10246;PD5695,10249;PD5703,10248;PD5711,10247;PD5718,10244;PD5725,10240;PD5725,10228;PD5718,10233;PD5711,10236;PD5704,10238;PD5696,10239;PD5682,10237;PD5672,10230;PD5666,10219;PD5664,10203;PD5666,10188;PD5672,10177;PD5682,10170;PD5696,10168;PD5702,10168;PD5707,10169;PD5711,10170;PD5716,10172;PD5716,10196;PU5780,10217;PD5772,10216;PD5766,10211;PD5762,10204;PD5761,10194;PD5761,10160;PD5750,10160;PD5750,10225;PD5761,10225;PD5761,10215;PD5765,10220;PD5770,10224;PD5776,10226;PD5783,10227;PD5784,10227;PD5785,10227;PD5787,10227;PD5788,10226;PD5788,10215;PD5786,10216;PD5784,10217;PD5782,10217;PD5780,10217;PU5804,10193;PD5805,10182;PD5809,10174;PD5815,10169;PD5822,10167;PD5830,10169;PD5836,10174;PD5840,10182;PD5841,10193;PD5840,10203;PD5836,10211;PD5830,10216;PD5822,10218;PD5815,10216;PD5809,10211;PD5805,10203;PD5804,10193;PU5852,10193;PD5850,10178;PD5844,10167;PD5835,10161;PD5822,10158;PD5810,10161;PD5800,10167;PD5794,10178;PD5792,10193;PD5794,10207;PD5800,10218;PD5810,10225;PD5822,10227;PD5835,10225;PD5844,10218;PD5850,10207;PD5852,10193;PU5871,10225;PD5882,10225;PD5882,10186;PD5882,10178;PD5885,10172;PD5890,10169;PD5896,10168;PD5904,10169;PD5910,10173;PD5914,10180;PD5915,10188;PD5915,10225;PD5926,10225;PD5926,10160;PD5915,10160;PD5915,10170;PD5911,10165;PD5906,10161;PD5900,10159;PD5894,10158;PD5884,10160;PD5877,10165;PD5872,10174;PD5871,10186;PD5871,10225;PU5960,10135;PD5949,10135;PD5949,10225;PD5960,10225;PD5960,10215;PD5964,10221;PD5968,10224;PD5974,10226;PD5981,10227;PD5992,10225;PD6000,10217;PD6006,10207;PD6008,10193;PD6006,10179;PD6000,10168;PD5992,10161;PD5981,10158;PD5974,10159;PD5968,10161;PD5964,10165;PD5960,10170;PD5960,10135;PU5978,10218;PD5970,10216;PD5965,10211;PD5961,10203;PD5960,10193;PD5961,10182;PD5965,10174;PD5970,10169;PD5978,10167;PD5986,10169;PD5991,10174;PD5995,10182;PD5996,10193;PD5995,10203;PD5991,10211;PD5986,10216;PD5978,10218;PU6083,10190;PD6034,10190;PD6036,10180;PD6040,10173;PD6047,10169;PD6057,10167;PD6063,10168;PD6069,10169;PD6075,10171;PD6080,10173;PD6080,10163;PD6075,10161;PD6069,10160;PD6063,10159;PD6056,10158;PD6042,10161;PD6032,10167;PD6025,10178;PD6022,10192;PD6025,10206;PD6031,10217;PD6041,10225;PD6054,10227;PD6066,10225;PD6075,10218;PD6081,10208;PD6083,10195;PD6083,10190;PU6055,10218;PD6047,10217;PD6040,10213;PD6036,10207;PD6034,10198;PD6072,10199;PD6071,10206;PD6067,10213;PD6062,10217;PD6055,10218;PU6145,10251;PD6156,10251;PD6156,10160;PD6145,10160;PD6145,10170;PD6142,10165;PD6137,10161;PD6131,10159;PD6124,10158;PD6114,10161;PD6105,10168;PD6100,10179;PD6098,10193;PD6100,10207;PD6105,10217;PD6114,10225;PD6124,10227;PD6131,10226;PD6137,10224;PD6142,10221;PD6145,10215;PD6145,10251;PU6127,10167;PD6135,10169;PD6140,10174;PD6144,10182;PD6145,10193;PD6144,10203;PD6140,10211;PD6135,10216;PD6127,10218;PD6119,10216;PD6114,10211;PD6110,10203;PD6109,10193;PD6110,10182;PD6114,10174;PD6119,10169;PD6127,10167;PU5675,9912;PD5705,9912;PD5705,9900;PD5675,9900;PD5675,9851;PD5676,9842;PD5678,9837;PD5682,9835;PD5690,9834;PD5705,9834;PD5705,9821;PD5690,9821;PD5676,9823;PD5666,9828;PD5661,9837;PD5660,9851;PD5660,9900;PD5649,9900;PD5649,9912;PD5660,9912;PD5660,9938;PD5675,9938;PD5675,9912;PU5804,9863;PD5736,9863;PD5738,9850;PD5745,9840;PD5755,9834;PD5768,9832;PD5776,9832;PD5785,9834;PD5793,9836;PD5800,9840;PD5800,9826;PD5792,9823;PD5784,9821;PD5776,9819;PD5767,9819;PD5748,9822;PD5733,9832;PD5723,9846;PD5720,9866;PD5723,9886;PD5732,9901;PD5746,9911;PD5764,9914;PD5781,9911;PD5793,9902;PD5801,9888;PD5804,9870;PD5804,9863;PU5765,9901;PD5753,9900;PD5745,9894;PD5739,9886;PD5736,9875;PD5789,9875;PD5787,9886;PD5782,9894;PD5775,9900;PD5765,9901;PU5869,9868;PD5904,9821;PD5886,9821;PD5860,9857;PD5834,9821;PD5816,9821;PD5851,9869;PD5819,9912;PD5837,9912;PD5861,9880;PD5885,9912;PD5902,9912;PD5869,9868;PU5942,9912;PD5973,9912;PD5973,9900;PD5942,9900;PD5942,9851;PD5943,9842;PD5945,9837;PD5950,9835;PD5957,9834;PD5973,9834;PD5973,9821;PD5957,9821;PD5943,9823;PD5934,9828;PD5929,9837;PD5927,9851;PD5927,9900;PD5916,9900;PD5916,9912;PD5927,9912;PD5927,9938;PD5942,9938;PD5942,9912;PU1129,9031;PD2258,9031;PD2258,7902;PD1129,7902;PD1129,9031;PU3387,9031;PD5644,9031;PD5644,7902;PD3387,7902;PD3387,9031;PU7281,9031;PD8524,9031;PD8576,9029;PD8626,9022;PD8675,9011;PD8721,8997;PD8766,8978;PD8807,8956;PD8846,8931;PD8882,8902;PD8915,8871;PD8944,8837;PD8970,8801;PD8991,8762;PD9008,8722;PD9021,8680;PD9028,8636;PD9031,8591;PD9031,8342;PD9028,8297;PD9021,8253;PD9008,8211;PD8991,8171;PD8970,8132;PD8944,8096;PD8915,8062;PD8882,8031;PD8846,8003;PD8807,7977;PD8766,7955;PD8721,7937;PD8675,7922;PD8626,7911;PD8576,7904;PD8524,7902;PD7281,7902;PD7229,7904;PD7178,7911;PD7130,7922;PD7083,7937;PD7039,7955;PD6997,7977;PD6958,8003;PD6922,8031;PD6889,8062;PD6860,8096;PD6835,8132;PD6813,8171;PD6796,8211;PD6784,8253;PD6776,8297;PD6773,8342;PD6773,8591;PD6776,8636;PD6784,8680;PD6796,8722;PD6813,8762;PD6835,8801;PD6860,8837;PD6889,8871;PD6922,8902;PD6958,8931;PD6997,8956;PD7039,8978;PD7083,8997;PD7130,9011;PD7178,9022;PD7229,9029;PD7281,9031;PU; \ No newline at end of file diff --git a/share/extensions/tests/data/refs/polyhedron_3d__--show__edg__--obj__oct__--r1_ax__z__--r1_ang__45__--th__4.out b/share/extensions/tests/data/refs/polyhedron_3d__--show__edg__--obj__oct__--r1_ax__z__--r1_ang__45__--th__4.out new file mode 100644 index 0000000..1327760 --- /dev/null +++ b/share/extensions/tests/data/refs/polyhedron_3d__--show__edg__--obj__oct__--r1_ax__z__--r1_ang__45__--th__4.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/polyhedron_3d__--show__fce__--obj__cube__--r1_ax__x__--r1_ang__45__--r2_ax__y__--r2_ang__45.out b/share/extensions/tests/data/refs/polyhedron_3d__--show__fce__--obj__cube__--r1_ax__x__--r1_ang__45__--r2_ax__y__--r2_ang__45.out new file mode 100644 index 0000000..5b78bb8 --- /dev/null +++ b/share/extensions/tests/data/refs/polyhedron_3d__--show__fce__--obj__cube__--r1_ax__x__--r1_ang__45__--r2_ax__y__--r2_ang__45.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/polyhedron_3d__--show__fce__--obj__cube__--r1_ax__y__--r1_ang__45__--z_sort__cent.out b/share/extensions/tests/data/refs/polyhedron_3d__--show__fce__--obj__cube__--r1_ax__y__--r1_ang__45__--z_sort__cent.out new file mode 100644 index 0000000..703447a --- /dev/null +++ b/share/extensions/tests/data/refs/polyhedron_3d__--show__fce__--obj__cube__--r1_ax__y__--r1_ang__45__--z_sort__cent.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/polyhedron_3d__--show__fce__--obj__cube__--r1_ax__z__--r1_ang__45__--z_sort__max.out b/share/extensions/tests/data/refs/polyhedron_3d__--show__fce__--obj__cube__--r1_ax__z__--r1_ang__45__--z_sort__max.out new file mode 100644 index 0000000..a7e0a5d --- /dev/null +++ b/share/extensions/tests/data/refs/polyhedron_3d__--show__fce__--obj__cube__--r1_ax__z__--r1_ang__45__--z_sort__max.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/polyhedron_3d__--show__vtx__--obj__methane.out b/share/extensions/tests/data/refs/polyhedron_3d__--show__vtx__--obj__methane.out new file mode 100644 index 0000000..9870376 --- /dev/null +++ b/share/extensions/tests/data/refs/polyhedron_3d__--show__vtx__--obj__methane.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/polyhedron_3d__31c852a9dcfffc92123ff370cba34361.out b/share/extensions/tests/data/refs/polyhedron_3d__31c852a9dcfffc92123ff370cba34361.out new file mode 100644 index 0000000..dc24f34 --- /dev/null +++ b/share/extensions/tests/data/refs/polyhedron_3d__31c852a9dcfffc92123ff370cba34361.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + diff --git a/share/extensions/tests/data/refs/prepare_file_save_as.out b/share/extensions/tests/data/refs/prepare_file_save_as.out new file mode 100644 index 0000000..999f85f --- /dev/null +++ b/share/extensions/tests/data/refs/prepare_file_save_as.out @@ -0,0 +1,115 @@ + + + + + image/svg+xml + + + + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/previous_glyph_layer.out b/share/extensions/tests/data/refs/previous_glyph_layer.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/previous_glyph_layer__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/previous_glyph_layer__--id__p1__--id__r3.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/print_win32_vector.out b/share/extensions/tests/data/refs/print_win32_vector.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/print_win32_vector__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/print_win32_vector__--id__p1__--id__r3.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/printing_marks.out b/share/extensions/tests/data/refs/printing_marks.out new file mode 100644 index 0000000..f720f14 --- /dev/null +++ b/share/extensions/tests/data/refs/printing_marks.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/printing_marks__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/printing_marks__--id__p1__--id__r3.out new file mode 100644 index 0000000..f720f14 --- /dev/null +++ b/share/extensions/tests/data/refs/printing_marks__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/ps_input__test__eps.out b/share/extensions/tests/data/refs/ps_input__test__eps.out new file mode 100644 index 0000000..284919f --- /dev/null +++ b/share/extensions/tests/data/refs/ps_input__test__eps.out @@ -0,0 +1,81 @@ +%PDF-1.4 +%Çì¢ +5 0 obj +<> +stream +xœ]K1†÷œ‚ ô9C7 ÑqÑ1½"ÛÆÒ–ÂìÈ$ÈÍú[68]2®oØ¡±; ãë†W|SŠÎ‡`ù »ì›E²(¾VDAبd²„ÔÙ_ЃÔ{Ê5;Jª“§¨X ³;î:P¥°˜\2m¯¿]–9ĈT09/3ÂSŒ{—b»öþµ¹}²Q؆þÝ­Àão×;œÍ>ÇœAÌendstream +endobj +6 0 obj +171 +endobj +4 0 obj +<> +/Contents 5 0 R +>> +endobj +3 0 obj +<< /Type /Pages /Kids [ +4 0 R +] /Count 1 +>> +endobj +1 0 obj +<> +endobj +7 0 obj +<>endobj +8 0 obj +<> +endobj +9 0 obj +<>stream + + + + + +2019-04-26T21:40:29-04:00 +2019-04-26T21:40:29-04:00 +cairo 1.15.10 (http://cairographics.org) + +Untitled + + + + + +endstream +endobj +2 0 obj +<>endobj +xref +0 10 +0000000000 65535 f +0000000465 00000 n +0000002041 00000 n +0000000406 00000 n +0000000275 00000 n +0000000015 00000 n +0000000256 00000 n +0000000529 00000 n +0000000570 00000 n +0000000599 00000 n +trailer +<< /Size 10 /Root 1 0 R /Info 2 0 R +/ID [] +>> +startxref +2217 +%%EOF diff --git a/share/extensions/tests/data/refs/ps_input__test__ps.out b/share/extensions/tests/data/refs/ps_input__test__ps.out new file mode 100644 index 0000000..a85a26e Binary files /dev/null and b/share/extensions/tests/data/refs/ps_input__test__ps.out differ diff --git a/share/extensions/tests/data/refs/render_barcode__--type__Code93__--text__3332222.out b/share/extensions/tests/data/refs/render_barcode__--type__Code93__--text__3332222.out new file mode 100644 index 0000000..aa4ba53 --- /dev/null +++ b/share/extensions/tests/data/refs/render_barcode__--type__Code93__--text__3332222.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + 3332222 + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/render_barcode__--type__Ean2__--text__55.out b/share/extensions/tests/data/refs/render_barcode__--type__Ean2__--text__55.out new file mode 100644 index 0000000..5795ee5 --- /dev/null +++ b/share/extensions/tests/data/refs/render_barcode__--type__Ean2__--text__55.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + 5 5 + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/render_barcode__--type__Upce__--text__123456.out b/share/extensions/tests/data/refs/render_barcode__--type__Upce__--text__123456.out new file mode 100644 index 0000000..334fb2f --- /dev/null +++ b/share/extensions/tests/data/refs/render_barcode__--type__Upce__--text__123456.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + 0 123456 + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/render_barcode_datamatrix__--symbol__rect8x32__--text__1234Foo.out b/share/extensions/tests/data/refs/render_barcode_datamatrix__--symbol__rect8x32__--text__1234Foo.out new file mode 100644 index 0000000..febc9b6 --- /dev/null +++ b/share/extensions/tests/data/refs/render_barcode_datamatrix__--symbol__rect8x32__--text__1234Foo.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/render_barcode_datamatrix__--symbol__sq10.out b/share/extensions/tests/data/refs/render_barcode_datamatrix__--symbol__sq10.out new file mode 100644 index 0000000..b270ac6 --- /dev/null +++ b/share/extensions/tests/data/refs/render_barcode_datamatrix__--symbol__sq10.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/render_barcode_datamatrix__--symbol__sq144__--text__HelloTest.out b/share/extensions/tests/data/refs/render_barcode_datamatrix__--symbol__sq144__--text__HelloTest.out new file mode 100644 index 0000000..1bdb7da --- /dev/null +++ b/share/extensions/tests/data/refs/render_barcode_datamatrix__--symbol__sq144__--text__HelloTest.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/render_barcode_datamatrix__--symbol__sq96__--text__Sunshine.out b/share/extensions/tests/data/refs/render_barcode_datamatrix__--symbol__sq96__--text__Sunshine.out new file mode 100644 index 0000000..be4c31f --- /dev/null +++ b/share/extensions/tests/data/refs/render_barcode_datamatrix__--symbol__sq96__--text__Sunshine.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/render_barcode_qrcode__--text__0123456789__--typenumber__0.out b/share/extensions/tests/data/refs/render_barcode_qrcode__--text__0123456789__--typenumber__0.out new file mode 100644 index 0000000..b9eaf54 --- /dev/null +++ b/share/extensions/tests/data/refs/render_barcode_qrcode__--text__0123456789__--typenumber__0.out @@ -0,0 +1,2 @@ + + diff --git a/share/extensions/tests/data/refs/render_barcode_qrcode__--text__Blue__Front__Yard__--typenumber__3__--correctionlevel__1.out b/share/extensions/tests/data/refs/render_barcode_qrcode__--text__Blue__Front__Yard__--typenumber__3__--correctionlevel__1.out new file mode 100644 index 0000000..732616a --- /dev/null +++ b/share/extensions/tests/data/refs/render_barcode_qrcode__--text__Blue__Front__Yard__--typenumber__3__--correctionlevel__1.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/render_barcode_qrcode__--text__BreadRolls__--typenumber__2__--encoding__utf8.out b/share/extensions/tests/data/refs/render_barcode_qrcode__--text__BreadRolls__--typenumber__2__--encoding__utf8.out new file mode 100644 index 0000000..a84e328 --- /dev/null +++ b/share/extensions/tests/data/refs/render_barcode_qrcode__--text__BreadRolls__--typenumber__2__--encoding__utf8.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/render_barcode_qrcode__--text__ThingOne__--drawtype__symbol__--correctionlevel__2__--symbolid__AirTransportation_Inv.out b/share/extensions/tests/data/refs/render_barcode_qrcode__--text__ThingOne__--drawtype__symbol__--correctionlevel__2__--symbolid__AirTransportation_Inv.out new file mode 100644 index 0000000..50d5c0d --- /dev/null +++ b/share/extensions/tests/data/refs/render_barcode_qrcode__--text__ThingOne__--drawtype__symbol__--correctionlevel__2__--symbolid__AirTransportation_Inv.out @@ -0,0 +1,12 @@ + + + + Air Transportation + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/render_barcode_qrcode__--text__Waterfall__--typenumber__1__--drawtype__circle.out b/share/extensions/tests/data/refs/render_barcode_qrcode__--text__Waterfall__--typenumber__1__--drawtype__circle.out new file mode 100644 index 0000000..84f55c6 --- /dev/null +++ b/share/extensions/tests/data/refs/render_barcode_qrcode__--text__Waterfall__--typenumber__1__--drawtype__circle.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/render_barcode_qrcode__--text__groupid__--groupid__testid.out b/share/extensions/tests/data/refs/render_barcode_qrcode__--text__groupid__--groupid__testid.out new file mode 100644 index 0000000..238624b --- /dev/null +++ b/share/extensions/tests/data/refs/render_barcode_qrcode__--text__groupid__--groupid__testid.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/render_gear_rack.out b/share/extensions/tests/data/refs/render_gear_rack.out new file mode 100644 index 0000000..3c89abc --- /dev/null +++ b/share/extensions/tests/data/refs/render_gear_rack.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/render_gear_rack__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/render_gear_rack__--id__p1__--id__r3.out new file mode 100644 index 0000000..3c89abc --- /dev/null +++ b/share/extensions/tests/data/refs/render_gear_rack__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/render_gears.out b/share/extensions/tests/data/refs/render_gears.out new file mode 100644 index 0000000..f6cead9 --- /dev/null +++ b/share/extensions/tests/data/refs/render_gears.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/render_gears__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/render_gears__--id__p1__--id__r3.out new file mode 100644 index 0000000..f6cead9 --- /dev/null +++ b/share/extensions/tests/data/refs/render_gears__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/replace_font__--action__find_replace__--fr_find__sans-serif__--fr_replace__monospace.out b/share/extensions/tests/data/refs/replace_font__--action__find_replace__--fr_find__sans-serif__--fr_replace__monospace.out new file mode 100644 index 0000000..30b778d --- /dev/null +++ b/share/extensions/tests/data/refs/replace_font__--action__find_replace__--fr_find__sans-serif__--fr_replace__monospace.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/replace_font__--action__list_only.out b/share/extensions/tests/data/refs/replace_font__--action__list_only.out new file mode 100644 index 0000000..5883134 --- /dev/null +++ b/share/extensions/tests/data/refs/replace_font__--action__list_only.out @@ -0,0 +1 @@ +Found the following font only: sans-serif diff --git a/share/extensions/tests/data/refs/restack__--tab__positional__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/restack__--tab__positional__--id__p1__--id__r3.out new file mode 100644 index 0000000..7604bd6 --- /dev/null +++ b/share/extensions/tests/data/refs/restack__--tab__positional__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/restack__--tab__z_order__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/restack__--tab__z_order__--id__p1__--id__r3.out new file mode 100644 index 0000000..7604bd6 --- /dev/null +++ b/share/extensions/tests/data/refs/restack__--tab__z_order__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/rtree.out b/share/extensions/tests/data/refs/rtree.out new file mode 100644 index 0000000..eeef67a --- /dev/null +++ b/share/extensions/tests/data/refs/rtree.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/rubberstretch__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/rubberstretch__--id__p1__--id__r3.out new file mode 100644 index 0000000..97961d0 --- /dev/null +++ b/share/extensions/tests/data/refs/rubberstretch__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/scribus_export_pdf.out b/share/extensions/tests/data/refs/scribus_export_pdf.out new file mode 100644 index 0000000..463561d Binary files /dev/null and b/share/extensions/tests/data/refs/scribus_export_pdf.out differ diff --git a/share/extensions/tests/data/refs/setup_typography_canvas.out b/share/extensions/tests/data/refs/setup_typography_canvas.out new file mode 100644 index 0000000..9148166 --- /dev/null +++ b/share/extensions/tests/data/refs/setup_typography_canvas.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/setup_typography_canvas__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/setup_typography_canvas__--id__p1__--id__r3.out new file mode 100644 index 0000000..9148166 --- /dev/null +++ b/share/extensions/tests/data/refs/setup_typography_canvas__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/sk1_output.out b/share/extensions/tests/data/refs/sk1_output.out new file mode 100644 index 0000000..59afc69 --- /dev/null +++ b/share/extensions/tests/data/refs/sk1_output.out @@ -0,0 +1,126 @@ +##sK1 1 2 +document() +layout((800,800),0) +grid((0,0,2.83465,2.83465),0,("RGB",0.83,0.87,0.91),'Grid') +page() +layer('New Layer',1,1,0,0,("RGB",0.196,0.314,0.635)) +G() +fp(("RGB",1.0,0.0,0.0)) +le() +lw(0.895418) +r(198.953,0,0,-161.198,521.047,516.859) +G_() +G() +fp(("RGB",0.0,0.0,0.502)) +le() +lw(0.283286) +e(40,0,0,-40,120,440) +lp(("RGB",1.0,0.0,0.0)) +lw(12.8) +e(80,0,0,-40,320,440) +fp(("RGB",1.0,1.0,0.0)) +lp(("RGB",0.0,0.502,0.0)) +lw(12.8) +b() +bs(626.469,417.741,0) +bs(560,440,0) +bs(626.469,417.741,0) +bC() +lp(("RGB",0.0,0.0,0.0)) +lw(8) +b() +bs(80,320,0) +bs(160,240,0) +bs(240,320,0) +bs(320,240,0) +lp(("RGB",0.0,0.0,0.0)) +lw(8) +b() +bs(400,320,0) +bc(400,320,400,240,480,240,0) +bc(560,240,480,320,560,320,0) +bc(640,320,640,240,640,240,0) +fp(("RGB",1.0,1.0,0.0)) +lp(("RGB",0.0,0.502,0.0)) +lw(8) +b() +bs(195.867,88.688,0) +bs(159.595,95.1955,0) +bs(133.672,69.0055,0) +bs(128.653,105.512,0) +bs(95.7337,122.074,0) +bs(128.903,138.129,0) +bs(134.481,174.554,0) +bs(160,147.97,0) +bs(196.367,153.921,0) +bs(178.969,121.436,0) +bs(195.867,88.688,0) +bC() +fp(("RGB",1.0,1.0,0.0)) +lp(("RGB",0.0,0.502,0.0)) +lw(8) +b() +bs(355.867,86.291,0) +bs(319.595,92.7986,0) +bs(293.672,66.6085,0) +bs(288.653,103.115,0) +bs(255.734,119.677,0) +bs(288.903,135.732,0) +bs(294.481,172.157,0) +bs(320,145.573,0) +bs(356.367,151.524,0) +bs(338.969,119.039,0) +bs(355.867,86.291,0) +bC() +G_() +G() +fp(("RGB",0.0,0.0,0.0)) +le() +lw(0.283286) +Fn('BitstreamVeraSans-Roman') +Fs(14.6667) +txt('\\u048\\u065\\u06c\\u06c\\u06f\\u020\\u057\\u06f\\u072\\u06c\\u064',(0.8,0,0,0.8,80,720),0,0,1,1,1) +fp(("RGB",0.0,0.0,0.0,0.5)) +le() +lw(0.283286) +r(56.0001,0,0,-55.4909,320,730.381) +fp(("RGB",0.0,0.0,0.0)) +le() +lw(0.283286) +Fn('BitstreamVeraSans-Roman') +Fs(14.6667) +txt('\\u055\\u050\\u050\\u045\\u052',(0.8,0,0,0.8,160,720),0,0,1,1,1) +fp(("RGB",0.0,0.0,0.0)) +le() +lw(0.283286) +Fn('BitstreamVeraSans-Roman') +Fs(10.5833) +txt('\\u04d\\u075\\u06c\\u074\\u069\\u020\\u06c\\u069\\u06e\\u065\\u074\\u065\\u078\\u074\\u046\\u04f\\u04f',(0.8,0,0,0.8,240,720),0,0,1,1,1) +G() +fp(("RGB",0.0,0.0,0.0)) +le() +lw(0.283286) +Fn('BitstreamVeraSans-Roman') +Fs(10.5833) +txt('\\u047\\u072\\u06f\\u075\\u070\\u065\\u064',(0.8,0,0,0.8,400,720),0,0,1,1,1) +fp(("RGB",0.0,0.0,0.0)) +le() +lw(0.283286) +Fn('BitstreamVeraSans-Roman') +Fs(14.6667) +txt('\\u074\\u065\\u078\\u074',(0.8,0,0,0.8,400,696),0,0,1,1,1) +G_() +fp(("RGB",0.0,0.0,0.502)) +le() +lw(0.283286) +r(80,0,0,-80,80,640) +lp(("RGB",1.0,0.0,0.0)) +lw(12.8) +r(160,0,0,-80,240,640) +fp(("RGB",1.0,1.0,0.0)) +lp(("RGB",0.0,0.502,0.0)) +lw(12.8) +r(160,0,0,-80,480,640,0.224716,0.389508) +G_() +masterlayer('MasterLayer 1',1,1,0,0,("RGB",0.196,0.314,0.635)) +guidelayer('Guide Lines',1,0,0,1,("RGB",0.0,0.3,1.0)) diff --git a/share/extensions/tests/data/refs/spirograph.out b/share/extensions/tests/data/refs/spirograph.out new file mode 100644 index 0000000..cc27d4d --- /dev/null +++ b/share/extensions/tests/data/refs/spirograph.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/spirograph__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/spirograph__--id__p1__--id__r3.out new file mode 100644 index 0000000..cc27d4d --- /dev/null +++ b/share/extensions/tests/data/refs/spirograph__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/straightseg.out b/share/extensions/tests/data/refs/straightseg.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/straightseg__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/straightseg__--id__p1__--id__r3.out new file mode 100644 index 0000000..f05ae54 --- /dev/null +++ b/share/extensions/tests/data/refs/straightseg__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/svgcalendar.out b/share/extensions/tests/data/refs/svgcalendar.out new file mode 100644 index 0000000..029c6cd --- /dev/null +++ b/share/extensions/tests/data/refs/svgcalendar.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + +2019JanuarySunMonTueWedThuFriSat303112345678910111213141516171819202122232425262728293031123456789FebruarySunMonTueWedThuFriSat272829303112345678910111213141516171819202122232425262728123456789MarchSunMonTueWedThuFriSat242526272812345678910111213141516171819202122232425262728293031123456AprilSunMonTueWedThuFriSat311234567891011121314151617181920212223242526272829301234567891011MaySunMonTueWedThuFriSat2829301234567891011121314151617181920212223242526272829303112345678JuneSunMonTueWedThuFriSat262728293031123456789101112131415161718192021222324252627282930123456JulySunMonTueWedThuFriSat301234567891011121314151617181920212223242526272829303112345678910AugustSunMonTueWedThuFriSat28293031123456789101112131415161718192021222324252627282930311234567SeptemberSunMonTueWedThuFriSat123456789101112131415161718192021222324252627282930123456789101112OctoberSunMonTueWedThuFriSat293012345678910111213141516171819202122232425262728293031123456789NovemberSunMonTueWedThuFriSat27282930311234567891011121314151617181920212223242526272829301234567DecemberSunMonTueWedThuFriSat123456789101112131415161718192021222324252627282930311234567891011 \ No newline at end of file diff --git a/share/extensions/tests/data/refs/svgfont2layers__--count__3.out b/share/extensions/tests/data/refs/svgfont2layers__--count__3.out new file mode 100644 index 0000000..ec11f1d --- /dev/null +++ b/share/extensions/tests/data/refs/svgfont2layers__--count__3.out @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/tar_layers.out b/share/extensions/tests/data/refs/tar_layers.out new file mode 100644 index 0000000..50ce2ee Binary files /dev/null and b/share/extensions/tests/data/refs/tar_layers.out differ diff --git a/share/extensions/tests/data/refs/tar_layers__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/tar_layers__--id__p1__--id__r3.out new file mode 100644 index 0000000..50ce2ee Binary files /dev/null and b/share/extensions/tests/data/refs/tar_layers__--id__p1__--id__r3.out differ diff --git a/share/extensions/tests/data/refs/template__--size__100x50__--grid__true__--orientation__horizontal.out b/share/extensions/tests/data/refs/template__--size__100x50__--grid__true__--orientation__horizontal.out new file mode 100644 index 0000000..6a0bbf9 --- /dev/null +++ b/share/extensions/tests/data/refs/template__--size__100x50__--grid__true__--orientation__horizontal.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/template__--size__100x50__--grid__true__--orientation__vertical.out b/share/extensions/tests/data/refs/template__--size__100x50__--grid__true__--orientation__vertical.out new file mode 100644 index 0000000..ad7607e --- /dev/null +++ b/share/extensions/tests/data/refs/template__--size__100x50__--grid__true__--orientation__vertical.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/template__--size__5mmx15mm__--background__black__--noborder__true.out b/share/extensions/tests/data/refs/template__--size__5mmx15mm__--background__black__--noborder__true.out new file mode 100644 index 0000000..5b92e4d --- /dev/null +++ b/share/extensions/tests/data/refs/template__--size__5mmx15mm__--background__black__--noborder__true.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/template__--size__custom__--width__100__--height__100__--unit__in.out b/share/extensions/tests/data/refs/template__--size__custom__--width__100__--height__100__--unit__in.out new file mode 100644 index 0000000..fb3d8ad --- /dev/null +++ b/share/extensions/tests/data/refs/template__--size__custom__--width__100__--height__100__--unit__in.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/template_dvd_cover__-s__10__-b__10.out b/share/extensions/tests/data/refs/template_dvd_cover__-s__10__-b__10.out new file mode 100644 index 0000000..131054a --- /dev/null +++ b/share/extensions/tests/data/refs/template_dvd_cover__-s__10__-b__10.out @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/template_seamless_pattern__--width__100__--height__100.out b/share/extensions/tests/data/refs/template_seamless_pattern__--width__100__--height__100.out new file mode 100644 index 0000000..b0a40fe --- /dev/null +++ b/share/extensions/tests/data/refs/template_seamless_pattern__--width__100__--height__100.out @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + Seamless pattern + Use the layers "Pattern Foreground" and "Pattern Background" on the pattern page to create your design. The separation into two layers will make it easier for you to create and edit overlapping content like a foreground drawing with a background fill. The layer named "Pattern" is for using the seamless pattern, copying it to other documents, adding opacity etc. Select the group on the page, and use Object->Pattern->Objects to Pattern to convert your creation into a fill pattern. The layer "Preview Background" provides an easy way to preview your creation if it contains transparency.Changing this layer's visibility will not alter the pattern. If an object is moved outside the pattern/page limits, it will be difficult to select it. To move it back onto the page, select the object using the rubberband selection (click and drag a selection box) with the selection tool.Then move it back onto the page, using the arrow keys or the "Align and Distribute" dialog (Shift+Ctrl+A). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Seamless Pattern + Seamless Pattern + Seamless Pattern + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/test_color_list.out b/share/extensions/tests/data/refs/test_color_list.out new file mode 100644 index 0000000..2c7f24c --- /dev/null +++ b/share/extensions/tests/data/refs/test_color_list.out @@ -0,0 +1,9 @@ +7: #75507b +7: red +7: #729fcf +7: #3465a4 +6: #cc0000 +5: #000000 +4: #5c3566 +4: blue +3: #2e3436 diff --git a/share/extensions/tests/data/refs/test_color_list__--id__color_svg.out b/share/extensions/tests/data/refs/test_color_list__--id__color_svg.out new file mode 100644 index 0000000..1ceffa6 --- /dev/null +++ b/share/extensions/tests/data/refs/test_color_list__--id__color_svg.out @@ -0,0 +1,9 @@ +5: #75507b +5: red +5: #729fcf +5: #3465a4 +4: #cc0000 +3: #5c3566 +3: blue +3: #000000 +2: #2e3436 diff --git a/share/extensions/tests/data/refs/test_color_list__--id__r1.out b/share/extensions/tests/data/refs/test_color_list__--id__r1.out new file mode 100644 index 0000000..7afd4b9 --- /dev/null +++ b/share/extensions/tests/data/refs/test_color_list__--id__r1.out @@ -0,0 +1,3 @@ +1: #5c3566 +1: #75507b +1: red diff --git a/share/extensions/tests/data/refs/test_color_list__--id__r1__--id__r2.out b/share/extensions/tests/data/refs/test_color_list__--id__r1__--id__r2.out new file mode 100644 index 0000000..e93ebc8 --- /dev/null +++ b/share/extensions/tests/data/refs/test_color_list__--id__r1__--id__r2.out @@ -0,0 +1,9 @@ +3: #75507b +3: red +3: #729fcf +3: #3465a4 +2: #5c3566 +2: blue +2: #cc0000 +1: #2e3436 +1: #000000 diff --git a/share/extensions/tests/data/refs/test_color_list__--id__r2.out b/share/extensions/tests/data/refs/test_color_list__--id__r2.out new file mode 100644 index 0000000..0803b0f --- /dev/null +++ b/share/extensions/tests/data/refs/test_color_list__--id__r2.out @@ -0,0 +1,6 @@ +1: #5c3566 +1: #75507b +1: red +1: #729fcf +1: #3465a4 +1: blue diff --git a/share/extensions/tests/data/refs/test_color_list__--id__r3.out b/share/extensions/tests/data/refs/test_color_list__--id__r3.out new file mode 100644 index 0000000..168ffca --- /dev/null +++ b/share/extensions/tests/data/refs/test_color_list__--id__r3.out @@ -0,0 +1,8 @@ +2: red +1: #5c3566 +1: #75507b +1: #729fcf +1: #3465a4 +1: blue +1: #2e3436 +1: #cc0000 diff --git a/share/extensions/tests/data/refs/test_color_list__--id__r4.out b/share/extensions/tests/data/refs/test_color_list__--id__r4.out new file mode 100644 index 0000000..77a872b --- /dev/null +++ b/share/extensions/tests/data/refs/test_color_list__--id__r4.out @@ -0,0 +1,9 @@ +2: #75507b +2: red +2: #729fcf +2: #3465a4 +2: #cc0000 +1: #5c3566 +1: blue +1: #2e3436 +1: #000000 diff --git a/share/extensions/tests/data/refs/text_braille.out b/share/extensions/tests/data/refs/text_braille.out new file mode 100644 index 0000000..77f7c60 --- /dev/null +++ b/share/extensions/tests/data/refs/text_braille.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + ⠋⠕⠗⠍⠁⠞⠱ ⠏⠝⠛ +⠙⠏⠊⠱ ⠔⠖ +⠇⠁⠽⠕⠥⠞⠤⠙⠊⠎⠏⠕⠎⠊⠞⠊⠕⠝⠱ ⠃⠛⠤⠑⠇⠤⠝⠕⠗⠑⠏⠑⠁⠞ +⠇⠁⠽⠕⠥⠞⠤⠏⠕⠎⠊⠞⠊⠕⠝⠤⠁⠝⠉⠓⠕⠗⠱ ⠞⠇ + + + + + + + + + + + + + ⠓⠑⠇⠇⠕ ⠺⠕⠗⠇⠙ + ⠋⠇⠕⠺ ⠞⠑⠭⠞ ⠺⠓⠊⠉⠓ ⠺⠗⠁⠏⠎ ⠥⠏⠏⠑⠗ + ⠍⠥⠇⠞⠊ ⠇⠊⠝⠑⠞⠑⠭⠞⠋⠕⠕ + + ⠛⠗⠕⠥⠏⠑⠙ + ⠞⠑⠭⠞ + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/text_extract__--direction__bt.out b/share/extensions/tests/data/refs/text_extract__--direction__bt.out new file mode 100644 index 0000000..6c3dac7 --- /dev/null +++ b/share/extensions/tests/data/refs/text_extract__--direction__bt.out @@ -0,0 +1,8 @@ +text +Grouped +Multi line +text +FOO +flow text which wraps +UPPER +Hello World diff --git a/share/extensions/tests/data/refs/text_extract__--direction__lr.out b/share/extensions/tests/data/refs/text_extract__--direction__lr.out new file mode 100644 index 0000000..2eec938 --- /dev/null +++ b/share/extensions/tests/data/refs/text_extract__--direction__lr.out @@ -0,0 +1,8 @@ +Grouped +text +Hello World +UPPER +Multi line +text +FOO +flow text which wraps diff --git a/share/extensions/tests/data/refs/text_extract__--direction__rl.out b/share/extensions/tests/data/refs/text_extract__--direction__rl.out new file mode 100644 index 0000000..bc3ed2e --- /dev/null +++ b/share/extensions/tests/data/refs/text_extract__--direction__rl.out @@ -0,0 +1,8 @@ +flow text which wraps +Multi line +text +FOO +UPPER +Hello World +text +Grouped diff --git a/share/extensions/tests/data/refs/text_extract__--direction__tb.out b/share/extensions/tests/data/refs/text_extract__--direction__tb.out new file mode 100644 index 0000000..3634b71 --- /dev/null +++ b/share/extensions/tests/data/refs/text_extract__--direction__tb.out @@ -0,0 +1,8 @@ +Hello World +UPPER +flow text which wraps +Multi line +text +FOO +Grouped +text diff --git a/share/extensions/tests/data/refs/text_flipcase.out b/share/extensions/tests/data/refs/text_flipcase.out new file mode 100644 index 0000000..cd9ebc3 --- /dev/null +++ b/share/extensions/tests/data/refs/text_flipcase.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + FORMAT: PNG +DPI: 96 +LAYOUT-DISPOSITION: BG-EL-NOREPEAT +LAYOUT-POSITION-ANCHOR: TL + + + + + + + + + + + + + hELLO wORLD + FLOW TEXT WHICH WRAPS upper + mULTI LINETEXTfoo + + gROUPED + TEXT + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/text_lowercase.out b/share/extensions/tests/data/refs/text_lowercase.out new file mode 100644 index 0000000..b492bd3 --- /dev/null +++ b/share/extensions/tests/data/refs/text_lowercase.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + hello world + flow text which wraps upper + multi linetextfoo + + grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/text_merge.out b/share/extensions/tests/data/refs/text_merge.out new file mode 100644 index 0000000..4ee2b0e --- /dev/null +++ b/share/extensions/tests/data/refs/text_merge.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/text_randomcase.out b/share/extensions/tests/data/refs/text_randomcase.out new file mode 100644 index 0000000..7291480 --- /dev/null +++ b/share/extensions/tests/data/refs/text_randomcase.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + fOrmAT: pNg +DpI: 96 +lAyOUT-DiSpOSiTioN: BG-eL-nOrEPeAt +LayouT-pOsitIOn-ANcHoR: tl + + + + + + + + + + + + + HEllO wOrLD + fLoW TexT WhIch wraPs upPEr + mUlTi lInEtEXtFoo + + GrouPeD + teXt + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/text_sentencecase.out b/share/extensions/tests/data/refs/text_sentencecase.out new file mode 100644 index 0000000..9968709 --- /dev/null +++ b/share/extensions/tests/data/refs/text_sentencecase.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + Format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello world + Flow text which wraps Upper + Multi linetextfoo + + Grouped + Text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/text_split__--id__t1__--id__t3.out b/share/extensions/tests/data/refs/text_split__--id__t1__--id__t3.out new file mode 100644 index 0000000..0c0e4fd --- /dev/null +++ b/share/extensions/tests/data/refs/text_split__--id__t1__--id__t3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + HelloWorldMultilinetextFOO + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/text_titlecase.out b/share/extensions/tests/data/refs/text_titlecase.out new file mode 100644 index 0000000..1e0b50f --- /dev/null +++ b/share/extensions/tests/data/refs/text_titlecase.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + Format: Png +Dpi: 96 +Layout-disposition: Bg-el-norepeat +Layout-position-anchor: Tl + + + + + + + + + + + + + Hello World + Flow Text Which Wraps Upper + Multi LineTextFoo + + Grouped + Text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/text_uppercase.out b/share/extensions/tests/data/refs/text_uppercase.out new file mode 100644 index 0000000..9532266 --- /dev/null +++ b/share/extensions/tests/data/refs/text_uppercase.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + FORMAT: PNG +DPI: 96 +LAYOUT-DISPOSITION: BG-EL-NOREPEAT +LAYOUT-POSITION-ANCHOR: TL + + + + + + + + + + + + + HELLO WORLD + FLOW TEXT WHICH WRAPS UPPER + MULTI LINETEXTFOO + + GROUPED + TEXT + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/triangle.out b/share/extensions/tests/data/refs/triangle.out new file mode 100644 index 0000000..82ff731 --- /dev/null +++ b/share/extensions/tests/data/refs/triangle.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/triangle__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/triangle__--id__p1__--id__r3.out new file mode 100644 index 0000000..82ff731 --- /dev/null +++ b/share/extensions/tests/data/refs/triangle__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/ungroup_deep.out b/share/extensions/tests/data/refs/ungroup_deep.out new file mode 100644 index 0000000..738cc6b --- /dev/null +++ b/share/extensions/tests/data/refs/ungroup_deep.out @@ -0,0 +1,33 @@ + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + Grouped + text + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/ungroup_deep__--id__layer2.out b/share/extensions/tests/data/refs/ungroup_deep__--id__layer2.out new file mode 100644 index 0000000..41aa594 --- /dev/null +++ b/share/extensions/tests/data/refs/ungroup_deep__--id__layer2.out @@ -0,0 +1,39 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/voronoi2svg__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/voronoi2svg__--id__p1__--id__r3.out new file mode 100644 index 0000000..10d57fc --- /dev/null +++ b/share/extensions/tests/data/refs/voronoi2svg__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/web_interactive_mockup__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/web_interactive_mockup__--id__p1__--id__r3.out new file mode 100644 index 0000000..e4c32a9 --- /dev/null +++ b/share/extensions/tests/data/refs/web_interactive_mockup__--id__p1__--id__r3.out @@ -0,0 +1,259 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/web_set_att__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/web_set_att__--id__p1__--id__r3.out new file mode 100644 index 0000000..d0d7ad7 --- /dev/null +++ b/share/extensions/tests/data/refs/web_set_att__--id__p1__--id__r3.out @@ -0,0 +1,259 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + diff --git a/share/extensions/tests/data/refs/web_transmit_att__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/web_transmit_att__--id__p1__--id__r3.out new file mode 100644 index 0000000..09b71c3 --- /dev/null +++ b/share/extensions/tests/data/refs/web_transmit_att__--id__p1__--id__r3.out @@ -0,0 +1,259 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + diff --git a/share/extensions/tests/data/refs/webslicer_create_group__--id__slicerect1.out b/share/extensions/tests/data/refs/webslicer_create_group__--id__slicerect1.out new file mode 100644 index 0000000..ec3ec4c --- /dev/null +++ b/share/extensions/tests/data/refs/webslicer_create_group__--id__slicerect1.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/webslicer_create_rect.out b/share/extensions/tests/data/refs/webslicer_create_rect.out new file mode 100644 index 0000000..6f576e6 --- /dev/null +++ b/share/extensions/tests/data/refs/webslicer_create_rect.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + format: png + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/webslicer_create_rect__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/webslicer_create_rect__--id__p1__--id__r3.out new file mode 100644 index 0000000..6f576e6 --- /dev/null +++ b/share/extensions/tests/data/refs/webslicer_create_rect__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + format: png + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/webslicer_export__--dir__TMP_DIR.out b/share/extensions/tests/data/refs/webslicer_export__--dir__TMP_DIR.out new file mode 100644 index 0000000..e69de29 diff --git a/share/extensions/tests/data/refs/whirl__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/whirl__--id__p1__--id__r3.out new file mode 100644 index 0000000..20b356f --- /dev/null +++ b/share/extensions/tests/data/refs/whirl__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/wireframe_sphere.out b/share/extensions/tests/data/refs/wireframe_sphere.out new file mode 100644 index 0000000..1513d49 --- /dev/null +++ b/share/extensions/tests/data/refs/wireframe_sphere.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/wireframe_sphere__--id__p1__--id__r3.out b/share/extensions/tests/data/refs/wireframe_sphere__--id__p1__--id__r3.out new file mode 100644 index 0000000..1513d49 --- /dev/null +++ b/share/extensions/tests/data/refs/wireframe_sphere__--id__p1__--id__r3.out @@ -0,0 +1,41 @@ + + + + + + + + + + + + format: png +dpi: 96 +layout-disposition: bg-el-norepeat +layout-position-anchor: tl + + + + + + + + + + + + + Hello World + flow text which wraps UPPER + Multi linetextFOO + + Grouped + text + + + + + + + \ No newline at end of file diff --git a/share/extensions/tests/data/refs/wmf_output.out b/share/extensions/tests/data/refs/wmf_output.out new file mode 100644 index 0000000..13d8ebb Binary files /dev/null and b/share/extensions/tests/data/refs/wmf_output.out differ -- cgit v1.2.3