diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index d120cf1..e6faa6e 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -296,27 +296,35 @@ namespace CtrEditor { case "TopLeft": rect.Cursor = Cursors.Arrow; + rect.Stroke = Brushes.Gray; break; case "TopRight": rect.Cursor = rotationCursorRx; // Cursor de rotación + rect.Stroke = Brushes.Red; break; case "BottomLeft": rect.Cursor = rotationCursorSx; // Cursor de rotación + rect.Stroke = Brushes.DarkRed; break; case "BottomRight": rect.Cursor = Cursors.SizeNWSE; // Cursor de dimensionar altura y anchura + rect.Stroke = Brushes.Blue; break; case "TopCenter": rect.Cursor = Cursors.Arrow; + rect.Stroke = Brushes.Gray; break; case "BottomCenter": rect.Cursor = Cursors.SizeNS; // Cursor de dimensionar altura + rect.Stroke = Brushes.Blue; break; case "CenterLeft": rect.Cursor = rotationCursorRx; // Cursor de rotación + rect.Stroke = Brushes.Red; break; case "CenterRight": rect.Cursor = Cursors.SizeWE; // Cursor de dimensionar anchura + rect.Stroke = Brushes.Blue; break; } @@ -433,8 +441,8 @@ namespace CtrEditor var newX = Canvas.GetLeft(_currentDraggingControl) + dx; var newY = Canvas.GetTop(_currentDraggingControl) + dy; - if (_currentDraggingControl is IDataContainer dataContainer) - dataContainer.Move((float)newX, (float)newY); + if (_currentDraggingControl is IDataContainer dataContainer && dataContainer.Datos is osBase mvBase) + mvBase.Move((float)newX, (float)newY); _startPointUserControl = currentPosition; // Actualiza el punto inicial para el siguiente movimiento } @@ -460,8 +468,8 @@ namespace CtrEditor //RotateTransform rotateTransform = control.RenderTransform as RotateTransform; //rotateTransform.Angle = angle; // - _initialAngleUserControl; // Asegúrate de ajustar esta parte según cómo calcules el ángulo inicial - if (control is IDataContainer dataContainer) - dataContainer.Rotate((float)angle); + if (control is IDataContainer dataContainer && dataContainer.Datos is osBase mvBase) + mvBase.Rotate((float)angle); // Actualizar el ángulo mostrado _angleDisplayTextBlock.Text = $"Ángulo: {angle:F2}°"; @@ -479,7 +487,7 @@ namespace CtrEditor { bool ActivateRotation = false, ActivateSizeWidth = false, ActivateSizeHeight = false, ActivateMove = false; - if (control is IDataContainer dataContainer) + if (control is IDataContainer dataContainer && dataContainer.Datos is osBase mvBase) { MakeResizeRectanglesTransparent(); @@ -525,7 +533,8 @@ namespace CtrEditor var newX = Canvas.GetLeft(_currentDraggingControl) + dx; var newY = Canvas.GetTop(_currentDraggingControl) + dy; - dataContainer.Move((float)newX, (float)newY); + mvBase.Move(newX, newY); +// dataContainer.Move((float)newX, (float)newY); } if (ActivateRotation) { @@ -534,7 +543,8 @@ namespace CtrEditor double angle = Math.Atan2(deltaY, deltaX) * (180 / Math.PI); if (lastAngle == 0 && angle != 0) lastAngle = (float)angle; - dataContainer.Rotate((float)angle - lastAngle); + mvBase.Rotate(angle - lastAngle); +// dataContainer.Rotate((float)angle - lastAngle); lastAngle = (float)angle; @@ -554,7 +564,8 @@ namespace CtrEditor if (!ActivateSizeHeight) heightChange = 0; if (!ActivateSizeWidth) widthChange = 0; - dataContainer.Resize((float)widthChange, (float)heightChange); + mvBase.Resize(widthChange, heightChange); + // dataContainer.Resize((float)widthChange, (float)heightChange); } _startPointUserControl = currentPosition; // Actualiza el punto inicial para el siguiente movimiento } diff --git a/ObjetosSim/Decorativos/ucTextPlate.xaml.cs b/ObjetosSim/Decorativos/ucTextPlate.xaml.cs index efef247..ecfb861 100644 --- a/ObjetosSim/Decorativos/ucTextPlate.xaml.cs +++ b/ObjetosSim/Decorativos/ucTextPlate.xaml.cs @@ -41,13 +41,6 @@ namespace CtrEditor.ObjetosSim public float alto_Titulo; - [ObservableProperty] - public float ancho; - [ObservableProperty] - public float alto; - [ObservableProperty] - public float angulo; - public override void TopChanging(float oldValue, float newValue) { offsetY = newValue - oldValue; } @@ -91,28 +84,6 @@ namespace CtrEditor.ObjetosSim { Datos?.ucUnLoaded(); } - public void Resize(float width, float height) - { - if (Datos is osTextPlate datos) - { - datos.Ancho += PixelToMeter.Instance.calc.PixelsToMeters(width); - datos.Alto += PixelToMeter.Instance.calc.PixelsToMeters(height); - } - } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) - { - if (Datos != null) - if (Datos is osTextPlate datos) - datos.Angulo += Angle; - } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/Dinamicos/ucBotella.xaml.cs b/ObjetosSim/Dinamicos/ucBotella.xaml.cs index cf76bfc..e478e2c 100644 --- a/ObjetosSim/Dinamicos/ucBotella.xaml.cs +++ b/ObjetosSim/Dinamicos/ucBotella.xaml.cs @@ -32,6 +32,20 @@ namespace CtrEditor.ObjetosSim set => SetProperty(ref nombre, value); } + public override void TopChanged(float value) { + UpdateAfterMove(); + } + + public override void LeftChanged(float value) + { + UpdateAfterMove(); + } + + public override void OnResize(float Delta_Width, float Delta_Height) + { + Diametro += Delta_Width; + } + [ObservableProperty] private Brush colorButton_oculto; @@ -167,18 +181,6 @@ namespace CtrEditor.ObjetosSim Datos?.ucUnLoaded(); } - public void Resize(float width, float height) { } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - if (Datos is osBotella botella) - botella.UpdateAfterMove(); - } - } - public void Rotate(float Angle) { } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/Dinamicos/ucBotellaCuello.xaml.cs b/ObjetosSim/Dinamicos/ucBotellaCuello.xaml.cs index 7023ef3..aca68b2 100644 --- a/ObjetosSim/Dinamicos/ucBotellaCuello.xaml.cs +++ b/ObjetosSim/Dinamicos/ucBotellaCuello.xaml.cs @@ -30,6 +30,21 @@ namespace CtrEditor.ObjetosSim set => SetProperty(ref nombre, value); } + public override void TopChanged(float value) + { + UpdateAfterMove(); + } + + public override void LeftChanged(float value) + { + UpdateAfterMove(); + } + + public override void OnResize(float Delta_Width, float Delta_Height) + { + Diametro += Delta_Width; + } + [ObservableProperty] private Brush colorButton_oculto; @@ -154,18 +169,6 @@ namespace CtrEditor.ObjetosSim Datos?.ucUnLoaded(); } - public void Resize(float width, float height) { } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - if (Datos is osBotellaCuello BotellaCuello) - BotellaCuello.UpdateAfterMove(); - } - } - public void Rotate(float Angle) { } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/Emuladores/ucBottGenerator.xaml.cs b/ObjetosSim/Emuladores/ucBottGenerator.xaml.cs index afb5e40..2d1aa54 100644 --- a/ObjetosSim/Emuladores/ucBottGenerator.xaml.cs +++ b/ObjetosSim/Emuladores/ucBottGenerator.xaml.cs @@ -69,12 +69,7 @@ namespace CtrEditor.ObjetosSim private float velocidad_actual_percentual; [ObservableProperty] private float diametro_botella; - [ObservableProperty] - private float ancho; - [ObservableProperty] - private float alto; - [ObservableProperty] - private float angulo; + public osBottGenerator() { @@ -176,28 +171,6 @@ namespace CtrEditor.ObjetosSim { Datos?.ucUnLoaded(); } - public void Resize(float width, float height) - { - if (Datos is osBottGenerator datos) - { - datos.Ancho += PixelToMeter.Instance.calc.PixelsToMeters(width); - datos.Alto += PixelToMeter.Instance.calc.PixelsToMeters(width); - } - } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) - { - if (Datos != null) - if (Datos is osBottGenerator datos) - datos.Angulo += Angle; - } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/Emuladores/ucFiller.xaml.cs b/ObjetosSim/Emuladores/ucFiller.xaml.cs index 4d001d3..b7734be 100644 --- a/ObjetosSim/Emuladores/ucFiller.xaml.cs +++ b/ObjetosSim/Emuladores/ucFiller.xaml.cs @@ -70,12 +70,6 @@ namespace CtrEditor.ObjetosSim private float velocidad_actual_percentual; [ObservableProperty] private float diametro_botella; - [ObservableProperty] - private float ancho; - [ObservableProperty] - private float alto; - [ObservableProperty] - private float angulo; public osFiller() { @@ -93,13 +87,13 @@ namespace CtrEditor.ObjetosSim if (Consenso_NC) Consenso = !LeerBitTag(Tag_consenso); else - Consenso = LeerBitTag(Tag_consenso); + Consenso = LeerBitTag(Tag_consenso); } public override void UpdateControl(int elapsedMilliseconds) { bool habilitado; - + _TON_TOFF.Tiempo_ON_s = _TON_TOFF.Tiempo_OFF_s = Filtro_consenso_s; if (Consenso_Filtrado) @@ -185,20 +179,6 @@ namespace CtrEditor.ObjetosSim datos.Alto += PixelToMeter.Instance.calc.PixelsToMeters(height); } } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) - { - if (Datos != null) - if (Datos is osFiller datos) - datos.Angulo += Angle; - } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/Emuladores/ucTanque.xaml.cs b/ObjetosSim/Emuladores/ucTanque.xaml.cs index 84a8856..acec13f 100644 --- a/ObjetosSim/Emuladores/ucTanque.xaml.cs +++ b/ObjetosSim/Emuladores/ucTanque.xaml.cs @@ -46,12 +46,6 @@ namespace CtrEditor.ObjetosSim public float max_OUT_Scaled; [ObservableProperty] public float level; - [ObservableProperty] - public float ancho; - [ObservableProperty] - public float alto; - [ObservableProperty] - public float angulo; public osTanque() { @@ -110,28 +104,6 @@ namespace CtrEditor.ObjetosSim { Datos?.ucUnLoaded(); } - public void Resize(float width, float height) - { - if (Datos is osTanque datos) - { - datos.Ancho += PixelToMeter.Instance.calc.PixelsToMeters(width); - datos.Alto += PixelToMeter.Instance.calc.PixelsToMeters(width); - } - } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) - { - if (Datos != null) - if (Datos is osTanque datos) - datos.Angulo += Angle; - } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/Estaticos/ucDescarte.xaml.cs b/ObjetosSim/Estaticos/ucDescarte.xaml.cs index 7d394fd..b843e8a 100644 --- a/ObjetosSim/Estaticos/ucDescarte.xaml.cs +++ b/ObjetosSim/Estaticos/ucDescarte.xaml.cs @@ -129,24 +129,6 @@ namespace CtrEditor.ObjetosSim { Datos?.ucUnLoaded(); } - public void Resize(float width, float height) - { - if (Datos is osDescarte datos) - { - datos.Diametro += PixelToMeter.Instance.calc.PixelsToMeters(width+ height); - } - } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) - { - } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/Estaticos/ucGuia.xaml.cs b/ObjetosSim/Estaticos/ucGuia.xaml.cs index 7bfd9cc..163f8d1 100644 --- a/ObjetosSim/Estaticos/ucGuia.xaml.cs +++ b/ObjetosSim/Estaticos/ucGuia.xaml.cs @@ -25,15 +25,9 @@ namespace CtrEditor.ObjetosSim set => SetProperty(ref nombre, value); } - [ObservableProperty] - public float ancho; - [ObservableProperty] public float altoGuia; - [ObservableProperty] - public float angulo; - private void ActualizarGeometrias() { if (_visualRepresentation is ucGuia uc) @@ -95,25 +89,6 @@ namespace CtrEditor.ObjetosSim { Datos?.ucUnLoaded(); } - public void Resize(float width, float height) - { - if (Datos is osGuia datos) - datos.Ancho += PixelToMeter.Instance.calc.PixelsToMeters(width); - } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) - { - if (Datos != null) - if (Datos is osGuia datos) - datos.Angulo += Angle; - } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/Estaticos/ucTransporteCurva.xaml.cs b/ObjetosSim/Estaticos/ucTransporteCurva.xaml.cs index bbcd400..14f5554 100644 --- a/ObjetosSim/Estaticos/ucTransporteCurva.xaml.cs +++ b/ObjetosSim/Estaticos/ucTransporteCurva.xaml.cs @@ -85,9 +85,10 @@ namespace CtrEditor.ObjetosSim } } - [ObservableProperty] - [NotifyPropertyChangedFor(nameof(AnguloFinal))] - public float angulo; + public override void AnguloChanged(float value) + { + OnPropertyChanged(nameof(AnguloFinal)); + } [ObservableProperty] [NotifyPropertyChangedFor(nameof(AnguloFinal))] @@ -180,31 +181,6 @@ namespace CtrEditor.ObjetosSim { Datos?.ucUnLoaded(); } - public void Resize(float RadioExterno, float RadioInterno) - { - if (Datos is osTransporteCurva datos) - { - if (RadioExterno > RadioInterno && RadioExterno > 0 && RadioInterno >= 0) - { - datos.RadioExterno += PixelToMeter.Instance.calc.PixelsToMeters(RadioExterno); - datos.RadioInterno += PixelToMeter.Instance.calc.PixelsToMeters(RadioInterno); - } - } - } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) - { - if (Datos != null) - if (Datos is osTransporteCurva datos) - datos.Angulo += Angle; - } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/Estaticos/ucTransporteGuias.xaml.cs b/ObjetosSim/Estaticos/ucTransporteGuias.xaml.cs index 37ec7d6..d6b3120 100644 --- a/ObjetosSim/Estaticos/ucTransporteGuias.xaml.cs +++ b/ObjetosSim/Estaticos/ucTransporteGuias.xaml.cs @@ -93,12 +93,7 @@ namespace CtrEditor.ObjetosSim } } - [ObservableProperty] - public float ancho; - [ObservableProperty] - public float alto; - - partial void OnAltoChanged(float value) + public override void AltoChanged(float value) { ActualizarGeometrias(); } @@ -112,8 +107,6 @@ namespace CtrEditor.ObjetosSim SimGeometria.isBrake = value; } - [ObservableProperty] - public float angulo; [ObservableProperty] public float frictionCoefficient; [ObservableProperty] @@ -217,25 +210,6 @@ namespace CtrEditor.ObjetosSim { Datos?.ucUnLoaded(); } - public void Resize(float width, float height) - { - if (Datos is osTransporteGuias datos) - datos.Ancho += PixelToMeter.Instance.calc.PixelsToMeters(width); - } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) - { - if (Datos != null) - if (Datos is osTransporteGuias datos) - datos.Angulo += Angle; - } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/Estaticos/ucTransporteGuiasUnion.xaml.cs b/ObjetosSim/Estaticos/ucTransporteGuiasUnion.xaml.cs index f625bc3..bd72f1f 100644 --- a/ObjetosSim/Estaticos/ucTransporteGuiasUnion.xaml.cs +++ b/ObjetosSim/Estaticos/ucTransporteGuiasUnion.xaml.cs @@ -147,6 +147,10 @@ namespace CtrEditor.ObjetosSim } } + public override void OnResize(float Delta_Width, float Delta_Height) + { + AnchoRecto += Delta_Width; + } [ObservableProperty] public float anchoRecto; @@ -167,16 +171,6 @@ namespace CtrEditor.ObjetosSim [ObservableProperty] public float anchoTransporte_oculto; - [ObservableProperty] - public float alto; - - partial void OnAltoChanged(float value) - { - // ActualizarGeometrias(); - } - - [ObservableProperty] - public float angulo; [ObservableProperty] public float frictionCoefficient; [ObservableProperty] @@ -384,25 +378,6 @@ namespace CtrEditor.ObjetosSim { Datos?.ucUnLoaded(); } - public void Resize(float width, float height) - { - if (Datos is osTransporteGuiasUnion datos) - datos.AnchoRecto += PixelToMeter.Instance.calc.PixelsToMeters(width); - } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) - { - if (Datos != null) - if (Datos is osTransporteGuiasUnion datos) - datos.Angulo += Angle; - } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/Estaticos/ucTransporteTTop.xaml.cs b/ObjetosSim/Estaticos/ucTransporteTTop.xaml.cs index e8d78c0..f7fa45e 100644 --- a/ObjetosSim/Estaticos/ucTransporteTTop.xaml.cs +++ b/ObjetosSim/Estaticos/ucTransporteTTop.xaml.cs @@ -90,16 +90,7 @@ namespace CtrEditor.ObjetosSim } } - [ObservableProperty] - [property: Category("Layout:")] - public float ancho; - [ObservableProperty] - [property: Category("Layout:")] - public float alto; - [ObservableProperty] - [property: Category("Layout:")] - public float angulo; - + [ObservableProperty] [property: Category("Setup:")] public float frictionCoefficient; @@ -188,25 +179,6 @@ namespace CtrEditor.ObjetosSim { Datos?.ucUnLoaded(); } - public void Resize(float width, float height) - { - if (Datos is osTransporteTTop datos) - datos.Ancho += PixelToMeter.Instance.calc.PixelsToMeters(width); - } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) - { - if (Datos != null) - if (Datos is osTransporteTTop datos) - datos.Angulo += Angle; - } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/Estaticos/ucVMmotorSim.xaml.cs b/ObjetosSim/Estaticos/ucVMmotorSim.xaml.cs index 6db886f..20ed318 100644 --- a/ObjetosSim/Estaticos/ucVMmotorSim.xaml.cs +++ b/ObjetosSim/Estaticos/ucVMmotorSim.xaml.cs @@ -35,11 +35,14 @@ namespace CtrEditor.ObjetosSim [ObservableProperty] public ImageSource imageSource_oculta; - [ObservableProperty] - public float angulo; - [ObservableProperty] public float tamano; + + public override void OnResize(float Delta_Width, float Delta_Height) + { + Tamano += Delta_Width + Delta_Height; + } + [ObservableProperty] public float proporcionalSpeed; @@ -146,28 +149,6 @@ namespace CtrEditor.ObjetosSim { Datos?.ucUnLoaded(); } - public void Resize(float width, float height) - { - if (Datos != null) - if (Datos is osVMmotorSim datos) - { - datos.Tamano += PixelToMeter.Instance.calc.PixelsToMeters( width + height); - } - } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) - { - if (Datos != null) - if (Datos is osVMmotorSim datos) - datos.Angulo += Angle; - } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/Extraccion Datos/ucBuscarCoincidencias.xaml.cs b/ObjetosSim/Extraccion Datos/ucBuscarCoincidencias.xaml.cs index 555d1a8..602fb38 100644 --- a/ObjetosSim/Extraccion Datos/ucBuscarCoincidencias.xaml.cs +++ b/ObjetosSim/Extraccion Datos/ucBuscarCoincidencias.xaml.cs @@ -105,20 +105,6 @@ namespace CtrEditor.ObjetosSim.Extraccion_Datos offsetX = newValue - oldValue; } - [ObservableProperty] - [property: Description("Width of the object.")] - [property: Category("Layout:")] - public float ancho; - - [ObservableProperty] - [property: Description("Height of the object.")] - [property: Category("Layout:")] - public float alto; - - [ObservableProperty] - [property: Category("Layout:")] - public float angulo; - [ObservableProperty] [property: Category("Tag Extraction:")] string tag_extract; @@ -431,28 +417,6 @@ namespace CtrEditor.ObjetosSim.Extraccion_Datos { Datos?.ucUnLoaded(); } - public void Resize(float width, float height) - { - if (Datos is osBuscarCoincidencias datos) - { - datos.Ancho += PixelToMeter.Instance.calc.PixelsToMeters(width); - datos.Alto += PixelToMeter.Instance.calc.PixelsToMeters(height); - } - } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) - { - if (Datos != null) - if (Datos is osBuscarCoincidencias datos) - datos.Angulo += Angle; - } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/Extraccion Datos/ucExtraccionTag.xaml.cs b/ObjetosSim/Extraccion Datos/ucExtraccionTag.xaml.cs index 5dbb6fc..65072c6 100644 --- a/ObjetosSim/Extraccion Datos/ucExtraccionTag.xaml.cs +++ b/ObjetosSim/Extraccion Datos/ucExtraccionTag.xaml.cs @@ -58,31 +58,18 @@ namespace CtrEditor.ObjetosSim.Extraccion_Datos ResetTimer(); } - [ObservableProperty] - [property: Category("Layout:")] - public float ancho; - - partial void OnAnchoChanged(float value) + public override void OnResize(float Delta_Width, float Delta_Height) + { + if (Extraer) + ResetTimer(); + } + public override void OnMove(float LeftPixels, float TopPixels) { if (Extraer) ResetTimer(); } - [ObservableProperty] - [property: Category("Layout:")] - public float alto; - - partial void OnAltoChanged(float value) - { - if (Extraer) - ResetTimer(); - } - - [ObservableProperty] - [property: Category("Layout:")] - public float angulo; - - partial void OnAnguloChanged(float value) + public override void OnRotate(float Angle) { if (Extraer) ResetTimer(); @@ -220,6 +207,13 @@ namespace CtrEditor.ObjetosSim.Extraccion_Datos Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); } } + public float Angle() + { + if (Datos != null) + if (Datos is osExtraccionTag datos) + return datos.Angulo; + return 0f; + } public void Rotate(float Angle) { if (Datos != null) diff --git a/ObjetosSim/SensoresComandos/ucBoton.xaml.cs b/ObjetosSim/SensoresComandos/ucBoton.xaml.cs index 9d61548..9ab42af 100644 --- a/ObjetosSim/SensoresComandos/ucBoton.xaml.cs +++ b/ObjetosSim/SensoresComandos/ucBoton.xaml.cs @@ -54,8 +54,10 @@ namespace CtrEditor.ObjetosSim [ObservableProperty] public float tamano; - [ObservableProperty] - public float angulo; + public override void OnResize(float Delta_Width, float Delta_Height) + { + Tamano += Delta_Width + Delta_Height; + } [ObservableProperty] public bool estado; @@ -179,20 +181,6 @@ namespace CtrEditor.ObjetosSim e.Handled = true; // Evita que el evento se propague } } - - public void Resize(float width, float height) { } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) { - if (Datos is osBoton osBotonData) - osBotonData.Angulo += Angle; - } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/SensoresComandos/ucGearEncoder.xaml.cs b/ObjetosSim/SensoresComandos/ucGearEncoder.xaml.cs index aac7a8d..4332c52 100644 --- a/ObjetosSim/SensoresComandos/ucGearEncoder.xaml.cs +++ b/ObjetosSim/SensoresComandos/ucGearEncoder.xaml.cs @@ -58,10 +58,8 @@ namespace CtrEditor.ObjetosSim private Brush color_oculto; [ObservableProperty] public float velocidadActual; - [ObservableProperty] - public double angulo; - partial void OnAnguloChanged(double value) + public override void AnguloChanged(float value) { // Generar pulsos cuadrados en función del ángulo Pulso = DetectarDiente(); @@ -98,6 +96,12 @@ namespace CtrEditor.ObjetosSim [ObservableProperty] public float giros_segundo_a_100; + public override void OnResize(float Delta_Width, float Delta_Height) + { + Radio_Externo += Delta_Width; + Radio_Interno += Delta_Height; + } + [ObservableProperty] [property: Description("Link to Motor")] [property: Category("PLC link:")] @@ -157,7 +161,7 @@ namespace CtrEditor.ObjetosSim double incrementoAngulo = (girosPorSegundo * 360.0) * segundosTranscurridos; // Actualizar el ángulo - Angulo = (Angulo + incrementoAngulo) % 360; + Angulo = (float) (Angulo + incrementoAngulo) % 360; } } } @@ -232,16 +236,6 @@ namespace CtrEditor.ObjetosSim { Datos?.ucUnLoaded(); } - public void Resize(float width, float height) { } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) { } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/SensoresComandos/ucPhotocell.xaml.cs b/ObjetosSim/SensoresComandos/ucPhotocell.xaml.cs index df7cf54..b779ee9 100644 --- a/ObjetosSim/SensoresComandos/ucPhotocell.xaml.cs +++ b/ObjetosSim/SensoresComandos/ucPhotocell.xaml.cs @@ -122,30 +122,22 @@ namespace CtrEditor.ObjetosSim ActualizarGeometrias(); } - [ObservableProperty] - public float ancho; - - partial void OnAnchoChanged(float value) + public override void AnguloChanged(float value) { ActualizarGeometrias(); } - [ObservableProperty] - public float alto; - - partial void OnAltoChanged(float value) + public override void AltoChanged(float value) { ActualizarGeometrias(); } - [ObservableProperty] - public float angulo; - - partial void OnAnguloChanged(float value) + public override void AnchoChanged(float value) { ActualizarGeometrias(); } + private void ActualizarGeometrias() { if (_visualRepresentation is ucPhotocell uc) @@ -220,30 +212,6 @@ namespace CtrEditor.ObjetosSim { Datos?.ucUnLoaded(); } - public void Resize(float width, float height) - { - if (Datos is osPhotocell datos) - { - datos.Ancho += PixelToMeter.Instance.calc.PixelsToMeters(width); - datos.Alto += PixelToMeter.Instance.calc.PixelsToMeters(height/2); - if (datos.Ancho <= 0) datos.Ancho = 0.1f; - if (datos.Alto <= 0) datos.Alto = 0.1f; - } - } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) - { - if (Datos != null) - if (Datos is osPhotocell datos) - datos.Angulo += Angle; - } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/SensoresComandos/ucSensTemperatura.xaml.cs b/ObjetosSim/SensoresComandos/ucSensTemperatura.xaml.cs index d35df11..e066182 100644 --- a/ObjetosSim/SensoresComandos/ucSensTemperatura.xaml.cs +++ b/ObjetosSim/SensoresComandos/ucSensTemperatura.xaml.cs @@ -40,13 +40,6 @@ namespace CtrEditor.ObjetosSim EscribirWordTagScaled(Tag, value, 0, 100, Min_OUT_Scaled, Max_OUT_Scaled); } - [ObservableProperty] - public float ancho; - [ObservableProperty] - public float alto; - [ObservableProperty] - public float angulo; - public osSensTemperatura() { Ancho = 0.4f; @@ -93,28 +86,6 @@ namespace CtrEditor.ObjetosSim { Datos?.ucUnLoaded(); } - public void Resize(float width, float height) - { - if (Datos is osSensTemperatura datos) - { - datos.Ancho += PixelToMeter.Instance.calc.PixelsToMeters(width); - datos.Alto += PixelToMeter.Instance.calc.PixelsToMeters(width); - } - } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) - { - if (Datos != null) - if (Datos is osSensTemperatura datos) - datos.Angulo += Angle; - } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/TagsSignals/ucAnalogTag.xaml.cs b/ObjetosSim/TagsSignals/ucAnalogTag.xaml.cs index 2707e34..0adefe1 100644 --- a/ObjetosSim/TagsSignals/ucAnalogTag.xaml.cs +++ b/ObjetosSim/TagsSignals/ucAnalogTag.xaml.cs @@ -31,6 +31,12 @@ namespace CtrEditor.ObjetosSim [ObservableProperty] public float tamano; + + public override void OnResize(float Delta_Width, float Delta_Height) + { + Tamano += Delta_Width + Delta_Height; + } + [ObservableProperty] [NotifyPropertyChangedFor(nameof(Value))] public string tag; @@ -117,16 +123,6 @@ namespace CtrEditor.ObjetosSim { Datos?.ucUnLoaded(); } - public void Resize(float width, float height) { } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) { } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/TagsSignals/ucBoolTag.xaml.cs b/ObjetosSim/TagsSignals/ucBoolTag.xaml.cs index 5576933..44d05f1 100644 --- a/ObjetosSim/TagsSignals/ucBoolTag.xaml.cs +++ b/ObjetosSim/TagsSignals/ucBoolTag.xaml.cs @@ -47,11 +47,14 @@ namespace CtrEditor.ObjetosSim Color_oculto = Brushes.Transparent; } - [ObservableProperty] - public float angulo; - [ObservableProperty] public float tamano; + + public override void OnResize(float Delta_Width, float Delta_Height) + { + Tamano += Delta_Width + Delta_Height; + } + [ObservableProperty] [NotifyPropertyChangedFor(nameof(Estado))] public string tag; @@ -100,20 +103,6 @@ namespace CtrEditor.ObjetosSim { Datos?.ucUnLoaded(); } - public void Resize(float width, float height) { } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) - { - if (Datos is osBoolTag osBoolData) - osBoolData.Angulo += Angle; - } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/TagsSignals/ucConsensGeneric.xaml.cs b/ObjetosSim/TagsSignals/ucConsensGeneric.xaml.cs index f850b35..73eca02 100644 --- a/ObjetosSim/TagsSignals/ucConsensGeneric.xaml.cs +++ b/ObjetosSim/TagsSignals/ucConsensGeneric.xaml.cs @@ -34,6 +34,11 @@ namespace CtrEditor.ObjetosSim [ObservableProperty] public float tamano; + public override void OnResize(float Delta_Width, float Delta_Height) + { + Tamano += Delta_Width + Delta_Height; + } + public override void ucLoaded() { // El UserControl ya se ha cargado y podemos obtener las coordenadas para @@ -64,16 +69,6 @@ namespace CtrEditor.ObjetosSim { Datos?.ucUnLoaded(); } - public void Resize(float width, float height) { } - public void Move(float LeftPixels, float TopPixels) - { - if (Datos != null) - { - Datos.Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); - Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); - } - } - public void Rotate(float Angle) { } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/Traces/ucTrace3.xaml.cs b/ObjetosSim/Traces/ucTrace3.xaml.cs index 18e4621..6a1c9fe 100644 --- a/ObjetosSim/Traces/ucTrace3.xaml.cs +++ b/ObjetosSim/Traces/ucTrace3.xaml.cs @@ -292,7 +292,7 @@ namespace CtrEditor.ObjetosSim Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); } } - public void Rotate(float Angle) { } + public float Angle() { return 0; } public void Rotate(float Angle) { } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/Traces/ucTraceSimple.xaml.cs b/ObjetosSim/Traces/ucTraceSimple.xaml.cs index 90715ac..6faf3a9 100644 --- a/ObjetosSim/Traces/ucTraceSimple.xaml.cs +++ b/ObjetosSim/Traces/ucTraceSimple.xaml.cs @@ -157,7 +157,7 @@ namespace CtrEditor.ObjetosSim Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); } } - public void Rotate(float Angle) { } + public float Angle() { return 0; } public void Rotate(float Angle) { } public void Highlight(bool State) { } public int ZIndex() { diff --git a/ObjetosSim/osBase.cs b/ObjetosSim/osBase.cs index 4134474..e4e344d 100644 --- a/ObjetosSim/osBase.cs +++ b/ObjetosSim/osBase.cs @@ -35,9 +35,6 @@ namespace CtrEditor.ObjetosSim { [JsonIgnore] osBase? Datos { get; set; } - void Resize(float width, float height); - void Move(float Left, float Top); - void Rotate(float Angle); void Highlight(bool State); int ZIndex(); } @@ -119,6 +116,83 @@ namespace CtrEditor.ObjetosSim public virtual void TopChanging(float oldValue, float newValue) { } + [ObservableProperty] + [property: Description("Widht.")] + [property: Category("Layout:")] + private float ancho; + + partial void OnAnchoChanged(float value) + { + AnchoChanged(value); + } + public virtual void AnchoChanged(float value) { } + + [ObservableProperty] + [property: Description("Height.")] + [property: Category("Layout:")] + private float alto; + + partial void OnAltoChanged(float value) + { + AltoChanged(value); + } + public virtual void AltoChanged(float value) { } + + + [ObservableProperty] + [property: Description("Angle.")] + [property: Category("Layout:")] + private float angulo; + + partial void OnAnguloChanged(float value) + { + AnguloChanged(value); + } + public virtual void AnguloChanged(float value) { } + + + public void Resize(double width, double height) + { + Resize((float)width, (float)height); + } + + public void Resize(float Delta_W_pixels, float Delta_H_pixels) + { + var Delta_W = PixelToMeter.Instance.calc.PixelsToMeters(Delta_W_pixels); + var Delta_H = PixelToMeter.Instance.calc.PixelsToMeters(Delta_H_pixels); + + OnResize(Delta_W, Delta_H); + + Ancho += Delta_W; + Alto += Delta_H; + if (Ancho < 0.01f) Ancho = 0.01f; + if (Alto < 0.01f) Alto = 0.01f; + } + public virtual void OnResize(float Delta_Width, float Delta_Height) { } + + public void Move(double LeftPixels, double TopPixels) + { + Move((float)LeftPixels, (float)TopPixels); + } + public void Move(float LeftPixels, float TopPixels) + { + OnMove(LeftPixels, TopPixels); + Left = PixelToMeter.Instance.calc.PixelsToMeters(LeftPixels); + Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); + } + public virtual void OnMove(float LeftPixels, float TopPixels) { } + + public void Rotate(double Delta_Angle) + { + Rotate((float)Delta_Angle); + } + public void Rotate(float Delta_Angle) + { + OnRotate(Delta_Angle); + Angulo += Delta_Angle; + } + public virtual void OnRotate(float Delta_Angle) { } + public void InicializaNuevoObjeto() { Id = new UniqueId().ObtenerNuevaID(); diff --git a/ObjetosSim/ucBasicExample.xaml.cs b/ObjetosSim/ucBasicExample.xaml.cs index 386c34b..840b96d 100644 --- a/ObjetosSim/ucBasicExample.xaml.cs +++ b/ObjetosSim/ucBasicExample.xaml.cs @@ -178,6 +178,13 @@ namespace CtrEditor.ObjetosSim Datos.Top = PixelToMeter.Instance.calc.PixelsToMeters(TopPixels); } } + public float Angle() + { + if (Datos != null) + if (Datos is osBasicExample datos) + return datos.Angulo; + return 0f; + } public void Rotate(float Angle) { if (Datos != null)