@@ -8,6 +8,8 @@ module UnitfulCoordinateSystems
8
8
9
9
include (" components.jl" )
10
10
11
+ include (" accessors.jl" )
12
+
11
13
# ##########################################################################
12
14
# UNIT VECTORS
13
15
# ##########################################################################
@@ -46,130 +48,7 @@ module UnitfulCoordinateSystems
46
48
export unitvector_x, x̂, unitvector_y, ŷ, unitvector_z, ẑ
47
49
export unitvector_rho, ρ̂, unitvec_r, r̂, unitvec_theta, θ̂, unitvec_phi, φ̂
48
50
49
-
50
- # ##########################################################################
51
- # ACCESSOR FUNCTIONS
52
- # ##########################################################################
53
-
54
- function Base. getproperty (coord:: CoordinatePolar , sym:: Symbol )
55
- if (sym == :r ) || (sym == :phi )
56
- return getfield (coord, sym)
57
- elseif sym == :x
58
- return x (coord)
59
- elseif sym == :y
60
- return y (coord)
61
- elseif sym == :z
62
- return z (coord)
63
- elseif (sym || :rho ) || (sym == :ρ )
64
- return rho (coord)
65
- elseif (sym == :φ ) || (sym == :ϕ )
66
- return phi (coord)
67
- elseif (sym == :θ ) || (sym == :ϑ )
68
- return theta (coord)
69
- else # Fallback
70
- return getfield (coord, sym)
71
- end
72
- end
73
-
74
- function Base. getproperty (coord:: CoordinateRectangular , sym:: Symbol )
75
- if (sym == :x ) || (sym == :y )
76
- getfield (coord, sym)
77
- elseif sym == :z
78
- return z (coord)
79
- elseif sym == :r
80
- return r (coord)
81
- elseif (sym == :rho ) || (sym == :ρ )
82
- return rho (coord)
83
- elseif (sym == :phi ) || (sym == :φ ) || (sym == :ϕ )
84
- return phi (coord)
85
- elseif (sym == :theta ) || (sym == :θ ) || (sym == :ϑ )
86
- return theta (coord)
87
- else # Fallback
88
- return getfield (coord, sym)
89
- end
90
- end
91
51
92
- function Base. getproperty (coord:: CoordinateCartesian , sym:: Symbol )
93
- if (sym == :x ) || (sym == :y ) || (sym == :z )
94
- getfield (coord, sym)
95
- elseif sym == :r
96
- return r (coord)
97
- elseif (sym == :rho ) || (sym == :ρ )
98
- return rho (coord)
99
- elseif (sym == :phi ) || (sym == :φ ) || (sym == :ϕ )
100
- return phi (coord)
101
- elseif (sym == :theta ) || (sym == :θ ) || (sym == :ϑ )
102
- return theta (coord)
103
- else # Fallback
104
- return getfield (coord, sym)
105
- end
106
- end
107
-
108
- function Base. getproperty (coord:: CoordinateCylindrical , sym:: Symbol )
109
- if (sym == :rho ) || (sym == :phi ) || (sym == :z )
110
- getfield (coord, sym)
111
- elseif sym == :x
112
- return x (coord)
113
- elseif sym == :y
114
- return y (coord)
115
- elseif sym == :r
116
- return r (coord)
117
- elseif sym == :ρ
118
- return rho (coord)
119
- elseif (sym == :φ ) || (sym == :ϕ )
120
- return phi (coord)
121
- elseif (sym == :theta ) || (sym == :θ ) || (sym == :ϑ )
122
- return theta (coord)
123
- else # Fallback
124
- return getfield (coord, sym)
125
- end
126
- end
127
-
128
- function Base. getproperty (coord:: CoordinateSpherical , sym:: Symbol )
129
- if (sym == :r ) || (sym == :theta ) || (sym == :phi )
130
- getfield (coord, sym)
131
- elseif sym == :x
132
- return x (coord)
133
- elseif sym == :y
134
- return y (coord)
135
- elseif sym == :z
136
- return z (coord)
137
- elseif sym == :r
138
- return r (coord)
139
- elseif (sym == :rho ) || (sym == :ρ )
140
- return rho (coord)
141
- elseif (sym == :φ ) || (sym == :ϕ )
142
- return phi (coord)
143
- elseif (sym == :θ ) || (sym == :ϑ )
144
- return theta (coord)
145
- else # Fallback
146
- return getfield (coord, sym)
147
- end
148
- end
149
-
150
- function Base. getindex (r:: CoordinateRectangular , i:: Int )
151
- if i == 1
152
- return r. x
153
- elseif i == 2
154
- return r. y
155
- else
156
- error (" r[$i ] undefined for a CoordinateRectangular" )
157
- end
158
- end
159
-
160
- function Base. getindex (r:: CoordinateCartesian , i:: Int )
161
- if i == 1
162
- return r. x
163
- elseif i == 2
164
- return r. y
165
- elseif i == 3
166
- return r. z
167
- else
168
- error (" r[$i ] undefined for a CoordinateCartesian" )
169
- end
170
- end
171
-
172
-
173
52
# ###########################################################################
174
53
# EXTRA COORDINATE CONSTRUCTORS
175
54
# ###########################################################################
0 commit comments