SourceXtractorPlusPlus  0.15
Please provide a description of the project.
Public Member Functions | Private Attributes | List of all members
ModelFitting::TransformModelComponent Class Reference

#include <TransformModelComponent.h>

Inheritance diagram for ModelFitting::TransformModelComponent:
[legend]
Collaboration diagram for ModelFitting::TransformModelComponent:
[legend]

Public Member Functions

 TransformModelComponent (std::unique_ptr< ModelComponent > component, std::tuple< double, double, double, double > transform)
 
 TransformModelComponent (TransformModelComponent &&other)
 
virtual ~TransformModelComponent ()
 
double getValue (double x, double y) override
 
void updateRasterizationInfo (double scale, double r_max) override
 
std::vector< ModelSamplegetSharpSampling () override
 
bool insideSharpRegion (double x, double y) override
 
- Public Member Functions inherited from ModelFitting::ModelComponent
virtual ~ModelComponent ()=default
 

Private Attributes

std::unique_ptr< ModelComponentm_component
 
double m_transform [4]
 
double m_inv_transform [4]
 

Additional Inherited Members

- Public Types inherited from ModelFitting::ModelComponent
using ModelSample = std::tuple< double, double, double >
 

Detailed Description

Decorates a model component, transforming the axes by the given transformation matrix

Note
Unlike ScaledModelComponent, this transformation keeps the integrated value

Definition at line 39 of file TransformModelComponent.h.

Constructor & Destructor Documentation

◆ TransformModelComponent() [1/2]

ModelFitting::TransformModelComponent::TransformModelComponent ( std::unique_ptr< ModelComponent component,
std::tuple< double, double, double, double >  transform 
)

Constructor

Parameters
componentThe component to be decorated. The ownership is acquired by the new object.
transformThe transformation matrix (column major order!)

Definition at line 30 of file TransformModelComponent.cpp.

References e, m_inv_transform, m_transform, std::move(), and SourceXtractor::transform().

Here is the call graph for this function:

◆ TransformModelComponent() [2/2]

ModelFitting::TransformModelComponent::TransformModelComponent ( TransformModelComponent &&  other)

Definition at line 49 of file TransformModelComponent.cpp.

References m_inv_transform, and m_transform.

◆ ~TransformModelComponent()

ModelFitting::TransformModelComponent::~TransformModelComponent ( )
virtual

Definition at line 56 of file TransformModelComponent.cpp.

Member Function Documentation

◆ getSharpSampling()

std::vector< TransformModelComponent::ModelSample > ModelFitting::TransformModelComponent::getSharpSampling ( )
overridevirtual

Returns the samples computed only for the sharp area, if any. The returned value is the integrated value of the function for the area corresponding to the sample, not the value of the function. A pixel may be computed adding up the samples that fall within.

Implements ModelFitting::ModelComponent.

Definition at line 75 of file TransformModelComponent.cpp.

References m_component, and m_transform.

◆ getValue()

double ModelFitting::TransformModelComponent::getValue ( double  x,
double  y 
)
overridevirtual

Returns the value of the point value of the model at the given coordinates.

Implements ModelFitting::ModelComponent.

Definition at line 59 of file TransformModelComponent.cpp.

References std::fabs(), m_component, m_inv_transform, m_transform, x, and y.

Here is the call graph for this function:

◆ insideSharpRegion()

bool ModelFitting::TransformModelComponent::insideSharpRegion ( double  x,
double  y 
)
overridevirtual

Returns true if the coordinates fall inside the sharp region

Implements ModelFitting::ModelComponent.

Definition at line 86 of file TransformModelComponent.cpp.

References m_component, m_inv_transform, x, and y.

◆ updateRasterizationInfo()

void ModelFitting::TransformModelComponent::updateRasterizationInfo ( double  scale,
double  r_max 
)
overridevirtual
Parameters
scale
r_max

Implements ModelFitting::ModelComponent.

Definition at line 67 of file TransformModelComponent.cpp.

References m_component, m_transform, std::min(), and std::sqrt().

Here is the call graph for this function:

Member Data Documentation

◆ m_component

std::unique_ptr<ModelComponent> ModelFitting::TransformModelComponent::m_component
private

◆ m_inv_transform

double ModelFitting::TransformModelComponent::m_inv_transform[4]
private

Definition at line 69 of file TransformModelComponent.h.

Referenced by getValue(), insideSharpRegion(), and TransformModelComponent().

◆ m_transform

double ModelFitting::TransformModelComponent::m_transform[4]
private

The documentation for this class was generated from the following files: