Tools module geometry classes

Chris Sherlock chris.sherlock79 at gmail.com
Tue Jun 28 23:06:24 UTC 2022


On Mon, Jun 27, 2022 at 4:52 PM Miklos Vajna <vmiklos at collabora.com> wrote:

> Hi Chris,
>
> On Mon, Jun 13, 2022 at 01:03:30PM +1000, Chris Sherlock <
> chris.sherlock79 at gmail.com> wrote:
> > LibreOffice has seperate implementations for points, lines, rectangle,
> polygons and polypolygons - one is in the tools module, and the other is in
> the basegfx module.
> >
> > Are there any plans for deprecating the usage of the tools geometry
> primitives? I understand it will be needed for deserialising some legacy
> svm files, but is the intention to ever start replacing the tools
> primitives with the basegfx primitives?
>
> The trouble with e.g. tools::Rectangle is that it can have both a closed
> or a half-open interval, and you need to read the surrounding code to
> understand which mode is in use. basegfx::B2IRange is explicitly closed.
>
> So it would help readability to go with basegfx::B2IRange everywhere,
> but it's not an easy hack to do such conversions.
>
> Regards,
>
> Miklos
>

Thanks Miklos. I read the comment above the Rectangle header definition
which starts with "Note: this class is a true marvel of engineering:
because the author could not decide whether it's better to have a closed or
half-open interval, they just implemented *both* in the same class!"

What is the feasibility of changing this class to be only explicitly
closed?

Is this the main issue with not converting over to basegfx?

Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20220629/fe87e64b/attachment.htm>


More information about the LibreOffice mailing list