VR-Vantage 3.1 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends
seOptics Class Reference

Sensor Effects optics class. More...

Public Types

enum  shapeType { Circular = 0, Rectangular = 1 }
 shapeType More...
enum  HaloType { HALO_TYPE_PMT, HALO_TYPE_CCD, HALO_TUPE_NUM }
 HaloType. More...

Public Member Functions

 seOptics ()
 constructor
 ~seOptics ()
 destructor
void loadDefaults ()
 sets all the member data to default values.
void setApertureWidth (const double dim)
 sets the aperture's width or horizontal dimension (mm)
double getApertureWidth ()
 gets the aperture's width or horizontal dimension (mm)
void setApertureShape (shapeType shape)
 sets the aperture's shape
shapeType getApertureShape ()
 gets the aperture's shape
void setApertureAspectRatio (const double ratio)
 sets the aperture's horizontal to vertical aspect ratio
double getApertureAspectRatio ()
 gets the aperture's horizontal to vertical aspect ratio
void setBlurSpotDiameter (const double size)
 sets the blur spot's diameter (mrad)
double getBlurSpotDiameter ()
 gets the blur spot's diameter (mrad)
void setFOVdegs (const double horzFov, const double vertFov)
 sets the fov of the sensor (deg)
void getFOVdegs (double &horzFov, double &vertFov)
 gets the fov of the sensor (degs)
void setMtfMotionBlurSize (const double size)
 sets the motion blur spot size (milliRad) currently this is not implemented as a motion blur but is added to the other MTFs
double getMtfMotionBlurSize ()
 gets the motion blur spot size (milliRad) currently this is not implemented as a motion blur but is added to the other MTFs
void setLensTransmittance (const double transmittance)
 sets the len's transmittance - is applied as an additional gain factor
double getLensTransmittance ()
 gets the len's transmittance - is applied as an additional gain factor
void setImageMaskRadius (const double radius)
 sets the radius in normalized image space to mask pixels out for a rounded edge display
double getImageMaskRadius () const
 gets the radius in normalized image space to mask pixels out for a rounded edge display
void setImageMaskScale (const double scaleX, const double scaleY)
 sets the horizontal and vertical scale in normalized image space to mask pixels out for a rounded edge display
void getImageMaskScale (double &scaleX, double &scaleY) const
 gets the horizontal and vertical scale in normalized image space to mask pixels out for a rounded edge display
void setFocalLength (double focalLength, double pixelPitchX, double pixelPitchY, double numPixelsX, double numPixelsY, double fillX, double fillY)
 sets the focal length for the optical system
double getFocalLength () const
 returns the focal length of the system
void setFNumber (const double fNumber)
 sets the f number for the optical system
double getFNumber () const
 returns the f number of the optical system
void setFilterEnable (const bool flag)
 sets the filter enable flag
bool isFilterEnable ()
 gets the filter enable flag.
void setOptimizedFilterEnable (const bool flag)
 sets the flag to select a performance optimized filtering technique
bool isOptimizedFilterEnable ()
 gets the optimized filter enable flag.
void setFilterAdjustment (double adjustment)
 sets the adjustment that is multiplied by the calculated filter size.
double getFilterAdjustment ()
 gets the adjustment that is multiplied by the calculated filter size.
void setHaloEnable (const bool flag)
bool isHaloEnable ()
 gets the halo enable flag.
void setHaloThreshold (const double value)
 sets the halo threshold value
double getHaloThreshold ()
 gets the halo threshold value
void setHaloRadius (const double value)
 sets the halo Radius in pixels
double getHaloRadius ()
 gets the halo Radius in pixels
void setHaloIntensity (const double intensity)
 sets the halo intensity
double getHaloIntensity ()
 gets the halo intensity
void setHaloType (HaloType type)
 sets the halo type.
HaloType getHaloType () const
 gets the halo type.
void setSeparableKernelEnable (bool enable)
 sets enable/disable of separable kernel support
bool getSeparableKernelEnable () const
 gets enable/disable of separable kernel support
void setAberrationsEnable (bool enable)
 sets the flag to compute monochromatic aberrations
