Beispiel #1
0
        public override async void Execute()
        {
            await Task.Delay(1000);

            ViewManager.Initialize();
            SaveManager.Initialize();
            ShortcutService.Initialize();
            BrushService.Initialize();
            DrawService.Initialize();
            BackgroundService.Initialize();
            CameraService.Initialize();
            ProjectService.Initialize();
            AudioPeerService.Initialize();
        }
Beispiel #2
0
        private void Update()
        {
            if (CurveService.IsEditorOpen())
            {
                return;
            }

            if (EventSystem.current.IsPointerOverGameObject(-1))
            {
                if (BrushService.GetBrushShape() == Shape.Line && _drawing)
                {
                    ReleaseLine();
                }
                _cursorLine.gameObject.SetActive(false);
                return;
            }

            DrawCursor();

            if (Input.GetMouseButtonDown(0))
            {
                CreateLine();
            }

            if (Input.GetMouseButton(0) && _lineRenderer != null && BrushService.GetBrushShape() == Shape.Line)
            {
                Vector2 tmpFingerPos = _camera.ScreenToWorldPoint(Input.mousePosition);
                if (Vector2.Distance(tmpFingerPos, _fingerPositions[_fingerPositions.Count - 1]) > 0.1f)
                {
                    UpdateLine(tmpFingerPos);
                }

                _drawing = true;
            }

            if (Input.GetMouseButtonUp(0))
            {
                ReleaseLine();
            }

            if (Input.GetAxis("Mouse ScrollWheel") > 0 && Input.GetKey(KeyCode.LeftShift))
            {
                _initialRotation++;
            }

            if (Input.GetAxis("Mouse ScrollWheel") < 0 && Input.GetKey(KeyCode.LeftShift))
            {
                _initialRotation--;
            }
        }
Beispiel #3
0
        public override async void Execute()
        {
            RTAnimationCurve rtAnimationCurve = CurveService.GetAnimationCurve();

            rtAnimationCurve.ShowCurveEditor();
            rtAnimationCurve.NewWindow();

            AnimationCurve animationCurve = BrushService.GetBrushWidthCurve();

            rtAnimationCurve.Add(ref animationCurve);

            rtAnimationCurve.SetGradXRange(0, 1f);
            rtAnimationCurve.SetGradYRange(0, 0.5f);

            await TaskEx.WaitWhile(CurveService.IsEditorOpen);

            BrushService.SetBrushWidthCurve(animationCurve);
        }
Beispiel #4
0
        private void CreateLine()
        {
            _currentLine = Instantiate(_linePrefab, Vector3.zero, Quaternion.identity);
            _currentLine.transform.SetParent(_3dRoot.transform, false);
            _lineRenderer = _currentLine.GetComponent <LineRenderer>();
            _lineRenderer.sharedMaterial = new Material(_lineMaterial);
            _lineRenderer.sortingOrder   = 0;

            if (BrushService.IsEmissionEnabled())
            {
                _lineRenderer.sharedMaterial.EnableKeyword("_EMISSION");
                _lineRenderer.sharedMaterial.SetColor("_EmissionColor", BrushService.GetBrushEmissionColor() * BrushService.GetBrushEmissionIntensity());
            }

            _lineRenderer.colorGradient = BrushService.GetBrushGradient();

            _lineRenderer.widthCurve = BrushService.GetBrushWidthCurve();

            _fingerPositions.Clear();
            _fingerPositions.Add(_camera.ScreenToWorldPoint(Input.mousePosition));
            _fingerPositions.Add(_camera.ScreenToWorldPoint(Input.mousePosition));

            if (BrushService.GetBrushShape() == Shape.Line)
            {
                _lineRenderer.SetPosition(0, _fingerPositions[0]);
                _lineRenderer.SetPosition(1, _fingerPositions[1]);
            }
            else if (BrushService.GetBrushShape() == Shape.Phyllotaxis)
            {
                _lineRenderer.gameObject.transform.localPosition = _camera.ScreenToWorldPoint((Input.mousePosition));
            }
            else
            {
                _lineRenderer.positionCount = _shapePointAmout + 1;
                _lineRenderer.SetPositions(_shapePoints);
                _lineRenderer.SetPosition(_shapePointAmout, _shapePoints[0]);
            }
        }
