@@ -222,21 +222,30 @@ namespace wincalc
222
222
223
223
struct Venetian_Geometry
224
224
{
225
+ Venetian_Geometry (double slat_tilt,
226
+ double slat_width,
227
+ double slat_spacing,
228
+ double slat_curvature,
229
+ bool is_horizontal = true ,
230
+ SingleLayerOptics::DistributionMethod distribution_method =
231
+ SingleLayerOptics::DistributionMethod::DirectionalDiffuse,
232
+ int number_slat_segments = 5 );
233
+
225
234
double slat_tilt;
226
235
double slat_width;
227
236
double slat_spacing;
228
237
double slat_curvature;
229
238
bool is_horizontal = true ;
230
- SingleLayerOptics::DistributionMethod distribution_method =
231
- SingleLayerOptics::DistributionMethod::DirectionalDiffuse;
232
- int number_slat_segments = 5 ;
239
+ SingleLayerOptics::DistributionMethod distribution_method =
240
+ SingleLayerOptics::DistributionMethod::DirectionalDiffuse;
241
+ int number_slat_segments = 5 ;
233
242
};
234
243
235
244
struct Product_Data_Optical_Venetian : Product_Data_Optical_With_Material
236
245
{
237
246
Product_Data_Optical_Venetian (
238
247
std::shared_ptr<Product_Data_Optical> const & material_optical_data,
239
- Venetian_Geometry const & geometry);
248
+ Venetian_Geometry const & geometry);
240
249
241
250
std::unique_ptr<EffectiveLayers::EffectiveLayer>
242
251
effective_thermal_values (double width,
@@ -246,21 +255,23 @@ namespace wincalc
246
255
double gap_width_left,
247
256
double gap_width_right) const override ;
248
257
249
- Venetian_Geometry geometry;
258
+ Venetian_Geometry geometry;
250
259
};
251
260
252
- struct Woven_Geometry
253
- {
261
+ struct Woven_Geometry
262
+ {
263
+ Woven_Geometry (double thread_diameter, double thread_spacing, double shade_thickness);
264
+
254
265
double thread_diameter;
255
- double thread_spacing;
256
- double shade_thickness;
257
- };
266
+ double thread_spacing;
267
+ double shade_thickness;
268
+ };
258
269
259
270
struct Product_Data_Optical_Woven_Shade : Product_Data_Optical_With_Material
260
271
{
261
272
Product_Data_Optical_Woven_Shade (
262
273
std::shared_ptr<Product_Data_Optical> const & material_optical_data,
263
- Woven_Geometry const & geometry);
274
+ Woven_Geometry const & geometry);
264
275
265
276
std::unique_ptr<EffectiveLayers::EffectiveLayer>
266
277
effective_thermal_values (double width,
@@ -270,31 +281,36 @@ namespace wincalc
270
281
double gap_width_left,
271
282
double gap_width_right) const override ;
272
283
273
- Woven_Geometry geometry;
284
+ Woven_Geometry geometry;
274
285
};
275
286
276
- struct Perforated_Geometry
277
- {
278
- enum class Type
279
- {
280
- CIRCULAR,
281
- RECTANGULAR,
282
- SQUARE
283
- };
284
-
285
- double spacing_x;
286
- double spacing_y;
287
- double dimension_x;
288
- double dimension_y;
289
- Perforated_Geometry::Type perforation_type;
290
- };
287
+ struct Perforated_Geometry
288
+ {
289
+ enum class Type
290
+ {
291
+ CIRCULAR,
292
+ RECTANGULAR,
293
+ SQUARE
294
+ };
295
+
296
+ Perforated_Geometry (double spacing_x,
297
+ double spacing_y,
298
+ double dimension_x,
299
+ double dimension_y,
300
+ Perforated_Geometry::Type perforation_type);
301
+
302
+ double spacing_x;
303
+ double spacing_y;
304
+ double dimension_x;
305
+ double dimension_y;
306
+ Perforated_Geometry::Type perforation_type;
307
+ };
291
308
292
309
struct Product_Data_Optical_Perforated_Screen : Product_Data_Optical_With_Material
293
310
{
294
-
295
311
Product_Data_Optical_Perforated_Screen (
296
312
std::shared_ptr<Product_Data_Optical> const & material_optical_data,
297
- Perforated_Geometry const & geometry);
313
+ Perforated_Geometry const & geometry);
298
314
299
315
std::unique_ptr<EffectiveLayers::EffectiveLayer>
300
316
effective_thermal_values (double width,
0 commit comments