Тема: перерисовка Custom Entity

Есть свой объект. задача состоит в том, чтоб "на лету" контролировать пересечения его с объектами того же класса. Все работает замечательно, кроме перерисовки  :evil:
Да, если выполнить регенерацию чертежа, все отображается замечательно.
Вопрос такой: как програмно вызвать перерисовку конкретного объекта в нужный момент (если быть более точным, то как заставить выполниться функцию worldDraw)?

(изменено: Александр Ривилис, 6 декабря 2010г. 18:34:15)

Re: перерисовка Custom Entity

Николай пишет:

Есть свой объект. задача состоит в том, чтоб "на лету" контролировать пересечения его с объектами того же класса. Все работает замечательно, кроме перерисовки   

Да, если выполнить регенерацию чертежа, все отображается замечательно.

Вопрос такой: как програмно вызвать перерисовку конкретного объекта в нужный момент (если быть более точным, то как заставить выполниться функцию worldDraw)?

Ну вообще-то:

// AcDbEntity *ent; // <- открыт для записи
ent.recordGraphicsModified(true);
ent.draw();

Только боюсь, что это не выполнится "в нужный момент".

Re: перерисовка Custom Entity

Спасибо, Александр. То что нужно :)
А то как-то уж сильно чертеж подтормаживал с ads_regen()

Только боюсь, что это не выполнится "в нужный момент".

В моем случае в реакторе передаются иды объектов, с которыми нужно считать пересечения, а в worldDraw собственно и идет этот самый расчет. Для этого и нужно было принудительно вызывать worldDraw.

Re: перерисовка Custom Entity

Николай пишет:

А то как-то уж сильно чертеж подтормаживал с ads_regen()

Ну это конечно перебор - регенерация всего чертежа при перерисовке одного примитива.

Николай пишет:

а в worldDraw собственно и идет этот самый расчет.

Подумай над тем, как пересчитывать в других методах. Если пересчет длительный, то делать его в worldDraw() не кошерно. IMHO.

(изменено: Николай, 7 декабря 2010г. 14:41:31)

Re: перерисовка Custom Entity

Подумай над тем, как пересчитывать в других методах. Если пересчет длительный, то делать его в worldDraw() не кошерно.

да и сам понимаю, что не кошерно :). но в другом случае прийдется делать контейнерный объект, и хранить жеские связи в нем на составляющие элементы (лениво как-то, да и прийдется досконально разбираться в этом механизме, чтоб ничего не упустить). а так все создается отрисовывается и умирает в worldDraw, а храню только нужные мне параметры. Кстати, время обработки не такое уж и большое. где-то пол минуты на 30 пересекающихся объектов. Но это только в случае модификации одного из них.
Это я пытаюсь сделать автомат там, где нормальные люди пользуются обрезкой и изменением порядка отрисовки объектов :), так что все равно будут рады  :D :D :D
Спасибо за помощь.