Объекты AutoCAD имеют точки захвата, которые появляются, когда пользователь выбирает объект устройством управления позицией. GetGripPoints () функция возвращает точки захвата, которые были определены для объекта.
Сигнатуры для getGripPoints () и moveGripPointsAt () функции для AcDbEntity
virtual Acad::ErrorStatus
AcDbEntity::getGripPoints(
AcGePoint3dArray& gripPoints,
AcDbIntArray& osnapModes,
AcDbIntArray& geomIds) const;
virtual Acad::ErrorStatus
AcDbEntity::moveGripPointsAt(
const AcDbIntArray& indices,
const AcGeVector3d& offset);
OsnapModes и geomIds параметры getGripPoints () функция в настоящее время не используются.
Режим Протяжения в редактировании власти{*захвата*} позволяет Вам протягивать объект, перемещая выбранные власти{*захваты*} к новым местоположениям. AutoCAD называет moveGripPointsAt () функцией, когда пользователь находится в режиме протяжения. Для некоторых объектов, однако, некоторые власти{*захваты*} двигаются объектный скорее чем протяжение этого. Эти власти{*захваты*} включают власти{*захваты*} в текстовые объекты, блоки, midpoints строк, центры кругов, центры эллипсов, и объектов пункта{*точки*}. В этих случаях{*делах*}, moveGripPointsAt () функция вызывает{*называет*} transformBy ().
ОБРАТИТЕ ВНИМАНИЕ На заданное по умолчанию выполнение AcDbEntity:: moveGripPointsAt () функция должна вызвать transformBy () функция.
Когда пользователь находится в перемещении власти{*захвата*}, вращать, масштабировать, или отражать режимы, AutoCAD называет transformBy () функцией, описанной в главе 6, “ примитивами. ”
Если Вы хотите, чтобы пользователь был способным редактировать ваш объект, используя власти{*захваты*}, вы будете должны перегрузить getGripPoints () и moveGripPointsAt () функции. Объект определяет его пункты{*точки*} власти{*захвата*} и как интерпретировать обеспеченное пользователем смещение.
Следующая выборка показывает, как заказной AsdkPoly класс осуществляет эти функции. Объект, определенный этим классом имеет пункт{*точку*} власти{*захвата*} в каждой вершине и пункте{*точке*} власти{*захвата*} в его центре. Эти пункты{*точки*} власти{*захвата*} возвращены getGripPoints () функция. Если пользователь выбирает пункт{*точку*} власти{*захвата*}, когда в режиме протяжения власти{*захвата*}, AutoCAD вызывает moveGripPointsAt () функция, проходящая в массиве индексов для выбранных пунктов{*точек*} власти{*захвата*} и трехмерного вектора, определяющего, сколько пользователя переместил устройство управления позицией. Если пользователь выбрал пункт{*точку*} власти{*захвата*} вершины, многоугольник протянут однородно указанным смещением.