def isThisPrimMaybeValid(self, prim): # Has each edge of prim a connected prim? if not, track edges will not work!, so the prim # will not valid allGroups = [] allGroups.extend(self.setNotDestroyed) allGroups.extend(self.setPartiallyDestroyed) allGroups.extend(self.setTotDestroyed) edgesHavingPrimitiveConnected = len( GeoMath.getConnectedPrimsOneForEachEdge(prim, allGroups)) connectedWithNot = len( GeoMath.getConnectedPrims(prim, self.setNotDestroyed, 1)) connectedWithTot = len( GeoMath.getConnectedPrims(prim, self.setTotDestroyed, 1)) connectedWithPartially = len( GeoMath.getConnectedPrimsOneForEachEdge( prim, self.setPartiallyDestroyed)) connectedWithPath = len( GeoMath.getConnectedPrimsOneForEachEdge(prim, self.path)) # Prim must to acomplished that the number of connected with partially destroyed plus # connected with not destroyed plus connected with totally destroyed minus connecte with path # must to be greater than 2 primitives (at least two wanted primitives to do recursion after) logging.debug("Method isThisPrimMaybeValid, prim %s , with:", str(prim.number())) logging.debug( "Connected with not: %s, connected with tot: %s, connected with partially: %s, connected with path: %s, edges having primitive: %s", str(connectedWithNot), str(connectedWithTot), str(connectedWithPartially), str(connectedWithPath), str(edgesHavingPrimitiveConnected)) return (((connectedWithPartially + connectedWithTot + connectedWithNot - connectedWithPath) >= 2) and (edgesHavingPrimitiveConnected == len( GeoMath.getEdgesFromPrim(prim))))
def isThisPrimMaybeValid(self, prim): # Has each edge of prim a connected prim? if not, track edges will not work!, so the prim # will not valid allGroups = [] allGroups.extend(self.setNotDestroyed) allGroups.extend(self.setPartiallyDestroyed) allGroups.extend(self.setTotDestroyed) edgesHavingPrimitiveConnected = len(GeoMath.getConnectedPrimsOneForEachEdge(prim, allGroups)) connectedWithNot = len(GeoMath.getConnectedPrims(prim, self.setNotDestroyed, 1)) connectedWithTot = len(GeoMath.getConnectedPrims(prim, self.setTotDestroyed, 1)) connectedWithPartially = len(GeoMath.getConnectedPrimsOneForEachEdge(prim, self.setPartiallyDestroyed)) connectedWithPath = len(GeoMath.getConnectedPrimsOneForEachEdge(prim, self.path)) # Prim must to acomplished that the number of connected with partially destroyed plus # connected with not destroyed plus connected with totally destroyed minus connecte with path # must to be greater than 2 primitives (at least two wanted primitives to do recursion after) logging.debug("Method isThisPrimMaybeValid, prim %s , with:", str(prim.number())) logging.debug("Connected with not: %s, connected with tot: %s, connected with partially: %s, connected with path: %s, edges having primitive: %s", str(connectedWithNot), str(connectedWithTot), str(connectedWithPartially), str(connectedWithPath), str(edgesHavingPrimitiveConnected)) return (((connectedWithPartially + connectedWithTot + connectedWithNot - connectedWithPath) >= 2) and (edgesHavingPrimitiveConnected == len(GeoMath.getEdgesFromPrim(prim))))