// Update Virtual Buttons from configuration data. public static void UpdateVirtualButtons(ImageTargetBehaviour it, ConfigData.VirtualButton[] vbs) { for (int i = 0; i < vbs.Length; ++i) { // Developer is responsible for deleting Virtual Buttons that // are not specified in newly imported config.xml files. VirtualButtonBehaviour[] vbBehaviours = it.GetComponentsInChildren <VirtualButtonBehaviour>(); bool vbInScene = false; for (int j = 0; j < vbBehaviours.Length; ++j) { // If the Virtual Button specified in the config.xml file // is already part of the scene we fill it with new values. if (vbBehaviours[j].VirtualButtonName == vbs[i].name) { vbBehaviours[j].enabled = vbs[i].enabled; vbBehaviours[j].SensitivitySetting = vbs[i].sensitivity; vbBehaviours[j].SetPosAndScaleFromButtonArea( new Vector2(vbs[i].rectangle[0], vbs[i].rectangle[1]), new Vector2(vbs[i].rectangle[2], vbs[i].rectangle[3])); vbInScene = true; } } if (vbInScene) { continue; } // If Virtual Button is not part of the scene we create // a new one and add it as a direct child of the ImageTarget. ImageTargetEditor.AddVirtualButton(it, vbs[i]); } }
// This method updates the respective Trackable appearance (e.g. // aspect ratio and texture) with data set data. public override void ApplyDataSetAppearance() { // Prefabs should not be changed if (QCARUtilities.GetPrefabType(mTarget) == PrefabType.Prefab) { return; } // Update the aspect ratio, visualization and scale of the target: ImageTargetBehaviour itb = (ImageTargetBehaviour)mTarget; ConfigData.ImageTarget itConfig; if (TrackableInDataSet(itb.TrackableName, itb.DataSetName)) { ConfigData dataSetData = ConfigDataManager.Instance.GetConfigData(itb.DataSetName); dataSetData.GetImageTarget(itb.TrackableName, out itConfig); } else { // If the Trackable has been removed from the data set we reset it to default. ConfigData dataSetData = ConfigDataManager.Instance.GetConfigData(QCARUtilities.GlobalVars.DEFAULT_DATA_SET_NAME); dataSetData.GetImageTarget(QCARUtilities.GlobalVars.DEFAULT_TRACKABLE_NAME, out itConfig); itb.DataSetPath = QCARUtilities.GlobalVars.DEFAULT_DATA_SET_NAME; itb.TrackableName = QCARUtilities.GlobalVars.DEFAULT_TRACKABLE_NAME; } ImageTargetEditor.UpdateAspectRatio(itb, itConfig.size); ImageTargetEditor.UpdateMaterial(itb); }
public override void ApplyDataSetProperties() { if (QCARUtilities.GetPrefabType(base.mTarget) != PrefabType.Prefab) { ConfigData.ImageTargetData data; ImageTargetAbstractBehaviour mTarget = (ImageTargetAbstractBehaviour)base.mTarget; IEditorImageTargetBehaviour behaviour2 = mTarget; if (this.TrackableInDataSet(behaviour2.TrackableName, behaviour2.DataSetName)) { ConfigDataManager.Instance.GetConfigData(behaviour2.DataSetName).GetImageTarget(behaviour2.TrackableName, out data); } else if (behaviour2.ImageTargetType != ImageTargetType.PREDEFINED) { data = QCARUtilities.CreateDefaultImageTarget(); } else { ConfigDataManager.Instance.GetConfigData("--- EMPTY ---").GetImageTarget("--- EMPTY ---", out data); behaviour2.SetDataSetPath("--- EMPTY ---"); behaviour2.SetNameForTrackable("--- EMPTY ---"); } ImageTargetEditor.UpdateScale(mTarget, data.size); ImageTargetEditor.UpdateVirtualButtons(mTarget, data.virtualButtons.ToArray()); } }
// This method is called when new configuration values are available and // need to be applied to Image Target objects in the scene. public override void ApplyDataSetProperties() { // Prefabs should not be changed if (QCARUtilities.GetPrefabType(mTarget) == PrefabType.Prefab) { return; } // Update the aspect ratio, visualization and scale of the target: ImageTargetBehaviour itb = (ImageTargetBehaviour)mTarget; IEditorImageTargetBehaviour editorItb = itb; ConfigData.ImageTargetData itConfig; if (TrackableInDataSet(editorItb.TrackableName, editorItb.DataSetName)) { ConfigData dataSetData = ConfigDataManager.Instance.GetConfigData(editorItb.DataSetName); dataSetData.GetImageTarget(editorItb.TrackableName, out itConfig); } else if (editorItb.ImageTargetType != ImageTargetType.PREDEFINED) { itConfig = QCARUtilities.CreateDefaultImageTarget(); } else { // If the Trackable has been removed from the data set we reset it to default. ConfigData dataSetData = ConfigDataManager.Instance.GetConfigData(QCARUtilities.GlobalVars.DEFAULT_DATA_SET_NAME); dataSetData.GetImageTarget(QCARUtilities.GlobalVars.DEFAULT_TRACKABLE_NAME, out itConfig); editorItb.SetDataSetPath(QCARUtilities.GlobalVars.DEFAULT_DATA_SET_NAME); editorItb.SetNameForTrackable(QCARUtilities.GlobalVars.DEFAULT_TRACKABLE_NAME); } ImageTargetEditor.UpdateScale(itb, itConfig.size); ImageTargetEditor.UpdateVirtualButtons(itb, itConfig.virtualButtons.ToArray()); }
public override void ApplyDataSetAppearance() { if (QCARUtilities.GetPrefabType(base.mTarget) != PrefabType.Prefab) { ConfigData.ImageTargetData data; IEditorImageTargetBehaviour mTarget = (ImageTargetAbstractBehaviour)base.mTarget; if (this.TrackableInDataSet(mTarget.TrackableName, mTarget.DataSetName)) { ConfigDataManager.Instance.GetConfigData(mTarget.DataSetName).GetImageTarget(mTarget.TrackableName, out data); } else if (mTarget.ImageTargetType != ImageTargetType.PREDEFINED) { data = QCARUtilities.CreateDefaultImageTarget(); } else { ConfigDataManager.Instance.GetConfigData("--- EMPTY ---").GetImageTarget("--- EMPTY ---", out data); mTarget.SetDataSetPath("--- EMPTY ---"); mTarget.SetNameForTrackable("--- EMPTY ---"); } ImageTargetEditor.UpdateAspectRatio(mTarget, data.size); ImageTargetEditor.UpdateMaterial(mTarget); } }