---
source: src/topology.rs
expression: "(&top, contours, top.build_scan_line_orders())"
---
(Topology(
eps: 0.01,
tag: [
true,
true,
true,
true,
false,
false,
false,
false,
],
open_segs: [
[],
[],
[],
[],
[],
[],
[],
[],
],
winding: OutputSegVec(
inner: [
HalfSegmentWindingNumbers(
counter_clockwise: BinaryWindingNumber(
shape_a: -1,
shape_b: 0,
),
clockwise: BinaryWindingNumber(
shape_a: 0,
shape_b: 0,
),
),
HalfSegmentWindingNumbers(
counter_clockwise: BinaryWindingNumber(
shape_a: 0,
shape_b: 0,
),
clockwise: BinaryWindingNumber(
shape_a: -1,
shape_b: 0,
),
),
HalfSegmentWindingNumbers(
counter_clockwise: BinaryWindingNumber(
shape_a: 0,
shape_b: 0,
),
clockwise: BinaryWindingNumber(
shape_a: -1,
shape_b: 0,
),
),
HalfSegmentWindingNumbers(
counter_clockwise: BinaryWindingNumber(
shape_a: -1,
shape_b: -1,
),
clockwise: BinaryWindingNumber(
shape_a: -1,
shape_b: 0,
),
),
HalfSegmentWindingNumbers(
counter_clockwise: BinaryWindingNumber(
shape_a: -1,
shape_b: 0,
),
clockwise: BinaryWindingNumber(
shape_a: -1,
shape_b: -1,
),
),
HalfSegmentWindingNumbers(
counter_clockwise: BinaryWindingNumber(
shape_a: -1,
shape_b: 0,
),
clockwise: BinaryWindingNumber(
shape_a: -1,
shape_b: -1,
),
),
HalfSegmentWindingNumbers(
counter_clockwise: BinaryWindingNumber(
shape_a: -1,
shape_b: -1,
),
clockwise: BinaryWindingNumber(
shape_a: -1,
shape_b: 0,
),
),
HalfSegmentWindingNumbers(
counter_clockwise: BinaryWindingNumber(
shape_a: -1,
shape_b: 0,
),
clockwise: BinaryWindingNumber(
shape_a: 0,
shape_b: 0,
),
),
],
),
points: PointVec(
inner: [
Point(
y: -2.0,
x: -2.0,
),
Point(
y: -2.0,
x: 2.0,
),
Point(
y: -1.0,
x: -1.0,
),
Point(
y: -1.0,
x: 1.0,
),
Point(
y: 1.0,
x: -1.0,
),
Point(
y: 1.0,
x: 1.0,
),
Point(
y: 2.0,
x: -2.0,
),
Point(
y: 2.0,
x: 2.0,
),
],
),
point_idx: HalfOutputSegVec(
start: [
PointIdx(0),
PointIdx(0),
PointIdx(1),
PointIdx(2),
PointIdx(2),
PointIdx(3),
PointIdx(4),
PointIdx(6),
],
end: [
PointIdx(6),
PointIdx(1),
PointIdx(7),
PointIdx(4),
PointIdx(3),
PointIdx(5),
PointIdx(5),
PointIdx(7),
],
),
point_neighbors: HalfOutputSegVec(
start: [
PointNeighbors(
clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(1),
first_half: true,
),
counter_clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(1),
first_half: true,
),
),
PointNeighbors(
clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(0),
first_half: true,
),
counter_clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(0),
first_half: true,
),
),
PointNeighbors(
clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(1),
first_half: false,
),
counter_clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(1),
first_half: false,
),
),
PointNeighbors(
clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(4),
first_half: true,
),
counter_clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(4),
first_half: true,
),
),
PointNeighbors(
clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(3),
first_half: true,
),
counter_clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(3),
first_half: true,
),
),
PointNeighbors(
clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(4),
first_half: false,
),
counter_clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(4),
first_half: false,
),
),
PointNeighbors(
clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(3),
first_half: false,
),
counter_clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(3),
first_half: false,
),
),
PointNeighbors(
clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(0),
first_half: false,
),
counter_clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(0),
first_half: false,
),
),
],
end: [
PointNeighbors(
clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(7),
first_half: true,
),
counter_clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(7),
first_half: true,
),
),
PointNeighbors(
clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(2),
first_half: true,
),
counter_clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(2),
first_half: true,
),
),
PointNeighbors(
clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(7),
first_half: false,
),
counter_clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(7),
first_half: false,
),
),
PointNeighbors(
clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(6),
first_half: true,
),
counter_clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(6),
first_half: true,
),
),
PointNeighbors(
clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(5),
first_half: true,
),
counter_clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(5),
first_half: true,
),
),
PointNeighbors(
clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(6),
first_half: false,
),
counter_clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(6),
first_half: false,
),
),
PointNeighbors(
clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(5),
first_half: false,
),
counter_clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(5),
first_half: false,
),
),
PointNeighbors(
clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(2),
first_half: false,
),
counter_clockwise: HalfOutputSegIdx(
idx: OutputSegIdx(2),
first_half: false,
),
),
],
),
deleted: OutputSegVec(
inner: [
false,
false,
false,
false,
false,
false,
false,
false,
],
),
scan_west: OutputSegVec(
inner: [
None,
Some(OutputSegIdx(0)),
Some(OutputSegIdx(0)),
Some(OutputSegIdx(0)),
Some(OutputSegIdx(3)),
Some(OutputSegIdx(3)),
Some(OutputSegIdx(0)),
None,
],
),
scan_east: OutputSegVec(
inner: [
None,
None,
None,
None,
None,
Some(OutputSegIdx(2)),
None,
None,
],
),
scan_after: [
(1.0, Some(OutputSegIdx(0)), Some(OutputSegIdx(2))),
],
orig_seg: OutputSegVec(
inner: [
SegIdx(3),
SegIdx(0),
SegIdx(1),
SegIdx(7),
SegIdx(4),
SegIdx(5),
SegIdx(6),
SegIdx(2),
],
),
positively_oriented: OutputSegVec(
inner: [
false,
true,
true,
false,
true,
true,
false,
false,
],
),
), Contours(
contours: [
Contour(
path: BezPath([
MoveTo(Point(
x: -2.0,
y: -2.0,
)),
LineTo(Point(
x: -2.0,
y: 2.0,
)),
LineTo(Point(
x: 2.0,
y: 2.0,
)),
LineTo(Point(
x: 2.0,
y: -2.0,
)),
LineTo(Point(
x: -2.0,
y: -2.0,
)),
ClosePath,
]),
parent: None,
outer: true,
),
Contour(
path: BezPath([
MoveTo(Point(
x: -1.0,
y: 1.0,
)),
LineTo(Point(
x: -1.0,
y: -1.0,
)),
LineTo(Point(
x: 1.0,
y: -1.0,
)),
LineTo(Point(
x: 1.0,
y: 1.0,
)),
LineTo(Point(
x: -1.0,
y: 1.0,
)),
ClosePath,
]),
parent: Some(ContourIdx(0)),
outer: false,
),
],
), ScanLineOrder(
west_map: HalfScanLineOrder(
inner: OutputSegVec(
inner: [
[],
[],
[
(-2.0, Some(OutputSegIdx(0))),
(-1.0, Some(OutputSegIdx(5))),
(1.0, Some(OutputSegIdx(0))),
],
[
(-1.0, Some(OutputSegIdx(0))),
],
[],
[
(-1.0, Some(OutputSegIdx(3))),
],
[],
[],
],
),
),
east_map: HalfScanLineOrder(
inner: OutputSegVec(
inner: [
[
(-2.0, Some(OutputSegIdx(2))),
(-1.0, Some(OutputSegIdx(3))),
(1.0, Some(OutputSegIdx(2))),
],
[],
[],
[
(-1.0, Some(OutputSegIdx(5))),
],
[],
[
(-1.0, Some(OutputSegIdx(2))),
],
[],
[],
],
),
),
))