"""Grass feature assembly (`landuse=grass`) with optional tuft scattering.""" from osmassets.geom import clip_polygon from osmassets.mesh import MeshBatch def assemble(ring, way_id, scene_xmin, scene_xmax, scene_ymin, scene_ymax, green_c, grass_mat, tuft_variants, add_grass_tufts_fn): ring = clip_polygon(ring, scene_xmin, scene_xmax, scene_ymin, scene_ymax) name = "Grass_" + str(way_id) focus = list(ring) if len(ring) < 3: return 0, 0, focus batch = MeshBatch(name, green_c, grass_mat) batch.add_polygon(ring, 0.015) obj = batch.finish() tufts = 0 if tuft_variants: tufts = add_grass_tufts_fn(name, ring, tuft_variants, green_c) if obj: obj["grass_tufts"] = tufts return 1, tufts, focus