Skip to content
Snippets Groups Projects
Commit 1db7ba53 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

try fix for occ constraints

parent e3dcd784
No related branches found
No related tags found
No related merge requests found
...@@ -599,16 +599,17 @@ static void applyOCCMeshConstraints(GModel *m, const void *constraints) ...@@ -599,16 +599,17 @@ static void applyOCCMeshConstraints(GModel *m, const void *constraints)
// set the mesh as immutable // set the mesh as immutable
ge->meshAttributes.Method == MESH_NONE; ge->meshAttributes.Method == MESH_NONE;
// set the correct tags on the boundary vertices // set the correct tags on the boundary vertices
int numbeg = nodeNum.Value(1); bool invert = (nodePar.Value(1) > nodePar.Value(n));
int numend = nodeNum.Value(n); int numbeg = nodeNum.Value(invert ? n : 1);
int numend = nodeNum.Value(invert ? 1 : n);
Msg::Debug("Applying mesh contraints on edge %d: beg=%d end=%d", Msg::Debug("Applying mesh contraints on edge %d: beg=%d end=%d",
ge->tag(), numbeg, numend); ge->tag(), numbeg, numend);
ge->getBeginVertex()->mesh_vertices[0]->setNum(numbeg); ge->getBeginVertex()->mesh_vertices[0]->setNum(numbeg);
ge->getEndVertex()->mesh_vertices[0]->setNum(numend); ge->getEndVertex()->mesh_vertices[0]->setNum(numend);
// set the mesh on the edge // set the mesh on the edge
for(int i = 2; i < n; i++){ for(int i = 2; i < n; i++){
int num = nodeNum.Value(i); int num = nodeNum.Value(invert ? n - i + 1 : i);
double u = nodePar.Value(i); double u = nodePar.Value(invert ? n - i + 1 : i);
GPoint p = ge->point(u); GPoint p = ge->point(u);
Msg::Debug("... adding vertex on edge %d: num=%d u=%g xyz=(%g,%g,%g)", Msg::Debug("... adding vertex on edge %d: num=%d u=%g xyz=(%g,%g,%g)",
ge->tag(), num, u, p.x(), p.y(), p.z()); ge->tag(), num, u, p.x(), p.y(), p.z());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment