linesweeper 0.3.0

Robust sweep-line algorithm and two-dimensional boolean ops
Documentation
---
source: src/sweep/sweep_line.rs
expression: "snapshot_outputs(segs, 0.1)"
---
[
  Output(
    y: -0.5,
    order: SegmentOrder(
      segs: [
        SegmentOrderEntry(
          seg: SegIdx(7),
          exit: false,
          enter: true,
          lower_bound: -0.6,
          upper_bound: -0.4,
          in_changed_interval: true,
          old_idx: Some(0),
          old_seg: None,
        ),
        SegmentOrderEntry(
          seg: SegIdx(5),
          exit: false,
          enter: true,
          lower_bound: 0.4,
          upper_bound: 0.6,
          in_changed_interval: true,
          old_idx: Some(1),
          old_seg: None,
        ),
      ],
    ),
    changed: [
      ChangedInterval(
        segs: Range(
          start: 0,
          end: 2,
        ),
        horizontals: Some(Range(
          start: 0,
          end: 1,
        )),
      ),
    ],
  ),
  Output(
    y: 0.0,
    order: SegmentOrder(
      segs: [
        SegmentOrderEntry(
          seg: SegIdx(7),
          exit: false,
          enter: false,
          lower_bound: -0.6,
          upper_bound: -0.4,
          in_changed_interval: false,
          old_idx: None,
          old_seg: None,
        ),
        SegmentOrderEntry(
          seg: SegIdx(3),
          exit: false,
          enter: true,
          lower_bound: -0.1,
          upper_bound: 0.1,
          in_changed_interval: true,
          old_idx: Some(1),
          old_seg: None,
        ),
        SegmentOrderEntry(
          seg: SegIdx(5),
          exit: false,
          enter: false,
          lower_bound: 0.4,
          upper_bound: 0.6,
          in_changed_interval: false,
          old_idx: Some(2),
          old_seg: None,
        ),
        SegmentOrderEntry(
          seg: SegIdx(1),
          exit: false,
          enter: true,
          lower_bound: 0.9,
          upper_bound: 1.1,
          in_changed_interval: true,
          old_idx: Some(3),
          old_seg: None,
        ),
      ],
    ),
    changed: [
      ChangedInterval(
        segs: Range(
          start: 1,
          end: 4,
        ),
        horizontals: Some(Range(
          start: 0,
          end: 1,
        )),
      ),
    ],
  ),
  Output(
    y: 0.5,
    order: SegmentOrder(
      segs: [
        SegmentOrderEntry(
          seg: SegIdx(7),
          exit: true,
          enter: false,
          lower_bound: -0.6,
          upper_bound: -0.4,
          in_changed_interval: true,
          old_idx: Some(0),
          old_seg: None,
        ),
        SegmentOrderEntry(
          seg: SegIdx(3),
          exit: false,
          enter: false,
          lower_bound: -0.1,
          upper_bound: 0.1,
          in_changed_interval: false,
          old_idx: Some(1),
          old_seg: None,
        ),
        SegmentOrderEntry(
          seg: SegIdx(5),
          exit: true,
          enter: false,
          lower_bound: 0.4,
          upper_bound: 0.6,
          in_changed_interval: true,
          old_idx: Some(2),
          old_seg: None,
        ),
        SegmentOrderEntry(
          seg: SegIdx(1),
          exit: false,
          enter: false,
          lower_bound: 0.9,
          upper_bound: 1.1,
          in_changed_interval: false,
          old_idx: None,
          old_seg: None,
        ),
      ],
    ),
    changed: [
      ChangedInterval(
        segs: Range(
          start: 0,
          end: 3,
        ),
        horizontals: Some(Range(
          start: 0,
          end: 1,
        )),
      ),
    ],
  ),
  Output(
    y: 1.0,
    order: SegmentOrder(
      segs: [
        SegmentOrderEntry(
          seg: SegIdx(3),
          exit: true,
          enter: false,
          lower_bound: -0.1,
          upper_bound: 0.1,
          in_changed_interval: true,
          old_idx: Some(0),
          old_seg: None,
        ),
        SegmentOrderEntry(
          seg: SegIdx(1),
          exit: true,
          enter: false,
          lower_bound: 0.9,
          upper_bound: 1.1,
          in_changed_interval: true,
          old_idx: Some(1),
          old_seg: None,
        ),
      ],
    ),
    changed: [
      ChangedInterval(
        segs: Range(
          start: 0,
          end: 2,
        ),
        horizontals: Some(Range(
          start: 0,
          end: 1,
        )),
      ),
    ],
  ),
]