# Mesh Seçim Troubleshooting

## Sorun: Mesh Seçilemiyor

### 🔍 Kontrol Listesi

#### 1️⃣ Browser Console'u Kontrol Et
```javascript
// Browser DevTools (F12) → Console sekmesi
// Aşağıdaki logları arası

"🔷 KALINLIK: Toplanan nesneler: X"
"🔷 KALINLIK: Mesh'ler: Y"
"🔷 KALINLIK: rayObje set edildi, children sayısı: Z"
"🔷 KALINLIK: Tıklandi emit alındı - kesisim: ..."
```

#### 2️⃣ Mesh'lerin Yüklü Olduğunu Kontrol Et
- 3D sahnede görünen objeler var mı?
- Mesh'leri görüyorum ama seçemiyor musunuz?
  - **Sorun:** Mesh'ler sahnede var ama raycast tarafından görülmüyor olabilir
  - **Çözüm:** Bakınız adım 3️⃣

#### 3️⃣ Raycast Threshold'u Kontrol Et
```typescript
// kalinlik-analizi.component.ts satır ~156
this.fikoSecim.raycaster.params = {
  Mesh: { threshold: 1 }, // ⬅️ Bu değeri artır
  Line: { threshold: 0 },
  // ...
};
```

**Eğer hala seçilemiyor ise:**
- Threshold'u `2` veya `3` olarak deneyin
- Değer arttıkça seçim alanı artar

#### 4️⃣ FikoCizimYalin İçindeki Mesh'ler mi?
```typescript
// filitre kontrol et - satır ~150
this.secimFilitre = ["Mesh", "FikoCizimYalin"];
//                     ^^^^    ^^^^^^^^^^^^^^
//                 Direkt         İçinde
//                 Mesh'ler        Mesh'ler
```

#### 5️⃣ Scene Children'ları Kontrol Et
```javascript
// Console'da çalıştır:
// (Sadece Kalınlık Analizi aktif iken)

document.querySelector('fikoyt-kalinlik-analizi'); // Komponenti bul
// Sonra örneğin:
// fikoSecim?.rayObje?.length → kaç nesne var?
// fikoSecim?.filitreler → filtreler ayarlı mı?
```

---

## 📋 Yaygın Senaryo Çözümleri

### Senaryo 1: "Hiç Mesh Yüklenmiş Yok"
```
Belirtisi: "🔷 KALINLIK: Mesh'ler: 0"

Çözüm:
1. Modeli 3D sahnede yüklemiş misiniz?
2. Model formatı doğru mu? (STEP, IGES, vb)
3. Kumpas aracında mesh'leri seçebiliyor musunuz?
   - Evet: Sorun kalınlık analizi filtresinde
   - Hayır: Sorun model yüklenmesinde
```

### Senaryo 2: "Mesh'ler Var ama Seçilemiyor"
```
Belirtisi:
"🔷 KALINLIK: Mesh'ler: 5"
ama tıklama çalışmıyor

Çözüm:
1. Threshold'u artır (adım 3)
2. Mesh'lerin raycaster tarafından görüldüğünü doğrula
3. Console'da tıklama event log'ını kontrol et:
   "🔷 KALINLIK: Tıklandi emit alındı"
```

### Senaryo 3: "Yanlış Objeleri Seçiyor"
```
Belirtisi:
"Mesh değil - tip: FikoEksen" gibi mesajlar

Çözüm:
1. Filtreyi kontrol et:
   secimFilitre = ["Mesh", "FikoCizimYalin"]
2. Raycaster parametrelerinde diğer türleri 0 yap:
   Line: { threshold: 0 },
   Points: { threshold: 0 },
   Sprite: { threshold: 0 }
```

---

## 🛠️ Debug Modu Etkinleştir

### kalinlik-analizi.component.ts içine ekle:

