| home | << prev | next >> | contents |
| Element type: | miSCENE_POLYGON |
| Data type: | miPolygon[ ] |
| Sizes: | int no_polys |
| Defaults: | all nulls |
typedef struct miPolygon {
miGeoIndex no_loops; /* 1 + (number of holes) */
miGeoIndex no_vertices; /* total number of vertices + headers*/
miGeoIndex vertex_idx; /* into indices list, for sharing */
miTag material; /* surface properties */
miCBoolean convex; /* is polygon convex ? */
miCBoolean spare[3]; /* not used */
} miPolygon;
A translator must provide: all fields except
spare.
no_loops is the number of loops of the polygon. Every polygon has exactly one outer boundary loop, plus any number of optional hole loops. Every loop is stored as a pseudo-index called a "header" that doesn't actually refer to the vector list but gives the number of indices to follow, followed by that many indices.
no_vertices is the total number of headers (the number of holes plus 1) plus the total number of vertices for this polygon.
vertex_idx is an index to the first header of the polygon in the index list. no_vertices indices beginning at vertex_idex define the polygon.
material is the tag of the material of the polygon. It must refer to a database element of type miSCENE_MATERIAL.
convex is a flag telling the tessellator that the polygon has no holes and is guaranteed to be convex. This saves time because GAP can use a very simple tessellation algorithm.
| home | << prev | next >> | contents |
Copyright © 1986-2007 by mental images GmbH