#pragma once // Seçim görünüm/etkileşim çalışma-zamanı ayarları (Ayarlar sayfasından canlı; kalite() // / pickAyar() ikizi global tunable). Selection Stack toleransı + peek lens burada. #include "fiko/core/mat/vec.hpp" #include "fiko/core/temel.hpp" namespace fiko { struct SecimGorunum { // --- Selection Stack (Alt+tık) --- f32 yiginTol = 9.0f; // kenar/nokta ekran-uzayı yakalama toleransı (px) bool peekAcik = true; // peek lens (highlight gövdeyi dairede occluder'sız göster) f32 peekYari = 45.0f; // peek dairesi yarıçapı (px) // --- Seçim vurgusu (yüz + kenar/nokta ORTAK) --- Vec3f secimRenk{1.0f, 0.45f, 0.05f}; // seçili öğe (turuncu) Vec3f hoverRenk{0.25f, 0.85f, 1.0f}; // imleç-altı (cyan) f32 nabizHiz = 5.0f; // yanıp-sönme hızı (sin frekans) f32 nabizSiddet = 0.15f; // yanıp-sönme genliği (0=sabit) // --- Render --- // Varsayılan single-sided (backface culling AÇIK): tessellation winding'i zaten tutarlı // (ters = REVERSED XOR IsNegative + swap), arka yüzler fragment shader'a girmez → rough/ // yoğun modelde ~2× fragment kazancı. İnce sheet/kabuk için kullanıcı toggle'ıyla açılır. bool ciftTarafli = false; // çift-taraflı model render (ters winding şeffaflık fix) }; inline SecimGorunum& secimGorunum() { static SecimGorunum a; return a; } } // namespace fiko