+ ## Transform a list of ether edges or tuples (edge 1st_vertex_of_edge)
+ # into a list acceptable to SetReversedEdges() of some 1D hypotheses
+ # @ingroupl3_hypos_1dhyps
+ def ReversedEdgeIndices(self, reverseList):
+ resList = []
+ geompy = self.mesh.geompyD
+ for i in reverseList:
+ if isinstance( i, int ):
+ s = geompy.SubShapes(self.mesh.geom, [i])[0]
+ if s.GetShapeType() != geompyDC.GEOM.EDGE:
+ raise TypeError, "Not EDGE index given"
+ resList.append( i )
+ elif isinstance( i, geompyDC.GEOM._objref_GEOM_Object ):
+ if i.GetShapeType() != geompyDC.GEOM.EDGE:
+ raise TypeError, "Not an EDGE given"
+ resList.append( geompy.GetSubShapeID(self.mesh.geom, i ))
+ elif len( i ) > 1:
+ e = i[0]
+ v = i[1]
+ if not isinstance( e, geompyDC.GEOM._objref_GEOM_Object ) or \
+ not isinstance( v, geompyDC.GEOM._objref_GEOM_Object ):
+ raise TypeError, "A list item must be a tuple (edge 1st_vertex_of_edge)"
+ if v.GetShapeType() == geompyDC.GEOM.EDGE and \
+ e.GetShapeType() == geompyDC.GEOM.VERTEX:
+ v,e = e,v
+ if e.GetShapeType() != geompyDC.GEOM.EDGE or \
+ v.GetShapeType() != geompyDC.GEOM.VERTEX:
+ raise TypeError, "A list item must be a tuple (edge 1st_vertex_of_edge)"
+ vFirst = FirstVertexOnCurve( e )
+ tol = geompy.Tolerance( vFirst )[-1]
+ if geompy.MinDistance( v, vFirst ) > 1.5*tol:
+ resList.append( geompy.GetSubShapeID(self.mesh.geom, e ))
+ else:
+ raise TypeError, "Item must be either an edge or tuple (edge 1st_vertex_of_edge)"
+ return resList
+