bool getAberrationsEnable () const
 gets the flag that controls computations of monochromatic aberrations
void setDefocusCoefficient (const double defocus)
 sets the amount of defocus in wavelength units
double getDefocusCoefficient () const
 gets the amount of defocus in wavelength units
void setSphericalAberrationCoefficient (const double sphericalAberration)
 sets the amount of spherical aberration in wavelength units
double getSphericalAberrationCoefficient () const
 gets the amount of spherical aberration in wavelength units
void setComaCoefficient (const double coma)
 sets the amount of coma in wavelength units
double getComaCoefficient () const
 gets the amount of coma in wavelength units
void setAstigmatismCoefficient (const double astigmatism)
 sets the amount of astigmatism in wavelength units
double getAstigmatismCoefficient () const
 gets the amount of coma in wavelength units
void setFieldCurvatureCoefficient (const double fieldCurvature)
 sets the amount of field curvature in wavelength units
double getFieldCurvatureCoefficient () const
 gets the amount of field curvature in wavelength units
void setDistortionCoefficient (const double distortion)
 sets the amount of distortion in wavelength units
double getDistortionCoefficient () const
 gets the amount of distortion in wavelength units
void setFPASubDivisions (int subdivisions)
 sets the number of subdivions over the FPA to perform spatially dependent kernel mappings
int getFPASubDivisions () const
 gets the number of subdivions over the FPA to perform spatially dependent kernel mappings
void setUserDefinedKernelEnable (bool enable)
 sets enable/disable of user defined kernel support
bool getUserDefinedKernelEnable () const
 gets enable/disable of user defined kernel support
void setUserDefinedKernelRootFilename (char *filename)
 Set the user defined Root Kernel filename this file's data replaces the MTF/filter data that is computed based on the Sensor's optical properties.
char * getUserDefinedKernelRootFilename ()
 get the user defined root kernel filename
void setAperturePercentage (const double aperSizeX, const double aperSizeY)
 sets the relative size of the pupil plane for aberration calculation
void getAperturePercentage (double *aperSizeX, double *aperSizeY) const
 gets the relative size of the pupil plane for aberration calculation
void setHaloThresholdAdjustment (double threshold)
 sets the adjustment that is multiplied by the given halo threshold.
double getHaloThresholdAdjustment ()
 gets the adjustment that is multiplied by the given halo threshold.
void setMeanWavelength (const double wavelength)
 sets the mean wavelength of the current waveband
double getMeanWavelength () const
 sets the mean wavelength of the current waveband
void setDetectorAngularSubtense (const double DASHorz, const double DASVert)
 sets the detector angular subtense for internal calculations
void setUserDefinedMTFenable (bool enable)
 Set the user defined MTF enable If set then the file's data replaces the MTF/filter data that is computed based on the Sensor's optical properties.
bool getUserDefinedMTFenable ()
 Get the user defined MTF enable.
void setUserDefinedMTFfilename (char *filename)
 Set the user defined MTF filename this file's data replaces the MTF/filter data that is computed based on the Sensor's optical properties.
char * getUserDefinedMTFfilename ()
 get the user defined MTF filename
bool isDirty ()
 Specifies whether the seOptics has been changed.
void setDirty ()
 Specify whether the seOptics has been changed.
void clrDirty ()
 Clear the flag that specifies whether the seOptics has been changed.
bool getUserDefinedKernelDataLoaded () const

Private Member Functions

void setUserDefinedKernelDataLoaded (bool kernelsLoaded)

Private Attributes

double m_apertureWidth
 Aperture width [mm].
double m_focalLength
 Optical System Focal Length [mm].
double m_FNumber
 Optical System F Number [1].
double m_lamdaMean
 mean wavelength of waveband [um]
shapeType m_apertureShape
 Aperture shape - circular or rectangular.
double m_apertureAspectRatio
 Aperture's aspect ratio - horizontal to vertical.
double m_blurSpotDiameter
 blur spot diameter
double m_horizontalFov
 horizontal fov (deg)
double m_verticalFov
 vertical fov (deg)
double m_mtfMotionBlurSize
 motion blur mtf size
