Пример #1
0
 public MainPage()
 {
     LinksInfo  = new LinksViewModel();
     JointsInfo = new JointsViewModel();
     InitializeComponent();
     InputJointBaseShape.LoadShapes();
     App.Current.Host.Content.Resized += Content_Resized;
 }
Пример #2
0
        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);
            }
        }