几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   DirectDWG (http://www.dimcax.com/hust/forumdisplay.php?f=89)
-   -   【转帖】mesh returns faces in any order (http://www.dimcax.com/hust/showthread.php?t=17194)

yang686526 2009-05-06 05:44 PM

【转帖】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">.


所有的时间均为北京时间。 现在的时间是 04:27 PM.