
Hi all,
I just updated our copy of lib2geom to the latest trunk version (bzr 10025). This greatly helps in improving Inkscape and lib2geom together.
What changed in lib2geom since the last time we updated? Quite an important name change has happened: Geom::Matrix is now called Geom::Affine (to be found in affine.h instead of matrix.h). Some bugs were fixed (but were backported to Inkscape often too), and there are some other name changes. See the list below.
I have not done extensive tests, Inkscape seems to build fine, runs ok, and what I tested (spiro LPE) works fine too. If there are any troubles, let me know.
Cheers, Johan
_______________________________________________________________________ Relevant changes to lib2geom since last update:
Geom::Matrix --> Geom::Affine <2geom/matrix.h> --> <2geom/affine.h>
Geom::Interval::extendTo --> expandTo
Geom::Line::setBy2Points --> setPoints
Geom::Line::origin(Geom::Point) --> setOrigin Geom::Line::versor(Geom::Point) --> setVersor
Geom::Matrix::without_translation --> Geom::Affine::withoutTranslation
Geom::EllipticalArc::rotation_angle --> rotationAngle Geom::EllipticalArc::large_arc_flag --> largeArc Geom::EllipticalArc::sweep_flag --> sweep _______________________________________________________________________

Johan,
It appears that the affine files were not added as a part of the commit.
In file included from arc-context.cpp:26:0: display/sp-canvas.h:38:26: fatal error: 2geom/affine.h: No such file or directory
Cheers, Josh
On Wed, Feb 2, 2011 at 1:26 PM, <J.B.C.Engelen@...1578...> wrote:
Hi all,
I just updated our copy of lib2geom to the latest trunk version (bzr 10025). This greatly helps in improving Inkscape and lib2geom together.
What changed in lib2geom since the last time we updated? Quite an important name change has happened: Geom::Matrix is now called Geom::Affine (to be found in affine.h instead of matrix.h). Some bugs were fixed (but were backported to Inkscape often too), and there are some other name changes. See the list below.
I have not done extensive tests, Inkscape seems to build fine, runs ok, and what I tested (spiro LPE) works fine too. If there are any troubles, let me know.
Cheers, Johan
Relevant changes to lib2geom since last update:
Geom::Matrix --> Geom::Affine <2geom/matrix.h> --> <2geom/affine.h>
Geom::Interval::extendTo --> expandTo
Geom::Line::setBy2Points --> setPoints
Geom::Line::origin(Geom::Point) --> setOrigin Geom::Line::versor(Geom::Point) --> setVersor
Geom::Matrix::without_translation --> Geom::Affine::withoutTranslation
Geom::EllipticalArc::rotation_angle --> rotationAngle Geom::EllipticalArc::large_arc_flag --> largeArc Geom::EllipticalArc::sweep_flag --> sweep _______________________________________________________________________
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d _______________________________________________ Lib2geom-devel mailing list Lib2geom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lib2geom-devel

I added the missing files to inkscape trunk.
Cheers, Josh
On Wed, Feb 2, 2011 at 1:50 PM, Josh Andler <scislac@...400...> wrote:
Johan,
It appears that the affine files were not added as a part of the commit.
In file included from arc-context.cpp:26:0: display/sp-canvas.h:38:26: fatal error: 2geom/affine.h: No such file or directory
Cheers, Josh
On Wed, Feb 2, 2011 at 1:26 PM, <J.B.C.Engelen@...1578...> wrote:
Hi all,
I just updated our copy of lib2geom to the latest trunk version (bzr 10025). This greatly helps in improving Inkscape and lib2geom together.
What changed in lib2geom since the last time we updated? Quite an important name change has happened: Geom::Matrix is now called Geom::Affine (to be found in affine.h instead of matrix.h). Some bugs were fixed (but were backported to Inkscape often too), and there are some other name changes. See the list below.
I have not done extensive tests, Inkscape seems to build fine, runs ok, and what I tested (spiro LPE) works fine too. If there are any troubles, let me know.
Cheers, Johan
Relevant changes to lib2geom since last update:
Geom::Matrix --> Geom::Affine <2geom/matrix.h> --> <2geom/affine.h>
Geom::Interval::extendTo --> expandTo
Geom::Line::setBy2Points --> setPoints
Geom::Line::origin(Geom::Point) --> setOrigin Geom::Line::versor(Geom::Point) --> setVersor
Geom::Matrix::without_translation --> Geom::Affine::withoutTranslation
Geom::EllipticalArc::rotation_angle --> rotationAngle Geom::EllipticalArc::large_arc_flag --> largeArc Geom::EllipticalArc::sweep_flag --> sweep _______________________________________________________________________
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)! Finally, a world-class log management solution at an even better price-free! Download using promo code Free_Logger_4_Dev2Dev. Offer expires February 28th, so secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsight-sfd2d _______________________________________________ Lib2geom-devel mailing list Lib2geom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lib2geom-devel

