Upgraded Clipper to 6.4.2

This commit is contained in:
Alessandro Ranellucci 2017-03-01 00:05:26 +01:00
parent e8cf95889b
commit c146cab2c7
2 changed files with 17 additions and 10 deletions

View File

@ -1,10 +1,10 @@
/******************************************************************************* /*******************************************************************************
* * * *
* Author : Angus Johnson * * Author : Angus Johnson *
* Version : 6.4.1 * * Version : 6.4.2 *
* Date : 5 December 2016 * * Date : 27 February 2017 *
* Website : http://www.angusj.com * * Website : http://www.angusj.com *
* Copyright : Angus Johnson 2010-2016 * * Copyright : Angus Johnson 2010-2017 *
* * * *
* License: * * License: *
* Use, modification & distribution is subject to Boost Software License Ver 1. * * Use, modification & distribution is subject to Boost Software License Ver 1. *
@ -1866,7 +1866,7 @@ OutPt* Clipper::AddLocalMinPoly(TEdge *e1, TEdge *e2, const IntPoint &Pt)
prevE = e->PrevInAEL; prevE = e->PrevInAEL;
} }
if (prevE && prevE->OutIdx >= 0) if (prevE && prevE->OutIdx >= 0 && prevE->Top.Y < Pt.Y && e->Top.Y < Pt.Y)
{ {
cInt xPrev = TopX(*prevE, Pt.Y); cInt xPrev = TopX(*prevE, Pt.Y);
cInt xE = TopX(*e, Pt.Y); cInt xE = TopX(*e, Pt.Y);
@ -2713,7 +2713,11 @@ void Clipper::ProcessHorizontal(TEdge *horzEdge)
if (horzEdge->OutIdx >= 0 && !IsOpen) //note: may be done multiple times if (horzEdge->OutIdx >= 0 && !IsOpen) //note: may be done multiple times
{ {
op1 = AddOutPt(horzEdge, e->Curr); #ifdef use_xyz
if (dir == dLeftToRight) SetZ(e->Curr, *horzEdge, *e);
else SetZ(e->Curr, *e, *horzEdge);
#endif
op1 = AddOutPt(horzEdge, e->Curr);
TEdge* eNextHorz = m_SortedEdges; TEdge* eNextHorz = m_SortedEdges;
while (eNextHorz) while (eNextHorz)
{ {
@ -3039,7 +3043,10 @@ void Clipper::ProcessEdgesAtTopOfScanbeam(const cInt topY)
{ {
e->Curr.X = TopX( *e, topY ); e->Curr.X = TopX( *e, topY );
e->Curr.Y = topY; e->Curr.Y = topY;
} #ifdef use_xyz
e->Curr.Z = topY == e->Top.Y ? e->Top.Z : (topY == e->Bot.Y ? e->Bot.Z : 0);
#endif
}
//When StrictlySimple and 'e' is being touched by another edge, then //When StrictlySimple and 'e' is being touched by another edge, then
//make sure both edges have a vertex here ... //make sure both edges have a vertex here ...

View File

@ -1,10 +1,10 @@
/******************************************************************************* /*******************************************************************************
* * * *
* Author : Angus Johnson * * Author : Angus Johnson *
* Version : 6.4.1 * * Version : 6.4.2 *
* Date : 5 December 2016 * * Date : 27 February 2017 *
* Website : http://www.angusj.com * * Website : http://www.angusj.com *
* Copyright : Angus Johnson 2010-2015 * * Copyright : Angus Johnson 2010-2017 *
* * * *
* License: * * License: *
* Use, modification & distribution is subject to Boost Software License Ver 1. * * Use, modification & distribution is subject to Boost Software License Ver 1. *
@ -34,7 +34,7 @@
#ifndef clipper_hpp #ifndef clipper_hpp
#define clipper_hpp #define clipper_hpp
#define CLIPPER_VERSION "6.4.1" #define CLIPPER_VERSION "6.4.2"
//use_int32: When enabled 32bit ints are used instead of 64bit ints. This //use_int32: When enabled 32bit ints are used instead of 64bit ints. This
//improve performance but coordinate values are limited to the range +/- 46340 //improve performance but coordinate values are limited to the range +/- 46340