https://bugs.documentfoundation.org/show_bug.cgi?id=161555

            Bug ID: 161555
           Summary: Missing shape algebra operation: Fragment
           Product: LibreOffice
           Version: unspecified
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: LibreOffice
          Assignee: libreoffice-bugs@lists.freedesktop.org
          Reporter: eyalr...@gmx.com

A vectorized drawing editor with geometric shapes support needs operations
involving the algebra of regions induced by shapes.

LibreOffice has:

Merge (i.e. Union)
Subtract
Intersect

as well as an odd Combine operation, whose logic is: "Define a new shape whose
counter is the bounding rectangle of the union of the selected shapes; and for
every region in the algebra induced by the selected shapes, make it opaque in
the color of the first selected shape if the number of shapes containing this
region is odd, or transparent if the number of containing shapes is even." 

... weird, but I guess that might come in handy.

However, LO is lacking the operation which can be used to achieve the effect of
any of the other four! This is the "Fragment" operation, which exposes the full
induced algebra: Defining a separate object for every one of the regions
induced by the selected shapes. So, if my shapes are:

  +------+
  |      |
  |      |
  |   +--+----+
  |   |  |    |
  +---+--+    +
      |       |
      +-------+

The result of the operation would be three shapes: The top-left angle, the
bottom-right angle, and the middle rectangle - each with a nice contour - and
lets say, the fill of the topmost shape covering them (so if there is no
transparency, you only get some added counters).

Naturally, with this atomic sets of the algebra you can construct any set you
like (at least if we ignore contours) in the algebra, including the union,
intersection, difference, the XOR-ish Combine operation etc.

So please add it.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to