Code:

vardef Foo(expr w, h, lh) =
   save pth; path pth;
   save pthtwo; path pthtwo;
   save pththree; path pththree;
   save pic; picture pic;
   pth = fullsquare xysized (w, h);
   pthtwo = fullsquare xysized (2*lh, lh) shifted (-w/2, 2.5*lh);
   pththree = fullsquare xysized (2*lh, lh) shifted (-w/2, lh);
   fill pth withcolor green;
   fill pthtwo withcolor yellow;
   fill pththree withcolor yellow;
   pic := image (
       draw pth;
       draw pthtwo;
       draw pththree;
   );
   % setbounds pic to pth;
   pic
enddef ;


Call:

\startMPpage

picture s ; s := Foo(8cm, 2cm, 0.25cm);

draw s;

drawdot center leftboundary  s withpen pencircle scaled 2 withcolor green;
drawdot center rightboundary s withpen pencircle scaled 2 withcolor blue;
drawdot point .25 along topboundary s withpen pencircle scaled 2 withcolor yellow;
drawdot .25[llcorner s, lrcorner s] withpen pencircle scaled 2 withcolor magenta;
drawdot origin  withpen pencircle scaled 4 withcolor red;

\stopMPpage


Output: