private static void DrawClippingMaskSettings(Material material)
    {
        EditorGUILayout.BeginVertical(EditorStyles.helpBox);
        bool useClippingMask = material.IsKeywordEnabled("USE_CLIPPING_MASK");

        useClippingMask = EditorGUILayout.Toggle("Use clipping mask?", useClippingMask);
        if (useClippingMask != material.IsKeywordEnabled("USE_CLIPPING_MASK"))
        {
            if (useClippingMask)
            {
                material.EnableKeyword("USE_CLIPPING_MASK");
            }
            else
            {
                material.DisableKeyword("USE_CLIPPING_MASK");
            }
        }

        if (useClippingMask)
        {
            int maskValue  = Mathf.RoundToInt(material.GetFloat("_ClippingMaskVal") * 255f);
            int maskValTmp = maskValue;
            maskValue = EditorGUILayout.IntSlider("Clipping mask", maskValue, 0, 255);
            if (maskValue != maskValTmp)
            {
                material.SetFloat("_ClippingMaskVal", maskValue / 255f);
            }

            ClippingMode clippingMode    = material.IsKeywordEnabled("CLIPPINGMODE_OUTSIDE") ? ClippingMode.OutsideMask : ClippingMode.InsideMask;
            ClippingMode newClippingMode = (ClippingMode)EditorGUILayout.EnumPopup("Clipping mode", clippingMode);
            if (clippingMode != newClippingMode)
            {
                if (newClippingMode == ClippingMode.InsideMask)
                {
                    material.EnableKeyword("CLIPPINGMODE_INSIDE");
                    material.DisableKeyword("CLIPPINGMODE_OUTSIDE");
                }
                else
                {
                    material.DisableKeyword("CLIPPINGMODE_INSIDE");
                    material.EnableKeyword("CLIPPINGMODE_OUTSIDE");
                }
            }
        }
        EditorGUILayout.EndVertical();
    }
Example #2
0
 public override void ReadFromBinary(IBinaryReader reader)
 {
     Mode = (ClippingMode)reader.ReadEnum();
 }
Example #3
0
 public MarkerClipping(CgmFile container, ClippingMode mode)
     : this(container)
 {
     Mode = mode;
 }
 public LineClippingMode(ClippingMode mode)
     : base(3, 7)
 {
     Mode = mode;
 }
Example #5
0
 public EdgeClipping(CgmFile container, ClippingMode mode)
     : this(container)
 {
     Mode = mode;
 }
 public MarkerClippingMode(ClippingMode mode)
     : base(3, 8)
 {
     Mode = mode;
 }
Example #7
0
 public EdgeClippingMode(ClippingMode mode)
     : base(3, 9)
 {
     Mode = mode;
 }