[Gmsh] Something wrong with edge loop

Christophe Geuzaine cgeuzaine at ulg.ac.be
Thu Mar 12 21:22:29 CET 2009


Peter Wainwright wrote:
> Hi,
> 
> I'm importing a STEP model, generated using a C++ program using
> OpenCASCADE, consisting of triangular NURBS patches.  Of course, these
> are really rectangular but each has one degenerate edge.
> 
> I got a lot of errors "Something wrong with edge loop".  It turns out
> that GEdgeLoop::GEdgeLoop(const std::list<GEdge*> &cwire) will often
> miss the degenerate edge.  For example, if the edge list contains AB,
> BC, CA, CC in that order, then the edge loop will close as AB+BC+CA and
> CC will be skipped.  We would fall through to the end of nextOne(),
> which should never happen.
> 
> Thus nextOne() should check for a degenerate edge and process it before
> moving on (in the same way that it already checks for seams). I've
> attached a patch which does this.
> 

Hi Peter - Indeed, but I fear that your patch will also skip valid 
periodic curves (curves with a single vertex: e.g. a circle with a 
single start/end point). Any ideas?

> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> gmsh mailing list
> gmsh at geuz.org
> http://www.geuz.org/mailman/listinfo/gmsh


-- 
Prof. Christophe Geuzaine
University of Liege, Electrical Engineering and Computer Science
http://www.montefiore.ulg.ac.be/~geuzaine