On 3/2/11 04:17, Josh Andler wrote:
On Wed, Feb 2, 2011 at 1:50 PM, Josh Andler wrote:
On Wed, Feb 2, 2011 at 1:26 PM, <J.B.C.Engelen@...1578...> wrote:
I just updated our copy of lib2geom to the latest trunk version (bzr 10025). This greatly helps in improving Inkscape and lib2geom together.
It appears that the affine files were not added as a part of the commit.
In file included from arc-context.cpp:26:0: display/sp-canvas.h:38:26: fatal error: 2geom/affine.h: No such file or directory
I added the missing files to inkscape trunk.
There seem still some files missing (or need to be added to 'src/2geom/Makefile_insert'?): trying to build r10030 fails when linking inkscape with a lot of 'Undefined symbols' (log attached).
(tested with r10030 on OS X 10.5.8, GCC 4.2.1)
~suv
CXXLD inkscape Undefined symbols: "vtable for Geom::QuadraticBezier", referenced from: __ZTVN4Geom15QuadraticBezierE$non_lazy_ptr in libinkscape.a(curve.o) __ZTVN4Geom15QuadraticBezierE$non_lazy_ptr in lib2geom.a(sbasis-to-bezier.o) __ZTVN4Geom15QuadraticBezierE$non_lazy_ptr in libinkscape.a(svg-path.o) __ZTVN4Geom15QuadraticBezierE$non_lazy_ptr in libinkscape.a(path-manipulator.o) "typeinfo for Geom::QuadraticBezier", referenced from: __ZTIN4Geom15QuadraticBezierE$non_lazy_ptr in libinkscape.a(geom.o) __ZTIN4Geom15QuadraticBezierE$non_lazy_ptr in libinkscape.a(sp-polygon.o) __ZTIN4Geom15QuadraticBezierE$non_lazy_ptr in libinkscape.a(sp-path.o) __ZTIN4Geom15QuadraticBezierE$non_lazy_ptr in libinkscape.a(latex-pstricks.o) __ZTIN4Geom15QuadraticBezierE$non_lazy_ptr in libinkscape.a(odf.o) __ZTIN4Geom15QuadraticBezierE$non_lazy_ptr in libinkscape.a(pov-out.o) __ZTIN4Geom15QuadraticBezierE$non_lazy_ptr in libinkscape.a(inkscape-cairo.o) __ZTIN4Geom15QuadraticBezierE$non_lazy_ptr in libvarot.a(PathCutting.o) __ZTIN4Geom15QuadraticBezierE$non_lazy_ptr in libinkscape.a(svg-path.o) __ZTIN4Geom15QuadraticBezierE$non_lazy_ptr in libinkscape.a(nr-arena-shape.o) __ZTIN4Geom15QuadraticBezierE$non_lazy_ptr in libinkscape.a(lpe-spiro.o) "Geom::LineSegment::nearestPoint(Geom::Point const&, double, double) const", referenced from: vtable for Geom::Path::ClosingSegmentin libinkscape.a(geom.o) vtable for Geom::Path::StitchSegmentin libinkscape.a(geom.o) vtable for Geom::Path::StitchSegmentin lib2geom.a(path.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(curve.o) vtable for Geom::Path::ClosingSegmentin lib2geom.a(sbasis-to-bezier.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(object-snapper.o) vtable for Geom::Path::StitchSegmentin libinkscape.a(object-snapper.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(pencil-context.o) vtable for Geom::Path::ClosingSegmentin libvarot.a(PathCutting.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(svg-path.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(sp-conn-end.o) vtable for Geom::Path::ClosingSegmentin lib2geom.a(circle.o) vtable for Geom::Path::StitchSegmentin lib2geom.a(circle.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(path-manipulator.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-rough-hatches.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-bendpath.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-vonkoch.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-envelope.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-interpolate.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-copy_rotate.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-constructgrid.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-gears.o) vtable for Geom::Path::StitchSegmentin libinkscape.a(lpe-gears.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-extrude.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-curvestitch.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-line_segment.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-knot.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-powerstroke.o) vtable for Geom::Path::ClosingSegmentin lib2geom.a(shape.o) vtable for Geom::Path::StitchSegmentin lib2geom.a(shape.o) "Geom::Curve::allNearestPoints(Geom::Point const&, double, double) const", referenced from: vtable for Geom::Path::ClosingSegmentin libinkscape.a(geom.o) vtable for Geom::Path::StitchSegmentin libinkscape.a(geom.o) vtable for Geom::Path::StitchSegmentin lib2geom.a(path.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(curve.o) vtable for Geom::SVGEllipticalArcin lib2geom.a(sbasis-to-bezier.o) vtable for Geom::VLineSegmentin lib2geom.a(sbasis-to-bezier.o) vtable for Geom::AxisLineSegment<(Geom::Dim2)1>in lib2geom.a(sbasis-to-bezier.o) vtable for Geom::HLineSegmentin lib2geom.a(sbasis-to-bezier.o) vtable for Geom::AxisLineSegment<(Geom::Dim2)0>in lib2geom.a(sbasis-to-bezier.o) vtable for Geom::Path::ClosingSegmentin lib2geom.a(sbasis-to-bezier.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(object-snapper.o) vtable for Geom::Path::StitchSegmentin libinkscape.a(object-snapper.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(pencil-context.o) vtable for Geom::EllipticalArcin lib2geom.a(elliptical-arc.o) vtable for Geom::Path::ClosingSegmentin libvarot.a(PathCutting.o) vtable for Geom::SVGEllipticalArcin libvarot.a(PathCutting.o) vtable for Geom::SVGEllipticalArcin libinkscape.a(svg-path.o) vtable for Geom::VLineSegmentin libinkscape.a(svg-path.o) vtable for Geom::AxisLineSegment<(Geom::Dim2)1>in libinkscape.a(svg-path.o) vtable for Geom::HLineSegmentin libinkscape.a(svg-path.o) vtable for Geom::AxisLineSegment<(Geom::Dim2)0>in libinkscape.a(svg-path.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(svg-path.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(sp-conn-end.o) vtable for Geom::Path::ClosingSegmentin lib2geom.a(circle.o) vtable for Geom::Path::StitchSegmentin lib2geom.a(circle.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(path-manipulator.o) vtable for Geom::SVGEllipticalArcin libinkscape.a(path-manipulator.o) vtable for Geom::VLineSegmentin libinkscape.a(path-manipulator.o) vtable for Geom::AxisLineSegment<(Geom::Dim2)1>in libinkscape.a(path-manipulator.o) vtable for Geom::HLineSegmentin libinkscape.a(path-manipulator.o) vtable for Geom::AxisLineSegment<(Geom::Dim2)0>in libinkscape.a(path-manipulator.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-rough-hatches.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-bendpath.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-vonkoch.o) vtable for Geom::SVGEllipticalArcin lib2geom.a(ellipse.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-envelope.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-interpolate.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-copy_rotate.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-constructgrid.o) vtable for Geom::SVGEllipticalArcin libinkscape.a(lpe-offset.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-gears.o) vtable for Geom::Path::StitchSegmentin libinkscape.a(lpe-gears.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-extrude.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-curvestitch.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-line_segment.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-knot.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-powerstroke.o) vtable for Geom::Path::ClosingSegmentin lib2geom.a(shape.o) vtable for Geom::Path::StitchSegmentin lib2geom.a(shape.o) "vtable for Geom::LineSegment", referenced from: __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(geom.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in lib2geom.a(path.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(curve.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in lib2geom.a(sbasis-to-bezier.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(object-snapper.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(pencil-context.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(snapped-line.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libvarot.a(PathCutting.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in lib2geom.a(line.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(svg-path.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(sp-conn-end.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in lib2geom.a(circle.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(path-manipulator.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(lpe-rough-hatches.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(lpe-bendpath.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(lpe-vonkoch.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in lib2geom.a(ellipse.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(lpe-envelope.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(lpe-interpolate.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(lpe-copy_rotate.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(lpe-constructgrid.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(lpe-offset.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(lpe-gears.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(lpe-extrude.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(lpe-curvestitch.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(lpe-line_segment.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(lpe-knot.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(lpe-powerstroke.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in lib2geom.a(shape.o) __ZTVN4Geom11LineSegmentE$non_lazy_ptr in lib2geom.a(geom.o) "Geom::Curve::length(double) const", referenced from: vtable for Geom::SVGEllipticalArcin lib2geom.a(sbasis-to-bezier.o) vtable for Geom::EllipticalArcin lib2geom.a(elliptical-arc.o) vtable for Geom::SVGEllipticalArcin libvarot.a(PathCutting.o) vtable for Geom::SVGEllipticalArcin libinkscape.a(svg-path.o) vtable for Geom::SVGEllipticalArcin libinkscape.a(path-manipulator.o) vtable for Geom::SVGEllipticalArcin lib2geom.a(ellipse.o) vtable for Geom::SVGEllipticalArcin libinkscape.a(lpe-offset.o) "typeinfo for Geom::LineSegment", referenced from: typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(geom.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)0>in libinkscape.a(geom.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)1>in libinkscape.a(geom.o) typeinfo for Geom::Path::StitchSegmentin libinkscape.a(geom.o) __ZTIN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(geom.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)0>in libinkscape.a(sp-polygon.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)1>in libinkscape.a(sp-polygon.o) __ZTIN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(sp-polygon.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)0>in libinkscape.a(sp-path.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)1>in libinkscape.a(sp-path.o) __ZTIN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(sp-path.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)0>in libinkscape.a(latex-pstricks.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)1>in libinkscape.a(latex-pstricks.o) __ZTIN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(latex-pstricks.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)0>in libinkscape.a(odf.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)1>in libinkscape.a(odf.o) __ZTIN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(odf.o) typeinfo for Geom::Path::StitchSegmentin lib2geom.a(path.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(curve.o) __ZTIN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(curve.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)1>in lib2geom.a(sbasis-to-bezier.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)0>in lib2geom.a(sbasis-to-bezier.o) typeinfo for Geom::Path::ClosingSegmentin lib2geom.a(sbasis-to-bezier.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)0>in libinkscape.a(pov-out.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)1>in libinkscape.a(pov-out.o) __ZTIN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(pov-out.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(object-snapper.o) typeinfo for Geom::Path::StitchSegmentin libinkscape.a(object-snapper.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)0>in libinkscape.a(javafx-out.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)1>in libinkscape.a(javafx-out.o) __ZTIN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(javafx-out.o) __ZTIN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(sp-shape.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(pencil-context.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)0>in libinkscape.a(inkscape-cairo.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)1>in libinkscape.a(inkscape-cairo.o) __ZTIN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(inkscape-cairo.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)0>in libvarot.a(PathCutting.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)1>in libvarot.a(PathCutting.o) typeinfo for Geom::Path::ClosingSegmentin libvarot.a(PathCutting.o) __ZTIN4Geom11LineSegmentE$non_lazy_ptr in libvarot.a(PathCutting.o) typeinfo for Geom::Path::StitchSegmentin libinkscape.a(svg-path.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)0>in libinkscape.a(svg-path.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)1>in libinkscape.a(svg-path.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(svg-path.o) __ZTIN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(svg-path.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(sp-conn-end.o) typeinfo for Geom::Path::ClosingSegmentin lib2geom.a(circle.o) typeinfo for Geom::Path::StitchSegmentin lib2geom.a(circle.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(path-manipulator.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)1>in libinkscape.a(path-manipulator.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)0>in libinkscape.a(path-manipulator.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(lpe-rough-hatches.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(lpe-bendpath.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)0>in libinkscape.a(nr-arena-shape.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)1>in libinkscape.a(nr-arena-shape.o) __ZTIN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(nr-arena-shape.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(lpe-vonkoch.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(lpe-envelope.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(lpe-interpolate.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(lpe-copy_rotate.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(lpe-constructgrid.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)0>in libinkscape.a(lpe-spiro.o) typeinfo for Geom::AxisLineSegment<(Geom::Dim2)1>in libinkscape.a(lpe-spiro.o) __ZTIN4Geom11LineSegmentE$non_lazy_ptr in libinkscape.a(lpe-spiro.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(lpe-gears.o) typeinfo for Geom::Path::StitchSegmentin libinkscape.a(lpe-gears.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(lpe-extrude.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(lpe-curvestitch.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(lpe-line_segment.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(lpe-knot.o) typeinfo for Geom::Path::ClosingSegmentin libinkscape.a(lpe-powerstroke.o) typeinfo for Geom::Path::ClosingSegmentin lib2geom.a(shape.o) typeinfo for Geom::Path::StitchSegmentin lib2geom.a(shape.o) "vtable for Geom::Curve", referenced from: __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(geom.o) __ZTVN4Geom5CurveE$non_lazy_ptr in lib2geom.a(path.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(curve.o) __ZTVN4Geom5CurveE$non_lazy_ptr in lib2geom.a(sbasis-to-bezier.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(object-snapper.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(pencil-context.o) __ZTVN4Geom5CurveE$non_lazy_ptr in lib2geom.a(elliptical-arc.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(snapped-line.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libvarot.a(PathCutting.o) __ZTVN4Geom5CurveE$non_lazy_ptr in lib2geom.a(line.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(svg-path.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(sp-conn-end.o) __ZTVN4Geom5CurveE$non_lazy_ptr in lib2geom.a(circle.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(path-manipulator.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(lpe-rough-hatches.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(lpe-bendpath.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(lpe-vonkoch.o) __ZTVN4Geom5CurveE$non_lazy_ptr in lib2geom.a(ellipse.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(lpe-envelope.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(lpe-interpolate.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(lpe-copy_rotate.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(lpe-constructgrid.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(lpe-offset.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(lpe-gears.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(lpe-extrude.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(lpe-curvestitch.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(lpe-line_segment.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(lpe-knot.o) __ZTVN4Geom5CurveE$non_lazy_ptr in libinkscape.a(lpe-powerstroke.o) __ZTVN4Geom5CurveE$non_lazy_ptr in lib2geom.a(shape.o) __ZTVN4Geom5CurveE$non_lazy_ptr in lib2geom.a(geom.o) "Geom::Curve::unitTangentAt(double, unsigned int) const", referenced from: vtable for Geom::Path::ClosingSegmentin libinkscape.a(geom.o) vtable for Geom::Path::StitchSegmentin libinkscape.a(geom.o) vtable for Geom::Path::StitchSegmentin lib2geom.a(path.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(curve.o) vtable for Geom::SVGEllipticalArcin lib2geom.a(sbasis-to-bezier.o) vtable for Geom::SBasisCurvein lib2geom.a(sbasis-to-bezier.o) vtable for Geom::VLineSegmentin lib2geom.a(sbasis-to-bezier.o) vtable for Geom::AxisLineSegment<(Geom::Dim2)1>in lib2geom.a(sbasis-to-bezier.o) vtable for Geom::HLineSegmentin lib2geom.a(sbasis-to-bezier.o) vtable for Geom::AxisLineSegment<(Geom::Dim2)0>in lib2geom.a(sbasis-to-bezier.o) vtable for Geom::Path::ClosingSegmentin lib2geom.a(sbasis-to-bezier.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(object-snapper.o) vtable for Geom::Path::StitchSegmentin libinkscape.a(object-snapper.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(pencil-context.o) vtable for Geom::EllipticalArcin lib2geom.a(elliptical-arc.o) vtable for Geom::SBasisCurvein lib2geom.a(elliptical-arc.o) vtable for Geom::Path::ClosingSegmentin libvarot.a(PathCutting.o) vtable for Geom::SVGEllipticalArcin libvarot.a(PathCutting.o) vtable for Geom::SBasisCurvein libvarot.a(PathCutting.o) vtable for Geom::SVGEllipticalArcin libinkscape.a(svg-path.o) vtable for Geom::SBasisCurvein libinkscape.a(svg-path.o) vtable for Geom::VLineSegmentin libinkscape.a(svg-path.o) vtable for Geom::AxisLineSegment<(Geom::Dim2)1>in libinkscape.a(svg-path.o) vtable for Geom::HLineSegmentin libinkscape.a(svg-path.o) vtable for Geom::AxisLineSegment<(Geom::Dim2)0>in libinkscape.a(svg-path.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(svg-path.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(sp-conn-end.o) vtable for Geom::Path::ClosingSegmentin lib2geom.a(circle.o) vtable for Geom::SBasisCurvein lib2geom.a(circle.o) vtable for Geom::Path::StitchSegmentin lib2geom.a(circle.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(path-manipulator.o) vtable for Geom::SVGEllipticalArcin libinkscape.a(path-manipulator.o) vtable for Geom::SBasisCurvein libinkscape.a(path-manipulator.o) vtable for Geom::VLineSegmentin libinkscape.a(path-manipulator.o) vtable for Geom::AxisLineSegment<(Geom::Dim2)1>in libinkscape.a(path-manipulator.o) vtable for Geom::HLineSegmentin libinkscape.a(path-manipulator.o) vtable for Geom::AxisLineSegment<(Geom::Dim2)0>in libinkscape.a(path-manipulator.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-rough-hatches.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-bendpath.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-vonkoch.o) vtable for Geom::SVGEllipticalArcin lib2geom.a(ellipse.o) vtable for Geom::SBasisCurvein lib2geom.a(ellipse.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-envelope.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-interpolate.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-copy_rotate.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-constructgrid.o) vtable for Geom::SVGEllipticalArcin libinkscape.a(lpe-offset.o) vtable for Geom::SBasisCurvein libinkscape.a(lpe-offset.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-gears.o) vtable for Geom::SBasisCurvein libinkscape.a(lpe-gears.o) vtable for Geom::Path::StitchSegmentin libinkscape.a(lpe-gears.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-extrude.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-curvestitch.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-line_segment.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-knot.o) vtable for Geom::Path::ClosingSegmentin libinkscape.a(lpe-powerstroke.o) vtable for Geom::Path::ClosingSegmentin lib2geom.a(shape.o) vtable for Geom::Path::StitchSegmentin lib2geom.a(shape.o) "vtable for Geom::BezierCurve", referenced from: __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(geom.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in lib2geom.a(path.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(curve.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in lib2geom.a(sbasis-to-bezier.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(object-snapper.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(pencil-context.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(snapped-line.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libvarot.a(PathCutting.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in lib2geom.a(line.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(svg-path.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(sp-conn-end.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in lib2geom.a(circle.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(path-manipulator.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(lpe-rough-hatches.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(lpe-bendpath.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(lpe-vonkoch.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in lib2geom.a(ellipse.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(lpe-envelope.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(lpe-interpolate.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(lpe-copy_rotate.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(lpe-constructgrid.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(lpe-offset.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(lpe-gears.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(lpe-extrude.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(lpe-curvestitch.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(lpe-line_segment.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(lpe-knot.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in libinkscape.a(lpe-powerstroke.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in lib2geom.a(shape.o) __ZTVN4Geom11BezierCurveE$non_lazy_ptr in lib2geom.a(geom.o) "Geom::bezier_length(Geom::Point, Geom::Point, Geom::Point, Geom::Point, double)", referenced from: Inkscape::UI::Node::_linearGrow(int) in libinkscape.a(node.o) Inkscape::UI::Node::_linearGrow(int) in libinkscape.a(node.o) Inkscape::UI::Node::_linearGrow(int) in libinkscape.a(node.o) Inkscape::UI::Node::_linearGrow(int) in libinkscape.a(node.o) Inkscape::UI::Node::_linearGrow(int) in libinkscape.a(node.o) Inkscape::UI::Node::_linearGrow(int) in libinkscape.a(node.o) "typeinfo for Geom::Curve", referenced from: __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(geom.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(sp-polygon.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(sp-path.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(latex-pstricks.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(odf.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(curve.o) typeinfo for Geom::SBasisCurvein lib2geom.a(sbasis-to-bezier.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(conn-avoid-ref.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(pov-out.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(javafx-out.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(sp-shape.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(pencil-context.o) typeinfo for Geom::EllipticalArcin lib2geom.a(elliptical-arc.o) typeinfo for Geom::SBasisCurvein lib2geom.a(elliptical-arc.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(inkscape-cairo.o) typeinfo for Geom::SBasisCurvein libvarot.a(PathCutting.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libvarot.a(PathCutting.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(eraser-context.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(pen-context.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(dyna-draw-context.o) typeinfo for Geom::SBasisCurvein libinkscape.a(svg-path.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(svg-path.o) typeinfo for Geom::SBasisCurvein lib2geom.a(circle.o) typeinfo for Geom::SBasisCurvein libinkscape.a(path-manipulator.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(path-manipulator.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(nr-arena-shape.o) typeinfo for Geom::SBasisCurvein lib2geom.a(ellipse.o) typeinfo for Geom::SBasisCurvein libinkscape.a(lpe-offset.o) __ZTIN4Geom5CurveE$non_lazy_ptr in libinkscape.a(lpe-spiro.o) typeinfo for Geom::SBasisCurvein libinkscape.a(lpe-gears.o) "vtable for Geom::CubicBezier", referenced from: __ZTVN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(curve.o) __ZTVN4Geom11CubicBezierE$non_lazy_ptr in lib2geom.a(sbasis-to-bezier.o) __ZTVN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(pencil-context.o) __ZTVN4Geom11CubicBezierE$non_lazy_ptr in libvarot.a(PathCutting.o) __ZTVN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(svg-path.o) __ZTVN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(path-manipulator.o) __ZTVN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(lpe-rough-hatches.o) __ZTVN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(lpe-powerstroke.o) "typeinfo for Geom::CubicBezier", referenced from: __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(geom.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(sp-polygon.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(sp-path.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(latex-pstricks.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(odf.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(curve.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(conn-avoid-ref.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(pov-out.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(javafx-out.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(pencil-context.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(inkscape-cairo.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libvarot.a(PathCutting.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(eraser-context.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(pen-context.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(dyna-draw-context.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(svg-path.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(path-manipulator.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(nr-arena-shape.o) __ZTIN4Geom11CubicBezierE$non_lazy_ptr in libinkscape.a(lpe-spiro.o) ld: symbol(s) not found collect2: ld returned 1 exit status make[3]: *** [inkscape] Error 1 make[2]: *** [all] Error 2 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2

On 2/2/11 22:26, J.B.C.Engelen@...1578... wrote:
I have not done extensive tests, Inkscape seems to build fine, runs ok, and what I tested (spiro LPE) works fine too. If there are any troubles, let me know.
tested with r10031 on OS X 10.5.8, default prefs, compared with r10021:
1) select tool transforming with the mouse (stretch, scale, skew) seems broken
2) node tool node-editing of a path with auto-smooth nodes randomly (?) converts un-affected auto-smooth nodes into cusps.
In attached example: - select e.g. an end node and move it: all auto-smooth nodes turn into cusp nodes - now select all nodes (Ctrl+A) and move the selection of nodes (i.e. the whole path): auto-smooth nodes are restored
hth, ~suv

On 4/2/11 06:37, ~suv wrote:
On 2/2/11 22:26, J.B.C.Engelen@...1578... wrote:
I have not done extensive tests, Inkscape seems to build fine, runs ok, and what I tested (spiro LPE) works fine too. If there are any troubles, let me know.
tested with r10031 on OS X 10.5.8, default prefs, compared with r10021:
select tool transforming with the mouse (stretch, scale, skew) seems broken
node tool node-editing of a path with auto-smooth nodes randomly (?) converts un-affected auto-smooth nodes into cusps.
In attached example:
- select e.g. an end node and move it: all auto-smooth nodes turn into cusp nodes
- now select all nodes (Ctrl+A) and move the selection of nodes (i.e. the whole path): auto-smooth nodes are restored
r10032 is nearly unusable - any transformations with the select tool (scale, rotate, stretch, skew) use the wrong reference point and the dragged corner gets completely detached from the position of the mouse pointer. The issue was also confirmed by ScislaC (on irc) with r10032 on Ubuntu.
other issues:
3) Node tool The previously mentioned issue with auto-smooth nodes in the the node tool affects smooth nodes and cusp nodes in paths created with the pen and pencil tool, see 4 and 5) as well.
4) Pencil (freehand) tool Curves drawn as freehand lines with the pencil tools now have cusp nodes with apparently extracted handles though they are not shown in the node tool (in r10021 and 0.48 they use smooth nodes)
5) Pen (bezier) tool Bezier curves drawn with the pen tool have cusp nodes instead of smooth nodes. No handles are displayed when editing the path in the node tool. When moving a node in the node tool or inserting a new node, all segments are turned into straight lines. Unlike described in 2) the handles can't be restored.
~suv

-----Original Message----- From: suv@...2204... [mailto:suv@...2204...] On Behalf Of ~suv Sent: 04 February 2011 16:39 To: Engelen, J.B.C. (Johan) Cc: inkscape-devel@lists.sourceforge.net; Krzysztof Kosiński Subject: Re: [Inkscape-devel] Updated 2geom -- what changed?
On 4/2/11 06:37, ~suv wrote:
On 2/2/11 22:26, J.B.C.Engelen@...1578... wrote:
I have not done extensive tests, Inkscape seems to build fine, runs
ok,
and what I tested (spiro LPE) works fine too. If there are any
troubles,
let me know.
tested with r10031 on OS X 10.5.8, default prefs, compared with
r10021:
select tool transforming with the mouse (stretch, scale, skew) seems broken
node tool node-editing of a path with auto-smooth nodes randomly (?)
converts
un-affected auto-smooth nodes into cusps.
In attached example:
- select e.g. an end node and move it: all auto-smooth nodes turn into cusp nodes
- now select all nodes (Ctrl+A) and move the selection of nodes (i.e. the whole path): auto-smooth nodes are restored
r10032 is nearly unusable - any transformations with the select tool (scale, rotate, stretch, skew) use the wrong reference point and the dragged corner gets completely detached from the position of the mouse pointer.
I temporarily fixed this. It is indeed a bug in 2geom: multiplication of matrices. Geom::Affine const affine(Geom::Translate(-norm) * rel_affine * Geom::Translate(norm) ); changed to Geom::Affine const affine( (Geom::Affine)Geom::Translate(-norm) * rel_affine * (Geom::Affine)Geom::Translate(norm) ); fixes it. Without the casts, the Translate matrices are effectively ignored. Perhaps with the new operator stuff, the compiler reorders the multiplication, Krzystof?
Cheers, Johan

On 4/2/11 23:23, J.B.C.Engelen@...1578... wrote:
-----Original Message----- From: suv@...2204... [mailto:suv@...2204...] On Behalf Of ~suv Sent: 04 February 2011 16:39 To: Engelen, J.B.C. (Johan) Cc: inkscape-devel@lists.sourceforge.net; Krzysztof Kosiński Subject: Re: [Inkscape-devel] Updated 2geom -- what changed?
On 4/2/11 06:37, ~suv wrote:
On 2/2/11 22:26, J.B.C.Engelen@...1578... wrote:
I have not done extensive tests, Inkscape seems to build fine, runs ok, and what I tested (spiro LPE) works fine too. If there are any troubles, let me know.
tested with r10031 on OS X 10.5.8, default prefs, compared with r10021:
select tool transforming with the mouse (stretch, scale, skew) seems broken
node tool node-editing of a path with auto-smooth nodes randomly (?) converts un-affected auto-smooth nodes into cusps.
In attached example:
- select e.g. an end node and move it: all auto-smooth nodes turn into cusp nodes
- now select all nodes (Ctrl+A) and move the selection of nodes (i.e. the whole path): auto-smooth nodes are restored
r10032 is nearly unusable - any transformations with the select tool (scale, rotate, stretch, skew) use the wrong reference point and the dragged corner gets completely detached from the position of the mouse pointer.
I temporarily fixed this. It is indeed a bug in 2geom: multiplication of matrices. Geom::Affine const affine(Geom::Translate(-norm) * rel_affine * Geom::Translate(norm) ); changed to Geom::Affine const affine( (Geom::Affine)Geom::Translate(-norm) * rel_affine * (Geom::Affine)Geom::Translate(norm) ); fixes it. Without the casts, the Translate matrices are effectively ignored. Perhaps with the new operator stuff, the compiler reorders the multiplication, Krzystof?
Thx - r10033 looks better in regard to transformations with the select tool.
The node issue (smooth -> cusp) however remains and apparently affects all path operations:
Simple test case: 1) draw a circle 2) convert to path 3) switch to node tool and move one of the nodes -> circle turns into a polygon
~suv

2011/2/4 <J.B.C.Engelen@...1578...>:
I temporarily fixed this. It is indeed a bug in 2geom: multiplication of matrices. Geom::Affine const affine(Geom::Translate(-norm) * rel_affine * Geom::Translate(norm) ); changed to Geom::Affine const affine( (Geom::Affine)Geom::Translate(-norm) * rel_affine * (Geom::Affine)Geom::Translate(norm) ); fixes it. Without the casts, the Translate matrices are effectively ignored. Perhaps with the new operator stuff, the compiler reorders the multiplication, Krzystof?
Cheers, Johan
Based on the symptoms, I think when you write: trans(-p) * scale(x) * trans(p) it gets reodered to: scale(x) * trans(-p) * trans(p) so the transformation always starts from the origin. Similarly for rotation.
I looked closer at the manual, and it looks like boost::operators contains a hidden assumption that multiplication is commutative, in the sense that for multipliable<T, U> it generates both T * U and U * T. This second case (U * T) causes problems because it uses T *= U for computation, which is of course wrong. I'll write a multiplication operator helper that does not assume commutativity.
Regards, Krzysztof

W dniu 4 lutego 2011 16:38 użytkownik ~suv <suv-sf@...58...> napisał:
- Node tool
- Pencil (freehand) tool
- Pen (bezier) tool
Node tool brokenness should be fixed in 10035, but might creep out in other places that rely on curve classification. Look for dynamic casts to CubicBezier, QuadraticBezier and LineSegmnt to localize them.
I'm going abroad tomorrow morning and won't be able to commit any code in the coming week (until February 14th), so here are some leads if someone wants to fix this before I come back. It looks like dynamic casts to CubicBezier fail for some reason. Either it's some intricate dynamic_cast issue, or pathv_to_linear_and_cubic_beziers (in helper/geom.cpp) does not actually contain CubicBeziers.
Regards, Krzysztof

When compiling (Windows XP SP3, bzr 10032), I get this error:
Make error line 300: problem compiling: src/2geom/conicsec.cpp:36:41: error: 2geom/conic_section_clipper.h: No such file or directory src/2geom/conicsec.cpp: In function 'bool Geom::clip(std::vector<Geom::RatQuad, std::allocatorGeom::RatQuad >&, const Geom::xAx&, const Geom::Rect&)': src/2geom/conicsec.cpp:1545: error: 'clipper' was not declared in this scope src/2geom/conicsec.cpp:1545: error: expected ';' before 'aclipper' src/2geom/conicsec.cpp:1546: error: 'aclipper' was not declared in this scope src/2geom/conicsec.cpp: At global scope: src/2geom/conicsec.cpp:1543: warning: unused parameter 'cs' src/2geom/conicsec.cpp:1543: warning: unused parameter 'R'
It seems there's a missing file. Regards. Luca

On 4/2/11 10:53, LucaDC wrote:
When compiling (Windows XP SP3, bzr 10032), I get this error:
Make error line 300: problem compiling: src/2geom/conicsec.cpp:36:41: error: 2geom/conic_section_clipper.h: No such file or directory src/2geom/conicsec.cpp: In function 'bool Geom::clip(std::vector<Geom::RatQuad, std::allocatorGeom::RatQuad >&, const Geom::xAx&, const Geom::Rect&)': src/2geom/conicsec.cpp:1545: error: 'clipper' was not declared in this scope src/2geom/conicsec.cpp:1545: error: expected ';' before 'aclipper' src/2geom/conicsec.cpp:1546: error: 'aclipper' was not declared in this scope src/2geom/conicsec.cpp: At global scope: src/2geom/conicsec.cpp:1543: warning: unused parameter 'cs' src/2geom/conicsec.cpp:1543: warning: unused parameter 'R'
It seems there's a missing file.
... or it is a file that's not needed: on osx (last build r10032) the file 'src/2geom/conicsec.cpp' doesn't get compiled (used) - if I add it in my local branch to 'Makefile_insert' I get the same errors and Inkscape fails to build.
@Johan or @Krzysztof - could you check it that *.cpp file (added in r10028) is needed or if only its header file needs to be in Inkscape's copy of 2geom?
~suv

W dniu 4 lutego 2011 16:37 użytkownik ~suv <suv-sf@...58...> napisał:
@Johan or @Krzysztof - could you check it that *.cpp file (added in r10028) is needed or if only its header file needs to be in Inkscape's copy of 2geom?
~suv
I think even the header is not necessary right now. Regards, Krzysztof

On 2/2/11 22:26, J.B.C.Engelen@...1578... wrote:
I have not done extensive tests, Inkscape seems to build fine, runs ok, and what I tested (spiro LPE) works fine too. If there are any troubles, let me know.
The calligraphy tool seems broken too, reproduced with Inkscape 0.48+devel r10031 and r10045 on OS X 10.5.8 (i386), default prefs, no tablet:
The path is initially drawn and rendered, but as soon as it is finished, it disappears from the canvas. Related console message:
** (inkscape:79440): WARNING **: Failed to create path: invalid data in dc->cal1 or dc->cal2
Not reproduced with r10019 (local build) and r10021 (dev build from modevia).
Confirmed by simarilius on jabber (linux afaik).
~suv

~suv-2 wrote:
The calligraphy tool seems broken too
** (inkscape:79440): WARNING **: Failed to create path: invalid data in dc->cal1 or dc->cal2
reproduced on Windows XP, rev 10045
Alvin

On 2/2/11 22:26, J.B.C.Engelen@...1578... wrote:
I have not done extensive tests, Inkscape seems to build fine, runs ok, and what I tested (spiro LPE) works fine too. If there are any troubles, let me know.
The eraser tool now causes Inkscape to crash, reproduced with Inkscape 0.48+devel r10031, r10039 and r10045 on OS X 10.5.8 (i386)
** ERROR:eraser-context.cpp:890:void accumulate_eraser(SPEraserContext*): assertion failed: (rev_cal2_firstseg)
Not reproduced with r10019 (local build) and r10021 (dev build from modevia).
Reported by Alvin for r10045 on Windows in Bug #717676 eraser tool crash, rev 10045 https://bugs.launchpad.net/inkscape/+bug/717676
~suv

Hi all,
The crashes in the eraser tool and the calligraphy tool are caused by a quite fundamental change in 2geom, that I learned about just now. I have started a discussion about this on the 2geom maillist. I think we should revert this change in 2geom, but if we do not, it will mean that all code containing "dynamic_castGeom::CubicBezier" and "dynamic_castGeom::QuadBezier" will have to be reviewed and recoded to use the new API. (which is a bit more cumbersome for most Inkscape needs)
I hope we can sort this out soon. I have fixed the calligraphy tool, because it does not need to know the order of the bezier curve. The other bugs will have to wait until we decide about 2geom.
(btw, there are also more covert bugs caused by this. For example, the SVG output is probably different from what it used to be, since all cubic beziers are first converted to another representation (SBasis), and then back to cubic Bezier. The details are a bit involved so I wont explain.)
Ciao, Johan
-----Original Message----- From: suv@...2204... [mailto:suv@...2204...] On Behalf Of ~suv Sent: 12 February 2011 16:03 To: Engelen, J.B.C. (Johan) Cc: inkscape-devel@lists.sourceforge.net; Krzysztof Kosiński Subject: Re: [Inkscape-devel] Updated 2geom -- what changed?
On 2/2/11 22:26, J.B.C.Engelen@...1578... wrote:
I have not done extensive tests, Inkscape seems to build fine, runs
ok,
and what I tested (spiro LPE) works fine too. If there are any
troubles,
let me know.
The eraser tool now causes Inkscape to crash, reproduced with Inkscape 0.48+devel r10031, r10039 and r10045 on OS X 10.5.8 (i386)
** ERROR:eraser-context.cpp:890:void
accumulate_eraser(SPEraserContext*): assertion failed: (rev_cal2_firstseg)
Not reproduced with r10019 (local build) and r10021 (dev build from modevia).
Reported by Alvin for r10045 on Windows in Bug #717676 eraser tool crash, rev 10045 https://bugs.launchpad.net/inkscape/+bug/717676
~suv

J.B.C.Engelen wrote:
For example, the SVG output is probably different from what it used to be, since all cubic beziers are first converted to another representation (SBasis), and then back to cubic Bezier.
wrt the conversion from Bezier to SBasis, and back, I believe these conversions are analytically precise, so they should not cause a lack of precision, other than possibly numerical round-off error. Of course, I could stand to be corrected...
Alvin

-----Original Message----- From: J.B.C.Engelen@...1578... Sent: 12 February 2011 23:35
Hi all,
The crashes in the eraser tool and the calligraphy tool are caused by a quite fundamental change in 2geom, that I learned about just now. I have started a discussion about this on the 2geom maillist. I think we should revert this change in 2geom, but if we do not, it will mean that all code containing "dynamic_castGeom::CubicBezier" and "dynamic_castGeom::QuadBezier" will have to be reviewed and recoded to use the new API. (which is a bit more cumbersome for most Inkscape needs)
I hope we can sort this out soon. I have fixed the calligraphy tool, because it does not need to know the order of the bezier curve. The other bugs will have to wait until we decide about 2geom.
I think we found a good solution in 2geom, many bugs related to 2geom updating should be fixed now.
Ciao, Johan

On 13/2/11 21:55, J.B.C.Engelen@...1578... wrote:
-----Original Message----- From: J.B.C.Engelen@...1578... Sent: 12 February 2011 23:35
The crashes in the eraser tool and the calligraphy tool are caused by a quite fundamental change in 2geom, that I learned about just now. I have started a discussion about this on the 2geom maillist. I think we should revert this change in 2geom, but if we do not, it will mean that all code containing "dynamic_castGeom::CubicBezier" and "dynamic_castGeom::QuadBezier" will have to be reviewed and recoded to use the new API. (which is a bit more cumbersome for most Inkscape needs)
I hope we can sort this out soon. I have fixed the calligraphy tool, because it does not need to know the order of the bezier curve. The other bugs will have to wait until we decide about 2geom.
I think we found a good solution in 2geom, many bugs related to 2geom updating should be fixed now.
Confirmed with Inkscape 0.48+devel r10050 on OS X 10.5.8 (i386): Both the calligraphy tool and the eraser no longer fail or trigger a crash.
Thank you for the prompt response and fix!
~suv
participants (6)
-
unknown@example.com
-
Alvin Penner
-
Josh Andler
-
Krzysztof Kosiński
-
LucaDC
-
~suv