VR-Vantage 3.0 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
seDetector.h
Go to the documentation of this file.
1 
3 // Copyright JRM Enterprises, Inc. 2004 - 2010
4 // All rights reserved.
5 //
6 // This code is the intellectual property of JRM Enterprises, Inc.
7 // It may not be used or released as source or compiled binary form
8 // without the prior written consent of JRM Enterprises, Inc.
9 //
10 // Original Author: Ken George Date: October 2004
12 
13 #ifndef _seDetector_
14 #define _seDetector_
15 
16 //#include "seIncAll.h"
17 
18 #include "sedllexport.h"
19 
27 {
28 public:
29 
36  {
37  InvalidScanDirection = -1,
38  HorizontalScanDirection = 0,
39  VerticalScanDirection = 1,
40  FullImageScan = 2,
41  NumScanDirection = 3 // Handy enumeration count. Always keep as last entry.
42  };
43 
45  // seDetector
49  seDetector();
50 
52  //seDetector
56  ~seDetector();
57 
58 
60  //loadDefaults
64  void loadDefaults();
65 
66 
68  //setBandpass
74  void setBandpass(const double ax, const double bx) {
75  if ((m_ax != ax) ||
76  (m_bx != bx)) {
77  m_ax = ax;
78  m_bx = bx;
79  setDirty();
80  }
81  }
82 
84  //getBandpass
90  void getBandpass(double &ax, double &bx) const
91  {
92  ax = m_ax;
93  bx = m_bx;
94  }
95 
97  //setNumDetectors
103  void setNumDetectors(const long width, const long height) {
104  if ((m_detectorWidth != width) ||
105  (m_detectorHeight != height)) {
106  m_detectorWidth = width;
107  m_detectorHeight = height;
108  setDirty();
109  }
110  }
111 
113  //getNumDetectors
119  void getNumDetectors(long &width, long &height) const
120  {
121  width = m_detectorWidth;
122  height = m_detectorHeight;
123  }
124 
125 
126 
128  //setPitchDetectors
134  void setPitchDetectors(const double pitchHorz, const double pitchVert) {
135  if (m_horizontalPitch != pitchHorz ||
136  m_verticalPitch != pitchVert)
137  {
138  m_horizontalPitch = pitchHorz;
139  m_verticalPitch = pitchVert;
140  setDirty();
141  }
142  }
143 
145  //getPitchDetectors
151  void getPitchDetectors(double &pitchHorz, double &pitchVert) const
152  {
153  pitchHorz = m_horizontalPitch;
154  pitchVert = m_verticalPitch;
155  }
156 
157 
159  //setDwellTime
164  void setDwellTime(const double dwellTime) {
165  if (m_dwellTime != dwellTime) {
166  m_dwellTime = dwellTime;
167  setDirty();
168  }
169  }
170 
172  //getDwellTime
177  double getDwellTime() const {return m_dwellTime;}
178 
179 
181  //setNoiseFrequencyKnee
186  void setNoiseFrequencyKnee(const double freqKnee) {
187  if (m_noiseFrequencyKnee != freqKnee) {
188  m_noiseFrequencyKnee = freqKnee;
189  setDirty();
190  }
191  }
193  //setPoissonNoisePercent
198  void setPoissonNoisePercent(double percent){m_percentPoisson = percent;}
199 
201  //getPoissonNoisePercent
206  double getPoissonNoisePercent() const {return m_percentPoisson;}
207 
209  //setFInverseNoisePercent
214  void setFInverseNoisePercent(double percent){m_percentFInverse = percent;}
215 
217  //getFInverseNoisePercent
222  double getFInverseNoisePercent() const {return m_percentFInverse;}
223 
225  //getNoiseFrequencyKnee
230  double getNoiseFrequencyKnee() const {return m_noiseFrequencyKnee;}
231 
232 
234  //setNoiseFrequencyExp
239  void setNoiseFrequencyExp(const double freqExp) {
240  if (m_noiseFrequencyExp != freqExp) {
241  m_noiseFrequencyExp = freqExp;
242  setDirty();
243  }
244  }
245 
247  //getNoiseFrequencyExp
252  double getNoiseFrequencyExp() const {return m_noiseFrequencyExp;}
253 
254 
256  //setNoiseEquivalentTemp
261  void setNoiseEquivalentTemp(const double temp) {
262  if (m_noiseEquivalentTemp != temp) {
263  m_noiseEquivalentTemp = temp;
264  setDirty();
265  }
266  }
267 
269  //getNoiseEquivalentTemp
274  double getNoiseEquivalentTemp() const {return m_noiseEquivalentTemp;}
275 
276 
278  //setBackgroundTemp
283  void setBackgroundTemp(const double temp) {
284  if (m_BackgroundTemp != temp) {
285  m_BackgroundTemp = temp;
286  setDirty();
287  }
288  }
289 
291  //getBackgroundTemp
296  double getBackgroundTemp() const {return m_BackgroundTemp;}
297 
298 
300  //setFixedPatternNoisePercent
305  void setFixedPatternNoisePercent(double temp) {
306  m_percentFixedNoise = temp;
307  }
308 
310  //getFixedPatternNoisePercent
315  double getFixedPatternNoisePercent() const {return m_percentFixedNoise;}
316 
317 
319  //setNoiseEquivalentRadiance
324  void setNoiseEquivalentRadiance(double temp) {
325  if (m_noiseEquivRadiance != temp) {
326  m_noiseEquivRadiance = temp;
327  setDirty();
328  }
329  }
330 
332  //getNoiseEquivalentRadiance
337  double getNoiseEquivalentRadiance() const {return m_noiseEquivRadiance;}
338 
339 
341  //setPercentPixelFill
347  void setPercentPixelFill(double temp) {
348  if (m_precentPixelFill != temp) {
349  m_precentPixelFill = temp;
350  setDirty();
351  }
352  }
353 
355  //getPercentPixelFill
360  double getPercentPixelFill() const {return m_precentPixelFill;}
361 
362 
364  //setPercentDeadPixel
369  void setPercentDeadPixel(double temp) {
370  m_percentDeadPixel = temp;
371  }
372 
374  //getPercentDeadPixel
379  double getPercentDeadPixel() const {return m_percentDeadPixel;}
380 
381 
383  //setNoiseEnable
388  void setNoiseEnable(const bool flag) {
389  m_noiseEnable = flag;
390  }
391 
393  //isFullColorEnable
398  bool isFullColorEnable() const {return m_FullColorEnable;}
399 
401  //setFullColorEnable
406  void setFullColorEnable(const bool flag) {
407  if (m_FullColorEnable != flag) {
408  m_FullColorEnable = flag;
409  setDirty();
410  }
411  }
412 
414  //getChannelSelects
423  void getChannelSelects(float &redSelect, float &greenSelect, float &blueSelect ) const
424  {
425  redSelect = m_redSelect;
426  greenSelect = m_greenSelect;
427  blueSelect = m_blueSelect;
428  }
429 
431  //setChannelSelects
440  void setChannelSelects(float redSelect, float greenSelect, float blueSelect ) {
441  m_redSelect = redSelect;
442  m_greenSelect = greenSelect;
443  m_blueSelect = blueSelect;
444  }
445 
446 
448  //isScanningSensorEnable
453  bool isScanningSensorEnable() const {return m_scanningSensorEnable;}
454 
456  //setScanningSensorEnable
461  void setScanningSensorEnable(const bool flag) {
462  m_scanningSensorEnable = flag;
463  }
464 
466  //setScanMaskFilename
471  inline void setScanMaskFilename(char *scanMaskFileName) { setScanMaskGainFilename(scanMaskFileName); }
472 
474  //getScanMaskImage
479  inline char *getScanMaskFilename() { return getScanMaskGainFilename(); }
480 
481 
483  //setScanMaskGainFilename
488  void setScanMaskGainFilename(char *scanMaskFileName);
489 
491  //getScanMaskGainImage
496  char *getScanMaskGainFilename();
497 
499  //setScanMaskLevelFilename
504  void setScanMaskLevelFilename(char *scanMaskFileName);
505 
507  //getScanMaskLevelImage
512  char *getScanMaskLevelFilename();
513 
515  //setScanMask
525  void setScanMask(float minGain, float maxGain, ScanDirectionType scanDirection, int lineSpacing = 1, float minLevel = 0.0, float maxLevel = 0.0);
526 
528  //getScanMaskMaxGain
533  float getScanMaskMaxGain() const {return m_scanMaskMaxGain;}
534 
536  //setScanMaskMaxGain
541  void setScanMaskMaxGain(float val);
542 
544  //getScanMaskMinGain
549  float getScanMaskMinGain() const {return m_scanMaskMinGain;}
550 
552  //setScanMaskMinGain
557  void setScanMaskMinGain(float val);
558 
560  //getScanMaskMaxLevel
565  float getScanMaskMaxLevel() const {return m_scanMaskMaxLevel;}
566 
568  //setScanMaskMaxLevel
573  void setScanMaskMaxLevel(float val);
574 
576  //getScanMaskMinLevel
581  float getScanMaskMinLevel() const {return m_scanMaskMinLevel;}
582 
584  //setScanMaskMinLevel
589  void setScanMaskMinLevel(float val);
590 
592  //getScanMaskDirection
597  ScanDirectionType getScanMaskDirection() const {return m_scanMaskDirection;}
598 
600  //setScanMaskMaskDirection
605  void setScanMaskDirection(ScanDirectionType val);
606 
608  //getScanMaskLineSpacing
613  int getScanMaskLineSpacing() const {return m_scanMaskLineSpacing;}
614 
616  //setScanMaskLineSpacing
621  void setScanMaskLineSpacing(int val);
622 
624  //getScanMaskLevelAdjustment
630  void setScanMaskLevelAdjustment(double adjustment) {
631  m_scanMaskLevelAdjustment = adjustment;
632  }
634  //getScanMaskLevelAdjustment
640  double getScanMaskLevelAdjustment() const {return m_scanMaskLevelAdjustment;}
641 
643  //getScanMaskUserDefined
648  bool getScanMaskUserDefined() const;
649 
651  //setScanMaskUserDefined
656  void setScanMaskUserDefined(bool userDefined);
657 
659  //isNoiseEnable
664  bool isNoiseEnable() const {return m_noiseEnable;}
665 
667  //setNoiseAdjustment
673  void setNoiseAdjustment(double adjustment) {
674  m_noiseAdjustment = adjustment;
675  }
678 
683  double getNoiseAdjustment() const {return m_noiseAdjustment;}
684 
686  // setMotionBlurEnable
691  void setMotionBlurEnable (const bool flag) {
692  m_motionBlurEnable = flag;
693  }
694 
696  // isMotionBlurEnable
701  bool isMotionBlurEnable() const { return m_motionBlurEnable; }
702 
704  // setMotionBlurWeight
710  if ((weight >= 0.0) &&
711  (weight <= 1.0))
712  m_motionBlurWeight = weight;
713  }
715  // getMotionBlurWeight
720  double getMotionBlurWeight() const { return m_motionBlurWeight; }
721 
722 
724  //setWeightThreshold
730  void setWeightThreshold(double threshold) {
731  if (m_weightThreshold != threshold) {
732  m_weightThreshold = threshold;
733  setDirty();
734  }
735  }
737  //getWeightThreshold
742  double getWeightThreshold() const {return m_weightThreshold;}
743 
744 
746  //isDirty
751  bool isDirty() const {return m_dirty;}
752 
754  //setDirty
758  void setDirty() {m_dirty = true;}
760  //clrDirty
764  void clrDirty() {m_dirty = false;}
765 
767  //isScanMaskDirty
772  bool isScanMaskDirty() const {return m_scanMaskDirty;}
774  //setScanMaskDirty
778  void setScanMaskDirty() {m_scanMaskDirty = true;}
780  //clrScanMaskDirty
784  void clrScanMaskDirty() {m_scanMaskDirty = false;}
785 
786 private:
787 
788  double m_ax;
789  double m_bx;
794  double m_dwellTime;
808 
811 
813  float m_redSelect;
815  float m_blueSelect;
816 
818  char m_scanMaskGainFileName[255]; // Set to 255 to match SIGSIM_STRING_SIZE ///< A single channel *.bmp for per channel gain
819  char m_scanMaskLevelFileName[255];
820 
830 
831  bool m_dirty;
832 
833 };
834 
835 
836 #endif // _seDetector_


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