23 lines
777 B
Python
23 lines
777 B
Python
"""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):
|
|
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(name, ring, tuft_variants, green_c)
|
|
if obj:
|
|
obj["grass_tufts"] = tufts
|
|
return 1, tufts, focus
|