QgsSymbolLayerV2* QgsSimpleMarkerSymbolLayerV2::createFromSld( QDomElement &element ) { QgsDebugMsg( "Entered." ); QDomElement graphicElem = element.firstChildElement( "Graphic" ); if ( graphicElem.isNull() ) return NULL; QString name = "square"; QColor color, borderColor; double borderWidth, size; if ( !QgsSymbolLayerV2Utils::wellKnownMarkerFromSld( graphicElem, name, color, borderColor, borderWidth, size ) ) return NULL; double angle = 0.0; QString angleFunc; if ( QgsSymbolLayerV2Utils::rotationFromSldElement( graphicElem, angleFunc ) ) { bool ok; double d = angleFunc.toDouble( &ok ); if ( ok ) angle = d; } QPointF offset; QgsSymbolLayerV2Utils::displacementFromSldElement( graphicElem, offset ); QgsMarkerSymbolLayerV2 *m = new QgsSimpleMarkerSymbolLayerV2( name, color, borderColor, size ); m->setAngle( angle ); m->setOffset( offset ); return m; }
void QgsMarkerSymbolV2::setAngle( double angle ) { for ( QgsSymbolLayerV2List::iterator it = mLayers.begin(); it != mLayers.end(); ++it ) { QgsMarkerSymbolLayerV2* layer = ( QgsMarkerSymbolLayerV2* ) * it; layer->setAngle( angle ); } }
void QgsMarkerSymbolV2::setAngle( double ang ) { double origAngle = angle(); double angleDiff = ang - origAngle; for ( QgsSymbolLayerV2List::iterator it = mLayers.begin(); it != mLayers.end(); ++it ) { QgsMarkerSymbolLayerV2* layer = ( QgsMarkerSymbolLayerV2* ) * it; layer->setAngle( layer->angle() + angleDiff ); } }
QgsSymbolLayerV2* QgsFontMarkerSymbolLayerV2::createFromSld( QDomElement &element ) { QgsDebugMsg( "Entered." ); QDomElement graphicElem = element.firstChildElement( "Graphic" ); if ( graphicElem.isNull() ) return NULL; QString name, format; QColor color; double size; int chr; if ( !QgsSymbolLayerV2Utils::externalMarkerFromSld( graphicElem, name, format, chr, color, size ) ) return NULL; if ( !name.startsWith( "ttf://" ) || format != "ttf" ) return NULL; QString fontFamily = name.mid( 6 ); double angle = 0.0; QString angleFunc; if ( QgsSymbolLayerV2Utils::rotationFromSldElement( graphicElem, angleFunc ) ) { bool ok; double d = angleFunc.toDouble( &ok ); if ( ok ) angle = d; } QPointF offset; QgsSymbolLayerV2Utils::displacementFromSldElement( graphicElem, offset ); QgsMarkerSymbolLayerV2 *m = new QgsFontMarkerSymbolLayerV2( fontFamily, chr, size, color ); m->setAngle( angle ); m->setOffset( offset ); return m; }