@@ -32,12 +32,23 @@ public struct Volume : IComparable, IComparable<Volume>
32
32
private const double CubicDecimetersToCubicMetersRatio = 1E-3 ;
33
33
private const double CubicCentimetersToCubicMetersRatio = 1E-6 ;
34
34
private const double CubicMillimetersToCubicMetersRatio = 1E-9 ;
35
+
35
36
private const double HectolitersToCubicMetersRatio = 1E-1 ;
36
37
private const double LitersToCubicMetersRatio = 1E-3 ;
37
38
private const double DecilitersToCubicMetersRatio = 1E-4 ;
38
39
private const double CentilitersToCubicMetersRatio = 1E-5 ;
39
40
private const double MillilitersToCubicMetersRatio = 1E-6 ;
40
41
42
+ private const double CubicMilesToCubicMetersRatio = 4.16818183 * 1E9 ;
43
+ private const double CubicYardsToCubicMetersRatio = 0.764554858 ;
44
+ private const double CubicFeetToCubicMetersRatio = 0.0283168 ;
45
+ private const double CubicInchesToCubicMetersRatio = 1.6387e-5 ;
46
+
47
+ private const double UsGallonToCubicMeterRatio = 0.00378541 ;
48
+ private const double UsOunceToCubicMeterRatio = 2.957352956253760505068307980135e-5 ;
49
+ private const double ImperialGallonToCubicMeterRatio = 0.00454609000000181429905810072407 ;
50
+ private const double ImperialOunceToCubicMeterRatio = 2.8413062499962901241875439064617e-5 ;
51
+
41
52
public readonly double CubicMeters ;
42
53
43
54
/// <summary>
@@ -96,6 +107,46 @@ public double Milliliters
96
107
get { return CubicMeters / MillilitersToCubicMetersRatio ; }
97
108
}
98
109
110
+ public double CubicMiles
111
+ {
112
+ get { return CubicMeters / CubicMilesToCubicMetersRatio ; }
113
+ }
114
+
115
+ public double CubicYards
116
+ {
117
+ get { return CubicMeters / CubicYardsToCubicMetersRatio ; }
118
+ }
119
+
120
+ public double CubicFeet
121
+ {
122
+ get { return CubicMeters / CubicFeetToCubicMetersRatio ; }
123
+ }
124
+
125
+ public double CubicInches
126
+ {
127
+ get { return CubicMeters / CubicInchesToCubicMetersRatio ; }
128
+ }
129
+
130
+ public double UsGallons
131
+ {
132
+ get { return CubicMeters / UsGallonToCubicMeterRatio ; }
133
+ }
134
+
135
+ public double UsOunces
136
+ {
137
+ get { return CubicMeters / UsOunceToCubicMeterRatio ; }
138
+ }
139
+
140
+ public double ImperialGallons
141
+ {
142
+ get { return CubicMeters / ImperialGallonToCubicMeterRatio ; }
143
+ }
144
+
145
+ public double ImperialOunces
146
+ {
147
+ get { return CubicMeters / ImperialOunceToCubicMeterRatio ; }
148
+ }
149
+
99
150
#endregion
100
151
101
152
#region Static
@@ -171,6 +222,46 @@ public static Volume FromMilliliters(double milliliters)
171
222
return new Volume ( milliliters * MillilitersToCubicMetersRatio ) ;
172
223
}
173
224
225
+ public static Volume FromCubicMiles ( double cubicMiles )
226
+ {
227
+ return new Volume ( cubicMiles * CubicMilesToCubicMetersRatio ) ;
228
+ }
229
+
230
+ public static Volume FromCubicYards ( double cubicYards )
231
+ {
232
+ return new Volume ( cubicYards * CubicYardsToCubicMetersRatio ) ;
233
+ }
234
+
235
+ public static Volume FromCubicFeet ( double cubicFeet )
236
+ {
237
+ return new Volume ( cubicFeet * CubicFeetToCubicMetersRatio ) ;
238
+ }
239
+
240
+ public static Volume FromCubicInches ( double cubicInches )
241
+ {
242
+ return new Volume ( cubicInches * CubicInchesToCubicMetersRatio ) ;
243
+ }
244
+
245
+ public static Volume FromUsGallons ( double usGallons )
246
+ {
247
+ return new Volume ( usGallons * UsGallonToCubicMeterRatio ) ;
248
+ }
249
+
250
+ public static Volume FromUsOunces ( double usOunces )
251
+ {
252
+ return new Volume ( usOunces * UsOunceToCubicMeterRatio ) ;
253
+ }
254
+
255
+ public static Volume FromImperialGallons ( double imperialGallons )
256
+ {
257
+ return new Volume ( imperialGallons * ImperialGallonToCubicMeterRatio ) ;
258
+ }
259
+
260
+ public static Volume FromImperialOunces ( double imperialOunces )
261
+ {
262
+ return new Volume ( imperialOunces * ImperialOunceToCubicMeterRatio ) ;
263
+ }
264
+
174
265
#endregion
175
266
176
267
#region Arithmetic operators
0 commit comments