Inkscape
Vector Graphics Editor
|
Sequence of subpaths. More...
#include <pathvector.h>
Public Types | |
typedef PathVectorTime | Position |
typedef Sequence::iterator | iterator |
typedef Sequence::const_iterator | const_iterator |
typedef Sequence::size_type | size_type |
typedef Path | value_type |
typedef Path & | reference |
typedef Path const & | const_reference |
typedef Path * | pointer |
typedef std::ptrdiff_t | difference_type |
Public Member Functions | |
PathVector () | |
PathVector (Path const &p) | |
template<typename InputIter > | |
PathVector (InputIter first, InputIter last) | |
bool | empty () const |
Check whether the vector contains any paths. | |
size_type | size () const |
Get the number of paths in the vector. | |
size_type | curveCount () const |
Get the total number of curves in the vector. | |
iterator | begin () |
iterator | end () |
const_iterator | begin () const |
const_iterator | end () const |
Path & | operator[] (size_type index) |
Path const & | operator[] (size_type index) const |
Path & | at (size_type index) |
Path const & | at (size_type index) const |
Path & | front () |
Path const & | front () const |
Path & | back () |
Path const & | back () const |
void | push_back (Path const &path) |
Append a path at the end. | |
void | pop_back () |
Remove the last path. | |
iterator | insert (iterator pos, Path const &p) |
template<typename InputIter > | |
void | insert (iterator out, InputIter first, InputIter last) |
iterator | erase (iterator i) |
Remove a path from the vector. | |
iterator | erase (iterator first, iterator last) |
Remove a range of paths from the vector. | |
void | clear () |
Remove all paths from the vector. | |
void | resize (size_type n) |
Change the number of paths. | |
void | reverse (bool reverse_paths=true) |
Reverse the direction of paths in the vector. | |
PathVector | reversed (bool reverse_paths=true) const |
Get a new vector with reversed direction of paths. | |
Interval | timeRange () const |
Get the range of allowed time values. | |
Point | initialPoint () const |
Get the first point in the first path of the vector. | |
Point | finalPoint () const |
Get the last point in the last path of the vector. | |
std::vector< PathVectorIntersection > | intersectSelf (Coord precision=EPSILON) const |
Get all intersections of the path-vector with itself. | |
Path & | pathAt (Coord t, Coord *rest=NULL) |
Path const & | pathAt (Coord t, Coord *rest=NULL) const |
Curve const & | curveAt (Coord t, Coord *rest=NULL) const |
Coord | valueAt (Coord t, Dim2 d) const |
Point | pointAt (Coord t) const |
Path & | pathAt (PathVectorTime const &pos) |
Path const & | pathAt (PathVectorTime const &pos) const |
Curve const & | curveAt (PathVectorTime const &pos) const |
Point | pointAt (PathVectorTime const &pos) const |
Coord | valueAt (PathVectorTime const &pos, Dim2 d) const |
OptRect | boundsFast () const |
OptRect | boundsExact () const |
template<typename T > | |
BOOST_CONCEPT_REQUIRES (((TransformConcept< T >)),(PathVector &)) operator* | |
bool | operator== (PathVector const &other) const |
void | snapEnds (Coord precision=EPSILON) |
std::vector< PVIntersection > | intersect (PathVector const &other, Coord precision=EPSILON) const |
int | winding (Point const &p) const |
Determine the winding number at the specified point. | |
std::optional< PathVectorTime > | nearestTime (Point const &p, Coord *dist=NULL) const |
std::vector< PathVectorTime > | allNearestTimes (Point const &p, Coord *dist=NULL) const |
std::vector< Point > | nodes () const |
Private Types | |
typedef std::vector< Path > | Sequence |
Private Member Functions | |
PathVectorTime | _factorTime (Coord t) const |
Private Attributes | |
Sequence | _data |
Sequence of subpaths.
This class corresponds to the SVG notion of a path: a sequence of any number of open or closed contiguous subpaths. Unlike Path, this class is closed under boolean operations.
If you want to represent an arbitrary shape, this is the best class to use. Shapes with a boundary that is composed of only a single contiguous component can be represented with Path instead.
Definition at line 112 of file pathvector.h.
typedef Sequence::const_iterator Geom::PathVector::const_iterator |
Definition at line 127 of file pathvector.h.
typedef Path const& Geom::PathVector::const_reference |
Definition at line 131 of file pathvector.h.
typedef std::ptrdiff_t Geom::PathVector::difference_type |
Definition at line 133 of file pathvector.h.
typedef Sequence::iterator Geom::PathVector::iterator |
Definition at line 126 of file pathvector.h.
typedef Path* Geom::PathVector::pointer |
Definition at line 132 of file pathvector.h.
Definition at line 125 of file pathvector.h.
typedef Path& Geom::PathVector::reference |
Definition at line 130 of file pathvector.h.
|
private |
Definition at line 123 of file pathvector.h.
typedef Sequence::size_type Geom::PathVector::size_type |
Definition at line 128 of file pathvector.h.
typedef Path Geom::PathVector::value_type |
Definition at line 129 of file pathvector.h.
|
inline |
Definition at line 135 of file pathvector.h.
Referenced by Inkscape::DrawingGlyphs::setGlyph().
|
inline |
Definition at line 136 of file pathvector.h.
|
inline |
Definition at line 140 of file pathvector.h.
|
private |
Definition at line 297 of file pathvector.cpp.
References _data, Geom::PathTime::curve_index, Geom::PathVectorTime::path_index, size(), and Geom::PathTime::t.
Referenced by curveAt(), pathAt(), pointAt(), and valueAt().
std::vector< PathVectorTime > Geom::PathVector::allNearestTimes | ( | Point const & | p, |
Coord * | dist = NULL |
||
) | const |
Definition at line 262 of file pathvector.cpp.
References Geom::PathTime::curve_index, Geom::infinity(), size(), and Geom::PathTime::t.
Definition at line 161 of file pathvector.h.
References _data, Geom::Path::at(), and index.
Referenced by curveAt(), curveAt(), Inkscape::LivePathEffect::LPEKnot::doEffect_path(), Inkscape::LivePathEffect::LPEFilletChamfer::doEffect_path(), pathAt(), pathAt(), pointAt(), pointAt(), valueAt(), and valueAt().
Definition at line 164 of file pathvector.h.
References _data, Geom::Path::at(), and index.
|
inline |
Definition at line 169 of file pathvector.h.
References _data, and Geom::Path::back().
Referenced by SPHatchPath::_readHatchPathVector(), SPCurve::append(), SPCurve::append_continuous(), SPCurve::backspace(), SPCurve::closepath(), SPCurve::closepath_current(), SPCurve::curveto(), Inkscape::LivePathEffect::LPEEmbroderyStitch::doEffect_path(), Inkscape::LivePathEffect::LPETransform2Pts::doOnApply(), Inkscape::UI::Tools::MarkerTool::get_marker_transform(), SPShape::get_markers(), SPCurve::last_path(), SPCurve::last_point(), SPCurve::last_point_additive_move(), SPCurve::last_segment(), SPCurve::lineto(), Path::MakePathVector(), pathv_to_cubicbezier(), pathv_to_linear(), pathv_to_linear_and_cubic_beziers(), SPCurve::penultimate_point(), SPCurve::quadto(), and Tracer::Splines::Splines().
|
inline |
Definition at line 170 of file pathvector.h.
References _data, and Geom::Path::back().
|
inline |
Definition at line 151 of file pathvector.h.
References _data.
Referenced by Inkscape::UI::PathManipulator::_createControlPointsFromGeometry(), Inkscape::UI::PathManipulator::_createGeometryFromControlPoints(), Inkscape::UI::PathManipulator::_updateOutline(), SPCurve::append(), SPCurve::append_continuous(), approxCurveWithPoints(), boundsExact(), boundsFast(), cairo_path(), cairo_path(), cairo_path_stitches(), cairo_path_stitches(), Inkscape::do_offset(), Inkscape::LivePathEffect::LPEBool::doEffect(), Inkscape::LivePathEffect::LPEEmbroderyStitch::doEffect_path(), Inkscape::LivePathEffect::LPEJoinType::doEffect_path(), Inkscape::LivePathEffect::LPEMirrorSymmetry::doEffect_path(), Inkscape::LivePathEffect::LPEOffset::doEffect_path(), Inkscape::LivePathEffect::LPEPts2Ellipse::doEffect_path(), Inkscape::LivePathEffect::LPEShowHandles::doEffect_path(), Inkscape::LivePathEffect::LPECopyRotate::doEffect_path_post(), Inkscape::LivePathEffect::LPETiling::doEffect_path_post(), Inkscape::UI::Tools::MarkerTool::get_marker_transform(), SPShape::get_markers(), Geom::PathIntersectionGraph::getXOR(), Inkscape::Extension::Internal::PrintEmf::pathv_to_simple_polygon(), reverse(), reversed(), and Inkscape::LivePathEffect::LPESlice::splititem().
|
inline |
Definition at line 153 of file pathvector.h.
References _data.
|
inline |
Definition at line 254 of file pathvector.h.
References empty().
OptRect Geom::PathVector::boundsExact | ( | ) | const |
Definition at line 119 of file pathvector.cpp.
References begin(), Geom::Path::boundsExact(), empty(), end(), front(), and Geom::GenericOptRect< C >::unionWith().
Referenced by Inkscape::Drawing::averageColor(), Geom::bounds_exact(), SPMeshNodeArray::fill_box(), main(), pathv_fully_contains(), Inkscape::LivePathEffect::LPEInterpolate::resetDefaults(), and wrap_path().
OptRect Geom::PathVector::boundsFast | ( | ) | const |
Definition at line 107 of file pathvector.cpp.
References begin(), Geom::Path::boundsFast(), empty(), end(), front(), and Geom::GenericOptRect< C >::unionWith().
Referenced by Geom::bounds_fast(), Inkscape::do_offset(), Inkscape::LivePathEffect::LPEPatternAlongPath::doBeforeEffect(), Inkscape::LivePathEffect::LPETiling::doEffect_path_post(), Inkscape::LivePathEffect::LPEOffset::get_default_point(), Inkscape::UI::Tools::get_paths(), pathvs_have_nonempty_overlap(), Inkscape::UI::Tools::SprayTool::root_handler(), and wrap_path().
|
inline |
Remove all paths from the vector.
Definition at line 195 of file pathvector.h.
References _data.
Referenced by Geom::PathIntersectionGraph::_getResult(), Geom::PathBuilder::clear(), Inkscape::LivePathEffect::LPEMeasureSegments::createLine(), Inkscape::do_offset(), Inkscape::LivePathEffect::LPEBendPath::doBeforeEffect(), Inkscape::LivePathEffect::LPEBool::doBeforeEffect(), Inkscape::LivePathEffect::LPEBSpline::doBeforeEffect(), Inkscape::LivePathEffect::LPEKnot::doBeforeEffect(), Inkscape::LivePathEffect::LPEOffset::doBeforeEffect(), Inkscape::LivePathEffect::LPEPatternAlongPath::doBeforeEffect(), Inkscape::LivePathEffect::LPESimplify::doBeforeEffect(), Inkscape::LivePathEffect::LPETaperStroke::doBeforeEffect(), Inkscape::LivePathEffect::LPEFilletChamfer::doEffect_path(), Inkscape::LivePathEffect::LPEMirrorSymmetry::doEffect_path(), Inkscape::LivePathEffect::LPEOffset::doEffect_path(), Inkscape::LivePathEffect::LPEPowerStroke::doEffect_path(), Inkscape::LivePathEffect::LPEShowHandles::doEffect_path(), Inkscape::LivePathEffect::PathParam::param_readSVGValue(), SPCurve::reset(), Inkscape::UI::Tools::SprayTool::root_handler(), Inkscape::LivePathEffect::LPESlice::splititem(), and Inkscape::LivePathEffect::NodeSatelliteArrayParam::updateCanvasIndicators().
Definition at line 88 of file pathvector.cpp.
References _factorTime(), Geom::Path::at(), at(), Geom::PathTime::curve_index, Geom::PathVectorTime::path_index, and Geom::PathTime::t.
Referenced by Inkscape::LivePathEffect::NodeSatelliteArrayParam::updateCanvasIndicators().
|
inline |
Definition at line 240 of file pathvector.h.
References Geom::Path::at(), at(), Geom::PathTime::curve_index, and Geom::PathVectorTime::path_index.
PathVector::size_type Geom::PathVector::curveCount | ( | ) | const |
Get the total number of curves in the vector.
Definition at line 45 of file pathvector.cpp.
Referenced by Inkscape::LivePathEffect::LPEMeasureSegments::doBeforeEffect(), SPCurve::get_segment_count(), item_to_outline(), main(), pathv_similar(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and timeRange().
|
inline |
Check whether the vector contains any paths.
Definition at line 145 of file pathvector.h.
References _data.
Referenced by Inkscape::UI::Tools::PencilTool::_addFreehandPoint(), Inkscape::UI::PathManipulator::_createControlPointsFromGeometry(), Inkscape::UI::PathManipulator::_createGeometryFromControlPoints(), SPHatchPath::_readHatchPathVector(), Inkscape::Extension::Internal::SvgBuilder::_shouldClip(), Inkscape::CanvasItemBpath::_update(), SPCurve::append(), BOOST_CONCEPT_REQUIRES(), bounds_exact_transformed(), boundsExact(), boundsFast(), SPCurve::closepath(), Inkscape::UI::Tools::MeasureTool::createAngleDisplayCurve(), Geom::MonoCrosser::crossings(), Geom::crossings_among(), SPCurve::curveto(), Inkscape::Extension::Internal::PrintEmf::do_clip_if_present(), Inkscape::do_offset(), Inkscape::LivePathEffect::LPEBSpline::doBeforeEffect(), Inkscape::LivePathEffect::LPEFilletChamfer::doBeforeEffect(), Inkscape::LivePathEffect::LPESimplify::doBeforeEffect(), Inkscape::LivePathEffect::LPETaperStroke::doBeforeEffect(), Inkscape::LivePathEffect::LPETransform2Pts::doBeforeEffect(), Inkscape::LivePathEffect::LPEAttachPath::doEffect(), Inkscape::LivePathEffect::LPEBool::doEffect(), Inkscape::LivePathEffect::LPEFillBetweenMany::doEffect(), Inkscape::LivePathEffect::LPEFillBetweenStrokes::doEffect(), Inkscape::LivePathEffect::LPEInterpolate::doEffect_path(), Inkscape::LivePathEffect::LPEOffset::doEffect_path(), Inkscape::LivePathEffect::LPEPowerClip::doEffect_path(), Inkscape::LivePathEffect::LPEPowerStroke::doEffect_path(), Inkscape::LivePathEffect::LPEShowHandles::doEffect_path(), Inkscape::LivePathEffect::LPEVonKoch::doEffect_path(), Inkscape::LivePathEffect::LPECopyRotate::doEffect_path_post(), Inkscape::LivePathEffect::LPEEnvelope::doEffect_pwd2(), Inkscape::LivePathEffect::LPELattice2::doEffect_pwd2(), Inkscape::LivePathEffect::LPEPatternAlongPath::doEffect_pwd2(), Inkscape::LivePathEffect::LPEPowerStroke::doOnApply(), Inkscape::LivePathEffect::LPETransform2Pts::doOnApply(), feed_pathvector_to_cairo(), feed_pathvector_to_cairo(), SPShape::get_markers(), Inkscape::LivePathEffect::LPEBool::get_union(), SPCurve::is_empty(), SPCurve::lineto(), Inkscape::LivePathEffect::PathParam::linked_modified_callback(), FontInstance::LoadGlyph(), main(), Inkscape::Extension::Internal::PrintEmf::merge_PathVector_with_shape(), Inkscape::LivePathEffect::PathParam::param_editOncanvas(), Geom::PathIntersectionGraph::PathIntersectionGraph(), pathv_matrix_point_bbox_wind_distance(), SPShape::print(), Inkscape::Extension::Internal::PrintEmf::print_pathv(), Inkscape::Extension::Internal::PrintWmf::print_pathv(), Inkscape::Extension::Internal::PrintLatex::print_pathvector(), SPCurve::quadto(), PathVectorNodeSatellites::recalculateForNewPathVector(), SvgFont::render_glyph_path(), Inkscape::Extension::Internal::CairoRenderer::renderHatchPath(), Inkscape::LivePathEffect::LPETransform2Pts::reset(), Inkscape::LivePathEffect::PathParam::set_new_value(), Inkscape::UI::Tools::MeasureTool::setLine(), Inkscape::LivePathEffect::PathArrayParam::setPathVector(), Inkscape::UI::Tools::MeasureTool::setPoint(), SPShape::snappoints(), Inkscape::Extension::Internal::sp_shape_render(), Inkscape::LivePathEffect::NodeSatelliteArrayParam::updateCanvasIndicators(), and Inkscape::LivePathEffect::LPETransform2Pts::updateIndex().
|
inline |
Definition at line 152 of file pathvector.h.
References _data.
Referenced by Inkscape::UI::PathManipulator::_createControlPointsFromGeometry(), Inkscape::UI::PathManipulator::_createGeometryFromControlPoints(), Inkscape::UI::PathManipulator::_updateOutline(), SPCurve::append(), SPCurve::append_continuous(), approxCurveWithPoints(), boundsExact(), boundsFast(), cairo_path(), cairo_path(), cairo_path_stitches(), cairo_path_stitches(), Inkscape::do_offset(), SPSymbol::documentExactBounds(), Inkscape::LivePathEffect::LPEBool::doEffect(), Inkscape::LivePathEffect::LPEEmbroderyStitch::doEffect_path(), Inkscape::LivePathEffect::LPEJoinType::doEffect_path(), Inkscape::LivePathEffect::LPEMirrorSymmetry::doEffect_path(), Inkscape::LivePathEffect::LPEOffset::doEffect_path(), Inkscape::LivePathEffect::LPEPts2Ellipse::doEffect_path(), Inkscape::LivePathEffect::LPEShowHandles::doEffect_path(), Inkscape::LivePathEffect::LPECopyRotate::doEffect_path_post(), Inkscape::LivePathEffect::LPETiling::doEffect_path_post(), Inkscape::UI::Tools::MarkerTool::get_marker_transform(), SPShape::get_markers(), Inkscape::UI::Tools::get_paths(), Geom::PathIntersectionGraph::getXOR(), Inkscape::Extension::Internal::PrintEmf::pathv_to_simple_polygon(), reverse(), reversed(), and Inkscape::LivePathEffect::LPESlice::splititem().
|
inline |
Definition at line 154 of file pathvector.h.
References _data.
Remove a range of paths from the vector.
Definition at line 191 of file pathvector.h.
References _data.
Remove a path from the vector.
Definition at line 187 of file pathvector.h.
References _data.
Referenced by Inkscape::UI::PathManipulator::_createControlPointsFromGeometry(), Inkscape::UI::PathManipulator::_createGeometryFromControlPoints(), and Geom::PathIntersectionGraph::_getResult().
|
inline |
Get the last point in the last path of the vector.
This method will throw an exception if the vector doesn't contain any paths.
Definition at line 222 of file pathvector.h.
References _data.
Referenced by Inkscape::LivePathEffect::LPEFillBetweenMany::doEffect(), Inkscape::LivePathEffect::LPECircleWithRadius::doEffect_path(), Inkscape::LivePathEffect::LPELineSegment::doEffect_path(), Inkscape::LivePathEffect::LPETransform2Pts::doOnApply(), and Inkscape::LivePathEffect::LPETransform2Pts::reset().
|
inline |
Definition at line 167 of file pathvector.h.
References _data, and Geom::Path::front().
Referenced by bounds_exact_transformed(), boundsExact(), boundsFast(), Inkscape::Extension::Internal::PovOutput::doCurve(), Inkscape::LivePathEffect::LPEAttachPath::doEffect(), Inkscape::LivePathEffect::LPEFillBetweenMany::doEffect(), Inkscape::LivePathEffect::LPEFillBetweenStrokes::doEffect(), Inkscape::LivePathEffect::LPEVonKoch::doEffect_path(), SPCurve::first_path(), SPCurve::first_point(), SPCurve::first_segment(), SPShape::get_markers(), is_simple_rect(), main(), SPCurve::move_endpoints(), Inkscape::LivePathEffect::VonKochRefPathParam::param_readSVGValue(), Inkscape::LivePathEffect::path_from_piecewise_fix_cusps(), Geom::path_from_sbasis(), SPCurve::second_point(), and SPCurve::stretch_endpoints().
|
inline |
Definition at line 168 of file pathvector.h.
References _data, and Geom::Path::front().
|
inline |
Get the first point in the first path of the vector.
This method will throw an exception if the vector doesn't contain any paths.
Definition at line 217 of file pathvector.h.
References _data.
Referenced by Inkscape::LivePathEffect::LPEAngleBisector::doEffect_path(), Inkscape::LivePathEffect::LPECircle3Pts::doEffect_path(), Inkscape::LivePathEffect::LPECircleWithRadius::doEffect_path(), Inkscape::LivePathEffect::LPELineSegment::doEffect_path(), Inkscape::LivePathEffect::LPETransform2Pts::doOnApply(), Inkscape::LivePathEffect::LPETransform2Pts::reset(), and SPCurve::second_point().
|
inline |
Definition at line 183 of file pathvector.h.
References _data.
Definition at line 179 of file pathvector.h.
References _data.
Referenced by Inkscape::do_offset(), SPSymbol::documentExactBounds(), Inkscape::LivePathEffect::LPEBool::doEffect(), Inkscape::LivePathEffect::LPEJoinType::doEffect_path(), Inkscape::LivePathEffect::LPEMirrorSymmetry::doEffect_path(), Inkscape::LivePathEffect::LPEOffset::doEffect_path(), Inkscape::LivePathEffect::LPEPts2Ellipse::doEffect_path(), Inkscape::LivePathEffect::LPEShowHandles::doEffect_path(), Inkscape::LivePathEffect::LPECopyRotate::doEffect_path_post(), Inkscape::LivePathEffect::LPETiling::doEffect_path_post(), Inkscape::UI::Tools::get_paths(), and Inkscape::LivePathEffect::LPESlice::splititem().
std::vector< PVIntersection > Geom::PathVector::intersect | ( | PathVector const & | other, |
Coord | precision = EPSILON |
||
) | const |
Definition at line 219 of file pathvector.cpp.
References Geom::Sweeper< SweepSet >::process(), and result.
Referenced by Geom::PathIntersectionGraph::_prepareIntersectionLists(), Inkscape::ObjectSnapper::_snapPathsConstrained(), pathv_fully_contains(), pathvector_cut(), and sp_pathvector_boolop().
std::vector< PathVectorIntersection > Geom::PathVector::intersectSelf | ( | Coord | precision = EPSILON | ) | const |
Get all intersections of the path-vector with itself.
This includes both self-intersections of constituent paths and intersections between different paths.
Definition at line 293 of file self-intersect.cpp.
References Geom::Sweeper< SweepSet >::process(), and result.
Referenced by flattened(), pathvector_cut(), and sp_pathvector_boolop().
std::optional< PathVectorTime > Geom::PathVector::nearestTime | ( | Point const & | p, |
Coord * | dist = NULL |
||
) | const |
Definition at line 242 of file pathvector.cpp.
References Geom::PathTime::curve_index, Geom::infinity(), size(), and Geom::PathTime::t.
Referenced by Inkscape::UI::PathManipulator::_updateDragPoint(), Inkscape::CanvasItemBpath::closest_distance_to(), Inkscape::LivePathEffect::get_nearest_point(), Inkscape::LivePathEffect::PowerStrokePointArrayParam::knot_reposition(), and Inkscape::LivePathEffect::LPEOffset::sp_get_offset().
std::vector< Point > Geom::PathVector::nodes | ( | ) | const |
Definition at line 285 of file pathvector.cpp.
References result, and size().
Referenced by bbox_on_rect_clip(), pathv_fully_contains(), and pathvs_have_nonempty_overlap().
|
inline |
Definition at line 263 of file pathvector.h.
References _data.
Definition at line 155 of file pathvector.h.
Definition at line 158 of file pathvector.h.
Definition at line 76 of file pathvector.cpp.
References pathAt().
Referenced by Inkscape::LivePathEffect::PowerStrokePointArrayParamKnotHolderEntity::knot_set(), pathAt(), and pathAt().
Definition at line 80 of file pathvector.cpp.
References _factorTime(), at(), Geom::PathTime::curve_index, Geom::PathVectorTime::path_index, and Geom::PathTime::t.
|
inline |
Definition at line 234 of file pathvector.h.
References pathAt().
|
inline |
Definition at line 237 of file pathvector.h.
References at(), and Geom::PathVectorTime::path_index.
Definition at line 101 of file pathvector.cpp.
References _factorTime(), Geom::Path::at(), at(), Geom::PathTime::curve_index, Geom::PathVectorTime::path_index, Geom::Curve::pointAt(), and Geom::PathTime::t.
Referenced by Geom::PathIntersectionGraph::_assignEdgeWindingParities(), Inkscape::UI::PathManipulator::_updateDragPoint(), Inkscape::UI::Tools::calculate_intersections(), Inkscape::LivePathEffect::LPEMeasureSegments::doBeforeEffect(), Inkscape::LivePathEffect::LPEAngleBisector::doEffect_path(), Inkscape::LivePathEffect::LPECircle3Pts::doEffect_path(), Inkscape::LivePathEffect::get_nearest_point(), Inkscape::LivePathEffect::FilletChamferKnotHolderEntity::knot_set(), pathv_similar(), Inkscape::UI::Tools::MeasureTool::showCanvasItems(), and Geom::split_bounds().
|
inline |
Definition at line 243 of file pathvector.h.
References Geom::Path::at(), at(), Geom::PathTime::curve_index, Geom::PathVectorTime::path_index, Geom::Curve::pointAt(), and Geom::PathTime::t.
|
inline |
|
inline |
Append a path at the end.
Definition at line 172 of file pathvector.h.
References _data.
Referenced by Inkscape::Extension::Internal::SvgBuilder::_shouldClip(), Inkscape::ObjectSnapper::_snapPathsConstrained(), Inkscape::UI::PathManipulator::_updateOutline(), Inkscape::LivePathEffect::LPETiling::addCanvasIndicators(), Inkscape::LivePathEffect::LPECopyRotate::addCanvasIndicators(), Inkscape::LivePathEffect::LPEMirrorSymmetry::addCanvasIndicators(), Inkscape::LivePathEffect::LPESlice::addCanvasIndicators(), Inkscape::LivePathEffect::LPETransform2Pts::addCanvasIndicators(), SPCurve::append(), SPCurve::append_continuous(), Inkscape::SubItem::build_mosaic(), change_endpts(), Inkscape::clean_pathvector(), Inkscape::UI::Tools::MeasureTool::createAngleDisplayCurve(), Inkscape::LivePathEffect::LPEMeasureSegments::createLine(), Inkscape::do_offset(), Inkscape::LivePathEffect::LPEVonKoch::doBeforeEffect(), Inkscape::LivePathEffect::LPEMeasureSegments::doBeforeEffect(), Inkscape::LivePathEffect::LPETaperStroke::doBeforeEffect(), Inkscape::LivePathEffect::LPEAttachPath::doEffect(), Inkscape::LivePathEffect::LPEBoundingBox::doEffect(), Inkscape::LivePathEffect::LPEFillBetweenMany::doEffect(), Inkscape::LivePathEffect::LPEFillBetweenStrokes::doEffect(), Inkscape::LivePathEffect::LPEKnot::doEffect_path(), LPEToy::doEffect_path(), Inkscape::LivePathEffect::Effect::doEffect_path(), Inkscape::LivePathEffect::LPEEllipse5Pts::doEffect_path(), Inkscape::LivePathEffect::LPEConstructGrid::doEffect_path(), Inkscape::LivePathEffect::LPECopyRotate::doEffect_path(), Inkscape::LivePathEffect::LPECurveStitch::doEffect_path(), Inkscape::LivePathEffect::LPEEmbroderyStitch::doEffect_path(), Inkscape::LivePathEffect::LPEFilletChamfer::doEffect_path(), Inkscape::LivePathEffect::LPEGears::doEffect_path(), Inkscape::LivePathEffect::LPEInterpolate::doEffect_path(), Inkscape::LivePathEffect::LPEInterpolatePoints::doEffect_path(), Inkscape::LivePathEffect::LPELineSegment::doEffect_path(), Inkscape::LivePathEffect::LPEMirrorSymmetry::doEffect_path(), Inkscape::LivePathEffect::LPEPowerStroke::doEffect_path(), Inkscape::LivePathEffect::LPEShowHandles::doEffect_path(), Inkscape::LivePathEffect::LPEVonKoch::doEffect_path(), Inkscape::LivePathEffect::LPETaperStroke::doEffect_simplePath(), Inkscape::LivePathEffect::LPEShowHandles::drawHandle(), Inkscape::LivePathEffect::LPESimplify::drawHandle(), Inkscape::LivePathEffect::LPEShowHandles::drawHandleLine(), Inkscape::LivePathEffect::LPESimplify::drawHandleLine(), Inkscape::LivePathEffect::LPESimplify::drawNode(), Inkscape::LivePathEffect::LPEShowHandles::drawNode(), edges_to_paths(), Geom::PathIntersectionGraph::fragments(), Inkscape::LivePathEffect::LPEPts2Ellipse::gen_axes_paths(), Inkscape::LivePathEffect::LPEPts2Ellipse::gen_iso_frame_paths(), Inkscape::LivePathEffect::LPEPts2Ellipse::gen_perspective_axes_paths(), Inkscape::LivePathEffect::LPEPts2Ellipse::gen_perspective_frame_paths(), Inkscape::LivePathEffect::LPESimplify::generateHelperPathAndSmooth(), Inkscape::LivePathEffect::LPEPts2Ellipse::genFitEllipse(), Inkscape::LivePathEffect::LPEPts2Ellipse::genIsometricEllipse(), Inkscape::LivePathEffect::LPEPts2Ellipse::genPerspectiveEllipse(), Inkscape::LivePathEffect::LPEPts2Ellipse::genSteinerEllipse(), Inkscape::LivePathEffect::LPEPowerClip::getClipPathvector(), SPClipPath::getPathVector(), item_to_outline_add_marker_child(), Path::MakePathVector(), SPCurve::moveto(), Inkscape::LivePathEffect::Parameter::param_higlight(), pathv_to_cubicbezier(), pathv_to_linear(), pathv_to_linear_and_cubic_beziers(), Inkscape::Extension::Internal::PrintMetafile::rect_cutter(), Inkscape::LivePathEffect::LPEInterpolate::resetDefaults(), Inkscape::LivePathEffect::LPEVonKoch::resetDefaults(), reversed(), Inkscape::LivePathEffect::LPERuler::ruler_mark(), Inkscape::UI::Tools::MeasureTool::setLine(), Inkscape::UI::Tools::MeasureTool::showCanvasItems(), Inkscape::LivePathEffect::sp_bspline_do_effect(), Inkscape::LivePathEffect::sp_get_recursive_pathvector(), Tracer::Splines::Splines(), SPCurve::split(), Inkscape::LivePathEffect::LPECopyRotate::split(), Inkscape::split_non_intersecting_paths(), Inkscape::LivePathEffect::LPESlice::splititem(), and Tracer::worker().
|
inline |
Change the number of paths.
If the vector size increases, it is passed with paths that contain only a degenerate closing segment at (0,0).
Definition at line 199 of file pathvector.h.
References _data.
Referenced by Inkscape::ObjectSet::_pathBoolOp().
void Geom::PathVector::reverse | ( | bool | reverse_paths = true | ) |
Reverse the direction of paths in the vector.
reverse_paths | If this is true, the order of paths is reversed as well; otherwise each path is reversed, but their order in the PathVector stays the same |
Definition at line 54 of file pathvector.cpp.
References begin(), and end().
Referenced by Inkscape::LivePathEffect::LPETiling::doEffect_path_post(), SPCurve::reverse(), and wrap_path().
PathVector Geom::PathVector::reversed | ( | bool | reverse_paths = true | ) | const |
Get a new vector with reversed direction of paths.
reverse_paths | If this is true, the order of paths is reversed as well; otherwise each path is reversed, but their order in the PathVector stays the same |
Definition at line 64 of file pathvector.cpp.
References begin(), end(), and push_back().
Referenced by Inkscape::LivePathEffect::LPEMirrorSymmetry::doEffect_path(), main(), SPCurve::reversed(), Inkscape::LivePathEffect::LPESlice::splititem(), and wrap_path().
|
inline |
Get the number of paths in the vector.
Definition at line 147 of file pathvector.h.
References _data.
Referenced by Geom::PathIntersectionGraph::_assignEdgeWindingParities(), _factorTime(), Geom::PathIntersectionGraph::_getResult(), Geom::PathIntersectionGraph::_handleNonintersectingPaths(), Geom::PathIntersectionGraph::_prepareIntersectionLists(), allNearestTimes(), bbox_on_rect_clip(), Geom::MonoCrosser::crossings(), Geom::crossings_among(), Inkscape::LivePathEffect::LPEFilletChamfer::doBeforeEffect(), Inkscape::LivePathEffect::LPEMeasureSegments::doBeforeEffect(), Inkscape::LivePathEffect::LPETaperStroke::doBeforeEffect(), Inkscape::LivePathEffect::Effect::doBeforeEffect_impl(), Inkscape::LivePathEffect::LPEKnot::doEffect_path(), Inkscape::LivePathEffect::LPECurveStitch::doEffect_path(), Inkscape::LivePathEffect::LPEEmbroderyStitch::doEffect_path(), Inkscape::LivePathEffect::LPEInterpolate::doEffect_path(), Inkscape::LivePathEffect::LPEMirrorSymmetry::doEffect_path(), Inkscape::LivePathEffect::LPEPowerStroke::doEffect_path(), Inkscape::LivePathEffect::LPEVonKoch::doEffect_path(), Geom::PathIntersectionGraph::fragments(), PathVectorNodeSatellites::getTotalNodeSatellites(), is_simple_rect(), item_to_outline(), item_to_paths(), Inkscape::LivePathEffect::PowerStrokePointArrayParamKnotHolderEntity::knot_set(), Path::LoadPathVector(), main(), nearestTime(), nodes(), SPShape::numberOfMarkers(), SPMeshNodeArray::outline_path(), Inkscape::LivePathEffect::VonKochRefPathParam::param_readSVGValue(), PathVectorNodeSatellites::recalculateForNewPathVector(), Inkscape::LivePathEffect::LPEInterpolate::resetDefaults(), SPCurve::second_point(), Geom::PathIntersectionGraph::size(), snapEnds(), sp_conn_get_route_and_redraw(), Inkscape::UI::Tools::spdc_check_for_and_apply_waiting_LPE(), Inkscape::LivePathEffect::LPECopyRotate::split(), Geom::split_bounds(), Inkscape::LivePathEffect::LPESlice::splititem(), string_to_path(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().
Definition at line 131 of file pathvector.cpp.
References size().
|
inline |
Get the range of allowed time values.
Definition at line 212 of file pathvector.h.
References curveCount().
Definition at line 96 of file pathvector.cpp.
References _factorTime(), Geom::Path::at(), at(), Geom::PathTime::curve_index, Geom::PathVectorTime::path_index, Geom::PathTime::t, and Geom::Curve::valueAt().
|
inline |
Definition at line 246 of file pathvector.h.
References Geom::Path::at(), at(), Geom::PathTime::curve_index, Geom::PathVectorTime::path_index, Geom::PathTime::t, and Geom::Curve::valueAt().
int Geom::PathVector::winding | ( | Point const & | p | ) | const |
Determine the winding number at the specified point.
This is simply the sum of winding numbers for constituent paths.
Definition at line 232 of file pathvector.cpp.
Referenced by Geom::PathIntersectionGraph::_assignEdgeWindingParities(), Geom::PathIntersectionGraph::_handleNonintersectingPaths(), Inkscape::CanvasItemBpath::contains(), Inkscape::SubItem::contains(), pathv_fully_contains(), pathvs_have_nonempty_overlap(), and Inkscape::LivePathEffect::LPEOffset::sp_get_offset().
|
private |
Definition at line 283 of file pathvector.h.
Referenced by _factorTime(), at(), at(), back(), back(), begin(), begin(), clear(), empty(), end(), end(), erase(), erase(), finalPoint(), front(), front(), initialPoint(), insert(), insert(), operator==(), operator[](), operator[](), pop_back(), push_back(), resize(), and size().