30template <
typename Profile>
31template <
typename... ProfileParameters>
34 ProfileParameters&&... proj_parameters)
39template <
typename Profile>
42template <
typename Profile>
47template <
typename Profile>
49 double scale,
double r_max) {
53template <
typename Profile>
61 double r_half = (r1 + r2) / 2.;
62 double area = M_PI * (r2*r2 - r1*r1);
63 double integral =
m_profile(r_half) * area / angle_no;
64 double angle_step = 2 * M_PI / angle_no;
65 for (
double angle=0.; angle_no!=0; --angle_no, angle+=angle_step) {
74template <
typename Profile>
std::unique_ptr< SharpRegionManager > m_sharp_manager
virtual std::vector< ModelSample > getSharpSampling()
virtual bool insideSharpRegion(double x, double y)
virtual ~CircularlySymmetricModelComponent()
virtual void updateRasterizationInfo(double scale, double r_max)
CircularlySymmetricModelComponent(std::unique_ptr< SharpRegionManager > sharp_manager, ProfileParameters &&... proj_parameters)
virtual double getValue(double x, double y)
T emplace_back(T... args)