Vroni :
- corretta la gestione delle proprietà ext_appl dei punti nel caso di intersezione.
This commit is contained in:
@@ -1013,6 +1013,13 @@ void vroniObject::MergePoints(int i1, int i2)
|
||||
SetXCoord(i2, w.x);
|
||||
SetYCoord(i2, w.y);
|
||||
|
||||
// MODIF visto che uno dei due punti viene cancellato, uniformo anche le ext_appl. Serve nel caso in cui
|
||||
// uno dei due punti deriva da intersezione ( quindi non ha punto originario di riferimento)
|
||||
if ( pnts[i1].ext_appl.second == -1)
|
||||
pnts[i1].ext_appl = pnts[i2].ext_appl ;
|
||||
else if ( pnts[i2].ext_appl.second == -1)
|
||||
pnts[i2].ext_appl = pnts[i1].ext_appl ;
|
||||
|
||||
restart = true;
|
||||
|
||||
return;
|
||||
|
||||
+6
-2
@@ -719,7 +719,9 @@ void vroniObject::SplitAtIntersections(grid* grid, double_arg eps)
|
||||
for (it = sege->intersections->begin(); it != sege->intersections->end(); it++) {
|
||||
coord c = *it;
|
||||
#ifdef EXT_APPL_PNTS
|
||||
i3 = StorePnt(c.x, c.y, eap_NIL);
|
||||
// MODIF: al nuovo punto aggiunto dall'intersezione posso assegnare soltanto il loop originario, visto che non deriva
|
||||
// da alcun punto della curva di partenza
|
||||
i3 = StorePnt(c.x, c.y, {segs[i1].ext_appl.first, -1});
|
||||
#else
|
||||
i3 = StorePnt(c.x, c.y);
|
||||
#endif
|
||||
@@ -738,7 +740,9 @@ void vroniObject::SplitAtIntersections(grid* grid, double_arg eps)
|
||||
for (it1 = arce->intersections.begin(); it1 != arce->intersections.end(); it1++) {
|
||||
coord c = (*it1).c;
|
||||
#ifdef EXT_APPL_PNTS
|
||||
i3 = StorePnt(c.x, c.y, eap_NIL);
|
||||
// MODIF: al nuovo punto aggiunto dall'intersezione posso assegnare soltanto il loop originario, visto che non deriva
|
||||
// da alcun punto della curva di partenza
|
||||
i3 = StorePnt(c.x, c.y, {arcs[i1].ext_appl.first, -1});
|
||||
#else
|
||||
i3 = StorePnt(c.x, c.y);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user