![]() |
【转帖】vectorizing 3d Solids
vectorizing 3d solids
vectorizing 3d solids hello all, i am trying to vectorize a 3dsolid, but i never get shell information/face/mesh, however all 2d line/polyline vectorization is correct. i notice that the m_rendermode is optimized 2d, but even if i change this, it still only produces outlines. my code is a follows : header ------------ class vectorizer : public odgigeometrysimplifier, public odgsbasevectorizeview { public: vectorizer() { //setfilltype(kodgifillalways); odgigeometrysimplifier::m_rendermode = kgouraudshadedwithwireframe; odgsbasevectorizeview::m_rendermode = kgouraudshadedwithwireframe; }; virtual void polylineout(odint32 n, const odgepoint3d* pts); virtual void polygonout(odint32 nbpoints, const odgepoint3d *pvertexlist, const odgevector3d *pnormal = 0); virtual void meshproc(odint32 rows, odint32 columns, const odgepoint3d* vertexlist, const odgiedgedata* pedgedata = 0, const odgifacedata* pfacedata = 0, const odgivertexdata* pvertexdata = 0) { {..} }; virtual void triangleout(const odint32* vertices, const odgevector3d* pnormal) { {..} } virtual void facetout(const odint32* facelist, const odint32* edgeindices, const odgevector3d* pnormal) { {..} }; void setgmtryent(csmplptr apgmtry) { m_apgmtry = apgmtry;}; void setldr(copendwgptr apldr) { m_apldr = apldr;}; private: bool m_btris; csmplptr m_apgmtry; copendwgptr m_apldr; }; end of header ---------------- using it as follows : oddb3dsolidptr od3dsolidptr = odentptr; odstaticrxobject<vectorizer> dv; dv.setgmtryent(ap3dsolid); dv.setldr(this); odstaticrxobject<odgicontextfordbdatabase> gicontext; gicontext.setdatabase(od3dsolidptr->database()); dv.setdrawcontext(&dv); dv.setcontext(&gicontext); dv.output().setdestgeometry(dv); dv.beginviewvectorization(); dv.draw(od3dsolidptr); dv.endviewvectorization(); ------------------------------------------- thanx in advance for your help cheers jason |
| 所有的时间均为北京时间。 现在的时间是 05:21 AM. |