Activity for Angus Johnson

  • Angus Johnson Angus Johnson posted a comment on ticket #23530

    Thank you for your assistance, I'll contact my ISP.

  • Angus Johnson Angus Johnson posted a comment on ticket #23530

    Thanks. See attached. I tried both udp and icmp using my broadband network and it times out after a few hops. I guess this suggested a faulty routing table and i should contact my isp? (The second OK trace was using my mobile phone's network.) Cheers A.

  • Angus Johnson Angus Johnson modified a comment on ticket #23530

    Additional info: I'm running Windows 10 (Version 21H1 OS Build 19043.1706) and did recently update to this build. I can confirm there is no proxy server on the PC and the home router uses no proxy. I've even tried with Windows Firewall disabled without success. I've also just checked this on another PC (using the latest version of Git for Windows): vlmj1@DESKTOP-XXXXXXX MINGW64 /c/temp $ git clone https://angusj@git.code.sf.net/p/image32/code tmp Cloning into 'tmp'... fatal: unable to access 'https://git.code.sf.net/p/image32/code/':...

  • Angus Johnson Angus Johnson modified a comment on ticket #23530

    Additional info: I'm running Windows 10 (Version 21H1 OS Build 19043.1706) and did recently update to this build. I can confirm there is no proxy server on the PC and the home router uses no proxy. I've even tried disabling Windows Firewall without success. I've also just checked this on another PC (using the latest version of Git for Windows): vlmj1@DESKTOP-XXXXXXX MINGW64 /c/temp $ git clone https://angusj@git.code.sf.net/p/image32/code tmp Cloning into 'tmp'... fatal: unable to access 'https://git.code.sf.net/p/image32/code/':...

  • Angus Johnson Angus Johnson modified a comment on ticket #23530

    Additional info: I'm running Windows 10 (Version 21H1 OS Build 19043.1706) and did recently update to this build. I can confirm there is no proxy server on the PC and the home router uses no proxy. I've even tried disabing Windows Firewall without success. I've also just checked this on another PC (using the latest version of Git for Windows): vlmj1@DESKTOP-XXXXXXX MINGW64 /c/temp $ git clone https://angusj@git.code.sf.net/p/image32/code tmp Cloning into 'tmp'... fatal: unable to access 'https://git.code.sf.net/p/image32/code/':...

  • Angus Johnson Angus Johnson modified a comment on ticket #23530

    Hi SF Support. Thank you for your timely help. We don't see any problems with our services. OK. I accept that the problem is likely at my end. You are probably behind a firewall or using a proxy. No, I'm pretty sure I'm not. Please try using HTTPS: $ git clone https://angusj@git.code.sf.net/p/image32/code tmp Cloning into 'tmp'... fatal: unable to access 'https://git.code.sf.net/p/image32/code/': Failed to connect to git.code.sf.net port 443: Timed out

  • Angus Johnson Angus Johnson posted a comment on ticket #23530

    Additional info: I'm running Windows 10 (Version 21H1 OS Build 19043.1706) and did recently update to this build. I've rechecked the local firewall and the home router uses no proxy. I've even tried disabing Windows Firewall, all without success. I've also just checked this on another PC (using the latest version of Git for Windows): vlmj1@DESKTOP-XXXXXXX MINGW64 /c/temp $ git clone https://angusj@git.code.sf.net/p/image32/code tmp Cloning into 'tmp'... fatal: unable to access 'https://git.code.sf.net/p/image32/code/':...

  • Angus Johnson Angus Johnson modified a comment on ticket #23530

    Hi SF Support. Thank you for your timely help. We don't see any problems with our services. OK. I accept that the problem is likely at my end. You are probably behind a firewall or using a proxy. No, I'm pretty sure I'm not. Please try using HTTPS: $ git clone https://angusj@git.code.sf.net/p/image32/code tmp Cloning into 'tmp'... fatal: unable to access 'https://git.code.sf.net/p/image32/code/': Failed to connect to git.code.sf.net port 443: Timed out ps: I'm running Windows 10 (Version 21H1 OS...

  • Angus Johnson Angus Johnson posted a comment on ticket #23530

    Hi SF Support. Thank you for your timely help. We don't see any problems with our services. OK. I accept that the problem is likely at my end. You are probably behind a firewall or using a proxy. No, I'm pretty sure I'm not. Please try using HTTPS: $ git clone https://angusj@git.code.sf.net/p/image32/code tmp Cloning into 'tmp'... fatal: unable to access 'https://git.code.sf.net/p/image32/code/': Failed to connect to git.code.sf.net port 443: Timed out

  • Angus Johnson Angus Johnson created ticket #23530

    No longer able to access my project using git

  • Angus Johnson Angus Johnson committed [f90219]

    Renamed Img32.Clipper to Img32.Clipper2 to rectify issues with XE4 compiler.

  • Angus Johnson Angus Johnson posted a comment on ticket #24

    Evidently XE4 mis-handles the file naming namespaces which is surprising as both older and newer compilersdon't have this problem. I'm not keen on renaming Clipper.pas so I'll probably rename Img32.Clipper.pas to Img32.Clipper2.pas.

  • Angus Johnson Angus Johnson posted a comment on ticket #24

    OK, I've once again amended Img32.Clipper. Hopefully it'll compile for you this time. 🤞

  • Angus Johnson Angus Johnson committed [c17579]

    Fixed bug compiling Img32.Clipper (#24)

  • Angus Johnson Angus Johnson posted a comment on ticket #24

    I'm confident I've found and fixed the problem you were encountering. A couple of the Clipper library source files had acquired unicode byte marks which I've now removed. I've also rechecked pretty much everything including the samples and it compiles without issues for me in both Delphi 7 and Delphi 10.4

  • Angus Johnson Angus Johnson committed [a9253e]

    Fixed problem with unicode byte marks in source

  • Angus Johnson Angus Johnson committed [d6efb5]

    Added compiler directive to optionally disable storage streams

  • Angus Johnson Angus Johnson posted a comment on ticket #24

    Hi Edwin. Yes, Clipper has recently undergone massive change and I'm now in the process of rechecking its integration into Img32.

  • Angus Johnson Angus Johnson committed [ea2f6d]

    Updated Clipper library

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Nevermind, I've just about finished translating it myself.

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Clipper2 is just about finished now (at least in Delphi and C# languages), and all that's needed (except for any late bugfixes) is a documentation update. However I'm keen to host a C++ translation just as I have for Clipper1 here. But this time I'm hoping to find someone very proficient in C++ that would be willing to do at least the basic translation of Clipper2. If you're interested and might be able to help, please contact me over on GitHub. Thanks, Angus

  • Angus Johnson Angus Johnson posted a comment on ticket #213

    Hi again Ralf. Thanks for reporting this. I'll fix it in the next upload. (That might be a few more days as I'm currently occupied with merging touching polygons in clipping solutions. I've had many attempts at this - to do it relatively simply and without a significant performance load - but this time I think/hope I've finally got it nailed.) Clipper2Lib issues should probably go to Github. Yes, I'd prefer all Clipper2 feedback here please.

  • Angus Johnson Angus Johnson posted a comment on ticket #22

    Sorry, I missed your earlier comment re BMP file headers. Yes TImageFormat_BMP.SaveToStream intentionally omits the file header because they are only required when saving to file streams, and the TImageFormat_BMP.SaveToFile function does include the file header. However, when saving to other streams, eg BMP resource streams, the file header is not required and can cause problems. If you really need the file header in a 'non-file' stream, then you'll need to manually copy the header into the stream...

  • Angus Johnson Angus Johnson modified ticket #22

    BMP & GIF problem

  • Angus Johnson Angus Johnson committed [1b52c5]

    Img32.Fmt.Gif

  • Angus Johnson Angus Johnson modified ticket #21

    Top spacing seems too big

  • Angus Johnson Angus Johnson modified ticket #20

    Text overflows bounding rect

  • Angus Johnson Angus Johnson modified ticket #19

    Experimental Img32.Ctrls demo don't work on French Windows

  • Angus Johnson Angus Johnson modified ticket #18

    Compile fatal error on BDS2006

  • Angus Johnson Angus Johnson modified ticket #23

    AV in the depths of Img32 modules.

  • Angus Johnson Angus Johnson modified a comment on ticket #23

    Hi Vad. This is your problem .... FontReader.Load('Courier'); This isn't a TrueType font and Image32 only reads TrueType fonts. Change the line to ... FontReader.Load('Courier New'); and your chart will look just fine.

  • Angus Johnson Angus Johnson posted a comment on ticket #23

    Hi Vad. This is your problem .... FontReader.Load('Courier'); This isn't a TrueType font and Image32 only reads these fonts. Change the line to ... FontReader.Load('Courier New'); and your chart will look just fine.

  • Angus Johnson Angus Johnson posted a comment on ticket #22

    Hi Hafedh. Thanks for the feedback, and I've verified that that this is indeed a bug. Hopefully this will work ... procedure TImageFormat_GIF.SaveToStream(stream: TStream; img32: TImage32); var gif: TGIFImage; bmp: TBitmap; begin bmp := TBitmap.Create; gif := TGIFImage.Create; try //copy to the new TBitmap bmp.PixelFormat := pf32bit; bmp.SetSize(img32.Width, img32.Height); bmp.AlphaFormat := afDefined; SetBitmapBits(bmp.Handle, img32.Width * img32.Height * 4, img32.PixelBase); //next copy from the...

  • Angus Johnson Angus Johnson committed [4788d5]

    Clipper library updated (Img32 dependency)

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Great, thanks for the update. Also, I might be putting the merging of touching solution polygons on the priority list (to tackle before final release of Clipper2). That may delay things a bit but hopefully not too much.

  • Angus Johnson Angus Johnson committed [5c7a3c]

    Minor edit

  • Angus Johnson Angus Johnson modified a comment on discussion Discussion Forum

    Not sure I fully understand: the double version (PathD) does not need any typecasting as everything is double already. Yeah, sorry, I was referring (implicitly) to Area(Path64 path) since you'd also mentioned overflow, and I didn't think you'd be concerned about overflow when multiplying floating point values And very the reason the integer version of Area returns a double is to avoid overflow. The alternative (used in Clipper1) is to use custom 128bit integers, but they create an unnecessary performance...

  • Angus Johnson Angus Johnson modified a comment on discussion Discussion Forum

    Not sure I fully understand: the double version (PathD) does not need any typecasting as everything is double already. Yeah, sorry, I was referring (implicitly) to Area(Path64 path) since you'd also mentioned overflow, and I didn't think you'd be concerned about multiplying floating point values And very the reason the integer version of Area returns a double is to avoid overflow. The alternative (used in Clipper1) is to use custom 128bit integers, but they create an unnecessary performance burd...

  • Angus Johnson Angus Johnson modified a comment on discussion Discussion Forum

    Not sure I fully understand: the double version (PathD) does not need any typecasting as everything is double already. Yeah, sorry, I was referring (implicitly) to Area(Path64 path) since you'd also mentioned overflow, and I didn't think you'd be concerned about that with floating point coordinates. And very the reason the integer version of Area returns a double is to avoid overflow. The alternative (used in Clipper1) is to use custom 128bit integers, but they create an unnecessary performance ...

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Not sure I fully understand: the double version (PathD) does not need any typecasting as everything is double already. Yeah, sorry, I was referring (implicitly) to Area(Path64 path). And very the reason this function returns a double is to avoid the risk of overflow. The alternative (used in Clipper1) is to use custom 128bit integers, but they create an unnecessary performance burden.

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Just tried if ClipperLib2 can do it...no luck. Is this something you would expect Clipper2Lib to ultimately be able to do, Bummer! And YES!!! Though I'm not sure what you mean by glitches. If you're meaning that the solution is technically correct (as I expect) but there are polygons in the solution that touch each other and could be simplified, then this is something that's on the "road map" for future but not promised. If you are getting results from Clipper2 that aren't technically correct, I'd...

  • Angus Johnson Angus Johnson modified a comment on discussion Discussion Forum

    Hi again Terence. The area formula used in clipper continues to confuse me LOL, it confuses me too! 😕 All my development has been done using inverted Y-axis displays (0,0 at top left). This of course reverses winding orientation (clockwise vs counterclockwise ) and I recently I tried to fix this with a pre-compiler switch (that reverses orientation). Howver, in doing this I broke things and, rather than persisting, I reversed the changes. Thanks to your feedback here I'll make a more concerted effort...

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Hi again Terence. The area formula used in clipper continues to confuse me LOL, it confuses me too! 😕 All my development has been done using inverted Y-axis displays (0,0 at top left). This of course reverses winding orientation (clockwise vs counterclockwise ) and I recently I tried to fix this with a pre-compiler switch (that reverses orientation). Howver, in doing this I broke things and, rather than persisting, I reversed the changes. Thanks to your feedback here I'll make a more concerted effort...

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Hi Terence. Thank you for your feedback on this. It does need more attention, at least on my part. I do pretty much all my coding in Delphi, and this was an area in the C# code where I took what seemed a reasonable shortcut/compromise. However, I agree with you now that the IsNearZero function isn't ideal/satisfactory. However, in practise, this isn't a problem for the Clipper Library internally. In my Delphi code, the comparable PointD class doesn't have equality or inequality operators because...

  • Angus Johnson Angus Johnson committed [18f2d4]

    Img32

  • Angus Johnson Angus Johnson modified a comment on discussion General Discussion

    Hi again Daniel. Firstly, I'm happy to hear zooming is working for you. 👍 Using ClearType inside TSvgReader isn't feasible. ClearType is only of (limited) value when drawing text over solid colors, typically a white background. In theory it can also be done over colored and even patterned backgrounds, but it's debatable if anyone would find the text any clearer. And I really can't envisage a way to do this in SVG in a time efficient manner, and one that would justify the considerable effort. ps:...

  • Angus Johnson Angus Johnson modified a comment on discussion General Discussion

    Hi again Daniel. Firstly, I'm happy to hear zooming is working for you. 👍 Using ClearType inside TSvgReader isn't feasible. ClearType is only of (limited) value when drawing text over solid colors, typically a white background. In theory it can also be done over colored and even patterned backgrounds, but it's debatable if anyone would find the text any clearer. And I really can't envisage a way to do this in SVG in a time efficient manner, and one that would justify the considerable effort.

  • Angus Johnson Angus Johnson posted a comment on discussion General Discussion

    Hi again Daniel. Firstly, I'm happy to hear zooming is working for you. 👍 Using ClearType inside TSvgReader isn't feasible. ClearType only works when drawing text over a solid color, typically a white background. And I really can't envisage a way to do this in SVG since there's no sensible (time efficient) way to determine text backgrounds.

  • Angus Johnson Angus Johnson posted a comment on discussion General Discussion

    Stretching the current rendered image while zooming (see svg application), while certainly faster is not sharp, Indeed. That's because the stretching is done by pixel interpolation (resampling) rather than by vector scaling and re-rendering (ie rasterizing). this process can benefit from a total reload of the vectorial information of a SVG (slower) Actually, it may be quite a bit quicker because raster scaling isn't very fast (unless using a very inferior resampler - eg nearest neighbor). And the...

  • Angus Johnson Angus Johnson modified a comment on discussion General Discussion

    HI Daniel. Thank you for your very encouraging feedback I was looking into the SVG application, which compiled just fine, but I didn't figure how to use the vectorial scaling advantage when the loaded image is a SVG in TImage32Panel. The idea is to scale the vector image before rendering it, and this is easily managed by setting the image's size before loading the image from file. This may seem strange since we're all so used to loading raster images using their fixed dimensions and then scaling...

  • Angus Johnson Angus Johnson modified a comment on discussion General Discussion

    HI Daniel. Thank you for your very encouraging feedback I was looking into the SVG application, which compiled just fine, but I didn't figure how to use the vectorial scaling advantage when the loaded image is a SVG in TImage32Panel. The idea is to scale the vector image before rendering it, and this is easily managed by setting the image's size before loading the image from file. This may seem strange since we're all so used to loading raster images using their fixed dimensions and then scaling...

  • Angus Johnson Angus Johnson posted a comment on discussion General Discussion

    HI Daniel. Thank you for your very encouraging feedback I was looking into the SVG application, which compiled just fine, but I didn't figure how to use the vectorial scaling advantage when the loaded image is a SVG in TImage32Panel. The idea is to scale the vector image before rendering it, and this is easily managed by setting the image's size before loading the image from file. This may seem strange since we're all so used to loading raster images using their fixed dimensions and then scaling...

  • Angus Johnson Angus Johnson modified ticket #212

    Wrong output when using ctDifference

  • Angus Johnson Angus Johnson committed [baa815]

    Img32.Vector

  • Angus Johnson Angus Johnson committed [r585]

    Clipper2 beta moved to GitHub

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    I'll email you the Delphi code.

  • Angus Johnson Angus Johnson modified a comment on discussion Discussion Forum

    The triangulation code mostly works, and works well. But it crashes when under significant load, so it's not yet fit for inclusion in the library.

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    I'm not committed to the idea, but I thought it would be a helpful differentiation of the two classes.

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    How about ... private static bool IsNearZero(double value) { return (Math.Abs(value) <= Double.Epsilon); } public static bool operator ==(PointD lhs, PointD rhs) { return IsNearZero(lhs.x - rhs.x) && IsNearZero(lhs.y - rhs.y); } public static bool operator !=(PointD lhs, PointD rhs) { return !IsNearZero(lhs.x - rhs.x) || !IsNearZero(lhs.y - rhs.y); } I think it's a lot cleaner, but will the compiler inline the IsNearZero function call?

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    👍

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Do I Understand that for the XOR operation all edges are HOT Not necessarily. Yes, all edges will be HOT when using EvenOdd filling. But they won't be HOT when using NonZero filling and Abs(edge.WindCount) > 1;

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Thanks. 👍

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    The triangulation code mostly works, and works well. But it crashes when undersignificant load, so it's not yet fit for inclusion in the library.

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Thanks. Will update. But wondering if the following may be simpler... public static bool operator !=(PointD lhs, PointD rhs) { return !(lhs == rhs); }

  • Angus Johnson Angus Johnson modified a comment on discussion Discussion Forum

    Hi again Phil. The answer would've been more obvious if your keyhole_sizing variable had been 50000. Anyhow, EndType.Closed (which is about to be renamed EndType.Joined as it currently is in the Delphi code) corresponds to EndType.etClosedLine in Clipper1. This is very different to EndType.Polygon that corresponds to EndType.etClosedPolygon in Clipper1. You've most likely just been confused by another name change, but to clarify for others (in the absense of any Clipper2 documentation) ... offsetting...

  • Angus Johnson Angus Johnson committed [r584]

    Updated Clipper2 beta

  • Angus Johnson Angus Johnson modified a comment on discussion Discussion Forum

    Hi again Phil. The answer would've been more obvious if your keyhole_sizing variable had been 50000. Anyhow, EndType.Closed (which is about to be renamed EndType.Joined as it currently is in the Delphi code) corresponds to EndType.etClosedLine in Clipper1. This is very different to EndType.Polygon that corresponds to EndType.etClosedPolygon in Clipper1. You've most likely just been confused by another name change, but to clarify for others (in the absense of any Clipper2 documentation) ... offsetting...

  • Angus Johnson Angus Johnson modified a comment on discussion Discussion Forum

    Hi again Phil. The answer would've been more obvious if your keyhole_sizing variable had been 50000. Anyhow, EndType.Closed (which is about to be renamed EndType.Joined as it currently is in the Delphi code) corresponds to EndType.etClosedLine in Clipper1. This is very different to EndType.Polygon that corresponds to EndType.etClosedPolygon in Clipper1. You've most likely just been confused by another name change, but to clarify for others (in the absense of any Clipper2 documentation) ... offsetting...

  • Angus Johnson Angus Johnson modified a comment on discussion Discussion Forum

    Hi again Phil. The answer would've been more obvious if your keyhole_sizing variable had been 50000. Anyhow, EndType.Closed (which is about to be renamed EndType.Joined as it currently is in the Delphi code) corresponds to EndType.etClosedLine in Clipper1. This is very different to EndType.Polygon that corresponds to EndType.etClosedPolygon in Clipper1. You've most likely just been confused by another name change, but to clarify for others (in the absense of any Clipper2 documentation) ... offsetting...

  • Angus Johnson Angus Johnson modified a comment on discussion Discussion Forum

    Hi again Phil. The answer would've been more obvious if your keyhole_sizing variable had been 50000. Anyhow, EndType.Closed (which is about to be renamed EndType.Joined as it currently is in the Delphi code) corresponds to EndType.etClosedLine in Clipper1. This is very different to EndType.Polygon that corresponds to EndType.etClosedPolygon in Clipper1. You've most likely just been confused by another name change, but to clarify for others (in the absense of any Clipper2 documentation) ... offsetting...

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Hi again Phil. The answer would've been more obvious if your keyhole_sizing variable had been 50000. Anyhow, EndType.Closed (which is about to be renamed EndType.Joined as it currently is in the Delphi code corresponds to EndType.etClosedLine in Clipper1) is very different to EndType.Polygon (that corresponds to EndType.etClosedPolygon in Clipper1). In a sense, offsetting polygons is unidimensional in that positive offsets extend away from every edge's left side, whereas offsetting open paths (polylines)...

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    SimplifyOption was really a Union (to tidy self-intersections) and then a colinear removal. Neither self-intersections or colinear spikes should be an issue in Clipper2. It's the joining of touching polygons in solutions that was unsatisfactory in Clipper1 and left out of Clipper2.

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    There is a ReversePaths function but I suspect it hasn't been exposed as public.

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Naively, I thought this might be done by looking for angles ~180 degrees (where epsilon is the tolerance). I'm very open to colaboration and incorporating useful code. 😁

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Is the order of argument change intended? Yes, it is 😜. Is it intentional to make the fill rule a required parameter Yes. This parameter should never have had a default value. (I also over complicated this in Clipper1 by having two filling rules, so users could specify different filling from Subject and Clip paths.) Nevertheless, the filling rule is crucial to clipping behavior and I'm not persuaded that most uses would default to even-odd filling. The filling rule really should be explicit. Anyhow,...

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    I'll put this on my growing todo list 😱.

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    I'll fix. Thanks again for all the feedback. 👍

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    and migrating this I now seem to have PathsD: That's temporary, I will definitely add in aPaths option too. There doesn't appear to be a helper in ClipperFunc to go from PathsD to Paths That too will be fixed soon. 😁

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Nope, Clipper1 didn't do this well, and the code was complicated and messy, so it's been removed. There are currently no functions or methods to do this, at least until I can figure out how to do this better than it was done in Clipper1.

  • Angus Johnson Angus Johnson modified a comment on discussion Discussion Forum

    Yes, the GetBoundsmethod will return the bounds of all paths submitted to the Clipper object (by prior AddSubject and AddClip methods).

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Yes, that Method will return the bounds of all paths submitted to the Clipper object (by prior AddSubject and AddClip methods).

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    👍. However, if there's a better was to do this (apart from urgently needed documentation that I'm now working on) I'm still very open to your suggestions. (And Phil, you're very welcome to email me with suggestions.)

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    I understand that this could cause confusion. However I've also removed the AddPaths method in favor of AddSubject and AddClip methods so my hope was, with very clear documentation, this wouldn't cause too much angst. Given that most users would clip closed paths, I thought the more logical parameter should be IsClosed, and the default. IOW, how this was managed in Clipper1 was counter-intuitive. But I'm open to persuasion 😜 and this could easily reverse this (before final release).

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Hi Ignorant. Once again, it would be really helpful if you stopped quoting previous messages in you reply posts. People can already see previous messages so you're just adding a lot of noise with this quoting.

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    As you've noticed, yes this feature isn't currently supported. However, depending on the level of interest, I could be persuaded to reimplement the Z coordinate. (And you present a good case for that 👍.)

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Hi Phil. Wow, lots of quesiion ... which is great feedback ... but now I have to try and answer them all 😱. As you've correctly noticed, there's no preserve colinear property. This is because Clipper2 no longer tries to merge colinear edges. In Clipper1, this feature was complicated and with messy code and provided a far from perfect solution. So, at least for the time being, I've removed this option.

  • Angus Johnson Angus Johnson committed [989a03]

    Img32.Vector

  • Angus Johnson Angus Johnson committed [r583]

    Clipper2: Bugfix for open path clipping

  • Angus Johnson Angus Johnson committed [r582]

    Added credits WRT C# port

  • Angus Johnson Angus Johnson committed [r581]

    Readme for Clipper2 beta tests versions (Delphi & C#)

  • Angus Johnson Angus Johnson committed [r580]

    Clipper2 moved to trunk

  • Angus Johnson Angus Johnson committed [r579]

  • Angus Johnson Angus Johnson committed [r578]

    Minor bugfix and refactoring

  • Angus Johnson Angus Johnson committed [r577]

    Delphi Clipper2 release candidate 1

  • Angus Johnson Angus Johnson committed [9b9be3]

    Minor bugfix in Img32.Layers

  • Angus Johnson Angus Johnson committed [1475e5]

    Fixed compatibility issues with older versions of Delphi.

  • Angus Johnson Angus Johnson posted a comment on discussion Discussion Forum

    Hi John. The Delphi version of Clipper2 is now complete so I'm ready to focus on the C++ and C# translations. If could email me your C# version, or upload it somewhere, I'd be very happy to look at it. Nevertheless it won't be a quick fix because I've made quite a few changes recently to Clipper2. Also, FYI, I've attached a performance comparison between Clipper1 and Clipper2

  • Angus Johnson Angus Johnson committed [r576]

    Delphi Clipper2 release candidate 1

  • Angus Johnson Angus Johnson committed [38d011]

    Fixed bug in Grow function introduced in a recent upload.

  • Angus Johnson Angus Johnson committed [r575]

    Delphi Clipper2 pre-release version.

1 >