Example #1
0
 // sets the ImageTargetType (only in editor mode)
 bool IEditorImageTargetBehaviour.SetImageTargetType(ImageTargetType imageTargetType)
 {
     if (mTrackable == null)
     {
         mImageTargetType = imageTargetType;
         return(true);
     }
     return(false);
 }
    public ImageTargetImpl(string name, int id, ImageTargetType imageTargetType, DataSet dataSet) : base(name, id)
    {
        this.mImageTargetType = imageTargetType;
        this.mDataSet         = (DataSetImpl)dataSet;
        IntPtr size = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(Vector2)));

        QCARWrapper.Instance.ImageTargetGetSize(this.mDataSet.DataSetPtr, base.Name, size);
        this.mSize = (Vector2)Marshal.PtrToStructure(size, typeof(Vector2));
        Marshal.FreeHGlobal(size);
        this.mVirtualButtons = new Dictionary <int, VirtualButton>();
        this.CreateVirtualButtonsFromNative();
    }
Example #3
0
    // Lets the user choose a Image Target from a drop down list. Image Target
    // must be defined in the "config.xml" file.
    public override void OnInspectorGUI()
    {
        EditorGUIUtility.LookLikeInspector();

        DrawDefaultInspector();

        ImageTargetBehaviour        itb       = (ImageTargetBehaviour)target;
        IEditorImageTargetBehaviour editorItb = itb;

        if (QCARUtilities.GetPrefabType(itb) == PrefabType.Prefab)
        {
            GUILayout.Label("You can't choose a target for a prefab.");
        }
        else
        {
            ImageTargetType oldType = editorItb.ImageTargetType;

            // show dropdown for type selection (predefined TMS target vs. user defined target)
            string[] typeNames =
                new[] { QCARUtilities.GlobalVars.PREDEFINED_TARGET_DROPDOWN_TEXT,
                        QCARUtilities.GlobalVars.USER_CREATED_TARGET_DROPDOWN_TEXT,
                        QCARUtilities.GlobalVars.CLOUD_RECO_DROPDOWN_TEXT };
            ImageTargetType[] typeValues =
                new [] { ImageTargetType.PREDEFINED,
                         ImageTargetType.USER_DEFINED,
                         ImageTargetType.CLOUD_RECO };
            editorItb.SetImageTargetType(typeValues[EditorGUILayout.Popup("Type", typeValues.ToList().IndexOf(editorItb.ImageTargetType), typeNames)]);

            bool typeChanged = editorItb.ImageTargetType != oldType;

            if (editorItb.ImageTargetType == ImageTargetType.PREDEFINED)
            {
                DrawPredefinedTargetInsprectorUI(itb, typeChanged);
            }
            else if (editorItb.ImageTargetType == ImageTargetType.USER_DEFINED)
            {
                DrawUserDefinedTargetInspectorUI(itb, typeChanged);
            }
            else
            {
                DrawCloudRecoTargetInspectorUI(itb, typeChanged);
            }
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty(itb);

            SceneManager.Instance.SceneUpdated();
        }
    }
    public ImageTargetImpl(string name, int id, ImageTargetType imageTargetType, DataSet dataSet)
        : base(name, id)
    {
        Type = TrackableType.IMAGE_TARGET;
        mImageTargetType = imageTargetType;
        mDataSet = (DataSetImpl)dataSet;

        // read size from native:
        IntPtr sizePtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(Vector2)));
        QCARWrapper.Instance.ImageTargetGetSize(mDataSet.DataSetPtr, Name, sizePtr);
        mSize = (Vector2)Marshal.PtrToStructure(sizePtr, typeof(Vector2));
        Marshal.FreeHGlobal(sizePtr);

        mVirtualButtons = new Dictionary<int, VirtualButton>();
        CreateVirtualButtonsFromNative();
    }