```typescript
// baslat() metodunun sonunda ekle
console.group("🔷 KALINLIK ANALIZI - DEBUG");
console.log("anaGosterim:", this.anaGosterim);
console.log("sahneler[0]:", this.anaGosterim.sahneler[0]);
console.log("children:", this.anaGosterim.sahneler[0].children);
console.log("fikoSecim:", this.fikoSecim);
console.log("fikoSecim.rayObje:", this.fikoSecim.rayObje);
console.log("fikoSecim.filitreler:", this.fikoSecim.filitreler);
console.log("fikoSecim.raycaster.params:", this.fikoSecim.raycaster.params);
console.groupEnd();
```

### tıklama event'inde ekle:

```typescript
// fikoSecimOlaylarTanit() içinde tıklama subscribe'ında
console.group("🔷 CLICK DEBUG");
console.log("kesisim:", kesisim);
console.log("kesisim.object?.type:", kesisim.object?.type);
console.log("kesisim.altObje?.type:", kesisim.altObje?.type);
console.log("gercekTip:", gercekTip);
console.groupEnd();
```

---

## 🎯 Kumpas ile Karşılaştır

Eğer **Kumpas** aracında mesh'leri seçebiliyorsanız ama **Kalınlık Analizi**'nde seçemiyorsanız:

```typescript
// KUMPAS KODU (çalışıyor):
this.fikoSecim1 = new FikoSecimler(
  this.anaGosterim,
  tumNesneler,
  "*",  // ⬅️ Hepsi kabul et
  true,
  true
);

// KALINLIK ANALIZI KODU (sorunlu):
this.fikoSecim = new FikoSecimler(
  this.anaGosterim,
  this.anaGosterim.sahneler[0].children,  // ⬅️ Farklı liste!
  this.secimFilitre,  // ⬅️ Filtreli!
  true,
  true
);
```

**Çözüm:** 2. parametreyi `tumNesneler` olarak değiştir veya filtreyi `"*"` yap

---

## 📊 Test Kodu

Browser console'da çalıştırın:

```javascript
// 1. Komponenti bul
const comp = document.querySelector('fikoyt-kalinlik-analizi')?.__ng_summary__;
// veya Angular debug modu açılıysa:
// ng.probe(element).componentInstance

// 2. Kontrol et
console.log("fikoSecim buluştu mu:", !!comp?.fikoSecim);
console.log("rayObje sayısı:", comp?.fikoSecim?.rayObje?.length);
console.log("Mesh sayısı:", comp?.fikoSecim?.rayObje?.filter(x => x.type === "Mesh").length);

// 3. Manuel event tetikle
comp?.fikoSecim?.tiklandi.next({
  object: comp?.fikoSecim?.rayObje?.find(x => x.type === "Mesh"),
  altObje: null,
  point: new THREE.Vector3(0,0,0),
  index: 0
});
```

---

## 🚨 Son Çare: Reset

Component'i sıfırla ve baştan başla:

```typescript
// 1. Başka araca geç (Kumpas)
olcumAleti = 'Kumpas';

// 2. Tekrar Kalınlık Analizi'ne dön
olcumAleti = 'KalinlikAnalizi';

// 3. Mesh seçmeyi dene
```

---

## ✅ Başarı Belirtileri

Eğer bu mesajları görürseniz, her şey doğru çalışıyor:

```
🔷 KALINLIK: Toplanan nesneler: 15
🔷 KALINLIK: Mesh'ler: 5
🔷 KALINLIK: rayObje set edildi, children sayısı: 15
🔷 KALINLIK: Tıklandi emit alındı - kesisim: Object {...}
🔷 KALINLIK: Mesh bilgileri bulundu
```

---

## 📞 Destek

Hala sorun yaşıyorsanız:

1. Console çıktılarını paylaş
2. 3D sahnede kaç mesh var?
3. Kumpas aracında mesh seçebiliyor musun?
4. Error var mı? (kırmızı renkli)

---

**Son Güncelleme:** 2025-11-08
