查看单个帖子
旧 2009-05-06, 05:44 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】mesh returns faces in any order

mesh returns faces in any order..
mesh returns faces in any order..
hi all,
please see attached dwg file.
it has single solid, i am using decomposetosave() to generate polyfacemesh out of it.
it is returning me valid number of polyfacemeshes..
but for one face with 10 vertices, which is top face, the oddbpolyfacemeshptr::vertexiterator() returns faces in some odd order..
i mean to say that, adjacent oddbfacerecordptr don't share any vertex.
what i understood is that adjacent faces should share at least one vertex(or vertex index).
but in this case few adjacent faces don't share vertex(or vertex index)..
suppose you have oddbpolyfacemeshptr ppoly which has 10 faces..
odarray<int> facevertexindex;
odarray<float> vertexarray;
odgepoint3d point;
oddbobjectiteratorptr piter = ppoly->vertexiterator();
for(;!piter->done();piter->step())
{
//retrieve vertices
oddbpolyfacemeshvertexptr pvertex = piter->entity()->queryx(oddbpolyfacemeshvertex::desc());
if (!pvertex.isnull())
{
point = pvertex->position();
for(int i=0;i<3;++i)
vertexarray.push_back(point[i]);
}
//retrive vertex index information
oddbfacerecordptr pface = piter->entity()->queryx(oddbfacerecord::desc());
if (!pface.isnull())
{
facevertexindex.push_back(pface->getvertexat(0));
facevertexindex.push_back(pface->getvertexat(1));
facevertexindex.push_back(pface->getvertexat(2));
}
}
if you see facevertexindex, adjacent faces don't always share one vertex..
is this acceptable? or there is some problem??
thanks for your help..
attached files
hi,
each face triangulates separately.
vertexes shouldn't be doubled inside one face. but this isn't critical and mesh will be valid in any case.
adjacent faces can be at any position in face array. not only at next...
i didnt' find any problem with your test file.
last edited by arumjantsev; 2nd september 2008 at 12:19 amfff">.
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)