# FikoYT Web (fikoyt-sistem) → fikatia-local Native TAŞIMA MASTER PLANI

> **Amaç:** Web'deki (`fikoyt-sistem/src/service/fikoyt-ui/.../fiko-three-js`) 3D CAD/CAM/analiz sistemlerinin TAM envanterini çıkarmak ve native fikatia-local'e (C++23 / Vulkan / ImGui + OCCT) taşımak.
> **Kural:** Web'in KODU kopyalanmaz — yalnız **düzen + alan seti + akış + algoritma modeli** referans alınır. Hesap **tam OCCT B-Rep** (mesh değil, mümkün olduğunca).
> **EN KRİTİK İLKE (kullanıcı ŞART koştu):** Her araç **pencere içinde bir "3D kare" (canlı 3B önizleme alanı)** içermeli. Referans kalıp: `uygulama/fikocad/cam_strateji_semasi.cpp` — ImGui `DrawList` ile pencere içine izometrik interaktif şema çizimi. Pencere-başına-yüzen + pinlenebilir kalıp: `cam_paneli.cpp` (`###op_<id>` + `ustteTutSinif/ustteTutDugmesi`, owner-window / ParentViewportId).
> **Kardeş dokümanlar:** `cam_blueprint.md`, `part_design_blueprint.md`, `gsd_blueprint.md`, `parametrik_sistem_blueprint.md`, `cam_strateji3d_secim_spec.md`, `cam_takim_penceresi_spec.md`.

---

## BÖLÜM 1 — KESİT (DYNAMIC SECTION) SİSTEMİ

### 1.1 Web kaynak dosyaları
| Dosya | Satır | İş |
|---|---|---|
| `fiko-dinamik-kesit/FikoDinamikKesit.ts` | ~1830 | Ana sınıf (`extends FikoGrup`). Kesit düzlemleri (max 6), manipülatör, cap, B-Rep profil, DXF/SVG export |
| `fiko-dinamik-kesit/FikoDinamikKesitShader.ts` | ~800 | THREE native clipping planes + stencil cap + plane-mesh kesişim edge hesabı (zero-alloc hot path) |
| `fiko-dinamik-kesit/FikoDinamikKesitInteraction.ts` | ~500 | Mouse drag: `translate`/`rotate`/`axis`/`boundary` modları (CATIA drag manipülatör) |
| `fiko-dinamik-kesit/FikoDinamikKesitWASM.ts` | ~350 | WASM hızlandırmalı kesişim (10-50x) |
| `fiko-dinamik-kesit/FikoDinamikKesit.ts:1462` | `FikoKesitManipulator extends THREE.Group` | Halka (döndürme) + ok (taşıma) + grid gizmo |
| Alt bileşenler | — | `fiko-dinamik-kesit.component.ts` (dialog), `duzlem-kontrol/`, `kesit-ayarlar/`, `duzlem-hareket-dialog/` |

### 1.2 Web özellik seti (native'e taşınacak davranış)
- **Çoklu kesit düzlemi** (max 6), her biri ayrı manipülatörlü, `aktifDuzlemIndex`.
- **İnteraktif sürükleme**: düzlem normalinde taşıma (ok), döndürme (halka), eksen kilidi, boundary yeniden boyutlama. Mouse `mousedown/move/up` + raycast gizmo.
- **Canlı clipping**: `material.clippingPlanes` (GPU discard). `clipIntersection=false`. Orijinal clipping restore için `Map<Material, Plane[]>`.
- **Kesit çizgisi (outline)**: her üçgen-düzlem kesişiminden edge üretimi → `LineSegments` (renderOrder 999, depthTest kapalı).
- **Cap (kapak) yüzeyi**: edge triangülasyonu ile kesilen yüzeyin doldurulması (stencil/mesh). Toggle: `gosterKesitDolgu`.
- **GERÇEK B-Rep kesit profili** (CATIA Dynamic Section): `anaGosterim.brepKesitProfili(origin, normal)` → `BRepAlgoAPI_Section` analitik eğri; drag sırasında throttle'lı (100ms trailing) canlı yeniden hesap. Mesh-cap ile yan yana; B-Rep yoksa sessiz geçer.
- **Ayarlar**: `kesitModu` (smooth/flip), dolgu renk/opacity, çizgi renk/kalınlık, düzlem boyutu/opacity. `ayarlariKaydet/Yukle` (localStorage).
- **Görünürlük toggle'ları**: halka/grid/kesit çizgisi/ok/eksen.
- **DXF/SVG export** (`konturDisariAktar`): kontur segmentlerini aktif düzlem üzerinde `(u,v)` 2D tabana projekte → DXF R12 (`LINE` entity, KESIT layer) veya SVG (y-flip, mm birim, bbox viewBox).

