Difference between revisions of "CheatSheetForConvertingto2geom"

From Inkscape Wiki
Jump to navigation Jump to search
m (add error)
(beautification)
Line 1: Line 1:
'''Cheat Sheet For Converting to 2geom'''
+
=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.
 
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::'''
+
==Items That you Can Switch NR:: for Geom::==
  
 +
* <code>NR::Matrix</code>
 +
* <code>NR::Rect</code>
 +
* <code>NR::Dim2</code>
 +
* <code>NR::L2</code>
 +
* <code>NR::Y</code>
 +
* <code>NR::X</code>
 +
* <code>NR::identify</code>
 +
* <code>NR::Coord</code>
  
 
+
==Things that need small adjustments or complete replacement==
{| class="prettytable" border="1"
 
| 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'''
 
  
  
Line 46: Line 25:
 
|-
 
|-
 
|  
 
|  
| NR::scale
+
| <code>NR::scale</code>
| Geom::Scale (note the capital letter S)
+
| <code>Geom::Scale</code> (note the capital letter S)
  
 
|-
 
|-
 
|  
 
|  
| NR::translate
+
| <code>NR::translate</code>
| Geom::Translate (capital)
+
| <code>Geom::Translate</code> (capital)
  
 
|-
 
|-
 
|  
 
|  
| nrrect.extent(NR::X)
+
| <code>nrrect.extent(NR::X)</code>
| <nowiki>geomrect.dimensions()[Geom::X] </nowiki>'''OR'''
+
| <code><nowiki>geomrect.dimensions()[Geom::X]</nowiki></code> '''OR'''
  
<nowiki>geomRect[X].extent()</nowiki>
+
<code><nowiki>geomRect[X].extent()</nowiki></code>
  
 
|-
 
|-
 
|  
 
|  
| height= r->extent(NR::Y);
+
| <code>height = r->extent(NR::Y);</code>
| <nowiki>height= r->dimensions()[Geom::Y];</nowiki>
+
| <code><nowiki>height = r->dimensions()[Geom::Y];</nowiki></code>
  
 
|-
 
|-
 
|  
 
|  
| NR::expansion(nrmatrix)
+
| <code>NR::expansion(nrmatrix)</code>
| geommatrix.descrim()
+
| <code>geommatrix.descrim()</code>
  
 
|-
 
|-
 
| desktop.cpp:754: error: 'expand' is not a member of 'Geom'
 
| desktop.cpp:754: error: 'expand' is not a member of 'Geom'
| NR::Rect const viewbox = NR::expand(canvas->getViewbox(), border);
+
| <code>NR::Rect const viewbox = NR::expand(canvas->getViewbox(), border);</code>
 
 
  
  
| Geom::Rect viewbox = canvas->getViewbox();
 
  
viewbox.expandBy(border);
+
| <code>Geom::Rect viewbox = canvas->getViewbox();</code>
 +
<code>viewbox.expandBy(border);</code>
  
 
|-
 
|-
 
| desktop.cpp:162: error: 'class Geom::Matrix' has no member named 'set_identity'
 
| desktop.cpp:162: error: 'class Geom::Matrix' has no member named 'set_identity'
| Mymatrix = set_identity (Nrmatrix)  
+
| <code>Mymatrix = set_identity (Nrmatrix)</code>
| identity(Nrmatrix) '''OR'''
+
| <code>identity(Nrmatrix)</code> '''OR'''
  
matrix.setIdentity()
+
<code>matrix.setIdentity()</code>
  
 
|-
 
|-
Line 96: Line 74:
  
 
<nowiki>'boost::optional<Geom::D2<Geom::Interval> >' requested</nowiki>
 
<nowiki>'boost::optional<Geom::D2<Geom::Interval> >' requested</nowiki>
| <nowiki>boost::optional<NR::Rect></nowiki>
+
| <code><nowiki>boost::optional<NR::Rect></nowiki></code>
| <nowiki>boost::optional<Geom::Rect></nowiki>
+
| <code><nowiki>boost::optional<Geom::Rect></nowiki></code>
  
 
|-
 
|-
 
| <nowiki>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 </nowiki>
 
