cornerBall2D

% The same as in cornerBallSparse2D but without the sparse edge.

function q = cornerBall2D(X1,X2,varargin)
seti = varargin{end};
R = seti.rCD/2;

n = sqrt(length(X1)); % n = nCD or nROI

% -- corner: start
qCorner = corner2D(X1,X2,seti); % size 1 x seti.nROI^2 or 1 x seti.nCD^2
qCorner = 0.8*rot90(qCorner,2); % corner right top (0.8 as in twoCornersOneBall2D.m)

% new layer...
lspace = linspace(0,1,n); % values between 0 and 1
L = repmat(lspace,[n 1]); % Layer: left high, right low...
% L is a matrix... but we need a vector...
L = reshape(L,[1 n^2]);
L = 1.5.*L;

qCorner = L.*qCorner;
%-- corner: end

% -- ball: start
qBall = 1.0*((X2-15/32*R).^2 + (X1+15/32*R).^2 <= (1/16*R)^2);
% -- ball: end

% -- all 2 objects together --
q = qCorner + qBall;
q = double(q);

end