# Parametric Design Tree - Gerçek İhtiyaç ve Minimal Çözüm

## Son Analiz: Ne Zaten Var?

### ✅ Mevcut Sistem (Çoğu var)
1. **Ürün Ağacı** (`urun_agaci_paneli.cpp`) - zaten var!
   - Gövde, Feature, Sketch, Parametre gösterimi mevcut
   - Farklı arketip (govde, feature, sketch, parametre) simgeleri

2. **Feature Bağımlılıkları** (`feature.hpp:38-51`)
   ```cpp
   std::vector<Varlik> bagimliliklar() const;  // ZATEN VAR!
   ```

3. **Parametre Sistemi** - zaten var
   - ParametreDeposu DAG çözümü
   - Formül bağımlılıkları

### ❌ Gerçek Eksikler (Aslında az)

1. **AĞAÇTA GÖRÜNEN BAĞLANTILAR** 
   - Feature → Sketch ilişkisi görünüyor ama çizgi yok
   - Parametre → Feature bağımlılığı görünüyor ama çizgi yok

2. **Visual Dependency Highlighting**
   - Seçili bir öğeden hangilerine tıklandığını gösterme
   - Formüldeki parametrelere hover ile işaret atama

## Gerçek Minimal Çözüm (MVP)

### Yalnızca 2 Dosya Gerekir:

#### 1. `motor/sahne/include/fiko/sahne/parametric_tree.hpp`
```cpp
#pragma once
#include <vector>

namespace fiko {

// Ağaç düğümü bağlantılarını özetler (görsel çizim için)
struct AgacBaglantisi {
    u32 ana_dugum;      // Feature/Parametre gibi
    std::vector<u32> bagli_ogeler;  // Bağlanmış diğer öğeler (sketch, parametre vb.)
};

// Ürün ağacından dependency bilgilerini çıkarır
std::vector<AgacBaglantisi> cikartParametrikBaglantilar(Sahne& sahne);

}  // namespace fiko
```

#### 2. `motor/sahne/src/parametric_tree.cpp`
- `Feature::bagimliliklar()`'den bağlantıları al
- Parametre ifadelerindeki referansları çıkar
- Görsel ağaçta göstermek için kenar listesi oluştur

#### 3. UI'de Değişiklik (`urun_agaci_paneli.cpp`)
Tek satır ekle:
```cpp
// Ağaç düğümünün ekran pozisyonunu al (ImGui)
ImVec2 agacDugumPozisyonu(int dugum_kimligi);

// Bağlantı çizgilerini çizer
void baglantiCizgileriCiz(const std::vector<AgacBaglantisi>& baglantilar);
```

## Gerçek İşlem Akışı

1. **Kullanıcı ağaçta bir feature'i seçer** → sağ panelde özellikler
2. **Seçili feature'in bağlı olduğu sketch/parametre vurgulanır** 
3. **Formül ifadelerinde parametreler canlandırılır**

## Dosya Listesi (Gerçek)

| Dosya | Durum | Açıklama |
|-------|-------|----------|
| `parametric_tree.hpp` | YENİ | Bağlantı veri yapısı (~50 satır) |
| `parametric_tree.cpp` | YENİ | Bağlantı çıkarma mantığı (~100 satır) |
| `urun_agaci_paneli.cpp` | MÜKARRAT | Tek fonksiyon ekle (~20 satır) |

## Test Stratejisi (Gerçek)
- Unit test: Bağlantıların doğru çıkarılıp çıkarılmadığını test et
- UI test: Ağaçta bağlantı çizgilerinin doğru gösterilmesi

## Öneri
Bu özellik **çoğu kod zaten var**. Tek eksikleri:
1. Bağlantıların görsel temsili (çizgi)
2. Seçili öğenin bağlı olduğu öğelerin vurgulanması

Bu 2 saat içinde implement edilebilir.