function pts = cv_box_pts(side_x,side_y,side_z,step_x,step_y,step_z)
%
% cv_ - 
% Call:  = cv_();
% On input:
%     : 
% On output:
%     : 
% Author:
%     Tom Henderson
%     7 January 1999
% Custom Functions Used:
%     none
% Method:
%     Generate points on 3 orthogonal faces; copy those to parallel face
% Testing:
% > b = cv_box_pts(2,2,2,2,2,2)
%
% b =
%
%    -1    -1     1     0     0     1
%    -1     1     1     0     0     1
%     1    -1     1     0     0     1
%     1     1     1     0     0     1
%    -1    -1    -1     0     0     1
%    -1     1    -1     0     0     1
%     1    -1    -1     0     0     1
%     1     1    -1     0     0     1
%     1    -1     1     1     0     0
%     1     1     1     1     0     0
%     1    -1    -1     1     0     0
%     1     1    -1     1     0     0
%    -1    -1     1     1     0     0
%    -1     1     1     1     0     0
%    -1    -1    -1     1     0     0
%    -1     1    -1     1     0     0
%    -1     1    -1     0    -1     0
%    -1     1     1     0    -1     0
%     1     1    -1     0    -1     0
%     1     1     1     0    -1     0
%    -1    -1    -1     0    -1     0
%    -1    -1     1     0    -1     0
%     1    -1    -1     0    -1     0
%     1    -1     1     0    -1     0
%
% >
%
f1 = cv_rect_pts(side_x,side_y,step_x,step_y);
f1(:,3) = side_z/2;
f2 = f1;
f2(:,3) = -side_z/2;
f2(:,4:6) = -f1(:,4:6);
f3_temp = cv_rect_pts(side_y,side_z,step_y,step_z);
T1 = [0 0 1 side_x/2; 0 1 0 0; -1 0 0 0; 0 0 0 1];
f3 = cv_trnsfm6(T1, f3_temp);
f4 = f3;
f4(:,1) = -side_x/2;
f4(:,4:6) = -f3(:,4:6);
f5_temp = cv_rect_pts(side_x,side_z,step_x,step_z);
T2 = [1 0 0 0; 0 0 -1 side_y/2; 0 1 0 0; 0 0 0 1];
f5 = cv_trnsfm6(T2, f5_temp);
f6 = f5;
f6(:,2) = -side_y/2;
f6(:,4:6) = -f5(:,4:6);
pts = [f1; f2; f3; f4; f5; f6];
