bool operator==( const Picture &a, const Picture &b ) { if( a.d() != b.d() ) return false; switch( a.d() ) { case Picture::CIRCLE: return a.circle() == b.circle(); case Picture::RECTANGLE: return a.rectangle() == b.rectangle(); case Picture::COMPOSED: return a.composed() == b.composed(); case Picture::TRANSLATED: return a.translated() == b.translated(); } return false; }