Salome HOME
PR: add blocFissure plugin
[modules/smesh.git] / src / Tools / blocFissure / gmu / shapesSurFissure.py
diff --git a/src/Tools/blocFissure/gmu/shapesSurFissure.py b/src/Tools/blocFissure/gmu/shapesSurFissure.py
new file mode 100644 (file)
index 0000000..a8a98a1
--- /dev/null
@@ -0,0 +1,40 @@
+# -*- coding: utf-8 -*-
+
+import logging
+from geomsmesh import geompy
+
+# -----------------------------------------------------------------------------
+# --- identification des shapes modifiées par la duplication des noeuds de la face fissure (d'un coté de la face)
+
+def shapesSurFissure(blocPartition, plane1, faceFissure, gencnt):
+  """
+  TODO: a completer
+  """
+  logging.info('start')
+
+  shapesAModifier = []
+  vertex = geompy.MakeVertexOnSurface(plane1, 0.5, 0.5)
+  normal = geompy.GetNormal(plane1, vertex)
+  extrusion = geompy.MakePrismVecH(plane1, normal, 100)
+
+  sharedSolids = []
+  solids= geompy.GetShapesOnBox ( extrusion, blocPartition, geompy.ShapeType("SOLID"), GEOM.ST_ONIN )
+  for solid in solids:
+    sharedSolids += geompy.GetSharedShapes(faceFissure, solid, geompy.ShapeType["SOLID"])
+  logging.debug("sharedSolids %s",sharedSolids)
+
+  sharedFaces = []
+  faces= geompy.GetShapesOnBox ( extrusion, blocPartition, geompy.ShapeType("FACE"), GEOM.ST_ONIN )
+  for face in faces:
+    sharedFaces += geompy.GetSharedShapes(faceFissure, face, geompy.ShapeType["FACE"])
+  logging.debug("sharedFaces %s",sharedFaces)
+
+  sharedEdges = []
+  edges= geompy.GetShapesOnBox ( extrusion, blocPartition, geompy.ShapeType("EDGE"), GEOM.ST_ONIN )
+  for edge in edges:
+    if not edge.IsSame(gencnt):
+      sharedEdges += geompy.GetSharedShapes(faceFissure, edge, geompy.ShapeType["EDGE"])
+  logging.debug("sharedEdges %s",sharedEdges)
+
+  shapesAModifier = [ sharedSolids, sharedFaces, sharedEdges]
+  return shapesAModifier