## Reply To: Polygon Operations Extension

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

#2032
Heimo Mooslechner
Participant

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:

``````
! --- QUELL- + ZIELCONTAINER ERZEUGEN
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:

`CLOSEADDONSCOPE (Kanal)`

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