0001 function varargout = drawBox3d(box, varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031 isBox3d = @(x) validateattributes(x,{'numeric'},...
0032 {'nonempty','nonnan','real','finite','size',[nan,6]});
0033 defOpts.Color = 'b';
0034 [hAx, box, varargin] = ...
0035 parseDrawInput(box, isBox3d, 'line', defOpts, varargin{:});
0036
0037
0038
0039 xmin = box(:,1);
0040 xmax = box(:,2);
0041 ymin = box(:,3);
0042 ymax = box(:,4);
0043 zmin = box(:,5);
0044 zmax = box(:,6);
0045
0046
0047 holdState = ishold(hAx);
0048 hold(hAx, 'on');
0049
0050 nBoxes = size(box, 1);
0051
0052 gh = zeros(nBoxes,1);
0053 for i = 1:nBoxes
0054
0055 sh(1) = drawEdge3d(hAx, [xmin(i) ymin(i) zmin(i) xmax(i) ymin(i) zmin(i)], varargin{:});
0056 sh(2) = drawEdge3d(hAx, [xmin(i) ymin(i) zmin(i) xmin(i) ymax(i) zmin(i)], varargin{:});
0057 sh(3) = drawEdge3d(hAx, [xmax(i) ymin(i) zmin(i) xmax(i) ymax(i) zmin(i)], varargin{:});
0058 sh(4) = drawEdge3d(hAx, [xmin(i) ymax(i) zmin(i) xmax(i) ymax(i) zmin(i)], varargin{:});
0059
0060
0061 sh(5) = drawEdge3d(hAx, [xmin(i) ymin(i) zmin(i) xmin(i) ymin(i) zmax(i)], varargin{:});
0062 sh(6) = drawEdge3d(hAx, [xmax(i) ymin(i) zmin(i) xmax(i) ymin(i) zmax(i)], varargin{:});
0063 sh(7) = drawEdge3d(hAx, [xmin(i) ymin(i) zmax(i) xmax(i) ymin(i) zmax(i)], varargin{:});
0064
0065
0066 sh(8) = drawEdge3d(hAx, [xmin(i) ymax(i) zmin(i) xmin(i) ymax(i) zmax(i)], varargin{:});
0067 sh(9) = drawEdge3d(hAx, [xmin(i) ymin(i) zmax(i) xmin(i) ymax(i) zmax(i)], varargin{:});
0068
0069
0070 sh(10) = drawEdge3d(hAx, [xmin(i) ymax(i) zmax(i) xmax(i) ymax(i) zmax(i)], varargin{:});
0071 sh(11) = drawEdge3d(hAx, [xmax(i) ymax(i) zmin(i) xmax(i) ymax(i) zmax(i)], varargin{:});
0072 sh(12) = drawEdge3d(hAx, [xmax(i) ymin(i) zmax(i) xmax(i) ymax(i) zmax(i)], varargin{:});
0073
0074 gh(i) = hggroup(hAx);
0075 set(sh, 'Parent', gh(i))
0076 end
0077
0078
0079 if ~holdState
0080 hold(hAx, 'off');
0081 end
0082
0083 if nargout > 0
0084 varargout = {gh};
0085 end