Пересечение точек
IntersectWith () функция возвращает пункты{*точки*}, где примитив пересекает другой примитив в рисунке. Входные значения для этой функции - примитив и перекрестный тип, который может быть один из следующего:
§
kOnBothOperands (никакой примитив расширен{*продлен*})
§ kExtendThis
§ kExtendArg
§ kExtendBoth
Например, предположите, что рисунок содержит три строки, показанные в следующей иллюстрации. Line1 - "это" и line3 - примитив параметра. Если перекрестный тип - kExtendThis, пункт{*точка*} возвращен как пункт{*точка*}, где line1 ("это") пересек бы line3, если line1 были расширены{*продлены*}. Если перекрестный тип - kExtendArgument, и line2 - примитив параметра, никакие данные не возвращены, потому что, даже если это было расширено{*продлено*}, line2 не будет пересекать line1. Если перекрестный тип - kExtendBoth, и line2 - примитив параметра, пункт{*точка*} B возвращен. Если перекрестный тип - kExtendNone, и line2 - примитив параметра, никакие данные не возвращены.
IntersectWith () функция - перезагруженная функция с двумя формами.
Вторая форма берет дополнительный параметр, который является самолетом проектирования для определения очевидного пересечения двух примитивов. Они - сигнатуры для intersectWith () функция:
virtual Acad::ErrorStatus
AcDbEntity::intersectWith(
const AcDbEntity* ent,
AcDb::Intersect intType,
AcGePoint3dArray& points,
int thisGsMarker = 0,
int otherGsMarker = 0) const;
virtual Acad::ErrorStatus
AcDbEntity::intersectWith(
const AcDbEntity* ent,
AcDb::Intersect intType,
const AcGePlane& projPlane,
AcGePoint3dArray& points,
int thisGsMarker = 0,
int otherGsMarker = 0) const;
Возвращенные пункты{*точки*} - всегда на примитиве ("this"). Поэтому, в случаях{*делах*} очевидного пересечения, пересеченные пункты{*точки*} проектируются назад к примитиву прежде, чем они возвращены.
Обе версии intersectWith () функция позволяют Вам снабжать необязательные GS маркеры, чтобы оптимизировать выполнение{*работу*} для этой функции. Если intersectWith примитива () функция осуществила использование GS маркеров, то поставляющий{*снабжающий*} GS маркеры может ограничивать перекрестную область и ускорять испытание.
Например, в следующем рисунке, если пользователь выбирает, одна строка многоугольника, проходящего в GS маркере для той строки устраняет потребность проверить другие пять строк многоугольника.