30 : m_component {
std::
move(component)},
31 m_x_scale{x_scale}, m_y_scale{y_scale} {
35 : m_component {
std::
move(other.m_component)},
36 m_x_scale{other.m_x_scale}, m_y_scale{other.m_y_scale} {
48 m_component->updateRasterizationInfo(new_scale, new_r_max);
52 double area_correction = m_x_scale->getValue() * m_y_scale->getValue();
54 for (
auto& sample : result) {
55 std::get<0>(sample) *= m_x_scale->getValue();
56 std::get<1>(sample) *= m_y_scale->getValue();
57 std::get<2>(sample) *= area_correction;
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
virtual ~ScaledModelComponent()
std::vector< ModelSample > getSharpSampling() override
void updateRasterizationInfo(double scale, double r_max) override
std::shared_ptr< BasicParameter > m_y_scale
std::shared_ptr< BasicParameter > m_x_scale
ScaledModelComponent(std::unique_ptr< ModelComponent > component, std::shared_ptr< BasicParameter > x_scale, std::shared_ptr< BasicParameter > y_scale)
std::unique_ptr< ModelComponent > m_component
bool insideSharpRegion(double x, double y) override
double getValue(double x, double y) override