This function creates a 3D stacked block drawing of a binary mask by drawing square patch objects at each face of the mask which borders empty space. It is similar to isosurface, and useful for visualizing a 3D binary mask in its entirety (with no interpolation as in isosurface).
function xface=blockPlot(mask, offset, varargin)
mask - a 3D logical array or a 3D binary mask. The function will draw
boxes around all points (1's) in the mask which border empty
Interior points which do not border any empty space will not be
If no input is given, draws an example (wavy cone)
offset - 3-component vector added to the coordinate of all patches drawn
(default=[0 0 0])
Useful if the user wants to pass only part of the figure to be
drawn, but have the coordinates correct to match another plot
varagin - pair of plot style properties to pass to the patch command.
ex: (...,'color','r'), (...,'facealpha',.5),
xface - returns patch object that was drawn
p=blockPlot(ones([10 10 10]));
p=blockPlot(ones([10 10 10]), [0 0 0], 'facecolor','r', 'facealpha',.5)