Exemple #1
0
 def addPointToRubberBand(self, point, doUpdate = True):
    numberOfVertices = self.rubberBand.numberOfVertices()
       
    if numberOfVertices == 2:
       # per un baco non ancora capito: se la linea ha solo 2 vertici e 
       # hanno la stessa x o y (linea orizzontale o verticale) 
       # la linea non viene disegnata perciò sposto un pochino la x o la y                 
       adjustedPoint = qad_utils.getAdjustedRubberBandVertex(self.rubberBand.getPoint(0, 0), point)                                                               
       self.rubberBand.addPoint(adjustedPoint, doUpdate)
    else:
       self.rubberBand.addPoint(point, doUpdate)
 def addPointToRubberBand(self, point, doUpdate = True):
    numberOfVertices = self.rubberBand.numberOfVertices()
       
    if numberOfVertices == 2:
       # per un baco non ancora capito: se la linea ha solo 2 vertici e 
       # hanno la stessa x o y (linea orizzontale o verticale) 
       # la linea non viene disegnata perciò sposto un pochino la x o la y                 
       adjustedPoint = qad_utils.getAdjustedRubberBandVertex(self.rubberBand.getPoint(0, 0), point)                                                               
       self.rubberBand.addPoint(adjustedPoint, doUpdate)
    else:
       self.rubberBand.addPoint(point, doUpdate)
Exemple #3
0
   def moveElastic(self, point):
      numberOfVertices = self.__RubberBand.numberOfVertices()
      if numberOfVertices > 0:         
         if numberOfVertices == 2:
            # per un baco non ancora capito: se la linea ha solo 2 vertici e 
            # hanno la stessa x o y (linea orizzontale o verticale) 
            # la linea non viene disegnata perciò sposto un pochino la x o la y         
            adjustedPoint = qad_utils.getAdjustedRubberBandVertex(self.__RubberBand.getPoint(0, 0), point)                     
            self.__RubberBand.movePoint(numberOfVertices - 1, adjustedPoint)
         else:
            p1 = self.__RubberBand.getPoint(0, 0)

            if point.x() > p1.x(): # se il punto è a destra di p1 (punto iniziale)
               self.__RubberBand.setFillColor(self.rectangleWindowSelectionColor)
            else:
               self.__RubberBand.setFillColor(self.rectangleCrossingSelectionColor)
            
            adjustedPoint = qad_utils.getAdjustedRubberBandVertex(p1, point)                     
            self.__RubberBand.movePoint(numberOfVertices - 3, QgsPoint(p1.x(), adjustedPoint.y()))
            self.__RubberBand.movePoint(numberOfVertices - 2, adjustedPoint)
            self.__RubberBand.movePoint(numberOfVertices - 1, QgsPoint(adjustedPoint.x(), p1.y()))            
Exemple #4
0
   def setStartPoint(self, startPoint):
      self.__startPoint = startPoint
      self.__QadSnapper.setStartPoint(startPoint)
      
      if self.getDrawMode() == QadGetPointDrawModeEnum.ELASTIC_LINE:
         # previsto uso della linea elastica
         self.__RubberBand.reset(QGis.Line)
         #numberOfVertices = self.__RubberBand.numberOfVertices()
         #if numberOfVertices == 2:
         #   self.__RubberBand.removeLastPoint()
         #   self.__RubberBand.removeLastPoint()
         self.__RubberBand.addPoint(startPoint, False)
         
         point = self.toMapCoordinates(self.canvas.mouseLastXY())
         # per un baco non ancora capito: se la linea ha solo 2 vertici e 
         # hanno la stessa x o y (linea orizzontale o verticale) 
         # la linea non viene disegnata perciò sposto un pochino la x o la y
         point = qad_utils.getAdjustedRubberBandVertex(startPoint, point)                                          
                
         self.__RubberBand.addPoint(point, True)
      elif self.getDrawMode() == QadGetPointDrawModeEnum.ELASTIC_RECTANGLE:
         # previsto uso del rettangolo elastico
         point = self.toMapCoordinates(self.canvas.mouseLastXY())

         self.__RubberBand.reset(QGis.Polygon)
         self.__RubberBand.addPoint(startPoint, False)
         
         # per un baco non ancora capito: se la linea ha solo 2 vertici e 
         # hanno la stessa x o y (linea orizzontale o verticale) 
         # la linea non viene disegnata perciò sposto un pochino la x o la y
         point = qad_utils.getAdjustedRubberBandVertex(startPoint, point)                                          
                
         self.__RubberBand.addPoint(QgsPoint(startPoint.x(), point.y()), False)
         self.__RubberBand.addPoint(point, False)
         self.__RubberBand.addPoint(QgsPoint(point.x(), startPoint.y()), True)
         
      self.__QadSnapPointsDisplayManager.setStartPoint(startPoint)