| #pragma once |
| |
| #ifndef igs_motion_wind_pixel_h |
| #define igs_motion_wind_pixel_h |
| |
| #include <vector> |
| #include "igs_math_random.h" |
| #include "igs_ifx_common.h" |
| |
| #ifndef IGS_MOTION_WIND_EXPORT |
| #define IGS_MOTION_WIND_EXPORT |
| #endif |
| |
| namespace igs { |
| namespace motion_wind { |
| class IGS_MOTION_WIND_EXPORT pixel { |
| public: |
| pixel(const bool blow_dark_sw, const bool blow_alpha_sw |
| |
| , |
| const unsigned long length_random_seed, const double length_min, |
| const double length_max, const double length_bias, |
| const bool length_ref_sw |
| |
| , |
| const unsigned long force_random_seed, const double force_min, |
| const double force_max, const double force_bias, const bool force_ref_sw |
| |
| , |
| const unsigned long density_random_seed, const double density_min, |
| const double density_max, const double density_bias, |
| const bool density_ref_sw); |
| |
| int change(const bool key_reset_sw |
| |
| |
| , |
| const double ref_val |
| , |
| const int channels, double *pixel_tgt); |
| void clear(void); |
| |
| private: |
| std::vector<double> table_; |
| |
| igs::math::random length_random_; |
| igs::math::random force_random_; |
| igs::math::random density_random_; |
| |
| const bool blow_dark_sw_, blow_alpha_sw_; |
| |
| |
| const double length_min_, length_max_; |
| const double length_bias_; |
| const bool length_ref_sw_; |
| |
| const double force_min_, force_max_; |
| const double force_bias_; |
| const bool force_ref_sw_; |
| |
| const double density_min_, density_max_; |
| const double density_bias_; |
| const bool density_ref_sw_; |
| |
| double key_lightness_; |
| double pixel_key_[igs::image::rgba::siz]; |
| long table_len_, table_pos_; |
| double *table_array_; |
| |
| |
| pixel(const pixel &); |
| |
| |
| pixel &operator=(const pixel &); |
| }; |
| } |
| } |
| |
| #endif |