Difference between revisions of "LPE for groups"

From Inkscape Wiki
Jump to navigation Jump to search
Line 2: Line 2:


This Project is part of a student project from Ecole Centrale de Lyon.
This Project is part of a student project from Ecole Centrale de Lyon.
(SVN : http://svn.eclair.ec-lyon.fr/ )


----
----


 
==Introduction==
Today, LPE can only be applied to single path. The goal of this project is to enable LPE for groups of paths.
Today, LPE can only be applied to single path. The goal of this project is to enable LPE for groups of paths.


Line 13: Line 14:


Main points are :  
Main points are :  
* a. how to put it in SVG
* a. how to put it in SVG > See the svg code mock-up
* b. how to render it in inkscape
* b. how to render it in inkscape
* c. what happens when a path in a group with LPE has its own LPE applied (chaining?)
* c. what happens when a path in a group with LPE has its own LPE applied (chaining?)
==svg code==
Here is an idea of the svg code :
    <defs>
   
    <inkscape:path-effect
      effect="bend_path"
      id="path-effect2391"
      bendpath="M 62.8571,376.648 C 227.61907,256.19958 392.38103,260.92537 557.143,376.648"
      prop_scale="1"
      bendpath-nodetypes="cc" />
   
    </defs>
And then, for the group : the effect params are for the group, the original paths are for each shape.
    <g
        id="g2438"
        inkscape:path-effect="#path-effect2391">
   
    <path
                  style="opacity:0.93699993;fill:#00ffff;fill-opacity:0.99685531;fill-rule:nonzero;stroke:#000000;stroke-width:8.60000038;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
      d="M -7.11922,280.927 C 37.9458,247.569 89.2988,218.713 146.607,197.876 C 198.322,179.282 253.844,169.323 310.85,169.515 C 310.85,169.515 310.85,169.515 310.85,169.515 C 367.851,170.198 422.845,180.778 473.748,199.332 C 529.85,219.891 580.42,247.738 625.293,279.618 L 488.993,473.678 C 457.274,451.763 425.352,433.602 393.395,422.447 C 365.1,412.479 336.324,406.573 309.15,406.652 C 282.11,406.242 253.702,411.611 226.251,421.245 C 194.956,432 163.706,450.213 132.833,472.369"
      id="rect2388"
      inkscape:original-d="M 62.857143,258.07648 L 557.14285,258.07648 L 557.14285,495.21933 L 62.857143,495.21933 L 62.857143,258.07648 z" />
   
    <path
              style="opacity:0.93699993;fill:#00ffff;fill-opacity:0.99685531;fill-rule:nonzero;stroke:#000000;stroke-width:8.60000038;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
      d="M -7.11922,280.927 C 37.9458,247.569 89.2988,218.713 146.607,197.876  C 367.851,170.198 422.845,180.778 473.748,199.332 C 529.85,219.891 580.42,247.738 625.293,279.618 L 488.993,473.678 C 457.274,451.763 425.352,433.602 393.395,422.447 C 365.1,412.479 336.324,406.573 309.15,406.652 C 282.11,406.242 253.702,411.611 226.251,421.245 C 194.956,432 163.706,450.213 132.833,472.369"
      id="rect2348"
      inkscape:original-d="M 137.38075,749.31641 L 331.33005,749.31641 L 331.33005,1040.2404 L 137.38075,1040.2404 L 137.38075,749.31641 z" />
   
    </g>

Revision as of 22:27, 5 February 2008

LPE for groups

This Project is part of a student project from Ecole Centrale de Lyon. (SVN : http://svn.eclair.ec-lyon.fr/ )


Introduction

Today, LPE can only be applied to single path. The goal of this project is to enable LPE for groups of paths.

There may be a default implementation that does LPE recursively on each path but many behavior will have to be effect dependent.

For example "Bend path": if you apply it recursively, then all paths of the group will be bent along the path from start to end. We have to consider the bounding box of the group and to generate new coordinates for each path.

Main points are :

  • a. how to put it in SVG > See the svg code mock-up
  • b. how to render it in inkscape
  • c. what happens when a path in a group with LPE has its own LPE applied (chaining?)

svg code

Here is an idea of the svg code :

   <defs>
   
   <inkscape:path-effect
      effect="bend_path"
      id="path-effect2391"
      bendpath="M 62.8571,376.648 C 227.61907,256.19958 392.38103,260.92537 557.143,376.648"
      prop_scale="1"
      bendpath-nodetypes="cc" />
   
   </defs>

And then, for the group : the effect params are for the group, the original paths are for each shape.

   <g
       id="g2438"
       inkscape:path-effect="#path-effect2391">
   
   <path
                  style="opacity:0.93699993;fill:#00ffff;fill-opacity:0.99685531;fill-rule:nonzero;stroke:#000000;stroke-width:8.60000038;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
      d="M -7.11922,280.927 C 37.9458,247.569 89.2988,218.713 146.607,197.876 C 198.322,179.282 253.844,169.323 310.85,169.515 C 310.85,169.515 310.85,169.515 310.85,169.515 C 367.851,170.198 422.845,180.778 473.748,199.332 C 529.85,219.891 580.42,247.738 625.293,279.618 L 488.993,473.678 C 457.274,451.763 425.352,433.602 393.395,422.447 C 365.1,412.479 336.324,406.573 309.15,406.652 C 282.11,406.242 253.702,411.611 226.251,421.245 C 194.956,432 163.706,450.213 132.833,472.369"
      id="rect2388"
      inkscape:original-d="M 62.857143,258.07648 L 557.14285,258.07648 L 557.14285,495.21933 L 62.857143,495.21933 L 62.857143,258.07648 z" />
   
   <path
              style="opacity:0.93699993;fill:#00ffff;fill-opacity:0.99685531;fill-rule:nonzero;stroke:#000000;stroke-width:8.60000038;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1"
      d="M -7.11922,280.927 C 37.9458,247.569 89.2988,218.713 146.607,197.876  C 367.851,170.198 422.845,180.778 473.748,199.332 C 529.85,219.891 580.42,247.738 625.293,279.618 L 488.993,473.678 C 457.274,451.763 425.352,433.602 393.395,422.447 C 365.1,412.479 336.324,406.573 309.15,406.652 C 282.11,406.242 253.702,411.611 226.251,421.245 C 194.956,432 163.706,450.213 132.833,472.369"
      id="rect2348"
      inkscape:original-d="M 137.38075,749.31641 L 331.33005,749.31641 L 331.33005,1040.2404 L 137.38075,1040.2404 L 137.38075,749.31641 z" />
   
   </g>