CameraHandle¶
-
template<IsSpectral TSpectral>
class CameraModelHandle : public huira::Handle<CameraModel<TSpectral>>¶ Handle for manipulating a CameraModel in a scene.
Provides a safe, reference-like interface for configuring and querying a CameraModel instance within a scene graph. All operations are forwarded to the underlying CameraModel.
- Template Parameters:
TSpectral – The spectral type (e.g., float, Vec3f, etc.)
Public Functions
-
CameraModelHandle() = delete¶
-
void set_focal_length(units::Millimeter focal_length) const¶
Set the focal length of the camera (in millimeters).
- Parameters:
focal_length – Focal length in millimeters
-
float focal_length() const¶
Get the focal length of the camera (in millimeters).
- Returns:
float Focal length
-
void set_fstop(float fstop) const¶
Set the f-stop (aperture ratio) of the camera.
- Parameters:
fstop – F-stop value
-
float fstop() const¶
Get the f-stop (aperture ratio) of the camera.
- Returns:
float F-stop value
-
template<IsDistortion TDistortion, typename ...Args>
void set_distortion(Args&&... args) const¶ Set the distortion model for the camera.
- Template Parameters:
TDistortion – Distortion model type
Args – Constructor arguments for the distortion model
- Parameters:
args – Arguments to construct the distortion model
-
void set_brown_conrady_distortion(BrownCoefficients coeffs) const¶
Set Brown-Conrady distortion coefficients.
- Parameters:
coeffs – Brown distortion coefficients
-
void set_opencv_distortion(OpenCVCoefficients coeffs) const¶
Set OpenCV distortion coefficients.
- Parameters:
coeffs – OpenCV distortion coefficients
-
void set_owen_distortion(OwenCoefficients coeffs) const¶
Set Owen distortion coefficients.
- Parameters:
coeffs – Owen distortion coefficients
-
void delete_distortion() const¶
Delete the distortion model from the camera.
-
template<IsSensor TSensor, typename ...Args>
void set_sensor(Args&&... args) const¶ Set the sensor model for the camera.
- Template Parameters:
TSensor – Sensor model type
Args – Constructor arguments for the sensor
- Parameters:
args – Arguments to construct the sensor
-
void set_sensor_resolution(Resolution resolution) const¶
Set the sensor resolution.
- Parameters:
resolution – Sensor resolution (width, height)
-
void set_sensor_resolution(int width, int height) const¶
Set the sensor resolution by width and height.
- Parameters:
width – Sensor width in pixels
height – Sensor height in pixels
-
void set_sensor_pixel_pitch(units::Millimeter pitch_x, units::Millimeter pitch_y) const¶
Set the sensor pixel pitch in x and y directions.
-
void set_sensor_pixel_pitch(units::Millimeter pitch) const¶
Set the sensor pixel pitch (square pixels).
- Parameters:
pitch – Pixel pitch in both x and y (millimeters)
-
void set_sensor_size(units::Millimeter width, units::Millimeter height) const¶
Set the physical sensor size.
- Parameters:
width – Sensor width in millimeters
height – Sensor height in millimeters
-
void set_sensor_size(units::Millimeter width) const¶
Set the sensor width and compute height from aspect ratio.
- Parameters:
width – Sensor width in millimeters
-
void set_sensor_quantum_efficiency(TSpectral qe) const¶
Set the sensor quantum efficiency.
- Parameters:
qe – Quantum efficiency value
-
void set_sensor_full_well_capacity(float fwc) const¶
Set the sensor full well capacity.
- Parameters:
fwc – Full well capacity value
-
void set_sensor_read_noise(float read_noise) const¶
Set the sensor read noise.
- Parameters:
read_noise – Read noise value
-
void set_sensor_dark_current(float dark_current) const¶
Set the sensor dark current.
- Parameters:
dark_current – Dark current value
-
void set_sensor_bias_level(float bias_level) const¶
Set the sensor bias level.
- Parameters:
bias_level – Bias level value
-
void set_sensor_bit_depth(int bit_depth) const¶
Set the sensor bit depth.
- Parameters:
bit_depth – Bit depth value
-
void set_sensor_gain(float gain) const¶
Set the sensor gain (ADU).
- Parameters:
gain – Gain value
-
void set_sensor_gain_db(float gain_db) const¶
Set the sensor gain in decibels (dB).
- Parameters:
gain_db – Gain in dB
-
void set_sensor_uinty_db(float unity_db) const¶
Set the sensor unity gain in decibels (dB).
- Parameters:
unity_db – Unity gain in dB
-
void set_sensor_rotation(units::Radian angle) const¶
Set the sensor rotation angle.
- Parameters:
angle – Rotation angle in radians
-
template<IsAperture TAperture, typename ...Args>
void set_aperture(Args&&... args) const¶ Set the aperture model for the camera.
- Template Parameters:
TAperture – Aperture model type
Args – Constructor arguments for the aperture
- Parameters:
args – Arguments to construct the aperture
-
template<IsPSF TPSF, typename ...Args>
void set_psf(Args&&... args) const¶ Set the point spread function (PSF) model for the camera.
-
void use_aperture_psf(int radius, int banks) const¶
Use the aperture to generate a PSF (point spread function).
-
Pixel project_point(const Vec3<float> &point_camera_coords) const¶
Project a 3D point in camera coordinates onto the image plane.
- Parameters:
point_camera_coords – 3D point in camera coordinates (meters)
- Returns:
Pixel 2D point on the image plane (pixels)
-
FrameBuffer<TSpectral> make_frame_buffer() const¶
Create a new frame buffer with the camera’s resolution.
- Returns:
FrameBuffer<TSpectral> Frame buffer
-
void use_blender_convention(bool value = true) const¶
Set whether to use Blender’s camera convention (z forward, y up).
- Parameters:
value – True to use Blender convention
-
bool valid() const¶
Checks if the handle points to a valid, scene-owned object.
- Returns:
true if valid, false otherwise
-
std::shared_ptr<U> get() const¶
Gets a shared_ptr to the referenced object, optionally downcasting to a derived type.
- Template Parameters:
U – Type to cast to (default: T)
- Throws:
std::runtime_error –
- Returns:
std::shared_ptr
Protected Functions
-
std::shared_ptr<T> get_() const¶
Gets a shared_ptr to the referenced object, enforcing validity.
- Throws:
std::runtime_error – if the handle is invalid
- Returns:
std::shared_ptr<T> Shared pointer to the object
Protected Attributes
-
std::weak_ptr<T> ptr_¶
Friends
- friend class Scene< TSpectral >
- friend class SceneView< TSpectral >
- friend class FrameHandle< TSpectral >