double m_lensTransmittance
 Lens Transmittance.
bool m_filterEnable
 enable flag for filtering
bool m_optimizedFilterEnable
 enable flag for peforming optimized filtering
double m_filterAdjustment
 percent of the calculated filter that is applied
bool m_haloEnable
 enable flag to process halos
double m_haloThreshold
 Threshold to trigger a halo.
double m_haloRadius
 radius of the halos
double m_haloIntensity
 intensity scale factor for halos
HaloType m_haloType
 selector for halo type (0 for PMT type like NVGs and 1 for CCD type)
double m_haloThresholdAdjustment
 adjustment multiplied by the halo threshold
double m_DASHorz
 Horizontal Detector Angular Subtense.
double m_DASVert
 Vertical Detector Angular Subtense.
double m_ImageClipRadius
 Image clip radius to mask out edges of the rendered image.
double m_ImageClipScaleHorz
 Image scale for clipping edges of rendered image in horizontal direction.
double m_ImageClipScaleVert
 Image scale for clipping edges of rendered image in vertical direction.
bool m_userDefinedMTFenable
 flag indicating the use of user defined MTF data
char m_userDefinedMTFfilename [512]
 file name for user defined MTF data
char m_userDefinedRootKernelfilename [512]
 file name for user defined kernel loading
bool m_aberrationsEnable
 Monochromatic wavefront error aberration (W) coefficients.
double m_W020
double m_W040
double m_W131
double m_W222
double m_W220
double m_W311
int m_maxKernelSize
bool m_enableUserDefinedKernel
bool m_enableSeparableKernel
double m_horzAperturePercentage
double m_vertAperturePercentage
bool m_userDefinedKernelsLoaded
bool m_dirty
 dirty flag for optics object

Friends

class seFilter

Detailed Description

Sensor Effects optics class.

Holds the data related to the optics portion of a device.

Member Enumeration Documentation

shapeType

Specifies the shape of the aperture

Enumerator:
Circular 
Rectangular 

HaloType.

Specifies the halo type

Enumerator:
HALO_TYPE_PMT 
HALO_TYPE_CCD 
HALO_TUPE_NUM 

Constructor & Destructor Documentation

seOptics::seOptics ( )

constructor

seOptics::~seOptics ( )

destructor

Member Function Documentation

void seOptics::loadDefaults ( )

sets all the member data to default values.

void seOptics::setApertureWidth ( const double  dim)
inline

sets the aperture's width or horizontal dimension (mm)

Parameters
dim
double seOptics::getApertureWidth ( )
inline

gets the aperture's width or horizontal dimension (mm)

Returns
double
void seOptics::setApertureShape ( shapeType  shape)
inline

sets the aperture's shape

Parameters
shape- circular or rectangular
shapeType seOptics::getApertureShape ( )
inline

gets the aperture's shape

Returns
shapeType - circular or rectangular
void seOptics::setApertureAspectRatio ( const double  ratio)
inline

sets the aperture's horizontal to vertical aspect ratio

Parameters
ratio
double seOptics::getApertureAspectRatio ( )
inline

gets the aperture's horizontal to vertical aspect ratio

Returns
double
void seOptics::setBlurSpotDiameter ( const double  size)
inline

sets the blur spot's diameter (mrad)

Parameters
size
double seOptics::getBlurSpotDiameter ( )
inline

gets the blur spot's diameter (mrad)

Returns
double
void seOptics::setFOVdegs ( const double  horzFov,
const double  vertFov 
)
inline

sets the fov of the sensor (deg)

Parameters
horzFov
vertFov
void seOptics::getFOVdegs ( double &  horzFov,
double &  vertFov 
)
inline

gets the fov of the sensor (degs)

Parameters
horzFov
vertFov
void seOptics::setMtfMotionBlurSize ( const double  size)
inline

sets the motion blur spot size (milliRad) currently this is not implemented as a motion blur but is added to the other MTFs

Parameters
size
double seOptics::getMtfMotionBlurSize ( )
inline

gets the motion blur spot size (milliRad) currently this is not implemented as a motion blur but is added to the other MTFs

