mask is really a list of indices, not a boolean mask
loop over mask to plot points, will add data masking later
simplify square marker, don't inherit from rect, simplify other square markers, no need to keep width and height