Support shape collisions between SHAPE_POLY_SET and other shapes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14890
This commit is contained in:
parent
9fe00bb808
commit
0f8c5a96b2
|
@ -34,6 +34,7 @@
|
|||
#include <geometry/shape_rect.h>
|
||||
#include <geometry/shape_segment.h>
|
||||
#include <geometry/shape_compound.h>
|
||||
#include <geometry/shape_poly_set.h>
|
||||
#include <math/vector2d.h>
|
||||
|
||||
typedef VECTOR2I::extended_type ecoord;
|
||||
|
@ -1085,6 +1086,20 @@ static bool collideShapes( const SHAPE* aA, const SHAPE* aB, int aClearance, int
|
|||
}
|
||||
}
|
||||
}
|
||||
else if( aA->Type() == SH_POLY_SET )
|
||||
{
|
||||
const SHAPE_POLY_SET* polySetA = static_cast<const SHAPE_POLY_SET*>( aA );
|
||||
|
||||
wxASSERT( !aMTV );
|
||||
return polySetA->Collide( aB, aClearance, aActual, aLocation );
|
||||
}
|
||||
else if( aB->Type() == SH_POLY_SET )
|
||||
{
|
||||
const SHAPE_POLY_SET* polySetB = static_cast<const SHAPE_POLY_SET*>( aB );
|
||||
|
||||
wxASSERT( !aMTV );
|
||||
return polySetB->Collide( aA, aClearance, aActual, aLocation );
|
||||
}
|
||||
else
|
||||
{
|
||||
return collideSingleShapes( aA, aB, aClearance, aActual, aLocation, aMTV );
|
||||
|
|
Loading…
Reference in New Issue