Check for CCW polys
Use rectangles for 4-sided polygons that are rectangular regardless if they are CW or CCW oriented
This commit is contained in:
parent
8036303f8f
commit
4f6134b60d
|
@ -392,10 +392,18 @@ void PAD::BuildEffectiveShapes( PCB_LAYER_ID aLayer ) const
|
||||||
// GAL renders rectangles faster than 4-point polygons so it's worth checking if our
|
// GAL renders rectangles faster than 4-point polygons so it's worth checking if our
|
||||||
// body shape is a rectangle.
|
// body shape is a rectangle.
|
||||||
if( corners.PointCount() == 4
|
if( corners.PointCount() == 4
|
||||||
&& corners.CPoint( 0 ).y == corners.CPoint( 1 ).y
|
&&
|
||||||
&& corners.CPoint( 1 ).x == corners.CPoint( 2 ).x
|
( ( corners.CPoint( 0 ).y == corners.CPoint( 1 ).y
|
||||||
&& corners.CPoint( 2 ).y == corners.CPoint( 3 ).y
|
&& corners.CPoint( 1 ).x == corners.CPoint( 2 ).x
|
||||||
&& corners.CPoint( 4 ).x == corners.CPoint( 0 ).x )
|
&& corners.CPoint( 2 ).y == corners.CPoint( 3 ).y
|
||||||
|
&& corners.CPoint( 3 ).x == corners.CPoint( 0 ).x )
|
||||||
|
||
|
||||||
|
( corners.CPoint( 0 ).x == corners.CPoint( 1 ).x
|
||||||
|
&& corners.CPoint( 1 ).y == corners.CPoint( 2 ).y
|
||||||
|
&& corners.CPoint( 2 ).x == corners.CPoint( 3 ).x
|
||||||
|
&& corners.CPoint( 3 ).y == corners.CPoint( 0 ).y )
|
||||||
|
)
|
||||||
|
)
|
||||||
{
|
{
|
||||||
int width = std::abs( corners.CPoint( 2 ).x - corners.CPoint( 0 ).x );
|
int width = std::abs( corners.CPoint( 2 ).x - corners.CPoint( 0 ).x );
|
||||||
int height = std::abs( corners.CPoint( 2 ).y - corners.CPoint( 0 ).y );
|
int height = std::abs( corners.CPoint( 2 ).y - corners.CPoint( 0 ).y );
|
||||||
|
|
Loading…
Reference in New Issue