using baseviewer;
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace customizedviewer
{
public partial class CustomizedViewerWindow : Window
{
public CustomizedViewerWindow()
{
InitializeComponent();
myViewer.ViewerApplication = new BaseViewerApplication(myViewer);
myViewer.SizeChanged += ChangeViewCubeGeometry;
myViewer.Viewport.ViewCubeEnabled = true;
myViewer.Viewport.TrihedronEnabled = true;
myViewer.Viewport.GridPlaneEnabled = true;
AddOptionsMenu();
ChangeBackgroundStyle();
ChangeViewCubeStyle();
ChangeMenuStyle();
}
void ChangeBackgroundStyle()
{
}
void ChangeViewCubeStyle()
{
aViewCubeStyle.SetTextColor(aTextColor);
aViewCubeStyle.SetTrihedronTextColor(aTextColor);
aViewCubeStyle.SetNormalColor(
new ModelData_Color(Convert.ToInt32(0x006e6e6e)));
aViewCubeStyle.SetHoveredColor(
new ModelData_Color(Convert.ToInt32(0x00545454)));
aViewCubeStyle.SetPressedColor(
new ModelData_Color(Convert.ToInt32(0x00474747)));
myViewer.Viewport.ViewCubeStyle = aViewCubeStyle;
}
void ChangeMenuStyle()
{
myViewer.myMenu.Background = new SolidColorBrush(Color.FromScRgb(1.0f, aMenuColor.R(), aMenuColor.G(), aMenuColor.B()));
myViewer.myFileMenuItem.Background = new SolidColorBrush(Color.FromScRgb(1.0f, aMenuColor.R(), aMenuColor.G(), aMenuColor.B()));
}
void ChangeViewCubeGeometry(object sender, SizeChangedEventArgs e)
{
var aViewCubeMargins = 10;
var aWidth = e.NewSize.Width;
var aHeight = e.NewSize.Height;
var aViewCubeSize = Math.Max(Math.Min(aWidth, aHeight) / 5, 200);
var aMinLeft = new ModelData_Point2dd(aWidth - aViewCubeMargins - aViewCubeSize,
aViewCubeMargins);
var aMaxRight = new ModelData_Point2dd(aMinLeft.X() + aViewCubeSize,
aViewCubeMargins + aViewCubeSize);
myViewer.Viewport.ViewCubeGeometry =
new ModelData_Box2d(aMinLeft, aMaxRight);
}
void AddOptionsMenu()
{
MenuItem anOptionsMenu = new MenuItem();
anOptionsMenu.Header = "Options";
MenuItem aGridPlaneItem = new MenuItem();
aGridPlaneItem.Header = "Grid plane";
aGridPlaneItem.IsCheckable = true;
aGridPlaneItem.IsChecked = true;
aGridPlaneItem.Click += onGridPlaneOptionItemClicked;
MenuItem aTrihedronItem = new MenuItem();
aTrihedronItem.Header = "Trihedron";
aTrihedronItem.IsCheckable = true;
aTrihedronItem.IsChecked = true;
aTrihedronItem.Click += onTrihedronOptionItemClicked;
MenuItem aViewCubeItem = new MenuItem();
aViewCubeItem.Header = "View Cube";
aViewCubeItem.IsCheckable = true;
aViewCubeItem.IsChecked = true;
aViewCubeItem.Click += onViewCubeOptionItemClicked;
anOptionsMenu.Items.Add(aGridPlaneItem);
anOptionsMenu.Items.Add(aTrihedronItem);
anOptionsMenu.Items.Add(aViewCubeItem);
myViewer.myMenu.Items.Add(anOptionsMenu);
}
void onGridPlaneOptionItemClicked(object sender, RoutedEventArgs e)
{
var aMenuItem = (MenuItem)sender;
myViewer.Viewport.GridPlaneEnabled = aMenuItem.IsChecked;
}
void onTrihedronOptionItemClicked(object sender, RoutedEventArgs e)
{
var aMenuItem = (MenuItem)sender;
myViewer.Viewport.TrihedronEnabled = aMenuItem.IsChecked;
}
void onViewCubeOptionItemClicked(object sender, RoutedEventArgs e)
{
var aMenuItem = (MenuItem)sender;
myViewer.Viewport.ViewCubeEnabled = aMenuItem.IsChecked;
}
}
}
Defines a 2D bounding box.
Definition: ModelData_Box2d.hxx:30
Defines an RGBA color (with alpha channel).
Definition: ModelData_Color.hxx:34
Defines background style.
Definition: ModelPrs_BackgroundStyle.hxx:32
Defines a style of view cube.
Definition: ModelPrs_ViewCubeStyle.hxx:32
Defines classes, types, and global functions related to CAD Exchanger.
Definition: A3DSTestLib.hxx:22