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


         

Определение Невидимых линий для Объекта для Стандартного Дисплея


Этот пример отображает пирамиду, показывая передние грани в желтом и обратные грани в синем, чтобы дать Вам идею относительно видимых и скрытых граней пирамиды. Пример показывает применение{*обращение*} преобразования " модель к глазу " и затем перспективное преобразование. Это использует координаты глаза, чтобы рисовать примитив и использование показов isPerspective (), doPerspective (), getFrontandBackClipValues (), polylineDc (), polylineEye () и polyline().

Преобразовывать координату глаза выравнивают долю, чтобы отобразить пространство

1 если вид имеет планы отсечения в силе, зажим доля линии координаты xглаза к ним.

2 если перспектива включена, то, исполняет преобразование от координат глаза до перспективы.

Если вы используете polygonEye (), polygonDc (), polylineEye (), или polylineDc () функции AcGiViewportGeometry, Вы должны вызвать AcGiWorldGeometry:: setExtents () чтобы установить поле ограничения для примитива. Это позволит AutoCAD знать, сколько пространства примитив требует и используется в ZOOM Степени. SetExtents () функция обычно вызвана, когда примитив находится в мировых координатах, чтобы определить самое маленькое поле, которое будет соответствовать вокруг примитива в мировых координатах.

AsdkViewGeomSamp::AsdkViewGeomSamp() : mNumVerts(4)

{

mVerts[0] = AcGePoint3d(0.0, 0.0, 0.0);

mVerts[1] = AcGePoint3d(1.0, 0.0, 0.0);

mVerts[2] = AcGePoint3d(0.0, 1.0, 0.0);

mVerts[3] = AcGePoint3d(0.0, 0.0, 1.0);

}

Acad::ErrorStatus

AsdkViewGeomSamp::transformBy(const AcGeMatrix3d &xfm)

{

assertWriteEnabled();

for (Adesk::UInt32 i = 0; i < mNumVerts; i++) {

mVerts[i].transformBy(xfm);

}

return Acad::eOk;

}

Adesk::Boolean

AsdkViewGeomSamp::worldDraw(AcGiWorldDraw* pW)

{

// Draw a pyramid.

//

// If this is the regular AutoCAD DISPLAY mode...

//

if (pW->regenType() == kAcGiStandardDisplay) {

// From each viewport’s vantage point, figure out

// which sides of the pyramid are visible,

// then make the visible ones yellow and the hidden



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