forked from McGill-AML/RecoveryControl-MATLABSimulator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgetwallpts.m
73 lines (58 loc) · 2.19 KB
/
getwallpts.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
function [ wallPts, wallLines ] = getwallpts(wallLoc,wallPlane,wallBottom,wallMiddle,wallHeight,wallWidth)
%getwallpts.m
% Author: Fiona Chui (fiona.chui@mail.mcgill.ca)
% Last Updated: December 12, 2016
% Description:
% Returns points needed to to display wall using fill3, and points to plot
% lines representing middle of wall
%-------------------------------------------------------------------------%
%Returns points needed to to display wall using fill3, and points to plot
%lines representing middle of wall
wallPts = zeros(3,4);
wallLines = zeros(3,4);
wallPts(3,1) = wallBottom + wallHeight;
wallPts(3,2) = wallBottom + wallHeight;
wallPts(3,3) = wallBottom;
wallPts(3,4) = wallBottom;
wallLines(3,1) = wallBottom + wallHeight;
wallLines(3,2) = wallBottom;
wallLines(3,3) = wallBottom + wallHeight/2;
wallLines(3,4) = wallBottom + wallHeight/2;
if sum(wallPlane == 'XZ')==2 || sum(wallPlane == 'ZX')== 2
wallPts(2,1) = wallLoc;
wallPts(2,2) = wallLoc;
wallPts(2,3) = wallLoc;
wallPts(2,4) = wallLoc;
wallPts(1,1) = wallMiddle - wallWidth/2;
wallPts(1,2) = wallMiddle + wallWidth/2;
wallPts(1,3) = wallMiddle + wallWidth/2;
wallPts(1,4) = wallMiddle - wallWidth/2;
wallLines(1,1) = wallMiddle;
wallLines(1,2) = wallMiddle;
wallLines(1,3) = wallMiddle - wallWidth/2;
wallLines(1,4) = wallMiddle + wallWidth/2;
wallLines(2,1) = wallLoc;
wallLines(2,2) = wallLoc;
wallLines(2,3) = wallLoc;
wallLines(2,4) = wallLoc;
elseif (sum(wallPlane == 'YZ')==2 || sum(wallPlane == 'ZY')==2)
wallPts(1,1) = wallLoc;
wallPts(1,2) = wallLoc;
wallPts(1,3) = wallLoc;
wallPts(1,4) = wallLoc;
wallPts(2,1) = wallMiddle - wallWidth/2;
wallPts(2,2) = wallMiddle + wallWidth/2;
wallPts(2,3) = wallMiddle + wallWidth/2;
wallPts(2,4) = wallMiddle - wallWidth/2;
wallLines(1,1) = wallLoc;
wallLines(1,2) = wallLoc;
wallLines(1,3) = wallLoc;
wallLines(1,4) = wallLoc;
wallLines(2,1) = wallMiddle;
wallLines(2,2) = wallMiddle;
wallLines(2,3) = wallMiddle - wallWidth/2;
wallLines(2,4) = wallMiddle + wallWidth/2;
else
error('Invalid vertical wall_plane');
end
end