private void BuildTriangleGeometry(IPoint pointGeometry)
{
try
{
if (null == m_triangle || null == pointGeometry || null == m_cachedDisplay)
return;
m_triangle.SpatialReference = pointGeometry.SpatialReference;
m_triangle.SetEmpty();
object missing = System.Reflection.Missing.Value;
IPointCollection pointCollection = (IPointCollection)m_triangle;
double radius = PointsToMap(m_cachedDisplay.DisplayTransformation, m_size);
double X = pointGeometry.X;
double Y = pointGeometry.Y;
IPoint point = new PointClass();
point.X = X + radius * c_Cosine30;
point.Y = Y - 0.5 * radius;
pointCollection.AddPoint(point, ref missing, ref missing);
point = new PointClass();
point.X = X;
point.Y = Y + radius;
pointCollection.AddPoint(point, ref missing, ref missing);
point = new PointClass();
point.X = X - radius * c_Cosine30;
point.Y = Y - 0.5 * radius;
pointCollection.AddPoint(point, ref missing, ref missing);
m_triangle.Close();
if (m_rotation != 0.0)
{
((ITransform2D)pointCollection).Rotate(pointGeometry, m_rotation * c_Deg2Rad);
}
return;
}
catch (Exception ex)
{
System.Diagnostics.Trace.WriteLine(ex.Message);
}
}