Edition of primitives is changed
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
using System.Windows;
|
||||
using Autofac;
|
||||
using StructureHelper.Services;
|
||||
using StructureHelper.Services.Primitives;
|
||||
using StructureHelper.UnitSystem;
|
||||
using StructureHelper.Windows.MainWindow;
|
||||
using StructureHelperLogics.Services;
|
||||
|
||||
15
Infrastructure/Exceptions/StructureHelperException.cs
Normal file
15
Infrastructure/Exceptions/StructureHelperException.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelper.Infrastructure.Exceptions
|
||||
{
|
||||
internal class StructureHelperException : Exception
|
||||
{
|
||||
public StructureHelperException(string errorString) : base(errorString)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
14
Infrastructure/Strings/ErrorStrings.cs
Normal file
14
Infrastructure/Strings/ErrorStrings.cs
Normal file
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelper.Infrastructure.Strings
|
||||
{
|
||||
internal static class ErrorStrings
|
||||
{
|
||||
public static string ObjectTypeIsUnknown => "#0001: Object type is unknown";
|
||||
public static string MaterialTypeIsUnknown => "#0002: Material type is unknown";
|
||||
}
|
||||
}
|
||||
37
Infrastructure/UI/Converters/Units/Area.cs
Normal file
37
Infrastructure/UI/Converters/Units/Area.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace StructureHelper.Infrastructure.UI.Converters.Units
|
||||
{
|
||||
internal class Area : UnitBase
|
||||
{
|
||||
public override string unitName { get => "Area"; }
|
||||
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
double val;
|
||||
if (value != null) { val = (double)value; }
|
||||
else { throw new Exception($"{unitName} value is null"); }
|
||||
val *= UnitConstatnts.LengthConstant * UnitConstatnts.LengthConstant;
|
||||
return val;
|
||||
}
|
||||
|
||||
public override object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
double val;
|
||||
if (value != null)
|
||||
{
|
||||
var strVal = value as string;
|
||||
double.TryParse(strVal, out val);
|
||||
}
|
||||
else { throw new Exception($"{unitName} value is null"); }
|
||||
val /= (UnitConstatnts.LengthConstant * UnitConstatnts.LengthConstant);
|
||||
return val;
|
||||
}
|
||||
}
|
||||
}
|
||||
37
Infrastructure/UI/Converters/Units/Length.cs
Normal file
37
Infrastructure/UI/Converters/Units/Length.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace StructureHelper.Infrastructure.UI.Converters.Units
|
||||
{
|
||||
internal class Length : UnitBase
|
||||
{
|
||||
public override string unitName { get => "Length"; }
|
||||
|
||||
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
double val;
|
||||
if (value != null) { val = (double)value; }
|
||||
else { throw new Exception($"{unitName} value is null"); }
|
||||
val *= UnitConstatnts.LengthConstant;
|
||||
return val;
|
||||
}
|
||||
|
||||
public override object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
double val;
|
||||
if (value != null)
|
||||
{
|
||||
var strVal = value as string;
|
||||
double.TryParse(strVal, out val);
|
||||
}
|
||||
else { throw new Exception($"{unitName} value is null"); }
|
||||
val /= UnitConstatnts.LengthConstant;
|
||||
return val;
|
||||
}
|
||||
}
|
||||
}
|
||||
17
Infrastructure/UI/Converters/Units/UnitBase.cs
Normal file
17
Infrastructure/UI/Converters/Units/UnitBase.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Data;
|
||||
|
||||
namespace StructureHelper.Infrastructure.UI.Converters.Units
|
||||
{
|
||||
internal abstract class UnitBase : IValueConverter
|
||||
{
|
||||
public abstract string unitName { get;}
|
||||
public abstract object Convert(object value, Type targetType, object parameter, CultureInfo culture);
|
||||
public abstract object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture);
|
||||
}
|
||||
}
|
||||
13
Infrastructure/UI/Converters/Units/UnitConstatnts.cs
Normal file
13
Infrastructure/UI/Converters/Units/UnitConstatnts.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelper.Infrastructure.UI.Converters.Units
|
||||
{
|
||||
internal static class UnitConstatnts
|
||||
{
|
||||
public static double LengthConstant = 1000d;
|
||||
}
|
||||
}
|
||||
@@ -10,10 +10,11 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
|
||||
{
|
||||
public class Point : PrimitiveBase
|
||||
{
|
||||
public Point(double d, double x, double y, MainViewModel ownerVm) : base(PrimitiveType.Point, x, y, ownerVm)
|
||||
public double Area { get; set; }
|
||||
public Point(double area, double x, double y, MainViewModel ownerVm) : base(PrimitiveType.Point, x, y, ownerVm)
|
||||
{
|
||||
PrimitiveWidth = d;
|
||||
PrimitiveHeight = d;
|
||||
Name = "New point";
|
||||
Area = area;
|
||||
PreviewMouseMove = new RelayCommand(o =>
|
||||
{
|
||||
if (!(o is Point point)) return;
|
||||
@@ -32,17 +33,17 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
|
||||
point.ShowedY = -(ownerVm.PanelY - pointDelta - OwnerVm.XY1);
|
||||
}
|
||||
});
|
||||
ShowedX = x;
|
||||
ShowedY = y;
|
||||
CenterX = x;
|
||||
CenterY = y;
|
||||
}
|
||||
|
||||
public double Diameter { get => Math.Sqrt(Area / Math.PI) * 2; }
|
||||
|
||||
public override INdmPrimitive GetNdmPrimitive(IUnitSystem unitSystem)
|
||||
{
|
||||
var diam = unitSystem.ConvertLength(PrimitiveWidth);
|
||||
double area = diam * diam * Math.PI / 4;
|
||||
string materialName = MaterialName;
|
||||
ICenter center = new Center { X = unitSystem.ConvertLength(ShowedX), Y = unitSystem.ConvertLength(ShowedY) };
|
||||
IShape shape = new StructureHelperCommon.Models.Shapes.Point { Area = area };
|
||||
ICenter center = new Center { X = CenterX, Y = CenterY };
|
||||
IShape shape = new StructureHelperCommon.Models.Shapes.Point { Area = this.Area };
|
||||
IPrimitiveMaterial primitiveMaterial = new PrimitiveMaterial { MaterialType = GetMaterialTypes(), ClassName = materialName, Strength = Material.DesignCompressiveStrength };
|
||||
INdmPrimitive ndmPrimitive = new NdmPrimitive { Center = center, Shape = shape, PrimitiveMaterial = primitiveMaterial };
|
||||
return ndmPrimitive;
|
||||
|
||||
@@ -3,6 +3,9 @@ using System.Windows;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using StructureHelper.Infrastructure.Enums;
|
||||
using StructureHelper.Infrastructure.Exceptions;
|
||||
using StructureHelper.Infrastructure.Strings;
|
||||
using StructureHelper.Infrastructure.UI.Converters.Units;
|
||||
using StructureHelper.Models.Materials;
|
||||
using StructureHelper.UnitSystem.Systems;
|
||||
using StructureHelper.Windows.MainWindow;
|
||||
@@ -16,9 +19,14 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
|
||||
#region Поля
|
||||
|
||||
private readonly PrimitiveType type;
|
||||
private string name;
|
||||
private double centerX, centerY;
|
||||
private int minElementDivision;
|
||||
private double maxElementSize;
|
||||
private bool captured, parameterCaptured, elementLock, paramsPanelVisibilty, popupCanBeClosed = true, borderCaptured;
|
||||
private Brush brush;
|
||||
private MaterialDefinitionBase material;
|
||||
private double prestrain_kx, prestrain_ky, prestrain_epsz;
|
||||
private double opacity = 1, showedOpacity = 0, x, y, xY1, yX1, primitiveWidth, primitiveHeight, showedX, showedY;
|
||||
protected double delta = 0.5;
|
||||
private int showedZIndex = 1, zIndex;
|
||||
@@ -39,6 +47,61 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
|
||||
}
|
||||
}
|
||||
|
||||
public string Name
|
||||
{
|
||||
get => name;
|
||||
set
|
||||
{
|
||||
OnPropertyChanged(value, ref name);
|
||||
}
|
||||
}
|
||||
public double CenterX
|
||||
{
|
||||
get => centerX;
|
||||
set
|
||||
{
|
||||
if (this is Rectangle)
|
||||
{
|
||||
ShowedX = value - primitiveWidth / 2d;
|
||||
}
|
||||
else if (this is Point)
|
||||
{
|
||||
Point point = this as Point;
|
||||
ShowedX = value - point.Diameter / 2;
|
||||
}
|
||||
else { throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknown); }
|
||||
OnPropertyChanged(value, ref centerX);
|
||||
}
|
||||
}
|
||||
public double CenterY
|
||||
{
|
||||
get => centerY;
|
||||
set
|
||||
{
|
||||
if (this is Rectangle)
|
||||
{
|
||||
ShowedY = value - primitiveHeight / 2d;
|
||||
}
|
||||
else if (this is Point)
|
||||
{
|
||||
Point point = this as Point;
|
||||
ShowedY = value - point.Diameter / 2;
|
||||
}
|
||||
else { throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknown); }
|
||||
OnPropertyChanged(value, ref centerY);
|
||||
}
|
||||
}
|
||||
public int MinElementDivision
|
||||
{
|
||||
get => minElementDivision;
|
||||
set { OnPropertyChanged(value, ref minElementDivision); }
|
||||
}
|
||||
public double MaxElementSize
|
||||
{
|
||||
get => maxElementSize;
|
||||
set { OnPropertyChanged(value, ref maxElementSize); }
|
||||
}
|
||||
|
||||
public bool Captured
|
||||
{
|
||||
set => OnPropertyChanged(value, ref captured);
|
||||
@@ -203,10 +266,11 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
|
||||
|
||||
PrimitiveDoubleClick = new RelayCommand(o =>
|
||||
{
|
||||
PopupCanBeClosed = false;
|
||||
Captured = false;
|
||||
ParamsPanelVisibilty = true;
|
||||
ParameterCaptured = true;
|
||||
//PopupCanBeClosed = false;
|
||||
//Captured = false;
|
||||
//ParamsPanelVisibilty = true;
|
||||
//ParameterCaptured = true;
|
||||
|
||||
});
|
||||
OwnerVm = ownerVM;
|
||||
}
|
||||
@@ -215,13 +279,29 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
|
||||
|
||||
private void UpdateCoordinatesX(double showedX)
|
||||
{
|
||||
if (Type == PrimitiveType.Rectangle) X = showedX + OwnerVm.YX1;
|
||||
if (Type == PrimitiveType.Point) X = showedX + OwnerVm.YX1 - PrimitiveWidth / 2;
|
||||
if (this is Rectangle)
|
||||
{
|
||||
X = showedX + OwnerVm.YX1 / UnitConstatnts.LengthConstant;
|
||||
}
|
||||
else if (this is Point)
|
||||
{
|
||||
Point point = this as Point;
|
||||
X = showedX + OwnerVm.YX1 / UnitConstatnts.LengthConstant;
|
||||
}
|
||||
else { throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknown); }
|
||||
}
|
||||
private void UpdateCoordinatesY(double showedY)
|
||||
{
|
||||
if (Type == PrimitiveType.Rectangle) Y = -showedY + OwnerVm.XY1 - PrimitiveHeight;
|
||||
if (Type == PrimitiveType.Point) Y = -showedY + OwnerVm.XY1 - PrimitiveWidth / 2;
|
||||
if (this is Rectangle)
|
||||
{
|
||||
Y = -showedY + OwnerVm.XY1 / UnitConstatnts.LengthConstant - PrimitiveHeight;
|
||||
}
|
||||
else if (this is Point)
|
||||
{
|
||||
Point point = this as Point;
|
||||
Y = -showedY + OwnerVm.XY1 / UnitConstatnts.LengthConstant - point.Diameter;
|
||||
}
|
||||
else { throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknown); }
|
||||
}
|
||||
|
||||
public abstract INdmPrimitive GetNdmPrimitive(IUnitSystem unitSystem);
|
||||
@@ -230,7 +310,7 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
|
||||
MaterialTypes materialTypes;
|
||||
if (Material is ConcreteDefinition) { materialTypes = MaterialTypes.Concrete; }
|
||||
else if (Material is RebarDefinition) { materialTypes = MaterialTypes.Reinforcement; }
|
||||
else { throw new Exception("MaterialType is unknown"); }
|
||||
else { throw new StructureHelperException(ErrorStrings.MaterialTypeIsUnknown); }
|
||||
return materialTypes;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
|
||||
public Rectangle(double primitiveWidth, double primitiveHeight, double x, double y, MainViewModel ownerVm) : base(PrimitiveType.Rectangle, x, y, ownerVm)
|
||||
{
|
||||
Type = PrimitiveType.Rectangle;
|
||||
Name = "New rectangle";
|
||||
PrimitiveWidth = primitiveWidth;
|
||||
PrimitiveHeight = primitiveHeight;
|
||||
PreviewMouseMove = new RelayCommand(o =>
|
||||
@@ -34,22 +35,23 @@ namespace StructureHelper.Infrastructure.UI.DataContexts
|
||||
rect.ShowedY = -(OwnerVm.PanelY - deltaY - OwnerVm.XY1 + rect.PrimitiveHeight);
|
||||
}
|
||||
});
|
||||
|
||||
ShowedX = x;
|
||||
ShowedY = y;
|
||||
CenterX = x;
|
||||
CenterY = y;
|
||||
MinElementDivision = 10;
|
||||
MaxElementSize = Math.Min(Math.Min(PrimitiveWidth, PrimitiveHeight) / MinElementDivision, 0.01);
|
||||
}
|
||||
|
||||
public override INdmPrimitive GetNdmPrimitive(IUnitSystem unitSystem)
|
||||
{
|
||||
var width = unitSystem.ConvertLength(PrimitiveWidth);
|
||||
var height = unitSystem.ConvertLength(PrimitiveHeight);
|
||||
double centerX = unitSystem.ConvertLength(ShowedX) + width / 2;
|
||||
double centerY = unitSystem.ConvertLength(ShowedY) + height / 2;
|
||||
var width = PrimitiveWidth;
|
||||
var height = PrimitiveHeight;
|
||||
double centerX = CenterX;
|
||||
double centerY = CenterY;
|
||||
string materialName = MaterialName;
|
||||
ICenter center = new Center { X = centerX, Y = centerY };
|
||||
IShape shape = new StructureHelperCommon.Models.Shapes.Rectangle { Height = height, Width = width, Angle = 0 };
|
||||
IPrimitiveMaterial primitiveMaterial = new PrimitiveMaterial { MaterialType = GetMaterialTypes(), ClassName = materialName, Strength = Material.DesignCompressiveStrength };
|
||||
INdmPrimitive ndmPrimitive = new NdmPrimitive { Center = center, Shape = shape, PrimitiveMaterial = primitiveMaterial, NdmMaxSize = 0.01, NdmMinDivision = 20 };
|
||||
INdmPrimitive ndmPrimitive = new NdmPrimitive { Center = center, Shape = shape, PrimitiveMaterial = primitiveMaterial, NdmMaxSize = MaxElementSize, NdmMinDivision = MinElementDivision };
|
||||
return ndmPrimitive;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<StackPanel>
|
||||
<Ellipse Style="{StaticResource EllipseStyle}" d:DataContext="{d:DesignInstance dataContexts:Point}">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="PreviewMouseDown">
|
||||
<!--<i:EventTrigger EventName="PreviewMouseDown">
|
||||
<i:InvokeCommandAction Command="{Binding PrimitiveLeftButtonDown}" CommandParameter="{Binding}"/>
|
||||
</i:EventTrigger>
|
||||
<i:EventTrigger EventName="PreviewMouseUp">
|
||||
@@ -20,10 +20,10 @@
|
||||
</i:EventTrigger>
|
||||
<i:EventTrigger EventName="PreviewMouseMove">
|
||||
<i:InvokeCommandAction Command="{Binding PreviewMouseMove}" CommandParameter="{Binding}"/>
|
||||
</i:EventTrigger>
|
||||
<mouseEventTriggers:DoubleClickEventTrigger EventName="MouseDown">
|
||||
</i:EventTrigger>-->
|
||||
<!--<mouseEventTriggers:DoubleClickEventTrigger EventName="MouseDown">
|
||||
<i:InvokeCommandAction Command="{Binding PrimitiveDoubleClick}" CommandParameter="{Binding}"/>
|
||||
</mouseEventTriggers:DoubleClickEventTrigger>
|
||||
</mouseEventTriggers:DoubleClickEventTrigger>-->
|
||||
</i:Interaction.Triggers>
|
||||
</Ellipse>
|
||||
<userControls:PrimitivePopup Type="Rectangle" IsOpen="{Binding ParamsPanelVisibilty}" d:DataContext="{d:DesignInstance dataContexts:PrimitiveBase}"/>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<Grid>
|
||||
<Rectangle Style="{StaticResource RectangleStyle}">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="PreviewMouseDown">
|
||||
<!--<i:EventTrigger EventName="PreviewMouseDown">
|
||||
<i:InvokeCommandAction Command="{Binding PrimitiveLeftButtonDown}" CommandParameter="{Binding}"/>
|
||||
</i:EventTrigger>
|
||||
<i:EventTrigger EventName="PreviewMouseUp">
|
||||
@@ -23,13 +23,13 @@
|
||||
</i:EventTrigger>
|
||||
<i:EventTrigger EventName="PreviewMouseMove">
|
||||
<i:InvokeCommandAction Command="{Binding PreviewMouseMove}" CommandParameter="{Binding}"/>
|
||||
</i:EventTrigger>
|
||||
<mouseEventTriggers:DoubleClickEventTrigger EventName="MouseDown">
|
||||
</i:EventTrigger>-->
|
||||
<!--<mouseEventTriggers:DoubleClickEventTrigger EventName="MouseDown">
|
||||
<i:InvokeCommandAction Command="{Binding PrimitiveDoubleClick}" CommandParameter="{Binding}"/>
|
||||
</mouseEventTriggers:DoubleClickEventTrigger>
|
||||
</mouseEventTriggers:DoubleClickEventTrigger>-->
|
||||
</i:Interaction.Triggers>
|
||||
</Rectangle>
|
||||
<Rectangle Cursor="SizeNWSE" Width="20" Height="20" Fill="{Binding Brush}" VerticalAlignment="Bottom" HorizontalAlignment="Right">
|
||||
<Rectangle Cursor="SizeNWSE" Fill="{Binding Brush}" VerticalAlignment="Bottom" HorizontalAlignment="Right">
|
||||
<i:Interaction.Triggers>
|
||||
<i:EventTrigger EventName="PreviewMouseDown">
|
||||
<i:InvokeCommandAction Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.LeftButtonDown}" CommandParameter="{Binding}"/>
|
||||
|
||||
@@ -5,12 +5,16 @@
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:dataContexts="clr-namespace:StructureHelper.Infrastructure.UI.DataContexts"
|
||||
xmlns:converters ="clr-namespace:StructureHelper.Infrastructure.UI.Converters.Units"
|
||||
mc:Ignorable="d" >
|
||||
|
||||
<converters:Length x:Key="LengthConverter"/>
|
||||
<converters:Area x:Key="AreaConverter"/>
|
||||
|
||||
<Style TargetType="Shape" x:Key="ShapeStyle">
|
||||
<Setter Property="Fill" Value="{Binding Brush, Mode=TwoWay}"/>
|
||||
<Setter Property="Opacity" Value="{Binding Opacity, Mode=TwoWay}"/>
|
||||
<Setter Property="ToolTip">
|
||||
<!--<Setter Property="ToolTip">
|
||||
<Setter.Value>
|
||||
<ToolTip Background="White" BorderBrush="Black" BorderThickness="1">
|
||||
<Grid>
|
||||
@@ -38,18 +42,18 @@
|
||||
</Grid>
|
||||
</ToolTip>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Setter>-->
|
||||
</Style>
|
||||
|
||||
<Style x:Key="EllipseStyle" TargetType="Ellipse" BasedOn="{StaticResource ShapeStyle}">
|
||||
<Style.Setters>
|
||||
<Setter Property="Width" Value="{Binding PrimitiveWidth}"/>
|
||||
<Setter Property="Height" Value="{Binding PrimitiveWidth}"/>
|
||||
<Setter Property="Width" Value="{Binding Diameter, Converter={StaticResource LengthConverter}}"/>
|
||||
<Setter Property="Height" Value="{Binding Diameter, Converter={StaticResource LengthConverter}}"/>
|
||||
</Style.Setters>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="RectangleStyle" TargetType="Rectangle" BasedOn="{StaticResource ShapeStyle}">
|
||||
<Setter Property="Width" Value="{Binding PrimitiveWidth}"/>
|
||||
<Setter Property="Height" Value="{Binding PrimitiveHeight}"/>
|
||||
<Setter Property="Width" Value="{Binding PrimitiveWidth, Converter={StaticResource LengthConverter}}"/>
|
||||
<Setter Property="Height" Value="{Binding PrimitiveHeight, Converter={StaticResource LengthConverter}}"/>
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
@@ -1,55 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using StructureHelper.Infrastructure.UI.DataContexts;
|
||||
using StructureHelperCommon.Models.NdmPrimitives;
|
||||
using StructureHelperCommon.Models.Shapes;
|
||||
using Point = StructureHelper.Infrastructure.UI.DataContexts.Point;
|
||||
using Rectangle = StructureHelper.Infrastructure.UI.DataContexts.Rectangle;
|
||||
|
||||
namespace StructureHelper.Services
|
||||
{
|
||||
public interface IPrimitiveRepository
|
||||
{
|
||||
void Add(PrimitiveBase primitive);
|
||||
void Delete(PrimitiveBase primitive);
|
||||
IEnumerable<Point> GetPoints();
|
||||
IEnumerable<Rectangle> GetRectangles();
|
||||
}
|
||||
class PrimitiveRepository : IPrimitiveRepository
|
||||
{
|
||||
List<Point> points = new List<Point>();
|
||||
List<Rectangle> rectangles = new List<Rectangle>();
|
||||
|
||||
public void Add(PrimitiveBase primitive)
|
||||
{
|
||||
switch (primitive)
|
||||
{
|
||||
case Point point:
|
||||
points.Add(point);
|
||||
break;
|
||||
case Rectangle rectangle:
|
||||
rectangles.Add(rectangle);
|
||||
break;
|
||||
}
|
||||
}
|
||||
public void Delete(PrimitiveBase primitive)
|
||||
{
|
||||
switch (primitive)
|
||||
{
|
||||
case Point point:
|
||||
points.Remove(point);
|
||||
break;
|
||||
case Rectangle rectangle:
|
||||
rectangles.Remove(rectangle);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<Point> GetPoints() => points;
|
||||
|
||||
public IEnumerable<Rectangle> GetRectangles() => rectangles;
|
||||
}
|
||||
}
|
||||
21
Services/Primitives/IPrimitiveRepository.cs
Normal file
21
Services/Primitives/IPrimitiveRepository.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using StructureHelper.Infrastructure.UI.DataContexts;
|
||||
using StructureHelperCommon.Models.NdmPrimitives;
|
||||
using StructureHelperCommon.Models.Shapes;
|
||||
using Point = StructureHelper.Infrastructure.UI.DataContexts.Point;
|
||||
using Rectangle = StructureHelper.Infrastructure.UI.DataContexts.Rectangle;
|
||||
|
||||
namespace StructureHelper.Services.Primitives
|
||||
{
|
||||
public interface IPrimitiveRepository
|
||||
{
|
||||
IEnumerable<PrimitiveBase> Primitives { get; }
|
||||
void Add(PrimitiveBase primitive);
|
||||
void Delete(PrimitiveBase primitive);
|
||||
void Clear();
|
||||
}
|
||||
}
|
||||
36
Services/Primitives/PrimitiveRepository.cs
Normal file
36
Services/Primitives/PrimitiveRepository.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using StructureHelper.Infrastructure.UI.DataContexts;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelper.Services.Primitives
|
||||
{
|
||||
public class PrimitiveRepository : IPrimitiveRepository
|
||||
{
|
||||
List<PrimitiveBase> primitives;
|
||||
|
||||
public IEnumerable<PrimitiveBase> Primitives { get => primitives; }
|
||||
|
||||
public PrimitiveRepository()
|
||||
{
|
||||
primitives = new List<PrimitiveBase>();
|
||||
}
|
||||
|
||||
public void Add(PrimitiveBase primitive)
|
||||
{
|
||||
primitives.Add(primitive);
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
primitives = new List<PrimitiveBase>();
|
||||
}
|
||||
|
||||
public void Delete(PrimitiveBase primitive)
|
||||
{
|
||||
primitives.Remove(primitive);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,22 @@
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<TargetFrameworkProfile />
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>1</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<PublishWizardCompleted>true</PublishWizardCompleted>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
@@ -34,6 +50,20 @@
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<GenerateSerializationAssemblies>On</GenerateSerializationAssemblies>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ManifestCertificateThumbprint>485E3BCF396A57578712F0EAAD11D48E4FE19BD6</ManifestCertificateThumbprint>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ManifestKeyFile>StructureHelper_TemporaryKey.pfx</ManifestKeyFile>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<GenerateManifests>true</GenerateManifests>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SignManifests>true</SignManifests>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Autofac, Version=6.4.0.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
|
||||
@@ -102,10 +132,17 @@
|
||||
<SubType>Designer</SubType>
|
||||
</ApplicationDefinition>
|
||||
<Compile Include="Infrastructure\Enums\PrimitiveType.cs" />
|
||||
<Compile Include="Infrastructure\Exceptions\StructureHelperException.cs" />
|
||||
<Compile Include="Infrastructure\Strings\ErrorStrings.cs" />
|
||||
<Compile Include="Infrastructure\UI\Converters\Units\Area.cs" />
|
||||
<Compile Include="Infrastructure\UI\Converters\Units\Length.cs" />
|
||||
<Compile Include="Infrastructure\UI\Converters\Units\UnitBase.cs" />
|
||||
<Compile Include="Infrastructure\UI\Converters\Units\UnitConstatnts.cs" />
|
||||
<Compile Include="Infrastructure\UI\UserControls\PrimitivePopup.xaml.cs">
|
||||
<DependentUpon>PrimitivePopup.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Services\PrimitiveService.cs" />
|
||||
<Compile Include="Services\Primitives\PrimitiveRepository.cs" />
|
||||
<Compile Include="Services\Primitives\IPrimitiveRepository.cs" />
|
||||
<Compile Include="Services\Reports\CalculationReports\IIsoFieldReport.cs" />
|
||||
<Compile Include="Services\Reports\CalculationReports\IsoFieldReport.cs" />
|
||||
<Compile Include="Services\Reports\IReport.cs" />
|
||||
@@ -158,8 +195,12 @@
|
||||
<Compile Include="Infrastructure\UI\DataTemplates\RectangleTemplate.xaml.cs">
|
||||
<DependentUpon>RectangleTemplate.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Windows\PrimitiveProperiesWindow\PrimitivePropertiesView.xaml.cs">
|
||||
<DependentUpon>PrimitivePropertiesView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Windows\ViewModels\Calculations\CalculationProperies\CalculationPropertyViewModel.cs" />
|
||||
<Compile Include="Windows\ViewModels\Calculations\CalculationResult\CalculationResultViewModel.cs" />
|
||||
<Compile Include="Windows\ViewModels\PrimitiveProperties\PrimitivePropertiesViewModel.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Infrastructure\UI\Triggers\MouseEventTriggers\DoubleClickEventTrigger.cs" />
|
||||
@@ -172,6 +213,7 @@
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<None Include="packages.config" />
|
||||
<None Include="StructureHelper_TemporaryKey.pfx" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
@@ -217,6 +259,10 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Windows\PrimitiveProperiesWindow\PrimitivePropertiesView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Logics\" />
|
||||
@@ -235,5 +281,17 @@
|
||||
<Name>StructureHelperLogics</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.7.2">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Microsoft .NET Framework 4.7.2 %28x86 и x64%29</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
16
StructureHelper.csproj.user
Normal file
16
StructureHelper.csproj.user
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<PublishUrlHistory>publish\</PublishUrlHistory>
|
||||
<InstallUrlHistory />
|
||||
<SupportUrlHistory />
|
||||
<UpdateUrlHistory />
|
||||
<BootstrapperUrlHistory />
|
||||
<ErrorReportUrlHistory />
|
||||
<FallbackCulture>ru-RU</FallbackCulture>
|
||||
<VerifyUploadedFiles>false</VerifyUploadedFiles>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<EnableSecurityDebugging>false</EnableSecurityDebugging>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
BIN
StructureHelper_TemporaryKey.pfx
Normal file
BIN
StructureHelper_TemporaryKey.pfx
Normal file
Binary file not shown.
@@ -4,6 +4,7 @@ using LoaderCalculator.Data.Ndms;
|
||||
using LoaderCalculator.Data.ResultData;
|
||||
using LoaderCalculator.Data.SourceData;
|
||||
using StructureHelper.Services;
|
||||
using StructureHelper.Services.Primitives;
|
||||
using StructureHelper.UnitSystem;
|
||||
using StructureHelper.UnitSystem.Systems;
|
||||
using StructureHelperLogics.Infrastructures.CommonEnums;
|
||||
@@ -37,17 +38,13 @@ namespace StructureHelper.Windows.MainWindow
|
||||
public IStrainMatrix Calculate(double mx, double my, double nz)
|
||||
{
|
||||
var unitSystem = unitSystemService.GetCurrentSystem();
|
||||
return calculationService.GetPrimitiveStrainMatrix(primitiveRepository.GetRectangles()
|
||||
.Select(x => x.GetNdmPrimitive(unitSystem))
|
||||
.Concat(primitiveRepository.GetPoints().Select(x => x.GetNdmPrimitive(unitSystem))).ToArray(), mx, my, nz);
|
||||
return calculationService.GetPrimitiveStrainMatrix(primitiveRepository.Primitives.Select(x => x.GetNdmPrimitive(unitSystem)).ToArray(), mx, my, nz);
|
||||
}
|
||||
|
||||
public IEnumerable<INdm> GetNdms()
|
||||
{
|
||||
var unitSystem = unitSystemService.GetCurrentSystem();
|
||||
var ndmPrimitives = primitiveRepository.GetRectangles()
|
||||
.Select(x => x.GetNdmPrimitive(unitSystem))
|
||||
.Concat(primitiveRepository.GetPoints().Select(x => x.GetNdmPrimitive(unitSystem))).ToArray();
|
||||
var ndmPrimitives = primitiveRepository.Primitives.Select(x => x.GetNdmPrimitive(unitSystem)).ToArray();
|
||||
|
||||
//Настройки триангуляции, пока опции могут быть только такие
|
||||
ITriangulationOptions options = new TriangulationOptions { LimiteState = LimitStates.Collapse, CalcTerm = CalcTerms.ShortTerm };
|
||||
|
||||
@@ -10,10 +10,14 @@
|
||||
xmlns:mouseEventTriggers="clr-namespace:StructureHelper.Infrastructure.UI.Triggers.MouseEventTriggers"
|
||||
xmlns:local="clr-namespace:StructureHelper.Windows.MainWindow"
|
||||
xmlns:enums="clr-namespace:StructureHelper.Infrastructure.Enums"
|
||||
xmlns:converters ="clr-namespace:StructureHelper.Infrastructure.UI.Converters.Units"
|
||||
mc:Ignorable="d"
|
||||
d:DataContext="{d:DesignInstance local:MainViewModel}"
|
||||
Title="StructureHelper" Height="700" Width="1000">
|
||||
<Window.Resources>
|
||||
<converters:Length x:Key="LengthConverter"/>
|
||||
<converters:Area x:Key="AreaConverter"/>
|
||||
|
||||
<DataTemplate DataType="{x:Type dataContexts:Rectangle}">
|
||||
<dataTemplates:RectangleTemplate/>
|
||||
</DataTemplate>
|
||||
@@ -36,8 +40,12 @@
|
||||
</MenuItem>
|
||||
<MenuItem Header="Edit">
|
||||
<MenuItem Header="Primitives">
|
||||
<Button Content="Add Rectangle" Command="{Binding AddPrimitive}" CommandParameter="{x:Static enums:PrimitiveType.Rectangle}"/>
|
||||
<Button Content="Add Point" Command="{Binding AddPrimitive}" CommandParameter="{x:Static enums:PrimitiveType.Point}"/>
|
||||
<MenuItem Header="Add">
|
||||
<Button Content="Add Rectangle" Command="{Binding AddPrimitive}" CommandParameter="{x:Static enums:PrimitiveType.Rectangle}"/>
|
||||
<Button Content="Add Point" Command="{Binding AddPrimitive}" CommandParameter="{x:Static enums:PrimitiveType.Point}"/>
|
||||
</MenuItem>
|
||||
<Button Content="Edit primitive" Command="{Binding EditPrimitive}"/>
|
||||
<Button Content="Delete primitive" Command="{Binding DeletePrimitive}"/>
|
||||
</MenuItem>
|
||||
<Button Content="Calculation properties" Command="{Binding Path=EditCalculationPropertyCommand}"/>
|
||||
</MenuItem>
|
||||
@@ -55,8 +63,35 @@
|
||||
|
||||
</Expander>
|
||||
<Expander Header="Geometry" ExpandDirection="Down" MinWidth="20" >
|
||||
<ListBox ItemsSource="{Binding Primitives}">
|
||||
|
||||
<ListBox ItemsSource="{Binding Primitives}" SelectedItem="{Binding SelectedPrimitive}">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="20"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Rectangle Grid.Column="0" Margin="3" Fill="{Binding Brush}" />
|
||||
<TextBlock Grid.Column="1" Text="{Binding Name}"/>
|
||||
</Grid>
|
||||
|
||||
<!--<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="25"/>
|
||||
<RowDefinition Height="20"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1"/>
|
||||
<ColumnDefinition MinWidth="50"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Viewbox Grid.RowSpan="2">
|
||||
|
||||
</Viewbox>
|
||||
<TextBlock Grid.Column="1" Text="{Binding Name}"/>
|
||||
<Button Grid.Column="1" Grid.Row="1" Content="..."/>
|
||||
</Grid>-->
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</Expander>
|
||||
</StackPanel>
|
||||
@@ -111,8 +146,8 @@
|
||||
<ItemsControl.ItemContainerStyle>
|
||||
<Style TargetType="ContentPresenter">
|
||||
<Setter Property="Canvas.ZIndex" Value="{Binding ZIndex}"/>
|
||||
<Setter Property="Canvas.Left" Value="{Binding X}"/>
|
||||
<Setter Property="Canvas.Top" Value="{Binding Y}"/>
|
||||
<Setter Property="Canvas.Left" Value="{Binding X, Converter={StaticResource LengthConverter}}"/>
|
||||
<Setter Property="Canvas.Top" Value="{Binding Y, Converter={StaticResource LengthConverter}}"/>
|
||||
</Style>
|
||||
</ItemsControl.ItemContainerStyle>
|
||||
</ItemsControl>
|
||||
@@ -121,14 +156,12 @@
|
||||
</Border>
|
||||
</Grid>
|
||||
<StackPanel Grid.Row="2" Orientation="Horizontal">
|
||||
<Button VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5" Content="Справочник" Command="{Binding OpenMaterialCatalog}"/>
|
||||
<Button VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5" Content="Система едениц" Command="{Binding OpenUnitsSystemSettings}"/>
|
||||
<Label VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5" Content="{Binding UnitsSystemName}"/>
|
||||
<!--<Button VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5" Content="Справочник" Command="{Binding OpenMaterialCatalog}"/>
|
||||
<Button VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5" Content="Units" Command="{Binding OpenUnitsSystemSettings}"/>
|
||||
<Label VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5" Content="{Binding UnitsSystemName}"/>-->
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,0.333,0.333,39.667" Grid.RowSpan="2" Width="519">
|
||||
<Button VerticalAlignment="Center" Margin="5" Content="Добавить тестовые примитивы" Command="{Binding AddTestCase}"/>
|
||||
<Button VerticalAlignment="Center" Margin="5" Content="Добавить прямоугольник" Command="{Binding AddPrimitive}" CommandParameter="{x:Static enums:PrimitiveType.Rectangle}"/>
|
||||
<Button VerticalAlignment="Center" Margin="5" Content="Добавить точку" Command="{Binding AddPrimitive}" CommandParameter="{x:Static enums:PrimitiveType.Point}"/>
|
||||
<Button VerticalAlignment="Center" Margin="5" Content="Add test primitives" Command="{Binding AddTestCase}"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Window>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Windows;
|
||||
using StructureHelper.Services;
|
||||
using StructureHelper.Services.Primitives;
|
||||
|
||||
namespace StructureHelper.Windows.MainWindow
|
||||
{
|
||||
|
||||
@@ -22,6 +22,10 @@ using StructureHelper.Windows.CalculationWindows.CalculationPropertyWindow;
|
||||
using StructureHelperLogics.Services;
|
||||
using StructureHelper.Windows.CalculationWindows.CalculationResultWindow;
|
||||
using StructureHelper.Windows.ViewModels.Calculations.CalculationResult;
|
||||
using StructureHelper.Services.Primitives;
|
||||
using StructureHelper.Windows.PrimitiveProperiesWindow;
|
||||
using StructureHelper.Infrastructure.Exceptions;
|
||||
using StructureHelper.Infrastructure.Strings;
|
||||
|
||||
namespace StructureHelper.Windows.MainWindow
|
||||
{
|
||||
@@ -30,6 +34,8 @@ namespace StructureHelper.Windows.MainWindow
|
||||
private readonly double scaleRate = 1.1;
|
||||
|
||||
private IPrimitiveRepository PrimitiveRepository { get; }
|
||||
public PrimitiveBase SelectedPrimitive { get; set; }
|
||||
|
||||
private readonly UnitSystemService unitSystemService;
|
||||
|
||||
private MainModel Model { get; }
|
||||
@@ -102,6 +108,10 @@ namespace StructureHelper.Windows.MainWindow
|
||||
set => OnPropertyChanged(value, ref yY2);
|
||||
}
|
||||
public ICommand AddPrimitive { get; }
|
||||
public ICommand Calculate { get; }
|
||||
public ICommand DeletePrimitive { get; }
|
||||
public ICommand EditCalculationPropertyCommand { get; }
|
||||
public ICommand EditPrimitive { get; }
|
||||
public ICommand AddTestCase { get; }
|
||||
public ICommand LeftButtonDown { get; }
|
||||
public ICommand LeftButtonUp { get; }
|
||||
@@ -115,13 +125,12 @@ namespace StructureHelper.Windows.MainWindow
|
||||
public ICommand SetInBackOfAll { get; }
|
||||
public ICommand ScaleCanvasDown { get; }
|
||||
public ICommand ScaleCanvasUp { get; }
|
||||
public ICommand Calculate { get; }
|
||||
public ICommand SetPopupCanBeClosedTrue { get; }
|
||||
public ICommand SetPopupCanBeClosedFalse { get; }
|
||||
public ICommand EditCalculationPropertyCommand { get; }
|
||||
|
||||
public string UnitsSystemName => unitSystemService.GetCurrentSystem().Name;
|
||||
|
||||
private double delta = 0.5;
|
||||
private double delta = 0.0005;
|
||||
|
||||
public MainViewModel(MainModel model, IPrimitiveRepository primitiveRepository, UnitSystemService unitSystemService)
|
||||
{
|
||||
@@ -131,8 +140,8 @@ namespace StructureHelper.Windows.MainWindow
|
||||
CanvasWidth = 1500;
|
||||
CanvasHeight = 1000;
|
||||
XX2 = CanvasWidth;
|
||||
XY1 = CanvasHeight / 2;
|
||||
YX1 = CanvasWidth / 2;
|
||||
XY1 = CanvasHeight / 2d;
|
||||
YX1 = CanvasWidth / 2d;
|
||||
YY2 = CanvasHeight;
|
||||
calculationProperty = new CalculationProperty();
|
||||
|
||||
@@ -149,15 +158,15 @@ namespace StructureHelper.Windows.MainWindow
|
||||
{
|
||||
if (o is Rectangle rect && rect.BorderCaptured && !rect.ElementLock)
|
||||
{
|
||||
if (rect.PrimitiveWidth % 10 < delta || rect.PrimitiveWidth % 10 >= delta)
|
||||
rect.PrimitiveWidth = Math.Round(PanelX / 10) * 10 - rect.X + 10;
|
||||
if (rect.PrimitiveWidth % 10d < delta || rect.PrimitiveWidth % 10d >= delta)
|
||||
rect.PrimitiveWidth = Math.Round(PanelX / 10d) * 10d - rect.X + 10d;
|
||||
else
|
||||
rect.PrimitiveWidth = PanelX - rect.X + 10;
|
||||
rect.PrimitiveWidth = PanelX - rect.X + 10d;
|
||||
|
||||
if (rect.PrimitiveHeight % 10 < delta || rect.PrimitiveHeight % 10 >= delta)
|
||||
rect.PrimitiveHeight = Math.Round(PanelY / 10) * 10 - rect.Y + 10;
|
||||
if (rect.PrimitiveHeight % 10d < delta || rect.PrimitiveHeight % 10d >= delta)
|
||||
rect.PrimitiveHeight = Math.Round(PanelY / 10d) * 10d - rect.Y + 10d;
|
||||
else
|
||||
rect.PrimitiveHeight = PanelY - rect.Y + 10;
|
||||
rect.PrimitiveHeight = PanelY - rect.Y + 10d;
|
||||
}
|
||||
});
|
||||
ClearSelection = new RelayCommand(o =>
|
||||
@@ -228,13 +237,30 @@ namespace StructureHelper.Windows.MainWindow
|
||||
AddPrimitive = new RelayCommand(o =>
|
||||
{
|
||||
if (!(o is PrimitiveType primitiveType)) return;
|
||||
var primitive = primitiveType == PrimitiveType.Point
|
||||
? (PrimitiveBase)new Point(50, 0, 0, this)
|
||||
: (PrimitiveBase)new Rectangle(60, 40, 0, 0, this);
|
||||
PrimitiveBase primitive;
|
||||
if (primitiveType == PrimitiveType.Rectangle)
|
||||
{
|
||||
primitive = new Rectangle(0.60, 0.40, 0, 0, this);
|
||||
}
|
||||
else if (primitiveType == PrimitiveType.Point)
|
||||
{
|
||||
primitive = new Point(0.50, 0, 0, this);
|
||||
}
|
||||
else { throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknown + nameof(primitiveType)); }
|
||||
Primitives.Add(primitive);
|
||||
PrimitiveRepository.Add(primitive);
|
||||
});
|
||||
|
||||
DeletePrimitive = new RelayCommand(
|
||||
o=>DeleteSelectedPrimitive(),
|
||||
o => SelectedPrimitive != null
|
||||
);
|
||||
|
||||
EditPrimitive = new RelayCommand(
|
||||
o => EditSelectedPrimitive(),
|
||||
o => SelectedPrimitive != null
|
||||
);
|
||||
|
||||
AddTestCase = new RelayCommand(o =>
|
||||
{
|
||||
foreach (var primitive in GetTestCasePrimitives())
|
||||
@@ -247,12 +273,6 @@ namespace StructureHelper.Windows.MainWindow
|
||||
|
||||
Calculate = new RelayCommand(o =>
|
||||
{
|
||||
//var matrix = model.Calculate(10e3, 0d, 0d);
|
||||
//MessageBox.Show(
|
||||
// $"{nameof(matrix.EpsZ)} = {matrix.EpsZ};\n" +
|
||||
// $"{nameof(matrix.Kx)} = {matrix.Kx};\n" +
|
||||
// $"{nameof(matrix.Ky)} = {matrix.Ky}",
|
||||
// "StructureHelper");
|
||||
CalculateResult();
|
||||
});
|
||||
|
||||
@@ -271,6 +291,30 @@ namespace StructureHelper.Windows.MainWindow
|
||||
});
|
||||
}
|
||||
|
||||
private void DeleteSelectedPrimitive()
|
||||
{
|
||||
if (! (SelectedPrimitive is null))
|
||||
{
|
||||
var dialogResult = MessageBox.Show("Delete primitive?", "Please, confirm deleting", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
|
||||
if (dialogResult == DialogResult.Yes)
|
||||
{
|
||||
Primitives.Remove(SelectedPrimitive);
|
||||
PrimitiveRepository.Delete(SelectedPrimitive);
|
||||
}
|
||||
}
|
||||
else { MessageBox.Show("Selection is changed", "Please, select primitive", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); }
|
||||
}
|
||||
|
||||
private void EditSelectedPrimitive()
|
||||
{
|
||||
if (!(SelectedPrimitive is null))
|
||||
{
|
||||
var wnd = new PrimitiveProperties(SelectedPrimitive);
|
||||
wnd.ShowDialog();
|
||||
}
|
||||
else { MessageBox.Show("Selection is changed", "Please, select primitive", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); }
|
||||
}
|
||||
|
||||
private void CalculateResult()
|
||||
{
|
||||
IEnumerable<INdm> ndms = Model.GetNdms();
|
||||
@@ -282,17 +326,18 @@ namespace StructureHelper.Windows.MainWindow
|
||||
|
||||
private IEnumerable<PrimitiveBase> GetTestCasePrimitives()
|
||||
{
|
||||
var width = 400;
|
||||
var height = 600;
|
||||
var d1 = 12;
|
||||
var d2 = 25;
|
||||
var width = 0.4d;
|
||||
var height = 0.6d;
|
||||
var area1 = Math.PI * 0.012d * 0.012d / 4d;
|
||||
var area2 = Math.PI * 0.025d * 0.025d / 4d;
|
||||
var gap = 0.05d;
|
||||
var rectMaterial = new ConcreteDefinition("C40", 0, 40, 0, 1.3, 1.5);
|
||||
var pointMaterial = new RebarDefinition("S400", 2, 400, 400, 1.15, 1.15);
|
||||
yield return new Rectangle(width, height, -width / 2, -height / 2, this) { Material = rectMaterial, MaterialName = rectMaterial.MaterialClass };
|
||||
yield return new Point(d1, -width / 2 + 50, -height / 2 + 50, this) { Material = pointMaterial, MaterialName = pointMaterial.MaterialClass };
|
||||
yield return new Point(d1, width / 2 - 50, -height / 2 + 50, this) { Material = pointMaterial, MaterialName = pointMaterial.MaterialClass };
|
||||
yield return new Point(d2, -width / 2 + 50, height / 2 - 50, this) { Material = pointMaterial, MaterialName = pointMaterial.MaterialClass };
|
||||
yield return new Point(d2, width / 2 - 50, height / 2 - 50, this) { Material = pointMaterial, MaterialName = pointMaterial.MaterialClass };
|
||||
yield return new Rectangle(width, height, 0, 0, this) { Material = rectMaterial, MaterialName = rectMaterial.MaterialClass };
|
||||
yield return new Point(area1, -width / 2 + gap, -height / 2 + gap, this) { Material = pointMaterial, MaterialName = pointMaterial.MaterialClass };
|
||||
yield return new Point(area1, width / 2 - gap, -height / 2 + gap, this) { Material = pointMaterial, MaterialName = pointMaterial.MaterialClass };
|
||||
yield return new Point(area2, -width / 2 + gap, height / 2 - gap, this) { Material = pointMaterial, MaterialName = pointMaterial.MaterialClass };
|
||||
yield return new Point(area2, width / 2 - gap, height / 2 - gap, this) { Material = pointMaterial, MaterialName = pointMaterial.MaterialClass };
|
||||
}
|
||||
private void EditCalculationProperty()
|
||||
{
|
||||
|
||||
116
Windows/PrimitiveProperiesWindow/PrimitivePropertiesView.xaml
Normal file
116
Windows/PrimitiveProperiesWindow/PrimitivePropertiesView.xaml
Normal file
@@ -0,0 +1,116 @@
|
||||
<Window x:Class="StructureHelper.Windows.PrimitiveProperiesWindow.PrimitiveProperties"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:StructureHelper.Windows.PrimitiveProperiesWindow"
|
||||
xmlns:vm="clr-namespace:StructureHelper.Windows.ViewModels.PrimitiveProperties"
|
||||
xmlns:converters ="clr-namespace:StructureHelper.Infrastructure.UI.Converters.Units"
|
||||
d:DataContext="{d:DesignInstance vm:PrimitivePropertiesViewModel}"
|
||||
mc:Ignorable="d"
|
||||
Title="PrimitiveProperties" Height="450" Width="300" ResizeMode="NoResize" WindowStartupLocation="CenterScreen">
|
||||
<Window.Resources>
|
||||
<converters:Length x:Key="LengthConverter"/>
|
||||
<converters:Area x:Key="AreaConverter"/>
|
||||
<DataTemplate x:Key="RectangleProperties">
|
||||
<Expander Header="Rectangle" IsExpanded="True">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="22"/>
|
||||
<RowDefinition Height="22"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Row="0" Text="Width"/>
|
||||
<TextBlock Grid.Row="1" Text="Height"/>
|
||||
<TextBox Grid.Row="0" Grid.Column="1" Margin="1" Text="{Binding Width, Converter={StaticResource LengthConverter}, ValidatesOnDataErrors=True}"/>
|
||||
<TextBox Grid.Row="1" Grid.Column="1" Margin="1" Text="{Binding Height, Converter={StaticResource LengthConverter}, ValidatesOnDataErrors=True}"/>
|
||||
</Grid>
|
||||
</Expander>
|
||||
</DataTemplate>
|
||||
<DataTemplate x:Key="PointProperties">
|
||||
<Expander Header="Point" IsExpanded="True">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="22"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Row="0" Text="Area"/>
|
||||
<TextBox Grid.Row="0" Grid.Column="1" Margin="1" Text="{Binding Area, Converter={StaticResource AreaConverter}, ValidatesOnDataErrors=True}"/>
|
||||
</Grid>
|
||||
</Expander>
|
||||
</DataTemplate>
|
||||
<DataTemplate x:Key="TriangulationProperties">
|
||||
<Expander Header="Triangulation" IsExpanded="True">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="22"/>
|
||||
<RowDefinition Height="22"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="150"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Row="0" Text="Minimum element division"/>
|
||||
<TextBlock Grid.Row="1" Text="Maximum element size"/>
|
||||
<TextBox Grid.Row="0" Grid.Column="1" Margin="1" Text="{Binding MinElementDivision, ValidatesOnDataErrors=True}"/>
|
||||
<TextBox Grid.Row="1" Grid.Column="1" Margin="1" Text="{Binding MaxElementSize, Converter={StaticResource LengthConverter}, ValidatesOnDataErrors=True}"/>
|
||||
</Grid>
|
||||
</Expander>
|
||||
</DataTemplate>
|
||||
</Window.Resources>
|
||||
<ScrollViewer>
|
||||
<StackPanel x:Name="StpProperties">
|
||||
<Expander Header="Common properties" IsExpanded="True">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="22"/>
|
||||
<RowDefinition Height="22"/>
|
||||
<RowDefinition Height="22"/>
|
||||
<RowDefinition Height="22"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Row="0" Text="Name"/>
|
||||
<TextBlock Grid.Row="1" Text="Name of material"/>
|
||||
<TextBlock Grid.Row="2" Text="Center X"/>
|
||||
<TextBlock Grid.Row="3" Text="Center Y"/>
|
||||
<TextBox Grid.Row="0" Grid.Column="1" Margin="1" Text="{Binding Name}"/>
|
||||
<StackPanel Grid.Row="1" Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<ComboBox HorizontalAlignment="Left"/>
|
||||
<Button Width="50" Content="...">
|
||||
</Button>
|
||||
</StackPanel>
|
||||
<TextBox Grid.Row="2" Grid.Column="1" Margin="1" Text="{Binding CenterX, Converter={StaticResource LengthConverter}, ValidatesOnDataErrors=True}"/>
|
||||
<TextBox Grid.Row="3" Grid.Column="1" Margin="1" Text="{Binding CenterY, Converter={StaticResource LengthConverter}, ValidatesOnDataErrors=True}"/>
|
||||
</Grid>
|
||||
</Expander>
|
||||
<!--<Expander Header="Prestrain" IsExpanded="True">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="22"/>
|
||||
<RowDefinition Height="22"/>
|
||||
<RowDefinition Height="22"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Row="0" Text="k_x"/>
|
||||
<TextBlock Grid.Row="1" Text="k_y"/>
|
||||
<TextBlock Grid.Row="2" Text="epsilon_z"/>
|
||||
<TextBox Grid.Row="0" Grid.Column="1" Margin="1" Text="{Binding Prestrain_kx, ValidatesOnDataErrors=True}"/>
|
||||
<TextBox Grid.Row="1" Grid.Column="1" Margin="1" Text="{Binding Prestrain_kx, ValidatesOnDataErrors=True}"/>
|
||||
<TextBox Grid.Row="2" Grid.Column="1" Margin="1" Text="{Binding Prestrain_kx, ValidatesOnDataErrors=True}"/>
|
||||
</Grid>
|
||||
</Expander>-->
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
</Window>
|
||||
@@ -0,0 +1,64 @@
|
||||
using StructureHelper.Infrastructure.Enums;
|
||||
using StructureHelper.Infrastructure.UI.DataContexts;
|
||||
using StructureHelper.Windows.ViewModels.PrimitiveProperties;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Shapes;
|
||||
using System.Xml.Linq;
|
||||
using Point = StructureHelper.Infrastructure.UI.DataContexts.Point;
|
||||
using Rectangle = StructureHelper.Infrastructure.UI.DataContexts.Rectangle;
|
||||
|
||||
namespace StructureHelper.Windows.PrimitiveProperiesWindow
|
||||
{
|
||||
/// <summary>
|
||||
/// Логика взаимодействия для PrimitiveProperties.xaml
|
||||
/// </summary>
|
||||
public partial class PrimitiveProperties : Window
|
||||
{
|
||||
PrimitiveBase primitive;
|
||||
private PrimitivePropertiesViewModel viewModel;
|
||||
public PrimitiveProperties(PrimitiveBase primitive)
|
||||
{
|
||||
this.primitive = primitive;
|
||||
viewModel = new PrimitivePropertiesViewModel(this.primitive);
|
||||
this.DataContext = viewModel;
|
||||
InitializeComponent();
|
||||
if (primitive is Rectangle) { AddPrimitiveProperties(PrimitiveType.Rectangle); }
|
||||
else if (primitive is Point) { AddPrimitiveProperties(PrimitiveType.Point); }
|
||||
else { throw new Exception("Type of object is unknown"); }
|
||||
}
|
||||
private void AddPrimitiveProperties(PrimitiveType type)
|
||||
{
|
||||
List<string> names = new List<string>();
|
||||
if (type == PrimitiveType.Rectangle)
|
||||
{
|
||||
names.Add("TriangulationProperties");
|
||||
names.Add("RectangleProperties");
|
||||
}
|
||||
else if (type == PrimitiveType.Point)
|
||||
{
|
||||
names.Add("PointProperties");
|
||||
}
|
||||
else { throw new Exception("Type of object is unknown"); }
|
||||
foreach (var name in names)
|
||||
{
|
||||
ContentControl contentControl = new ContentControl();
|
||||
contentControl.SetResourceReference(ContentControl.ContentTemplateProperty, name);
|
||||
Binding binding = new Binding();
|
||||
binding.Source = viewModel;
|
||||
contentControl.SetBinding(ContentControl.ContentProperty, binding);
|
||||
StpProperties.Children.Add(contentControl);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,7 @@ namespace StructureHelper.Windows.ViewModels.Calculations.CalculationProperies
|
||||
set
|
||||
{
|
||||
calculationProperty.IterationProperty.Accuracy = value;
|
||||
OnPropertyChanged("Accuracy");
|
||||
OnPropertyChanged(nameof(IterationAccuracy));
|
||||
}
|
||||
}
|
||||
public int MaxIterationCount
|
||||
@@ -36,7 +36,7 @@ namespace StructureHelper.Windows.ViewModels.Calculations.CalculationProperies
|
||||
set
|
||||
{
|
||||
calculationProperty.IterationProperty.MaxIterationCount = value;
|
||||
OnPropertyChanged("MaxIterationCount");
|
||||
OnPropertyChanged(nameof(MaxIterationCount));
|
||||
}
|
||||
}
|
||||
public IForceCombination SelectedCombination { get; set; }
|
||||
|
||||
@@ -0,0 +1,174 @@
|
||||
using StructureHelper.Infrastructure;
|
||||
using StructureHelper.Infrastructure.UI.DataContexts;
|
||||
using StructureHelperCommon.Models.Shapes;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
using Point = StructureHelper.Infrastructure.UI.DataContexts.Point;
|
||||
using Rectangle = StructureHelper.Infrastructure.UI.DataContexts.Rectangle;
|
||||
|
||||
namespace StructureHelper.Windows.ViewModels.PrimitiveProperties
|
||||
{
|
||||
public class PrimitivePropertiesViewModel : ViewModelBase, IDataErrorInfo
|
||||
{
|
||||
private PrimitiveBase primitive;
|
||||
|
||||
public string Name
|
||||
{
|
||||
get => primitive.Name;
|
||||
set
|
||||
{
|
||||
primitive.Name = value;
|
||||
OnPropertyChanged(nameof(Name));
|
||||
}
|
||||
}
|
||||
public string MaterialName
|
||||
{
|
||||
get => primitive.MaterialName;
|
||||
set
|
||||
{
|
||||
primitive.Name = value;
|
||||
OnPropertyChanged(nameof(MaterialName));
|
||||
}
|
||||
}
|
||||
|
||||
public double CenterX
|
||||
{
|
||||
get => primitive.CenterX;
|
||||
set
|
||||
{
|
||||
primitive.CenterX = value;
|
||||
OnPropertyChanged(nameof(CenterX));
|
||||
OnPropertyChanged(nameof(primitive.ShowedX));
|
||||
OnPropertyChanged(nameof(primitive.X));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public double CenterY
|
||||
{
|
||||
get => primitive.CenterY;
|
||||
set
|
||||
{
|
||||
primitive.CenterY = value;
|
||||
OnPropertyChanged(nameof(CenterY));
|
||||
OnPropertyChanged(nameof(primitive.ShowedY));
|
||||
OnPropertyChanged("Y");
|
||||
}
|
||||
}
|
||||
|
||||
public double Prestrain_Kx
|
||||
{
|
||||
get => primitive.Pre
|
||||
}
|
||||
|
||||
public int MinElementDivision
|
||||
{
|
||||
get => primitive.MinElementDivision;
|
||||
set
|
||||
{
|
||||
primitive.MinElementDivision = value;
|
||||
OnPropertyChanged(nameof(MinElementDivision));
|
||||
}
|
||||
}
|
||||
|
||||
public double MaxElementSize
|
||||
{
|
||||
get => primitive.MaxElementSize;
|
||||
set { primitive.MaxElementSize = value; }
|
||||
}
|
||||
|
||||
public double Width
|
||||
{
|
||||
get
|
||||
{
|
||||
if (primitive is Rectangle)
|
||||
{
|
||||
var shape = primitive as Rectangle;
|
||||
return shape.PrimitiveWidth;
|
||||
}
|
||||
return 0d;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (primitive is Rectangle)
|
||||
{
|
||||
var shape = primitive as Rectangle;
|
||||
shape.PrimitiveWidth = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public double Height
|
||||
{
|
||||
get
|
||||
{
|
||||
if (primitive is Rectangle)
|
||||
{
|
||||
var shape = primitive as Rectangle;
|
||||
return shape.PrimitiveHeight;
|
||||
}
|
||||
return 0d;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (primitive is Rectangle)
|
||||
{
|
||||
var shape = primitive as Rectangle;
|
||||
shape.PrimitiveHeight = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public double Area
|
||||
{
|
||||
get
|
||||
{
|
||||
if (primitive is Point)
|
||||
{
|
||||
var shape = primitive as Point;
|
||||
return shape.Area;
|
||||
}
|
||||
return 0d;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (primitive is Point)
|
||||
{
|
||||
var shape = primitive as Point;
|
||||
shape.Area = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string this[string columnName]
|
||||
{
|
||||
get
|
||||
{
|
||||
string error = null;
|
||||
|
||||
if (columnName == nameof(Width)
|
||||
||
|
||||
columnName == nameof(Height))
|
||||
{
|
||||
if (this.Width <= 0 || this.Height <=0)
|
||||
{
|
||||
error = "Width and Height of rectangle must be greater than zero";
|
||||
}
|
||||
}
|
||||
return error;
|
||||
}
|
||||
}
|
||||
|
||||
public string Error => throw new NotImplementedException();
|
||||
|
||||
public PrimitivePropertiesViewModel(PrimitiveBase primitive)
|
||||
{
|
||||
this.primitive = primitive;
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
|
||||
<assemblyIdentity name="StructureHelper.application" version="1.0.0.0" publicKeyToken="a672eb8f7483e078" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
||||
<description asmv2:publisher="StructureHelper" asmv2:product="StructureHelper" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
||||
<deployment install="true" mapFileExtensions="true" />
|
||||
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
|
||||
<framework targetVersion="4.7.2" profile="Full" supportedRuntime="4.0.30319" />
|
||||
</compatibleFrameworks>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" codebase="Application Files\StructureHelper_1_0_0_0\StructureHelper.exe.manifest" size="17471">
|
||||
<assemblyIdentity name="StructureHelper.exe" version="1.0.0.0" publicKeyToken="a672eb8f7483e078" language="neutral" processorArchitecture="msil" type="win32" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>SHyyPpiu/G7izGrKPX4ZMq35RGjief8+4X75T8JO5f4=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<publisherIdentity name="CN=EAHOME\User" issuerKeyHash="d2bac230e5af0250a8a7f0cf1c3bac1da680d76c" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>E1adO37wivdqDVYQ3FJdqUBxIoyoYoFdNAELzYPbBuU=</DigestValue></Reference></SignedInfo><SignatureValue>jstl5R6h+8dI94bEy4n2y/7PgG5Rom+bvC3fLkm/yCktU5o91C/ItwnXyN4hXfhdppkoE62mkP0/OW1zEXb4FwpavdtdHWwc+43UJTMeTvCkNdCg7xF9OLjJJAz+ULupVTydzxWTYPStGTVnZz4LtPJe/vFYX3n/AxMC7NFMiJg=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="e506db83cd0b01345d8162a88c227140a95d52dc10560d6af78af07e3b9d5613" Description="" Url=""><as:assemblyIdentity name="StructureHelper.application" version="1.0.0.0" publicKeyToken="a672eb8f7483e078" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=EAHOME\User</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>XMjKJ4t/nikM8DHg6HJIJ3BPIByWkckFtu6nTCUUoN0=</DigestValue></Reference></SignedInfo><SignatureValue>VWaDWp9QUuoggLKiadG/ndRKmowvoeC007/3DeuPPAVpZI4UpXa+U5bVIlA8Cv3ftfLG+IAGgpMUa7nR0inH73ifELEvnd+484B5g66ExCNaEYfSVogRUIQmrBTYyCfCQDokGIDdcIUHvonZ2wX1zSD9w/moG5REV5RXVr7k7T8=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIBxTCCAS6gAwIBAgIQdW4a4i1B6ZpEyHZPHlrayTANBgkqhkiG9w0BAQsFADAhMR8wHQYDVQQDHhYARQBBAEgATwBNAEUAXABVAHMAZQByMB4XDTIyMTAyMjE1MDY0M1oXDTIzMTAyMjIxMDY0M1owITEfMB0GA1UEAx4WAEUAQQBIAE8ATQBFAFwAVQBzAGUAcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKUCAwEAATANBgkqhkiG9w0BAQsFAAOBgQCmSBRoEJkrYAzHutpnML6GlC5QoBTOBhEtsZk2LeCDob8oDAtVCmI9MwthBMQnEHdGsiCcsnj4D/Orjbdw2ZTqHcNQSvX7aMqvyQQOGguQA3vi49D08p/TL+wKrpWHmOBdpIxj/x5GtKsqQSe3CUAhvkaHPuq+cn+iRyBAHkoTrA==</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>
|
||||
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Memory" culture="neutral" publicKeyToken="cc7b13ffcd2ddd51" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
Binary file not shown.
@@ -0,0 +1,245 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
|
||||
<asmv1:assemblyIdentity name="StructureHelper.exe" version="1.0.0.0" publicKeyToken="a672eb8f7483e078" language="neutral" processorArchitecture="msil" type="win32" />
|
||||
<application />
|
||||
<entryPoint>
|
||||
<assemblyIdentity name="StructureHelper" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
|
||||
<commandLine file="StructureHelper.exe" parameters="" />
|
||||
</entryPoint>
|
||||
<trustInfo>
|
||||
<security>
|
||||
<applicationRequestMinimum>
|
||||
<PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
|
||||
<defaultAssemblyRequest permissionSetReference="Custom" />
|
||||
</applicationRequestMinimum>
|
||||
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<!--
|
||||
Параметры манифеста UAC
|
||||
Если нужно изменить уровень контроля учетных записей Windows, замените
|
||||
узел requestedExecutionLevel одним из следующих значений.
|
||||
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
|
||||
|
||||
Если нужно использовать виртуализацию файлов и реестра для обратной
|
||||
совместимости, удалите узел requestedExecutionLevel.
|
||||
-->
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
<dependency>
|
||||
<dependentOS>
|
||||
<osVersionInfo>
|
||||
<os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
|
||||
</osVersionInfo>
|
||||
</dependentOS>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
|
||||
<assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Autofac.dll" size="355840">
|
||||
<assemblyIdentity name="Autofac" version="6.4.0.0" publicKeyToken="17863AF14B0044DA" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>R6ACRqrKX5Pm39qTeRyqQfJyN4HN7to8/JL96pswMu0=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="FieldVisualizer.dll" size="37376">
|
||||
<assemblyIdentity name="FieldVisualizer" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>UlD3DiTPy4phiibEHSCCRHF9VpOrvcOT+PthozJQbOM=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="LoaderCalculator.dll" size="56832">
|
||||
<assemblyIdentity name="LoaderCalculator" version="1.5.1.0" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>PS8gJ9hXTUKJj+t7ARGVNofbd6bG7vOlyFm9mY8QXP4=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Bcl.AsyncInterfaces.dll" size="22144">
|
||||
<assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" version="6.0.0.0" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>KVryFC2SFPP9hOr+R3jcoRm+fgIp8UtrqNUmnC8eLng=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Expression.Interactions.dll" size="91648">
|
||||
<assemblyIdentity name="Microsoft.Expression.Interactions" version="4.0.0.0" publicKeyToken="31BF3856AD364E35" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>87FN770FSTuFcwFrCLhuW11TtIawRX/XX2e/i/8Evjg=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Newtonsoft.Json.dll" size="701992">
|
||||
<assemblyIdentity name="Newtonsoft.Json" version="13.0.0.0" publicKeyToken="30AD4FE6B2A6AEED" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>tiSUnfiw46YVP9+3MKfG9JkLZZLuDZIuF4hDPSdmEPM=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="StructureHelper.exe" size="113088">
|
||||
<assemblyIdentity name="StructureHelper" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>0vbv6pftc2FgDvLoEYF4NLRhEHyorHVGwM7EaMz3ncQ=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="StructureHelperCommon.dll" size="8704">
|
||||
<assemblyIdentity name="StructureHelperCommon" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>2XjfxDPsF5OqDx/eSoF05PNVKULLhmzMxZikCy8r4vg=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="StructureHelperLogics.dll" size="15360">
|
||||
<assemblyIdentity name="StructureHelperLogics" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>woG+HEcR/ptJ4ZmmmZz8ScaJL8CfdM0rheZEiESS2AM=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Buffers.dll" size="20856">
|
||||
<assemblyIdentity name="System.Buffers" version="4.0.3.0" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>rMzPvkXZ8I/+7ZkW43sz6YxlvgEs//bn+ntnIQzh/vs=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Diagnostics.DiagnosticSource.dll" size="166512">
|
||||
<assemblyIdentity name="System.Diagnostics.DiagnosticSource" version="6.0.0.0" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>geZkiABC5FFJWhviJiSrSrXooGgD7tpb3afGnfJDmBU=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Memory.dll" size="142240">
|
||||
<assemblyIdentity name="System.Memory" version="4.0.1.2" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>vz+4RmT0CX8aipvHGlHc+M8akF1AgKTSkNoXMIZuhW8=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Numerics.Vectors.dll" size="115856">
|
||||
<assemblyIdentity name="System.Numerics.Vectors" version="4.1.4.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>HT74aYKB589zcdFVSv71hys5+Wwm2nciEKM9oEG6EYM=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Runtime.CompilerServices.Unsafe.dll" size="18024">
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" version="6.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>N3aEiOjvRXKbx9miZ3YzxkUAQpdbuWUW4YbabLnNDc8=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Threading.Tasks.Extensions.dll" size="25984">
|
||||
<assemblyIdentity name="System.Threading.Tasks.Extensions" version="4.2.0.1" publicKeyToken="CC7B13FFCD2DDD51" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>T4H/0NxyBNt1r8NepCkXabB8RAWS8oiUJg7qdmJqI8Y=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="System.Windows.Interactivity.dll" size="39936">
|
||||
<assemblyIdentity name="System.Windows.Interactivity" version="4.0.0.0" publicKeyToken="31BF3856AD364E35" language="neutral" processorArchitecture="msil" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>SqzoyKMwroQpzYzBtoBAdtOp/9YzRw+R/Ta90lu1eHY=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<file name="StructureHelper.exe.config" size="1911">
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>XJ4UTVCHY1fDfJcmuGAB8NgEOj0ea/C98clia7y2xfM=</dsig:DigestValue>
|
||||
</hash>
|
||||
</file>
|
||||
<publisherIdentity name="CN=EAHOME\User" issuerKeyHash="d2bac230e5af0250a8a7f0cf1c3bac1da680d76c" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>OB2DVefJbT397h8VuZEn1Dj805PagjlGkjvQ+eg2rZ4=</DigestValue></Reference></SignedInfo><SignatureValue>blDp7n3tL7B1tDTyhS2pXE7hbjOoSslxxHaYDHdaoZInj6XCPN7cKeMbg4HUGCv11OElENrxDwGjmOJsJpVVZwneCtqvVBLm1kz/Qd/NmLdgSWD0RbUFjz0P1/5CrubPVt1vqv2qlwM+qomMvhkMsXHQUhx+wT2E6sGKM1zfymI=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="9ead36e8f9d03b92463982da93d3fc38d42791b9151feefd3d6dc9e755831d38" Description="" Url=""><as:assemblyIdentity name="StructureHelper.exe" version="1.0.0.0" publicKeyToken="a672eb8f7483e078" language="neutral" processorArchitecture="msil" type="win32" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=EAHOME\User</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>uL0dDdGJ5ceym4EDYSov7My9JtKZZg+sFgYtfJPhsbQ=</DigestValue></Reference></SignedInfo><SignatureValue>AK6PzCIEn5wVIj5tMRbAFvkEmilmeKKyeQFXYwtcApYq0BH75EeguTu+Od7oKaJPvgpdlIRK6tvtg8VS4TtiYj8Q/g9v+H9e0OZrtk/p790F53Z+HDFVEyf+MmAmlOX/SxA53HZ5TeUwdZJO/qxDzEASwZSESwXcHP76dTiEvRY=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIBxTCCAS6gAwIBAgIQdW4a4i1B6ZpEyHZPHlrayTANBgkqhkiG9w0BAQsFADAhMR8wHQYDVQQDHhYARQBBAEgATwBNAEUAXABVAHMAZQByMB4XDTIyMTAyMjE1MDY0M1oXDTIzMTAyMjIxMDY0M1owITEfMB0GA1UEAx4WAEUAQQBIAE8ATQBFAFwAVQBzAGUAcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKUCAwEAATANBgkqhkiG9w0BAQsFAAOBgQCmSBRoEJkrYAzHutpnML6GlC5QoBTOBhEtsZk2LeCDob8oDAtVCmI9MwthBMQnEHdGsiCcsnj4D/Orjbdw2ZTqHcNQSvX7aMqvyQQOGguQA3vi49D08p/TL+wKrpWHmOBdpIxj/x5GtKsqQSe3CUAhvkaHPuq+cn+iRyBAHkoTrA==</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
21
publish/StructureHelper.application
Normal file
21
publish/StructureHelper.application
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xrml="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2">
|
||||
<assemblyIdentity name="StructureHelper.application" version="1.0.0.0" publicKeyToken="a672eb8f7483e078" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
||||
<description asmv2:publisher="StructureHelper" asmv2:product="StructureHelper" xmlns="urn:schemas-microsoft-com:asm.v1" />
|
||||
<deployment install="true" mapFileExtensions="true" />
|
||||
<compatibleFrameworks xmlns="urn:schemas-microsoft-com:clickonce.v2">
|
||||
<framework targetVersion="4.7.2" profile="Full" supportedRuntime="4.0.30319" />
|
||||
</compatibleFrameworks>
|
||||
<dependency>
|
||||
<dependentAssembly dependencyType="install" codebase="Application Files\StructureHelper_1_0_0_0\StructureHelper.exe.manifest" size="17471">
|
||||
<assemblyIdentity name="StructureHelper.exe" version="1.0.0.0" publicKeyToken="a672eb8f7483e078" language="neutral" processorArchitecture="msil" type="win32" />
|
||||
<hash>
|
||||
<dsig:Transforms>
|
||||
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
|
||||
</dsig:Transforms>
|
||||
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
|
||||
<dsig:DigestValue>SHyyPpiu/G7izGrKPX4ZMq35RGjief8+4X75T8JO5f4=</dsig:DigestValue>
|
||||
</hash>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<publisherIdentity name="CN=EAHOME\User" issuerKeyHash="d2bac230e5af0250a8a7f0cf1c3bac1da680d76c" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>E1adO37wivdqDVYQ3FJdqUBxIoyoYoFdNAELzYPbBuU=</DigestValue></Reference></SignedInfo><SignatureValue>jstl5R6h+8dI94bEy4n2y/7PgG5Rom+bvC3fLkm/yCktU5o91C/ItwnXyN4hXfhdppkoE62mkP0/OW1zEXb4FwpavdtdHWwc+43UJTMeTvCkNdCg7xF9OLjJJAz+ULupVTydzxWTYPStGTVnZz4LtPJe/vFYX3n/AxMC7NFMiJg=</SignatureValue><KeyInfo Id="StrongNameKeyInfo"><KeyValue><RSAKeyValue><Modulus>634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><msrel:RelData xmlns:msrel="http://schemas.microsoft.com/windows/rel/2005/reldata"><r:license xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS" xmlns:as="http://schemas.microsoft.com/windows/pki/2005/Authenticode"><r:grant><as:ManifestInformation Hash="e506db83cd0b01345d8162a88c227140a95d52dc10560d6af78af07e3b9d5613" Description="" Url=""><as:assemblyIdentity name="StructureHelper.application" version="1.0.0.0" publicKeyToken="a672eb8f7483e078" language="neutral" processorArchitecture="msil" xmlns="urn:schemas-microsoft-com:asm.v1" /></as:ManifestInformation><as:SignedBy /><as:AuthenticodePublisher><as:X509SubjectName>CN=EAHOME\User</as:X509SubjectName></as:AuthenticodePublisher></r:grant><r:issuer><Signature Id="AuthenticodeSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha256" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" /><DigestValue>XMjKJ4t/nikM8DHg6HJIJ3BPIByWkckFtu6nTCUUoN0=</DigestValue></Reference></SignedInfo><SignatureValue>VWaDWp9QUuoggLKiadG/ndRKmowvoeC007/3DeuPPAVpZI4UpXa+U5bVIlA8Cv3ftfLG+IAGgpMUa7nR0inH73ifELEvnd+484B5g66ExCNaEYfSVogRUIQmrBTYyCfCQDokGIDdcIUHvonZ2wX1zSD9w/moG5REV5RXVr7k7T8=</SignatureValue><KeyInfo><KeyValue><RSAKeyValue><Modulus>634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKU=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue></KeyValue><X509Data><X509Certificate>MIIBxTCCAS6gAwIBAgIQdW4a4i1B6ZpEyHZPHlrayTANBgkqhkiG9w0BAQsFADAhMR8wHQYDVQQDHhYARQBBAEgATwBNAEUAXABVAHMAZQByMB4XDTIyMTAyMjE1MDY0M1oXDTIzMTAyMjIxMDY0M1owITEfMB0GA1UEAx4WAEUAQQBIAE8ATQBFAFwAVQBzAGUAcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA634Yi+GrNI9reFjdsZpwN2SEF2r/nZDEIiBEJTECXqFOxqBh++16dsyDzSgYOxZOR+kEIek8aFKM/2WxvOEzC2X/ptJNWNkrZ51XK4WxI22xifoEC1S0OqcxwKlnOv+89l86L3hm1s7eeUqFGFxTKO1rktlS6XJTzZ/SHiraBKUCAwEAATANBgkqhkiG9w0BAQsFAAOBgQCmSBRoEJkrYAzHutpnML6GlC5QoBTOBhEtsZk2LeCDob8oDAtVCmI9MwthBMQnEHdGsiCcsnj4D/Orjbdw2ZTqHcNQSvX7aMqvyQQOGguQA3vi49D08p/TL+wKrpWHmOBdpIxj/x5GtKsqQSe3CUAhvkaHPuq+cn+iRyBAHkoTrA==</X509Certificate></X509Data></KeyInfo></Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>
|
||||
BIN
publish/setup.exe
Normal file
BIN
publish/setup.exe
Normal file
Binary file not shown.
Reference in New Issue
Block a user