bool LabelPosition::isInConflictSinglePart( LabelPosition* lp ) { if ( !mGeos ) createGeosGeom(); if ( !lp->mGeos ) lp->createGeosGeom(); GEOSContextHandle_t geosctxt = geosContext(); bool result = ( GEOSPreparedIntersects_r( geosctxt, preparedGeom(), lp->mGeos ) == 1 ); return result; }
bool LabelPosition::isInConflictSinglePart( LabelPosition* lp ) { if ( !mGeos ) createGeosGeom(); if ( !lp->mGeos ) lp->createGeosGeom(); GEOSContextHandle_t geosctxt = geosContext(); try { bool result = ( GEOSPreparedIntersects_r( geosctxt, preparedGeom(), lp->mGeos ) == 1 ); return result; } catch ( GEOSException &e ) { QgsMessageLog::logMessage( QObject::tr( "Exception: %1" ).arg( e.what() ), QObject::tr( "GEOS" ) ); return false; } }
bool LabelPosition::isBorderCrossingLine( PointSet* line ) const { if ( !mGeos ) createGeosGeom(); if ( !line->mGeos ) line->createGeosGeom(); GEOSContextHandle_t geosctxt = geosContext(); if ( GEOSPreparedIntersects_r( geosctxt, preparedGeom(), line->mGeos ) == 1 ) { return true; } else if ( nextPart ) { return nextPart->isBorderCrossingLine( line ); } return false; }