public void OnEnable()
        {
            CylinderTargetAbstractBehaviour arg_22_0 = (CylinderTargetAbstractBehaviour)base.target;

            this.mSerializedObject = new SerializedCylinderTarget(base.serializedObject);
            CylinderTargetEditor.EditorConfigureTarget(arg_22_0, this.mSerializedObject);
        }
 public static void EditorConfigureTarget(CylinderTargetAbstractBehaviour ctb, SerializedCylinderTarget serializedObject)
 {
     if (ctb == null)
     {
         Debug.LogError("CylinderTargetAbstractBehaviour parameter is null !");
         return;
     }
     if (VuforiaUtilities.GetPrefabType(ctb) == PrefabType.Prefab)
     {
         return;
     }
     if (!SceneManager.Instance.SceneInitialized)
     {
         SceneManager.Instance.InitScene();
     }
     using (serializedObject.Edit())
     {
         if (!serializedObject.InitializedInEditor && !EditorApplication.isPlaying)
         {
             ConfigData.CylinderTargetData cylinderTargetData;
             ConfigDataManager.Instance.GetConfigData("--- EMPTY ---").GetCylinderTarget("--- EMPTY ---", out cylinderTargetData);
             serializedObject.DataSetPath   = "--- EMPTY ---";
             serializedObject.TrackableName = "--- EMPTY ---";
             CylinderTargetEditor.UpdateAspectRatio(serializedObject, cylinderTargetData);
             CylinderTargetEditor.UpdateScale(serializedObject, cylinderTargetData.sideLength);
             serializedObject.InitializedInEditor = true;
         }
         else if (!EditorApplication.isPlaying)
         {
             CylinderTargetEditor.CheckMesh(serializedObject);
         }
     }
 }
 private static void CheckMesh(SerializedCylinderTarget serializedObject)
 {
     foreach (CylinderTargetAbstractBehaviour expr_15 in serializedObject.GetBehaviours())
     {
         MeshFilter   component  = expr_15.gameObject.GetComponent <MeshFilter>();
         MeshRenderer component2 = expr_15.gameObject.GetComponent <MeshRenderer>();
         if (component == null || component.sharedMesh == null || component2 == null || component2.sharedMaterials.Length == 0 || component2.sharedMaterials[0] == null)
         {
             ConfigData.CylinderTargetData ctConfig;
             ConfigDataManager.Instance.GetConfigData(serializedObject.GetDataSetName()).GetCylinderTarget(serializedObject.TrackableName, out ctConfig);
             CylinderTargetEditor.UpdateAspectRatio(serializedObject, ctConfig);
         }
     }
 }
        internal static void UpdateAspectRatio(SerializedCylinderTarget serializedObject, ConfigData.CylinderTargetData ctConfig)
        {
            float num  = ctConfig.topDiameter / ctConfig.sideLength;
            float num2 = ctConfig.bottomDiameter / ctConfig.sideLength;

            serializedObject.TopDiameterRatio    = num;
            serializedObject.BottomDiameterRatio = num2;
            UnityEngine.Object[] targetObjects = serializedObject.SerializedObject.targetObjects;
            for (int i = 0; i < targetObjects.Length; i++)
            {
                CylinderTargetEditor.UpdateGeometry(((CylinderTargetAbstractBehaviour)targetObjects[i]).gameObject, 1f, num, num2, ctConfig.hasTopGeometry, ctConfig.hasBottomGeometry);
            }
            string arg_92_0      = serializedObject.GetDataSetName();
            string trackableName = serializedObject.TrackableName;

            Material[] material = CylinderTargetEditor.UpdateMaterials(arg_92_0, trackableName, ctConfig.hasBottomGeometry, ctConfig.hasTopGeometry, true, serializedObject.GetMaterials());
            serializedObject.SetMaterial(material);
        }
Exemple #5
0
 public override void ApplyDataSetAppearance()
 {
     if (VuforiaUtilities.GetPrefabType(this.mTarget) == PrefabType.Prefab)
     {
         return;
     }
     using (this.mSerializedObject.Edit())
     {
         ConfigData.CylinderTargetData ctConfig;
         if (this.TrackableInDataSet(this.mSerializedObject.TrackableName, this.mSerializedObject.GetDataSetName()))
         {
             ConfigDataManager.Instance.GetConfigData(this.mSerializedObject.GetDataSetName()).GetCylinderTarget(this.mSerializedObject.TrackableName, out ctConfig);
         }
         else
         {
             ConfigDataManager.Instance.GetConfigData("--- EMPTY ---").GetCylinderTarget("--- EMPTY ---", out ctConfig);
             this.mSerializedObject.DataSetPath   = "--- EMPTY ---";
             this.mSerializedObject.TrackableName = "--- EMPTY ---";
         }
         CylinderTargetEditor.UpdateAspectRatio(this.mSerializedObject, ctConfig);
     }
 }
 public override void OnInspectorGUI()
 {
     base.DrawDefaultInspector();
     VuforiaUtilities.DisableGuiForPrefab(base.target);
     if (ConfigDataManager.Instance.NumConfigDataObjects > 1)
     {
         using (this.mSerializedObject.Edit())
         {
             if (VuforiaUtilities.DrawDatasetTrackableInspector(this.mSerializedObject, false, new Func <ConfigData, string[]>(CylinderTargetEditor.GetTrackableNames), "Cylinder Target"))
             {
                 ConfigData.CylinderTargetData cylinderTargetData;
                 ConfigDataManager.Instance.GetConfigData(this.mSerializedObject.GetDataSetName()).GetCylinderTarget(this.mSerializedObject.TrackableName, out cylinderTargetData);
                 CylinderTargetEditor.UpdateAspectRatio(this.mSerializedObject, cylinderTargetData);
                 CylinderTargetEditor.UpdateScale(this.mSerializedObject, cylinderTargetData.sideLength);
             }
             EditorGUILayout.PropertyField(this.mSerializedObject.SideLengthProperty, new GUIContent("Side length"), new GUILayoutOption[0]);
             EditorGUILayout.PropertyField(this.mSerializedObject.TopDiameterProperty, new GUIContent("Top diameter"), new GUILayoutOption[0]);
             EditorGUILayout.PropertyField(this.mSerializedObject.BottomDiameterProperty, new GUIContent("Bottom diameter"), new GUILayoutOption[0]);
             VuforiaUtilities.DrawTrackableOptions(this.mSerializedObject, true, true, true);
             return;
         }
     }
     VuforiaUtilities.DrawMissingTargetsButton();
 }