Salome HOME
debug
[modules/smesh.git] / src / Tools / blocFissure / gmu / extractionOrienteeMulti.py
1 # -*- coding: utf-8 -*-
2
3 import logging
4 from geomsmesh import geompy
5
6 from whichSideMulti import whichSideMulti
7
8 # -----------------------------------------------------------------------------
9 # --- renvoie l'extraction des shapes d'un objet selon leur position par rapport à la face.
10
11 def extractionOrienteeMulti(faces, ifil, obj, centre, shapeType, tol, prefix=""):
12   """
13   renvoie l'extraction des shapes d'un objet selon leur position
14   par rapport aux faces.
15   shapeType in ["VERTEX", "EDGE", "FACE",...]
16   """
17   logging.info('start')
18   trace = True
19   shapesInside = []
20   shapesOutside = []
21   shapesOnside = []
22   shapes = geompy.ExtractShapes(obj, geompy.ShapeType[shapeType], False)
23   i=0
24   j=0
25   k=0
26   prefix = prefix + shapeType
27   for shape in shapes:
28     side = whichSideMulti(faces, ifil, shape, centre, tol)
29     if side == 1:
30       shapesInside.append(shape)
31       if trace:
32         name = prefix + "_Inside%d"%i
33         geompy.addToStudyInFather(obj, shape, name)
34       i+=1
35     elif side == -1:
36       shapesOutside.append(shape)
37       if trace:
38         name = prefix + "_Outside%d"%j
39         geompy.addToStudyInFather(obj, shape, name)
40       j+=1
41     elif side == 0:
42       shapesOnside.append(shape)
43       if trace:
44         name = prefix + "_Onside%d"%k
45         geompy.addToStudyInFather(obj, shape, name)
46       k+=1
47     logging.debug("--- shape was %s", name)
48   return [shapesInside, shapesOutside, shapesOnside]
49