### 1.3 Native eşleme
| Web | Native karşılığı |
|---|---|
| THREE clipping plane (`material.clippingPlanes`) | **Vulkan**: fragment shader'da `gl_ClipDistance` VEYA push-constant `vec4 kesitDuzlem[6]` + `discard` (dot(worldPos,n)+d < 0). Stencil cap için ikinci geçiş. `motor/render/shader/` altına `kesit.frag` uniform bloğu |
| Plane-mesh kesişim edge (`computeIntersectionEdges`) | **OCCT `BRepAlgoAPI_Section`** (gerçek B-Rep eğrisi) — mesh üçgen taraması gereksiz; parça `TopoDS_Shape` + `gp_Pln` → kesit wire. `motor/geometri/src/brep.cpp`'ye `brepKesit(shape, gp_Pln) -> vector<Polyline>` (YENİ serbest fonksiyon) |
| Cap yüzeyi | OCCT section wire → `BRepBuilderAPI_MakeFace` (kapalı ise) → cap mesh; VEYA stencil (Vulkan) |
| `FikoKesitManipulator` gizmo | ImGui DrawList gizmo + sahne-uzayı raycast (mevcut `motor/sahne` seçim altyapısı). Pusula (`pusula.cpp`) kalıbıyla ok/halka |
| `konturDisariAktar` DXF/SVG | `motor/geometri` veya yeni `motor/parca` içine `dxfYaz(polylines)` — web `FikoDxf.ts` (R12 ASCII) birebir referans |
| Ayar kalıcılığı (localStorage) | `cekirdek` ayar deposu / JSON |

### 1.4 Pencere düzeni (ZORUNLU: pencere-içi 3D kare)
```
┌─ Dinamik Kesit ────────────────────[pin]─┐
│ [Kesiti Başlat/Durdur]  Düzlem: ◄ 1/3 ►  │
│ ┌────── 3D ÖNİZLEME KARESİ ──────────┐   │  ← cam_strateji_semasi.cpp DrawList kalıbı
│ │  izometrik parça + kesit düzlemi    │   │     · düzleme tıkla → aktif yap
│ │  ok(taşı)/halka(döndür) gizmo       │   │     · ok sürükle → constant değiştir (inline)
│ │  kesit profili (kırmızı outline)    │   │     · normal seçici (X/Y/Z/yüzey)
│ └─────────────────────────────────────┘   │
│ Mod: (○)smooth (○)flip   Cap:[☐]         │
│ Çizgi renk[■] kalınlık[3] Dolgu opac[0.6] │
│ Görünür: halka☑ grid☑ ok☑ profil☑        │
│ [+ Düzlem] [− Sil]   [DXF↓] [SVG↓]        │
└──────────────────────────────────────────┘
```

### 1.5 Uygulama adımları
1. `motor/geometri/src/brep.cpp` → `brepKesit(const TopoDS_Shape&, const gp_Pln&) -> std::vector<Polyline>` (BRepAlgoAPI_Section, TopExp edge tarama, deflection ile discretize).
2. `motor/render/shader/kesit.frag` (+ pipeline) → 6'ya kadar clip düzlemi push-constant + `discard`. İkinci pass stencil cap (opsiyonel).
3. `motor/sahne` → `KesitSistemi` (düzlem listesi, aktif index, canlı recompute throttle). Sahne-uzay gizmo raycast.
4. `uygulama/fikocad/kesit_penceresi.{hpp,cpp}` → yukarıdaki düzen, `cam_strateji_semasi.cpp` DrawList kopyalanmadan referans alınır. Pin: `cam_paneli.cpp`.
5. DXF/SVG export (`FikoDxf.ts` referans, R12 + SVG y-flip).
6. Makro+plugin+olay: `KesitEklendi/KesitDuzlemHareketti` olayı `olay.hpp` **enum SONUNA**; `fiko.sahne.kesit*` Lua API.

---

## BÖLÜM 2 — TERS AÇI (DRAFT / ÇEKME AÇISI) ANALİZİ

### 2.1 Web kaynak dosyaları
| Dosya | İş |
|---|---|
| `fiko-analiz/draft-angle/draft-angle.component.ts` | Draft/çekme açısı — yüz normali vs mold yönü → renk. Shader + B-Rep sayısal rapor |
| `fiko-analiz/undercut/undercut.component.ts` | Undercut (ters kesim) tespiti — GPU depth-based + shader lighting parametreleri |
| `fiko-analiz/wall-thickness/` | Duvar kalınlığı (GPU: `FikoGPUThicknessAnalyzer.ts` + WGSL shader) |
| `fiko-analiz/fiko-analiz.component.ts` | Ana analiz paneli (draft/undercut/wall-thickness sekmeleri) |
| `fiko-analiz-radius/radius-analysis.component.ts` | CNC minimum radius / takım erişilebilirlik analizi |

