Skip to content

Commit 1f6e98e

Browse files
committed
Split accessors into separate source file
1 parent fe9fc8e commit 1f6e98e

File tree

2 files changed

+123
-123
lines changed

2 files changed

+123
-123
lines changed

src/UnitfulCoordinateSystems.jl

+2-123
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ module UnitfulCoordinateSystems
88

99
include("components.jl")
1010

11+
include("accessors.jl")
12+
1113
###########################################################################
1214
# UNIT VECTORS
1315
###########################################################################
@@ -46,130 +48,7 @@ module UnitfulCoordinateSystems
4648
export unitvector_x, x̂, unitvector_y, ŷ, unitvector_z, ẑ
4749
export unitvector_rho, ρ̂, unitvec_r, r̂, unitvec_theta, θ̂, unitvec_phi, φ̂
4850

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
9151

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-
17352
############################################################################
17453
# EXTRA COORDINATE CONSTRUCTORS
17554
############################################################################

src/accessors.jl

+121
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
###########################################################################
2+
# ACCESSOR FUNCTIONS
3+
###########################################################################
4+
5+
function Base.getproperty(coord::CoordinatePolar, sym::Symbol)
6+
if (sym == :r) || (sym == :phi)
7+
return getfield(coord, sym)
8+
elseif sym == :x
9+
return x(coord)
10+
elseif sym == :y
11+
return y(coord)
12+
elseif sym == :z
13+
return z(coord)
14+
elseif (sym || :rho) || (sym == )
15+
return rho(coord)
16+
elseif (sym == ) || (sym == )
17+
return phi(coord)
18+
elseif (sym == ) || (sym == )
19+
return theta(coord)
20+
else # Fallback
21+
return getfield(coord, sym)
22+
end
23+
end
24+
25+
function Base.getproperty(coord::CoordinateRectangular, sym::Symbol)
26+
if (sym == :x) || (sym == :y)
27+
getfield(coord, sym)
28+
elseif sym == :z
29+
return z(coord)
30+
elseif sym == :r
31+
return r(coord)
32+
elseif (sym == :rho) || (sym == )
33+
return rho(coord)
34+
elseif (sym == :phi) || (sym == ) || (sym == )
35+
return phi(coord)
36+
elseif (sym == :theta) || (sym == ) || (sym == )
37+
return theta(coord)
38+
else # Fallback
39+
return getfield(coord, sym)
40+
end
41+
end
42+
43+
function Base.getproperty(coord::CoordinateCartesian, sym::Symbol)
44+
if (sym == :x) || (sym == :y) || (sym == :z)
45+
getfield(coord, sym)
46+
elseif sym == :r
47+
return r(coord)
48+
elseif (sym == :rho) || (sym == )
49+
return rho(coord)
50+
elseif (sym == :phi) || (sym == ) || (sym == )
51+
return phi(coord)
52+
elseif (sym == :theta) || (sym == ) || (sym == )
53+
return theta(coord)
54+
else # Fallback
55+
return getfield(coord, sym)
56+
end
57+
end
58+
59+
function Base.getproperty(coord::CoordinateCylindrical, sym::Symbol)
60+
if (sym == :rho) || (sym == :phi) || (sym == :z)
61+
getfield(coord, sym)
62+
elseif sym == :x
63+
return x(coord)
64+
elseif sym == :y
65+
return y(coord)
66+
elseif sym == :r
67+
return r(coord)
68+
elseif sym ==
69+
return rho(coord)
70+
elseif (sym == ) || (sym == )
71+
return phi(coord)
72+
elseif (sym == :theta) || (sym == ) || (sym == )
73+
return theta(coord)
74+
else # Fallback
75+
return getfield(coord, sym)
76+
end
77+
end
78+
79+
function Base.getproperty(coord::CoordinateSpherical, sym::Symbol)
80+
if (sym == :r) || (sym == :theta) || (sym == :phi)
81+
getfield(coord, sym)
82+
elseif sym == :x
83+
return x(coord)
84+
elseif sym == :y
85+
return y(coord)
86+
elseif sym == :z
87+
return z(coord)
88+
elseif sym == :r
89+
return r(coord)
90+
elseif (sym == :rho) || (sym == )
91+
return rho(coord)
92+
elseif (sym == ) || (sym == )
93+
return phi(coord)
94+
elseif (sym == ) || (sym == )
95+
return theta(coord)
96+
else # Fallback
97+
return getfield(coord, sym)
98+
end
99+
end
100+
101+
function Base.getindex(r::CoordinateRectangular, i::Int)
102+
if i == 1
103+
return r.x
104+
elseif i == 2
105+
return r.y
106+
else
107+
error("r[$i] undefined for a CoordinateRectangular")
108+
end
109+
end
110+
111+
function Base.getindex(r::CoordinateCartesian, i::Int)
112+
if i == 1
113+
return r.x
114+
elseif i == 2
115+
return r.y
116+
elseif i == 3
117+
return r.z
118+
else
119+
error("r[$i] undefined for a CoordinateCartesian")
120+
end
121+
end

0 commit comments

Comments
 (0)