var g = getGeom(100000000, 10); // pPoly.Densify takes > 6 seconds
var g2 = getGeom(100000000, 1000000); // pPoly.Densify takes < 25 milliseconds
Any idea why the time differential is so big between these two different calls to getGeom? Any suggestions for how to speed it up?
private static IGeometry getGeom(double m, double i)
{
IEnvelope pEnv = null;
IEllipticArc pEllipticArc = null;
IConstructEllipticArc pConstEllipticArc = null;
//build a bounding box for the ellipse
pEnv = new EnvelopeClass();
pEnv.PutCoords(0d, 0d, 0d, 0d);
pEnv.Expand(i / 2, m / 2, false);
//construct arc
pEllipticArc = new EllipticArcClass();
pConstEllipticArc = (IConstructEllipticArc)pEllipticArc;
pConstEllipticArc.ConstructEnvelope(pEnv);
//translate curve to polygon
IPolygon pPoly = new PolygonClass();
ISegmentCollection pSegColl = (ISegmentCollection)pPoly;
pSegColl = (ISegmentCollection)pPoly;
pSegColl.SetSegments(1, (ISegment)pConstEllipticArc);
double dDensification = 360;
Console.WriteLine($"BEGIN densification {pPoly.Length}/{dDensification}");
//densify to ensure proper projection
pPoly.Densify(pPoly.Length / dDensification, 0);
Console.WriteLine($"END densification {pPoly.Length}/{dDensification}");
return pPoly;
}
Thanks much!