diff --git a/FieldVisualizer/Entities/Values/Primitives/ITrianglePrimitive.cs b/FieldVisualizer/Entities/Values/Primitives/ITrianglePrimitive.cs
index f800c68..9310dd6 100644
--- a/FieldVisualizer/Entities/Values/Primitives/ITrianglePrimitive.cs
+++ b/FieldVisualizer/Entities/Values/Primitives/ITrianglePrimitive.cs
@@ -12,5 +12,8 @@ namespace FieldVisualizer.Entities.Values.Primitives
IPoint2D Point1 { get; set; }
IPoint2D Point2 { get; set; }
IPoint2D Point3 { get; set; }
+ double ValuePoint1 { get; set; }
+ double ValuePoint2 { get; set; }
+ double ValuePoint3 { get; set; }
}
}
diff --git a/FieldVisualizer/Entities/Values/Primitives/TrianglePrimitive.cs b/FieldVisualizer/Entities/Values/Primitives/TrianglePrimitive.cs
index b6be9c7..a59baa3 100644
--- a/FieldVisualizer/Entities/Values/Primitives/TrianglePrimitive.cs
+++ b/FieldVisualizer/Entities/Values/Primitives/TrianglePrimitive.cs
@@ -23,5 +23,9 @@ namespace FieldVisualizer.Entities.Values.Primitives
(Point2.X - Point1.X) * (Point3.Y - Point1.Y) -
(Point3.X - Point1.X) * (Point2.Y - Point1.Y)
);
+
+ public double ValuePoint1 { get; set; }
+ public double ValuePoint2 { get; set; }
+ public double ValuePoint3 { get; set; }
}
}
diff --git a/StructureHelper/Documentation/Manuals/Руководство пользователя.docx b/StructureHelper/Documentation/Manuals/Руководство пользователя.docx
index 80bbffc..c83778f 100644
Binary files a/StructureHelper/Documentation/Manuals/Руководство пользователя.docx and b/StructureHelper/Documentation/Manuals/Руководство пользователя.docx differ
diff --git a/StructureHelper/Infrastructure/HelixViewModelBase.cs b/StructureHelper/Infrastructure/HelixViewModelBase.cs
new file mode 100644
index 0000000..fbbfb4a
--- /dev/null
+++ b/StructureHelper/Infrastructure/HelixViewModelBase.cs
@@ -0,0 +1,126 @@
+using HelixToolkit.SharpDX;
+using HelixToolkit.Wpf.SharpDX;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Numerics;
+using System.Text;
+using System.Windows.Media;
+using System.Windows.Media.Media3D;
+
+namespace StructureHelper.Infrastructure
+{
+ public class HelixViewModelBase : ViewModelBase
+ {
+ private string subTitle = string.Empty;
+ private string title = string.Empty;
+ private DefaultEffectsManager effectsManager;
+ private HelixToolkit.Wpf.SharpDX.Camera camera;
+ private Color ambientLightColor;
+ private Viewport3DX viewPort3D;
+ private Vector3D directionalLightDirection;
+ private Stream? backgroundTexture;
+
+ public HelixToolkit.Wpf.SharpDX.Camera Camera
+ {
+ get => camera;
+ set
+ {
+ camera = value;
+ OnPropertyChanged(nameof(Camera));
+ }
+ }
+ public System.Windows.Media.Color AmbientLightColor
+ {
+ get => ambientLightColor;
+ set
+ {
+ ambientLightColor = value;
+ OnPropertyChanged(nameof(AmbientLightColor));
+ }
+ }
+ public System.Windows.Media.Color DirectionalLightColor { get; set; }
+ public Vector3D DirectionalLightDirection
+ {
+ get => directionalLightDirection;
+ set
+ {
+ directionalLightDirection = value;
+ OnPropertyChanged(nameof(DirectionalLightDirection));
+ }
+ }
+ public Stream? BackgroundTexture
+ {
+ get => backgroundTexture;
+ set
+ {
+ backgroundTexture = value;
+ OnPropertyChanged(nameof(BackgroundTexture));
+ }
+ }
+
+
+ public Viewport3DX Viewport3D
+ {
+ get => viewPort3D;
+ set
+ {
+ viewPort3D = value;
+ OnPropertyChanged(nameof(Viewport3DX));
+ }
+ }
+ public DefaultEffectsManager EffectsManager
+ {
+ get => effectsManager;
+ set
+ {
+ effectsManager = value;
+ OnPropertyChanged(nameof(EffectsManager));
+ }
+ }
+ public string Title
+ {
+ get => title;
+ set
+ {
+ title = value;
+ OnPropertyChanged(nameof(Title));
+ }
+ }
+ public string SubTitle
+ {
+ get => subTitle;
+ set
+ {
+ subTitle = value;
+ OnPropertyChanged(nameof(SubTitle));
+ }
+ }
+
+ public HelixViewModelBase()
+ {
+ EffectsManager = new DefaultEffectsManager();
+
+ Camera = new HelixToolkit.Wpf.SharpDX.OrthographicCamera
+ {
+ Position = new Point3D(3, 3, 5),
+ LookDirection = new Vector3D(-3, -3, -5),
+ UpDirection = new Vector3D(0, 1, 0),
+ FarPlaneDistance = 50000
+ };
+
+ // setup lighting
+ AmbientLightColor = Colors.DimGray;
+ DirectionalLightColor = Colors.White;
+ DirectionalLightDirection = new Vector3D(-2, -5, -2);
+
+ BackgroundTexture =
+ BitmapExtensions.CreateLinearGradientBitmapStream(EffectsManager, 128, 128, Direct2DImageFormat.Bmp,
+ new Vector2(0, 0), new Vector2(0, 128), new SharpDX.Direct2D1.GradientStop[]
+ {
+ new(){ Color = Colors.White.ToRawColor4(), Position = 0f },
+ new(){ Color = Colors.DarkGray.ToRawColor4(), Position = 1f }
+ });
+ }
+ }
+}
diff --git a/StructureHelper/Infrastructure/UI/Resources/ButtonStyles.xaml b/StructureHelper/Infrastructure/UI/Resources/ButtonStyles.xaml
index dac8ef4..1b010c9 100644
--- a/StructureHelper/Infrastructure/UI/Resources/ButtonStyles.xaml
+++ b/StructureHelper/Infrastructure/UI/Resources/ButtonStyles.xaml
@@ -508,6 +508,17 @@
+
+
+