Salome HOME
Merge from V7_3_BR (09/01/2014)
[modules/smesh.git] / src / Tools / blocFissure / gmu / prolongeWire.py
diff --git a/src/Tools/blocFissure/gmu/prolongeWire.py b/src/Tools/blocFissure/gmu/prolongeWire.py
new file mode 100644 (file)
index 0000000..72e766d
--- /dev/null
@@ -0,0 +1,29 @@
+# -*- coding: utf-8 -*-
+
+import logging
+from geomsmesh import geompy
+
+# -----------------------------------------------------------------------------
+# --- prolongation d'un wire par deux segments tangents
+
+def prolongeWire(aWire, extrem, norms, long):
+  """
+  """
+  logging.info("start")
+  if geompy.NumberOfEdges(aWire) > 1:
+    edges = geompy.ExtractShapes(aWire, geompy.ShapeType["EDGE"])
+  else:
+    edges = [aWire]
+  for i, v1 in enumerate(extrem):
+    exts = [geompy.MakeTranslationVectorDistance(v1, norms[i], l) for l in (-long, long)]
+    dists = [(geompy.MinDistance(v, aWire), i , v) for i, v in enumerate(exts)]
+    dists.sort()
+    v2 = dists[-1][-1]
+    #v2 = geompy.MakeTranslationVectorDistance(v1, norms[i], long)
+    edge = geompy.MakeEdge(v1, v2)
+    edges.append(edge)
+    name = "extrem%d"%i
+    #geompy.addToStudy(edge,name)
+  wireProlonge = geompy.MakeWire(edges)
+  geompy.addToStudy(wireProlonge, "wireProlonge")
+  return wireProlonge