Example #5
0
    public ImageTargetImpl(string name, int id, ImageTargetType imageTargetType, DataSet dataSet)
        : base(name, id)
    {
        Type             = TrackableType.IMAGE_TARGET;
        mImageTargetType = imageTargetType;
        mDataSet         = (DataSetImpl)dataSet;

        // read size from native:
        IntPtr sizePtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(Vector2)));

        QCARWrapper.Instance.ImageTargetGetSize(mDataSet.DataSetPtr, Name, sizePtr);
        mSize = (Vector2)Marshal.PtrToStructure(sizePtr, typeof(Vector2));
        Marshal.FreeHGlobal(sizePtr);

        mVirtualButtons = new Dictionary <int, VirtualButton>();
        CreateVirtualButtonsFromNative();
    }
    public override void OnInspectorGUI()
    {
        EditorGUIUtility.LookLikeInspector();
        base.DrawDefaultInspector();
        ImageTargetAbstractBehaviour target     = (ImageTargetAbstractBehaviour)base.target;
        IEditorImageTargetBehaviour  behaviour2 = target;

        if (QCARUtilities.GetPrefabType(target) == PrefabType.Prefab)
        {
            GUILayout.Label("You can't choose a target for a prefab.", new GUILayoutOption[0]);
        }
        else
        {
            ImageTargetType   imageTargetType  = behaviour2.ImageTargetType;
            string[]          displayedOptions = new string[] { "Predefined", "User Defined", "Cloud Reco" };
            ImageTargetType[] typeArray2       = new ImageTargetType[3];
            typeArray2[1] = ImageTargetType.USER_DEFINED;
            typeArray2[2] = ImageTargetType.CLOUD_RECO;
            ImageTargetType[] source = typeArray2;
            behaviour2.SetImageTargetType(source[EditorGUILayout.Popup("Type", source.ToList <ImageTargetType>().IndexOf(behaviour2.ImageTargetType), displayedOptions, new GUILayoutOption[0])]);
            bool typeChanged = behaviour2.ImageTargetType != imageTargetType;
            if (behaviour2.ImageTargetType == ImageTargetType.PREDEFINED)
            {
                this.DrawPredefinedTargetInsprectorUI(target, typeChanged);
            }
            else if (behaviour2.ImageTargetType == ImageTargetType.USER_DEFINED)
            {
                this.DrawUserDefinedTargetInspectorUI(target, typeChanged);
            }
            else
            {
                this.DrawCloudRecoTargetInspectorUI(target, typeChanged);
            }
        }
        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);
            SceneManager.Instance.SceneUpdated();
        }
    }
 public override void OnInspectorGUI()
 {
     base.DrawDefaultInspector();
     VuforiaUtilities.DisableGuiForPrefab(base.target);
     using (this.mSerializedObject.Edit())
     {
         ImageTargetType imageTargetType = this.mSerializedObject.ImageTargetType;
         string[]        array           = new string[]
         {
             "Predefined",
             "User Defined",
             "Cloud Reco"
         };
         ImageTargetType[] array2 = new ImageTargetType[]
         {
             ImageTargetType.PREDEFINED,
             ImageTargetType.USER_DEFINED,
             ImageTargetType.CLOUD_RECO
         };
         this.mSerializedObject.ImageTargetType = array2[EditorGUILayout.Popup("Type", array2.ToList <ImageTargetType>().IndexOf(this.mSerializedObject.ImageTargetType), array, new GUILayoutOption[0])];
         bool flag = this.mSerializedObject.ImageTargetType != imageTargetType;
         if (flag)
         {
             this.mSerializedObject.AutoSetOccluderFromTargetSize = false;
         }
         if (this.mSerializedObject.ImageTargetType == ImageTargetType.PREDEFINED)
         {
             this.DrawPredefinedTargetInspectorUI(flag);
         }
         else if (this.mSerializedObject.ImageTargetType == ImageTargetType.USER_DEFINED)
         {
             this.DrawUserDefinedTargetInspectorUI(flag);
         }
         else
         {
             this.DrawCloudRecoTargetInspectorUI(flag);
         }
     }
 }
        internal override bool InitializeTarget(Trackable trackable, bool applyTargetScaleToBehaviour)
        {
            base.InitializeTarget(trackable, applyTargetScaleToBehaviour);
            ImageTarget imageTarget = (ImageTarget)trackable;

            if (imageTarget == null)
            {
                return(false);
            }
            this.mTrackable       = (this.mImageTarget = imageTarget);
            this.mTrackableName   = trackable.Name;
            this.mImageTargetType = imageTarget.ImageTargetType;
            if (imageTarget is ImageTargetImpl)
            {
                this.mDataSetPath = ((ImageTargetImpl)imageTarget).DataSet.Path;
            }
            if (applyTargetScaleToBehaviour || imageTarget.ImageTargetType != ImageTargetType.PREDEFINED)
            {
                Vector3 size = imageTarget.GetSize();
                float   num  = Mathf.Max(size.x, size.y);
                base.transform.localScale = new Vector3(num, num, num);
                base.CorrectScale();
                this.mAspectRatio = size.y / size.x;
            }
            this.mVirtualButtonBehaviours = new Dictionary <int, VirtualButtonAbstractBehaviour>();
            if (imageTarget.ImageTargetType == ImageTargetType.PREDEFINED)
            {
                Vector2 size2 = this.GetSize();
                imageTarget.SetSize(size2);
            }
            if (this.mExtendedTracking)
            {
                this.mImageTarget.StartExtendedTracking();
            }
            return(true);
        }
 // sets the ImageTargetType (only in editor mode)
 bool IEditorImageTargetBehaviour.SetImageTargetType(ImageTargetType imageTargetType)
 {
     if (mTrackable == null)
     {
         mImageTargetType = imageTargetType;
         return true;
     }
     return false;
 }
