{"ast":null,"code":"import ease from './ease';\nimport interpolate from './interpolate';\nexport default function movePlayer(spline, view, viewIndex, lastViewIndex, maxView, config, buttonStates, setProgressBarProgress, setTranscriptProgress, setTranscriptState, playerStats, direction) {\n // console.log(playerStats.current.isMoving);\n //0 = back, 1 = further, 2 = pause/play\n let menu_goBack = buttonStates[0];\n let menu_goFurther = buttonStates[1];\n let menu_pause = buttonStates[2];\n let menu_info = buttonStates[3];\n menu_pause(true);\n menu_info(false);\n playerStats.current.isMoving = true;\n // console.log(playerStats);\n let player = spline.current.findObjectByName('Player');\n\n // let player = playerStats.current.player;\n\n // let start = {\n // position: player.position,\n // rotation: {\n // x: player.rotation.x,\n // y: player.rotation.y,\n // z: player.rotation.z,\n // },\n // };\n let start = player;\n // console.log(player);\n let end = {\n position: view.position,\n rotation: {\n x: view.rotation.x * (Math.PI / 180),\n y: view.rotation.y * (Math.PI / 180),\n z: view.rotation.z * (Math.PI / 180)\n }\n };\n\n // let duration = view.duration;\n playerStats.current.duration = view.duration;\n if (config.DURATION_GO_BACK !== null && direction === 'goBack') {\n playerStats.current.duration = config.DURATION_GO_BACK;\n }\n let numPoints = Math.ceil(playerStats.current.duration / 16);\n let interpolatedPoints = interpolate(start, end, numPoints);\n // let startTime = performance.now();\n playerStats.current.startTime = performance.now();\n\n // let isPaused = false;\n // let pauseStartTime;\n // let elapsedTimeAtPause;\n // let remainingDuration;\n\n function pauseAnimation() {\n console.log('paused');\n playerStats.current.isPaused = true;\n playerStats.current.pausedStartTime = performance.now();\n playerStats.current.elapsedTimeAtPause = playerStats.current.pauseStartTime - playerStats.current.tartTime;\n playerStats.current.remainingDuration = playerStats.current.duration - playerStats.current.elapsedTimeAtPause;\n // pauseStartTime = performance.now();\n // elapsedTimeAtPause = pauseStartTime - startTime;\n // remainingDuration = duration - elapsedTimeAtPause;\n console.log('paused');\n }\n function resumeAnimation() {\n // isPaused = false;\n playerStats.current.isPaused = false;\n playerStats.current.startTime = performance.now() - playerStats.current.elapsedTimeAtPause;\n playerStats.current.duration = playerStats.current.remainingDuration;\n // startTime = performance.now() - elapsedTimeAtPause;\n // duration = remainingDuration;\n animate();\n console.log('resumed');\n }\n function animate() {\n playerStats.current.currentTime = performance.now();\n playerStats.current.elapsedTime = playerStats.current.currentTime - playerStats.current.startTime;\n playerStats.current.progress = Math.min(playerStats.current.elapsedTime / playerStats.current.duration, 1);\n if (playerStats.current.progress < 1) {\n if (playerStats.current.isPaused) {\n // return;\n // resumeAnimation();\n console.log('resume');\n return;\n }\n console.log(playerStats.current.isPaused);\n if (playerStats.current.isMoving === true) {\n console.log(\"start\");\n // if (playerStats.current.isPaused === false) {\n requestAnimationFrame(animate);\n // console.log('started');\n // } else {\n // resumeAnimation();\n // }\n } else {\n pauseAnimation();\n }\n }\n\n // console.log(playerStats.current.progress);\n\n // setProgress(progress);\n let easingProgressCamera = ease(playerStats.current.progress, config.EASING_TYPE_CAMERA);\n let easingProgressTranscript = ease(playerStats.current.progress, config.EASING_TYPE_TRANSCRIPT);\n let easingProgressProgressBar = calculateProgress(lastViewIndex, viewIndex, maxView, ease(playerStats.current.progress, config.EASING_TYPE_PROGRESSBAR));\n setTranscriptProgress(easingProgressTranscript);\n setProgressBarProgress(easingProgressProgressBar);\n let index = Math.floor(easingProgressCamera * (interpolatedPoints.length - 1));\n let point = interpolatedPoints[index];\n player.position.x = point.position.x;\n player.position.y = point.position.y;\n player.position.z = point.position.z;\n player.rotation.x = point.rotation.x;\n player.rotation.y = point.rotation.y;\n player.rotation.z = point.rotation.z;\n for (let i = 1; i < config.ANMOUNT_OF_IMAGES; i++) {\n spline.current.emitEvent('lookAt', 'image-container-' + i);\n }\n if (playerStats.current.progress >= 1) {\n // //process done\n setTranscriptState(false);\n playerStats.current.isMoving = false;\n playerStats.current.isPaused = false;\n if (config.LOOP_VIEWS === false) {\n if (view.id === 0) {\n menu_goBack(false);\n menu_goFurther(true);\n menu_pause(false);\n menu_info(true);\n } else if (view.id === maxView) {\n menu_goBack(true);\n menu_goFurther(false);\n menu_pause(false);\n menu_info(true);\n } else {\n menu_goBack(true);\n menu_goFurther(true);\n menu_pause(false);\n menu_info(true);\n }\n } else {\n // console.log('loop allowed');\n // for (let i = 0; i < buttonStates.length; i++) {\n // let buttonState = buttonStates[i];\n // buttonState(true);\n menu_goBack(true);\n menu_goFurther(true);\n menu_pause(false);\n menu_info(true);\n // }\n }\n }\n }\n\n animate();\n // console.log(playerStats.current);\n}\n\nfunction calculateProgress(lastViewIndex, viewIndex, maxView, easingProgress) {\n const direction = (viewIndex - lastViewIndex + maxView) % maxView;\n let p = lastViewIndex / maxView;\n if (direction === 1) {\n p = p + 1 / maxView * easingProgress;\n // console.log('nach vorne');\n } else if (direction === maxView - 1) {\n // p -= (p - easingProgress) / maxView;\n p = p - 1 / maxView * easingProgress;\n\n // console.log('zurück');\n } else if (direction === 0 && lastViewIndex === maxView) {\n p = 1 - easingProgress;\n // console.log('zum Anfang');\n } else if (direction === 0 && lastViewIndex === 0) {\n p += easingProgress;\n // console.log('zum Ende');\n } else {\n // console.log('Ungültiger Richtungswechsel');\n }\n return p;\n}","map":{"version":3,"names":["ease","interpolate","movePlayer","spline","view","viewIndex","lastViewIndex","maxView","config","buttonStates","setProgressBarProgress","setTranscriptProgress","setTranscriptState","playerStats","direction","menu_goBack","menu_goFurther","menu_pause","menu_info","current","isMoving","player","findObjectByName","start","end","position","rotation","x","Math","PI","y","z","duration","DURATION_GO_BACK","numPoints","ceil","interpolatedPoints","startTime","performance","now","pauseAnimation","console","log","isPaused","pausedStartTime","elapsedTimeAtPause","pauseStartTime","tartTime","remainingDuration","resumeAnimation","animate","currentTime","elapsedTime","progress","min","requestAnimationFrame","easingProgressCamera","EASING_TYPE_CAMERA","easingProgressTranscript","EASING_TYPE_TRANSCRIPT","easingProgressProgressBar","calculateProgress","EASING_TYPE_PROGRESSBAR","index","floor","length","point","i","ANMOUNT_OF_IMAGES","emitEvent","LOOP_VIEWS","id","easingProgress","p"],"sources":["C:/Users/Max/OneDrive/Desktop/BAF/baf-app/spline-design-react-app/src/components/features/movePlayer.js"],"sourcesContent":["import ease from './ease';\r\nimport interpolate from './interpolate';\r\n\r\nexport default function movePlayer(\r\n spline,\r\n view,\r\n viewIndex,\r\n lastViewIndex,\r\n maxView,\r\n config,\r\n buttonStates,\r\n setProgressBarProgress,\r\n setTranscriptProgress,\r\n setTranscriptState,\r\n playerStats,\r\n direction\r\n) {\r\n // console.log(playerStats.current.isMoving);\r\n //0 = back, 1 = further, 2 = pause/play\r\n let menu_goBack = buttonStates[0];\r\n let menu_goFurther = buttonStates[1];\r\n let menu_pause = buttonStates[2];\r\n let menu_info = buttonStates[3];\r\n\r\n menu_pause(true);\r\n menu_info(false);\r\n playerStats.current.isMoving = true;\r\n // console.log(playerStats);\r\n let player = spline.current.findObjectByName('Player');\r\n\r\n // let player = playerStats.current.player;\r\n\r\n // let start = {\r\n // position: player.position,\r\n // rotation: {\r\n // x: player.rotation.x,\r\n // y: player.rotation.y,\r\n // z: player.rotation.z,\r\n // },\r\n // };\r\n let start = player;\r\n // console.log(player);\r\n let end = {\r\n position: view.position,\r\n rotation: {\r\n x: view.rotation.x * (Math.PI / 180),\r\n y: view.rotation.y * (Math.PI / 180),\r\n z: view.rotation.z * (Math.PI / 180),\r\n },\r\n };\r\n\r\n // let duration = view.duration;\r\n playerStats.current.duration = view.duration;\r\n if (config.DURATION_GO_BACK !== null && direction === 'goBack') {\r\n playerStats.current.duration = config.DURATION_GO_BACK;\r\n }\r\n let numPoints = Math.ceil(playerStats.current.duration / 16);\r\n let interpolatedPoints = interpolate(start, end, numPoints);\r\n // let startTime = performance.now();\r\n playerStats.current.startTime = performance.now();\r\n\r\n // let isPaused = false;\r\n // let pauseStartTime;\r\n // let elapsedTimeAtPause;\r\n // let remainingDuration;\r\n\r\n function pauseAnimation() {\r\n console.log('paused');\r\n playerStats.current.isPaused = true;\r\n playerStats.current.pausedStartTime = performance.now();\r\n playerStats.current.elapsedTimeAtPause =\r\n playerStats.current.pauseStartTime - playerStats.current.tartTime;\r\n playerStats.current.remainingDuration =\r\n playerStats.current.duration - playerStats.current.elapsedTimeAtPause;\r\n // pauseStartTime = performance.now();\r\n // elapsedTimeAtPause = pauseStartTime - startTime;\r\n // remainingDuration = duration - elapsedTimeAtPause;\r\n console.log('paused');\r\n }\r\n\r\n function resumeAnimation() {\r\n // isPaused = false;\r\n playerStats.current.isPaused = false;\r\n playerStats.current.startTime =\r\n performance.now() - playerStats.current.elapsedTimeAtPause;\r\n playerStats.current.duration = playerStats.current.remainingDuration;\r\n // startTime = performance.now() - elapsedTimeAtPause;\r\n // duration = remainingDuration;\r\n animate();\r\n console.log('resumed');\r\n }\r\n\r\n function animate() {\r\n playerStats.current.currentTime = performance.now();\r\n playerStats.current.elapsedTime =\r\n playerStats.current.currentTime - playerStats.current.startTime;\r\n playerStats.current.progress = Math.min(\r\n playerStats.current.elapsedTime / playerStats.current.duration,\r\n 1\r\n );\r\n\r\n if (playerStats.current.progress < 1) {\r\n if (playerStats.current.isPaused) {\r\n // return;\r\n // resumeAnimation();\r\n console.log('resume');\r\n return;\r\n }\r\n\r\n console.log(playerStats.current.isPaused);\r\n\r\n if (playerStats.current.isMoving === true) {\r\n console.log(\"start\");\r\n // if (playerStats.current.isPaused === false) {\r\n requestAnimationFrame(animate);\r\n // console.log('started');\r\n // } else {\r\n // resumeAnimation();\r\n // }\r\n } else {\r\n pauseAnimation();\r\n }\r\n }\r\n\r\n // console.log(playerStats.current.progress);\r\n\r\n // setProgress(progress);\r\n let easingProgressCamera = ease(\r\n playerStats.current.progress,\r\n config.EASING_TYPE_CAMERA\r\n );\r\n let easingProgressTranscript = ease(\r\n playerStats.current.progress,\r\n config.EASING_TYPE_TRANSCRIPT\r\n );\r\n\r\n let easingProgressProgressBar = calculateProgress(\r\n lastViewIndex,\r\n viewIndex,\r\n maxView,\r\n ease(playerStats.current.progress, config.EASING_TYPE_PROGRESSBAR)\r\n );\r\n\r\n setTranscriptProgress(easingProgressTranscript);\r\n setProgressBarProgress(easingProgressProgressBar);\r\n\r\n let index = Math.floor(\r\n easingProgressCamera * (interpolatedPoints.length - 1)\r\n );\r\n let point = interpolatedPoints[index];\r\n\r\n player.position.x = point.position.x;\r\n player.position.y = point.position.y;\r\n player.position.z = point.position.z;\r\n player.rotation.x = point.rotation.x;\r\n player.rotation.y = point.rotation.y;\r\n player.rotation.z = point.rotation.z;\r\n\r\n for (let i = 1; i < config.ANMOUNT_OF_IMAGES; i++) {\r\n spline.current.emitEvent('lookAt', 'image-container-' + i);\r\n }\r\n\r\n if (playerStats.current.progress >= 1) {\r\n // //process done\r\n setTranscriptState(false);\r\n playerStats.current.isMoving = false;\r\n playerStats.current.isPaused = false;\r\n\r\n if (config.LOOP_VIEWS === false) {\r\n if (view.id === 0) {\r\n menu_goBack(false);\r\n menu_goFurther(true);\r\n menu_pause(false);\r\n menu_info(true);\r\n } else if (view.id === maxView) {\r\n menu_goBack(true);\r\n menu_goFurther(false);\r\n menu_pause(false);\r\n menu_info(true);\r\n } else {\r\n menu_goBack(true);\r\n menu_goFurther(true);\r\n menu_pause(false);\r\n menu_info(true);\r\n }\r\n } else {\r\n // console.log('loop allowed');\r\n // for (let i = 0; i < buttonStates.length; i++) {\r\n // let buttonState = buttonStates[i];\r\n // buttonState(true);\r\n menu_goBack(true);\r\n menu_goFurther(true);\r\n menu_pause(false);\r\n menu_info(true);\r\n // }\r\n }\r\n }\r\n }\r\n\r\n animate();\r\n // console.log(playerStats.current);\r\n}\r\n\r\nfunction calculateProgress(lastViewIndex, viewIndex, maxView, easingProgress) {\r\n const direction = (viewIndex - lastViewIndex + maxView) % maxView;\r\n let p = lastViewIndex / maxView;\r\n\r\n if (direction === 1) {\r\n p = p + (1 / maxView) * easingProgress;\r\n // console.log('nach vorne');\r\n } else if (direction === maxView - 1) {\r\n // p -= (p - easingProgress) / maxView;\r\n p = p - (1 / maxView) * easingProgress;\r\n\r\n // console.log('zurück');\r\n } else if (direction === 0 && lastViewIndex === maxView) {\r\n p = 1 - easingProgress;\r\n // console.log('zum Anfang');\r\n } else if (direction === 0 && lastViewIndex === 0) {\r\n p += easingProgress;\r\n // console.log('zum Ende');\r\n } else {\r\n // console.log('Ungültiger Richtungswechsel');\r\n }\r\n\r\n return p;\r\n}\r\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}