{"version":3,"file":"fikoyt-shared-SahneWtecKafa-BmKUs4j6.mjs","sources":["../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fiko-three-js/Fiko3DComponent/sahne-kafa/bAcisiUst.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fiko-three-js/Fiko3DComponent/sahne-kafa/cAcisiAlt.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fiko-three-js/IFikoThreeJS/FikoThreeCam/FikoProfil2d.ts","../../../projects/shared/src/lib/service/fikoyt-ui/src/lib/fiko-three-js/Fiko3DComponent/sahne-kafa/SahneWtecKafa.ts"],"sourcesContent":["import * as THREE from 'three';\nconst { degToRad } = THREE.MathUtils;\nimport { CommonModule } from \"@angular/common\";\nimport { Component, Input } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { SahneWtecKafa } from \"./SahneWtecKafa\";\nimport { FikoYTKokBilesenComponent } from \"@/src/service/kok-bilesen/kok-bilesen.component\";\nimport { FikoGrupCizim } from \"../../IFikoThreeJS/FikoGrupCizim\";\nimport { FikoSahne } from \"../../IFikoThreeJS/FikoSahne\";\nimport { FikoIsikOrtam } from \"../../IFikoThreeJS/FikoIsikOrtam\";\nimport { FikoIsikYonsel } from \"../../IFikoThreeJS/FikoIsikYonsel\";\nimport { FikoImporterWRL } from \"../../IFikoThreeJS/FikoImporter.WRL\";\nimport { FikoCizimYalin } from \"../../IFikoThreeJS/FikoCizimYalin\";\nimport { FikoVektor3D } from \"../../IFikoThreeJS/FikoVektor3d\";\n\n\n@Component({\n selector: 'fikoyt-b-acisi-3d-ek-bilesen',\n template: `\n
\n
\n
\n
\n
\n Açıklama :\n
\n
Eğer B Açısı Ve C Açısı Sıfırda İken 3D Görüntüdeki Gibi Gözükmüyorsa Alttaki Kutucuktan Gerekli Ayarlamaları Yapabilirsiniz.
\n
\n\n \n
\n \n Kalibre Açısı :\n \n \n
\n
\n \n
\n Açı Artım Yönü :\n
\n
B Açısını Çevirdiğinizde Saat Yönündemi Yoksa Tersi Yöndemi Artıyor.Bunu Aşağıdaki Kutucuktan Belirleyebilirsiniz
\n \n
\n B Açısı : {{ element.aci }}゜\n
\n
B Açısını Aşağıdaki Kaydırma Çubuğundanda Ayarlayabilirsiniz
\n
\n \n
\n
\n
\n
\n `,\n styleUrl: '../.component3D.scss',\n imports: [\n CommonModule,\n FormsModule,\n ]\n})\nexport class FikoBAcisiEkBilesen extends FikoYTKokBilesenComponent {\n @Input() element;\n\n constructor() {\n super();\n this.subsList.push(this.FikoYT.degisti.subscribe(() => {\n this.CD.detectChanges();\n }))\n }\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n\n }\n\n\n ngOnInit(): void {\n\n }\n\n\n aciDegisti() {\n this.element.userData['FikoParametreler'][0].degisti(this.element.userData['FikoParametreler'][0].degeri);\n // PERFORMANS: Emit yerine direkt ciz() kullan\n this.element?.sahne.anaGosterim.ciz();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n\n\nexport class BAcisiUst extends FikoGrupCizim {\n override type: any = \"BAcisiUst\";\n /** */\n sayac = 1;\n\n /** */\n hizli3DMenu = [\n {\n simgeYazi: \"👁‍🗨\",\n baslik: \"Gizle / Göster\",\n renkSinif: \"yellow\",\n tiklandi: () => {\n this.visible = !this.visible;\n this.sahne.anaGosterim.FikoYT.degisti.emit();\n }\n },\n ]\n hizliMenu3DEk = FikoBAcisiEkBilesen;\n hizliMenu3DEkParametreler: { element: any } = { element: this };\n /** */\n aciMesh = null;\n aci: number = 0;\n kalibrasyon: number = -90;\n yon: \"1\" | \"2\" = \"1\";\n\n // PERFORMANS: Cached değerler - her frame yeniden hesaplama yok\n private _lastAci: number = 0;\n private _lastKalibrasyon: number = -90;\n private _lastYon: \"1\" | \"2\" = \"1\";\n private readonly _tempAxis = new FikoVektor3D(0, 0, 1);\n\n public override get liste(): FikoIsikOrtam[] | FikoIsikYonsel[] {\n return this.children as any;\n }\n\n constructor(public override sahne?: FikoSahne & SahneWtecKafa, name?: string) {\n super(sahne);\n\n const importer = new FikoImporterWRL(this.sahne);\n importer.alUrlden(\"./assets/3D/WTEC-KAFA/B-UST-ACI.FikoCizim\").then((_rslt: { yuzeyler: THREE.BufferGeometry, cizgiler: any, vertex: any }[]) => {\n for (let i = 0; i < _rslt.length; i++) {\n const e = _rslt[i];\n // e.yuzeyler.translate(-0.137, 4.964, 0);\n this.aciMesh = new FikoCizimYalin(this.sahne, name ?? \"B Açısı(Üst)\", e.yuzeyler, e.cizgiler, e.vertex);\n this.aciMesh.name += \".\" + (i + 1)\n this.aciMesh.userData['FikoArayuz'].agactaGorunur = false;\n this.aciMesh.userData['FikoArayuz'].listeGoster = false;\n this.ekle(this.aciMesh);\n }\n })\n // this.setRotationFromAxisAngle(new FikoVektor3D(0, 0, 1), degToRad(270));\n this.name = name;\n this.userData['FikoArayuz'].agactaGorunur = true;\n this.userData['FikoArayuz'].listeGoster = true;\n this.userData['FikoArayuz'].simge = \"./simgeler/kurdela.webp\";\n // /** */\n // let q = new THREE.Quaternion().setFromAxisAngle(new FikoVektor3D(0, 0, 1), degToRad(0));\n // this.applyQuaternion(q);\n // // tutucuDonerKafa.setRotationFromAxisAngle(new FikoVektor3D(0, 0, 1.0), degToRad(0))\n // this.userData.oldMatrix = this.matrix.clone();\n if (this.yon == \"1\") {\n this.setRotationFromAxisAngle(new FikoVektor3D(0, 0, 1), degToRad((this.kalibrasyon + this.aci) + 0.5));\n } else if (this.yon == \"2\") {\n this.setRotationFromAxisAngle(new FikoVektor3D(0, 0, 1), degToRad((this.kalibrasyon + (360 - this.aci)) + 0.5));\n }\n\n this.userData['FikoParametreler'] = [\n {\n turu: \"Çubuk\",\n ayar: {\n min: 0,\n maks: 360,\n adim: 0.1\n },\n degeri: this.aci,\n degisti: (dgr?) => {\n // İlk çağrıda dgr undefined olabilir, o zaman mevcut aci değerini kullan\n if (dgr === undefined) {\n dgr = this.aci;\n }\n\n // PERFORMANS: Sadece değişiklik varsa hesapla\n if (dgr === this._lastAci && this.yon === this._lastYon && this.kalibrasyon === this._lastKalibrasyon) {\n return;\n }\n\n this.aci = dgr;\n this._lastAci = dgr;\n this._lastYon = this.yon;\n this._lastKalibrasyon = this.kalibrasyon;\n\n // PERFORMANS: Inline hesaplama - ara değişken yok\n const rotationAngle = this.yon === \"1\"\n ? degToRad((this.kalibrasyon + this.aci) + 0.5)\n : degToRad((this.kalibrasyon + (360 - this.aci)) + 0.5);\n\n // PERFORMANS: Tek setRotation çağrısı - reusable axis vektörü\n this.setRotationFromAxisAngle(this._tempAxis, rotationAngle);\n\n // PERFORMANS KRİTİK: Emit kaldırıldı - sadece animasyon sırasında RAF loop emit eder\n }\n }\n ];\n }\n\n\n override raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection[] | any): void {\n // PERFORMANS KRİTİK: Sadece kendi aciMesh'ini yakala - diğer açıların mesh'lerini değil\n if (!this.visible || !this.aciMesh) return;\n\n const kesisenler = raycaster.intersectObject(this.aciMesh, true);\n if (kesisenler.length === 0) return;\n\n // PERFORMANS: İlk kesişimi direkt kullan\n const firstHit = kesisenler[0];\n intersects.push({\n object: this,\n distance: firstHit.distance,\n point: firstHit.point,\n face: firstHit.face,\n faceIndex: firstHit.faceIndex,\n index: firstHit.index,\n //@ts-ignore\n instanceId: this.id,\n //@ts-ignore\n altObje: firstHit.object,\n //@ts-ignore\n grup: this,\n //@ts-ignore\n enUstte: false,\n //@ts-ignore\n secilebilir: true,\n //@ts-ignore\n hizli3DMenu: this.hizli3DMenu,\n //@ts-ignore\n hizliMenu3DEk: this.hizliMenu3DEk,\n //@ts-ignore\n hizliMenu3DEkParametreler: this.hizliMenu3DEkParametreler\n } as any);\n }\n}","import { FikoYTKokBilesenComponent } from \"@/src/service/kok-bilesen/kok-bilesen.component\";\nimport { CommonModule } from \"@angular/common\";\nimport { Component, Input } from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport * as THREE from 'three';\nconst { degToRad } = THREE.MathUtils;\nimport { FikoGrupCizim } from \"../../IFikoThreeJS/FikoGrupCizim\";\nimport { FikoTakimFrezeleme } from \"../../IFikoThreeJS/FikoThreeCam/FikoTakimFrezeleme\";\nimport { FikoIsikOrtam } from \"../../IFikoThreeJS/FikoIsikOrtam\";\nimport { FikoIsikYonsel } from \"../../IFikoThreeJS/FikoIsikYonsel\";\nimport { FikoSahne } from \"../../IFikoThreeJS/FikoSahne\";\nimport { FikoImporterWRL } from \"../../IFikoThreeJS/FikoImporter.WRL\";\nimport { FikoCizimYalin } from \"../../IFikoThreeJS/FikoCizimYalin\";\nimport { FikoVektor3D } from \"../../IFikoThreeJS/FikoVektor3d\";\ndeclare var TWEEN: any;\n\n\n@Component({\n selector: 'fikoyt-c-acisi-3d-ek-bilesen',\n template: `\n
\n
\n
\n
\n
\n Açıklama :\n
\n
Eğer B Açısı Ve C Açısı Sıfırda İken 3D Görüntüdeki Gibi Gözükmüyorsa Alttaki Kutucuktan Gerekli Ayarlamaları Yapabilirsiniz.
\n
\n\n \n
\n \n Kalibre Açısı :\n \n \n
\n
\n \n
\n Açı Artım Yönü :\n
\n
C Açısını Çevirdiğinizde Saat Yönündemi Yoksa Tersi Yöndemi Artıyor.Bunu Aşağıdaki Kutucuktan Belirleyebilirsiniz
\n \n
\n C Açısı : {{ element.aci }}゜\n
\n
C Açısını Aşağıdaki Kaydırma Çubuğundanda Ayarlayabilirsiniz
\n
\n \n
\n
\n
\n
\n `,\n styleUrl: '../.component3D.scss',\n imports: [\n CommonModule,\n FormsModule,\n ]\n})\nexport class FikoCAcisiEkBilesen extends FikoYTKokBilesenComponent {\n @Input() element;\n\n constructor() {\n super();\n this.subsList.push(this.FikoYT.degisti.subscribe(() => {\n this.CD.detectChanges();\n }))\n }\n\n override ngAfterViewInit() {\n super.ngAfterViewInit();\n\n }\n\n\n ngOnInit(): void {\n\n }\n\n\n aciDegisti() {\n this.element.userData['FikoParametreler'][0].degisti(this.element.userData['FikoParametreler'][0].degeri);\n // PERFORMANS: Emit yerine direkt ciz() kullan\n this.element?.sahne.anaGosterim.ciz();\n }\n\n}\n\n\nexport class CAcisiAlt extends FikoGrupCizim {\n override type: any = \"CAcisiAlt\";\n /** */\n sayac = 1;\n\n takim: FikoTakimFrezeleme;\n\n sagButonlar = [\n {\n isim: \"Ortam Işığı Ekle\",\n simge: \"lightbulb outline\",\n tiklandi: () => { }\n },\n {\n isim: \"Yönsel Işık Ekle\",\n simge: \"lightbulb\",\n tiklandi: () => { }\n }\n ]\n /** */\n hizli3DMenu = [\n {\n simgeYazi: \"👁‍🗨\",\n renkSinif: \"yellow\",\n tiklandi: () => {\n this.visible = !this.visible;\n this.sahne.anaGosterim.FikoYT.degisti.emit();\n }\n },\n ]\n hizliMenu3DEk = FikoCAcisiEkBilesen;\n hizliMenu3DEkParametreler: { element: any } = { element: this };\n /** */\n aciMesh = null;\n aci: any = 0;\n kalibrasyon: number = 0;\n yon: \"1\" | \"2\" = \"1\";\n\n // PERFORMANS: Cached değerler ve reusable objeler\n private _lastAci: number = 0;\n private _lastKalibrasyon: number = 0;\n private _lastYon: \"1\" | \"2\" = \"1\";\n private readonly _rotationAxis = new FikoVektor3D(0.00617, 0.70708, -0.707107);\n private readonly _pivotPoint = new FikoVektor3D(0.000309, 9.88942737, -279.88942765);\n private readonly _tempVec = new FikoVektor3D();\n private readonly _tempQuat = new THREE.Quaternion();\n\n public override get liste(): FikoIsikOrtam[] | FikoIsikYonsel[] {\n return this.children as any;\n }\n\n constructor(public override sahne?: FikoSahne, name?: string) {\n super(sahne);\n\n const importer = new FikoImporterWRL(this.sahne);\n importer.alUrlden(\"./assets/3D/WTEC-KAFA/C-ALT-ACISAL-ACI.FikoCizim\").then((_rslt: { yuzeyler: THREE.BufferGeometry, cizgiler: any, vertex: any }[]) => {\n for (let i = 0; i < _rslt.length; i++) {\n const e = _rslt[i];\n // e.yuzeyler.translate(-0.137, 4.964, 0);\n this.aciMesh = new FikoCizimYalin(this.sahne, name ?? \"C Açısı(Alt)\", e.yuzeyler, e.cizgiler, e.vertex);\n this.aciMesh.name += \".\" + (i + 1)\n this.aciMesh.userData['FikoArayuz'].agactaGorunur = false;\n this.aciMesh.userData['FikoArayuz'].listeGoster = false;\n this.ekle(this.aciMesh);\n }\n // const element = this.sahne.BAcisi.userData.FikoParametreler[0];\n // element.degeri = 90\n // element.degisti(90);\n // const element1 = this.sahne.CAcisi.userData.FikoParametreler[0];\n // element1.degeri = 125;\n // element1.degisti(125);\n // this.sahne?.anaGosterim.ciz();\n this.sahne?.anaGosterim.FikoYT.degisti.emit();\n // setTimeout(() => {\n // this.sahne?.kaynakca.konumlar.liste[0].git(2000);\n // setTimeout(() => {\n // this.sahne?.ekranaSigdir(this.sahne);\n\n // this.sahne?.anaGosterim.surekliCiz();\n\n\n // let BAnim = new TWEEN.Tween(element)\n // .to({ degeri: 0 }, 1000)\n // .onUpdate(() => {\n // // this.anaGosterim.aktifKamera.updateProjectionMatrix()\n // // element.degeri = element.degeri;\n // element.degisti(element.degeri)\n // this.sahne.anaGosterim.FikoYT.degisti.emit();\n // }).easing(TWEEN.Easing.Quadratic.Out).onComplete(() => {\n // this.sahne.anaGosterim.surekliCizIptal();\n // }).yoyo(false).repeat(0)\n\n\n\n // let CAnim = new TWEEN.Tween(element1)\n // .to({ degeri: 0 }, 1000)\n // .onUpdate(() => {\n // // this.anaGosterim.aktifKamera.updateProjectionMatrix()\n // // element1.degeri = element1.degeri;\n // element1.degisti(element1.degeri)\n // this.sahne.anaGosterim.FikoYT.degisti.emit();\n // }).easing(TWEEN.Easing.Quadratic.Out).onComplete(() => {\n // this.sahne.anaGosterim.surekliCizIptal();\n // }).yoyo(false).repeat(0)\n\n // BAnim.start();\n // CAnim.start();\n // }, 2500);\n // }, 1000);\n })\n\n this.name = name;\n this.userData['FikoArayuz'].agactaGorunur = true;\n this.userData['FikoArayuz'].listeGoster = true;\n this.userData['FikoArayuz'].simge = \"./simgeler/kurdela.webp\";\n /** */\n this.takim = new FikoTakimFrezeleme(this.sahne, 32, 16, 150, 50);\n this.takim.position.set(3.73604353, 199.9648777, -534.98989008 - this.takim.boy);\n\n this.ekle(this.takim);\n /** */\n /** */\n // let q = new THREE.Quaternion().setFromAxisAngle(new FikoVektor3D(0, 0, 1), degToRad(0));\n // this.applyQuaternion(q);\n\n this.userData.oldMatrix = this.matrix.clone();\n\n this.userData['FikoParametreler'] = [\n {\n turu: \"Çubuk\",\n ayar: {\n min: 0,\n maks: 360,\n adim: 0.1\n },\n degeri: this.aci,\n degisti: (dgr?) => {\n // İlk çağrıda dgr undefined olabilir, o zaman mevcut aci değerini kullan\n if (dgr === undefined) {\n dgr = this.aci;\n }\n\n // PERFORMANS KRİTİK: Sadece değişiklik varsa hesapla\n if (dgr === this._lastAci && this.yon === this._lastYon && this.kalibrasyon === this._lastKalibrasyon) {\n return;\n }\n\n this.aci = dgr;\n this._lastAci = dgr;\n this._lastYon = this.yon;\n this._lastKalibrasyon = this.kalibrasyon;\n\n // PERFORMANS KRİTİK: Matrix işlemlerini optimize et\n this.matrix.copy(this.userData.oldMatrix);\n this.matrix.decompose(this.position, this.quaternion, this.scale);\n\n // PERFORMANS: Pivot noktasını reusable vektörle çıkar\n this.position.sub(this._pivotPoint);\n\n // PERFORMANS: Inline açı hesaplama - tek hesaplama\n const rotationAngle = this.yon === \"1\"\n ? degToRad(this.kalibrasyon + this.aci)\n : degToRad(this.kalibrasyon + (360 - this.aci));\n\n // KRİTİK FİX: Eski versiyon EXACT mantığı\n // Eski kod: this.quaternion.clone().setFromAxisAngle(...)\n // Clone bir dummy işlem (sonra set ile eziliyor), asıl iş setFromAxisAngle\n this._tempQuat.setFromAxisAngle(this._rotationAxis, rotationAngle);\n\n // PERFORMANS: Position ve rotation'ı birlikte uygula\n this.position.applyQuaternion(this._tempQuat);\n this.setRotationFromAxisAngle(this._rotationAxis, rotationAngle);\n\n // PERFORMANS: Pivot noktasını reusable vektörle ekle\n this.position.add(this._pivotPoint);\n\n // PERFORMANS KRİTİK: Emit kaldırıldı - sadece animasyon sırasında RAF loop emit eder\n }\n }\n ];\n }\n\n\n override raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection[]): void {\n // PERFORMANS KRİTİK: Sadece aciMesh'i raycast et (children yerine direkt obje)\n if (!this.visible || !this.aciMesh) return;\n\n const kesisenler = raycaster.intersectObject(this.aciMesh, true);\n if (kesisenler.length === 0) return;\n\n // PERFORMANS: İlk kesişimi direkt kullan\n const firstHit = kesisenler[0];\n intersects.push({\n object: this,\n distance: firstHit.distance,\n point: firstHit.point,\n face: firstHit.face,\n faceIndex: firstHit.faceIndex,\n index: firstHit.index,\n //@ts-ignore\n instanceId: this.id,\n //@ts-ignore\n altObje: firstHit.object,\n //@ts-ignore\n grup: this,\n //@ts-ignore\n enUstte: false,\n //@ts-ignore\n secilebilir: true,\n //@ts-ignore\n hizli3DMenu: this.hizli3DMenu,\n //@ts-ignore\n hizliMenu3DEk: this.hizliMenu3DEk,\n //@ts-ignore\n hizliMenu3DEkParametreler: this.hizliMenu3DEkParametreler\n } as any);\n }\n}","import * as THREE from 'three';\nimport { offsetHat } from \"../Fiko2dPathSihirbaz\";\nimport { FikoDuzlem } from '../FikoDuzlem';\nimport { FikoGrup } from \"../FikoGrup\";\nimport { FikoObje3D } from '../FikoObje3D';\nimport { FikoSahne } from '../FikoSahne';\nimport { FikoVektor2D } from \"../FikoVektor2d\";\nimport { FikoVektor3D } from \"../FikoVektor3d\";\nimport { FikoTakimFrezeleme } from \"./FikoTakimFrezeleme\";\nimport { FikoVektorTakimYol3D } from './FikoVektorTakimYol3d';\n\n\nexport class FikoProfil2d extends FikoGrup {\n override type: \"FikoProfil2d\";\n\n ustNokta: FikoDuzlem;\n profilNoktalar: FikoVektor2D[] | FikoVektor3D[] = [];\n altNokta: FikoDuzlem;\n\n daireselSapma: number = 0.001;\n islemeYontemi: \"Tek Yön\" | \"Zik Zak\" | \"Helisel\" = \"Tek Yön\";\n yanalYontem: \"İlk Dikey\" | \"İlk Yanal\" = \"İlk Yanal\";\n yanalHatve: number = 1;\n yanalTekrar: number = 1;\n\n dikeyIslemeYontemi: \"Z Hatve\" | \"Tekrar\" | \"Hatveli Tekrar\" = \"Z Hatve\";\n\n hatve: number = 0.5;\n hatveTekrar: number = 1;\n\n koseDonusler: \"Keskin\" | \"Dairesel\" | \"Yakınsal\" = \"Dairesel\";\n\n takim: FikoTakimFrezeleme = new FikoTakimFrezeleme(this.sahne, 10);\n takimYonu: FikoVektor3D = new FikoVektor3D(0, 0, 1);\n\n ilerlemeYaklasma: number = 3000;\n ilerlemeHatveleme: number = 1000;\n ilerlemeIsleme: number = 3000;\n ilerlemeUzaklasma: number = 10000;\n sonTurlar: number = 1000;\n\n devir: number = 2000;\n\n /** YAP: Giriş Çıkışlar */\n\n\n /** */\n takimHatti2d: FikoVektor3D[] = [];\n takimYoluNoktalar: FikoVektorTakimYol3D[] = [];\n /** NOT: Takım Yolu */\n constructor(public override sahne?: FikoSahne) {\n super(sahne);\n }\n\n override hazirla() {\n\n }\n\n guncelle() {\n\n }\n\n ilkGirisHesapla() {\n const forPosObje = new FikoObje3D();\n forPosObje.position.set(0, 0, this.ustNokta.normal.z);\n const forTalasVektor = forPosObje.translateOnAxis(this.takimYonu.normalize(), 50).position;\n\n\n let _takimYolu = new FikoVektorTakimYol3D(this.takimYoluNoktalar[0].x, this.takimYoluNoktalar[0].y, forTalasVektor.z);\n _takimYolu.hiz = this.ilerlemeUzaklasma;\n _takimYolu.devir = this.devir;\n _takimYolu.renk = new THREE.Color(\"red\");\n\n this.takimYoluNoktalar.unshift(_takimYolu);\n\n }\n\n sonCikisHesapla() {\n let toplamOlcu = this.ustNokta.normal.distanceTo(this.altNokta.normal);\n\n const forPosObje = new FikoObje3D();\n forPosObje.position.set(0, 0, this.ustNokta.normal.z);\n const forTalasVektor = forPosObje.translateOnAxis(this.takimYonu.normalize(), 60).position;\n\n let _takimYolu = new FikoVektorTakimYol3D(this.takimYoluNoktalar[this.takimYoluNoktalar.length - 1].x, this.takimYoluNoktalar[this.takimYoluNoktalar.length - 1].y, forTalasVektor.z);\n _takimYolu.hiz = this.ilerlemeUzaklasma;\n _takimYolu.devir = this.devir;\n _takimYolu.renk = new THREE.Color(\"darkblue\");\n\n this.takimYoluNoktalar.push(_takimYolu);\n }\n\n araCikisHesapla() {\n let toplamOlcu = this.ustNokta.normal.distanceTo(this.altNokta.normal);\n\n const forPosObje = new FikoObje3D();\n forPosObje.position.set(0, 0, this.ustNokta.normal.z);\n const forTalasVektor = forPosObje.translateOnAxis(this.takimYonu.normalize(), 60).position;\n\n let _takimYolu = new FikoVektorTakimYol3D(this.takimYoluNoktalar[this.takimYoluNoktalar.length - 1].x, this.takimYoluNoktalar[this.takimYoluNoktalar.length - 1].y, this.takimYoluNoktalar[this.takimYoluNoktalar.length - 1].z + 5);\n _takimYolu.hiz = this.ilerlemeUzaklasma;\n _takimYolu.devir = this.devir;\n _takimYolu.renk = new THREE.Color(\"darkblue\");\n\n this.takimYoluNoktalar.push(_takimYolu);\n }\n\n ilkTurHesapla() {\n this.takimHatti2d = [];\n this.yanalTekrar = this.yanalTekrar || 1;\n /** NOT: Takım Similasyon Hattının İlk Turu Hesaplanıyor */\n if (this.yanalTekrar == 1) {\n // NOT: Yanal Tekrar 1 İse Takım Hattı Oluşturuluyor\n let anaTur = new THREE.Shape(offsetHat(this.profilNoktalar, (this.takim.cap / 2), this.koseDonusler, this.daireselSapma));\n anaTur.closePath()\n this.takimHatti2d = anaTur.getPoints().map(val => new FikoVektorTakimYol3D(val.x, val.y, 0))\n } else {\n // NOT: Yanal Tekrar 1den Fazla İse\n\n if (this.yanalYontem == \"İlk Yanal\") {\n /** NOT: İlk Yanal İşlenecek İse Takım Hattı Oluşturuluyor*/\n let anaTur = offsetHat(this.profilNoktalar, (this.takim.cap / 2), this.koseDonusler, this.daireselSapma);\n for (let tekrarNo = this.yanalTekrar - 1; tekrarNo >= 0; tekrarNo--) {\n if (tekrarNo != 0) {\n let turShape = new THREE.Shape(offsetHat(anaTur, this.yanalHatve * tekrarNo, this.koseDonusler, this.daireselSapma));\n turShape.closePath();\n this.takimHatti2d = this.takimHatti2d.concat(turShape.getPoints().map(val => new FikoVektorTakimYol3D(val.x, val.y, 0)));\n } else {\n let turShape = new THREE.Shape(anaTur);\n turShape.closePath();\n this.takimHatti2d = this.takimHatti2d.concat(turShape.getPoints().map(val => new FikoVektorTakimYol3D(val.x, val.y, 0)));\n }\n }\n this.takimHatti2d.push(this.takimHatti2d[0])\n }\n }\n }\n\n\n /**\n * Hatveli takım yolunu hesapla\n *\n * DÜZELTMELER:\n * 1. İlk giriş hareketi döngüden ÖNCE yapılmalı\n * 2. Hız parametresi: İşleme için ilerlemeIsleme kullanılmalı (ilerlemeUzaklasma DEĞİL)\n * 3. Ara çıkış sadece gerektiğinde yapılmalı\n * 4. Z=0'dan başlama (i=0 durumu) düzeltildi\n */\n hatveliYoluHesapla() {\n this.ilkTurHesapla();\n\n if (this.takimHatti2d.length === 0) {\n console.warn('[FikoProfil2d] Takım hattı boş, hesaplama yapılamıyor');\n return;\n }\n\n // Z Tekrarlamaları\n const toplamOlcu = this.ustNokta.normal.distanceTo(this.altNokta.normal);\n const tekrar = Math.floor(toplamOlcu / this.hatve);\n\n // 1. İLK GİRİŞ HAREKETİ - Döngüden ÖNCE yapılmalı\n this.ilkGirisHesapla();\n\n for (let i = 0; i <= tekrar; i++) {\n const forPosObje = new FikoObje3D();\n forPosObje.position.set(0, 0, this.ustNokta.normal.z);\n\n // Z derinliği: i=0 için üst yüzey, i>0 için hatve kadar derin\n const zDerinlik = i * this.hatve;\n const forTalasVektor = forPosObje.translateOnAxis(this.takimYonu.normalize(), -zDerinlik).position;\n\n // İşleme noktaları (DÜZELTME: ilerlemeIsleme kullanılmalı)\n this.takimYoluNoktalar = this.takimYoluNoktalar.concat(this.takimHatti2d.map((val: FikoVektor3D) => {\n const _takimYolu = new FikoVektorTakimYol3D(val.x, val.y, forTalasVektor.z);\n _takimYolu.hiz = this.ilerlemeIsleme; // DÜZELTME: İşleme hızı\n _takimYolu.devir = this.devir;\n _takimYolu.renk = new THREE.Color(\"chartreuse\");\n return _takimYolu;\n }));\n\n // Ara çıkış - sadece son seviye değilse\n if (i < tekrar) {\n this.araCikisHesapla();\n }\n }\n\n // Son tur (tam derinlikte)\n const forPosObjeSon = new FikoObje3D();\n forPosObjeSon.position.set(0, 0, this.ustNokta.normal.z);\n const forTalasVektorSon = forPosObjeSon.translateOnAxis(this.takimYonu.normalize(), -toplamOlcu).position;\n\n this.takimYoluNoktalar = this.takimYoluNoktalar.concat(this.takimHatti2d.map((val: FikoVektor3D) => {\n const _takimYolu = new FikoVektorTakimYol3D(val.x, val.y, forTalasVektorSon.z);\n _takimYolu.hiz = this.sonTurlar || this.ilerlemeIsleme; // Son tur hızı\n _takimYolu.devir = this.devir;\n _takimYolu.renk = new THREE.Color(\"magenta\"); // Son tur farklı renk\n return _takimYolu;\n }));\n\n // Son çıkış hareketi\n this.sonCikisHesapla();\n }\n\n hesapla() {\n this.takimYoluNoktalar = [];\n\n this.hatveliYoluHesapla()\n\n\n }\n\n}","import * as THREE from 'three';\n\nimport { BAcisiUst } from './bAcisiUst';\nimport * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js'\nimport { CAcisiAlt } from './cAcisiAlt';\nimport { FikoProfil2d } from '../../IFikoThreeJS/FikoThreeCam/FikoProfil2d';\nimport { FikoCizimler } from '../../IFikoThreeJS/FikoThreeCam/FikoCizimler';\nimport { FikoKaynakca } from '../../IFikoThreeJS/FikoThreeCam/FikoKaynakca';\nimport { Fiko3DIsaretleyiciler } from '../../IFikoThreeJS/Fiko3DIsaretleyiciler';\nimport { FikoIsiklar } from '../../IFikoThreeJS/FikoIsiklar';\nimport { FikoTakimFrezeleme } from '../../IFikoThreeJS/FikoThreeCam/FikoTakimFrezeleme';\nimport { FikoThreeJsComponent } from '../../fiko-three-js.component';\nimport { FikoSahne } from '../../IFikoThreeJS/FikoSahne';\nimport { FikoImporterWRL } from '../../IFikoThreeJS/FikoImporter.WRL';\nimport { FikoEksen } from '../../IFikoThreeJS/FikoEksen';\nimport { FikoVektor3D } from '../../IFikoThreeJS/FikoVektor3d';\nimport { FikoCizimYalin } from '../../IFikoThreeJS/FikoCizimYalin';\nimport { FikoObje3D } from '../../IFikoThreeJS/FikoObje3D';\nimport { FikoIsikOrtam } from '../../IFikoThreeJS/FikoIsikOrtam';\ndeclare var TWEEN: any;\n\nexport class SahneWtecKafa extends FikoSahne {\n fikoProfil2d: FikoProfil2d = new FikoProfil2d();\n //** */\n // islemeEkseni: FikoEksen;\n /** NOT: Standart Gruplar */\n // operasyonlar: FikoOperasyonlar;\n cizimler: FikoCizimler;\n kaynakca: FikoKaynakca;\n kaynakcaIsaretleyiciler: Fiko3DIsaretleyiciler;\n kaynakcaIsiklar: FikoIsiklar;\n /** */\n BAcisi: BAcisiUst;\n CAcisi: CAcisiAlt;\n takim: FikoTakimFrezeleme;\n\n // PERFORMANS: Reusable objeler - her seferinde yeni nesne yaratmayı önle\n private readonly _tempVec3_1 = new THREE.Vector3();\n private readonly _tempVec3_2 = new THREE.Vector3();\n private readonly _tempQuat = new THREE.Quaternion();\n private _isAnimating = false;\n private _rafId: number | null = null;\n\n constructor(public override anaGosterim: FikoThreeJsComponent) {\n super(anaGosterim);\n //--->\n const importer = new FikoImporterWRL(this);\n // this.operasyonlar = new FikoOperasyonlar(this, \"FikoYT Operasyonlar\");\n this.cizimler = new FikoCizimler(this, \"FikoYT Diagonal Kafa\");\n\n // this.cizimler.applyQuaternion(new THREE.Quaternion().setFromAxisAngle(new FikoVektor3D(0, 0, 1), degToRad(90)));\n // this.cizimler.setRotationFromAxisAngle(new FikoVektor3D(0, 0, 1), degToRad(90));\n //--->\n let eksen = new FikoEksen(this, \"Eksen.1\")\n this.cizimler.ekle(eksen);\n\n\n this.BAcisi = new BAcisiUst(this, \"B Açısı Üst.1\");\n\n\n this.CAcisi = new CAcisiAlt(this, \"C Açısı Alt.1\")\n this.BAcisi.ekle(this.CAcisi);\n\n this.cizimler.ekle(this.BAcisi);\n\n this.takim = new FikoTakimFrezeleme(this, 3, 1.5, 30, 15);\n\n var myDirectionVector = new FikoVektor3D(0, 0, 1);\n // myDirectionVector.transformDirection(islemeEkseni.matrixWorld);\n var mx = new THREE.Matrix4().lookAt(myDirectionVector, new THREE.Vector3(0, 0, 0), new THREE.Vector3(0, 0, 1));\n var qt = new THREE.Quaternion().setFromRotationMatrix(mx);\n this.takim.quaternion.copy(qt);\n\n\n\n this.cizimler.ekle(this.takim);\n // this.cizimler.position.applyQuaternion(this.quaternion.clone().setFromAxisAngle(new FikoVektor3D(0, 0, 1), degToRad(270)));\n // this.cizimler.setRotationFromAxisAngle(new FikoVektor3D(0, 0, 1), degToRad(270));\n // this.cizimler.ekle(new Fiko3DYazi(this.sahne, \"Fiko\\nYT\"))\n\n\n // let makineSabitGovde = new FikoCizimWRL(this, \"Makine Sabit Gövde\");\n // makineSabitGovde.urlden(\"/makineler/makine-1/makine_sabit_govde.FikoCizim\")\n // //--->\n // let makineBoruSurucu = new FikoImporter(this.cizimler).(this, \"Makine Boru Sürücü\");\n // makineBoruSurucu.urlden(\"/makineler/makine-1/Boru_Surucu.FikoCizim\")\n //--->\n // this.cizimler.ekle(makineSabitGovde);\n // this.cizimler.ekle(makineBoruSurucu);\n /** */\n\n /** */\n this.kaynakca = new FikoKaynakca(this, \"FikoYT Kaynakça\");\n\n /** */\n this.kaynakcaIsiklar = new FikoIsiklar(this, \"Fiko Işıklar\");\n let anaOrtamIsigi = new FikoIsikOrtam(this, \"Fiko Ana Ortam Işığı.1\");\n anaOrtamIsigi.intensity = 1.5;\n this.kaynakcaIsiklar.ekle(anaOrtamIsigi);\n\n // let anaYonselIsik = new FikoIsikYonsel(this, \"Fiko Ana Yönsel Işık.1\");\n // anaYonselIsik.intensity = 2.5;\n // this.kaynakcaIsiklar.ekle(anaYonselIsik);\n\n // this.anaGosterim.aktifKontrol.addEventListener(\"change\", (event: any) => {\n // anaYonselIsik.position.copy(this.anaGosterim.aktifKamera.position);\n // anaYonselIsik.matrix.copy(this.anaGosterim.aktifKamera.matrix);\n // this.anaGosterim.ciz()\n // });\n\n this.kaynakca.ekle(this.kaynakcaIsiklar);\n /** */\n // this.kaynakcaIsaretleyiciler = new Fiko3DIsaretleyiciler(this, \"İşaretçiler\");\n // this.kaynakca.ekle(this.kaynakcaIsaretleyiciler);\n // let yazi = this.kaynakcaIsaretleyiciler.ekleFikoIsaretci(\"Hassas İşlem Yüzeyi\");\n // yazi.hazirla();\n // // yazi.yazi3d.yazi = \"Hassas Delik.1\";\n // yazi.translateX(20);\n // yazi.translateY(-75);\n // yazi.translateZ(-75);\n /** */\n\n // this.ekle(new THREE.AmbientLightProbe(0xffffff, 0.2));\n\n // this.add(this.operasyonlar);\n this.urunAgaci.add(this.cizimler);\n this.urunAgaci.add(this.kaynakca);\n /** */\n let kameraListe = [\n {\n \"ismi\": \"Fikonum.1\",\n \"aciklama\": null,\n \"veri\": {\n \"matriks\": [\n 0.9489117946878672,\n -0.30917425566533685,\n -0.06306889515471081,\n 0,\n 0.17596955191928154,\n 0.3525978373444969,\n 0.9190807809421928,\n 0,\n -0.2619181603088611,\n -0.8832247985274013,\n 0.38898950187203396,\n 0,\n 15.733069172398999,\n -81.9926483106101,\n -222.30268351687866,\n 1\n ],\n \"hedef\": [\n 41.81702056154851,\n 5.966096830670189,\n -261.0414378123224\n ],\n \"position\": [\n 15.733069172398999,\n -81.9926483106101,\n -222.30268351687866\n ],\n \"quaternion\": [\n 0.5493915851811293,\n -0.060614645063292595,\n -0.14788498050822288,\n 0.8201370516420409\n ],\n \"scale\": [\n 1,\n 1,\n 1\n ],\n \"ust\": [\n 0.1744576994614661,\n 0.3475036547131598,\n 0.9213065293697451\n ],\n \"yakinlik\": 0.2399115841046646,\n \"oran\": 1.3526315789473684\n }\n },\n {\n \"ismi\": \"Fikonum.2\",\n \"aciklama\": null,\n \"veri\": {\n \"matriks\": [\n -0.12338695934895938,\n -0.9751440184439206,\n 0.1840375004059255,\n 0,\n 0.8005909865960048,\n 0.011766040209277406,\n 0.5990956789019841,\n 0,\n -0.5863699603866606,\n 0.22125935819945894,\n 0.7792397358742107,\n 0,\n -454.90914538448715,\n 12.752307307394664,\n 117.77601577245551,\n 1\n ],\n \"hedef\": [\n -396.27214934582156,\n -9.373628512551045,\n 39.85204218503506\n ],\n \"position\": [\n -454.90914538448715,\n 12.752307307394664,\n 117.77601577245551\n ],\n \"quaternion\": [\n 0.1462935956967635,\n -0.2982923329906529,\n -0.6875428450311102,\n 0.6456815811091657\n ],\n \"scale\": [\n 1,\n 1,\n 1\n ],\n \"ust\": [\n 0.8005909865959884,\n 0.011766040209277965,\n 0.5990956789019755\n ],\n \"yakinlik\": 0.5404056700055176,\n \"oran\": 2.591093117408907\n }\n },\n {\n \"ismi\": \"Fikonum.3\",\n \"aciklama\": null,\n \"veri\": {\n \"matriks\": [\n -0.933089539913428,\n 0.35502167272810825,\n 0.05747627682342607,\n 0,\n -0.22672264183962385,\n -0.7047249783253866,\n 0.6722793679725304,\n 0,\n 0.279178713696816,\n 0.6142656728302659,\n 0.7380629573423747,\n 0,\n -1525.8337707656012,\n 386.5793780687326,\n 281.14553721970447,\n 1\n ],\n \"hedef\": [\n -1553.7516421352818,\n 325.1528107857082,\n 207.33924148546967\n ],\n \"position\": [\n -1525.8337707656012,\n 386.5793780687326,\n 281.14553721970447\n ],\n \"quaternion\": [\n 0.09161397419278342,\n 0.3501076992318459,\n 0.9186780550852933,\n 0.15831016952770274\n ],\n \"scale\": [\n 1,\n 1,\n 1\n ],\n \"ust\": [\n -0.22672264183961535,\n -0.7047249783253604,\n 0.6722793679725051\n ],\n \"yakinlik\": 0.29469907358098063,\n \"oran\": 2.591093117408907\n }\n },\n {\n \"ismi\": \"Fikonum.4\",\n \"aciklama\": null,\n \"veri\": {\n \"matriks\": [\n 0.12428119377233271,\n 0.9879208713006911,\n 0.09255558828621391,\n 0,\n -0.6234168169954588,\n 0.005174819172593548,\n 0.7818725558131462,\n 0,\n 0.7719492581522275,\n -0.1548727648588163,\n 0.6165296177339832,\n 0,\n -155.92028044518992,\n 12.018515862134628,\n 86.40267493344317,\n 1\n ],\n \"hedef\": [\n -233.1152062604091,\n 27.50579234801554,\n 24.749713160047683\n ],\n \"position\": [\n -155.92028044518992,\n 12.018515862134628,\n 86.40267493344317\n ],\n \"quaternion\": [\n 0.3544632409946608,\n 0.2570817028039324,\n 0.6097281371211798,\n 0.6606787477055148\n ],\n \"scale\": [\n 1,\n 1,\n 1\n ],\n \"ust\": [\n -0.6234168169954316,\n 0.005174819172593773,\n 0.7818725558131068\n ],\n \"yakinlik\": 0.7107798400456625,\n \"oran\": 2.591093117408907\n }\n }\n ]\n\n for (let i = 0; i < kameraListe.length; i++) {\n const element = kameraListe[i];\n this.kaynakca.konumlar.kaydet(element.ismi, element.aciklama, element.veri)\n }\n\n /** */\n this.cizimler.userData['FikoParametreler'] = [\n\n ];\n\n // setTimeout(() => { this.simuleEt() }, 5000);\n this.guncelle();\n this.anaGosterim.FikoYT.degisti.emit();\n\n\n // PERFORMANS: Timeout cascade yerine Promise chain + requestAnimationFrame\n setTimeout(async () => {\n await this.kaynakca.konumlar.liste[0].git(1000);\n\n // PERFORMANS: İç içe setTimeout yerine tek bir setTimeout\n await new Promise(resolve => setTimeout(resolve, 1000));\n\n // PERFORMANS: RAF ile senkronize ekrana sığdır\n requestAnimationFrame(() => {\n this.ekranaSigdir(this);\n });\n\n // PERFORMANS: Gereksiz emit çağrılarını throttle et\n this._startAnimation();\n\n const bParam = this.BAcisi.userData['FikoParametreler'][0];\n new TWEEN.Tween(bParam)\n .to({ degeri: 0 }, 1000)\n .onUpdate(() => {\n bParam.degisti(bParam.degeri);\n // PERFORMANS: Emit'i animasyon döngüsüne al\n }).easing(TWEEN.Easing.Quadratic.Out).onComplete(() => {\n const cParam = this.CAcisi.userData['FikoParametreler'][0];\n new TWEEN.Tween(cParam)\n .to({ degeri: 0 }, 1000)\n .onUpdate(() => {\n cParam.degisti(cParam.degeri);\n // PERFORMANS: Emit'i animasyon döngüsüne al\n }).easing(TWEEN.Easing.Quadratic.Out).onComplete(() => {\n this.anaGosterim?.surekliCizIptal();\n this._stopAnimation();\n })\n .start()\n })\n .start()\n\n }, 1000);\n\n\n }\n\n hazirla() {\n\n }\n\n guncelle() {\n\n // /** NOT: Kutu Sıfıra Göre Kaydırılıyor */\n // this.anaGosterim.ciz();\n }\n\n sunumId: any = null;\n aktifKonum = 0;\n simuleEt() {\n if (this.sunumId) return;\n\n if (this.sunumId) clearInterval(this.sunumId)\n if (this.kaynakca.konumlar.liste.length < 0) {\n return\n }\n\n\n // setTimeout(() => {\n // this.anaGosterim.surekliCiz();\n\n for (let i = 0; i < this.cizimler.userData.FikoParametreler.length; i++) {\n const element = this.cizimler.userData.FikoParametreler[i];\n element.degeri = element.ayar.maks\n new TWEEN.Tween(element)\n .to({ degeri: element.ayar.min }, 3000)\n .onUpdate(() => {\n // this.anaGosterim.aktifKamera.updateProjectionMatrix()\n element.degisti(element.degeri)\n this.anaGosterim.FikoYT.degisti.emit();\n // this.anaGosterim.ciz();\n }).easing(TWEEN.Easing.Quadratic.Out).yoyo(true).repeat(3).onComplete(() => {\n // this.anaGosterim.surekliCizIptal();\n })\n .start()\n }\n\n\n // }, 3000)\n }\n\n carpmaKontrol() {\n if (this.aktifKonum < this.kaynakca.konumlar.liste.length) {\n this.aktifKonum = 1\n }\n this.sunumId = setInterval(() => {\n if (this.aktifKonum >= this.kaynakca.konumlar.liste.length) {\n this.aktifKonum = 1\n clearInterval(this.sunumId)\n this.sunumId = null;\n }\n this.kaynakca.konumlar.liste[this.aktifKonum].git();\n this.aktifKonum += 1\n }, 3000);\n\n this.updateMatrixWorld();\n this.updateWorldMatrix(true, true);\n\n var raycaster = new THREE.Raycaster();\n var intersects = raycaster.intersectObjects([this.boruSurucu.cizim, this.zEksen.cizim], false);\n\n // Debug: intersects\n }\n\n ekranaSigdir(obj: THREE.Object3D) {\n const geometriler: THREE.BufferGeometry[] = [];\n\n // PERFORMANS: Tek geçişte geometri topla\n obj.traverse((elm: any) => {\n if (elm.type === \"FikoCizimYalin\") {\n const mesh = (elm as FikoCizimYalin).children[0] as THREE.Mesh;\n if (mesh?.geometry) {\n geometriler.push(mesh.geometry);\n }\n }\n });\n\n if (geometriler.length === 0) {\n return;\n }\n\n // PERFORMANS: Geometri merge işlemi sadece gerekirse\n const buffers = geometriler.length === 1\n ? geometriler[0]\n : BufferGeometryUtils.mergeGeometries(geometriler);\n\n if (!buffers) {\n return;\n }\n\n buffers.computeBoundingSphere();\n\n const boundingSphere = buffers.boundingSphere;\n if (!boundingSphere) return;\n\n const canvas = this.anaGosterim.canvas.nativeElement;\n const aspect = canvas.clientWidth / canvas.clientHeight;\n\n // PERFORMANS: Inline hesaplamalar - temp obje yaratma yok\n const yakinlik = aspect > 1.0\n ? canvas.clientHeight / (boundingSphere.radius * 2)\n : canvas.clientWidth / (boundingSphere.radius * 2);\n\n const hedefPoz = boundingSphere.center;\n\n // PERFORMANS: Reusable temp vektörler kullan\n this._tempVec3_1.copy(this.anaGosterim.aktifKontrol.target);\n this._tempVec3_2.copy(this.anaGosterim.aktifKamera.position);\n\n const yeniYonPoz = this._tempVec3_1.sub(hedefPoz);\n const tweenPos = this._tempVec3_2.sub(yeniYonPoz);\n\n // PERFORMANS: Tek TWEEN grubu - paralel animasyon\n const camTween = new TWEEN.Tween(this.anaGosterim.aktifKamera)\n .to({\n zoom: yakinlik * 0.7,\n position: { x: tweenPos.x, y: tweenPos.y, z: tweenPos.z }\n }, 500)\n .onUpdate(() => {\n this.anaGosterim.aktifKamera.updateProjectionMatrix();\n })\n .easing(TWEEN.Easing.Quadratic.Out);\n\n const ctrlTween = new TWEEN.Tween(this.anaGosterim.aktifKontrol)\n .to({ target: { x: hedefPoz.x, y: hedefPoz.y, z: hedefPoz.z } }, 500)\n .onUpdate(() => {\n this.anaGosterim.aktifKontrol.update();\n })\n .easing(TWEEN.Easing.Quadratic.Out);\n\n // PERFORMANS: Aynı anda başlat\n camTween.start();\n ctrlTween.start();\n }\n\n\n async relativeZoom(offsetZoom = 0.5, zaman = 1000) {\n return new Promise((resolve) => {\n const yakinlik = this.anaGosterim.aktifKamera.zoom;\n\n new TWEEN.Tween(this.anaGosterim.aktifKamera)\n .to({ zoom: yakinlik * (1 + offsetZoom) }, zaman)\n .onUpdate(() => {\n this.anaGosterim.aktifKamera.updateProjectionMatrix();\n })\n .easing(TWEEN.Easing.Quadratic.Out)\n .onComplete(() => {\n resolve(true);\n })\n .start();\n });\n }\n\n // PERFORMANS: RAF tabanlı animasyon döngüsü - emit throttling\n private _startAnimation() {\n if (this._isAnimating) return;\n this._isAnimating = true;\n\n const animationLoop = () => {\n if (!this._isAnimating) return;\n\n // PERFORMANS: Tek emit per frame - batched updates\n this.anaGosterim?.FikoYT.degisti.emit();\n\n this._rafId = requestAnimationFrame(animationLoop);\n };\n\n this._rafId = requestAnimationFrame(animationLoop);\n }\n\n private _stopAnimation() {\n this._isAnimating = false;\n if (this._rafId !== null) {\n cancelAnimationFrame(this._rafId);\n this._rafId = null;\n }\n // Son güncelleme\n this.anaGosterim?.FikoYT.degisti.emit();\n }\n}"],"names":["degToRad"],"mappings":"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"}