# Path: qad_msg.py
# class QadMsgClass():
#    def __init__(self):
#    def translate(self, context, sourceText, disambiguation = None, encoding = QCoreApplication.UnicodeUTF8, n = -1):
# def qadShowPluginHelp(section = "", filename = "index", packageName = None):


from PyQt4.QtCore import *
from qgis.core import *
from qad_arc import *
from qad_circle import *
from qad_msg import QadMsg
import os.path
import math
import sys
import bisect
import qad_utils
      # calcolo le intersezioni delle linee polari
      result = []
      i = 0
      totLines = len(self.__oSnapLinesForPolar)
      while i < totLines:
         line1 = self.__oSnapLinesForPolar[i]
         j = i + 1
         while j < totLines:
            line2 = self.__oSnapLinesForPolar[j]
            point = qad_utils.getIntersectionPointOn2InfinityLines(line1[0], line1[1], line2[0], line2[1])
            if point is not None:
               self.__appendUniquePoint(result, point) # senza duplicazione
            j = j + 1
         i = i + 1
         
      return result
   

   #============================================================================
   # OSnapPointsForPolar
   #============================================================================      
   def __toggleOSnapPointsForPolar(self, point, oSnapPointsForPolar, snapMarkerSizeInMapUnits):
      """
      Aggiunge un punto di osnap usati per l'opzione polare
      se non ancora inserito in lista altrimenti lo rimuove dalla lista
      __oSnapPointsForPolar é un dizionario di liste di punti di snap
      suddivisi per tipi di snap (es. {END : [pt1 .. ptn] MID : [pt1 .. ptn]})
      """
      del self.__oSnapLinesForPolar[:]
      

# Path: qad_msg.py
# class QadMsgClass():
#    def __init__(self):
#    def translate(self, context, sourceText, disambiguation = None, encoding = QCoreApplication.UnicodeUTF8, n = -1):
# def qadShowPluginHelp(section = "", filename = "index", packageName = None):


# Path: qad_snapper.py
from PyQt4.QtCore import *
from qgis.core import *
from qad_arc import *
from qad_circle import *
from qad_msg import QadMsg
import os.path
import math
import sys
import bisect
import qad_utils

      # calcolo le intersezioni delle linee polari
      result = []
      i = 0
      totLines = len(self.__oSnapLinesForPolar)
      while i < totLines:
         line1 = self.__oSnapLinesForPolar[i]
         j = i + 1
         while j < totLines:
            line2 = self.__oSnapLinesForPolar[j]
            point = qad_utils.getIntersectionPointOn2InfinityLines(line1[0], line1[1], line2[0], line2[1])
            if point is not None:
               self.__appendUniquePoint(result, point) # senza duplicazione
            j = j + 1
         i = i + 1
         
      return result
   

   #============================================================================
   # OSnapPointsForPolar
   #============================================================================      
   def __toggleOSnapPointsForPolar(self, point, oSnapPointsForPolar, snapMarkerSizeInMapUnits):
      """
      Aggiunge un punto di osnap usati per l'opzione polare
      se non ancora inserito in lista altrimenti lo rimuove dalla lista
      __oSnapPointsForPolar é un dizionario di liste di punti di snap
      suddivisi per tipi di snap (es. {END : [pt1 .. ptn] MID : [pt1 .. ptn]})
      """
      del self.__oSnapLinesForPolar[:]
      

      autoSnapSize = QadVariables.get(QadMsg.translate("Environment variables", "AUTOSNAPSIZE"))