mytr = myfirst;
mysense = Standard_True;
mymore = (myfirst != 0);
+ myPassedTr.Clear();
+ myPassedTr.Add (mytr);
if (mymore)
{
Standard_Integer i, no[3];
if (mysense) {
for (i = 0; i < 3; i++) {
if (t[i] != 0) {
- myTriangulation->Triangle (t[i]).Get (n[0], n[1], n[2]);
- for (j = 0; j < 3; j++) {
- if ((n[j] == mynode) && (n[(j+1)%3] == myothernode)) {
- mytr = t[i];
- myothernode = n[(j+2)%3];
- mymore = (mytr != myfirst);
- return;
- }
- }
+ myTriangulation->Triangle (t[i]).Get (n[0], n[1], n[2]);
+ for (j = 0; j < 3; j++) {
+ if ((n[j] == mynode) && (n[(j+1)%3] == myothernode)) {
+ mytr = t[i];
+ myothernode = n[(j+2)%3];
+ mymore = !myPassedTr.Contains (mytr);
+ myPassedTr.Add (mytr);
+ return;
+ }
+ }
}
}
// sinon, depart vers la gauche.
if (!mysense) {
for (i = 0; i < 3; i++) {
if (t[i] != 0) {
- myTriangulation->Triangle (t[i]).Get (n[0], n[1], n[2]);
- for (j = 0; j < 3; j++) {
- if ((n[j] == mynode) && (n[(j+2)%3] == myothernode)) {
- mytr = t[i];
- myothernode = n[(j+1)%3];
- mymore = Standard_True;
- return;
- }
- }
+ myTriangulation->Triangle (t[i]).Get (n[0], n[1], n[2]);
+ for (j = 0; j < 3; j++) {
+ if ((n[j] == mynode) && (n[(j+2)%3] == myothernode)) {
+ mytr = t[i];
+ myothernode = n[(j+1)%3];
+ mymore = !myPassedTr.Contains (mytr);
+ myPassedTr.Add (mytr);
+ return;
+ }
+ }
}
}
}
#include <Standard_Handle.hxx>
#include <TColStd_Array1OfInteger.hxx>
+#include <TColStd_PackedMapOfInteger.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Boolean.hxx>
class Poly_Triangulation;
Standard_Integer myothernode;
Standard_Boolean mysense;
Standard_Boolean mymore;
+ TColStd_PackedMapOfInteger myPassedTr;
};