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">.