![]() |
【转帖】page dimensions calculation 9slow0
page dimensions calculation (slow)
page dimensions calculation (slow) hello support, i'm using following code to calculate physical page dimensions: oddblayoutptr playoutptr = layoutfrompage( npage ); if( !playoutptr.isnull() ) { oddbextents ext; //slow execution code ext.addblockext( oddbblocktablerecordptr(playoutptr->getblocktablerecordid().safeopenobject()) ); dpaperwidth = ext.maxpoint().x - ext.minpoint().x; dpaperheight = ext.maxpoint().y - ext.minpoint().y; } applying following code for the attached imported dwf image causes slow exectution of addblockext method. could you please let me know if there some other methods exists to perform much faster page size calculation. thank you in advance! vasyl. attached files addblockextents() actually performs regen of block geometry to calculate extents. layout has getextmin() and getextmax() functions returning cached values of layout extents. sergey slezkin hi all, i would like to use the addblockext with 1.13. i can compile correctly a piece of code like: double extsx = 0.0; double extsy = 0.0; odgsview* pview = pdevice->viewat(0); oddbextents ext; ext.addblockext(oddbblocktablerecordptr(pdb->getactivelayoutbtrid().safeopenobject()), pview->viewingmatrix()); if (ext.isvalidextents()) { // get the extents extsx = ext.maxpoint().x - ext.minpoint().x; extsy = ext.maxpoint().y - ext.minpoint().y; } but when linking i get the link error: error lnk2001: unresolved external symbol "public: void __thiscall oddbextents::addblockext(class oddbblocktablerecord const *,class odgematrix3d c onst &)" (?addblockext@oddbextents@@qaexpbvoddbblocktablere cord@@abvodgematrix3d @@@z) fatal error lnk1120: 1 unresolved externals i searched for the symbol addblockext in all the 1.13 lib files without success. any idea ? oddbextents class was removed in 1.13 so you are compiling your code with 1.12 header. you can use oddbblocktablerecord::getgeomextents() oddbblockreference::getgeomextents() abstractviewpe::viewextents() the last one is method of protocol extension which can be used to deal with all view-related classes (oddbviewport, oddbviewporttablerecord, oddbviewtablerecord, odgsview) in the same manner. sergey slezkin thanks, sergey. the oddbblocktablerecord::getgeomextents() worked perfectly ! regards, ciro |
所有的时间均为北京时间。 现在的时间是 01:40 PM. |