Beispiel #5
0
 public override void Execute()
 {
     BrushService.SetBrushEmissionIntensity(Value);
 }
Beispiel #6
0
 public override void Execute()
 {
     BrushService.SetEmission(Value);
 }
Beispiel #7
0
 private void OnColorSelected(Color color)
 {
     BrushService.SetBrushEmissionColor(color);
     BrushEmissionColorSelectedSignal.Dispatch(color);
 }
Beispiel #8
0
        public override void Execute()
        {
            DialogColorPicker dialogColorPicker = DialogManager.ShowDialogColorPicker();

            dialogColorPicker.Initialize(BrushService.GetBrushEmissionColor(), OnColorSelected);
        }
 public override void Execute()
 {
     BrushService.SetBrushShapeInitSize(Value);
 }
Beispiel #10
0
        private void MapServices()
        {
            #region Audio
            AudioPeerService audioPeerService = (contextView as GameObject)?.GetComponentInChildren <AudioPeerService>();
            if (audioPeerService != null)
            {
                injectionBinder.Bind <IAudioPeerService>().ToValue(audioPeerService);
            }
            #endregion

            #region Brush
            BrushService brushService = (contextView as GameObject)?.GetComponentInChildren <BrushService>();
            if (brushService != null)
            {
                injectionBinder.Bind <IBrushService>().ToValue(brushService);
            }
            #endregion

            #region Camera

            CameraService cameraService = (contextView as GameObject)?.GetComponentInChildren <CameraService>();
            if (cameraService != null)
            {
                injectionBinder.Bind <ICameraService>().ToValue(cameraService);
            }

            #endregion

            #region MyRegion

            CurveService curveService = (contextView as GameObject)?.GetComponentInChildren <CurveService>();
            if (curveService != null)
            {
                injectionBinder.Bind <ICurveService>().ToValue(curveService);
            }

            #endregion

            #region Draw

            DrawService drawService = (contextView as GameObject)?.GetComponentInChildren <DrawService>();
            if (drawService != null)
            {
                injectionBinder.Bind <IDrawService>().ToValue(drawService);
            }

            #endregion

            #region ViewManager

            ViewManager viewManager = (contextView as GameObject)?.GetComponentInChildren <ViewManager>();
            if (viewManager != null)
            {
                injectionBinder.Bind <IViewManager>().ToValue(viewManager);
            }

            #endregion

            #region Background

            BackgroundService backgroundService = (contextView as GameObject)?.GetComponentInChildren <BackgroundService>();
            if (cameraService != null)
            {
                injectionBinder.Bind <IBackgroundService>().ToValue(backgroundService);
            }

            #endregion

            #region Project

            ProjectService projectService = (contextView as GameObject)?.GetComponentInChildren <ProjectService>();
            if (cameraService != null)
            {
                injectionBinder.Bind <IProjectService>().ToValue(projectService);
            }

            #endregion

            #region Shortcut

            ShortcutService shortcutService = (contextView as GameObject)?.GetComponentInChildren <ShortcutService>();
            if (shortcutService != null)
            {
                injectionBinder.Bind <IShortcutService>().ToValue(shortcutService);
            }

            #endregion

            #region Save

            SaveManager saveManager = (contextView as GameObject)?.GetComponentInChildren <SaveManager>();
            if (shortcutService != null)
            {
                injectionBinder.Bind <ISaveManager>().ToValue(saveManager);
            }

            #endregion

            #region Recording

            RecordingService recordingService = (contextView as GameObject)?.GetComponentInChildren <RecordingService>();
            if (recordingService != null)
            {
                injectionBinder.Bind <IRecordingService>().ToValue(recordingService);
            }

            #endregion
        }
 public override void Execute()
 {
     BrushService.SetBrushShape((Shape)Value);
 }
 private void OnBrushGradientSelected(Gradient gradient)
 {
     BrushService.SetBrushGradient(gradient);
     BrushGradientSelectedSignal.Dispatch(gradient);
 }
        public override void Execute()
        {
            DialogGradient dialogGradient = DialogManager.ShowDialogGradient();

            dialogGradient.Initialize(BrushService.GetBrushGradient(), OnBrushGradientSelected);
        }