| <nowiki>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 </nowiki>
| <nowiki>if ( !d || d->isEmpty(0.1) ) {
+
| <pre><nowiki>if ( !d || d->isEmpty(0.1) ) {
 
+
    return;
return;
 
 
 
 
}
 
}
</nowiki>
+
</nowiki></pre>
 
 
 
 
| if ( !d
 
 
 
<nowiki>|| d->width() < 0.1</nowiki>
 
 
 
<nowiki>|| d->height() < 0.1</nowiki>
 
 
 
)
 
  
 +
| <pre><nowiki> if ( !d
 +
    || d->width() < 0.1
 +
    || d->height() < 0.1)
 
{
 
{
 
+
    return;
return;
+
}</pre>
 
 
}
 
  
 
|-
 
|-
 
| display/nr-arena-item.cpp:734: error: ‘const class Geom::Matrix’ has no member named ‘test_identity’
 
| display/nr-arena-item.cpp:734: error: ‘const class Geom::Matrix’ has no member named ‘test_identity’
| NR::
+
| <code>NR::matrix.test_identity()</code>
 
+
| <code>local.isIdentity()</code>
matrix.test_identity()
 
| local.isIdentity()
 
  
 
|-
 
|-
Line 138: Line 104:
  
 
|-
 
|-
| Geom::Rotate doesn't seem have a operator/ what is the trick for turning division in to multiplication, again
+
| <code>Geom::Rotate</code> doesn't seem have a operator/ what is the trick for turning division in to multiplication, again
| r1/r2
+
| <code>r1/r2</code>
| r1 * r2.inverse()
+
| <code>r1 * r2.inverse()</code>
  
 
|-
 
|-
 
|  
 
|  
| NR::Rect's can be changed to Geom::Rect But it is better not to do this.
+
| <code>NR::Rect</code>'s can be changed to <code>Geom::Rect</code> But it is better not to do this.
| geomrect = to_2geom(nrrect)
+
| <code>geomrect = to_2geom(nrrect)</code>
  
 
|-
 
|-
 
|  
 
|  
| NR::union_bounds()
+
| <code>NR::union_bounds()</code>
| Geom::unify()
+
| <code>Geom::unify()</code>
  
 
|-
 
|-
 
| sp-item.cpp:814: error: ‘expansionX’ is not a member of ‘Geom’
 
| sp-item.cpp:814: error: ‘expansionX’ is not a member of ‘Geom’
| dy0 *= NR::expansionY(i2d);
+
| <code>dy0 *= NR::expansionY(i2d);</code>
dx0 *= NR::expansionX(i2d);
+
<code>dx0 *= NR::expansionX(i2d);</code>
| dy0 *= i2d.expansionY();
+
| <code>dy0 *= i2d.expansionY();</code>
dx0 *= i2d.expansionX();
+
<code>dx0 *= i2d.expansionX();</code>
 
 
 
|-
 
|-
 
| sp-item.cpp:1447: error: ‘const class Geom::Matrix’ has no member named ‘is_translation’
 
| 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())
+
| <code>!(!transform.is_translation() && SP_OBJECT_STYLE(item) && SP_OBJECT_STYLE(item)->getFilter())</code>
| !(!transform.isTranslation() && SP_OBJECT_STYLE(item) && SP_OBJECT_STYLE(item)->getFilter())
+
| <code>!(!transform.isTranslation() && SP_OBJECT_STYLE(item) && SP_OBJECT_STYLE(item)->getFilter())</code>
  
 
|-
 
|-
 
| text-context.cpp:1610: error: no matching function for call to ‘to_2geom(boost::optional<Geom::D2<Geom::Interval> >)’
 
| 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));
+
| <code><nowiki>boost::optional<Geom::Rect> frame_bbox = to_2geom(sp_item_bbox_desktop(frame));</nowiki></code>
| boost::optional<Geom::Rect> frame_bbox = sp_item_bbox_desktop(frame);
+
| <code><nowiki>boost::optional<Geom::Rect> frame_bbox = sp_item_bbox_desktop(frame);</nowiki></code>
  
 
|}
 
|}

Revision as of 01:20, 16 October 2008

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.

Items That you Can Switch NR:: for Geom::

  • 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;
}
<nowiki> 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);