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

adjustviewport method
adjustviewport method
hi,
we have 1.12.01 code that uses the adjustviewport method of oddbabstractviewportdata. how should this be modified in 1.14?
thanks.
hi,
please, use
void odabstractviewpe::setview(odrxobject* pdestinationview, const odrxobject* psourceview) const
instead. odabstractviewpe is a base class for the oddbabstractviewportdata.
thanks for your reply! can i use the same setview method to replace adjustviewportrec?
hi,
yes, you can use it like that:
code:
oddbviewporttablerecordptr pvp = ...; // obtain db view
odgsviewptr pview = ...; // obtain corresponding gs view
odabstractviewpeptr pabstrviewpe;
pabstrviewpe = pview; // get pe from gs view
pabstrviewpe->setview(pview, pvp); // to gs view
pabstrviewpe = pvp; // get pe from db view
pabstrviewpe->setview(pvp, pview); // from gs view
hi,
thanks for your reply but i am still a bit confused as to how to use it. i am kind of new to this and i am maintaining existing code. the existing code is as below:
oddbdatabaseptr m_cadptr = oddbhostappservices->readfile();
oddbobjectid viewtableid = m_cadptr->getviewtableid();
oddbviewtableptr pviewtable = viewtableid.safeopenobject();
oddbsymboltableiteratorptr viewiter = pviewtable->newiterator();
oddbobjectid viewrecordid = viewiter->getrecordid();
oddbviewtablerecordptr pviewrecord = viewrecordid.openobject();
oddbviewporttableptr vptabl = m_cadptr->getviewporttableid().safeopenobject();
oddbviewporttablerecordptr vp = vptabl->getactiveviewportid().safeopenobject(oddb::kforwr ite);
oddbabstractviewportdataptr pdbviewport = oddbabstractviewportdata::cast(pviewrecord);
pdbviewport->adjustviewportrec(pviewrecord,vp);
how do i rewrite the usage of "adjustviewportrec"? thank you for your help.
hi,
just replace last 2 lines with new ones to get equivalent new code:
oddbabstractviewportdataptr pdbviewport(vp);
pdbviewport->setview(vp, pviewrecord); // restores view settings <=> pdbviewport->adjustviewportrec(pviewrecord,vp);
but if this code is an analog of restoring named view in autocad you also need to add this:
pdbviewport->setucs(vp, pviewrecord); // restores ucs settings
pdbviewport->setprops(vp, pviewrecord); // restores other setting (e.g. grid settings)
// restore layer states (ac2005 feature):
odstring slsname = pviewrecord->getlayerstate();
if(!slsname.isempty())
{
oddblayerstate::restore(pdb, slsname,
oddblayerstate::kundefdonothing, oddblayerstate::kon|oddblayerstate::kfrozen);
}
see cnamedviewsdlg:nsetcurrentbutton() in namedviewsdlg.cpp in odamfcapp example for details.
last edited by dmitry a. novikov; 6th february 2006 at 01:15 amfff">.
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)