Beispiel #14
0
        private void DrawCursor()
        {
            if (_lineCursorRenderer == null)
            {
                CreateCursor();
            }

            _cursorLine.gameObject.SetActive(true);

            if (BrushService.IsEmissionEnabled())
            {
                _lineCursorRenderer.sharedMaterial.EnableKeyword("_EMISSION");
                _lineCursorRenderer.sharedMaterial.SetColor("_EmissionColor", BrushService.GetBrushEmissionColor() * BrushService.GetBrushEmissionIntensity());
            }

            _lineCursorRenderer.colorGradient = BrushService.GetBrushGradient();

            _lineCursorRenderer.widthCurve = BrushService.GetBrushWidthCurve();


            switch (BrushService.GetBrushShape())
            {
            case Shape.Line:
            case Shape.Phyllotaxis:
                _lineCursorRenderer.positionCount = 2;
                _lineCursorRenderer.SetPosition(0, _camera.ScreenToWorldPoint(Input.mousePosition));
                _lineCursorRenderer.SetPosition(1, _camera.ScreenToWorldPoint(Input.mousePosition));
                return;

            case Shape.Triangle:
                _shapePointAmout = 3;
                break;

            case Shape.Square:
                _shapePointAmout = 4;
                break;

            case Shape.Pentagon:
                _shapePointAmout = 5;
                break;

            case Shape.Hexagon:
                _shapePointAmout = 6;
                break;

            case Shape.Heptagon:
                _shapePointAmout = 7;
                break;

            case Shape.Octagon:
                _shapePointAmout = 8;
                break;
            }

            _shapePoints  = new Vector3[_shapePointAmout];
            _rotateVector = Quaternion.AngleAxis(_initialRotation, new Vector3(0, 0, 1)) * new Vector3(1, 0, 0);

            for (int i = 0; i < _shapePointAmout; i++)
            {
                _shapePoints[i] = (_rotateVector *
                                   BrushService.GetBrushShapeInitSize()) + _camera.ScreenToWorldPoint(Input.mousePosition);
                _rotateVector = Quaternion.AngleAxis(360 / _shapePointAmout, new Vector3(0, 0, 1)) * _rotateVector;
            }

            _lineCursorRenderer.positionCount = _shapePointAmout + 1;
            for (int i = 0; i < _shapePointAmout; i++)
            {
                _lineCursorRenderer.SetPosition(i, _shapePoints[i]);
            }
            _lineCursorRenderer.SetPosition(_shapePointAmout, _shapePoints[0]);
        }
