def stretch(self, f, containerGeom, offSetX, offSetY, tolerance2ApproxCurve, layerEntitySet, entitySet): # verifico se l'entità appartiene ad uno stile di quotatura dimEntity = self.plugIn.dimStyles.getDimEntity(layerEntitySet.layer, f.id()) if dimEntity is None: # stiro la feature e la rimuovo da entitySet (é la prima) stretchedGeom = qad_utils.stretchQgsGeometry(f.geometry(), containerGeom, \ offSetX, offSetY, \ tolerance2ApproxCurve) if stretchedGeom is not None: f.setGeometry(stretchedGeom) # plugIn, layer, feature, refresh, check_validity if qad_layer.updateFeatureToLayer(self.plugIn, layerEntitySet.layer, f, False, False) == False: self.plugIn.destroyEditCommand() return False del layerEntitySet.featureIds[0] else: # ruoto la quota e la rimuovo da entitySet dimEntitySet = dimEntity.getEntitySet() if dimEntity.deleteToLayers(self.plugIn) == False: return False dimEntity.stretch(self.plugIn, containerGeom, offSetX, offSetY) if dimEntity.addToLayers(self.plugIn) == False: return False entitySet.subtract(dimEntitySet) return True
def stretch(self, f, containerGeom, offSetX, offSetY, tolerance2ApproxCurve, layerEntitySet, entitySet): # verifico se l'entità appartiene ad uno stile di quotatura dimEntity = self.plugIn.dimStyles.getDimEntity(layerEntitySet.layer, f.id()) if dimEntity is None: # stiro la feature e la rimuovo da entitySet (é la prima) stretchedGeom = qad_utils.stretchQgsGeometry(f.geometry(), containerGeom, \ offSetX, offSetY, \ tolerance2ApproxCurve) if stretchedGeom is not None: f.setGeometry(stretchedGeom) self.__rubberBand.addGeometry(f.geometry(), layerEntitySet.layer) del layerEntitySet.featureIds[0] else: # stiro la quota e la rimuovo da entitySet dimEntitySet = dimEntity.getEntitySet() dimEntity.stretch(self.plugIn, containerGeom, offSetX, offSetY) self.__rubberBand.addGeometry(dimEntity.textualFeature.geometry(), dimEntity.getTextualLayer()) self.__rubberBand.addGeometries(dimEntity.getLinearGeometryCollection(), dimEntity.getLinearLayer()) self.__rubberBand.addGeometries(dimEntity.getSymbolGeometryCollection(), dimEntity.getSymbolLayer()) entitySet.subtract(dimEntitySet)