VR-Vantage 3.0 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ssObject.h
Go to the documentation of this file.
1 
2 // Copyright JRM Enterprises, Inc. 2004 - 2012
3 // All rights reserved.
4 //
5 // This code is the intellectual property of JRM Enterprises, Inc.
6 // It may not be used or released as source or compiled binary form
7 // without the prior written consent of JRM Enterprises, Inc.
8 //
9 // Original Author: Eric Olson Date: May 2004
11 
12 #ifndef _ssObject_
13 #define _ssObject_
14 
15 #include "ssMaterialSet.h"
16 #include "ssdllexport.h"
17 
18 
19 #include "CTDR-CPDR.h"
20 #include "Objects.h"
21 
22 
23 #define DIRTY_VELDIF_MPS 1.0
24 #define DIRTY_ALTDIF_M 1000.0
25 
27 // class: ssObject
32 {
33 public:
35  typedef enum
36  {
38  SR,
41  } ObjectBrdfEnum;
42 
43 
45  // ssObject
49  ssObject();
50 
52  //~ssObject
56  virtual ~ssObject();
57 
59  //getThermalSpinUpTime
64  double getThermalSpinUpTime();
65 
67  //setThermalSpinUpTime
73  bool setThermalSpinUpTime(double hours);
74 
76  //*getResponseData
115  float *getResponseData(ssSensor *sensor, unsigned int &numMaterials, unsigned int &numBins, unsigned int &numParameters);
117  //*getSandfordRobertsonResponseData
127  float *getSandfordRobertsonResponseData(ssSensor *sensor, unsigned int &numMaterials, unsigned int &numBins, unsigned int &numParameters);
128 
130  // getVisualdata
140  float *getVisualData(unsigned int &numMaterials, ssSensor *sensor);
141 
143  //getMaterialResponse
154  void getMaterialResponse(ssSensor *sensor, unsigned int matCode,
155  float &ambient, float &emission, float &cosEmission);
156 
158  // getRCS
165  double getRCS(ssSensor *sensor, ssEnvironment *env);
166 
168  //getNumberResponses
173  unsigned int getNumberResponses();
174 
176  // getNumberResponseValues
177  //
182  unsigned int getNumberResponseValues();
183 
185  //getNumberMaterials
190  unsigned int getNumberMaterials();
191 
193  //*getObjectType
198  int getObjectType();
199 
201  //setObjectType
206  void setObjectType(const int type);
207 
209  //*getName
214  char *getName();
215 
217  //setName
222  void setName(const char *name);
223 
225  //getUniqueID
230  int getUniqueID();
231 
233  //setUniqueID
241  bool setUniqueID(int id);
242 
244  //*setFullResponseEnable
252  void setFullResponseEnable(bool flag);
253 
255  //*getFullResponseEnable
260  bool getFullResponseEnable();
261 
263  //*setIncludeEmissivity
270  void setIncludeEmissivity(bool flag);
271 
273  //*getIncludeEmissivity
278  bool getIncludeEmissivity();
279 
281  //setMaterialSystemFileName
286  void setMaterialSystemFileName(char *name);
287 
289  //getMaterialSystemFileName
294  char *getMaterialSystemFileName();
295 
297  //setSCfilename
302  void setSCfilename(char *name);
303 
305  //getSCfilename
310  char *getSCfilename();
311 
313  //setRCSfilename
318  void setRCSfilename(char *name);
319 
321  //getRCSfilename
326  char *getRCSfilename();
327 
329  //setPIPfilename
334  void setPIPfilename(char *name = NULL);
335 
337  //getPIPfilename
342  char *getPIPfilename();
343 
345  //setTrackFileName
350  void setTrackFileName(char *name);
351 
353  //getTrackFileName
358  char *getTrackFileName();
359 
361  //setIndex
366  void setIndex(int i);
368  //getIndex
373  int getIndex();
374 
376  //*setMaterialSet
381  void setMaterialSet(ssMaterialSet *set);
382 
384  //*getMaterialSet
389  ssMaterialSet *getMaterialSet();
390 
391 
393  //setGeocentricLocation
400  void setGeocentricLocation(
401  double x,
402  double y,
403  double z);
404 
406  //getGeocentricLocation
413  void getGeocentricLocation(
414  double &x,
415  double &y,
416  double &z);
417 
419  //setGeodeticLocation
426  void setGeodeticLocation(
427  double lat,
428  double lon,
429  double alt);
430 
432  //getGeodeticLocation
439  void getGeodeticLocation(
440  double &lat,
441  double &lon,
442  double &alt);
443 
445  //setOrientation
452  void setOrientation(
453  double h,
454  double p,
455  double r);
456 
458  //getOrientation
465  void getOrientation(
466  double &h,
467  double &p,
468  double &r);
469 
470 
472  //setLinearVelocity
479  void setLinearVelocity(double e,
480  double n,
481  double u);
482 
484  //getLinearVelocity
491  void getLinearVelocity(double &e,
492  double &n,
493  double &u);
494 
496  //setLinearAcceleration
503  void setLinearAcceleration(double e,
504  double n,
505  double u);
506 
508  //getLinearAcceleration
515  void getLinearAcceleration(double &e,
516  double &n,
517  double &u);
518 
520  //setAngularVelocity
528  void setAngularVelocity(double e,
529  double n,
530  double u);
531 
533  //getAngularVelocity
541  void getAngularVelocity(double &e,
542  double &n,
543  double &u);
544 
546  //setAngularAcceleration
554  void setAngularAcceleration(double e,
555  double n,
556  double u);
557 
559  //getAngularAcceleration
567  void getAngularAcceleration(double &e,
568  double &n,
569  double &u);
570 
572  // setTrack
578  void setTrack(TRACK *track, int numTracks);
579 
581  // setTrackfileUpdate
587  void setTrackfileUpdate(double simTime, ::ellipsoid *ellipsoid);
588 
590  //* getPlumeRadianceMap
595  PLUME_RADIANCE_MAP *getPlumeRadianceMap();
596 
598  //*getObjectPtr
608  OBJECT *getObjectPtr();
609 
611  //thermalSpinUp
617  bool thermalSpinUp(ssEnvironment *env);
618 
620  //isEmatType
625  bool isEmatType() ;
626 
628  //setEmatType
634  void setEmatType(bool flag);
635 
637  //initialize
644  bool initialize(char *dataDir = NULL);
645 
647  // update
653  bool update(ssEnvironment *env);
654 
656  // loadRCSFile
662  bool loadRCSFile();
663 
665  // getScaledEffectBandSignature
679  bool getScaledEffectBandSignature(double &emission, double &reflectivity, double &alpha, int &processpath, ssEnvironment *env, ssSensor *sensor);
680 
682  // getScaledEffectSpectralSignature
697  float *getScaledEffectSpectralSignature(int &processpath, int &numSensorWaveLengths, int &reponseWidth, ssEnvironment *env, ssSensor *sensor);
698 
700  // updateVisibleScaledEffectBandSignature
707  void updateVisibleScaledEffectBandSignature(ssEnvironment *env);
708 
710  // getVisibleScaledEffectBandSignature
716  void getVisibleScaledEffectBandSignature(double &emission, double &reflectivity, double &alpha);
717 
719  // setVisibleScaledEffectBandSignature
728  void setVisibleScaledEffectBandSignature(double emission, double reflectivity, double alpha);
729 
730 
732  // copyIntrinsicParams
739  void copyIntrinsicParams(ssObject *from);
740 
741 
743  // setIsDirty
749  void setIsDirty(bool flag);
750 
752  // isDirty
758  bool isDirty();
759 
761  //setWorldLocation
768  void setWorldLocation(double x, double y, double z);
769 
771  //getWorldLocation
778  void getWorldLocation(double& x, double& y, double& z);
779 
780  // Methods for SR support
782  void setBrdf (ObjectBrdfEnum v);
784  ObjectBrdfEnum getBrdf ();
786  void setRoughness (float r);
788  float getRoughness ();
789 
790 private:
791 
792 
794  //setObjectPtr
799  void setObjectPtr(OBJECT *objectPtr);
800 
802  int m_index;
803 
805  int m_id;
808 
813 
815  char m_trackFileName[SIGSIM_STRING_SIZE];
817  char m_materialSystemFileName[SIGSIM_STRING_SIZE];
818 
820  char m_dataDirectory[SIGSIM_STRING_SIZE];
822  char m_rcsFilename[SIGSIM_STRING_SIZE];
824  char m_scFilename[SIGSIM_STRING_SIZE];
826  char m_pipFilename[SIGSIM_STRING_SIZE];
827 
834  // For generating the unique id
837 
839  double m_visAlpha;
844 
846  bool m_isDirty;
847 
848  double m_worldXCoord;
849  double m_worldYCoord;
850  double m_worldZCoord;
851 
853 
857  float m_roughness;
858 
859  static int s_objectId;
860 
861  friend class SigSimRT;
862  friend class ssRadar;
863 
864 };
865 
866 #endif // _ssObject_
867 


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