UNPKG

@gmetrixr/rjson

Version:
33 lines (32 loc) 1.76 kB
import { r, rtp, RT } from "../../../r"; /** * Adds scene_yaw_range and scene_pitch_range */ class Migration { execute(projectJson) { const projectF = r.record(projectJson); projectF.getRecords(RT.scene).forEach(scene => { const sceneF = r.record(scene); const sceneDefaultYawRange = sceneF.getDefault(rtp.scene.scene_yaw_range); const sceneDefaultPitchRange = sceneF.getDefault(rtp.scene.scene_pitch_range); //if gyro lock is on, then don't let the yaw and pitch range be undefined. //Also, if the yaw and pitch values happen to be default values (when gyro lock is on), they need to be set to 0, 0 //because this means the user simply didn't set this value from the UI, and what he meant was full gyro lock ([0,0] range) if (sceneF.get(rtp.scene.scene_gyro_lock) === true) { const scenePitchRange = sceneF.get(rtp.scene.scene_pitch_range); if ((sceneF.get(rtp.scene.scene_pitch_range) === undefined) || (scenePitchRange[0] === sceneDefaultPitchRange[0] && scenePitchRange[1] === sceneDefaultPitchRange[1])) { sceneF.set(rtp.scene.scene_pitch_range, [0, 0]); } const sceneYawRange = sceneF.get(rtp.scene.scene_yaw_range); if ((sceneF.get(rtp.scene.scene_yaw_range) === undefined) || (sceneYawRange[0] === sceneDefaultYawRange[0] && sceneYawRange[1] === sceneDefaultYawRange[1])) { sceneF.set(rtp.scene.scene_yaw_range, [0, 0]); } } }); projectF.set(rtp.project.version, 108); } } const migration = new Migration(); export default migration;