Ejemplo n.º 1
0
 public override void OnPluginPanel(FacePaint fp, FacePaintData fpData)
 {
     _perPoly = EditorGUILayout.Toggle("Per Face", _perPoly);
     EditorGUILayout.LabelField("Ranges");
     _h = EditorGUILayout.Slider("Hue", _h, 0, 1);
     _s = EditorGUILayout.Slider("Sat", _s, 0, 1);
     _v = EditorGUILayout.Slider("Val", _v, 0, 1);
     _a = EditorGUILayout.Slider("Alpha", _a, 0, 1);
     if (GUILayout.Button("Randomise"))
     {
         Color[] c = fpData.GetColors();
         if (_perPoly)
         {
             int[] t = fpData.GetTris();
             for (int i = 0; i < (t.Length / 3); ++i)
             {
                 int j = i * 3;
                 c[t[j]] = c[t[j + 1]] = c[t[j + 2]] = Randomise(c[t[j]]);;
             }
         }
         else
         {
             for (int i = 0; i < c.Length; ++i)
             {
                 c[i] = Randomise(c[i]);
             }
         }
         fpData.SetColors(c);
     }
 }
Ejemplo n.º 2
0
        public override void OnSceneGUI(FacePaint fp, FacePaintData fpData, FacePaintSceneGUIData data)
        {
            if (_collapse != _wasCollapse)
            {
                _last = null;
            }
            _wasCollapse = _collapse;

            bool triEvt = false;

            switch (data.evt)
            {
            case FacePaintSceneGUIData.SceneGUIEvent.HOVER_TRIS:
            case FacePaintSceneGUIData.SceneGUIEvent.M_DOWN:
            case FacePaintSceneGUIData.SceneGUIEvent.M_DRAG:
                triEvt = true;
                break;
            }

            // Work out whether event is duplicate of last
            if (_last != null && _collapse)
            {
                // If same event, don't print UNLESS triangle event
                if (_last.evt == data.evt)
                {
                    // If triangle event, check triangle has changed
                    if (triEvt)
                    {
                        // If triangle hasn't changed, don't print
                        if (_last.triHit == data.triHit)
                        {
                            return;
                        }
                    }
                    else
                    {
                        // If not triangle event, don't print
                        return;
                    }
                }
            }

            string log = "FacePaint Event: " + data.evt.ToString();

            if (triEvt)
            {
                var t = fpData.GetTris();
                log += "  T:" + data.triHit.ToString()
                       + " V:[" + t[data.vertsHit[0]].ToString() + ", "
                       + t[data.vertsHit[1]].ToString() + ", "
                       + t[data.vertsHit[1]].ToString() + "]";
            }
            Debug.Log(log);

            _last = data;
        }