Use solid edges for normal selection

This commit is contained in:
ramox81 committed 2026-09-02 14:38:22 +03:00
1 parent bde9cc2715
commit a706858ff1
6 files changed
+222 -18

No files matched your search

+14 -2
View File
@@ -3266,9 +3266,19 @@ impl Pipeline {
&mut self,
selected: &rustc_hash::FxHashSet<acadrust::Handle>,
hovered: &rustc_hash::FxHashSet<acadrust::Handle>,
edge_wires: &[WireModel],
) {
let edge_handles: rustc_hash::FxHashSet<acadrust::Handle> = edge_wires
.iter()
.filter_map(|wire| wire.name.strip_prefix("mesh-edge:"))
.filter_map(|value| value.parse::<u64>().ok())
.map(acadrust::Handle::new)
.collect();
let mut out = Vec::new();
for handle in selected {
for handle in selected
.iter()
.filter(|handle| !edge_handles.contains(handle))
{
if let Some(ranges) = self.mesh_ranges_by_handle.get(handle) {
out.extend(ranges.iter().copied().map(|range| MeshHighlightDraw {
range,
@@ -3276,7 +3286,9 @@ impl Pipeline {
}));
}
}
for handle in hovered.iter().filter(|handle| !selected.contains(handle)) {
for handle in hovered.iter().filter(|handle| {
!selected.contains(handle) && !edge_handles.contains(handle)
}) {
if let Some(ranges) = self.mesh_ranges_by_handle.get(&handle) {
out.extend(ranges.iter().copied().map(|range| MeshHighlightDraw {
range,