Le 18/06/2015 20:38, Tobias Boege a écrit : > Hi Benoit, > > the attached project shows two strange behaviours of Polygon from the > gb.clipper component. > > (1) Polygon._get() returns a new PointF object created on the fly from > internal data. However, people would think that > > hPolygon[0].X = 20 > > should modify the zeroth point's x coordinate to 20, which it doesn't > in the current implementation. Can't we cache the PointF objects such > that changes to the return values of _get() are updated into the > Polygon? >
To do that, we have to replace the PointF by a specific class (PolygonPointF?) that is like PointF, but owns a reference on the Polygon, so that updating the point updates the polygon. There is the same trick with the Control.Font class, so that it behaves the way you describe. But it's heavy: it uses one pointer more for the two floating point coordinates. So I don't really like it. > (2) If I AddPoint() like this > > pPoint = New PointF(10, 10) > hPolygon.AddPoint(pPoint) > Print hPolygon[hPolygon.Max].X > > it yields zero, but I feel it should be 10. I have no explanation for > this one. The signature of the method was false. I fixed it in revision #7140. Regards, -- Benoît Minisini ------------------------------------------------------------------------------ _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user