Тема: метод AcDbEntity::intersectWith

Здравствуйте!
Второй параметр у этого метода
enum Intersect { kOnBothOperands, kExtendThis, kExtendArg, kExtendBoth };
У меня такой вопрос:
Что значит Extend, к примеру для: AcDbCircle, AcDbHatch или AcDbBlockReference?

Re: метод AcDbEntity::intersectWith

> Shedever
Насколько мне известно он имеет смысл только для примитивов производных от AcDbCurve, да и то не всегда.

Re: метод AcDbEntity::intersectWith

Он перегружается только для AcDbPolyline, AcDbLeader, AcDbRasterImage, AcDbRegion.
Если он только для наследников AcDbCurve, почему же он не объявлен впервые в классе AcDbCurve?а из тех классов в которых он перегружен, только AcDbPolyline и AcDbLeader дети AcDbCurve...

Re: метод AcDbEntity::intersectWith

то, что он не перегружается в других классах конечно не значит, что он в них не работает...
тут другой возникает вопрос, чем так уникальны AcDbPolyline, AcDbLeader, AcDbRasterImage, AcDbRegion, что в них он перегружен?

Re: метод AcDbEntity::intersectWith

> Shedever
В чем уникальность не знаю, но перегружается он еще и в следующих классах:

AcDbEllipse
AcDbOle2Frame
AcDbRegion
AcDbMPolygon

Но при этом IMHO, для всех примитивов, которые не имеют метода extend() (а имеют его только некоторые примитивы производные от AcDbCurve) реализация kOnBothOperands и  kExtendXXX - одинакова.

Re: метод AcDbEntity::intersectWith

я наверно неправильно объяснил...
мне интересна только
enum { kOnBothOperands, kExtendThis, kExtendArg, kExtendBoth };
а Extend - это я про 'kExtendThis, kExtendArg, kExtendBoth', мне просто не понятно как будет находится пересечение, если к примеру: между AcDbCircle и AcDbHatch, если передать во втором параметре kExtendBoth,
вот и все!

Re: метод AcDbEntity::intersectWith

> Shedever
Значит ты меня не понял. Я именно об этом и написал. Пересечение будет искаться как будто ты передал kOnBothOperands, т.е. пеесечение будет обнаружено только если оно реально существует. Если интересно - можешь проверить.

Re: метод AcDbEntity::intersectWith

значит только прямые линии будет продляться? или AcDbArc тоже продлится?

Re: метод AcDbEntity::intersectWith

мне кажется без теста здесь не обойтись, в документации поскупились на объяснения, как напишу тесты на каждый класс обязательно сообщу, если кому-нибудь интересны будет результаты

Re: метод AcDbEntity::intersectWith

или AcDbArc тоже продлится?

Не проверял, но должна.

Re: метод AcDbEntity::intersectWith

яснее мне не стало зачем в базовом классе такой "бестолковый" параметр, пишите у кого есть информация по этому вопросу!

Re: метод AcDbEntity::intersectWith

Александр, а кроме вас никто на этом форуме не отвечает?

Re: метод AcDbEntity::intersectWith

> Shedever
Он не такой уж бестолковый - для наследования в своих Custom Entity.

> Shedever
:) Только когда я не успеваю ответить. Что-то не так?

Re: метод AcDbEntity::intersectWith

я говорил не про класс, а только про второй параметр метода AcDbEntity::intersectWith

Re: метод AcDbEntity::intersectWith

> Shedever
Наличие такого метода с такими параметрами в базовом классе позволяет в своих (Custom) примитивах использовать его без дополнительных ухищрений. AutoCAD может сам использовать эти методы (с нужными ему параметрами) для твоих примитивов, как для своих родных (native).

Re: метод AcDbEntity::intersectWith

А вы использовали когда-нибудь enum Intersect с параметрами 'kExtendThis, kExtendArg, kExtendBoth?

Re: метод AcDbEntity::intersectWith

> Shedever
Да. Хотя можно было бы обойтись и другими методами.