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



         

Оболочка (Shell) - часть 2


Если тот же самый край используется в двух различных лицах, свойства могут находиться в противоречии. В таких случаях, Вы можете заставлять одну из граней быть невидимыми или делать соответствие свойств для каждого края.

Порядок данных лица, если есть, следует за упорядочением списка лица для оболочки.

Следующее - пример оболочки с цветными данными, приложенными к граням и стоит и данным видимости, приложенным к граням. Оболочка составлена из двух треугольников в различных планах, которые совместно используют общий край. Общий край имеет видимость силуэта. Это означает, что, когда команда HIDE - в действительности и переменная AutoCAD DISPSILH равняется 1 (силуэты дисплея включены), общий край между лицами оттянут только, если оба лица в области просмотра находятся на той же самой стороне общего края. В этом случае, одно лицо - позади другой, так что это не рисует:

Adesk::Boolean

AsdkShellSamp::worldDraw(AcGiWorldDraw* pW)

{

// Fill the faces with the current color.

//

pW->subEntityTraits().setFillType(kAcGiFillAlways);

// Create vertices.

//

Adesk::UInt32 numVerts = 4;

AcGePoint3d *pVerts = new AcGePoint3d[numVerts];

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

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

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

pVerts[3] = AcGePoint3d(1.0, 0.0, 2.0);

// Create two faces.

//

Adesk::UInt32 faceListSize = 8;

Adesk::Int32 *pFaceList

= new Adesk::Int32[faceListSize];

// Assign vertices for face 1.

//

pFaceList[0] = 3; // Three vertices in the face

pFaceList[1] = 0; // pVerts[0]

pFaceList[2] = 1; // pVerts[1]

pFaceList[3] = 2; // pVerts[2]

// Assign vertices for face 2.

//

pFaceList[4] = 3; // Three vertices in the face

pFaceList[5] = 0; // pVerts[0]

pFaceList[6] = 2; // pVerts[2]

pFaceList[7] = 3; // pVerts[3]

// Apply colors to edges.

//

AcGiEdgeData edgeData;

int numEdges = 6;

short *pEdgeColorArray = new short[numEdges];

pEdgeColorArray[0] = kRed;

pEdgeColorArray[1] = kYellow;

pEdgeColorArray[2] = kGreen;




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