X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FTools%2FblocFissure%2Fgmu%2FextractionOrienteeMulti.py;fp=src%2FTools%2FblocFissure%2Fgmu%2FextractionOrienteeMulti.py;h=86faec83d35189cd449ccd76639699ecd19c4635;hb=e9e7af000e6d84b90aaa62d06f8c28ab093b0745;hp=0000000000000000000000000000000000000000;hpb=8c0cc49261c88cde61a96c8642ac89e061ff1fd8;p=modules%2Fsmesh.git diff --git a/src/Tools/blocFissure/gmu/extractionOrienteeMulti.py b/src/Tools/blocFissure/gmu/extractionOrienteeMulti.py new file mode 100644 index 000000000..86faec83d --- /dev/null +++ b/src/Tools/blocFissure/gmu/extractionOrienteeMulti.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- + +import logging +from geomsmesh import geompy + +from whichSideMulti import whichSideMulti + +# ----------------------------------------------------------------------------- +# --- renvoie l'extraction des shapes d'un objet selon leur position par rapport à la face. + +def extractionOrienteeMulti(faces, ifil, obj, centre, shapeType, tol, prefix=""): + """ + renvoie l'extraction des shapes d'un objet selon leur position + par rapport aux faces. + shapeType in ["VERTEX", "EDGE", "FACE",...] + """ + logging.info('start') + trace = True + shapesInside = [] + shapesOutside = [] + shapesOnside = [] + shapes = geompy.ExtractShapes(obj, geompy.ShapeType[shapeType], False) + i=0 + j=0 + k=0 + prefix = prefix + shapeType + for shape in shapes: + side = whichSideMulti(faces, ifil, shape, centre, tol) + if side == 1: + shapesInside.append(shape) + if trace: + name = prefix + "_Inside%d"%i + geompy.addToStudyInFather(obj, shape, name) + i+=1 + elif side == -1: + shapesOutside.append(shape) + if trace: + name = prefix + "_Outside%d"%j + geompy.addToStudyInFather(obj, shape, name) + j+=1 + elif side == 0: + shapesOnside.append(shape) + if trace: + name = prefix + "_Onside%d"%k + geompy.addToStudyInFather(obj, shape, name) + k+=1 + logging.debug("--- shape was %s", name) + return [shapesInside, shapesOutside, shapesOnside] +