/// <summary> /// Creates Trackers and Transform displays automatically. /// </summary> private void ReadDisplayTrackerConfigs() { // For creating the trackers displayTrackerConfigs = new Dictionary <string, DisplayTrackerConfig>(); // Go through the hierachy foreach (var platformJSON in platformJSONs) { // Check every display of the platform foreach (JSONNode displayJSON in platformJSON["displays"].AsArray) { JSONNode trackerJSON = displayJSON["tracker"]; if (trackerJSON != null) { string displayID = displayJSON["id"].Value.ToLower(); DisplayTrackerConfig displayTracker = null; // Tracker needs to be updated if (displayTrackerConfigs.ContainsKey(displayID)) { displayTracker = displayTrackerConfigs[displayID]; } else { // Need a new tracker displayTracker = new DisplayTrackerConfig(); displayTrackerConfigs.Add(displayID, displayTracker); } displayTracker.ParseConfig(trackerJSON); } } } foreach (var displayConfig in PlatformConfig.current.displays) { displayTrackerConfigs[displayConfig.id].originalTransform = displayConfig.transform; // TODO: remove me if (displayConfig.type == DisplayType.OffAxis) { displayTrackerConfigs[displayConfig.id].originalUL = displayConfig.offAxisData.ul; displayTrackerConfigs[displayConfig.id].originalLL = displayConfig.offAxisData.ll; displayTrackerConfigs[displayConfig.id].originalLR = displayConfig.offAxisData.lr; } } }
// Loads the display trackers from the json private void ReadDisplayTrackerConfigs() { // For creating the trackers displayTrackerConfigs = new List <DisplayTrackerConfig>(); // No need to continue if there are no display trackers if (!PlatformConfig.current.globals.ContainsKey("display_trackers")) { return; } foreach (var dictionary in (object[])PlatformConfig.current.globals["display_trackers"]) { DisplayTrackerConfig config = new DisplayTrackerConfig(); config.ParseConfig((Dictionary <string, object>)dictionary); displayTrackerConfigs.Add(config); } }