1 type Rectangle 2 let material : ControlMaterial @auto 3 4 let size = get_size_atom self 5 val memory@atom = size 6 |> map { w, h -> if w == 0 || h == 0 7 then None 8 else Some (w, h) } 9 10 |> option_map_discard { w, h -> 11 let quad = Quad.create 12 up_left = Vector3.new 13 up_right = Vector3 w.as<f32> 0 0 14 down_left = Vector3 0 h.as<f32> 0 15 down_right = Vector3 w.as<f32> h.as<f32> 0 16 color = Vector3.gray 1 17 18 MeshMemory.from_quad quad } 19 20 val drawable = Drawable 21 mesh = Mesh.from_memory memory@atom 22 material = material.unwrap 23 24 maybe_drawable = drawable 25 26 color@atom.bind { drawable.color = _ } |> push_token 27