bool
ImageComponents::isEqualToPairedPlane(const ImageComponents& other,
                                      ImageComponents* pairedLayer) const
{
    assert( !other.isPairedComponents() );
    if ( !isPairedComponents() ) {
        return false;
    }
    if ( _componentNames.size() != other._componentNames.size() ) {
        return false;
    }

    for (std::size_t i = 0; i < _componentNames.size(); ++i) {
        if (_componentNames[i] != other._componentNames[i]) {
            return false;
        }
    }
    if (_layerName == other._layerName) {
        *pairedLayer = ImageComponents(_layerName, _globalComponentsName, _componentNames);

        return true;
    } else if (_pairedLayer == other._layerName) {
        *pairedLayer = ImageComponents(_pairedLayer, _globalComponentsName, _componentNames);

        return true;
    }

    return false;
}