Beispiel #15
0
        private void ReleaseLine()
        {
            if (_lineRenderer == null)
            {
                return;
            }
            _drawing = false;
            Vector3[] originalPositions = new Vector3[_lineRenderer.positionCount];
            _lineRenderer.GetPositions(originalPositions);

            ILineModel lineModel = new LineModel
            {
                Guid              = Guid.NewGuid().ToString("N"),
                DisplayName       = BrushService.GetBrushShape().ToString(),
                Layer             = _lineRenderer.sortingOrder,
                WidthCurve        = _lineRenderer.widthCurve,
                Gradient          = _lineRenderer.colorGradient,
                IsEmissionEnabled = BrushService.IsEmissionEnabled(),
                EmissionIntensity = BrushService.GetBrushEmissionIntensity(),
                LineGameObject    = _lineRenderer,
                Shape             = BrushService.GetBrushShape(),
                EmissionColor     = BrushService.GetBrushEmissionColor(),

                EmissionProperty    = new EmissionProperty(),
                ScaleProperty       = new ScaleProperty(),
                KochLineProperty    = new KochLineProperty(),
                KochTrailProperty   = new KochTrailProperty(),
                PhyllotaxisProperty = new PhyllotaxisProperty()
            };

            lineModel.EmissionProperty.IsEmissionReactOnAudio = BrushService.GetBrushEmissionReactOnAudio();
            lineModel.EmissionProperty.EmissionBandBuffer     = BrushService.GetBrushEmissionBandBuffer();
            lineModel.EmissionProperty.EmissionThreshold      = BrushService.GetBrushEmissionThreshold();
            lineModel.EmissionProperty.EmissionFrequencyType  = BrushService.GetBrushEmissionFrequencyType();

            lineModel.ScaleProperty.IsScaleReactOnAudio = BrushService.GetBrushScaleReactOnAudio();
            lineModel.ScaleProperty.ScaleBandBuffer     = BrushService.GetBrushScaleBandBuffer();
            lineModel.ScaleProperty.ScaleMultiplier     = BrushService.GetBrushScaleMultiplier();
            lineModel.ScaleProperty.ScaleThreshold      = BrushService.GetBrushScaleThreshold();
            lineModel.ScaleProperty.ScaleFrequencyType  = BrushService.GetBrushScaleFrequencyType();

            lineModel.KochLineProperty.IsKochEnabled       = BrushService.GetBrushKochEnabled();
            lineModel.KochLineProperty.ShapePointAmount    = _shapePointAmout;
            lineModel.KochLineProperty.ListStartGeneration = BrushService.GetBrushStartGeneration();
            lineModel.KochLineProperty.AnimationCurve      = BrushService.GetBrushAnimationCurve();
            lineModel.KochLineProperty.UseBezierCurves     = BrushService.GetBrushUseBezierCurves();
            lineModel.KochLineProperty.BezierVertexCount   = BrushService.GetBrushBezierVertexCount();
            lineModel.KochLineProperty.KochAudioBand       = BrushService.GetBrushKochAudioBand();
            lineModel.KochLineProperty.OriginalPositions   = originalPositions;

            lineModel.KochTrailProperty.IsTrailEnabled   = BrushService.GetBrushTrailEnabled();
            lineModel.KochTrailProperty.TrailSpeedMinMax = BrushService.GetBrushTrailSpeedMinMax();
            lineModel.KochTrailProperty.TrailTimeMinMax  = BrushService.GetBrushTrailTimeMinMax();
            lineModel.KochTrailProperty.TrailWidthMinMax = BrushService.GetBrushTrailWidthMinMax();

            lineModel.PhyllotaxisProperty.Degree                  = BrushService.GetBrushDegree();
            lineModel.PhyllotaxisProperty.Scale                   = BrushService.GetBrushScale();
            lineModel.PhyllotaxisProperty.NumberStart             = BrushService.GetBrushNumberStart();
            lineModel.PhyllotaxisProperty.StepSize                = BrushService.GetBrushStepSize();
            lineModel.PhyllotaxisProperty.MaxIterations           = BrushService.GetBrushMaxIterations();
            lineModel.PhyllotaxisProperty.UseLerping              = BrushService.GetBrushUseLerping();
            lineModel.PhyllotaxisProperty.LerpFrequencyType       = BrushService.GetBrushLerpFrequencyType();
            lineModel.PhyllotaxisProperty.LerpAudioBand           = BrushService.GetBrushLerpAudioBand();
            lineModel.PhyllotaxisProperty.SpeedMinMax             = BrushService.GetBrushSpeedMinMax();
            lineModel.PhyllotaxisProperty.LerpInterpolationCurve  = BrushService.GetBrushLerpInterpolationCurve();
            lineModel.PhyllotaxisProperty.Repeat                  = BrushService.GetBrushRepeat();
            lineModel.PhyllotaxisProperty.Invert                  = BrushService.GetBrushInvert();
            lineModel.PhyllotaxisProperty.UseScaling              = BrushService.GetBrushUseScaling();
            lineModel.PhyllotaxisProperty.ScaleFrequencyType      = BrushService.GetBrushScalePhylloFrequencyType();
            lineModel.PhyllotaxisProperty.ScaleAudioBand          = BrushService.GetBrushScaleAudioBand();
            lineModel.PhyllotaxisProperty.ScaleMinMax             = BrushService.GetBrushScaleMinMax();
            lineModel.PhyllotaxisProperty.UseScaleCurve           = BrushService.GetBrushUseScaleCurve();
            lineModel.PhyllotaxisProperty.ScaleInterpolationCurve = BrushService.GetBrushScaleInterpolationCurve();
            lineModel.PhyllotaxisProperty.InterpolationSpeed      = BrushService.GetBrushInterpolationSpeed();

            AddLineSignal.Dispatch(lineModel);
        }
Beispiel #16
0
 public override void Execute()
 {
     BrushService.SetBrushFromCopy(LineModel);
     SetBrushFromCopySelectedSignal.Dispatch(LineModel);
 }