         
         var currentTime = getCurrentMillis()
         var elapsedTime = currentTime - startTime
-        //print("Data added to queue in: \(Double(elapsedTime)) (ms)")
         print("Total dataCounter: \(dataCounter)")
         
         let elevPoints: [ElevationPoint] = pointsOnLine(demData, viewpoint: observPt, radius: radius, numQuadrants: numQuadrants);

        var viewshedMatrix = [[Int]](count:Srtm3.MAX_SIZE, repeatedValue:[Int](count:Srtm3.MAX_SIZE, repeatedValue:0))
        var cellsInRadius:[(x:Int, y:Int)] = []
        
        /*
        var cellsInRadius:[(x:Int, y:Int)] = []
        let perimeter:[(x:Int, y:Int)] = getAnySizedPerimeter(observPt.getXCoor(), inY: observPt.getYCoor(), radius: radius, numberOfQuadrants: numOfPeers, whichQuadrant: quadrant2Calc)
        
        for (x, y) in perimeter {
        let pointsInLine:[(x:Int, y:Int)] = findLine(observPt.getXCoor(), y1: observPt.getYCoor(), x2: x, y2: y)
        cellsInRadius.appendContentsOf(pointsInLine)
        //print("\t\(pointsInLine)")
        //print("==========================")
        }
        print("Data Count: \(cellsInRadius.count)")
        viewshedMatrix = calculateViewshed (cellsInRadius, demData: demData, observPt: observPt, radius: radius, numQuadrants: numOfPeers, quadrant2Calc: quadrant2Calc)
        */
        /*
        let cellsInRadius:[(x:Int, y:Int)] = getCellsInRadius(observPt.getXCoor(), observerY: observPt.getYCoor(), radius: radius, numOfPeers: numOfPeers, quadrant2Calc: quadrant2Calc)
        
        viewshedMatrix = calculateViewshed (cellsInRadius, demData: demData, observPt: observPt, radius: radius, numQuadrants: numOfPeers, quadrant2Calc: quadrant2Calc)
        //for (x, y) in cellsInRadius {
        //    viewshedMatrix[x][y] = 1
        //}
        */
        

        
        cellsInRadius = getCellsInRadius(observPt.getXCoor(), observerY: observPt.getYCoor(), radius: radius, numOfPeers: numOfPeers, quadrant2Calc: quadrant2Calc)
        viewshedMatrix = calculateViewshed (cellsInRadius, demData: demData, observPt: observPt, radius: radius, numQuadrants: numOfPeers, quadrant2Calc: quadrant2Calc)


        } else if (numOfPeers == 3 || numOfPeers >= 5 ) {
            
            // parametric euqation of a circle
            if (quadrant2Calc >= 1) {
               let perimeter:[(x:Int, y:Int)] = getAnySizedPerimeter(observerX, inY:observerY, radius: radius, numberOfQuadrants: numOfPeers, whichQuadrant: quadrant2Calc)
                
                for (x, y) in perimeter {
                    let pointsInLine:[(x:Int, y:Int)] = findLine(observerX, y1: observerY, x2: x, y2: y)
                    cellsInRadius.appendContentsOf(pointsInLine)
                }
            }
        }
        //print("\t\(cellsInRadius)")
        return cellsInRadius
    }
    
