İÇ MEKAN

Kat Planları

1. ETAP

Birinci Etap İç Mekan Turu

2+1 DAİRE

1. Etap 2+1 Kat Planı

3+1 DAİRE

1. Etap 3+1 Kat Planı

2. ETAP

İkinci Etap İç Mekan Turu

2+1 DAİRE

2. Etap 2+1 Kat Planı

3+1 DAİRE

2. Etap 3+1 Kat Planı
Üçüncü Etap Kat Planı
YAKINDA

3. ETAP

Yakında gösterime girecek

Yakında →

3D Model Görüntüleyici

Daire tipinin 3D modelini inceleyin

🏠 3D Model Hazırlanıyor...

🎮 Kontroller: Fare ile döndürün, kaydırın ve yakınlaştırın

📱 AR Desteği: Mobil cihazlarda AR butonunu kullanın

🔄 Otomatik Döndürme: 3 saniye sonra otomatik döner

🔧 Debug Panel

📍 Position Info

Yaw (rad): 0.0000 rad
Pitch (rad): 0.0000 rad
Yaw (deg): 0.00 °
Pitch (deg): 0.00 °
Zoom Level: 50 %

🏠 Room Info

Active Room: Unknown
Category: outdoor
Room Index: 1

🗺️ Map Info

Map Type: Vaziyet Planı
Map X: 227 px
Map Y: 128 px
Floor Level: -
Hotspot ID: 0

⚙️ System Info

Resolution: Unknown
Viewer Status: Loading...
Last Update: -

360° Sanal Tura Hoş Geldiniz

Mekan içinde gezinmek için parmağınızı kaydırın. Gallery butonunu kullanarak panorama görüntüleri arasında geçiş yapabilirsiniz.

// Panorama test URLs const panoramaUrls = [ '../assets/outdoor/panorama/medium/Panorama_1_med.webp', '../assets/outdoor/panorama/medium/Panorama_2_med.webp', '../assets/outdoor/panorama/medium/Panorama_3_med.webp', '../assets/outdoor/panorama/medium/Panorama_4_med.webp', '../assets/outdoor/panorama/high/Panorama_1_8K.webp', '../assets/outdoor/panorama/high/Panorama_2_8K.webp', '../assets/outdoor/panorama/high/Panorama_3_8K.webp', '../assets/outdoor/panorama/high/Panorama_4_8K.webp' ]; // GLB test URLs const glbUrls = [ '../assets/indoor/birinci/birinci_21/glb/birinciEtap_21.glb', '../assets/indoor/birinci/birinci_31/glb/birinciEtap_31.glb', '../assets/indoor/ikinci/ikinci_21/glb/ikinciEtap_21.glb', '../assets/indoor/ikinci/ikinci_31/glb/ikinciEtap_31.glb' ]; let panoramaPassed = 0; let panoramaFailed = 0; let panoramaCompleted = 0; let glbPassed = 0; let glbFailed = 0; let glbCompleted = 0; const totalPanorama = panoramaUrls.length; const totalGlb = glbUrls.length; const totalTests = totalPanorama + totalGlb; console.log(`🚀 Starting ${totalTests} tests (${totalPanorama} panorama + ${totalGlb} GLB files)...`); // Test Panorama files panoramaUrls.forEach((url, index) => { const img = new Image(); img.onload = () => { panoramaPassed++; panoramaCompleted++; console.log(`✅ Panorama ${index + 1}/${totalPanorama} PASSED: ${url}`); console.log(`📐 Image dimensions: ${img.width}x${img.height}`); checkTestCompletion(); }; img.onerror = () => { panoramaFailed++; panoramaCompleted++; console.error(`❌ Panorama ${index + 1}/${totalPanorama} FAILED: ${url}`); checkTestCompletion(); }; img.src = url; }); // Test GLB files glbUrls.forEach((url, index) => { fetch(url, { method: 'HEAD' }) .then(response => { if (response.ok) { glbPassed++; console.log(`✅ GLB ${index + 1}/${totalGlb} PASSED: ${url}`); console.log(`📊 GLB file size: ${(response.headers.get('content-length') / 1024 / 1024).toFixed(1)}MB`); } else { glbFailed++; console.error(`❌ GLB ${index + 1}/${totalGlb} FAILED: ${url} (${response.status})`); } glbCompleted++; checkTestCompletion(); }) .catch(error => { glbFailed++; glbCompleted++; console.error(`❌ GLB ${index + 1}/${totalGlb} FAILED: ${url}`, error); checkTestCompletion(); }); }); function checkTestCompletion() { if (panoramaCompleted === totalPanorama && glbCompleted === totalGlb) { const totalPassed = panoramaPassed + glbPassed; const totalFailed = panoramaFailed + glbFailed; console.log(`🎉 All ${totalTests} tests completed!`); console.log(`📊 PANORAMA: ✅ ${panoramaPassed}/${totalPanorama} passed, ❌ ${panoramaFailed}/${totalPanorama} failed`); console.log(`📊 GLB FILES: ✅ ${glbPassed}/${totalGlb} passed, ❌ ${glbFailed}/${totalGlb} failed`); console.log(`📊 TOTAL: ✅ ${totalPassed}/${totalTests} passed, ❌ ${totalFailed}/${totalTests} failed`); alert(`🧪 Komple Test Tamamlandı!\n\n📊 PANORAMA: ✅ ${panoramaPassed}/${totalPanorama} - ❌ ${panoramaFailed}/${totalPanorama}\n🏠 GLB FILES: ✅ ${glbPassed}/${totalGlb} - ❌ ${glbFailed}/${totalGlb}\n\n📊 TOPLAM: ✅ ${totalPassed}/${totalTests} - ❌ ${totalFailed}/${totalTests}\n\nDetaylar konsol logunda.`); } // Production mode - all test functions removed for performance document.addEventListener('DOMContentLoaded', function() { console.log('Outdoor virtual tour loaded - Production mode'); });