Example #10
0
 public ImageFloatTarget(Image image, ImageTargetType targetType = ImageTargetType.Alpha)
 {
     _target     = image;
     _targetType = targetType;
 }
 public ImageTargetImpl(string name, int id, ImageTargetType imageTargetType, DataSet dataSet) : base(name, id, dataSet)
 {
     this.mImageTargetType = imageTargetType;
     this.mVirtualButtons  = new Dictionary <int, VirtualButton>();
     this.CreateVirtualButtonsFromNative();
 }
Example #12
0
 public ImageFloatTarget(Image source, ImageTargetType type)
 {
     target     = source;
     targetType = type;
 }
        internal static Material UpdateMaterial(string dataSetName, string trackableName, ImageTargetType imageTargetType, Material oldMaterial)
        {
            Material material  = AssetDatabase.LoadAssetAtPath <Material>("Assets/Vuforia/Materials/UserDefinedTarget.mat");
            Material material2 = AssetDatabase.LoadAssetAtPath <Material>("Assets/Vuforia/Materials/CloudRecoTarget.mat");

            if (imageTargetType == ImageTargetType.USER_DEFINED)
            {
                return(material);
            }
            if (imageTargetType == ImageTargetType.CLOUD_RECO)
            {
                return(material2);
            }
            Material material3 = VuforiaUtilities.LoadReferenceMaterial();

            if (material3 == null)
            {
                return(null);
            }
            Material material4 = oldMaterial;

            if (material4 == null || material4 == material3 || material4 == material || material4 == material2)
            {
                material4 = new Material(material3);
            }
            string text;

            if (!VuforiaUtilities.GetImagePathWithExtension(string.Concat(new string[]
            {
                "Assets/Editor/Vuforia/ImageTargetTextures/",
                dataSetName,
                "/",
                trackableName,
                "_scaled"
            }), out text))
            {
                VuforiaUtilities.GetImagePathWithExtension(string.Concat(new string[]
                {
                    "Assets/Editor/QCAR/ImageTargetTextures/",
                    dataSetName,
                    "/",
                    trackableName,
                    "_scaled"
                }), out text);
            }
            Texture2D mainTexture = AssetDatabase.LoadAssetAtPath <Texture2D>(text);

            material4.mainTexture      = mainTexture;
            material4.mainTextureScale = new Vector2(1f, 1f);
            material4.name             = trackableName + "Material";
            return(material4);
        }
Example #14
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ImageTarget"/> class.
 /// </summary>
 /// <param name="trackable">The trackable.</param>
 internal ImageTarget(QCAR_Trackable trackable)
     : base(trackable)
 {
     this.ImageTargetType = ImageTargetType.PREDEFINED;
 }