# FikoYT Engineering Platform — Mimari

## Katmanlar (aşağıdan yukarıya, tek yönlü bağımlılık)

```
uygulama/fikocad        → uygulama girişi, ana döngü
motor/render            → Vulkan: VulkanBaglam (instance/device/swapchain/sunum)
motor/platform          → Pencere (Win32), girdi
motor/core              → matematik, günlük, hassasiyet, temel tipler
```

Gelecek modüller: `motor/geometri` (OCCT sarmalayıcı), `motor/dokuman` (feature ağacı),
`motor/sketch`, `motor/cam`, `motor/cae`, `motor/ui` (ImGui).

## İlkeler

- **Çift hassasiyet geometri, tek hassasiyet render.** CAD çekirdeği `f64` (Vec3d, Mat4d),
  GPU'ya inen her şey `f32`. Dönüşüm tek noktada yapılır.
- **Tolerans standardı** `fiko::hassasiyet` (OCCT Precision eşdeğeri): karisiklik=1e-7,
  acisal=1e-12. Kayan nokta karşılaştırması asla `==` ile yapılmaz.
- **Sütun-major matris** (Vulkan/GL düzeni), Vulkan klip uzayı: derinlik [0,1], Y aşağı.
- **RAII her yerde.** Her Vulkan nesnesi sahibi sınıfın yıkıcısında yok edilir; ham new/delete yok.
- **Modüller statik kütüphane**, `fiko::ad` alias hedefleriyle bağlanır; başlıklar
  `include/fiko/<modul>/` altında.
- **Hata modeli:** kurtarılamaz → FIKO_ASSERT/abort; kurtarılabilir → dönüş değeri + günlük.
  Vulkan çağrıları VK_KONTROL ile sarılır.
- **Türkçe adlandırma** (teknik terimler hariç): Pencere, VulkanBaglam, Donusum, gunluk.

## Test

`motor/core/test/fiko_test.hpp` — bağımlılıksız mini test çatısı (FIKO_TEST / FIKO_KONTROL /
FIKO_YAKIN, otomatik kayıt). Her modül kendi test hedefini `add_test` ile CTest'e ekler.
Matematik testleri round-trip doğrulama yapar (ters dönüşüm, matris-quaternion eşdeğerliği).
