/// <summary>
 /// Constructs a new double axis joint
 /// </summary>
 /// <param name="joint">The JOint that this joint specific is in</param>
 /// <param name="path">The path to store data to</param>
 /// <param name="axes">2 long array of the axes in this joint</param>
 public DoubleAxisJoint(Joint joint, string path, IJointAxis[] axes)
     : base(joint, path)
 {
     this.Axes = axes;
     foreach (IJointAxis axis in Axes)
     {
         axis.CalcOriginHandler = new ReCalcOrigin(UpdateOriginPoint);
     }
     AxisSelBoxIDs = new int[2];
 }
        /// <summary>
        /// Creates a new property limit control for the desired axis
        /// </summary>
        /// <param name="axis">The axis this control should be referencing</param>
        public AxialJointLimitsProperties(IJointAxis axis)
        {
            InitializeComponent();
            this.axis = axis;
            if (axis is LinearJointAxis)
                ToggleContinuousCheckbox(false);

            else
                ToggleContinuousCheckbox(true);

            ToggleLimitButton(true);
            ManualLimitsCheckbox.Checked = axis.UseCustomMovementLimits;
            RefreshBoxes();
        }
 /// <summary>
 /// Constructs a new single axis joint
 /// </summary>
 /// <param name="joint">The joint that this joint is in</param>
 /// <param name="path">The storage path for this joint</param>
 /// <param name="axis">The IJointAxis that defines this joint's DOF</param>
 public SingleAxisJoint(Joint joint, string path, IJointAxis axis)
     : base(joint,path)
 {
     this.Axis1 = axis;
     axis.CalcOriginHandler = new ReCalcOrigin(UpdateOriginPoint);
 }
 /// <summary>
 /// Gets a physical properties page for this page and a second axis
 /// </summary>
 /// <param name="axis">The second axis oin the page</param>
 /// <returns>The newly created properties panel</returns>
 public UserControl GetPropertiesPanel(IJointAxis axis)
 {
     return new DoubleAxisJointPhysicalProperties(new IJointAxis[] { this, axis });
 }
 public SingleAxisJointPhysicalProperties(IJointAxis axis)
 {
     InitializeComponent();
     this.axis = axis;
     RefreshBoxes();
 }
 public DoubleAxisJointPhysicalProperties(IJointAxis[] axes)
 {
     InitializeComponent();
     this.axes = axes;
     RefreshBoxes();
 }