AngusJohnson / Clipper2

Polygon Clipping and Offsetting - C++, C# and Delphi
Boost Software License 1.0
1.34k stars 248 forks source link

Add Z-Component to Clipper DLL Exports, as well as Z-Fill Callback default #859

Open schellingerhout opened 3 weeks ago

schellingerhout commented 3 weeks ago

Added the Z-component and the Z-Fill callback. These are added when USINGZ preprocessor identifier is present Also added inflate for path (code was directly derived from code used for paths).

We depend on this Z-component for our functionality and rather not have a fork that diverges from your repository

This PR also has some contributions we'd like to make. Specifically for the Delphi interfaces to the C++. I added wrappers around the C++ raw pointer types for higher performance for the transmission of data.

You can see most of the code under DLL/Delphi_interface

Consumers rarely need to include Clipper.DLL.Data or Clipper.DLL.Enums since the most commonly used types are aliased in Clipper.DLL.pas

All Clipper Delphi examples were converted to use these interfaces and can be found under DLL/Delphi_TestApps. I moved the test previously in DLL/Delphi_TestApp to a subfolder (DLL/Delphi_TestApp/Test_DLL).

schellingerhout commented 3 weeks ago

@AngusJohnson If this change is too large or if you'd rather not accept the Delphi pointer wrapper interfaces then I can make a smaller PR with just the z-component support on the DLL as well as the Z-fill callback export

AngusJohnson commented 3 weeks ago

Hi Jasper. Thank you for the PR, and from the little I've seen so far, it seems very nicely done (and well commented too). However, it'll probably take me a little while to work through and assimilate all your changes (possibly a week or two), which I'll want to do before I commit. So stay tuned 😁.

AngusJohnson commented 4 days ago

Thanks Jasper. I'm still here, but I'm currently caught up with other things.