Если тот же самый край используется в двух различных лицах, свойства могут находиться в противоречии. В таких случаях, Вы можете заставлять одну из граней быть невидимыми или делать соответствие свойств для каждого края.
Порядок данных лица, если есть, следует за упорядочением списка лица для оболочки.
Следующее - пример оболочки с цветными данными, приложенными к граням и стоит и данным видимости, приложенным к граням. Оболочка составлена из двух треугольников в различных планах, которые совместно используют общий край. Общий край имеет видимость силуэта. Это означает, что, когда команда 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;