SourceXtractorPlusPlus 0.21
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
TransformModelComponent.cpp
Go to the documentation of this file.
1
17/*
18 * TransformModelComponent.cpp
19 *
20 * Created on: Jun 22, 2018
21 * Author: mschefer
22 */
23
24#include <cmath>
25#include <assert.h>
27
28namespace ModelFitting {
29
48
50 for (int i = 0; i < 4; i++) {
51 m_transform[i] = other.m_transform[i];
52 m_inv_transform[i] = other.m_inv_transform[i];
53 }
54}
55
58
59double TransformModelComponent::getValue(double x, double y) {
61
62 double new_x = x * m_inv_transform[0] + y * m_inv_transform[2];
63 double new_y = x * m_inv_transform[1] + y * m_inv_transform[3];
64 return m_component->getValue(new_x, new_y) / area_correction;
65}
66
70 double new_scale = scale / std::min(x_scale, y_scale);
72 m_component->updateRasterizationInfo(new_scale, new_r_max);
73}
74
85
87 double new_x = x * m_inv_transform[0] + y * m_inv_transform[2];
88 double new_y = x * m_inv_transform[1] + y * m_inv_transform[3];
89 return m_component->insideSharpRegion(new_x, new_y);
90}
91
92}
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
void updateRasterizationInfo(double scale, double r_max) override
bool insideSharpRegion(double x, double y) override
double getValue(double x, double y) override
std::unique_ptr< ModelComponent > m_component
std::vector< ModelSample > getSharpSampling() override
TransformModelComponent(std::unique_ptr< ModelComponent > component, std::tuple< double, double, double, double > transform)
T fabs(T... args)
T min(T... args)
T move(T... args)
STL namespace.
T sqrt(T... args)
T transform(T... args)