public MainPage() { LinksInfo = new LinksViewModel(); JointsInfo = new JointsViewModel(); InitializeComponent(); InputJointBaseShape.LoadShapes(); App.Current.Host.Content.Resized += Content_Resized; }
internal void DrawStaticShapes(Simulator pmks, ObservableCollection <JointData> jointData) { Children.Clear(); Children.Add(axes); initialPositionIcons.Clear(); for (int index = 0; index < pmks.Joints.Count; index++) { var j = pmks.Joints[index]; var isDriver = (index == App.main.drivingIndex); JointData jointRowData = (index < jointData.Count) ? jointData[index] : null; InputJointBaseShape inputJointBaseShape = null; switch (j.TypeOfJoint) { case JointType.R: inputJointBaseShape = new InputRJointShape(jointSize, penThick, j.xInitial, j.yInitial, XAxisOffset, YAxisOffset, j.IsGround, isDriver, index, jointRowData); break; case JointType.P: inputJointBaseShape = new InputPJointShape(jointSize, penThick, j.xInitial, j.yInitial, XAxisOffset, YAxisOffset, j.SlideAngleInitial, j.IsGround, isDriver, index, jointRowData); break; case JointType.RP: inputJointBaseShape = new InputRPJointShape(jointSize, penThick, j.xInitial, j.yInitial, XAxisOffset, YAxisOffset, j.SlideAngleInitial, j.IsGround, index, jointRowData); break; case JointType.G: inputJointBaseShape = new InputGJointShape(jointSize, penThick, j.xInitial, j.yInitial, XAxisOffset, YAxisOffset, j.SlideAngleInitial, j.IsGround, index, jointRowData); break; } Children.Add(inputJointBaseShape); initialPositionIcons.Add(inputJointBaseShape); } /* remove old ground shapes */ Children.Remove(groundLinkShape); groundLinkShape = new GroundLinkShape(pmks.GroundLink, XAxisOffset, YAxisOffset, penThick, jointSize, DisplayConstants.DefaultBufferRadius / ScaleFactor); Children.Add(groundLinkShape); /* now add the link shapes */ for (int i = 0; i < pmks.NumLinks; i++) { if (!pmks.Links[i].name.Equals("ground")) { Children.Add(new LinkShape(i, pmks.Links[i], XAxisOffset, YAxisOffset, penThick, jointSize, null, DisplayConstants.DefaultBufferRadius / ScaleFactor)); } } if (TargetPath != null) { Children.Remove(TargetPath); TargetPath.RenderTransform = new TranslateTransform { X = XAxisOffset, Y = YAxisOffset }; Children.Add(TargetPath); } }