"uuilly" <willy.lists@[EMAIL PROTECTED]
> wrote in message
news:b204512e-7fb7-4fdc-9d46-369db9277154@[EMAIL PROTECTED]
Aug 21, 9:11 am, "jbwest" <jbw...@[EMAIL PROTECTED]
> wrote:
> <willy.p...@[EMAIL PROTECTED]
> wrote in message
>
>
news:c45bd917-ce46-4f04-82e7-4cf6508e6e15@[EMAIL PROTECTED]
> On Aug 20, 5:40 pm, "jbwest" <jbw...@[EMAIL PROTECTED]
> wrote:
>
> [...]
>
>
>
> > Gosh, it's been a while... Is it a closure problem? Do you need to add
a
> > last point = 1st in the input data to close up the polygon ?
>
> > jbw
> >I've tried w/ and w/o a last==first. It's funny, it fixes some of the
> >counties and breaks just as many others. Any other thoughts? My next
> > move is to write my own tessellation algorithm.
>
> That's definitely a closure, off-by-one or last-triangle logic problem.
> I've
> never had problems with the much-maligned tesselator with very complex
> geometries. Surely you can just trace what's being emitted and see why
the
> last triangle isn't being created (or has the wrong winding ?).
>
> jbw
>I think I get closure, first == last, but what is an: "Off by one" or
>"last triangle logic problem"? Thanks for the advice btw.
Your sample data doesn't even invoke Combine on my Linux glu Tesselator
sample app. Just a combination of tri-strips and tri-fans, resulting in a
rectangle. One or the other of those types of BEGIN appears to be
implemented wrong in your app. Otherwise, does this note apply to you ?
"Notes
It is a common error to use a local variable for location or data and
store
values into it as part of a loop. For example: for (i = 0; i < NVERTICES;
++i) {
GLdouble data[3];
data[0] = vertex[i][0];
data[1] = vertex[i][1];
data[2] = vertex[i][2];
gluTessVertex(tobj, data, data);
}
This doesn't work. Because the pointers specified by location and data
might
not be dereferenced until gluTessEndPolygon is executed, all the vertex
coordinates but the very last set could be overwritten before tessellation
begins.
Two common symptoms of this problem are consists of a single point (when a
local variable is used for data) and a GLU_TESS_NEED_COMBINE_CALLBACK
error
(when a local variable is used for location."
jbw


|