Returns
double
void seOptics::setLensTransmittance ( const double  transmittance)
inline

sets the len's transmittance - is applied as an additional gain factor

Parameters
transmittance
double seOptics::getLensTransmittance ( )
inline

gets the len's transmittance - is applied as an additional gain factor

Returns
double
void seOptics::setImageMaskRadius ( const double  radius)

sets the radius in normalized image space to mask pixels out for a rounded edge display

Parameters
radius
double seOptics::getImageMaskRadius ( ) const

gets the radius in normalized image space to mask pixels out for a rounded edge display

Returns
double
void seOptics::setImageMaskScale ( const double  scaleX,
const double  scaleY 
)

sets the horizontal and vertical scale in normalized image space to mask pixels out for a rounded edge display

Parameters
radius
void seOptics::getImageMaskScale ( double &  scaleX,
double &  scaleY 
) const

gets the horizontal and vertical scale in normalized image space to mask pixels out for a rounded edge display

Returns
double
void seOptics::setFocalLength ( double  focalLength,
double  pixelPitchX,
double  pixelPitchY,
double  numPixelsX,
double  numPixelsY,
double  fillX,
double  fillY 
)

sets the focal length for the optical system

Parameters
transmittance
double seOptics::getFocalLength ( ) const

returns the focal length of the system

Returns
double
void seOptics::setFNumber ( const double  fNumber)

sets the f number for the optical system

Parameters
transmittance
double seOptics::getFNumber ( ) const

returns the f number of the optical system

Returns
double
void seOptics::setFilterEnable ( const bool  flag)
inline

sets the filter enable flag

Parameters
flag
bool seOptics::isFilterEnable ( )
inline

gets the filter enable flag.

Returns
bool
void seOptics::setOptimizedFilterEnable ( const bool  flag)
inline

sets the flag to select a performance optimized filtering technique

Parameters
flag
bool seOptics::isOptimizedFilterEnable ( )
inline

gets the optimized filter enable flag.

Returns
bool
void seOptics::setFilterAdjustment ( double  adjustment)
inline

sets the adjustment that is multiplied by the calculated filter size.

This can be used as an adjustment knob/slider.

Parameters
adjustment
double seOptics::getFilterAdjustment ( )
inline

gets the adjustment that is multiplied by the calculated filter size.

This can be used as an adjustment knob/slider.

Returns
double
void seOptics::setHaloEnable ( const bool  flag)
inline
Parameters
flag
bool seOptics::isHaloEnable ( )
inline

gets the halo enable flag.

Returns
bool
void seOptics::setHaloThreshold ( const double  value)
inline

sets the halo threshold value

Parameters
value
double seOptics::getHaloThreshold ( )
inline

gets the halo threshold value

Returns
threshold
void seOptics::setHaloRadius ( const double  value)

sets the halo Radius in pixels

Parameters
value
double seOptics::getHaloRadius ( )
inline

gets the halo Radius in pixels

Returns
radius
void seOptics::setHaloIntensity ( const double  intensity)
inline

sets the halo intensity

Parameters
intensity
double seOptics::getHaloIntensity ( )
inline

gets the halo intensity

Returns
intensity
void seOptics::setHaloType ( HaloType  type)
inline

sets the halo type.

A value of 0 for PMT (like NVGs) and 1 for CCDs

Parameters
type
HaloType seOptics::getHaloType ( ) const
inline

gets the halo type.

A value of 0 for PMT (like NVGs) and 1 for CCDs

Returns
type
void seOptics::setSeparableKernelEnable ( bool  enable)

sets enable/disable of separable kernel support

Returns
void
bool seOptics::getSeparableKernelEnable ( ) const
inline

gets enable/disable of separable kernel support

Returns
bool
void seOptics::setAberrationsEnable ( bool  enable)

sets the flag to compute monochromatic aberrations

Parameters
enableflag
bool seOptics::getAberrationsEnable ( ) const
inline

gets the flag that controls computations of monochromatic aberrations

Returns
enable flag
void seOptics::setDefocusCoefficient ( const double  defocus)
inline

sets the amount of defocus in wavelength units

