mirror of https://codeberg.org/topola/topola.git
egui: display both CW and CCW navvertices separately
This commit is contained in:
parent
47c888d21b
commit
3c578ccada
|
|
@ -158,15 +158,31 @@ impl Viewport {
|
||||||
if let Some(execute) = maybe_execute {
|
if let Some(execute) = maybe_execute {
|
||||||
if let Some(navmesh) = execute.maybe_navmesh() {
|
if let Some(navmesh) = execute.maybe_navmesh() {
|
||||||
for edge in navmesh.edge_references() {
|
for edge in navmesh.edge_references() {
|
||||||
let from = PrimitiveIndex::from(navmesh.node_weight(edge.source()).unwrap().node)
|
let mut from = PrimitiveIndex::from(navmesh.node_weight(edge.source()).unwrap().node)
|
||||||
.primitive(board.layout().drawing())
|
.primitive(board.layout().drawing())
|
||||||
.shape()
|
.shape()
|
||||||
.center();
|
.center();
|
||||||
let to = PrimitiveIndex::from(navmesh.node_weight(edge.target()).unwrap().node)
|
let mut to = PrimitiveIndex::from(navmesh.node_weight(edge.target()).unwrap().node)
|
||||||
.primitive(board.layout().drawing())
|
.primitive(board.layout().drawing())
|
||||||
.shape()
|
.shape()
|
||||||
.center();
|
.center();
|
||||||
|
|
||||||
|
if let Some(from_cw) = navmesh.node_weight(edge.source()).unwrap().maybe_cw {
|
||||||
|
if from_cw {
|
||||||
|
from -= [0.0, 150.0].into();
|
||||||
|
} else {
|
||||||
|
from += [0.0, 150.0].into();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(to_cw) = navmesh.node_weight(edge.target()).unwrap().maybe_cw {
|
||||||
|
if to_cw {
|
||||||
|
to -= [0.0, 150.0].into();
|
||||||
|
} else {
|
||||||
|
to += [0.0, 150.0].into();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let stroke = 'blk: {
|
let stroke = 'blk: {
|
||||||
if let (Some(source_pos), Some(target_pos)) = (
|
if let (Some(source_pos), Some(target_pos)) = (
|
||||||
execute.maybe_trace().map(|trace|
|
execute.maybe_trace().map(|trace|
|
||||||
|
|
@ -207,14 +223,14 @@ impl Viewport {
|
||||||
painter.paint_dot(
|
painter.paint_dot(
|
||||||
Circle {
|
Circle {
|
||||||
pos: board.layout().drawing().primitive(origin).shape().center(),
|
pos: board.layout().drawing().primitive(origin).shape().center(),
|
||||||
r: 60.0,
|
r: 150.0,
|
||||||
},
|
},
|
||||||
egui::Color32::from_rgb(255, 255, 100),
|
egui::Color32::from_rgb(255, 255, 100),
|
||||||
);
|
);
|
||||||
painter.paint_dot(
|
painter.paint_dot(
|
||||||
Circle {
|
Circle {
|
||||||
pos: board.layout().drawing().primitive(destination).shape().center(),
|
pos: board.layout().drawing().primitive(destination).shape().center(),
|
||||||
r: 60.0,
|
r: 150.0,
|
||||||
},
|
},
|
||||||
egui::Color32::from_rgb(255, 255, 100),
|
egui::Color32::from_rgb(255, 255, 100),
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue