private void Update_HalfButton(HeadTrackerData headTrackerData, NetychordsButton checkedButton) { if (checkedButton != null) { var Occ = checkedButton.Occluder; Half_leftRect.Height = Occ.ActualHeight; Half_leftRect.Width = Occ.ActualWidth / 2; Half_rightRect.Height = Occ.ActualHeight; Half_rightRect.Width = Occ.ActualWidth / 2; Half_midLine.X1 = Canvas.GetLeft(Occ) + Occ.ActualWidth / 2; Half_midLine.Y1 = Canvas.GetTop(Occ); Half_midLine.X2 = Canvas.GetLeft(Occ) + Occ.ActualWidth / 2; Half_midLine.Y2 = Canvas.GetTop(Occ) + Occ.ActualHeight; Canvas.SetLeft(Half_leftRect, Canvas.GetLeft(Occ)); Canvas.SetLeft(Half_rightRect, Canvas.GetLeft(Occ) + Occ.ActualWidth / 2); Canvas.SetTop(Half_leftRect, Canvas.GetTop(Occ)); Canvas.SetTop(Half_rightRect, Canvas.GetTop(Occ)); double posPart = 0; double negPart = 0; if (headTrackerData.TranspYaw >= 0) { posPart = headTrackerData.TranspYaw; negPart = 0; } else { negPart = -headTrackerData.TranspYaw; posPart = 0; } if (Rack.NetychordsDMIBox.InDeadZone) { Half_midLine.Opacity = Half_midLineActiveOpacity; } else { Half_midLine.Opacity = 0; } Half_leftRect.Opacity = Half_rectRangeMapper.Map(negPart); Half_rightRect.Opacity = Half_rectRangeMapper.Map(posPart); } }
public void UpdateGraphics(HeadTrackerData headTrackerData, NetychordsButton checkedButton) { switch (Mode) { case HTFeedbackModes.Bars: Update_Bars(headTrackerData, checkedButton); break; case HTFeedbackModes.HalfButton: Update_HalfButton(headTrackerData, checkedButton); break; case HTFeedbackModes.DeadZone: Update_DeadZone(headTrackerData, checkedButton); break; } }
private void Update_Bars(HeadTrackerData headTrackerData, NetychordsButton checkedButton) { if (checkedButton != null) { Bar_horLine.X1 = Canvas.GetLeft(checkedButton) + checkedButton.ActualWidth / 2; Bar_horLine.Y1 = Canvas.GetTop(checkedButton) + checkedButton.ActualHeight / 2; Bar_horLine.X2 = Bar_horLine.X1 + headTrackerData.TranspYaw; Bar_horLine.Y2 = Bar_horLine.Y1; Bar_verLine.X1 = Bar_horLine.X2; Bar_verLine.Y1 = Bar_horLine.Y2 - Half_VLHeight; Bar_verLine.X2 = Bar_horLine.X2; Bar_verLine.Y2 = Bar_horLine.Y2 + Half_VLHeight; Canvas.UpdateLayout(); } }
private void Update_DeadZone(HeadTrackerData headTrackerData, NetychordsButton checkedButton) { if (checkedButton != null) { var Occ = checkedButton.Occluder; Dead_midLine.X1 = Canvas.GetLeft(Occ) + Occ.ActualWidth / 2; Dead_midLine.Y1 = Canvas.GetTop(Occ); Dead_midLine.X2 = Canvas.GetLeft(Occ) + Occ.ActualWidth / 2; Dead_midLine.Y2 = Canvas.GetTop(Occ) + Occ.ActualHeight; if (Rack.NetychordsDMIBox.InDeadZone) { Dead_midLine.Opacity = Dead_midLineActiveOpacity; } else { Dead_midLine.Opacity = 0; } } }