def mirror(self, mirrorPt, mirrorAngle): startPt = qad_utils.mirrorPoint(self.getStartPt(), mirrorPt, mirrorAngle) secondPt = qad_utils.mirrorPoint(self.getMiddlePt(), mirrorPt, mirrorAngle) endPt = qad_utils.mirrorPoint(self.getEndPt(), mirrorPt, mirrorAngle) self.fromStartSecondEndPts(startPt, secondPt, endPt)
def mirror(self, f, pt1, pt2, rotFldName, layerEntitySet, entitySet, dimEntity): if dimEntity is None: # scalo la feature e la rimuovo da entitySet (é la prima) f.setGeometry(qad_utils.mirrorQgsGeometry(f.geometry(), pt1, pt2)) if len(rotFldName) > 0: rotValue = f.attribute(rotFldName) # a volte vale None e a volte null (vai a capire...) rotValue = 0 if rotValue is None or isinstance( rotValue, QPyNullVariant) else qad_utils.toRadians( rotValue ) # la rotazione é in gradi nel campo della feature ptDummy = qad_utils.getPolarPointByPtAngle(pt1, rotValue, 1) mirrorAngle = qad_utils.getAngleBy2Pts(pt1, pt2) ptDummy = qad_utils.mirrorPoint(ptDummy, pt1, mirrorAngle) rotValue = qad_utils.getAngleBy2Pts(pt1, ptDummy) f.setAttribute( rotFldName, qad_utils.toDegrees(qad_utils.normalizeAngle(rotValue))) if self.copyFeatures == False: # plugIn, layer, feature, refresh, check_validity if qad_layer.updateFeatureToLayer(self.plugIn, layerEntitySet.layer, f, False, False) == False: self.plugIn.destroyEditCommand() return False else: # plugIn, layer, features, coordTransform, refresh, check_validity if qad_layer.addFeatureToLayer(self.plugIn, layerEntitySet.layer, f, None, False, False) == False: self.plugIn.destroyEditCommand() return False del layerEntitySet.featureIds[0] else: # scalo la quota e la rimuovo da entitySet mirrorAngle = qad_utils.getAngleBy2Pts(pt1, pt2) dimEntitySet = dimEntity.getEntitySet() if self.copyFeatures == False: if dimEntity.deleteToLayers(self.plugIn) == False: return False newDimEntity = QadDimEntity(dimEntity) # la copio newDimEntity.mirror(pt1, mirrorAngle) if newDimEntity.addToLayers(self.plugIn) == False: return False entitySet.subtract(dimEntitySet)
def mirror(self, entity, pt1, pt2, rotFldName): # entity = entità da specchiare # pt1 e pt2 = linea di simmetria # rotFldName = campo della tabella che memorizza la rotazione # verifico se l'entità appartiene ad uno stile di quotatura if entity.whatIs() == "ENTITY": f = entity.getFeature() # specchio l'entità f.setGeometry( qad_utils.mirrorQgsGeometry(entity.getGeometry(), pt1, pt2)) if len(rotFldName) > 0: rotValue = f.attribute(rotFldName) # a volte vale None e a volte null (vai a capire...) rotValue = 0 if rotValue is None or isinstance( rotValue, QPyNullVariant) else qad_utils.toRadians( rotValue ) # la rotazione é in gradi nel campo della feature ptDummy = qad_utils.getPolarPointByPtAngle(pt1, rotValue, 1) mirrorAngle = qad_utils.getAngleBy2Pts(pt1, pt2) ptDummy = qad_utils.mirrorPoint(ptDummy, pt1, mirrorAngle) rotValue = qad_utils.getAngleBy2Pts(pt1, ptDummy) f.setAttribute( rotFldName, qad_utils.toDegrees(qad_utils.normalizeAngle(rotValue))) if self.copyEntities == False: # plugIn, layer, feature, refresh, check_validity if qad_layer.updateFeatureToLayer(self.plugIn, entity.layer, f, False, False) == False: return False else: # plugIn, layer, features, coordTransform, refresh, check_validity if qad_layer.addFeatureToLayer(self.plugIn, entity.layer, f, None, False, False) == False: return False elif entity.whatIs() == "DIMENTITY": mirrorAngle = qad_utils.getAngleBy2Pts(pt1, pt2) # specchio la quota if self.copyEntities == False: if entity.deleteToLayers(self.plugIn) == False: return False newDimEntity = QadDimEntity(entity) # la copio newDimEntity.mirror(pt1, mirrorAngle) if newDimEntity.addToLayers(self.plugIn) == False: return False return True
def mirror(self, entity, pt1, pt2, rotFldName): # entity = entità da specchiare # pt1 e pt2 = linea di simmetria # rotFldName = campo della tabella che memorizza la rotazione # verifico se l'entità appartiene ad uno stile di quotatura if entity.whatIs() == "ENTITY": f = entity.getFeature() # specchio l'entità f.setGeometry(qad_utils.mirrorQgsGeometry(entity.getGeometry(), pt1, pt2)) if len(rotFldName) > 0: rotValue = f.attribute(rotFldName) # a volte vale None e a volte null (vai a capire...) rotValue = 0 if rotValue is None or isinstance(rotValue, QPyNullVariant) else qad_utils.toRadians(rotValue) # la rotazione é in gradi nel campo della feature ptDummy = qad_utils.getPolarPointByPtAngle(pt1, rotValue, 1) mirrorAngle = qad_utils.getAngleBy2Pts(pt1, pt2) ptDummy = qad_utils.mirrorPoint(ptDummy, pt1, mirrorAngle) rotValue = qad_utils.getAngleBy2Pts(pt1, ptDummy) f.setAttribute(rotFldName, qad_utils.toDegrees(qad_utils.normalizeAngle(rotValue))) if self.copyEntities == False: # plugIn, layer, feature, refresh, check_validity if qad_layer.updateFeatureToLayer(self.plugIn, entity.layer, f, False, False) == False: return False else: # plugIn, layer, features, coordTransform, refresh, check_validity if qad_layer.addFeatureToLayer(self.plugIn, entity.layer, f, None, False, False) == False: return False elif entity.whatIs() == "DIMENTITY": mirrorAngle = qad_utils.getAngleBy2Pts(pt1, pt2) # specchio la quota if self.copyEntities == False: if entity.deleteToLayers(self.plugIn) == False: return False newDimEntity = QadDimEntity(entity) # la copio newDimEntity.mirror(pt1, mirrorAngle) if newDimEntity.addToLayers(self.plugIn) == False: return False return True
def mirror(self, f, pt1, pt2, rotFldName, layerEntitySet, entitySet, dimEntity): if dimEntity is None: # scalo la feature e la rimuovo da entitySet (é la prima) f.setGeometry(qad_utils.mirrorQgsGeometry(f.geometry(), pt1, pt2)) if len(rotFldName) > 0: rotValue = f.attribute(rotFldName) # a volte vale None e a volte null (vai a capire...) rotValue = 0 if rotValue is None or isinstance(rotValue, QPyNullVariant) else qad_utils.toRadians(rotValue) # la rotazione é in gradi nel campo della feature ptDummy = qad_utils.getPolarPointByPtAngle(pt1, rotValue, 1) mirrorAngle = qad_utils.getAngleBy2Pts(pt1, pt2) ptDummy = qad_utils.mirrorPoint(ptDummy, pt1, mirrorAngle) rotValue = qad_utils.getAngleBy2Pts(pt1, ptDummy) f.setAttribute(rotFldName, qad_utils.toDegrees(qad_utils.normalizeAngle(rotValue))) if self.copyFeatures == False: # plugIn, layer, feature, refresh, check_validity if qad_layer.updateFeatureToLayer(self.plugIn, layerEntitySet.layer, f, False, False) == False: self.plugIn.destroyEditCommand() return False else: # plugIn, layer, features, coordTransform, refresh, check_validity if qad_layer.addFeatureToLayer(self.plugIn, layerEntitySet.layer, f, None, False, False) == False: self.plugIn.destroyEditCommand() return False del layerEntitySet.featureIds[0] else: # scalo la quota e la rimuovo da entitySet mirrorAngle = qad_utils.getAngleBy2Pts(pt1, pt2) dimEntitySet = dimEntity.getEntitySet() if self.copyFeatures == False: if dimEntity.deleteToLayers(self.plugIn) == False: return False newDimEntity = QadDimEntity(dimEntity) # la copio newDimEntity.mirror(pt1, mirrorAngle) if newDimEntity.addToLayers(self.plugIn) == False: return False entitySet.subtract(dimEntitySet)