public static List<Double> arange(double start, double end, double step) { double scaledStart = start / step; double scaledEnd = end / step; double floorGap = scaledStart - (int) scaledStart; return ContiguousSet.create(Range.closed((int) scaledStart, (int) scaledEnd), DiscreteDomain.integers()) .stream().map(x -> (x + floorGap) * step).collect(Collectors.toList()); }
public static List<Double> linspace(double start, double end, int num) { Preconditions.checkArgument(num >= 0); return ContiguousSet.create(Range.closedOpen(0, num), DiscreteDomain.integers()) .stream().map(x -> (x * (end - start)) / (num - 1) + start).collect(Collectors.toList()); }
private Stream<LineNode> createVisibleLineNodesStream() { ContiguousSet<Integer> visibleIndexes = ContiguousSet.create(ContentView.this.visibleLines.get(), DiscreteDomain.integers()); // return visibleIndexes.stream().filter(i->i<model.size()).map(idx->get(model.get(idx))).filter(n->n.isPresent()).map(n->n.get()).filter(n->n.isVisible()); return visibleIndexes.stream() .filter(i -> i.intValue() < getNumberOfLines()) .map(idx -> getVisibleNode(idx.intValue())) .filter(n -> n.isPresent()).map(n->n.get()); }
static IntStream toIntStream(Range<Integer> range) { return ContiguousSet.create(range, DiscreteDomain.integers()).stream().mapToInt(i->i.intValue()); }
public List<HoverTarget> findHoverTargets(Point2D localLocation) { ContiguousSet<Integer> visibleIndexes = ContiguousSet.create(ContentView.this.visibleLines.get(), DiscreteDomain.integers()); return visibleIndexes.stream() .map(lineIndex->getVisibleNode(lineIndex)) .filter(x->x.isPresent()) .filter(x->x.get().getBoundsInParent().contains(localLocation)) .flatMap(x->x.get().findHoverTargets(x.get().parentToLocal(localLocation)).stream()) .collect(Collectors.toList()); }
public Optional<TextNode> findTextNode(Point2D localLocation) { ContiguousSet<Integer> visibleLineIndexes = ContiguousSet.create(ContentView.this.visibleLines.get(), DiscreteDomain.integers()); return visibleLineIndexes.stream() .map(lineIndex->getVisibleNode(lineIndex)) .filter(x->x.isPresent()) .filter(x->x.get().getBoundsInParent().contains(localLocation)) .findFirst() .flatMap(x->x.get().findTextNode(x.get().parentToLocal(localLocation))); }