Exemplo n.º 1
0
    // 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]);
        }
    }
Exemplo n.º 2
0
    // 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());
     }
 }
Exemplo n.º 4
0
    // 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);
     }
 }