#pragma once // "Hızlı 3D" ağırlık/kütük widget'ı — long-press veya sağ-tık bağlam menüsünden // açılan, nesneye özel yüzer DAİRE panel: merkezde büyük AĞIRLIK, çevrede kütük // X/Y/Z ölçü çipleri (radyal), hacim/özkütle çevresel etiket + kompakt kontroller. // main.cpp'deki dev calistir() döngüsünün hızlı-widget'a özgü yerel değişkenleri // TEK struct'ta (HizliUIDurum) toplanır; main.cpp eski bare local'ları buraya // REFERANS bağlar (SketchUIDurum / UygulamaBaglam tasarım deseninin aynısı) // → dev döngü gövdesi AYNEN kalır, davranış birebir korunur. // // Panel AÇILIŞI (long-press + sağ-menü) ve kare-başı kütük hesabı main.cpp'de kalır; // bu modül YALNIZ pencere çizimini üstlenir (hizli3dAcik açıkken). Sunum TAM daire // (AddCircle + DrawList); ana viewport'a kilitli + NoMove → hep içeride, hep üstte. // Kapanma: daire DIŞINA tık (popup) veya ESC. Pin/üstte-tut butonu KALDIRILDI. #include "fiko/core/temel.hpp" // f32/u32 #include "fiko/core/mat/vec.hpp" // Vec3f namespace fiko { struct UygulamaBaglam; // Hızlı 3D widget durumu (main.cpp local'larından birebir). main.cpp bunu bir // yerel olarak tutar ve bare local'ları üyelerine referans bağlar → modül ile // main aynı durumu paylaşır (ör. panel açılışı hizli3dAcik=true set eder, modül // aynı bayrağı okur). struct HizliUIDurum { bool hizli3dAcik = false; // widget görünürlüğü (long-press/menü açar) u32 hizli3dKimlik = 0; // widget'ın gösterdiği gövde varlığı f32 hizli3dAcilisX = 0, hizli3dAcilisY = 0; // açılış MOUSE ekran konumu (daire merkezi olur) bool hizli3dUstte = true; // (KULLANILMIYOR) eski pin bayrağı — widget artık hep üstte f32 hizliOzkutle = 2.71f; // g/cm³ (varsayılan: alüminyum döküm) bool hizliAyarAcik = false; // merkez-bağlı ayarlar açılır alanı (⚙ ikonuyla toggle) int hizliKutukMod = 0; // 0=eksen-hizalı, 1=min-OBB, 2=özel yön bool hizliKutukSahne = false; // hesaplanan kütüğü 3D sahnede tel-kafes göster bool hizliBlobMod = false; // blob detection sonucu gösteriliyor mu (🧩 buton, toggle) int hizliBlobSayisi = -1; // hesaplanan ayrık lump/parça sayısı (BREP, TopAbs_SOLID) — -1 = henüz hesaplanmadı f32 hizliBlobBosluk = -1.0f; // lump'lar arası EN KÜÇÜK boşluk (mm, lumpEnKucukBosluk) — -1 = yok/henüz hesaplanmadı f32 hizliKutukSaydam = 0.15f; // sahne kütük dolgu saydamlığı (0=tel, 0.6=dolu) int hizliYonSecim = 0; // yön seçim modu: 0=kapalı, 1=1.yön bekliyor, 2=2.yön bekliyor Vec3f hizliYon1{}, hizliYon2{}; // seçilen yönler (dünya-uzay, yüz normali) bool hizliYon1Var = false, hizliYon2Var = false; Vec3f hizliKose[8]{}; // kare-başı hesaplanan kütük köşeleri (dünya) bool hizliKutuVar = false; // bu kare geçerli kütük kutusu hesaplandı mı Vec3f hizliBoyut{}; // kütük X/Y/Z boyutları (panelde gösterilir) }; // "Hızlı 3D" widget penceresini çizer (b.hizli.hizli3dAcik açıksa). Ağırlık/kütük // ölçüleri kare-başı hesaptan (hizliBoyut/hizliOzkutle) beslenir; görünürlük/seçim/ // odaklama sahne ile senkron. Davranış main.cpp'deki eski blokla birebir. void hizli3dPencereCiz(UygulamaBaglam& b); } // namespace fiko