CheatSheetForConvertingto2geom

From Inkscape Wiki
Revision as of 20:29, 30 September 2008 by Verbalshadow (talk | contribs)
Jump to navigation Jump to search
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
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;

}

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()