ObjectARX, AutoCAD. Среда программирования библиотеки C++

         

Пересечение Заказного Примитива с Другим Примитивом


ObjectARX - открытая архитектура, где множественные приложения могут осуществлять их собственные заказные объекты. Возможно, что множественные приложения будут загружены в то же самое время в сеансе AutoCAD. Пользователь мог бы выбирать ваш заказной объект в операции, которая заставляет это пересекаться с другим заказным объектом, который Вы не знаете. Следующие рекомендации должны помочь Вам осуществить intersectWith () функция вашего заказного объекта.

§         Каждый заказной объект, как ожидается,  будет способным пересечься с родными объектами. Родные объекты - объекты, определенные в AutoCAD, например, AcDbLine, AcDbEllipse, и AcDbSpline.

§         если intersectWith () функция вашего заказного объекта называется с другим объектом, который - не родной объект, Вы должны взорвать ваш заказной объект (например, используя взрывающийся () функция) к набору распознаваемых родных объектов, затем поворачивать вокруг и вызывать{*называть*} intersectWith () на объекте, который вошел как параметр к вашему intersectWith () в функцию. Поскольку каждый, как ожидается,  будет способным пересечься с родными объектами, объект в параметре был бы способен пересечься с вашей вырезанной версией.

В течение этого процесса, Вы должны быть внимательным относительно того, как Вы называете intersectWith () функцией параметра и как Вы интерпретируете пункты{*точки*}, которые являются результатами пересечения. Например, если бы перекрестный тип был kExtendArg, Вы хотели бы изменить{*заменить*} это к kExtendThis перед запросом intersectWith () на параметре. Точно так же, если пересечение - очевидное пересечение на плоскости проектирования, пункты{*точки*}, возвращенные от intersectWith () обращаются к объекту параметра, будет на объекте параметра, не обязательно на вашем объекте. Вы, как предполагается,  возвращаете перекрестные пункты{*точки*} на вашем объекте; поэтому, Вы должны проектировать пункты{*точки*} назад на плоскость проектирования (где они будут лежать на вашем проектируемом объекте) и затем проектировать их назад на ваш объект перед возвращением.




Содержание  Назад  Вперед