internal override void OnMouseMoveEvent(object obj)
{
if (!IsActiveTab)
return;
var point = obj as IPoint;
if (point == null)
return;
//dynamic updates
if (!HasPoint1)
{
Point1 = point;
}
else if (HasPoint1 && !HasPoint2)
{
// update major
var polyline = CreateGeodeticLine(Point1, point);
// get major distance from polyline
MajorAxisDistance = GetGeodeticLengthFromPolyline(polyline);
// update bearing
Azimuth = GetAzimuth(polyline);
// update feedback
UpdateFeedbackWithEllipse(false);
}
else if (HasPoint1 && HasPoint2 && !HasPoint3)
{
var polyline = CreateGeodeticLine(Point1, point);
// get minor distance from polyline
if (polyline != null)
{
MinorAxisDistance = GetGeodeticLengthFromPolyline(polyline);
}
// update feedback
if (MajorAxisDistance > MinorAxisDistance)
{
UpdateFeedbackWithEllipse();
}
}
}