|
|
@ -642,12 +642,36 @@ double SCH_SHAPE::Similarity( const SCH_ITEM& aOther ) const |
|
|
|
|
|
|
|
int SCH_SHAPE::compare( const SCH_ITEM& aOther, int aCompareFlags ) const |
|
|
|
{ |
|
|
|
int retv = SCH_ITEM::compare( aOther, aCompareFlags ); |
|
|
|
int cmpFlags = aCompareFlags; |
|
|
|
|
|
|
|
// The object UUIDs must be compared after the shape coordinates because shapes do not
|
|
|
|
// have immutable UUIDs.
|
|
|
|
if( !( cmpFlags & ( SCH_ITEM::COMPARE_FLAGS::EQUALITY | SCH_ITEM::COMPARE_FLAGS::ERC ) ) ) |
|
|
|
cmpFlags |= SCH_ITEM::COMPARE_FLAGS::EQUALITY; |
|
|
|
|
|
|
|
int retv = SCH_ITEM::compare( aOther, cmpFlags ); |
|
|
|
|
|
|
|
if( retv ) |
|
|
|
return retv; |
|
|
|
|
|
|
|
retv = EDA_SHAPE::Compare( &static_cast<const SCH_SHAPE&>( aOther ) ); |
|
|
|
|
|
|
|
if( retv ) |
|
|
|
return retv; |
|
|
|
|
|
|
|
return EDA_SHAPE::Compare( &static_cast<const SCH_SHAPE&>( aOther ) ); |
|
|
|
if( ( aCompareFlags & SCH_ITEM::COMPARE_FLAGS::EQUALITY ) |
|
|
|
|| ( aCompareFlags & SCH_ITEM::COMPARE_FLAGS::ERC ) ) |
|
|
|
{ |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
if( m_Uuid < aOther.m_Uuid ) |
|
|
|
return -1; |
|
|
|
|
|
|
|
if( m_Uuid > aOther.m_Uuid ) |
|
|
|
return 1; |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|