void CalculateCarpenterSampleCorrection::calculate_ms_correction( const double angle_deg, const double radius, const double coeff1, const double coeff2, const double coeff3, const Points &wavelength, HistogramY &y_val) { const size_t NUM_Y = y_val.size(); bool is_histogram = false; if (wavelength.size() == NUM_Y + 1) is_histogram = true; else if (wavelength.size() == NUM_Y) is_histogram = false; else throw std::runtime_error("Data is neither historgram or density"); // initialize Z array for this angle vector<double> Z = createZ(angle_deg); const double Q2 = coeff1 * coeff2; const double sigsct = coeff2 * coeff3; for (size_t j = 0; j < NUM_Y; j++) { double wl_val = wavelength[j]; if (is_histogram) // average with next value wl_val = .5 * (wl_val + wavelength[j + 1]); y_val[j] = calculate_ms_factor(radius, Q2, sigsct, Z, wl_val); } }
Shape::Shape() { transformIndex = 0; mainBlock = sf::Vector2i(5,1); int randomBelowSeven = rand() % 7; switch (randomBelowSeven) { case 0: createI(); break; case 1: createJ(); break; case 2: createS(); break; case 3: createO(); break; case 4: createZ(); break; case 5: createL(); break; case 6: createT(); break; } applyTransform(transformIndex); }
// -------------------------------------------- void RotateHelper::createRotation ( ) { switch (rotation.order) { case MEulerRotation::kXYZ: createZ(0); createY(1); createX(2); break; case MEulerRotation::kXZY: createY(0); createZ(1); createX(2); break; case MEulerRotation::kYXZ: createZ(0); createX(1); createY(2); break; case MEulerRotation::kYZX: createX(0); createZ(1); createY(2); break; case MEulerRotation::kZXY: createY(0); createX(1); createZ(2); break; case MEulerRotation::kZYX: createX(0); createY(1); createZ(2); break; default: // Export XYZ euler rotation in Z Y X order in the file. // The rotation order is set to XYZ, Collada reads the parameter from behind. createZ(0); createY(1); createX(2); break; } }