Reply To: Polygon Operations Extension

Home Forums Problems and solutions in GDL GDL add-ons Polygon Operations Extension Reply To: Polygon Operations Extension

Heimo Mooslechner

What i am looking for exactly is this:

I have a given Array of x and y – a closed polygone in the form of:

x[points] and y[points] and the number of points in the Array in an extra integer named “points”.

I want to get a second polygone – with an inner offset to the original one.

As far as i understand the GDL-handbook, i first have to open a channel with the code:

kanal = INITADDONSCOPE ("PolyOperations ", "", "")

Then i have to prepare my source and Target – Polygones:

PREPAREFUNCTION kanal, "CreateContainer", "Eingang", ""
PREPAREFUNCTION kanal, "SetSourceContainer", "Eingang", ""

PREPAREFUNCTION kanal, "CreateContainer", "Ergebnis", ""
PREPAREFUNCTION kanal, "SetDestinationContainer", "Ergebnis", ""

after this, i have to give my extra stored coordinates into one array:

for oft = 1 to points

arrayname[oft][1] = x[oft]
arrayname[oft][2] = y[oft]
arrayname[oft][3] = 0 !! angle?
nZug=nZug+1 : zug[nZug]=oft

next oft

Then i have to give the array to the function:

PREPAREFUNCTION kanal, "Store", "Polygon", points, 1, arrayname, zug (contourArray)

i have difficulties to understand this:

contourArray: An array which contains the index of the last vertex of the i-th contour. It must have exactly nContours items.

Therefor i would need an Example how to to this correctly!

Then i have to “init” the calculation with: ?? or how exactly?

dim resPolyIDArray[]
nPgon = CALLFUNCTION (Kanal, "OffsetEdge", "Polygon", resPolyIDArray)

Then i have to read out the resulting array:

nPgon = CALLFUNCTION (Kanal, "GetDestinationPolygons", "", resPolyIDArray)

after this i can close it:


Then i can use put and get for an Poly2-Command to draw the polygone. Im i Right so far? There are a lot of possible mistakes i can make with this very complex command…

Teacher in HTL-Salzburg
AC5-19, Win and Mac
GDL hobby developer