Archicad二次开发——三角剖分

Archicad的三角剖分的api用起来还是比较麻烦的。主要是API文档有问题,没有案例。

这里给出一个样例:

以下一个五角形,注意起点和终点是同一个点。最后打印的是顶点的索引。

const double px[6] = { 0,1,3,4,2,0 };
const double py[6] = { 1,0,0,1,2,1 };
const double pz[6] = { 0,0,0,0,0,0 };
bool result;
const short mask[6] = {0,0,0,0,0,-1};
Int32 ncoord = 6;
const double meshLevelx[1] = {};
const double meshLevely[1] = {};
const double meshLevelz[1] = {};
Int32 numMeshLevelPts = 0;
const Int32	 subLineEnds=0;
Int32 numSubLineEnds = 0;

Geometry::DelaunayTriangulation delaunayTriangulation(px, py,pz,mask, ncoord,meshLevelx,meshLevely,meshLevelz,numMeshLevelPts,&subLineEnds, numSubLineEnds);

GS::Array tris;
result=delaunayTriangulation.TDTriangulate(tris);
if (result)
{
	DBPrintf("meshes number is %d", tris.GetSize());
	for(Int32 i=0;i < tris.GetSize();i++)
	{
		Geometry::TDTri tri;
		tri=tris.Get(i);
		DBPrintf("v1: %d,v2:%d,v3:%d \n", tri.v1.index, tri.v2.index, tri.v3.index);
	}
}

 

你可能感兴趣的:(Archicad二次开发)