高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】can i use oddbpolygonmesh to create an solid 3d from a conve
can i use oddbpolygonmesh to create an solid 3d from a conve
can i use oddbpolygonmesh to create an solid 3d from a convex polygon such as lshape?
i just wonder if i can use oddbpolygonmesh to create a solid 3d lshape. in odwriteex sample, oddbpolygonmesh is used for a none-convex polygon.
thanks.
oddbpolygonmesh is a 3d surface. it's specified by array of vertices (mxn)
sergey slezkin
i try to create a solid 3d polyhedron lshape with this code
code:
void dbfiller::addlshape(const oddbobjectid& btrid)
{
oddbblocktablerecordptr bbtr = btrid.safeopenobject(oddb::kforwrite);
oddbpolygonmeshptr pmesh = oddbpolygonmesh::createobject();
pmesh->setdatabasedefaults(bbtr->database());
bbtr->appendoddbentity(pmesh);
int msize = 2, nsize = 6;
pmesh->setmsize(msize);
pmesh->setnsize(nsize);
// start profile (6 vertices)
odgepoint3d point1 = odgepoint3d(0.0, 0.0, 0.0);
odgepoint3d point2 = odgepoint3d(0.0, 10.0, 0.0);
odgepoint3d point3 = odgepoint3d(4.0, 10.0, 0.0);
odgepoint3d point4 = odgepoint3d(4.0, 4.0, 0.0);
odgepoint3d point5 = odgepoint3d(10.0, 4.0, 0.0);
odgepoint3d point6 = odgepoint3d(10.0, 0.0, 0.0);
// end profile (6 vertices)
odgepoint3d point7 = odgepoint3d(0.0, 0.0, 10.0);
odgepoint3d point8 = odgepoint3d(0.0, 10.0, 10.0);
odgepoint3d point9 = odgepoint3d(4.0, 10.0, 10.0);
odgepoint3d point10 = odgepoint3d(4.0, 4.0, 10.0);
odgepoint3d point11 = odgepoint3d(10.0, 4.0, 10.0);
odgepoint3d point12 = odgepoint3d(10.0, 0.0, 10.0);
appendpgmeshvertex(pmesh, point1);
appendpgmeshvertex(pmesh, point2);
appendpgmeshvertex(pmesh, point3);
appendpgmeshvertex(pmesh, point4);
appendpgmeshvertex(pmesh, point5);
appendpgmeshvertex(pmesh, point6);
appendpgmeshvertex(pmesh, point7);
appendpgmeshvertex(pmesh, point8);
appendpgmeshvertex(pmesh, point9);
appendpgmeshvertex(pmesh, point10);
appendpgmeshvertex(pmesh, point11);
appendpgmeshvertex(pmesh, point12);
pmesh->makenclosed();
}
when i view it in autocad with gouround shaded, it is not a solid 3d because it misses 2 polygons (the start polygon with 6 vertices and the end polygon with 6 vertices). any idea, to fix the problem?
thank very much.
last edited by hnguyen; 14th august 2007 at 01:43 pmfff">.
each face of polygon mesh has 4 vertices (if 2 of them coincide it's a triangle).
number of faces is (m-1)x(n-1) if mesh is not closed or mxn if it's closed in both directions.
vertices is array mxn.
the 4 corners of the face are defined by the vertices with indices:
m,n
m+1, n
m+1, n+1
m, n+1
in your example (m=2, not closed; n=6, closed)
you defined 6 faces.
sergey slezkin
|