def stretch(self, entity, containerGeom, offSetX, offSetY, tolerance2ApproxCurve): # entity = entità da stirare # ptList = lista dei punti da stirare # offSetX, offSetY = spostamento da fare # tolerance2ApproxCurve = tolleranza per ricreare le curve # verifico se l'entità appartiene ad uno stile di quotatura if entity.whatIs() == "ENTITY": stretchedGeom = entity.getGeometry() # controllo inserito perchè con le quote, questa viene cancellata e ricreata quindi alcuni oggetti potrebbero non esistere più if stretchedGeom is None: # se non c'è lo salto senza errore return True # trasformo la geometria nel crs del canvas per lavorare con coordinate piane xy coordTransform = QgsCoordinateTransform(entity.layer.crs(), self.canvas.mapSettings().destinationCrs()) stretchedGeom.transform(coordTransform) # stiro la feature stretchedGeom = qad_stretch_fun.stretchQgsGeometry(stretchedGeom, containerGeom, \ offSetX, offSetY, \ tolerance2ApproxCurve) if stretchedGeom is not None: # trasformo la geometria nel crs del layer coordTransform = QgsCoordinateTransform(self.canvas.mapSettings().destinationCrs(), entity.layer.crs()) stretchedGeom.transform(coordTransform) self.__highlight.addGeometry(stretchedGeom, entity.layer) elif entity.whatIs() == "DIMENTITY": newDimEntity = QadDimEntity(entity) # la copio # stiro la quota newDimEntity.stretch(containerGeom, offSetX, offSetY) self.__highlight.addGeometry(newDimEntity.textualFeature.geometry(), newDimEntity.getTextualLayer()) self.__highlight.addGeometries(newDimEntity.getLinearGeometryCollection(), newDimEntity.getLinearLayer()) self.__highlight.addGeometries(newDimEntity.getSymbolGeometryCollection(), newDimEntity.getSymbolLayer()) return True
def stretch(self, entity, containerGeom, offSetX, offSetY, tolerance2ApproxCurve): # entity = entità da stirare # ptList = lista dei punti da stirare # offSetX, offSetY = spostamento da fare # tolerance2ApproxCurve = tolleranza per ricreare le curve # verifico se l'entità appartiene ad uno stile di quotatura if entity.whatIs() == "ENTITY": stretchedGeom = entity.getGeometry() # controllo inserito perchè con le quote, questa viene cancellata e ricreata quindi alcuni oggetti potrebbero non esistere più if stretchedGeom is None: # se non c'è lo salto senza errore return True # trasformo la geometria nel crs del canvas per lavorare con coordinate piane xy coordTransform = QgsCoordinateTransform( entity.layer.crs(), self.plugIn.canvas.mapSettings().destinationCrs()) stretchedGeom.transform(coordTransform) # stiro la feature stretchedGeom = qad_stretch_fun.stretchQgsGeometry(stretchedGeom, containerGeom, \ offSetX, offSetY, \ tolerance2ApproxCurve) if stretchedGeom is not None: # trasformo la geometria nel crs del layer coordTransform = QgsCoordinateTransform( self.plugIn.canvas.mapSettings().destinationCrs(), entity.layer.crs()) stretchedGeom.transform(coordTransform) f = entity.getFeature() f.setGeometry(stretchedGeom) # plugIn, layer, feature, refresh, check_validity if qad_layer.updateFeatureToLayer(self.plugIn, entity.layer, f, False, False) == False: return False elif entity.whatIs() == "DIMENTITY": # stiro la quota if entity.deleteToLayers(self.plugIn) == False: return False newDimEntity = QadDimEntity(entity) # la copio newDimEntity.stretch(containerGeom, offSetX, offSetY) if newDimEntity.addToLayers(self.plugIn) == False: return False return True
def stretch(self, entity, containerGeom, offSetX, offSetY, tolerance2ApproxCurve): # entity = entità da stirare # ptList = lista dei punti da stirare # offSetX, offSetY = spostamento da fare # tolerance2ApproxCurve = tolleranza per ricreare le curve # verifico se l'entità appartiene ad uno stile di quotatura if entity.whatIs() == "ENTITY": stretchedGeom = entity.getGeometry() # controllo inserito perchè con le quote, questa viene cancellata e ricreata quindi alcuni oggetti potrebbero non esistere più if stretchedGeom is None: # se non c'è lo salto senza errore return True # trasformo la geometria nel crs del canvas per lavorare con coordinate piane xy coordTransform = QgsCoordinateTransform(entity.layer.crs(), self.plugIn.canvas.mapSettings().destinationCrs()) stretchedGeom.transform(coordTransform) # stiro la feature stretchedGeom = qad_stretch_fun.stretchQgsGeometry(stretchedGeom, containerGeom, \ offSetX, offSetY, \ tolerance2ApproxCurve) if stretchedGeom is not None: # trasformo la geometria nel crs del layer coordTransform = QgsCoordinateTransform(self.plugIn.canvas.mapSettings().destinationCrs(), entity.layer.crs()) stretchedGeom.transform(coordTransform) f = entity.getFeature() f.setGeometry(stretchedGeom) # plugIn, layer, feature, refresh, check_validity if qad_layer.updateFeatureToLayer(self.plugIn, entity.layer, f, False, False) == False: return False elif entity.whatIs() == "DIMENTITY": # stiro la quota if entity.deleteToLayers(self.plugIn) == False: return False newDimEntity = QadDimEntity(entity) # la copio newDimEntity.stretch(containerGeom, offSetX, offSetY) if newDimEntity.addToLayers(self.plugIn) == False: return False return True