CheatSheetForConvertingto2geom
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Cheat Sheet For Converting to 2geom
If you are just starting I suggest you pick a header file and convert just one function at a time. That will give you a feel for the process as you get more comfortable do more at one time.
ItemsThat you Can Switch NR:: for Geom::
NR::Point |
NR::Matrix |
NR::Rect |
NR::Dim2 |
NR::L2 |
NR::Y |
NR::X |
NR::identify |
NR::Coord |
Things that need small adjustments or Complete replacement
Error looks like | NR Function or Code | 2geom Replacement |
NR::scale | Geom::Scale (note the capital letter S) | |
NR::translate | Geom::Translate (capital) | |
nrrect.extent(NR::X) | geomrect.dimensions()[Geom::X] OR
geomRect[X].extent() | |
height= r->extent(NR::Y); | height= r->dimensions()[Geom::Y]; | |
NR::expansion(nrmatrix) | geommatrix.descrim() | |
desktop.cpp:754: error: 'expand' is not a member of 'Geom' | NR::Rect const viewbox = NR::expand(canvas->getViewbox(), border);
|
Geom::Rect viewbox = canvas->getViewbox();
viewbox.expandBy(border); |
desktop.cpp:162: error: 'class Geom::Matrix' has no member named 'set_identity' | Mymatrix = set_identity (Nrmatrix) | identity(Nrmatrix) OR
matrix.setIdentity() |
desktop.cpp: In member function 'bool SPDesktop::isWithinViewport(SPItem*) const':
desktop.cpp:532: error: conversion from 'boost::optional<NR::Rect>' to non-scalar type 'boost::optional<Geom::D2<Geom::Interval> >' requested |
boost::optional<NR::Rect> | boost::optional<Geom::Rect> |
desktop.cpp:1004: error: no matching function for call to 'Geom::D2<Geom::Interval>::isEmpty(double)' ./2geom/rect.h:105: note: candidates are: bool Geom::D2<Geom::Interval>::isEmpty() const | if ( !d || d->isEmpty(0.1) ) {
return;
}
|
if ( !d
|| d->width() < 0.1 || d->height() < 0.1 ) { return; } |
display/nr-arena-item.cpp:734: error: ‘const class Geom::Matrix’ has no member named ‘test_identity’ | NR::
matrix.test_identity() |
local.isIdentity() |
selection-chemistry.cpp:1424: error: no match for ‘operator[]’ in ‘center[X]’
center is a boost::optional<Geom::Point> |
you're missing the * | |
Geom::Rotate doesn't seem have a operator/ what is the trick for turning division in to multiplication, again | r1/r2 | r1 * r2.inverse() |
NR::Rect's can be changed to Geom::Rect But it is better not to do this. | geomrect = to_2geom(nrrect) | |
NR::union_bounds() | Geom::unify() | |
sp-item.cpp:814: error: ‘expansionX’ is not a member of ‘Geom’ | dy0 *= NR::expansionY(i2d);
dx0 *= NR::expansionX(i2d); |
dy0 *= i2d.expansionY();
dx0 *= i2d.expansionX(); |
sp-item.cpp:1447: error: ‘const class Geom::Matrix’ has no member named ‘is_translation’ | !(!transform.is_translation() && SP_OBJECT_STYLE(item) && SP_OBJECT_STYLE(item)->getFilter()) | !(!transform.isTranslation() && SP_OBJECT_STYLE(item) && SP_OBJECT_STYLE(item)->getFilter()) |
text-context.cpp:1610: error: no matching function for call to ‘to_2geom(boost::optional<Geom::D2<Geom::Interval> >)’ | boost::optional<Geom::Rect> frame_bbox = to_2geom(sp_item_bbox_desktop(frame)); | boost::optional<Geom::Rect> frame_bbox = sp_item_bbox_desktop(frame); |