The list of graphic primitives are concatenated and the graphic options are merged according to the value of two options "keep" (either "1or2", "1" or "2") and "priority" (either "1" or "2").
i1 : myoptions1= new HashTable from {"fill"=>"black"} o1 = HashTable{fill => black} o1 : HashTable |
i2 : myoptions2= new HashTable from {"fill"=>"blue","stroke"=>"red"} o2 = HashTable{fill => blue } stroke => red o2 : HashTable |
i3 : fgp1=formatGraphicPrimitives({point(20,30),point(40,50)},myoptions1) o3 = FormattedGraphicPrimitives{{Point2D{20, 30}, Point2D{40, 50}}, HashTable{fill => black}} o3 : FormattedGraphicPrimitives |
i4 : fgp2=formatGraphicPrimitives({circle(point(30,40),10)},myoptions2) o4 = FormattedGraphicPrimitives{{Circle{Point2D{30, 40}, 10}}, HashTable{fill => blue }} stroke => red o4 : FormattedGraphicPrimitives |
i5 : mergeFormattedGraphicPrimitives(fgp1,fgp2) o5 = FormattedGraphicPrimitives{{Point2D{20, 30}, Point2D{40, 50}, Circle{Point2D{30, 40}, 10}}, HashTable{fill => black}} o5 : FormattedGraphicPrimitives |
i6 : mergeFormattedGraphicPrimitives(fgp1,fgp2,"keep"=>"2","priority"=>"1") o6 = FormattedGraphicPrimitives{{Point2D{20, 30}, Point2D{40, 50}, Circle{Point2D{30, 40}, 10}}, HashTable{fill => black}} stroke => red o6 : FormattedGraphicPrimitives |