#pragma once #include #include "dokum_penceresi.hpp" #include "fiko/analiz/analiz_sistemi.hpp" #include "fiko/baglam/baglam_motoru.hpp" #include "fiko/betik/makro_motor.hpp" #include "fiko/cam/cam_sistemi.hpp" #include "fiko/cekirdek/cekirdek.hpp" #include "fiko/eklenti/eklenti_yonetici.hpp" #include "fiko/gsd/gsd_sistemi.hpp" #include "fiko/io/fiko_format.hpp" // FikoCaeKurulum (CAE kurulumu belge verisi) #include "fiko/kinematik/mekanizma.hpp" #include "fiko/parca/part_design_sistemi.hpp" #include "fiko/render/orbit_kamera.hpp" #include "fiko/render/secim_gpu.hpp" #include "fiko/sahne/alan_secim.hpp" #include "fiko/sahne/olcum_sistemi.hpp" #include "fiko/malzeme/malzeme.hpp" #include "fiko/sahne/sahne.hpp" #include "fiko/sahne/pmi_sistemi.hpp" #include "fiko/sahne/sahne_ref_secim.hpp" #include "fiko/sahne/secim_sistemi.hpp" #include "fiko/zeka/zeka_motoru.hpp" namespace fiko { class VulkanBaglam; // ============================================================================ // Belge — bir dökümanın TÜM durumu (MDI Dalga 1b, docs/mdi_blueprint.md). // CATIA mantığı: her belge kendi Cekirdek'i (ECS + olaylar + undo + kayıtlar), // Sahne'si, kamerası ve sistem örnekleriyle tam scope yaşar. Uygulama-global // kalanlar: Pencere, VulkanBaglam, ImGuiKatman, tema/simge, ayarlar. // Üye SIRASI kurulum sırasıdır (bugünkü calistir() ile birebir) — değiştirme. // Dalga 2: BelgeYonetici N örnek + belge pencereleri; şimdilik tek örnek, // main.cpp yerel referans takma-adlarıyla DAVRANIŞ BİREBİR çalışır. // ============================================================================ struct Belge { Belge(VulkanBaglam& vulkan, const std::string& shaderDizin); Belge(const Belge&) = delete; Belge& operator=(const Belge&) = delete; SecimGpu secim; // GPU pick pass (sahneye özel hedefler) Cekirdek cekirdek; // ECS + olaylar + görevler + undo + kayıtlar Sahne sahne; // belgenin geometri ağacı SecimSistemi secimSis; // pick + hover + filtreli tıklama OlcumSistemi olcum; // CATIA tarzı akıllı ölçüm AlanSecim alan; // marquee (selection trap) betik::MakroMotor makro; // Lua (belge-sandbox) eklenti::EklentiYonetici eklentiler; // DLL eklentileri (belgeye bağlanır) cam::CamSistemi camSis; // takım yolu üretimi kinematik::Mekanizma mekanizma; // kinematik mekanizma (BELGE verisi; KNMT chunk) // Yapısal analiz (FEM) kurulumları — gövde başına parametreler (BELGE verisi; v1.19 // CAEK chunk). SONUÇ tutulmaz: her açılışta yeniden çözülür. std::vector caeKurulumlar; parca::PartDesignSistemi partD; // sketch tabanlı feature'lar gsd::GsdSistemi gsdSis; // yüzey + wireframe analiz::AnalizSistemi analizSis; // draft/undercut/kalınlık/kesit zeka::ZekaMotoru zekaSis; // Geometri Zekâ Motoru (feature tanıma grafı; yalnız istekte koşar) DokumSistemi dokumSis; // döküm simülasyonu (GPU köprülü) SahneRefSecim refSecim; // pencere-açıkken sahneden seç altyapısı OrbitKamera kamera; // belge penceresinin bağımsız görüşü baglam::BaglamMotoru baglamMotoru; // imleç-altı semantik hedef/durum farkındalığı PmiSistemi pmiSis; // 3B PMI/GD&T defteri + çapa çözümü (ctor'da olcum.refCoz bağlanır) // Malzeme/doku: kütüphane (tanımlar) + atama (gövde/yüz → malzeme). GPU köprüsü // (SSBO + doku dizisi) uygulama-GLOBAL BoruHatlari'nda; burada yalnız BELGE verisi // durur → her belge kendi malzemelerini taşır, .fikocad ile kaydedilir. malzeme::MalzemeKutuphanesi malzemeKut; malzeme::MalzemeAtama malzemeAta; }; } // namespace fiko