Parameters
defocusamount
double seOptics::getDefocusCoefficient ( ) const
inline

gets the amount of defocus in wavelength units

Returns
defocus amount
void seOptics::setSphericalAberrationCoefficient ( const double  sphericalAberration)
inline

sets the amount of spherical aberration in wavelength units

Parameters
sphericalaberration amount
double seOptics::getSphericalAberrationCoefficient ( ) const
inline

gets the amount of spherical aberration in wavelength units

Returns
spherical aberration amount
void seOptics::setComaCoefficient ( const double  coma)
inline

sets the amount of coma in wavelength units

Parameters
comaamount
double seOptics::getComaCoefficient ( ) const
inline

gets the amount of coma in wavelength units

Returns
coma amount
void seOptics::setAstigmatismCoefficient ( const double  astigmatism)
inline

sets the amount of astigmatism in wavelength units

Parameters
astigmatismamount
double seOptics::getAstigmatismCoefficient ( ) const
inline

gets the amount of coma in wavelength units

Returns
astigmatism amount
void seOptics::setFieldCurvatureCoefficient ( const double  fieldCurvature)
inline

sets the amount of field curvature in wavelength units

Parameters
fieldcurvature amount
double seOptics::getFieldCurvatureCoefficient ( ) const
inline

gets the amount of field curvature in wavelength units

Returns
field curvature amount
void seOptics::setDistortionCoefficient ( const double  distortion)
inline

sets the amount of distortion in wavelength units

Parameters
distortionamount
double seOptics::getDistortionCoefficient ( ) const
inline

gets the amount of distortion in wavelength units

Returns
distortion amount
void seOptics::setFPASubDivisions ( int  subdivisions)

sets the number of subdivions over the FPA to perform spatially dependent kernel mappings

Returns
void
int seOptics::getFPASubDivisions ( ) const
inline

gets the number of subdivions over the FPA to perform spatially dependent kernel mappings

Returns
int
void seOptics::setUserDefinedKernelEnable ( bool  enable)

sets enable/disable of user defined kernel support

Returns
void
bool seOptics::getUserDefinedKernelEnable ( ) const
inline

gets enable/disable of user defined kernel support

Returns
bool
void seOptics::setUserDefinedKernelRootFilename ( char *  filename)

Set the user defined Root Kernel filename this file's data replaces the MTF/filter data that is computed based on the Sensor's optical properties.

Parameters
filename
char* seOptics::getUserDefinedKernelRootFilename ( )

get the user defined root kernel filename

Returns
char *
void seOptics::setAperturePercentage ( const double  aperSizeX,
const double  aperSizeY 
)
inline

sets the relative size of the pupil plane for aberration calculation

Parameters
percentageof the horizontal and vertical aperture
void seOptics::getAperturePercentage ( double *  aperSizeX,
double *  aperSizeY 
) const
inline

gets the relative size of the pupil plane for aberration calculation

Returns
percentage of the horizontal and vertical aperture
void seOptics::setHaloThresholdAdjustment ( double  threshold)
inline

sets the adjustment that is multiplied by the given halo threshold.

This can be used as an adjustment knob/slider.

Parameters
threshold- 0.0 to 1.0
double seOptics::getHaloThresholdAdjustment ( )
inline

gets the adjustment that is multiplied by the given halo threshold.

This can be used as an adjustment knob/slider.

Returns
double - 0.0 to 1.0
void seOptics::setMeanWavelength ( const double  wavelength)
inline

sets the mean wavelength of the current waveband

Parameters
wavelength
double seOptics::getMeanWavelength ( ) const
inline

sets the mean wavelength of the current waveband

Parameters
wavelength
void seOptics::setDetectorAngularSubtense ( const double  DASHorz,
const double  DASVert 
)
inline

sets the detector angular subtense for internal calculations

Parameters
wavelength
void seOptics::setUserDefinedMTFenable ( bool  enable)
inline

Set the user defined MTF enable If set then the file's data replaces the MTF/filter data that is computed based on the Sensor's optical properties.

bool seOptics::getUserDefinedMTFenable ( )
inline

Get the user defined MTF enable.

