public ComponTransformViewModel()
        {
            _transformModel = new TransformModel();
            _flameColorMode = FlameColorMode.Color;

            Command       = new RelayCommand(CommandHandler);
            GradientModel = new GradientModel(Colors.Gray, Colors.Gray);
            ColorPosition = .5;


            FColor = Colors.Gray;
            Parameter1Visibility = Visibility.Collapsed;
            Parameter2Visibility = Visibility.Collapsed;
            Parameter3Visibility = Visibility.Collapsed;
            Parameter4Visibility = Visibility.Collapsed;

            Variations        = VariationFactoryModel.StaticVariationFactory.VariationNames;
            VariationSelected = "Linear";

            BindStorage.SetActionFor(ActionValueChanged, _propParameters);
            BindStorage.SetActionFor(ActionValueChanged, _propValues2);
            BindStorage.SetActionFor(ActionTransformValueChanged, _propValues);
            BindStorage.SetActionFor(ActionVariationChanged, _propVariation);

            SetCoefficients();
        }
        public static void SaveImage(string folder, string name, FlameColorMode colorMode)
        {
            if (Display == null)
            {
                return;
            }
            var now = DateTime.Now;

            var rcMode = "";

            switch (Display.RenderColorMode)
            {
            case RenderColorModeModel.RenderColorMode.Hsb:
                rcMode = "hsb";
                break;

            case RenderColorModeModel.RenderColorMode.Lab:
                rcMode = "lab";
                break;

            case RenderColorModeModel.RenderColorMode.LogGamma:
                rcMode = "log";
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            //todo: density estimation point
            // Density.Estimation(Display, 0, 9, .4, out var di);


            var path =
                $"{folder}\\{name}-{now.Year}{now.Month:00}{now.Day:00}-{(int) now.TimeOfDay.TotalSeconds}-{_iterations}-{(int) _renderTime.TotalSeconds}_{rcMode}.png";
            BitmapSource img;

            switch (colorMode)
            {
            case FlameColorMode.Color:
                img = Display.GetBitmapForRender(_transformationColors);
                // img = di.GetBitmapForRender(_transformationColors);
                break;

            case FlameColorMode.Gradient:
                img = Display.GetBitmapForRender(_transformationGradientValues, _gradModel);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            ImageHelper.SaveImage(path, img);
        }
Пример #3
0
 public RenderPackModel(TransformModel[] transformations, VariationModel[] variations,
                        ViewSettingsModel viewSettings, RenderSettingsModel renderSettings, FlameColorMode colorMode, GradientModel gradModel)
 {
     Transformations = transformations;
     Variations      = variations;
     ViewSettings    = viewSettings;
     RenderSettings  = renderSettings;
     ColorMode       = colorMode;
     if (gradModel != null)
     {
         GradModelCopy = gradModel.Copy();
     }
 }
        private void ColorRadioCheckedHandler(object obj)
        {
            var radio = (RadioButton)obj;

            if (radio.IsChecked != true)
            {
                return;
            }
            var name = radio.Name;

            switch (name)
            {
            case "RadioColor":
                _flameColorMode = FlameColorMode.Color;
                break;

            case "RadioGradient":
                _flameColorMode = FlameColorMode.Gradient;
                break;
            }

            IsEnabledGradientMode = name == "RadioGradient";
            SetColorModeForAllTransforms(_flameColorMode);
        }