> Yankel
В данном случае правильно было бы определить переменные не внутри worldDraw, а как экземпляры класса:
class firstClass: public AcDbEntity {
//...........
protected:
AcGePoint3d center; // Центр окружности
double radius; // Радиус окружности
AcGeVector3d norm; // Вектор нормали
//...........
};
Начальные значения можешь задать в конструкторе.
Кроме того не плохо бы написать функции, которые позволяли бы получать/изменять их значения. Например:
double firstClass::get_radius(void) const
{
assertReadEnabled () ;
return (radius) ;
}
Acad::ErrorStatus firstClass::put_radius(double newVal)
{
assertWriteEnabled () ;
radius = newVal ;
return (Acad::eOk) ;
}
Еще необходимо переопределить функцию firstClass::transformBy() приблизительно так:
Acad::ErrorStatus firstClass::::transformBy(const AcGeMatrix3d & xform)
{
assertWriteEnabled () ;
Acad::ErrorStatus retCode = AcDbEntity::transformBy (xform);
center.transformBy(xform);
norm.transformBy(xform); norm.normalize();
radius *= xform.scale();
recordGraphicsModified();
return (retCode) ;
}
Ну и переписать worldDraw чтобы он учитывал значения этих переменных. Но это все очень упрощенно. Нужно еще переопределить массу методов (например, dwgInFields/dwgOutFields - чтобы примитив сохранялся в чертеже). Смотри примеры в ObjectARX SDK (например в каталоге samples\entity\curvetext) и документацию: ObjectARX Developer's Guide->Custom Objects->Deriving from AcDbEntity