forked from 1b-agent/opencadstudio-upstream
feat(viewport): click activates tile, swaps in its camera
Tiled Model layout'ta aktif olmayan bir tile'a tıklamak onu aktive edip kamerasını canlı scene.camera'ya yüklüyor (set_active_model_tile_at). Böylece her panel bağımsız bir bakış tutuyor — bir panelde orbit/zoom yaparken diğerleri sabit kalıyor. Aktif tile'a tıklama normal selection/draw akışına devam ediyor. Pick/pan/viewcube'un tam tile-relative koordinat yönlendirmesi sıradaki adımda. Co-Authored-By: Claude Opus 4.7 <[email protected]>
This commit is contained in:
1 parent
c45146bbda
commit
41c75dbb9b
1 file changed
+13
@@ -1974,6 +1974,19 @@ impl OpenCADStudio {
|
||||
}
|
||||
}
|
||||
|
||||
// Tiled Model layout: clicking a non-active tile activates
|
||||
// it (swapping in its camera) instead of selecting / drawing.
|
||||
if self.tabs[i].active_cmd.is_none() && vw > 1.0 && vh > 1.0 {
|
||||
if self
|
||||
.tabs[i]
|
||||
.scene
|
||||
.set_active_model_tile_at(p.x / vw, p.y / vh)
|
||||
{
|
||||
self.tabs[i].scene.camera_generation += 1;
|
||||
return Task::none();
|
||||
}
|
||||
}
|
||||
|
||||
if self.tabs[i].active_cmd.is_none() && !self.tabs[i].selected_grips.is_empty() {
|
||||
if let Some(handle) = self.tabs[i].selected_handle {
|
||||
let is_paper = self.tabs[i].scene.current_layout != "Model";
|
||||
|
||||
Reference in new issue
Block a user