Может быть я что-то не так делаю?
Есть функции:
private void drawPoint(Editor ed, Point3d center, double size, int color)
{
ed.DrawVector(center - new Vector3d(size/2, 0, 0), center + new Vector3d(size/2, 0, 0), color, false);
ed.DrawVector(center - new Vector3d(0, size / 2, 0), center + new Vector3d(0, size / 2, 0), color, false);
}
private void redrawPoints(Document doc, ObjectId objId1, ObjectId objId2, double size, bool switched)
{
using (OpenCloseTransaction tr = doc.TransactionManager.StartOpenCloseTransaction())
{
Curve curve1 = (Curve)tr.GetObject(objId1, OpenMode.ForRead);
Curve curve2 = (Curve)tr.GetObject(objId2, OpenMode.ForRead);
drawPoint(doc.Editor, curve1.StartPoint, size, 3);
drawPoint(doc.Editor, switched ? curve2.EndPoint : curve2.StartPoint, size, 4);
tr.Commit();
}
}
вызываю redrawPoints из основной функции
double pointSize = 1.0;
redrawPoints(doc, objId1, objId2, pointSize, false);
ed.UpdateScreen();
Все отрисовалось, думаю и и без UpdateScreen. Далее следует цикл обработки ввода пользователя, и если он вызывает из команды нужную опцию, то опять вызываю:
redrawPoints(doc, objId1, objId2, pointSize, _switched);
ed.UpdateScreen();
Но в итоге на экране остается и прежняя ранее нарисованные крестики, и новые. Почему старые не стираются, не пойму.