### 2.2 Web özellik seti (draft-angle)
- **Çekim yönü (`moldDirection`)** seçimi: eksen butonu (X/Y/Z) VEYA sahneden yüz seç (`FikoSecililer` alt-instance → tıklanan yüz normali → moldDirection). `resetYuzeySecimi`.
- **Açı aralıkları listesi** (`aciAraliklarListesi`): her aralık `{min, max, renk, isim}`. Varsayılan: `[-180..-0.3]=kırmızı (Ters Açı)`, `[0..180]=yeşil (İyi Açı)`. Kullanıcı aralık ekle/sil/düzenle (10'a kadar).
- **Shader** (per-fragment): `worldNormal·moldDir` → `acos` → signed açı (dot<0 ise negatif). Aralığa göre renk; aralıklar arası mix (gradyan). 3-nokta ışık (key/fill/rim) + curvature AO + edge. `DoubleSide`, transparent.
- **Canlı güncelleme**: aralık/yön değişince uniform güncelle (`shaderiGuncelle`), yeni render.
- **B-Rep sayısal rapor** (`brepDraftRaporuOlustur`): her `occt_faceGroups` yüzünün analitik normali → çekme düzlemine eğim `draftDeg = 90 - acos(|dot|)`; grup başı yüz sayısı + `minDraftDeg` (en kritik). Shader eşikleriyle tutarlı.
- Analiz sırasında orijinal material saklanır (`orijinalMaterials Map`), `analiziDurdur`'da geri yüklenir.

### 2.3 Native eşleme
| Web | Native karşılığı |
|---|---|
| Fragment shader (worldNormal·moldDir → renk) | **Vulkan `draft.frag`**: uniform `vec3 cekimYonu`, `vec2 araliklar[10]`, `vec3 renkler[10]`, `int aralikSayisi`. worldNormal push/vertex. `motor/render/shader/draft.frag` (YENİ) |
| `occt_faceGroups[].normal` (analitik) | **OCCT**: `BRepGProp` / yüz `gp_Dir` normali VAR (parça B-Rep). Per-face renk için yüz-ID → renk lookup, VEYA shader'da vertex normal |
| Yüz seçerek yön (`FikoSecililer` alt-instance) | Mevcut `motor/sahne` seçim → yüz normali → cekimYonu |
| B-Rep sayısal rapor | `motor/parca` veya `motor/geometri` → her yüz normali · cekimYonu → draftDeg; grup say + minDraft. UI'da tablo |
| Undercut GPU depth | Vulkan depth pass (2. kamera, ortho) — düşük öncelik; başta shader-only draft yeterli |

### 2.4 Pencere düzeni (ZORUNLU: pencere-içi 3D kare)
```
┌─ Çekme Açısı Analizi ──────────────[pin]─┐
│ Çekim Yönü: [X][Y][Z] [🎯 Yüzeyden Seç]  │
│ ┌────── 3D ÖNİZLEME KARESİ ──────────┐   │  ← DrawList: izometrik parça
│ │  parça açı-renkli (yeşil/kırmızı)   │   │     · çekim yönü oku (canlı)
│ │  çekim yönü oku ↑                   │   │     · yüze tıkla → yön = normal
│ └─────────────────────────────────────┘   │
│ ── Açı Aralıkları ──                      │
│ [■kırmızı] Ters Açı   -180 .. -0.3  [×]   │
│ [■yeşil ]  İyi Açı       0 .. 180   [×]   │
│ min[  ] max[  ] renk[■] isim[    ] [+Ekle]│
│ ── Rapor ──  Toplam yüz: 42  MinDraft:1.2°│
│  Ters Açı: 3 · İyi: 38 · Aralık dışı: 1   │
│ [Analizi Başlat] [Durdur] [Rapor Oluştur] │
└──────────────────────────────────────────┘
```

### 2.5 Uygulama adımları
1. `motor/render/shader/draft.frag` (+ pipeline varyantı, per-obje material override).
2. `motor/parca` → `draftRapor(shape, cekimYonu, araliklar) -> {toplam, gruplar, minDraft}` (yüz normali · yön).
3. `uygulama/fikocad/draft_penceresi.{hpp,cpp}` → düzen + DrawList 3D kare + yön oku + aralık tablosu + rapor.
4. Material override/restore mekanizması (analiz aç/kapa).
5. Undercut + wall-thickness → sonraki dalga (aynı pencere, sekmeli).
6. Olay: `DraftAnaliziBasladi/Bitti` enum sonuna; `fiko.analiz.draft` Lua API.

---

## BÖLÜM 3 — AÇILI KAFA (ANGLED HEAD)

### 3.1 Web'de durum: KISMEN — dedicated açılı-kafa cihazı YOK, Tool Axis (3+2) VAR
Web'de mekanik "açılı işleme kafası" (takım tutucuya açıyla bağlanan fiziksel kafa) **YOK**. Bunun yerine:
| Dosya | İş |
|---|---|
| `fiko-cam/fiko-cam-tool-axis-dialog.ts` | **Takım Ekseni Tanımı** (CATIA Tool Axis): IJK düzenle + izometrik triad + yüzeye bağlı (parametrik/associative). `bagli` → yüz normaline kilitli |
| `fiko-cam/fiko-cam-postprocessor.ts:48` | **3+2 G-code**: tool axis ≠ Z → `G68.2 X Y Z I J K` (tilted work plane) + koordinatlar o düzlemde; `G69` iptal. 5-eksen'de GOTO'lara eksen vektörü |
| `fiko-cam/fiko-cam-dialog.ts:428` | Tool axis triad seçici (xy/xz/yz düzlem, yüzeyden seç) |
| `FikoThreeCam/FikoTakimTutucu.ts` | Takım tutucu geometrisi (mekanik kafa açısı YOK — düz tutucu) |

→ **Web = yönlü takım ekseni (3+2/5-eksen), fiziksel açılı kafa mekanizması değil.** Kullanıcı açılı kafa istediği için **web'de yok; önerilen tasarım** aşağıda (CATIA "Angular Head" / spindle-offset standardı).

### 3.2 Önerilen native tasarım (CATIA Angular Head standardı)
Açılı kafa = takım ekseni yönünü kafanın açısına göre döndüren + takım ucunu **offset** eden mekanik cihaz (yatay delik/işleme için). Native'de:
- **`AciliKafa` kütüphanesi** (Takım kütüphanesi kalıbı — `cam_takim_penceresi.cpp` referans): `{isim, kafaAcisi(°), uzunluk, offset(mm), yonEksen, geometri}`.
- **Operasyona `TakimYonu` kaynağı olarak `AciliKafa`**: mevcut `CamOperasyon.takimYonu` sistemine yeni kaynak tipi (`sabit` / `yuzeyBagli` / `aciliKafa`). Kafa seçilince tool axis = spindle_ekseni **döndürülmüş** (kafaAcisi) + uç offset uygulanır.
- **Simülasyon**: takım + kafa şeması sahnede gösterilir (kafa gövdesi + açılı mil). Çarpışma: kafa hacmi de dahil.
- **G-code etkisi** (`gkod.cpp` notu): açılı kafa → efektif tool axis IJK (G68.2 gibi) VEYA makine-özel M-kod (kafa indeksleme). Post'ta `takimYonu` zaten IJK üretiyor → kafa açısı bu IJK'yı türetir.

### 3.3 Native eşleme
| Kavram | Native karşılığı |
|---|---|
| Kafa kütüphanesi | `motor/cam` → `AciliKafa` struct + kayıt (`cam_takim_penceresi.cpp` kütüphane kalıbı) |
| Op'a atama | `cam::CamOperasyon` → `takimYonuKaynak = AciliKafa` (mevcut `takimYonu` genişletme) |
| Tool axis türetme | kafaAcisi + yonEksen → `gp_Dir` toolAxis; uç `gp_Pnt` offset |
| Simülasyon gösterimi | Vulkan mesh (kafa gövde silindir + açılı mil) `motor/render` |
| Çarpışma | kafa AABB/hacim → mevcut CAM çarpışma |
| G-code | `fiko-cam-postprocessor.ts` G68.2 referans → native `gkod` IJK'yı kafa açısından üret |

### 3.4 Pencere düzeni (ZORUNLU: pencere-içi 3D kare — takım+kafa şeması)
```
┌─ Açılı Kafa Tanımı ────────────────[pin]─┐
│ Kütüphane: [Düz▼][45° Sağ][90° Yatay][+] │
│ ┌────── 3D ÖNİZLEME KARESİ ──────────┐   │  ← DrawList: spindle + açılı kafa + takım
│ │   spindle ↓                         │   │     · kafa açısı canlı döner
│ │    ├─ kafa gövde                    │   │     · efektif tool axis oku
│ │    └─╲ açılı mil → takım ⟶          │   │
│ └─────────────────────────────────────┘   │
│ Kafa açısı[45°] Uzunluk[80] Offset[25]    │
│ Yön ekseni: (○)+X (○)−X (○)+Y ...         │
│ Efektif Tool Axis: I0.707 J0 K0.707       │
│ [Operasyona Uygula] [Kütüphaneye Kaydet]  │
└──────────────────────────────────────────┘
```

### 3.5 Uygulama adımları
1. `motor/cam` → `AciliKafa` struct + kütüphane deposu (JSON kalıcı, takım kütüphanesi kalıbı).
2. `cam::CamOperasyon` → tool axis kaynağına `aciliKafa` ekle; kafaAcisi+yonEksen → `gp_Dir` toolAxis + uç offset.
3. `uygulama/fikocad/acili_kafa_penceresi.{hpp,cpp}` → düzen + DrawList spindle/kafa/takım şeması (canlı açı).
4. Simülasyon: kafa mesh render + çarpışma hacmi.
5. `gkod`: kafa açısı → efektif IJK (G68.2 mantığı — postprocessor referans).
6. Olay: `AciliKafaAtandi` enum sonuna; `fiko.cam.aciliKafa` Lua API.

---

## BÖLÜM 4 — TAM ENVANTER (web'de olup native'de olmayan/kısmi HER ŞEY)

> Native bilinen durum (docs teyidi): **VAR** = CAM (2.5D+3D, seçim, strateji şeması, ürün ağacı, takım penceresi, simülasyon kısmi), Part Design (Pad/Pocket/Shaft/Groove/Hole + Fillet/Chamfer başlangıç), GSD D1, Sketcher (2D + kısıt başlangıç), Ölçüm (kumpas/cetvel), Makro/Plugin/Olay, parametrik/RecomputeMotor, kütük/ağırlık, hiyerarşik STEP import. **YOK** = kesit, draft/undercut/wall-thickness analizi, exploded, annotation/PMI, teknik resim (drawing), enum-uzunluk B-Rep analiz motorları, üretim/maliyet modülleri, döküm/SPH, AR, collab, CMM.

### 4.1 Analiz & Kalite
| Sistem | Web dosyası | Ne yapar | Native | Öncelik |
|---|---|---|---|---|
| Dinamik Kesit | `fiko-dinamik-kesit/` | Çoklu kesit düzlemi + cap + B-Rep profil + DXF/SVG | **YOK** | **P0** |
| Draft/Çekme Açısı | `fiko-analiz/draft-angle/` | Yüz normali vs çekim yönü → renk + rapor | **YOK** | **P0** |
| Undercut | `fiko-analiz/undercut/` | Ters kesim GPU depth tespiti | **YOK** | P1 |
| Duvar Kalınlığı | `fiko-analiz/wall-thickness/` | GPU ray/SDF duvar kalınlık haritası (WGSL) | **YOK** | P1 |
| Radius Analizi | `fiko-analiz-radius/` | CNC min radius / takım erişilebilirlik | **YOK** | P2 |
| Feature Tanıma | `fiko-feature-tani/FikoFeatureTani.ts` | occt_faceGroups → delik/cep/pah tanı → CAM öner | **KISMEN** (native feature tani başlangıç) | P1 |
| Mass Info | `fiko-mass-info/FikoMassInfo.ts` | Hacim/alan/kütle merkezi | **VAR** (kütük/ağırlık widget) | — |
| DFM | `fiko-dfm/` | CATIA tarzı DFM panel (imalat uygunluk) | **YOK** | P2 |
| Stabil Topoloji | `fiko-stabil-topoloji/` | Face kimlik registry (adapter) | **VAR** (toporef/BRepLink) | — |

### 4.2 CAM & Üretim
| Sistem | Web dosyası | Ne yapar | Native | Öncelik |
|---|---|---|---|---|
| 2D CAM (cep/delik/profil/gravür) | `Fiko-2d-Cam/` | Aktivite-bazlı 2.5D CAM + takım yönü | **VAR** | — |
| 3D CAM | `fiko-cam/`, `fiko-cam-3d/` | Part-op, tool axis, postprocessor, toolpath | **VAR** | — |
| Tool Axis (3+2/5x) | `fiko-cam/fiko-cam-tool-axis-dialog.ts` | IJK + triad + yüzeye bağlı + G68.2 | **KISMEN** (native tool axis?) | P1 |
| Açılı Kafa | (yok — öneri §3) | Mekanik açılı kafa | **YOK (öneri)** | P2 |
| Takım Yolu Düzenleyici | `fiko-takim-yolu-duzenleyici/` | Toolpath manuel düzenleme | **KISMEN** | P2 |
| Kesme Parametre | `fiko-kesme-parametre/` | Speeds&Feeds (RPM/feed/MRR) | **KISMEN** (CAM içi?) | P2 |
| Nesting | `fiko-nesting/FikoNesting.ts` | 2D levha yerleşim (MaxRects) | **YOK** | P2 |
| Büküm (Flat Pattern) | `fiko-bukum/FikoBukum.ts` | Sac büküm açınımı (K-faktör) | **YOK** | P2 |
| Kesim (lazer/plazma) | `fiko-kesim/FikoKesim.ts` | Kesim süre/maliyet | **YOK** | P3 |

### 4.3 Modelleme (Part Design / GSD / Sketcher)
| Sistem | Web dosyası | Ne yapar | Native | Öncelik |
|---|---|---|---|---|
| Part Design + GSD | `fiko-modelleme/` (komut registry, occt-kernel 1200+, yönetici) | 100+ komut, per-op pencere, OCCT B-Rep, DAG | **KISMEN** (Pad/Pocket/Shaft/Groove/Hole + GSD D1) | **P0** (devam) |
| OCCT Kernel köprü | `fiko-modelleme/fiko-occt-kernel.ts`, `FikoOpenCascadeBridge.ts` | OCCT worker (fillet/offset/boolean) | **VAR** (native OCCT direkt) | — |
| Parametre Workbench | `fiko-modelleme/fiko-parametre-workbench/` | Parametre/formül | **VAR** (parametrik sistem) | — |
| Sketcher | (web sketch) | 2D + kısıt solver | **KISMEN** (Sketcher D1) | P1 |

### 4.4 Ölçüm & PMI & Annotation
| Sistem | Web dosyası | Ne yapar | Native | Öncelik |
|---|---|---|---|---|
| Ölçüm (kumpas/cetvel) | `fiko-olcum/` (kumpas, cetvel, dimension, gdt, gpu) | Parametrik + BREP-linkli ölçüm | **VAR** | — |
| Kalıcı Ölçümler | `FikoKaliciOlcumler.ts` | Ölçüm ürün ağacında grup | **KISMEN** | P2 |
| Annotation Manager | `fiko-annotation/annotation-manager/` | 3D annotation yönetici | **YOK** | P1 |
| PMI/GD&T | `fiko-annotation/fiko-gdt`, `fiko-geometrik-tolerans`, `fiko-datum-ozellik` | Datum/FCF/geometrik tolerans | **YOK** | P1 |
| Kaynak Sembol | `fiko-annotation/fiko-kaynak-sembol` | Weld sembol | **YOK** | P2 |
| Yüzey Kalite (Ra) | `fiko-annotation/fiko-yuzey-kalite` | Yüzey pürüzlülük annotation | **YOK** | P2 |
| Bayrak/Ok/Metin Notu | `fiko-annotation/fiko-bayrak`, `fiko-ok-isaretci`, `fiko-metin-notu` | CATIA flag/leader/note | **YOK** | P2 |
| Smart Point 3D/2D | `FikoSmartPoint3D.ts`, `fiko-smart-point-*` | CSS3D/2D akıllı bağlantı noktası | **YOK** | P2 |
| CSS3D Annotation | `FikoCSS3DAnnotation.ts`, `Fiko3DYaziIsaretleyici.ts` | HTML-overlay 3D etiket | **KISMEN** (ImGui text overlay) | P2 |

### 4.5 Teknik Resim & Export
| Sistem | Web dosyası | Ne yapar | Native | Öncelik |
|---|---|---|---|---|
| Teknik Resim (HLR) | `fiko-teknik-resim/FikoHLR.ts`, `fiko-teknik-resim-2d/` | Hidden line removal + 2D drawing editör | **YOK** | P1 |
| DXF çizici | `FikoDxf.ts`, `FikoDxfCizici.ts`, `FikoThreeCam/FikoCizimDXF.ts` | B-Rep kenar → DXF R12 | **KISMEN** (kesit DXF ile birlikte) | P1 |
| STL/FBX/GLB/WRL export | `FikoThreeCam/FikoCizim{STL,FBX,GLB,WRL}.ts` | Mesh export | **YOK** | P2 |
| PDF Export | `fiko-pdf-export/` | PDF editör (BroadcastChannel) | **YOK** | P3 |
| Screenshot/Video | `fiko-screenshot/FikoScreenshot.ts` | PNG/JPEG/WebM viewport export | **YOK** | P2 |
| CAD Diff | `fiko-cad-diff/FikoCadDiffGPU.ts` | WebGPU iki-model karşılaştırma + CSV | **YOK** | P2 |

### 4.6 Import
| Sistem | Web dosyası | Ne yapar | Native | Öncelik |
|---|---|---|---|---|
| STEP import (WASM+cache) | `FikoImporter.STP.ts` (255K!), `FikoStepCache` | STEP + renk + async + hiyerarşi | **VAR** (hiyerarşik STEP) | — |
| Point Cloud | `FikoImporter.PointCloud.ts` (48K) | Nokta bulutu + mesh import | **YOK** | P3 |
| APT/CAT/WRL/FikoJson | `FikoImporter.{APTCAT,WRL,FikoJson}.ts` | Muhtelif format import | **YOK** | P3 |

### 4.7 Üretim/Maliyet Modülleri (katma değer)
| Sistem | Web dosyası | Ne yapar | Native | Öncelik |
|---|---|---|---|---|
| Üretim Menü/Kartı | `fiko-uretim-menu/`, `fiko-uretim-karti/` | 11+ modül menüsü + capstone maliyet kartı | **YOK** | P3 |
| Teklif | `fiko-teklif/FikoTeklif.ts` | Anlık teklif/maliyet | **YOK** | P3 |
| Muayene (FAI/PPAP) | `fiko-muayene/FikoMuayene.ts` | Kalite raporu | **YOK** | P3 |
| Tolerans Stack-up | `fiko-tolerans/FikoTolerans.ts` | 1D tolerans yığını (WC/RSS) | **YOK** | P3 |
| Malzeme Karşılaştır | `fiko-malzeme-karsilastir/` | Ağırlık/maliyet/CO2 | **YOK** | P3 |
| Kaplama/Civata/Birim | `fiko-kaplama/`, `fiko-civata/`, `fiko-birim/` | Yüzey işlem/diş/birim çevirici | **YOK** | P3 |
| İş Emri (QR) | `fiko-is-emri/` | QR kodlu iş emri/etiket | **YOK** | P3 |
| Kalıcılık | `fiko-kalicilik/` | Kayıtlı belgeler (teklif/muayene) | **YOK** | P3 |
| Cycle Time / Üretim Bağlam | `fiko-cycle-time-rapor/`, `fiko-uretim-baglam/` | Süre raporu + modüller-arası bağlam | **YOK** | P3 |

### 4.8 Simülasyon & İleri Görsel
| Sistem | Web dosyası | Ne yapar | Native | Öncelik |
|---|---|---|---|---|
| Döküm/SPH Sıvı | `fiko-sph-sivi/` (analiz/dokum/gpu/render) | Casting sim + SPH sıvı (malzeme DB) | **YOK** | P3 |
| Döküm Kontrol | `fiko-dokum-kontrol/` | Döküm gösterge/simülasyon | **YOK** | P3 |
| Simülasyon (v1) | `fiko-similasyon/`, `fiko-similasyon-v1/`, `fiko-sim-motor-dialog/` | İşleme simülasyonu | **KISMEN** (CAM sim) | P2 |
| WebGPU Lighting/Camera | `FikoWebGPULighting.ts`, `FikoWebGPUCameraOps.ts` | GPU ışık/kamera ops | **VAR** (Vulkan) | — |
| Director Mode | `fiko-director-mode/` | Sinematik kamera/sunum | **YOK** | P3 |
| Kaplama/Malzeme (CAD Material) | `FikoCADMaterial.ts` | CAD material sistemi | **KISMEN** | P2 |

### 4.9 İşbirliği & Cihaz
| Sistem | Web dosyası | Ne yapar | Native | Öncelik |
|---|---|---|---|---|
| Collab (avatar) | `fiko-collab/FikoCollabAvatar.ts` | Çok-kullanıcı kamera avatarı | **YOK** | P3 |
| CMM Köprü | `fiko-cmm/FikoCMMBridge.ts` | Portatif CMM (telefon WebSocket) | **YOK** | P3 |
| AR Modu | `FikoARModu.ts`, `FikoARKontrol.ts`, `FikoARAnchor.ts` | WebXR AR görüntüleme | **YOK** | P3 |
| Floating Toolbar | `fiko-floating-toolbar/` | Yüzen annotation toolbar | **KISMEN** (taşınabilir toolbar VAR) | — |

---

## BÖLÜM 5 — ÖNCELİKLİ AKTARIM YOL HARİTASI (DALGALAR)

> Her dalga hangi native dosyaları **kilitler** (paralel ajan çakışması önlenir).

### DALGA A — Kesit + Draft (P0 analiz, kullanıcı öncelikli) — BAĞIMSIZ, PARALEL
**Kilitler:**
- `motor/geometri/src/brep.cpp` + `brep.hpp` (brepKesit fonksiyonu) — **Kesit ajanı**
- `motor/render/shader/kesit.frag`, `draft.frag` + pipeline — **her iki ajan ayrı shader**
- `motor/sahne` KesitSistemi — **Kesit ajanı**
- `motor/parca` draftRapor — **Draft ajanı**
- `uygulama/fikocad/kesit_penceresi.*` — **Kesit ajanı**
- `uygulama/fikocad/draft_penceresi.*` — **Draft ajanı**
- `motor/cekirdek/.../olay.hpp` (enum sonuna ekleme) — **SIRALI: iki ajan çakışır, koordine et**
Çıktı: çoklu kesit düzlemi + cap + B-Rep profil + DXF/SVG; draft renk + rapor. İkisi de pencere-içi 3D kare.

### DALGA B — Açılı Kafa + Tool Axis tamamlama (P1-P2 CAM) — CAM'e bağımlı, A'dan sonra
**Kilitler:** `motor/cam` (AciliKafa + tool axis kaynağı), `uygulama/fikocad/acili_kafa_penceresi.*`, `gkod` (IJK türetme), `cam_takim_penceresi.*` (kütüphane genişletme).
Çıktı: açılı kafa kütüphanesi + op atama + simülasyon + G68.2 G-code.

### DALGA C — Feature Tanıma + Undercut + Wall-Thickness (P1 analiz) — A'nın shader/analiz altyapısını kullanır
**Kilitler:** `motor/parca` (feature tani genişletme), `motor/render/shader/undercut.frag`+`wall.comp`, `uygulama/fikocad/analiz_penceresi.*` (sekmeli: draft/undercut/wall).

### DALGA D — Annotation + PMI/GD&T + Teknik Resim/HLR (P1 dokümantasyon)
**Kilitler:** `motor/parca`/`motor/geometri` (HLR), yeni `motor/annotation` VEYA `motor/sahne` annotation düğümleri, `uygulama/fikocad/annotation_penceresi.*`, `teknik_resim_penceresi.*`. DXF export DALGA A'daki `dxfYaz` ile ortak.

### DALGA E — Sketcher tamamlama + Part Design/GSD feature genişletme (P0 devam, mevcut ajanla koordine)
**Kilitler:** `motor/sketch` (2D kısıt solver), `motor/parca` feature registry — **Part Design ajanı sürüyor, ÇAKIŞMA riski**: bu dalga o ajanla senkron.

### DALGA F — Export (STL/FBX/GLB, screenshot/video, CAD diff, nesting/büküm) (P2)
**Kilitler:** `motor/geometri` export, `motor/render` capture, yeni `motor/uretim` (nesting/büküm — saf hesap).

### DALGA G — Üretim/Maliyet modülleri + Simülasyon/Döküm + Collab/CMM/AR (P3, uzun kuyruk)
**Kilitler:** `motor/uretim` (teklif/muayene/tolerans/kaplama/civata/birim — saf hesap motorları), döküm/SPH ayrı modül, cihaz köprüleri.

---

## NOTLAR (implementasyon ajanına)
- **Her pencere ZORUNLU pencere-içi 3D kare** içerir → `cam_strateji_semasi.cpp` `stratejiSemasiCiz` DrawList kalıbını referans al (kopyalama). İzometrik projeksiyon + rol tıklama → sahne seçim modu + inline düzenleme.
- **Pin/üstte-tut**: `cam_paneli.cpp` `###op_<id>` + owner-window/ParentViewportId (MEMORY: hiyerarşik-import pin).
- **Hesap B-Rep**: mesh üçgen taraması yerine OCCT (`BRepAlgoAPI_Section`, yüz `gp_Dir` normalleri) — web mesh yöntemi yalnız fallback referansı.
- **GOTCHA (MEMORY hiyerarşik-import)**: boş-mesh gövde → geçersiz bbox → NaN kamera fit → viewport kaybolur. Kesit/analiz pencere-içi fit döngüleri geçersiz bbox atlamalı.
- **Makro+Plugin+Olay ZORUNLU** (MEMORY mimari ilke): her yeni sistem doğduğu an Lua+DLL+olay erişilebilir. Yeni olay struct'ı `olay.hpp` enum **SONUNA**. Merkezi `cekirdek.menuler()`/registry'ye ekle.
- **DXF referans**: web `FikoDxf.ts` (R12 ASCII, LINE entity) + kesit `konturDisariAktar` — native `dxfYaz` bunları birleştirir.
