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