#include "fiko/sahne/sahne_ref_secim.hpp" namespace fiko { void SahneRefSecim::baslat(u32 sahip, const std::string& etiket, GeriCagri gc, std::string hud, int beklenenTur, bool serbestNoktaMi) { if (aktif_ && sahip_ == sahip && etiket_ == etiket) { // toggle bitir(); return; } aktif_ = true; sahip_ = sahip; etiket_ = etiket; gc_ = std::move(gc); hud_ = hud.empty() ? (etiket + " seç · ESC=bitir") : std::move(hud); beklenenTur_ = beklenenTur; serbestNoktaMi_ = serbestNoktaMi; } void SahneRefSecim::tik(const Vurus& vurus) { if (!aktif_ || !gc_) return; // NaN/geçersiz nokta guard (kamera dışı/ışın kaçırması → callback'e gitmesin). const Vec3d& p = vurus.nokta; if (!(p.x == p.x) || !(p.y == p.y) || !(p.z == p.z)) return; const bool devam = gc_(vurus); if (!devam) bitir(); } void SahneRefSecim::bitir() { aktif_ = false; sahip_ = 0; etiket_.clear(); gc_ = nullptr; hud_.clear(); beklenenTur_ = 0; serbestNoktaMi_ = true; } } // namespace fiko