使用产品: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.
所以应该用什么方法在一个空的面对象中添加数据呢?