private static boolean aConnectedNodeHasValenceLessThan(final Edge edge, final int valence) { return edge // go through each connected node of given edge .connectedNodes().stream() // check if any of them has less than given valence value .anyMatch(node -> node.connectedEdges().stream() // counting only master edge connections .filter(Edge::isMasterEdge).count() < valence); }
private static Predicate<Edge> ignoreTags() { return edge -> !(Validators.isOfType(edge, CoveredTag.class, CoveredTag.YES) || Validators.isOfType(edge, TunnelTag.class, TunnelTag.BUILDING_PASSAGE, TunnelTag.YES) || Validators.isOfType(edge, AreaTag.class, AreaTag.YES) || YES_VALUE.equals(edge.tag(INDOOR_KEY)) || HIGHWAY_SERVICE_TAG.test(edge) && Validators.isOfType(edge, ServiceTag.class, ServiceTag.DRIVEWAY) || edge.connectedNodes().stream().anyMatch(node -> Validators.isOfType(node, EntranceTag.class, EntranceTag.YES) || Validators.isOfType(node, AmenityTag.class, AmenityTag.PARKING_ENTRANCE) // Ignore edges with nodes containing Barrier tags || Validators.hasValuesFor(node, BarrierTag.class))); }
mergedCandidate.forEach(edge -> nodes.addAll(edge.connectedNodes())); final Set<BigNodeCandidate> bigNodesMergeCandidates = new HashSet<>(); for (final Node node : nodes)
for (final Node node : edge.connectedNodes())
logger.info("Got Edge geometry {}", line); Assert.assertTrue(getField(deserialized, PackedAtlas.FIELD_EDGE_POLY_LINES) != null); final Set<Node> connectedNodes = edge.connectedNodes(); logger.info("Got Edge connected Nodes {}", connectedNodes.stream() .map(aNode -> aNode.getIdentifier()).collect(Collectors.toList()));