using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using Kitware.VTK;
using chutian_parking_terminal.front_terminal_manager;
using Sunny.UI;
using tool;
namespace chutian_parking_terminal
{
public partial class FormVtk : UIForm
{
public class Car_info
{
public bool correct = false;
public double cx;
public double cy;
public double theta;
public double wheel_base;
public double width;
public double front_theta;
public Car_info() { }
}
class Wheel_info
{
double m_radius = 0.35;
double m_width = 0.2;
public double[] p1 = new double[3];
public double[] p2 = new double[3];
public Wheel_info(double radius, double width)
{
m_radius = radius;
m_width = width;
p1[0] = -width / 2.0;
p1[1] = 0;
p1[2] = radius;
p2[0] = width / 2.0;
p2[1] = 0;
p2[2] = radius;
}
public void rotate(double theta)
{
double x = Math.Cos(theta) * p1[0] - Math.Sin(theta) * p1[1];
double y = Math.Sin(theta) * p1[0] + Math.Cos(theta) * p1[1];
p1[0] = x;
p1[1] = y;
x = Math.Cos(theta) * p2[0] - Math.Sin(theta) * p2[1];
y = Math.Sin(theta) * p2[0] + Math.Cos(theta) * p2[1];
p2[0] = x;
p2[1] = y;
}
public void translate(PointF pt)
{
p1[0] += pt.X;
p1[1] += pt.Y;
p2[0] += pt.X;
p2[1] += pt.Y;
}
}
class ViewData_Source
{
public vtkPolyData m_cloud_polydata = vtkPolyData.New();
public vtkVertexGlyphFilter m_cloud_glyphFilter = vtkVertexGlyphFilter.New();
public vtkPolyDataMapper m_cloud_mapper = vtkPolyDataMapper.New();
public vtkActor m_cloud_act = vtkActor.New();
vtkLineSource m_ls_lt = vtkLineSource.New();
vtkTubeFilter m_tf_lt = vtkTubeFilter.New();
vtkPolyDataMapper m_dm_lt = vtkPolyDataMapper.New();
public vtkActor m_left_front_wheel_act = vtkActor.New();
vtkLineSource m_ls_rt = vtkLineSource.New();
vtkTubeFilter m_tf_rt = vtkTubeFilter.New();
vtkPolyDataMapper m_dm_rt = vtkPolyDataMapper.New();
public vtkActor m_right_front_wheel_act = vtkActor.New();
vtkLineSource m_ls_lb = vtkLineSource.New();
vtkTubeFilter m_tf_lb = vtkTubeFilter.New();
vtkPolyDataMapper m_dm_lb = vtkPolyDataMapper.New();
public vtkActor m_left_rear_wheel_act = vtkActor.New();
vtkLineSource m_ls_rb = vtkLineSource.New();
vtkTubeFilter m_tf_rb = vtkTubeFilter.New();
vtkPolyDataMapper m_dm_rb = vtkPolyDataMapper.New();
public vtkActor m_right_rear_wheel_act = vtkActor.New();
vtkProperty m_whell_pp = vtkProperty.New();
PointF rotate_point(PointF pt, double theta)
{
double x = Math.Cos(theta) * pt.X - Math.Sin(theta) * pt.Y;
double y = Math.Sin(theta) * pt.X + Math.Cos(theta) * pt.Y;
return new PointF((float)x, (float)y);
}
public void update_car_info(Car_info car_info)
{
if (car_info.correct == false)
{
//隐藏车轮
m_left_front_wheel_act.VisibilityOff();
m_right_front_wheel_act.VisibilityOff();
m_left_rear_wheel_act.VisibilityOff();
m_right_rear_wheel_act.VisibilityOff();
return;
}
double wheel_width = 0.2;
double radius = 0.35;
Wheel_info lt = new Wheel_info(radius, wheel_width);
Wheel_info rt = new Wheel_info(radius, wheel_width);
Wheel_info lb = new Wheel_info(radius, wheel_width);
Wheel_info rb = new Wheel_info(radius, wheel_width);
lt.rotate(car_info.theta + car_info.front_theta);
rt.rotate(car_info.theta + car_info.front_theta);
lb.rotate(car_info.theta);
rb.rotate(car_info.theta);
float view_width =(float)(car_info.width - wheel_width);
PointF lt_pt = rotate_point(new PointF((float)(-view_width / 2.0),
(float)(car_info.wheel_base / 2.0)), car_info.theta);
PointF rt_pt = rotate_point(new PointF((float)(view_width / 2.0),
(float)(car_info.wheel_base / 2.0)), car_info.theta);
PointF lb_pt = rotate_point(new PointF((float)(-view_width / 2.0),
(float)(-car_info.wheel_base / 2.0)), car_info.theta);
PointF rb_pt = rotate_point(new PointF((float)(view_width / 2.0),
(float)(-car_info.wheel_base / 2.0)), car_info.theta);
lt.translate(lt_pt);
rt.translate(rt_pt);
lb.translate(lb_pt);
rb.translate(rb_pt);
lt.translate(new PointF((float)car_info.cx, (float)car_info.cy));
rt.translate(new PointF((float)car_info.cx, (float)car_info.cy));
lb.translate(new PointF((float)car_info.cx, (float)car_info.cy));
rb.translate(new PointF((float)car_info.cx, (float)car_info.cy));
int line_count = 30;
//左前轮
m_ls_lt.SetPoint1(lt.p1[0], lt.p1[1], lt.p1[2]);
m_ls_lt.SetPoint2(lt.p2[0], lt.p2[1], lt.p2[2]);
m_tf_lt.SetInputConnection(m_ls_lt.GetOutputPort());
m_tf_lt.SetRadius(0.3);
m_tf_lt.SetNumberOfSides(line_count);
m_tf_lt.CappingOn();
m_dm_lt.SetInputConnection(m_tf_lt.GetOutputPort());
m_left_front_wheel_act.SetMapper(m_dm_lt);
//右前轮
m_ls_rt.SetPoint1(rt.p1[0], rt.p1[1], rt.p1[2]);
m_ls_rt.SetPoint2(rt.p2[0], rt.p2[1], rt.p2[2]);
m_tf_rt.SetInputConnection(m_ls_rt.GetOutputPort());
m_tf_rt.SetRadius(0.3);
m_tf_rt.SetNumberOfSides(line_count);
m_tf_rt.CappingOn();
m_dm_rt.SetInputConnection(m_tf_rt.GetOutputPort());
m_right_front_wheel_act.SetMapper(m_dm_rt);
//左后轮
m_ls_lb.SetPoint1(lb.p1[0], lb.p1[1], lb.p1[2]);
m_ls_lb.SetPoint2(lb.p2[0], lb.p2[1], lb.p2[2]);
m_tf_lb.SetInputConnection(m_ls_lb.GetOutputPort());
m_tf_lb.SetRadius(0.3);
m_tf_lb.SetNumberOfSides(line_count);
m_tf_lb.CappingOn();
m_dm_lb.SetInputConnection(m_tf_lb.GetOutputPort());
m_left_rear_wheel_act.SetMapper(m_dm_lb);
//右后轮
m_ls_rb.SetPoint1(rb.p1[0], rb.p1[1], rb.p1[2]);
m_ls_rb.SetPoint2(rb.p2[0], rb.p2[1], rb.p2[2]);
m_tf_rb.SetInputConnection(m_ls_rb.GetOutputPort());
m_tf_rb.SetRadius(0.3);
m_tf_rb.SetNumberOfSides(line_count);
m_tf_rb.CappingOn();
m_dm_rb.SetInputConnection(m_tf_rb.GetOutputPort());
m_right_rear_wheel_act.SetMapper(m_dm_rb);
m_whell_pp.SetOpacity(0.5);
m_whell_pp.SetColor(0, 0, 0);
m_whell_pp.SetLineWidth(2);
m_whell_pp.SetLighting(true);
m_whell_pp.SetEdgeColor(0, 0, 0);
m_whell_pp.SetEdgeVisibility(1);
m_left_front_wheel_act.SetProperty(m_whell_pp);
m_right_front_wheel_act.SetProperty(m_whell_pp);
m_left_rear_wheel_act.SetProperty(m_whell_pp);
m_right_rear_wheel_act.SetProperty(m_whell_pp);
//显示车轮
m_left_front_wheel_act.VisibilityOn();
m_right_front_wheel_act.VisibilityOn();
m_left_rear_wheel_act.VisibilityOn();
m_right_rear_wheel_act.VisibilityOn();
}
public void update_cloud(vtkPoints points)
{
m_cloud_polydata.SetPoints(points);
//Color
m_cloud_glyphFilter.RemoveAllInputs();
m_cloud_glyphFilter.SetInput(m_cloud_polydata);
m_cloud_glyphFilter.Update();
// Visualize
m_cloud_mapper.RemoveAllInputs();
m_cloud_mapper.SetInputConnection(m_cloud_glyphFilter.GetOutputPort());
m_cloud_act.SetMapper(m_cloud_mapper);
m_cloud_act.GetProperty().SetPointSize(2);
}
public void SetCloudColor(Color color)
{
m_cloud_act.GetProperty().SetColor(color.R, color.G, color.B);
}
}
object m_lock = new object();
vtkPoints m_points = new vtkPoints();
Car_info m_car_info = new Car_info();
vtkActor m_bound_act = vtkActor.New();
vtkTextActor m_text_act = vtkTextActor.New();
ViewData_Source m_view_data_source1 = new ViewData_Source();
ViewData_Source m_view_data_source2 = new ViewData_Source();
System.Media.SoundPlayer m_sound_player = new System.Media.SoundPlayer();
System.Windows.Forms.Timer m_timerGetTime = new System.Windows.Forms.Timer();
//自适应窗口大小
AutoResizeForm m_auto_resize_form = new AutoResizeForm();
bool m_is_correct = false;
bool isClosed = false;
Thread m_viewer_ledDisplay_thread;
bool ArrowsVisible = false;
Arrows arrows = Arrows.eArrows_unknow;
public enum Arrows
{
///
/// 默认
///
eArrows_unknow =-1,
///
/// 箭头向左
///
eArrows_left =0,
///
/// 箭头向右
///
eArrows_right = 1,
///
/// 箭头向上
///
eArrows_top = 2,
///
/// 箭头向下
///
eArrows_down = 3,
///
/// 箭头向左上
///
eArrows_upperleft = 4,
///
/// 箭头向右上
///
eArrows_upperright = 5,
///
/// 箭头向左下
///
eArrows_lowerleft = 6,
///
/// 箭头向右下
///
eArrows_lowerright = 7,
};
public void isCorrect(bool t_is_correct)
{
m_is_correct = t_is_correct;
}
///
/// 设置箭头
///
///
public void SetArrows(Arrows t_arrows)
{
arrows = t_arrows;
}
public void isArrowsVisible(bool visible)
{
ArrowsVisible = visible;
}
public void set_tip_car_label(string str)
{
this.Invoke(new Action(() =>
{
this.tip_car_label.Text = str;
}));
}
public void set_car_data_label(string str)
{
this.Invoke(new Action(() =>
{
this.Tip_Label.Text = str;
}));
}
public void set_tip_label(string str)
{
this.Invoke(new Action(() =>
{
this.Statu_Label.Text = str;
}));
}
public void SetCloud(vtkPoints points)
{
lock (m_lock)
{
m_points.DeepCopy(points);
}
}
public void SetCloudColor(Color color)
{
lock (m_lock)
{
m_view_data_source1.SetCloudColor(color);
m_view_data_source2.SetCloudColor(color);
}
}
public void SetCarInfo(Car_info car_info)
{
lock (m_lock)
{
m_car_info = car_info;
}
}
public Color GetColor(float percentage)
{
var red = (percentage > 50 ? 1 - 2 * (percentage - 50) / 100.0 : 1.0) * 255;
var green = (percentage > 50 ? 1.0 : 2 * percentage / 100.0) * 255;
var blue = 0.0;
Color result = Color.FromArgb((int)red, (int)green, (int)blue);
return result;
}
public FormVtk()
{
InitializeComponent();
m_viewer_ledDisplay_thread = new Thread(viewer_ledDisplay);
}
public void viewer_ledDisplay()
{
while (!isClosed)
{
try
{
this.Invoke(new Action(() =>
{
if (m_is_correct)
{
Statu_Label.Text = "车已停好!";
Statu_Label.ForeColor = GetColor(100);
show_correct_tip_image();
SetCloudColor(GetColor(100));
}
else
{
Statu_Label.ForeColor = GetColor(0);
show_error_tip_image();
SetCloudColor(GetColor(0));
}
if (ArrowsVisible)
{
switch (arrows)
{
case Arrows.eArrows_top:
{
this.top_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_xiangshang.png");
top_pictureBox.Visible = true;
down_pictureBox.Visible = false;
left_pictureBox.Visible = false;
right_pictureBox.Visible = false;
upperleft_pictureBox.Visible = false;
upperright_pictureBox.Visible = false;
lowerleft_pictureBox.Visible = false;
lowerright_pictureBox.Visible = false;
}
break;
case Arrows.eArrows_down:
{
this.down_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_xiangxia.png");
top_pictureBox.Visible = false;
down_pictureBox.Visible = true;
left_pictureBox.Visible = false;
right_pictureBox.Visible = false;
upperleft_pictureBox.Visible = false;
upperright_pictureBox.Visible = false;
lowerleft_pictureBox.Visible = false;
lowerright_pictureBox.Visible = false;
}
break;
case Arrows.eArrows_left:
{
this.left_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_xiangzuo.png");
top_pictureBox.Visible = false;
down_pictureBox.Visible = false;
left_pictureBox.Visible = true;
right_pictureBox.Visible = false;
upperleft_pictureBox.Visible = false;
upperright_pictureBox.Visible = false;
lowerleft_pictureBox.Visible = false;
lowerright_pictureBox.Visible = false;
}
break;
case Arrows.eArrows_right:
{
this.right_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_xiangyou.png");
top_pictureBox.Visible = false;
down_pictureBox.Visible = false;
left_pictureBox.Visible = false;
right_pictureBox.Visible = true;
upperleft_pictureBox.Visible = false;
upperright_pictureBox.Visible = false;
lowerleft_pictureBox.Visible = false;
lowerright_pictureBox.Visible = false;
}
break;
case Arrows.eArrows_upperleft:
{
this.upperleft_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_zuoshang.png");
top_pictureBox.Visible = false;
down_pictureBox.Visible = false;
left_pictureBox.Visible = false;
right_pictureBox.Visible = false;
upperleft_pictureBox.Visible = true;
upperright_pictureBox.Visible = false;
lowerleft_pictureBox.Visible = false;
lowerright_pictureBox.Visible = false;
}
break;
case Arrows.eArrows_upperright:
{
this.upperright_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_youshang.png");
top_pictureBox.Visible = false;
down_pictureBox.Visible = false;
left_pictureBox.Visible = false;
right_pictureBox.Visible = false;
upperleft_pictureBox.Visible = false;
upperright_pictureBox.Visible = true;
lowerleft_pictureBox.Visible = false;
lowerright_pictureBox.Visible = false;
}
break;
case Arrows.eArrows_lowerleft:
{
this.lowerleft_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_zuoxia.png");
top_pictureBox.Visible = false;
down_pictureBox.Visible = false;
left_pictureBox.Visible = false;
right_pictureBox.Visible = false;
upperleft_pictureBox.Visible = false;
upperright_pictureBox.Visible = false;
lowerleft_pictureBox.Visible = true;
lowerright_pictureBox.Visible = false;
}
break;
case Arrows.eArrows_lowerright:
{
this.lowerright_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/arrows/" + "jiantou_youxia.png");
top_pictureBox.Visible = false;
down_pictureBox.Visible = false;
left_pictureBox.Visible = false;
right_pictureBox.Visible = false;
upperleft_pictureBox.Visible = false;
upperright_pictureBox.Visible = false;
lowerleft_pictureBox.Visible = false;
lowerright_pictureBox.Visible = true;
}
break;
}
}
else
{
top_pictureBox.Visible = false;
down_pictureBox.Visible = false;
left_pictureBox.Visible = false;
right_pictureBox.Visible = false;
upperleft_pictureBox.Visible = false;
upperright_pictureBox.Visible = false;
lowerleft_pictureBox.Visible = false;
lowerright_pictureBox.Visible = false;
}
}));
}
catch { }
Thread.Sleep(100);
}
}
void viewer_car(Car_info car_info)
{
try
{
vtkRenderer renderer = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer();
renderer.RemoveActor(m_view_data_source1.m_left_front_wheel_act);
renderer.RemoveActor(m_view_data_source1.m_right_front_wheel_act);
renderer.RemoveActor(m_view_data_source1.m_left_rear_wheel_act);
renderer.RemoveActor(m_view_data_source1.m_right_rear_wheel_act);
m_view_data_source1.update_car_info(car_info);
m_view_data_source2.update_car_info(car_info);
renderer.AddActor(m_view_data_source1.m_left_front_wheel_act);
renderer.AddActor(m_view_data_source1.m_right_front_wheel_act);
renderer.AddActor(m_view_data_source1.m_left_rear_wheel_act);
renderer.AddActor(m_view_data_source1.m_right_rear_wheel_act);
renderWindowControl1.RenderWindow.Render();
}
catch (Exception e)
{
}
}
public void SetBound(double minx, double maxx, double miny,
double maxy, double minz, double maxz)
{
vtkCubeSource cube = vtkCubeSource.New();
cube.SetBounds(minx, maxx, miny, maxy, minz, maxz);
vtkPolyDataMapper mapper = vtkPolyDataMapper.New();
mapper.SetInputConnection(cube.GetOutputPort());
m_bound_act.SetMapper(mapper);
vtkProperty pp = vtkProperty.New();
pp.SetEdgeColor(1, 0, 0);
pp.SetEdgeVisibility(1);
pp.SetColor(1, 1, 1);
pp.SetLineWidth(2);
pp.SetOpacity(0.2);
m_bound_act.SetProperty(pp);
renderWindowControl1.Refresh();
}
private void viewer_cloud(vtkPoints points)
{
if (points.GetReferenceCount() == 0)
return;
try
{
vtkRenderer renderer = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer();
renderer.RemoveActor(m_view_data_source1.m_cloud_act);
m_view_data_source1.update_cloud(points);
m_view_data_source2.update_cloud(points);
renderer.AddActor(m_view_data_source1.m_cloud_act);
renderWindowControl1.RenderWindow.Render();
}
catch (Exception e)
{
}
}
private void renderWindowControl1_Load(object sender, EventArgs e)
{
vtkRenderer renderer = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer();
vtkInteractorStyleTrackballCamera style = vtkInteractorStyleTrackballCamera.New(); //移动摄像头
vtkAxesActor axesActor = vtkAxesActor.New(); // 创建“坐标”角色
axesActor.SetScale(1.0, 1.0, 1.0);
axesActor.AxisLabelsOff();
renderer.AddActor(axesActor); // 渲染坐标角色
renderer.AddActor(m_view_data_source1.m_cloud_act);
renderer.AddActor(m_view_data_source1.m_left_front_wheel_act);
renderer.AddActor(m_view_data_source1.m_right_front_wheel_act);
renderer.AddActor(m_view_data_source1.m_left_rear_wheel_act);
renderer.AddActor(m_view_data_source1.m_right_rear_wheel_act);
renderer.AddActor(m_text_act);
renderer.AddActor(m_bound_act);
renderer.SetBackground(1, 1, 1);
renderer.ResetCamera();
renderer.GetActiveCamera().Zoom(1.3);
vtkRenderWindowInteractor renderWindowInteractor = renderWindowControl1.RenderWindow.MakeRenderWindowInteractor();
renderWindowInteractor.SetInteractorStyle(style); //交互模式 重要!
renderWindowInteractor.Initialize();
//renderWindowControl1.Enabled = false;
return;
// Create a simple sphere. A pipeline is created.
/*vtkSphereSource sphere = vtkSphereSource.New();
sphere.SetThetaResolution(8);
sphere.SetPhiResolution(16);
vtkShrinkPolyData shrink = vtkShrinkPolyData.New();
shrink.SetInputConnection(sphere.GetOutputPort());
shrink.SetShrinkFactor(0.9);
vtkPolyDataMapper mapper = vtkPolyDataMapper.New();
mapper.SetInputConnection(shrink.GetOutputPort());
// The actor links the data pipeline to the rendering subsystem
vtkActor actor = vtkActor.New();
actor.SetMapper(mapper);
actor.GetProperty().SetColor(1, 0, 0);
// Create components of the rendering subsystem
//
vtkRenderer ren1 = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer();
vtkRenderWindow renWin = renderWindowControl1.RenderWindow;
// Add the actors to the renderer, set the window size
//
ren1.AddViewProp(actor);
renWin.SetSize(250, 250);
renWin.Render();
vtkCamera camera = ren1.GetActiveCamera();
camera.Zoom(1.5);*/
}
private void renderWindowControl1_Paint(object sender, PaintEventArgs e)
{
//viewer_cloud();
}
//private void set_camera_Click(object sender, EventArgs e)
//{
// double x = double.Parse(xbox.Text);
// double y = double.Parse(ybox.Text);
// double z = double.Parse(zbox.Text);
// double dx = double.Parse(dxbox.Text);
// double dy = double.Parse(dybox.Text);
// double dz = double.Parse(dzbox.Text);
// vtkCamera camera = new vtkCamera(); //-4.1, 0.5,2.0, 0.35,0 0.9
// camera.SetPosition(x, y, z);
// camera.SetViewUp(dx, dy, dz);
// vtkRenderer renderer = renderWindowControl2.RenderWindow.GetRenderers().GetFirstRenderer();
// renderer.SetActiveCamera(camera);
// renderWindowControl2.Refresh();
//}
//private void getdirection_Click(object sender, EventArgs e)
//{
// vtkRenderer renderer = renderWindowControl2.RenderWindow.GetRenderers().GetFirstRenderer();
// double[] d = renderer.GetActiveCamera().GetViewUp();
// double[] p = renderer.GetActiveCamera().GetPosition();
// xbox.Text = p[0].ToString();
// ybox.Text = p[1].ToString();
// zbox.Text = p[2].ToString();
// dxbox.Text = d[0].ToString();
// dybox.Text = d[1].ToString();
// dzbox.Text = d[2].ToString();
//}
//private void btn_car_Click(object sender, EventArgs e)
//{
// Car_info car_info = new Car_info();
// car_info.correct = true;
// car_info.cx = double.Parse(cx_box.Text);
// car_info.cy = double.Parse(cy_box.Text);
// car_info.theta = double.Parse(theta_box.Text) / 180.0 * Math.PI;
// car_info.wheel_base = double.Parse(wheel_base_box.Text);
// car_info.width = double.Parse(width_box.Text);
// car_info.front_theta = double.Parse(front_theta_box.Text) / 180.0 * Math.PI;
// viewer_car(car_info);
//}
private void button_play_sound_Click(object sender, EventArgs e)
{
//UILocalize.InfoTitle = "提示";
//UILocalize.SuccessTitle = "正确";
//UILocalize.WarningTitle = "警告";
//UILocalize.ErrorTitle = "错误";
//UILocalize.AskTitle = "提示";
//UILocalize.InputTitle = "输入";
//UILocalize.CloseAll = "全部关闭";
//UILocalize.OK = "确定";
//UILocalize.Cancel = "取消";
//UILocalize.GridNoData = "[ 无数据 ]";
//UILocalize.GridDataLoading = "数据加载中 ......";
//UILocalize.GridDataSourceException = "数据源必须为DataTable或者List";
m_sound_player.SoundLocation = "C:\\Users\\Administrator\\Desktop\\文件\\kldykxq.wav";
m_sound_player.Load();
m_sound_player.PlayLooping();
}
private void button_stop_sound_Click(object sender, EventArgs e)
{
m_sound_player.Stop();
}
public void HandleTime(Object myObject, EventArgs myEventArgs)
{
lock (m_lock)
{
viewer_cloud(m_points);
viewer_car(m_car_info);
}
}
private void FormVtk_Load(object sender, EventArgs e)
{
//设置定时器属性
m_timerGetTime.Tick += new EventHandler(HandleTime);
m_timerGetTime.Interval = 50;
m_timerGetTime.Enabled = true;
//开启定时器
m_timerGetTime.Start();
m_viewer_ledDisplay_thread.Start();
//设置最大化
//this.WindowState = FormWindowState.Maximized;
var screens = Screen.AllScreens;
m_auto_resize_form.controllInitializeSize(this);
/*//若当前只有一块显示器
if (Screen.AllScreens.Length < 2)
return;
//0主显示器(系统默认,可设置哪块显示器为主显示器)1扩展显示器
this.Location = new Point(screens[1].Bounds.Left, screens[1].Bounds.Top);
this.FormBorderStyle = FormBorderStyle.None; //设置窗体为无边框样式
this.WindowState = FormWindowState.Maximized; //最大化窗体*/
}
private void FormVtk_FormClosing(object sender, FormClosingEventArgs e)
{
m_timerGetTime.Stop();
isClosed = true;
}
public void FormVtkUninit()
{
isClosed = true;
m_viewer_ledDisplay_thread.Abort();
m_timerGetTime.Stop();
}
private void FormVtk_SizeChanged(object sender, EventArgs e)
{
m_auto_resize_form.controlAutoSize(this);
}
public void show_correct_tip_image()
{
this.results_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/tipimage/" + "0.ico");
}
public void show_error_tip_image()
{
this.results_pictureBox.Image = Image.FromFile(System.AppDomain.CurrentDomain.BaseDirectory + "/Resource/tipimage/" + "1.ico");
}
}
}