10#ifndef INKSCAPE_LPE_EMBRODERY_STITCH_ORDERING_H
11#define INKSCAPE_LPE_EMBRODERY_STITCH_ORDERING_H
16namespace LivePathEffect {
17namespace LPEEmbroderyStitchOrdering {
73 void FindNearest2(
const std::vector<OrderingInfoEx *> &infos);
96 beg(infoIn.begOrig, this, true),
97 end(infoIn.endOrig, this, false),
105 void MakeGroup(std::vector<OrderingInfoEx *> &infos, std::vector<OrderingGroup *> *groups);
254 std::vector<OrderingInfoEx *>
items;
302void OrderingZigZag(std::vector<OrderingInfo> &infos,
bool revfirst);
Two-dimensional point that doubles as a vector.
double Coord
Floating point type used to store coordinates.
Angle distance(Angle const &a, Angle const &b)
void OrderingOriginal(std::vector< OrderingInfo > &infos)
void OrderingClosest(std::vector< OrderingInfo > &infos, bool revfirst)
void OrderingZigZag(std::vector< OrderingInfo > &infos, bool revfirst)
void OrderingAdvanced(std::vector< OrderingInfo > &infos, int nDims)
Helper class to stream background task notifications as a series of messages.
void Connect(int index, OrderingGroupPoint *point)
OrderingGroupConnection(OrderingGroupPoint *fromIn, OrderingGroupPoint *toIn, int indexIn)
OrderingGroupPoint * points[2]
static bool Compare(const OrderingGroupNeighbor &a, const OrderingGroupNeighbor &b)
OrderingGroupPoint * point
OrderingGroupConnection * connection
OrderingGroupNeighbor * FindNearestUnused()
OrderingGroupPoint * GetOtherEndConnection()
std::vector< OrderingGroupNeighbor > nearest
OrderingGroupPoint(const Geom::Point &pointIn, OrderingGroup *groupIn, int indexIn, bool beginIn, bool frontIn)
OrderingGroupPoint * GetAltPointGroup()
OrderingGroupPoint * GetOtherEndGroup()
OrderingGroup(int indexIn)
void UnusePoint(int index)
OrderingGroupPoint * UsePoint(int index)
OrderingGroupPoint * endpoints[4]
std::vector< OrderingInfoEx * > items
void AddNeighbors(OrderingGroup *nghb)
void MakeGroup(std::vector< OrderingInfoEx * > &infos, std::vector< OrderingGroup * > *groups)
std::vector< int > origIndices
void AddToGroup(std::vector< OrderingInfoEx * > &infos, OrderingGroup *group)
OrderingInfoEx(const OrderingInfo &infoIn, int idxIn)
Geom::Point GetBegOrig() const
Geom::Point GetBegRev() const
Geom::Point GetEndRev() const
Geom::Point GetEndOrig() const
void EnforceSymmetric(const OrderingPoint &other)
bool IsNearestValid() const
OrderingPoint(const Geom::Point &pointIn, OrderingInfoEx *infoexIn, bool beginIn)
void FindNearest2(const std::vector< OrderingInfoEx * > &infos)
const OrderingPoint * nearest[2]
OrderingGroupPoint * GetBeginPoint(unsigned int iSwap, unsigned int iEnd)
OrderingGroupPoint * GetEndPoint(unsigned int iSwap, unsigned int iEnd)
void AddPoint(OrderingGroupPoint *point)
OrderingGroupPoint * endpoints[4]