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


         

Сеть


Сеть - эффективный способ сохранить parametrically прямоугольную сетку вершины. Геометрия для сети определена как число строк, число столбцов, и списка вершины, в порядке строки:

virtual Adesk::Boolean

AcGiWorldGeometry::mesh(

const Adesk::UInt32 rows,

const Adesk::UInt32 columns,

const AcGePoint3d* pVertexList,

const AcGiEdgeData* pEdgeData = NULL,

const AcGiFaceData* pFaceData = NULL,

const AcGiVertexData* pVertexData = NULL) const = 0;

Mesh() функция имеет три необязательных параметра для присоединяющихся данных свойства к граням, лицам, или вершине. Для граней в сети, Вы можете прикреплять цвет, уровень, linetype, GS маркер, и свойства видимости. Например, Вы могли использовать AcGiEdgeData:: setColors () чтобы прикрепить различный цвет к каждому краю сети. В цветном списке, сначала перечисляют цвета для всех граней строки, тогда цвета для всех граней столбца. Следующее рисунок показывает упорядочение данных свойства края для типовой сети:

Следующий типовой код создает сеть и назначает цвета, использующие данные края и данные лица. Это создает сеть " четыре четыре " с голубыми строками и зелеными столбцами.

Adesk::Boolean

AsdkMeshSamp::worldDraw(AcGiWorldDraw* pW)

{

Adesk::UInt32 i, j, k;

Adesk::UInt32 numRows = 4;

Adesk::UInt32 numCols = 4;

AcGePoint3d *pVerts =

new AcGePoint3d[numRows * numCols];

for (k = 0, i = 0; i < numRows; i++) {

for (j = 0; j < numCols; j++, k++) {

pVerts[k].x = (double)j;

pVerts[k].y = (double)i;

pVerts[k].z = 0.;

}

}

// Construct an array of colors to be applied to each

// edge of the mesh. In this example, the rows are cyan and

// the columns are green.

//

AcGiEdgeData edgeInfo;

Adesk::UInt32 numRowEdges = numRows * (numCols - 1);

Adesk::UInt32 numColEdges = (numRows - 1) * numCols;

Adesk::UInt32 numEdges = numRowEdges + numColEdges;

short *pEdgeColorArray = new short[numEdges];

for (i = 0; i < numEdges; i++) {

pEdgeColorArray[i] =

i < numRowEdges ? kCyan : kGreen;

}

edgeInfo.setColors(pEdgeColorArray);



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