def vmethod_0(self, obstacle_0, returnList): obstacleAreaResult_0 = ObstacleAreaResult.Primary double_0 = None double_1 = self.mocma double_2 = double_1 double_3 = None # if (MathHelper.smethod_44(self.selectionArea, obstacle_0.Position, obstacle_0.tolerance)): #obstacleAreaResult_0 = self.primaryArea.imethod_1(obstacle_0.Position, obstacle_0.tolerance, double_1, out double_2, out double_0); if not MathHelper.pointInPolygon(self.primaryArea, obstacle_0.Position, obstacle_0.tolerance): double_0 = 0.0 double_2 = 0.0 #List<SecondaryObstacleArea>.Enumerator enumerator = self.secondaryAreas.GetEnumerator(); for current in self.secondaryAreas: try: num = None num1 = None resultList = [] obstacleAreaResult = current.imethod_1( obstacle_0.Position, obstacle_0.tolerance, double_1, resultList) if obstacleAreaResult == ObstacleAreaResult.Outside or len( resultList) < 2: obstacleAreaResult_0 = ObstacleAreaResult.Outside continue num = resultList[0] num1 = resultList[1] if obstacleAreaResult == ObstacleAreaResult.Primary: obstacleAreaResult_0 = obstacleAreaResult double_2 = num double_0 = num1 break elif obstacleAreaResult == ObstacleAreaResult.Secondary and ( num > double_2 or double_2 == 0.0): obstacleAreaResult_0 = obstacleAreaResult double_2 = num double_0 = num1 break except IndexError: pass if obstacleAreaResult_0 != ObstacleAreaResult.Outside: obstacle_0.area = obstacleAreaResult_0 point3d = MathHelper.distanceBearingPoint(obstacle_0.Position, self.tr180, obstacle_0.tolerance) double_3 = self.vmethod_3(point3d, False) if obstacleAreaResult_0 == ObstacleAreaResult.Primary: double_3 = double_3 + (double_1 - double_2) returnList.append(double_0) returnList.append(double_1) returnList.append(double_2) returnList.append(double_3) return True return False
def vmethod_0(self, obstacle_0, returnList): point3d = MathHelper.distanceBearingPoint(obstacle_0.Position, self.tr, obstacle_0.tolerance) obstacleAreaResult_0 = ObstacleAreaResult.Primary double_0 = None double_1 = self.getMOC(point3d) double_3 = None double_2 = double_1 if not MathHelper.pointInPolygon(self.primaryArea, obstacle_0.Position, obstacle_0.tolerance): double_0 = 0.0 double_2 = 0.0 for current in self.secondaryAreas: try: num = None num1 = None resultList = [] obstacleAreaResult = current.imethod_1( obstacle_0.Position, obstacle_0.tolerance, double_1, resultList) if obstacleAreaResult == ObstacleAreaResult.Outside: obstacleAreaResult_0 = ObstacleAreaResult.Outside continue num = resultList[0] num1 = resultList[1] if (obstacleAreaResult == ObstacleAreaResult.Primary): obstacleAreaResult_0 = obstacleAreaResult double_2 = num double_0 = num1 break elif obstacleAreaResult == ObstacleAreaResult.Secondary and ( num > double_2 or double_2 == 0.0): obstacleAreaResult_0 = obstacleAreaResult double_2 = num double_0 = num1 except IndexError: pass if obstacleAreaResult_0 != ObstacleAreaResult.Outside: obstacle_0.area = obstacleAreaResult_0 double_3 = self.vmethod_3(point3d, False) if obstacleAreaResult_0 == ObstacleAreaResult.Secondary: double_3 = double_3 + (double_1 - double_2) returnList.append(double_0) returnList.append(double_1) returnList.append(double_2) returnList.append(double_3) return True return False
def vmethod_0(self, obstacle_0, returnList): double_0 = None double_3 = None point3d = MathHelper.getIntersectionPoint( self.ptTHR, self.ptEND, obstacle_0.Position, MathHelper.distanceBearingPoint(obstacle_0.Position, self.trm90, 100)) obstacleAreaResult_0 = ObstacleAreaResult.Primary num = MathHelper.calcDistance(self.ptTHR, point3d) - obstacle_0.tolerance if not MathHelper.smethod_115(point3d, self.ptTHR, self.ptTHRm90): num = self.xstart else: num = max([self.xstart, num]) double_1 = self.mocma + (num - self.xstart) * self.tanslope double_2 = double_1 if not MathHelper.pointInPolygon(self.primaryArea, obstacle_0.Position, obstacle_0.tolerance): double_0 = 0.0 double_2 = 0.0 for current in self.secondaryAreas: try: num1 = None num2 = None resultList = [] obstacleAreaResult = current.imethod_1( obstacle_0.Position, obstacle_0.tolerance, double_1, resultList) if obstacleAreaResult == ObstacleAreaResult.Outside: obstacleAreaResult_0 = ObstacleAreaResult.Outside continue num1 = resultList[0] num2 = resultList[1] # obstacleAreaResult = current.imethod_1(obstacle_0.Position, obstacle_0.tolerance, double_1, out num1, out num2); if obstacleAreaResult == ObstacleAreaResult.Primary: obstacleAreaResult_0 = obstacleAreaResult double_2 = num1 double_0 = num2 break elif obstacleAreaResult == ObstacleAreaResult.Secondary and ( num1 > double_2 or double_2 == 0.0): obstacleAreaResult_0 = obstacleAreaResult double_2 = num1 double_0 = num2 except IndexError: pass if obstacleAreaResult_0 != ObstacleAreaResult.Outside: obstacle_0.area = obstacleAreaResult_0 point3d1 = MathHelper.distanceBearingPoint(obstacle_0.Position, self.tr, obstacle_0.tolerance) double_3 = self.vmethod_3(point3d1, False) if obstacleAreaResult_0 == ObstacleAreaResult.Primary: double_3 = double_3 + (double_1 - double_2) returnList.append(double_0) returnList.append(double_1) returnList.append(double_2) returnList.append(double_3) return True return False
def method_0(self, oasSurface_0, obstacle_0, lstDouble3): double_0 = lstDouble3[0] double_1 = lstDouble3[1] double_2 = 0 flag = False if define._units == QGis.Meters: position = obstacle_0.position else: position = obstacle_0.positionDegree if oasSurface_0 == OasSurface.OFZ: if (MathHelper.pointInPolygon(self.Ofz, position, obstacle_0.tolerance)): double_0 = max([double_0, self.E.x()]) double_2 = 0 flag = True elif oasSurface_0 == OasSurface.W: if (MathHelper.pointInPolygon(self.W, position, obstacle_0.tolerance)): if not self.HasWS or (self.cat != OasCategory.SBAS_APV1 and self.cat != OasCategory.SBAS_APV2): double_0 = max([double_0, self.C.x()]) else: double_0 = max([double_0, self.CCC.x()]) double_2 = max([ 0, OasObstacles.constants.WA * double_0 + OasObstacles.constants.WC ]) flag = True elif oasSurface_0 == OasSurface.WS: if (MathHelper.pointInPolygon(self.WS, position, obstacle_0.tolerance)): if (not self.HasWS or self.cat != OasCategory.ILS2AP): double_0 = max([double_0, self.C.x()]) else: double_0 = max([double_0, self.CCC.x()]) double_2 = max([ 0, OasObstacles.constants.WSA * double_0 + OasObstacles.constants.WSC ]) flag = True elif oasSurface_0 == OasSurface.Z: if (MathHelper.pointInPolygon(self.Z, position, obstacle_0.tolerance)): double_0 = min( [double_0 + 2 * obstacle_0.tolerance, self.E.x()]) double_2 = max([ 0, OasObstacles.constants.ZA * double_0 + OasObstacles.constants.ZC ]) flag = True elif oasSurface_0 == OasSurface.X1: if (MathHelper.pointInPolygon(self.X1, position, obstacle_0.tolerance)): double_0 = max([double_0, self.D.x()]) if ((OasObstacles.constants.YA * double_0 - OasObstacles.constants.XA * double_0 + OasObstacles.constants.YC - OasObstacles.constants.XC) / (OasObstacles.constants.XB - OasObstacles.constants.YB) < double_1): double_0 = ( OasObstacles.constants.YB * double_1 - OasObstacles.constants.XB * double_1 + OasObstacles.constants.YC - OasObstacles.constants.XC ) / (OasObstacles.constants.XA - OasObstacles.constants.YA) double_2 = OasObstacles.constants.XA * double_0 + OasObstacles.constants.XB * double_1 + OasObstacles.constants.XC if (self.HasWS and self.cat == OasCategory.ILS2AP): if (double_0 <= self.CCC.x()): double_2 = max([ double_2, OasObstacles.constants.WA * double_0 + OasObstacles.constants.WC ]) else: double_2 = max([ double_2, OasObstacles.constants.WSA * double_0 + OasObstacles.constants.WSC ]) elif not self.HasWS or (self.cat != OasCategory.SBAS_APV1 and self.cat != OasCategory.SBAS_APV2): double_2 = max([ double_2, OasObstacles.constants.WA * double_0 + OasObstacles.constants.WC ]) elif (double_0 <= self.CCC.x()): double_2 = max([ double_2, OasObstacles.constants.WSA * double_0 + OasObstacles.constants.WSC ]) else: double_2 = max([ double_2, OasObstacles.constants.WA * double_0 + OasObstacles.constants.WC ]) double_2 = max([0, double_2]) double_1 = -( double_2 - OasObstacles.constants.XA * double_0 - OasObstacles.constants.XC) / OasObstacles.constants.XB flag = True elif oasSurface_0 == OasSurface.X2: if (MathHelper.pointInPolygon(self.X2, position, obstacle_0.tolerance)): double_0 = max([double_0, self.D.x()]) if ((OasObstacles.constants.YA * double_0 - OasObstacles.constants.XA * double_0 + OasObstacles.constants.YC - OasObstacles.constants.XC) / (OasObstacles.constants.XB - OasObstacles.constants.YB) < double_1): double_0 = ( OasObstacles.constants.YB * double_1 - OasObstacles.constants.XB * double_1 + OasObstacles.constants.YC - OasObstacles.constants.XC ) / (OasObstacles.constants.XA - OasObstacles.constants.YA) double_2 = OasObstacles.constants.XA * double_0 + OasObstacles.constants.XB * double_1 + OasObstacles.constants.XC if (self.HasWS and self.cat == OasCategory.ILS2AP): if (double_0 <= self.CCC.x()): double_2 = max([ double_2, OasObstacles.constants.WA * double_0 + OasObstacles.constants.WC ]) else: double_2 = max([ double_2, OasObstacles.constants.WSA * double_0 + OasObstacles.constants.WSC ]) elif not self.HasWS or (self.cat != OasCategory.SBAS_APV1 and self.cat != OasCategory.SBAS_APV2): double_2 = max([ double_2, OasObstacles.constants.WA * double_0 + OasObstacles.constants.WC ]) elif (double_0 <= self.CCC.x()): double_2 = max([ double_2, OasObstacles.constants.WSA * double_0 + OasObstacles.constants.WSC ]) else: double_2 = max([ double_2, OasObstacles.constants.WA * double_0 + OasObstacles.constants.WC ]) double_2 = max([0, double_2]) double_1 = ( double_2 - OasObstacles.constants.XA * double_0 - OasObstacles.constants.XC) / OasObstacles.constants.XB flag = True elif oasSurface_0 == OasSurface.Y1: if MathHelper.pointInPolygon(self.Y1, position, obstacle_0.tolerance): double_0 = max([double_0, self.EE.x()]) double_1 = max([ double_1, (OasObstacles.constants.YA * double_0 - OasObstacles.constants.XA * double_0 + OasObstacles.constants.YC - OasObstacles.constants.XC) / (OasObstacles.constants.XB - OasObstacles.constants.YB) ]) double_2 = max([ OasObstacles.constants.YA * double_0 + OasObstacles.constants.YB * double_1 + OasObstacles.constants.YC, OasObstacles.constants.ZA * double_0 + OasObstacles.constants.ZC ]) double_2 = max([0, double_2]) double_1 = -( double_2 - OasObstacles.constants.YA * double_0 - OasObstacles.constants.YC) / OasObstacles.constants.YB flag = True elif oasSurface_0 == OasSurface.Y2: if MathHelper.pointInPolygon(self.Y2, position, obstacle_0.tolerance): double_0 = max([double_0, self.EE.x()]) double_1 = max([ double_1, (OasObstacles.constants.YA * double_0 - OasObstacles.constants.XA * double_0 + OasObstacles.constants.YC - OasObstacles.constants.XC) / (OasObstacles.constants.XB - OasObstacles.constants.YB) ]) double_2 = max([ OasObstacles.constants.YA * double_0 + OasObstacles.constants.YB * double_1 + OasObstacles.constants.YC, OasObstacles.constants.ZA * double_0 + OasObstacles.constants.ZC ]) double_2 = max([0, double_2]) double_1 = ( double_2 - OasObstacles.constants.YA * double_0 - OasObstacles.constants.YC) / OasObstacles.constants.YB flag = True if flag: lstDouble3[0] = double_0 lstDouble3[1] = double_1 lstDouble3[2] = double_2 return True else: return False