如何在空的UGGeoRegion对象中添加数据?

0 投票

使用产品:iobjectscpp 9.1.0 操作系统:win10 x64
问题详细描述:

目标是把vector数据转为超图的面数据,所以想法是new一个UGGeoRegion对象,然后添加1个子对象,将点数据插入到子对象中。

源代码如下:

bool Vector2Region(const vector<vector<float>> &polygon, UGGeoRegion *region)
{
	if (!region)
		region = new UGGeoRegion;

	int i;
	vector<UGPoint2D> points;
	for (i = 0; i < polygon.size(); i++)
		points.push_back({ polygon[i][0],polygon[i][1] });
	return region->InsertSub(0, points.data(), points.size());
}

 然而在UGGeoRegion对象无子对象时,调用InsertSub会抛出异常:

f:\buildagent\work\6644596b2c4f480d\01_sourcecode\src\geometry\uggeoregion.cpp:334: OGDCASSERT(nIndex>=0 && nIndex<m_PolyCounts.GetSize()) failed.

所以应该用什么方法在一个空的面对象中添加数据呢?

10月 12, 2019 分类:  94次浏览 | 用户: soratomo (7 分)

1个回答

0 投票
 
已采纳
您好,没有子对象,是找不到索引0的子对象的,不能用插入方法,应该使用添加方法,请使用AddSub().
10月 14, 2019 用户: 幸俊 学富五车 (694 分)
采纳于 10月 14, 2019 用户:soratomo
谢谢!用AddSub()果然可以了
...