void seOptics::setUserDefinedMTFfilename ( char *  filename)

Set the user defined MTF filename this file's data replaces the MTF/filter data that is computed based on the Sensor's optical properties.

The file format is: number of samples (integer) maximum horizontal frequency maximum vertical frequency (cycles/mrad) MTF x value and MTF y value for each frequency step from 0.0 to the maximum frequecy. (unitless)

Parameters
filename
char* seOptics::getUserDefinedMTFfilename ( )
inline

get the user defined MTF filename

Returns
char *
bool seOptics::isDirty ( )
inline

Specifies whether the seOptics has been changed.

Returns
bool
void seOptics::setDirty ( )
inline

Specify whether the seOptics has been changed.

void seOptics::clrDirty ( )
inline

Clear the flag that specifies whether the seOptics has been changed.

bool seOptics::getUserDefinedKernelDataLoaded ( ) const
inline
void seOptics::setUserDefinedKernelDataLoaded ( bool  kernelsLoaded)
inlineprivate

Friends And Related Function Documentation

friend class seFilter
friend

Member Data Documentation

double seOptics::m_apertureWidth
private

Aperture width [mm].

double seOptics::m_focalLength
private

Optical System Focal Length [mm].

double seOptics::m_FNumber
private

Optical System F Number [1].

double seOptics::m_lamdaMean
private

mean wavelength of waveband [um]

shapeType seOptics::m_apertureShape
private

Aperture shape - circular or rectangular.

double seOptics::m_apertureAspectRatio
private

Aperture's aspect ratio - horizontal to vertical.

double seOptics::m_blurSpotDiameter
private

blur spot diameter

double seOptics::m_horizontalFov
private

horizontal fov (deg)

double seOptics::m_verticalFov
private

vertical fov (deg)

double seOptics::m_mtfMotionBlurSize
private

motion blur mtf size

double seOptics::m_lensTransmittance
private

Lens Transmittance.

bool seOptics::m_filterEnable
private

enable flag for filtering

bool seOptics::m_optimizedFilterEnable
private

enable flag for peforming optimized filtering

double seOptics::m_filterAdjustment
private

percent of the calculated filter that is applied

bool seOptics::m_haloEnable
private

enable flag to process halos

double seOptics::m_haloThreshold
private

Threshold to trigger a halo.

double seOptics::m_haloRadius
private

radius of the halos

double seOptics::m_haloIntensity
private

intensity scale factor for halos

HaloType seOptics::m_haloType
private

selector for halo type (0 for PMT type like NVGs and 1 for CCD type)

double seOptics::m_haloThresholdAdjustment
private

adjustment multiplied by the halo threshold

double seOptics::m_DASHorz
private

Horizontal Detector Angular Subtense.

double seOptics::m_DASVert
private

Vertical Detector Angular Subtense.

double seOptics::m_ImageClipRadius
private

Image clip radius to mask out edges of the rendered image.

double seOptics::m_ImageClipScaleHorz
private

Image scale for clipping edges of rendered image in horizontal direction.

double seOptics::m_ImageClipScaleVert
private

Image scale for clipping edges of rendered image in vertical direction.

bool seOptics::m_userDefinedMTFenable
private

flag indicating the use of user defined MTF data

char seOptics::m_userDefinedMTFfilename[512]
private

file name for user defined MTF data

char seOptics::m_userDefinedRootKernelfilename[512]
private

file name for user defined kernel loading

bool seOptics::m_aberrationsEnable
private

Monochromatic wavefront error aberration (W) coefficients.

double seOptics::m_W020
private
double seOptics::m_W040
private
double seOptics::m_W131
private
double seOptics::m_W222
private
double seOptics::m_W220
private
double seOptics::m_W311
private
int seOptics::m_maxKernelSize
private
bool seOptics::m_enableUserDefinedKernel
private
bool seOptics::m_enableSeparableKernel
private
double seOptics::m_horzAperturePercentage
private
double seOptics::m_vertAperturePercentage
private
bool seOptics::m_userDefinedKernelsLoaded
private
bool seOptics::m_dirty
private

dirty flag for optics object


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


Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)