SHAPE_POLY_SET: add BooleanXor()
This commit is contained in:
parent
6d624ac1ff
commit
040fd327ab
|
@ -978,6 +978,10 @@ public:
|
||||||
/// For \a aFastMode meaning, see function booleanOp
|
/// For \a aFastMode meaning, see function booleanOp
|
||||||
void BooleanIntersection( const SHAPE_POLY_SET& b, POLYGON_MODE aFastMode );
|
void BooleanIntersection( const SHAPE_POLY_SET& b, POLYGON_MODE aFastMode );
|
||||||
|
|
||||||
|
/// Perform boolean polyset exclusive or
|
||||||
|
/// For \a aFastMode meaning, see function booleanOp
|
||||||
|
void BooleanXor( const SHAPE_POLY_SET& b, POLYGON_MODE aFastMode );
|
||||||
|
|
||||||
/// Perform boolean polyset union between a and b, store the result in it self
|
/// Perform boolean polyset union between a and b, store the result in it self
|
||||||
/// For \a aFastMode meaning, see function booleanOp
|
/// For \a aFastMode meaning, see function booleanOp
|
||||||
void BooleanAdd( const SHAPE_POLY_SET& a, const SHAPE_POLY_SET& b,
|
void BooleanAdd( const SHAPE_POLY_SET& a, const SHAPE_POLY_SET& b,
|
||||||
|
@ -993,6 +997,11 @@ public:
|
||||||
void BooleanIntersection( const SHAPE_POLY_SET& a, const SHAPE_POLY_SET& b,
|
void BooleanIntersection( const SHAPE_POLY_SET& a, const SHAPE_POLY_SET& b,
|
||||||
POLYGON_MODE aFastMode );
|
POLYGON_MODE aFastMode );
|
||||||
|
|
||||||
|
/// Perform boolean polyset exclusive or between a and b, store the result in it self
|
||||||
|
/// For \a aFastMode meaning, see function booleanOp
|
||||||
|
void BooleanXor( const SHAPE_POLY_SET& a, const SHAPE_POLY_SET& b,
|
||||||
|
POLYGON_MODE aFastMode );
|
||||||
|
|
||||||
/// define how inflate transform build inflated polygon
|
/// define how inflate transform build inflated polygon
|
||||||
enum CORNER_STRATEGY
|
enum CORNER_STRATEGY
|
||||||
{
|
{
|
||||||
|
|
|
@ -877,6 +877,15 @@ void SHAPE_POLY_SET::BooleanIntersection( const SHAPE_POLY_SET& b, POLYGON_MODE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void SHAPE_POLY_SET::BooleanXor( const SHAPE_POLY_SET& b, POLYGON_MODE aFastMode )
|
||||||
|
{
|
||||||
|
if( ADVANCED_CFG::GetCfg().m_UseClipper2 )
|
||||||
|
booleanOp( Clipper2Lib::ClipType::Xor, b );
|
||||||
|
else
|
||||||
|
booleanOp( ClipperLib::ctXor, b, aFastMode );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void SHAPE_POLY_SET::BooleanAdd( const SHAPE_POLY_SET& a, const SHAPE_POLY_SET& b,
|
void SHAPE_POLY_SET::BooleanAdd( const SHAPE_POLY_SET& a, const SHAPE_POLY_SET& b,
|
||||||
POLYGON_MODE aFastMode )
|
POLYGON_MODE aFastMode )
|
||||||
{
|
{
|
||||||
|
@ -907,6 +916,16 @@ void SHAPE_POLY_SET::BooleanIntersection( const SHAPE_POLY_SET& a, const SHAPE_P
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void SHAPE_POLY_SET::BooleanXor( const SHAPE_POLY_SET& a, const SHAPE_POLY_SET& b,
|
||||||
|
POLYGON_MODE aFastMode )
|
||||||
|
{
|
||||||
|
if( ADVANCED_CFG::GetCfg().m_UseClipper2 )
|
||||||
|
booleanOp( Clipper2Lib::ClipType::Xor, a, b );
|
||||||
|
else
|
||||||
|
booleanOp( ClipperLib::ctXor, a, b, aFastMode );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void SHAPE_POLY_SET::InflateWithLinkedHoles( int aFactor,
|
void SHAPE_POLY_SET::InflateWithLinkedHoles( int aFactor,
|
||||||
SHAPE_POLY_SET::CORNER_STRATEGY aCornerStrategy,
|
SHAPE_POLY_SET::CORNER_STRATEGY aCornerStrategy,
|
||||||
int aMaxError, POLYGON_MODE aFastMode )
|
int aMaxError, POLYGON_MODE aFastMode )
|
||||||
|
|
Loading…
Reference in New Issue