protected override void OnExecute(Command command, ExecutionContext context, System.Drawing.Rectangle buttonRect)
{
base.OnExecute(command, context, buttonRect);
List<ITrimmedCurve> iTrimmedCurves = new List<ITrimmedCurve>(activeWindow.GetAllSelectedITrimmedCurves());
List<ITrimmedCurve> uniqueCurves = new List<ITrimmedCurve>();
uniqueCurves.Add(iTrimmedCurves[0]);
iTrimmedCurves.RemoveAt(0);
foreach (ITrimmedCurve candidate in iTrimmedCurves) {
ITrimmedCurve notUnique = null;
foreach (ITrimmedCurve uniqueCurve in uniqueCurves) {
if (candidate.IsCoincident(uniqueCurve))
notUnique = uniqueCurve;
}
if (notUnique != null) {
uniqueCurves.Remove(notUnique);
continue;
}
uniqueCurves.Add(candidate);
}
// Old crappy way
//Dictionary<ITrimmedCurve, bool> uniqueCurves = new Dictionary<ITrimmedCurve, bool>(new ITrimmedCurveComparer());
//foreach (ITrimmedCurve iTrimmedCurve in iTrimmedCurves) {
// if (!uniqueCurves.ContainsKey(iTrimmedCurve))
// uniqueCurves.Add(iTrimmedCurve, false);
// else
// uniqueCurves[iTrimmedCurve] = !uniqueCurves[iTrimmedCurve];
//}
//foreach (ITrimmedCurve iTrimmedCurve in uniqueCurves.Keys) {
foreach (ITrimmedCurve iTrimmedCurve in uniqueCurves)
DesignCurve.Create(part, iTrimmedCurve);
}