def containsPt(self, point): x = point[0] y = point[1] if x < self.minX or x > self.maxX: return True if y < self.minY or y > self.maxY: return True for obs in self.obstacles: if obs.get_path().contains_point([x, y]): return True shapelyPt = Point(x, y) for poly in self.buffedPoly: if shapelyPt.within(poly): return True return False
def contains(self, nodePt): x = nodePt.x y = nodePt.y if x < self.minX + self.buff or x > self.maxX - self.buff: return True if y < self.minY + self.buff or y > self.maxY - self.buff: return True # for obs in self.obstacles: # if obs.get_path().contains_point([nodePt.x, nodePt.y]): # return True shapelyPt = Point(x, y) for poly in self.buffedPoly: if shapelyPt.within(poly): return True return False
def pose_inside_model(pose: Tuple[float, float, float], model: PrimitiveModel) -> bool: '''Returns True if the given position is in the polygon obtained by projecting the given model onto the xy-plane and False otherwise. Keyword arguments: pose: Tuple[float, float, float] -- a 2D pose model: PrimitiveModel -- a model of an object in the environment ''' point = Point(pose[0], pose[1]) model_polygon = Polygon(((model.pose[0][0] - model.visual_size[0], model.pose[0][1] - model.visual_size[1]), (model.pose[0][0] - model.visual_size[0], model.pose[0][1] + model.visual_size[1]), (model.pose[0][0] + model.visual_size[0], model.pose[0][1] + model.visual_size[1]), (model.pose[0][0] + model.visual_size[0], model.pose[0][1] - model.visual_size[1]))) return point.within(model_polygon)
opath = "%s/%s" % (args.outdir.rstrip('/'),args.lasfile.split('/')[-1]) # prepare statistics points_read = 0 points_kept = 0 # open in- and output LAS-file f = lasfile.File(fpath,mode='r') o = lasfile.File(opath, header=f.header, mode='w') # extract points #print "processing %s ..." % args.lasfile for point in f: points_read += 1 p = Point(point.x, point.y) if p.within(wkt_poly) or p.intersects(wkt_poly): points_kept += 1 o.write(point) # give feedback and remove empty output file o.close() f.close() if points_kept == 0: print " no points found within WKT-poly" os.remove(opath) else: print " created %s (kept %s of %s points)" % (opath,points_kept,points_read) # log times time_end = time.time() csv.write('%s;%s;%s;%s;%s;%s;%s\n' % (