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

Вырождение


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

Adesk::Boolean

AcGeCurve2d::isDegenerate(

AcGe::EntityId& degenerateType,

const AcGeTol&=AcGeContext::gTol) const;

Adesk::Boolean

AcGeCurve2d::isDegenerate(

AcGeEntity2d*& pConvertedEntity,

const AcGeTol&=AcGeContext::gTol) const;

Adesk::Boolean

AcGeCurve3d::isDegenerate(

AcGe::EntityId& degenerateType,

const AcGeTol&=AcGeContext::gTol) const;

Adesk::Boolean

AcGeCurve3d::isDegenerate(

AcGeEntity3d*& pConvertedEntity,

const AcGeTol&=AcGeContext::gTol) const;



Содержание раздела