本文整理汇总了Python中qad_ssget_cmd.QadSSGetClass类的典型用法代码示例。如果您正苦于以下问题:Python QadSSGetClass类的具体用法?Python QadSSGetClass怎么用?Python QadSSGetClass使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QadSSGetClass类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: QadVirtualSelCommandClass
class QadVirtualSelCommandClass(QadCommandClass):
def instantiateNewCmd(self):
""" istanzia un nuovo comando dello stesso tipo """
return QadVirtualSelCommandClass(self.plugIn)
def getName(self):
return "QadVirtualSelCommandClass"
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
self.SSGetClass = QadSSGetClass(plugIn)
self.SSGetClass.entitySet.set(plugIn.tool.entitySet) # da usare solo con QadMapTool
self.SSGetClass.exitAfterSelection = True
self.SSGetClass.step = 1
def __del__(self):
QadCommandClass.__del__(self)
del self.SSGetClass
def getPointMapTool(self, drawMode = QadGetPointDrawModeEnum.NONE):
return self.SSGetClass.getPointMapTool(drawMode)
def run(self, msgMapTool = False, msg = None):
res = self.SSGetClass.run(msgMapTool, msg)
if res == True:
self.plugIn.tool.entitySet.set(self.SSGetClass.entitySet) # da usare solo con QadMapTool
self.plugIn.tool.entitySet.selectOnLayer()
return res
开发者ID:gam17,项目名称:QAD,代码行数:29,代码来源:qad_maptool.py
示例2: reinitSSGetClass
def reinitSSGetClass(self):
checkPointLayer = self.SSGetClass.checkPointLayer
del self.SSGetClass
self.SSGetClass = QadSSGetClass(self.plugIn)
self.SSGetClass.onlyEditableLayers = False
self.SSGetClass.checkDimLayers = False # scarto le quote
self.SSGetClass.checkPointLayer = checkPointLayer
开发者ID:geosim,项目名称:QAD,代码行数:7,代码来源:qad_mapmpedit_cmd.py
示例3: __init__
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
self.SSGetClass = QadSSGetClass(plugIn)
self.SSGetClass.onlyEditableLayers = True
self.entitySet = QadEntitySet()
self.firstMirrorPt = QgsPoint()
self.secondMirrorPt = QgsPoint()
self.copyFeatures = True
开发者ID:gam17,项目名称:QAD,代码行数:8,代码来源:qad_mirror_cmd.py
示例4: canvasPressEvent
def canvasPressEvent(self, event):
# volevo mettere questo evento nel canvasReleaseEvent
# ma il tasto destro non genera quel tipo di evento
if event.button() == Qt.RightButton:
self.displayPopupMenuOnQuiescentState(event.pos())
elif event.button() == Qt.LeftButton:
# verifico se tasto shift premuto
shiftKey = True if event.modifiers() & Qt.ShiftModifier else False
# posizione corrente del mouse
point = self.toMapCoordinates(event.pos())
# leggo il punto grip che si interseca alla posizione del mouse
entityGripPoint = self.entitySetGripPoints.isIntersecting(point)
if entityGripPoint is not None:
if shiftKey == False: # lancio il comando
selectedEntityGripPoints = self.entitySetGripPoints.getSelectedEntityGripPoints()
# se non ci sono già grip selezionati
if len(selectedEntityGripPoints) == 0:
# seleziono il corrente
if self.entitySetGripPoints.selectIntersectingGripPoints(point) > 0:
selectedEntityGripPoints = self.entitySetGripPoints.getSelectedEntityGripPoints()
# lancio il comando
self.plugIn.runCommand("QadVirtualGripCommandsClass", [QadVirtualGripCommandsEnum.STRECTH, \
self.entitySetGripPoints, entityGripPoint.getPoint()])
else: # shift premuto
# inverto lo stato ai grip che intersecano il punto
self.entitySetGripPoints.toggleSelectIntersectingGripPoints(point)
else:
result = qad_utils.getEntSel(event.pos(), self, \
QadVariables.get(QadMsg.translate("Environment variables", "PICKBOX")))
if result is not None:
feature = result[0]
layer = result[1]
tmpEntity = QadEntity()
tmpEntity.set(layer, feature.id())
SSGetClass = QadSSGetClass(self.plugIn)
SSGetClass.entitySet.set(self.entitySet)
SSGetClass.elaborateEntity(tmpEntity, shiftKey)
self.plugIn.showMsg("\n", True) # ripete il prompt
self.entitySet.set(SSGetClass.entitySet)
del SSGetClass # che deseleziona gli oggetti
self.entitySet.selectOnLayer(False)
self.refreshEntityGripPoints(self.entitySet)
else:
self.plugIn.runCommand("QadVirtualSelCommandClass", point)
开发者ID:gam17,项目名称:QAD,代码行数:45,代码来源:qad_maptool.py
示例5: __init__
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
# se questo flag = True il comando serve all'interno di un altro comando per disegnare un buffer
# che non verrà salvato su un layer
self.virtualCmd = False
self.SSGetClass = QadSSGetClass(plugIn)
self.entitySet = QadEntitySet()
self.width = 0
self.segments = self.plugIn.segments
self.segments = 3 # roby
开发者ID:ermati,项目名称:QAD,代码行数:10,代码来源:qad_mbuffer_cmd.py
示例6: __init__
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
self.SSGetClass = QadSSGetClass(plugIn)
self.PLINECommand = None
self.RECTANGLECommand = None
self.entitySet = QadEntitySet() # entità da tagliare o estendere
self.limitEntitySet = QadEntitySet() # entità che fanno da limiti
self.edgeMode = QadVariables.get(QadMsg.translate("Environment variables", "EDGEMODE"))
self.defaultValue = None # usato per gestire il tasto dx del mouse
self.nOperationsToUndo = 0
开发者ID:lao-tseu-is-alive,项目名称:QAD,代码行数:10,代码来源:qad_trim_cmd.py
示例7: __init__
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
self.SSGetClass = QadSSGetClass(plugIn)
self.SSGetClass.onlyEditableLayers = True
self.entitySet = QadEntitySet()
self.basePt = None
self.copyFeatures = False
self.Pt1ReferenceLen = None
self.ReferenceLen = 1
self.Pt1NewLen = None
开发者ID:ermati,项目名称:QAD,代码行数:10,代码来源:qad_scale_cmd.py
示例8: __init__
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
# se questo flag = True il comando serve all'interno di un altro comando per disegnare un buffer
# che non verrà salvato su un layer
self.virtualCmd = False
self.rubberBandBorderColor = None
self.rubberBandFillColor = None
self.SSGetClass = QadSSGetClass(plugIn)
self.entitySet = QadEntitySet()
self.width = 0
self.segments = self.plugIn.segments # il numero di segmenti per l'approssimazione delle curve
开发者ID:geosim,项目名称:QAD,代码行数:11,代码来源:qad_mbuffer_cmd.py
示例9: __init__
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
self.SSGetClass = QadSSGetClass(plugIn)
self.SSGetClass.onlyEditableLayers = True
self.entitySet = QadEntitySet()
self.basePt = QgsPoint()
self.series = False
self.seriesLen = 2
self.adjust = False
self.copyMode = QadVariables.get(QadMsg.translate("Environment variables", "COPYMODE"))
self.featureCache = [] # lista di (layer, feature)
self.nOperationsToUndo = 0
开发者ID:ermati,项目名称:QAD,代码行数:13,代码来源:qad_copy_cmd.py
示例10: __init__
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
self.poligonEntity = QadEntity()
self.SSGetClass = QadSSGetClass(plugIn)
self.SSGetClass.onlyEditableLayers = False
self.SSGetClass.checkDimLayers = False # scarto le quote
self.entSelClass = None
self.currSubGeom = None
self.currAtSubGeom = None
self.nOperationsToUndo = 0
开发者ID:geosim,项目名称:QAD,代码行数:15,代码来源:qad_mapmpedit_cmd.py
示例11: reinitSSGetClass
def reinitSSGetClass(self):
if self.SSGetClass is not None: del self.SSGetClass
self.SSGetClass = QadSSGetClass(self.plugIn)
self.SSGetClass.onlyEditableLayers = True
self.SSGetClass.checkDimLayers = False # scarto le quote
geometryType = self.entity.layer.geometryType()
if geometryType == QGis.Point:
self.SSGetClass.checkPointLayer = True
self.SSGetClass.checkLineLayer = False
self.SSGetClass.checkPolygonLayer = False
elif geometryType == QGis.Line:
self.SSGetClass.checkPointLayer = False
self.SSGetClass.checkLineLayer = True
self.SSGetClass.checkPolygonLayer = True
elif geometryType == QGis.Polygon:
self.SSGetClass.checkPointLayer = False
self.SSGetClass.checkLineLayer = True
self.SSGetClass.checkPolygonLayer = True
开发者ID:geosim,项目名称:QAD,代码行数:19,代码来源:qad_joindisjoin_cmd.py
示例12: QadMOVECommandClass
class QadMOVECommandClass(QadCommandClass):
def instantiateNewCmd(self):
""" istanzia un nuovo comando dello stesso tipo """
return QadMOVECommandClass(self.plugIn)
def getName(self):
return QadMsg.translate("Command_list", "MOVE")
def getEnglishName(self):
return "MOVE"
def connectQAction(self, action):
QObject.connect(action, SIGNAL("triggered()"), self.plugIn.runMOVECommand)
def getIcon(self):
return QIcon(":/plugins/qad/icons/move.png")
def getNote(self):
# impostare le note esplicative del comando
return QadMsg.translate("Command_MOVE", "Moves the selected objects.")
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
self.SSGetClass = QadSSGetClass(plugIn)
self.SSGetClass.onlyEditableLayers = True
self.entitySet = QadEntitySet()
self.basePt = QgsPoint()
def __del__(self):
QadCommandClass.__del__(self)
del self.SSGetClass
def getPointMapTool(self, drawMode = QadGetPointDrawModeEnum.NONE):
if self.step == 0: # quando si é in fase di selezione entità
return self.SSGetClass.getPointMapTool()
else:
if (self.plugIn is not None):
if self.PointMapTool is None:
self.PointMapTool = Qad_move_maptool(self.plugIn)
return self.PointMapTool
else:
return None
#============================================================================
# move
#============================================================================
def move(self, f, offSetX, offSetY, layerEntitySet, entitySet):
# verifico se l'entità appartiene ad uno stile di quotatura
dimEntity = QadDimStyles.getDimEntity(layerEntitySet.layer, f.id())
if dimEntity is None:
# sposto la feature e la rimuovo da entitySet (é la prima)
f.setGeometry(qad_utils.moveQgsGeometry(f.geometry(), offSetX, offSetY))
# plugIn, layer, feature, refresh, check_validity
if qad_layer.updateFeatureToLayer(self.plugIn, layerEntitySet.layer, f, False, False) == False:
return False
del layerEntitySet.featureIds[0]
else:
# sposto la quota e la rimuovo da entitySet
dimEntitySet = dimEntity.getEntitySet()
if dimEntity.deleteToLayers(self.plugIn) == False:
return False
newDimEntity = QadDimEntity(dimEntity) # la copio
if newDimEntity.move(offSetX, offSetY) == False:
return False
if newDimEntity.addToLayers(self.plugIn) == False:
return False
entitySet.subtract(dimEntitySet)
return True
#============================================================================
# moveGeoms
#============================================================================
def moveGeoms(self, newPt):
# copio entitySet
entitySet = QadEntitySet(self.entitySet)
self.plugIn.beginEditCommand("Feature moved", entitySet.getLayerList())
for layerEntitySet in entitySet.layerEntitySetList:
transformedBasePt = self.mapToLayerCoordinates(layerEntitySet.layer, self.basePt)
transformedNewPt = self.mapToLayerCoordinates(layerEntitySet.layer, newPt)
offSetX = transformedNewPt.x() - transformedBasePt.x()
offSetY = transformedNewPt.y() - transformedBasePt.y()
while len(layerEntitySet.featureIds) > 0:
featureId = layerEntitySet.featureIds[0]
f = layerEntitySet.getFeature(featureId)
if self.move(f, offSetX, offSetY, layerEntitySet, entitySet) == False:
self.plugIn.destroyEditCommand()
return
self.plugIn.endEditCommand()
def run(self, msgMapTool = False, msg = None):
#.........这里部分代码省略.........
开发者ID:gam17,项目名称:QAD,代码行数:101,代码来源:qad_move_cmd.py
示例13: QadCOPYCommandClass
class QadCOPYCommandClass(QadCommandClass):
def instantiateNewCmd(self):
""" istanzia un nuovo comando dello stesso tipo """
return QadCOPYCommandClass(self.plugIn)
def getName(self):
return QadMsg.translate("Command_list", "COPY")
def getEnglishName(self):
return "COPY"
def connectQAction(self, action):
QObject.connect(action, SIGNAL("triggered()"), self.plugIn.runCOPYCommand)
def getIcon(self):
return QIcon(":/plugins/qad/icons/copyEnt.png")
def getNote(self):
# impostare le note esplicative del comando
return QadMsg.translate("Command_COPY", "Copies selected objects a specified distance in a specified direction.")
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
self.SSGetClass = QadSSGetClass(plugIn)
self.SSGetClass.onlyEditableLayers = True
self.entitySet = QadEntitySet()
self.basePt = QgsPoint()
self.series = False
self.seriesLen = 2
self.adjust = False
self.copyMode = QadVariables.get(QadMsg.translate("Environment variables", "COPYMODE"))
self.featureCache = [] # lista di (layer, feature)
self.nOperationsToUndo = 0
def __del__(self):
QadCommandClass.__del__(self)
del self.SSGetClass
def getPointMapTool(self, drawMode = QadGetPointDrawModeEnum.NONE):
if self.step == 0: # quando si é in fase di selezione entità
return self.SSGetClass.getPointMapTool()
else:
if (self.plugIn is not None):
if self.PointMapTool is None:
self.PointMapTool = Qad_copy_maptool(self.plugIn)
return self.PointMapTool
else:
return None
#============================================================================
# move
#============================================================================
def move(self, f, offSetX, offSetY, layerEntitySet, entitySet, dimEntity):
if dimEntity is None:
# sposto la feature e la rimuovo da entitySet (é la prima)
f.setGeometry(qad_utils.moveQgsGeometry(f.geometry(), offSetX, offSetY))
# plugIn, layer, feature, coordTransform, refresh, check_validity
if qad_layer.addFeatureToLayer(self.plugIn, layerEntitySet.layer, f, None, False, False) == False:
return False
else:
# sposto la quota
dimEntity.move(offSetX, offSetY)
if dimEntity.addToLayers(self.plugIn) == False:
return False
return True
#============================================================================
# copyGeoms
#============================================================================
def copyGeoms(self, newPt):
# copio entitySet
entitySet = QadEntitySet(self.entitySet)
self.plugIn.beginEditCommand("Feature copied", entitySet.getLayerList())
for layerEntitySet in entitySet.layerEntitySetList:
layer = layerEntitySet.layer
transformedBasePt = self.mapToLayerCoordinates(layer, self.basePt)
transformedNewPt = self.mapToLayerCoordinates(layer, newPt)
offSetX = transformedNewPt.x() - transformedBasePt.x()
offSetY = transformedNewPt.y() - transformedBasePt.y()
while len(layerEntitySet.featureIds) > 0:
featureId = layerEntitySet.featureIds[0]
f = layerEntitySet.getFeature(featureId)
# verifico se l'entità appartiene ad uno stile di quotatura
dimEntity = self.plugIn.dimStyles.getDimEntity(layerEntitySet.layer, f.id())
if self.series and self.seriesLen > 0: # devo fare una serie
if self.adjust == True:
offSetX = offSetX / (self.seriesLen - 1)
offSetY = offSetY / (self.seriesLen - 1)
#.........这里部分代码省略.........
开发者ID:ermati,项目名称:QAD,代码行数:101,代码来源:qad_copy_cmd.py
示例14: QadJOINCommandClass
class QadJOINCommandClass(QadCommandClass):
def instantiateNewCmd(self):
""" istanzia un nuovo comando dello stesso tipo """
return QadJOINCommandClass(self.plugIn)
def getName(self):
return QadMsg.translate("Command_list", "JOIN")
def getEnglishName(self):
return "JOIN"
def connectQAction(self, action):
QObject.connect(action, SIGNAL("triggered()"), self.plugIn.runJOINCommand)
def getIcon(self):
return QIcon(":/plugins/qad/icons/join.png")
def getNote(self):
# impostare le note esplicative del comando
return QadMsg.translate("Command_JOIN", "Join existing geometries.")
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
self.entity = QadEntity()
self.SSGetClass = None
self.entSelClass = None
def __del__(self):
QadCommandClass.__del__(self)
if self.SSGetClass is not None: del self.SSGetClass
def getPointMapTool(self, drawMode = QadGetPointDrawModeEnum.NONE):
if self.step == 1: # quando si é in fase di selezione entità
return self.entSelClass.getPointMapTool(drawMode)
elif self.step == 2: # quando si é in fase di selezione gruppo entità
return self.SSGetClass.getPointMapTool()
else:
return QadCommandClass.getPointMapTool(self, drawMode)
def getCurrentContextualMenu(self):
if self.step == 1: # quando si é in fase di selezione entità
return self.entSelClass.getCurrentContextualMenu()
elif self.step == 2: # quando si é in fase di selezione gruppo entità
return self.SSGetClass.getCurrentContextualMenu()()
else:
return self.contextualMenu
def reinitSSGetClass(self):
if self.SSGetClass is not None: del self.SSGetClass
self.SSGetClass = QadSSGetClass(self.plugIn)
self.SSGetClass.onlyEditableLayers = True
self.SSGetClass.checkDimLayers = False # scarto le quote
geometryType = self.entity.layer.geometryType()
if geometryType == QGis.Point:
self.SSGetClass.checkPointLayer = True
self.SSGetClass.checkLineLayer = False
self.SSGetClass.checkPolygonLayer = False
elif geometryType == QGis.Line:
self.SSGetClass.checkPointLayer = False
self.SSGetClass.checkLineLayer = True
self.SSGetClass.checkPolygonLayer = True
elif geometryType == QGis.Polygon:
self.SSGetClass.checkPointLayer = False
self.SSGetClass.checkLineLayer = True
self.SSGetClass.checkPolygonLayer = True
#============================================================================
# addEntitySetToPoint
#============================================================================
def addEntitySetToPoint(self, entitySet, removeOriginals = True):
"""
Aggiunge il set di entità al punto da modificare
"""
geom = self.entity.getGeometry()
layerList = []
layerList.append(self.entity.layer)
for layerEntitySet in entitySet.layerEntitySetList:
layer = layerEntitySet.layer
if layer.geometryType() != QGis.Point:
self.showMsg(QadMsg.translate("QAD", "Invalid object."))
return False
if removeOriginals: layerList.append(layer)
coordTransform = QgsCoordinateTransform(layer.crs(), self.entity.layer.crs())
for featureId in layerEntitySet.featureIds:
# se la feature è quella di entity è errore
if layer.id() == self.entity.layerId() and featureId == self.entity.featureId:
self.showMsg(QadMsg.translate("QAD", "Invalid object."))
return False
#.........这里部分代码省略.........
开发者ID:geosim,项目名称:QAD,代码行数:101,代码来源:qad_joindisjoin_cmd.py
示例15: QadSCALECommandClass
class QadSCALECommandClass(QadCommandClass):
def instantiateNewCmd(self):
""" istanzia un nuovo comando dello stesso tipo """
return QadSCALECommandClass(self.plugIn)
def getName(self):
return QadMsg.translate("Command_list", "SCALE")
def getEnglishName(self):
return "SCALE"
def connectQAction(self, action):
QObject.connect(action, SIGNAL("triggered()"), self.plugIn.runSCALECommand)
def getIcon(self):
return QIcon(":/plugins/qad/icons/scale.png")
def getNote(self):
# impostare le note esplicative del comando
return QadMsg.translate("Command_SCALE", "Enlarges or reduces selected objects.")
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
self.SSGetClass = QadSSGetClass(plugIn)
self.SSGetClass.onlyEditableLayers = True
self.entitySet = QadEntitySet()
self.basePt = None
self.copyFeatures = False
self.Pt1ReferenceLen = None
self.ReferenceLen = 1
self.Pt1NewLen = None
def __del__(self):
QadCommandClass.__del__(self)
del self.SSGetClass
def getPointMapTool(self, drawMode = QadGetPointDrawModeEnum.NONE):
if self.step == 0: # quando si é in fase di selezione entità
return self.SSGetClass.getPointMapTool()
else:
if (self.plugIn is not None):
if self.PointMapTool is None:
self.PointMapTool = Qad_scale_maptool(self.plugIn)
return self.PointMapTool
else:
return None
#============================================================================
# scale
#============================================================================
def scale(self, f, basePt, scale, sizeFldName, 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:
# scalo la feature e la rimuovo da entitySet (é la prima)
f.setGeometry(qad_utils.scaleQgsGeometry(f.geometry(), basePt, scale))
if sizeFldName is not None:
sizeValue = f.attribute(sizeFldName)
if sizeValue is None:
sizeValue = 1
sizeValue = sizeValue * scale
f.setAttribute(sizeFldName, sizeValue)
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
dimEntitySet = dimEntity.getEntitySet()
if self.copyFeatures == False:
if dimEntity.deleteToLayers(self.plugIn) == False:
return False
dimEntity.scale(self.plugIn,basePt, scale)
if dimEntity.addToLayers(self.plugIn) == False:
return False
entitySet.subtract(dimEntitySet)
def scaleGeoms(self, scale):
# copio entitySet
entitySet = QadEntitySet(self.entitySet)
self.plugIn.beginEditCommand("Feature scaled", self.entitySet.getLayerList())
for layerEntitySet in entitySet.layerEntitySetList:
layer = layerEntitySet.layer
transformedBasePt = self.mapToLayerCoordinates(layer, self.basePt)
#.........这里部分代码省略.........
开发者ID:ermati,项目名称:QAD,代码行数:101,代码来源:qad_scale_cmd.py
示例16: __init__
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
self.SSGetClass = QadSSGetClass(plugIn)
self.SSGetClass.onlyEditableLayers = True
开发者ID:geosim,项目名称:QAD,代码行数:4,代码来源:qad_erase_cmd.py
示例17: __init__
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
self.SSGetClass = QadSSGetClass(plugIn)
self.firstTime = True
开发者ID:resistor4u,项目名称:QAD,代码行数:4,代码来源:qad_setcurrlayerbygraph_cmd.py
示例18: QadTRIMCommandClass
class QadTRIMCommandClass(QadCommandClass):
def instantiateNewCmd(self):
""" istanzia un nuovo comando dello stesso tipo """
return QadTRIMCommandClass(self.plugIn)
def getName(self):
return QadMsg.translate("Command_list", "TRIM")
def getEnglishName(self):
return "TRIM"
def connectQAction(self, action):
QObject.connect(action, SIGNAL("triggered()"), self.plugIn.runTRIMCommand)
def getIcon(self):
return QIcon(":/plugins/qad/icons/trim.png")
def getNote(self):
# impostare le note esplicative del comando
return QadMsg.translate("Command_TRIM", "Trims (or extends) objects to meet the edges of other objects.")
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
self.SSGetClass = QadSSGetClass(plugIn)
self.PLINECommand = None
self.RECTANGLECommand = None
self.entitySet = QadEntitySet() # entità da tagliare o estendere
self.limitEntitySet = QadEntitySet() # entità che fanno da limiti
self.edgeMode = QadVariables.get(QadMsg.translate("Environment variables", "EDGEMODE"))
self.defaultValue = None # usato per gestire il tasto dx del mouse
self.nOperationsToUndo = 0
def __del__(self):
QadCommandClass.__del__(self)
def getPointMapTool(self, drawMode = QadGetPointDrawModeEnum.NONE):
if self.step == 3: # quando si é in fase di disegno linea
return self.PLINECommand.getPointMapTool(drawMode)
elif self.step == 4: # quando si é in fase di disegno rettangolo
return self.RECTANGLECommand.getPointMapTool(drawMode)
else:
return QadCommandClass.getPointMapTool(self, drawMode)
#============================================================================
# trimFeatures
#============================================================================
def trimFeatures(self, geom, toExtend):
# geom è in map coordinates
tolerance2ApproxCurve = QadVariables.get(QadMsg.translate("Environment variables", "TOLERANCE2APPROXCURVE"))
LineTempLayer = None
self.plugIn.beginEditCommand("Feature extended" if toExtend else "Feature trimmed", \
self.entitySet.getLayerList())
for layerEntitySet in self.entitySet.layerEntitySetList:
layer = layerEntitySet.layer
for featureId in layerEntitySet.featureIds:
f = qad_utils.getFeatureById(layer, featureId)
if f is None:
continue
# trasformo la geometria nel crs del canvas per lavorare con coordinate piane xy
f_geom = self.layerToMapCoordinates(layer, f.geometry())
if geom.type() == QGis.Point:
# ritorna una tupla (<The squared cartesian distance>,
# <minDistPoint>
# <afterVertex>
# <leftOf>)
dummy = qad_utils.closestSegmentWithContext(geom.asPoint(), f_geom)
if dummy[1] is not None:
intPts = [dummy[1]]
else:
intPts = qad_utils.getIntersectionPoints(geom, f_geom)
for intPt in intPts:
if toExtend:
newGeom = qad_utils.extendQgsGeometry(self.plugIn.canvas.mapRenderer().destinationCrs(), f_geom, intPt, \
self.limitEntitySet, self.edgeMode, \
tolerance2ApproxCurve)
if newGeom is not None:
# aggiorno la feature con la geometria estesa
extendedFeature = QgsFeature(f)
# trasformo la geometria nel crs del layer
extendedFeature.setGeometry(self.mapToLayerCoordinates(layer, newGeom))
# plugIn, layer, feature, refresh, check_validity
if qad_layer.updateFeatureToLayer(self.plugIn, layer, extendedFeature, False, False) == False:
self.plugIn.destroyEditCommand()
return
else: # trim
result = qad_utils.trimQgsGeometry(self.plugIn.canvas.mapRenderer().destinationCrs(), f_geom, intPt, \
self.limitEntitySet, self.edgeMode, \
tolerance2ApproxCurve)
if result is not None:
line1 = result[0]
line2 = result[1]
atSubGeom = result[2]
if layer.geometryType() == QGis.Line:
updGeom = qad_utils.setSubGeom(f_geom, line1, atSubGeom)
if updGeom is None:
#.........这里部分代码省略.........
开发者ID:lao-tseu-is-alive,项目名称:QAD,代码行数:101,代码来源:qad_trim_cmd.py
示例19: QadROTATECommandClass
class QadROTATECommandClass(QadCommandClass):
def instantiateNewCmd(self):
""" istanzia un nuovo comando dello stesso tipo """
return QadROTATECommandClass(self.plugIn)
def getName(self):
return QadMsg.translate("Command_list", "ROTATE")
def getEnglishName(self):
return "ROTATE"
def connectQAction(self, action):
QObject.connect(action, SIGNAL("triggered()"), self.plugIn.runROTATECommand)
def getIcon(self):
return QIcon(":/plugins/qad/icons/rotate.png")
def getNote(self):
# impostare le note esplicative del comando
return QadMsg.translate("Command_ROTATE", "Rotates objects around a base point.")
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
self.SSGetClass = QadSSGetClass(plugIn)
self.SSGetClass.onlyEditableLayers = True
self.entitySet = QadEntitySet()
self.basePt = None
self.copyFeatures = False
self.Pt1ReferenceAng = None
self.ReferenceAng = 0
self.Pt1NewAng = None
def __del__(self):
QadCommandClass.__del__(self)
del self.SSGetClass
def getPointMapTool(self, drawMode = QadGetPointDrawModeEnum.NONE):
if self.step == 0: # quando si é in fase di selezione entità
return self.SSGetClass.getPointMapTool()
else:
if (self.plugIn is not None):
if self.PointMapTool is None:
self.PointMapTool = Qad_rotate_maptool(self.plugIn)
return self.PointMapTool
else:
return None
#============================================================================
# rotate
#============================================================================
def rotate(self, f, basePt, angle, rotFldName, layerEntitySet, entitySet):
# verifico se l'entità appartiene ad uno stile di quotatura
dimEntity = QadDimStyles.getDimEntity(layerEntitySet.layer, f.id())
if dimEntity is None:
# ruoto la feature e la rimuovo da entitySet (é la prima)
f.setGeometry(qad_utils.rotateQgsGeometry(f.geometry(), basePt, angle))
if len(rotFldName) > 0:
rotValue = f.attribute(rotFldName)
rotValue = 0 if rotValue is None else qad_utils.toRadians(rotValue) # la rotazione é in gradi nel campo della feature
rotValue = rotValue + angle
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:
# ruoto la quota e la rimuovo da entitySet
dimEntitySet = dimEntity.getEntitySet()
if self.copyFeatures == False:
if dimEntity.deleteToLayers(self.plugIn) == False:
return False
dimEntity.rotate(self.plugIn, basePt, angle)
if dimEntity.addToLayers(self.plugIn) == False:
return False
entitySet.subtract(dimEntitySet)
return True
def RotateGeoms(self, angle):
# copio entitySet
entitySet = QadEntitySet(self.entitySet)
self.plugIn.beginEditCommand("Feature rotated", entitySet.getLayerList())
for layerEntitySet in entitySet.layerEntitySetList:
layer = layerEntitySet.layer
#.........这里部分代码省略.........
开发者ID:lao-tseu-is-alive,项目名称:QAD,代码行数:101,代码来源:qad_rotate_cmd.py
示例20: QadMAPMPEDITCommandClass
class QadMAPMPEDITCommandClass(QadCommandClass):
def instantiateNewCmd(self):
""" istanzia un nuovo comando dello stesso tipo """
return QadMAPMPEDITCommandClass(self.plugIn)
def getName(self):
return QadMsg.translate("Command_list", "MAPMPEDIT")
def getEnglishName(self):
return "MAPMPEDIT"
def connectQAction(self, action):
QObject.connect(action, SIGNAL("triggered()"), self.plugIn.runMAPMPEDITCommand)
def getIcon(self):
return QIcon(":/plugins/qad/icons/mapmpedit.png")
def getNote(self):
# impostare le note esplicative del comando
return QadMsg.translate("Command_MAPMPEDIT", "Modifies existing polygon.")
def __init__(self, plugIn):
QadCommandClass.__init__(self, plugIn)
self.poligonEntity = QadEntity()
self.SSGetClass = QadSSGetClass(plugIn)
self.SSGetClass.onlyEditableLayers = False
self.SSGetClass.checkDimLayers = False # scarto le quote
self.entSelClass = None
self.currSubGeom = None
self.currAtSubGeom = None
self.nOperationsToUndo = 0
def __del__(self):
QadCommandClass.__del__(self)
del self.SSGetClass
self.poligonEntity.deselectOnLayer()
def getPointMapTool(self, drawMode = QadGetPointDrawModeEnum.NONE):
if self.step == 1 or self.step == 4: # quando si é in fase di selezione entità
return self.entSelClass.getPointMapTool(drawMode)
elif self.step == 3 or self.step == 5 or \
self.step == 6 or self.step == 7 or self.step == 8: # quando si é in fase di selezione gruppo entità
return self.SSGetClass.getPointMapTool()
else:
return QadCommandClass.getPointMapTool(self, drawMode)
def getCurrentContextualMenu(self):
if self.step == 1 or self.step == 4: # quando si é in fase di selezione entità
return self.entSelClass.getCurrentContextualMenu()
elif self.step == 3 or self.step == 5 or \
self.step == 6 or self.step == 7 or self.step == 8: # quando si é in fase di selezione gruppo entità
return self.SSGetClass.getCurrentContextualMenu()
else:
return self.contextualMenu
def reinitSSGetClass(self):
checkPointLayer = self.SSGetClass.checkPointLayer
del self.SSGetClass
self.SSGetClass = QadSSGetClass(self.plugIn)
self.SSGetClass.onlyEditableLayers = False
self.SSGetClass.checkDimLayers = False # scarto le quote
self.SSGetClass.checkPointLayer = checkPointLayer
#============================================================================
# setCurrentSubGeom
#============================================================================
def setCurrentSubGeom(self, entSelClass):
"""
Setta la sottogeometria corrente
"""
self.currSubGeom = None
self.currAtSubGeom = None
# verifico che sia stata selezionata un'entità
if entSelClass.entity.isInitialized() == False:
self.showMsg(QadMsg.translate("QAD", &
|
请发表评论