#pragma once // Ürün Ağacı paneli — ECS hiyerarşisinden (AgacSaglayiciKaydi) iç içe sürülen // CATIA tarzı ağaç. Geometri gövdeleri + CAM sanal düğümleri (op/part-op) tek // ağaçta; seçim/çift-tık/sağ-tık davranışları burada. main.cpp'den ayrı modül. #include #include "fiko/cekirdek/kayit.hpp" // AgacDugum (sağlayıcı imzası) namespace fiko { struct UygulamaBaglam; class Cekirdek; class OlcumSistemi; namespace ayar { class AyarSistemi; } // Ölçüm (kumpas/cetvel) sağlayıcısı: kalıcı ölçümleri ana Ürün Ağacı'na "Ölçümler" // grubu + SANAL düğümler (varlik=VARLIK_YOK, arketip=Olcum, camKimlik=ölçüm kimliği) // olarak ekler. Ölçüm yoksa hiç düğüm eklenmez. main.cpp AgacSaglayiciKaydi'na kaydeder. void olcumAgacTopla(Cekirdek& c, OlcumSistemi& olcum, std::vector& kok); // Ürün Ağacı penceresini çizer (b.panelAgac açıksa; b.agacIcinde ise pencere // YERİNE 3B görünüm içi overlay kullanılır — main.cpp çizersin). Seçim sahne ile // senkron, CAM düğümleri kendi pencerelerini açar, sketch/analiz çift-tık işlenir. void urunAgaciPaneliCiz(UygulamaBaglam& b); // Ağaç İÇERİĞİ (filtre + FikoUi AgacGorunum + olay işleme) — pencere kabuğu YOK. // Hem ayrık panel hem 3B görünüm içi overlay (CATIA spec tree) bunu çağırır. // Dönüş: fare bu karede gerçek bir ağaç SATIRI üzerinde miydi (overlay tık-geçişi // için — boş alan false → arkadaki 3B sahne kamera/seçim tıkını alır). bool urunAgaciIcerikCiz(UygulamaBaglam& b); // Ağacı "kirli" işaretle: bir sonraki karede yeniden kurulur. Ağaç dışından yapılan // ve satır görünümünü etkileyen değişiklikler (ör. malzeme ataması → rozet) bunu çağırır; // aksi halde rozet başka bir olay ağacı tazeleyene dek görünmez. void agacKirlet(); // Ağaç KLAVYE odağında mı (geçen kare). Global Delete işleyicisi bunu okur: ağaç odaktaysa // gövde-silme (seciliSil) yerine ağaç seçimini (feature/grup/sketch/param/ölçüm) sildirir. bool agacKlavyeOdakta(); // Ürün Ağacı ayetleri (kullanıcı ayarları): filtre, görünürlük, bağlantı çizgileri vb. void kaydetAgac(ayar::AyarSistemi& s, UygulamaBaglam& b); } // namespace fiko