28 #define PRODUCT_VERSION "SenSimRT"
30 #define VERSIONNUMBER 100
86 void outputImage(
char *filename,
float *inputImage,
long numCols,
97 void applyCpuSensorEffects(
float *inputImage,
long numCols,
long numRows);
107 double getFocalLength()
const;
116 double getFNumber()
const;
180 void setSensorEffectsFlags(
bool enable,
bool gpuEnable,
bool filterEnable,
bool noiseEnable,
bool gainEnable,
bool AGCenable,
bool haloEnable,
bool motionBlurEnable =
false) {
181 m_enableSensorEffects =
enable;
182 m_enableGPUSensorEffects = gpuEnable;
183 m_enableFilterEffects = filterEnable;
184 m_enableGainEffects = gainEnable;
185 m_enableNoiseEffects = noiseEnable;
186 m_enableHaloEffects = haloEnable;
187 m_enableMotionBlurEffects = motionBlurEnable;
188 if (m_enableSensorEffects) {
189 m_optics->setFilterEnable(isFilterOn());
190 m_detector->setNoiseEnable(isNoiseOn());
191 m_optics->setHaloEnable(isHaloOn());
192 m_detector->setMotionBlurEnable(isMotionBlurOn());
193 m_electronics->setGainEnable(isGainOn());
194 m_electronics->setAGCEnable(AGCenable);
196 m_optics->setFilterEnable(
false);
197 m_detector->setNoiseEnable(
false);
198 m_optics->setHaloEnable(
false);
199 m_electronics->setGainEnable(
false);
200 m_detector->setMotionBlurEnable(
false);
201 m_electronics->setAGCEnable(
false);
212 return m_enableSensorEffects;
225 void setInputSize(
int w,
int h,
bool use888Encoding =
false);
234 void setInputOffset(
int x,
int y);
245 void setDisplaySize(
int w,
int h);
254 void setDisplayOffset(
int x,
int y,
bool clearBuffer);
267 void applyGpuSensorEffects(
int inputTextureId,
bool usePreviousFBO =
false,
268 float *inputImage=NULL,
bool swapBuffer =
false,
bool useTextureRect =
false,
int outputTextureId = 0);
281 void getMTFSamples (
int numSamples,
double &xCutoffFreq,
double &yCutoffFreq,
282 double *xMTF,
double *yMTF)
const;
305 bool isHaloOn()
const {
return m_enableHaloEffects; }
319 bool isGainOn()
const {
return m_enableGainEffects; }
334 void setFilterAdjustment(
double adjustment);
341 void setNoiseAdjustment(
double adjustment);
348 void setGainAdjustment(
double adjustment);
355 void setLevelAdjustment(
double adjustment);
362 double getFilterAdjustment()
const;
369 double getNoiseAdjustment()
const;
376 double getGainAdjustment()
const;
383 double getLevelAdjustment()
const;
390 bool isBlackHotEnable()
const;
397 void setBlackHotEnable(
bool flag);
404 bool isAeroDynamicHeatingEnable()
const;
411 void setAeroDynamicHeatingEnable(
bool flag);
418 int getAeroDynamicHeatingGimbalMode()
const;
425 void setAeroDynamicHeatingGimbalMode(
int flag);
432 void setBandpass(
const double ax,
const double bx);
458 void setColorMapEnable(
int flag);
466 int getColorMapEnable()
const;
471 bool isFullColorEnable()
const;
476 void setFullColorEnable(
bool flag);
489 void setSaveImage(
char *saveFileName,
bool preAperture =
false,
bool continuous =
false,
bool flip =
true,
bool detectorResolution =
false);
496 void setStopContinuous();
505 void setSaveImageFileName(
char *saveFileName);
514 void setSavePreApertureImage(
bool preAperture);
522 void setSaveContinuousImages(
bool continuous);
530 void setFlipSaveImages(
bool flip);
538 void setSaveImagesAtDetectorResolution(
bool flag);
546 void setSaveRadianceImageEnable();
555 void setSaveRadianceImageArrayEnable(
bool enable );
567 void applyAeroDynamicHeating(
float azimuthOffset,
float elevationOffset,
float speed,
float aeroDynamicHeating);
575 float* getRadianceImageArray()
const;
582 float* getObjectIDImageArray()
const;
590 float* getDownSampledRadianceImageArray()
const;
597 float* getDownSampledObjectIDImageArray()
const;
607 m_gpuProcessor->getDownSampledImageSize( width, height);
615 void setDownSampledImagesEnable(
bool bEnable )
617 m_gpuProcessor->setDownSampledImagesEnable(bEnable);
625 bool getDownSampledImagesEnable()
const
627 return m_gpuProcessor->getDownSampledImagesEnable();
635 void setObjectIDRenderingEnable(
bool bEnable)
637 m_gpuProcessor->setObjectIDRenderingEnable(bEnable);
644 bool getObjectIDRenderingEnable()
const
646 return m_gpuProcessor->getObjectIDRenderingEnable();
655 void setNumberSubloadRows(
int numberOfRows)
657 m_gpuProcessor->setNumberSubloadRows(numberOfRows);
665 void setOutputImageArrayType( OutputImageArrayType
type );
672 OutputImageArrayType getOutputImageArrayType()
const;
683 bool initializeLicense();
690 bool licenseCheck()
const;
697 bool openGLCheck()
const;
705 const char * getVersion()
const;
714 void setDisplayTextureID(
GLuint textureID,
bool enable =
true);
716 bool getUsePreviousFBO()
const
718 return m_usePreviousFBO;
724 void setMaxLightLevel(
double maxLightLevel)
726 m_gpuProcessor->setMaxLightLevel(maxLightLevel);
734 void setMaxRadiance(
double maxRadiance);
741 void setMinRadiance(
double minRadiance);
748 void setApertureWidth(
double apertureWidth);
755 void setApertureAspectRatio(
double apertureWidth);
762 void setNoiseEquivalentTemp(
double apertureWidth);
769 void setNoiseEquivalentRadiance(
double apertureWidth);
779 double getDistortionScaleFactor()
const
781 return m_gpuProcessor->getDistortionScaleFactor();
784 void setHaloQEResponse(
double QEResponse)
786 m_gpuProcessor->setHaloQEResponse(QEResponse);
829 struct Implementation;