@gmetrixr/rjson
Version:
(R)ecursive Json
35 lines (34 loc) • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const r_1 = require("../../../r");
/**
* Adds scene_yaw_range and scene_pitch_range
*/
class Migration {
execute(projectJson) {
const projectF = r_1.r.record(projectJson);
projectF.getRecords(r_1.RT.scene).forEach(scene => {
const sceneF = r_1.r.record(scene);
const sceneDefaultYawRange = sceneF.getDefault(r_1.rtp.scene.scene_yaw_range);
const sceneDefaultPitchRange = sceneF.getDefault(r_1.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(r_1.rtp.scene.scene_gyro_lock) === true) {
const scenePitchRange = sceneF.get(r_1.rtp.scene.scene_pitch_range);
if ((sceneF.get(r_1.rtp.scene.scene_pitch_range) === undefined) ||
(scenePitchRange[0] === sceneDefaultPitchRange[0] && scenePitchRange[1] === sceneDefaultPitchRange[1])) {
sceneF.set(r_1.rtp.scene.scene_pitch_range, [0, 0]);
}
const sceneYawRange = sceneF.get(r_1.rtp.scene.scene_yaw_range);
if ((sceneF.get(r_1.rtp.scene.scene_yaw_range) === undefined) ||
(sceneYawRange[0] === sceneDefaultYawRange[0] && sceneYawRange[1] === sceneDefaultYawRange[1])) {
sceneF.set(r_1.rtp.scene.scene_yaw_range, [0, 0]);
}
}
});
projectF.set(r_1.rtp.project.version, 108);
}
}
const migration = new Migration();
exports.default = migration;