def initiateHGraph(self):
		self.sortByYValue(self.hCuts)
		for i in range(len(self.hCuts)):
			hCellCCW = polygonNode.polygonNode()
			hCellCW = polygonNode.polygonNode()
			ccwVerts = []
			cwVerts = []
			extCut = self.getExtendedHCut(self.hCuts[i])
			if extCut == self.hCuts[i]:
				ccwVerts = self.findCounterclockwiseSubpolygonFromHCut(self.hCuts[i])
				cwVerts = self.findClockwiseSubpolygonFromHCut(self.hCuts[i])
			else:
				if self.poly.pointsUp(self.hCuts[i], extCut):
					ccwVerts = self.findCounterclockwiseSubpolygonFromHCut(self.hCuts[i])
					if extCut.p1() == self.hCuts[i].p1():
						cwVerts = self.findClockwiseSubpolygonFromHCut(extCut)
				else:
					cwVerts = self.findClockwiseSubpolygonFromHCut(self.hCuts[i])
					if extCut.p1() == self.hCuts[i].p1():
						ccwVerts = self.findCounterclockwiseSubpolygonFromHCut(extCut)
			if len(ccwVerts) > 0:
				hCellCCW.setPolygon(ccwVerts)
				print "h cell ccw:",
				print hCellCCW.getPolygon().getVertices()
				self.hGraph.append(hCellCCW)
			if len(cwVerts) > 0:
				hCellCW.setPolygon(cwVerts)
				print "h cell cw:",
				print hCellCW.getPolygon().getVertices()
				self.hGraph.append(hCellCW)
	def initiateBeamGraph(self):
		self.sortByXValue(self.beams)
		for i in range(len(self.beams)):
			beamCellCCW = polygonNode.polygonNode()
			beamCellCW = polygonNode.polygonNode()
			ccwVerts = []
			cwVerts = []
			extBeam = self.getExtendedBeam(self.beams[i])
			if extBeam == self.beams[i]:
				ccwVerts = self.findCounterclockwiseSubpolygonFromBeam(self.beams[i])
				cwVerts = self.findClockwiseSubpolygonFromBeam(self.beams[i])
			else:
				if self.poly.pointsRight(self.beams[i], extBeam):
					ccwVerts = self.findCounterclockwiseSubpolygonFromBeam(self.beams[i])
					if extBeam.p1() == self.beams[i].p1():
						cwVerts = self.findClockwiseSubpolygonFromBeam(extBeam)
				else:
					cwVerts = self.findClockwiseSubpolygonFromBeam(self.beams[i])
					if extBeam.p1() == self.beams[i].p1():
						ccwVerts = self.findCounterclockwiseSubpolygonFromBeam(extBeam)
			if len(ccwVerts) > 0:
				beamCellCCW.setPolygon(ccwVerts)
				print "beam cell ccw:",
				print beamCellCCW.getPolygon().getVertices()
				self.beamGraph.append(beamCellCCW)
			if len(cwVerts) > 0:
				beamCellCW.setPolygon(cwVerts)
				print "beam cell cw:",
				print beamCellCW.getPolygon().getVertices()
				self.beamGraph.append(beamCellCW)
	def setCriticalBeam(self):
		pursuerCell = polygonNode.polygonNode()
		for cell in self.hGraph:
			if cell.hasPursuer(self.pursuerCoord):
				pursuerCell = cell
		for beam in self.beams:
			if beam.p1().x() >= self.evaderCoord.x() and beam.p1().x() <= self.pursuerCoord.x() or beam.p1().x() <= self.evaderCoord.x() and beam.p1().x() >= self.pursuerCoord.x():
				extBeam = self.getExtendedBeam(beam)
				if self.beamIntersectsWithEdge(self.getExtendedBeam(beam), QLineF(pursuerCell.getPolygon().getVertices()[0], pursuerCell.getPolygon().getVertices()[len(pursuerCell.getPolygon().getVertices())-2]), QPointF()):
					print extBeam
					self.criticalBeam = extBeam