Example #1
0
 static void OnUpdateFFD(FFDBox ffd)
 {
     Graphmesh.Graphmesh[] meshModifiers = FindObjectsOfType <Graphmesh.Graphmesh>();
     for (int i = 0; i < meshModifiers.Length; i++)
     {
         if (meshModifiers[i].outputCache.Contains(ffd))
         {
             meshModifiers[i].Generate();
         }
     }
 }
Example #2
0
        void OnSceneGUI()
        {
            FFDBox ffd = target as FFDBox;

            Vector3 l_000 = ffd.transform.TransformPoint(ffd.settings.v_000);
            Vector3 l_001 = ffd.transform.TransformPoint(ffd.settings.v_001);
            Vector3 l_010 = ffd.transform.TransformPoint(ffd.settings.v_010);
            Vector3 l_011 = ffd.transform.TransformPoint(ffd.settings.v_011);
            Vector3 l_100 = ffd.transform.TransformPoint(ffd.settings.v_100);
            Vector3 l_101 = ffd.transform.TransformPoint(ffd.settings.v_101);
            Vector3 l_110 = ffd.transform.TransformPoint(ffd.settings.v_110);
            Vector3 l_111 = ffd.transform.TransformPoint(ffd.settings.v_111);

            Handles.DrawLine(l_000, l_001);
            Handles.DrawLine(l_000, l_010);
            Handles.DrawLine(l_000, l_100);
            Handles.DrawLine(l_111, l_101);
            Handles.DrawLine(l_111, l_110);
            Handles.DrawLine(l_111, l_011);

            Handles.DrawLine(l_101, l_001);
            Handles.DrawLine(l_110, l_100);
            Handles.DrawLine(l_011, l_010);
            Handles.DrawLine(l_100, l_101);
            Handles.DrawLine(l_010, l_110);
            Handles.DrawLine(l_001, l_011);

            EditorGUI.BeginChangeCheck();
            l_000 = Handles.PositionHandle(l_000, ffd.transform.rotation);
            l_001 = Handles.PositionHandle(l_001, ffd.transform.rotation);
            l_010 = Handles.PositionHandle(l_010, ffd.transform.rotation);
            l_011 = Handles.PositionHandle(l_011, ffd.transform.rotation);
            l_100 = Handles.PositionHandle(l_100, ffd.transform.rotation);
            l_101 = Handles.PositionHandle(l_101, ffd.transform.rotation);
            l_110 = Handles.PositionHandle(l_110, ffd.transform.rotation);
            l_111 = Handles.PositionHandle(l_111, ffd.transform.rotation);

            ffd.settings.v_000 = ffd.transform.InverseTransformPoint(l_000);
            ffd.settings.v_001 = ffd.transform.InverseTransformPoint(l_001);
            ffd.settings.v_010 = ffd.transform.InverseTransformPoint(l_010);
            ffd.settings.v_011 = ffd.transform.InverseTransformPoint(l_011);
            ffd.settings.v_100 = ffd.transform.InverseTransformPoint(l_100);
            ffd.settings.v_101 = ffd.transform.InverseTransformPoint(l_101);
            ffd.settings.v_110 = ffd.transform.InverseTransformPoint(l_110);
            ffd.settings.v_111 = ffd.transform.InverseTransformPoint(l_111);
            if (EditorGUI.EndChangeCheck())
            {
                if (onUpdateFFD != null)
                {
                    onUpdateFFD(ffd);
                }
            }
        }