returns a Stream of potential boxes that we can execute. Subclass to constrain further, but by default it's all of the children of this timeslider's first parent that have Manipulation.frames that aren't this box --- i.e. all the siblings of this box
()
| 293 | }); |
| 294 | |
| 295 | } |
| 296 | |
| 297 | /** |
| 298 | * returns a Stream of potential boxes that we can execute. Subclass to constrain further, but by default it's all of the children of this |
| 299 | * timeslider's first parent that have Manipulation.frames that aren't this box --- i.e. all the siblings of this box |
| 300 | */ |
| 301 | protected Stream<Box> population() { |
| 302 | return parents().iterator() |
| 303 | .next() |
| 304 | .breadthFirst(this.downwards()) |
| 305 | .filter(x -> !x.properties.isTrue(Chorder.nox, |
| 306 | x.properties.has(Drawing.windowSpace) || |
| 307 | x.properties.has(Drawing.windowScale))) |
| 308 | .filter(x -> Planes.on(parents().iterator().next(), x) >= 0.5) |
| 309 | .filter(x -> x.properties.has(frame)) |
| 310 | .filter(x -> x != this); |