1 # -*- coding: utf-8 -*-
4 from .geomsmesh import geompy
5 from .geomsmesh import geomPublish
6 from .geomsmesh import geomPublishInFather
9 # -----------------------------------------------------------------------------
10 # --- trouver les vertices extremites d'un wire
12 def findWireEndVertices(aWire, getNormals=False):
14 trouver les vertices extremites d'un wire
15 calcul optionnel des tangentes. Attention à la tolérance qui peut être élevée (> 0.001)
18 if geompy.NumberOfEdges(aWire) > 1:
19 edges = geompy.ExtractShapes(aWire, geompy.ShapeType["EDGE"], False)
30 vert = geompy.ExtractShapes(edge, geompy.ShapeType["VERTEX"], False)
33 v0 = geompy.MakeVertexOnCurve(edge, 0.0)
34 n0 = geompy.MakeTangentOnCurve(edge, 0.0)
35 v1 = geompy.MakeVertexOnCurve(edge, 1.0)
36 n1 = geompy.MakeTangentOnCurve(edge, 1.0)
37 dist = geompy.MinDistance(v0, vert[0])
38 logging.debug("distance %s", dist)
43 for i, sub in enumerate(vertices):
44 subid = geompy.GetSubShapeID(aWire, sub)
45 if subid in list(idsubs.keys()):
46 idsubs[subid].append(sub)
50 geomPublishInFather(initLog.debug, aWire, sub, name)
52 idnorm[subid] = normals[i]
54 geomPublishInFather(initLog.debug, aWire, normals[i], name)
55 logging.debug("idsubs: %s", idsubs)
56 for k, v in idsubs.items():
58 shortList.append(v[0])
60 shortNorm.append(idnorm[k])
62 return shortList, shortNorm