Polygon:: Polygon(Vec *vList, int vertices, double
color[3],
double prop[5])
Konstruktor mnogokotnika s seznamom vozlisc vList. Stevilo vozlisc podaja spremenljivka vertices. Barva mnogokotnika je podana s color. Lastnosti povrsine podaja vektor prop.
Polygon::~ Polygon ()
Destruktor razreda, ki zbrise alocirani seznam vozlisc.
double Polygon::nearestIntersection( vec3& rayDir)
Poisce presecisce mnogokotnika z zarkom, ki je v izhodiscu rayOrg in ima smer rayDir. Povrsino mnogokotnika definirajo prva tri vozlisca. Preseke zarka z mnogokotnikom se doloca na osnovi trikotnikov. Zaradi tega ta metoda (triangle fan) pravilno deluje le za konveksne mnogokotnike. Za mnogokotnike z majhnim stevilom vozlisc, je to najhitrejsa metoda dolocanja notranjosti tocke. Ce presek zarka in mnogokotnika obstaja, funkcija vrne razdaljo od rayOrg do presecisca. Ce presek ne obstaja, vrne vrednost nic.
vec3 Polygon::normalAt( vec3& /* p */)
Vrne normalo mnogokotnika. Ker se normala mnogokotnika ne spreminja, je lahko tocka p poljubna in se ne uposteva pri dolocanju normale. Orientacija in smer normale je dolocena s prvimi tremi vozlisci mnogokotnika.
void Polygon::Describe(int indent)
Na izhodni tok clog izpise vse pomembne lastnosti mnogokotnika. Te so: stevilo vozlisc, koordinate vozlisc, lastnosti povrsine in normala.