Circular Aperture¶
-
template<IsSpectral TSpectral>
class CircularAperture : public huira::Aperture<TSpectral>¶ Circular optical aperture.
Models a circular aperture with a specified diameter and area, supporting PSF creation.
- Template Parameters:
TSpectral – The spectral representation type.
Public Functions
-
CircularAperture(units::Meter diameter)¶
Constructs a circular aperture with the given diameter.
Initializes the aperture and computes its area from the specified diameter.
- Parameters:
diameter – The diameter of the aperture in meters.
-
~CircularAperture() override = default¶
-
virtual void set_area(units::SquareMeter area) override¶
Sets the area of the aperture.
Directly sets the area value (in square meters) for the aperture.
- Parameters:
area – The new area in square meters.
-
inline virtual float get_area() const override¶
-
void set_diameter(units::Meter diameter)¶
Sets the diameter of the aperture and updates the area.
Computes the area from the specified diameter and updates the internal area value.
- Parameters:
diameter – The new diameter in meters.
-
float get_diameter() const¶
Returns the diameter of the aperture.
Computes the diameter from the current area value.
- Returns:
The diameter in meters.
-
virtual std::unique_ptr<PSF<TSpectral>> make_psf(units::Meter focal_length, units::Meter pitch_x, units::Meter pitch_y, int radius, int banks) override¶
Creates a point spread function (PSF) for the circular aperture.
Constructs an Airy disk PSF using the aperture’s diameter and the provided optical parameters.
- Parameters:
focal_length – The focal length of the optical system in meters.
pitch_x – The pixel pitch in the x direction in meters.
pitch_y – The pixel pitch in the y direction in meters.
radius – The radius of the PSF kernel in pixels.
banks – The number of spectral banks.
- Returns:
A unique pointer to the created PSF object.