![]() |
VR-Vantage 2.7 API Documentation
|
class wrapper for the object functions in SigSim library More...
Public Types | |
| enum | ObjectBrdfEnum { ORIGINAL_PHONG = 0, SR, BECKMANN, PHONG } |
| BRDF type to be used. More... | |
Public Member Functions | |
| ssObject () | |
| constructor | |
| virtual | ~ssObject () |
| destructor | |
| double | getThermalSpinUpTime () |
| get the thermal spin up period | |
| bool | setThermalSpinUpTime (double hours) |
| set the thermal spin up period | |
| float * | getResponseData (ssSensor *sensor, unsigned int &numMaterials, unsigned int &numBins, unsigned int &numParameters) |
| get the response data in float array form for a particular sensor useful for binding to a texture table is organized as float responseData[material][wavelength][parameter] There are 12 parameters per spectral wavelength per material. | |
| float * | getSandfordRobertsonResponseData (ssSensor *sensor, unsigned int &numMaterials, unsigned int &numBins, unsigned int &numParameters) |
| get the Sandford Robertson response data in float array form for a particular sensor | |
| float * | getVisualData (unsigned int &numMaterials, ssSensor *sensor) |
| Gets the visual band response data for a particular object. | |
| void | getMaterialResponse (ssSensor *sensor, unsigned int matCode, float &ambient, float &emission, float &cosEmission) |
| Gets the response data for a particular sensor and material code. | |
| double | getRCS (ssSensor *sensor, ssEnvironment *env) |
| gets the single valued RCS along the LOS to the object assuming no polarization | |
| unsigned int | getNumberResponses () |
| gets the number of responses for an entity | |
| unsigned int | getNumberResponseValues () |
| gets the number of response values used in the response table | |
| unsigned int | getNumberMaterials () |
| gets the number of materials for an entity | |
| int | getObjectType () |
| get the object type | |
| void | setObjectType (const int type) |
| char * | getName () |
| get the object name | |
| void | setName (const char *name) |
| int | getUniqueID () |
| get the sensor id. | |
| bool | setUniqueID (int id) |
| set the sensor id. | |
| void | setFullResponseEnable (bool flag) |
| sets the full response flag full response flag - set true for mcm textures - false for temperature maps/poly level temperatures indicates whether to place the full response in the response data or leave the emission value to be combined in the GPU | |
| bool | getFullResponseEnable () |
| get the full response flag | |
| void | setIncludeEmissivity (bool flag) |
| set the Include Emissivity flag flag indicating whether to combine the temperature with the emissivity for the full emission respons in the response data or leave the emissivity value to be combined in the GPU | |
| bool | getIncludeEmissivity () |
| get the Include Emissivity flag | |
| void | setMaterialSystemFileName (char *name) |
| char * | getMaterialSystemFileName () |
| void | setSCfilename (char *name) |
| char * | getSCfilename () |
| void | setRCSfilename (char *name) |
| char * | getRCSfilename () |
| void | setPIPfilename (char *name=NULL) |
| char * | getPIPfilename () |
| void | setTrackFileName (char *name) |
| char * | getTrackFileName () |
| void | setIndex (int i) |
| int | getIndex () |
| void | setMaterialSet (ssMaterialSet *set) |
| ssMaterialSet * | getMaterialSet () |
| void | setGeocentricLocation (double x, double y, double z) |
| set the geocentric location (meters) | |
| void | getGeocentricLocation (double &x, double &y, double &z) |
| get the geocentric location (meters) | |
| void | setGeodeticLocation (double lat, double lon, double alt) |
| set the geodetic location (degrees, degrees, meters) | |
| void | getGeodeticLocation (double &lat, double &lon, double &alt) |
| get the geodetic location (degrees, degrees, meters) | |
| void | setOrientation (double h, double p, double r) |
| set the body FRD orientation relative to local NED coords (radians) | |
| void | getOrientation (double &h, double &p, double &r) |
| set the body FRD orientation relative to local NED coords (radians) | |
| void | setLinearVelocity (double e, double n, double u) |
| set linear velocity in local ENU coords (m/s) | |
| void | getLinearVelocity (double &e, double &n, double &u) |
| get linear velocity in local ENU coords (m/s) | |
| void | setLinearAcceleration (double e, double n, double u) |
| set linear acceleration in local ENU coords (m/s2) | |
| void | getLinearAcceleration (double &e, double &n, double &u) |
| get linear acceleration in local ENU coords (m/s2) | |
| void | setAngularVelocity (double e, double n, double u) |
| set Angular velocity in local ENU coords (rad/s) Magnitude gives speed clockwise about direction. | |
| void | getAngularVelocity (double &e, double &n, double &u) |
| get Angular velocity in local ENU coords (rad/s) Magnitude gives speed clockwise about direction. | |
| void | setAngularAcceleration (double e, double n, double u) |
| set angular acceleration in local ENU coords (rad/s2) Magnitude gives acceleration clockwise about direction. | |
| void | getAngularAcceleration (double &e, double &n, double &u) |
| get angular acceleration in local ENU coords (rad/s2) Magnitude gives acceleration clockwise about direction. | |
| void | setTrack (TRACK *track, int numTracks) |
| set track | |
| void | setTrackfileUpdate (double simTime,::ellipsoid *ellipsoid) |
| set track file update | |
| PLUME_RADIANCE_MAP * | getPlumeRadianceMap () |
| get the plume radiance map (OBJECT.spurc_table) | |
| OBJECT * | getObjectPtr () |
| get the SigSim object structure... | |
| bool | thermalSpinUp (ssEnvironment *env) |
| spins up the thermal systems for the specified duration in hours | |
| bool | isEmatType () |
| returns true if set is being used with eigen materials | |
| void | setEmatType (bool flag) |
| set flag indicating whether the set is to be used with eigen materials. | |
| bool | initialize (char *dataDir=NULL) |
| initializes the object's special effects. | |
| bool | update (ssEnvironment *env) |
| Updates object. | |
| bool | loadRCSFile () |
| loads/reloads rcs file from disk and updates ssObject memory | |
| bool | getScaledEffectBandSignature (double &emission, double &reflectivity, double &alpha, int &processpath, ssEnvironment *env, ssSensor *sensor) |
| Retrieves (dynamic-range scaled) sensor band values for special effect parameters: emission, alpha, reflectivity, and processpath (0=model-absolute, 1=vis-band-ratio). | |
| float * | getScaledEffectSpectralSignature (int &processpath, int &numSensorWaveLengths, int &reponseWidth, ssEnvironment *env, ssSensor *sensor) |
| Retrieves (dynamic-range scaled) sensor band spectral values for special effect parameters emission, alpha, reflectivity, and processpath (0=model-absolute, 1=vis-band-ratio). | |
| void | updateVisibleScaledEffectBandSignature (ssEnvironment *env) |
| Updates object's visible-band signature for special effects. | |
| void | getVisibleScaledEffectBandSignature (double &emission, double &reflectivity, double &alpha) |
| Retrieves object's visible-band signature. | |
| void | setVisibleScaledEffectBandSignature (double emission, double reflectivity, double alpha) |
| Sets object's visible-band signature. | |
| void | copyIntrinsicParams (ssObject *from) |
| copies all possible independent params from one ssObject to another | |
| void | setIsDirty (bool flag) |
| set all possible independent params from one ssObject to another | |
| bool | isDirty () |
| query whether the object's parameters have changed | |
| void | setWorldLocation (double x, double y, double z) |
| Set the world location of the object. | |
| void | getWorldLocation (double &x, double &y, double &z) |
| get the world position out of ssObject | |
| void | setBrdf (ObjectBrdfEnum v) |
| set the BRDF type | |
| ObjectBrdfEnum | getBrdf () |
| get the BRDF type | |
| void | setRoughness (float r) |
| set the roughness parameter for the BRDF | |
| float | getRoughness () |
| get the roughness paramater for the BRDF | |
Private Member Functions | |
| void | setObjectPtr (OBJECT *objectPtr) |
| set the SigSim object structure | |
Private Attributes | |
| int | m_index |
| index storage value for defining an OBJECT array | |
| int | m_id |
| unique ID for this object. Must be different than any other object | |
| ssMaterialSet * | m_materialSet |
| material set for this object | |
| OBJECT * | m_objectPtr |
| SigSim object objects. | |
| bool | m_objectPtr_alloc |
| Indicates whether m_objectPtr was allocated by this instance. | |
| char | m_trackFileName [SIGSIM_STRING_SIZE] |
| track file name | |
| char | m_materialSystemFileName [SIGSIM_STRING_SIZE] |
| material system file name | |
| char | m_dataDirectory [SIGSIM_STRING_SIZE] |
| SigSim data directory. | |
| char | m_rcsFilename [SIGSIM_STRING_SIZE] |
| radar cross section file name | |
| char | m_scFilename [SIGSIM_STRING_SIZE] |
| scattering center file name | |
| char | m_pipFilename [SIGSIM_STRING_SIZE] |
| Particle Input Parameters file name. | |
| double | m_thermalSpinUp |
| thermal spin up time for this object - hours | |
| bool | m_fullResponseEnable |
| flag to determine whether the full response is used for mcm texture or not for poly temperature. | |
| bool | m_includeEmissivity |
| flag to indicate whether to include the emissivity in the response table or leave it for the gpu processing. | |
| bool | m_ematType |
| flag indicating whether eigen materials are being used. | |
| double | m_visAlpha |
| Visible-band scaled particle effect alpha signature. | |
| double | m_visReflectivity |
| Visible-band scaled particle effect reflectivity signature. | |
| double | m_visEmission |
| Visible-band scaled particle effect emission signature. | |
| bool | m_isDirty |
| flag to indicate whether particle system spectral signatures need to be updated | |
| double | m_worldXCoord |
| world X position of entity | |
| double | m_worldYCoord |
| world Y position of entity | |
| double | m_worldZCoord |
| world Z position of entity | |
| float * | m_specialEffectsReponse |
| response array for special effects | |
| ObjectBrdfEnum | m_brdf |
| The BRDF to use. | |
| float | m_roughness |
| BRDF roughness factor. | |
Static Private Attributes | |
| static int | s_objectId |
Friends | |
| class | SigSimRT |
| class | ssRadar |
class wrapper for the object functions in SigSim library
| ssObject::ssObject | ( | ) |
constructor
|
virtual |
destructor
| double ssObject::getThermalSpinUpTime | ( | ) |
get the thermal spin up period
| bool ssObject::setThermalSpinUpTime | ( | double | hours | ) |
set the thermal spin up period
| hours |
| float* ssObject::getResponseData | ( | ssSensor * | sensor, |
| unsigned int & | numMaterials, | ||
| unsigned int & | numBins, | ||
| unsigned int & | numParameters | ||
| ) |
get the response data in float array form for a particular sensor useful for binding to a texture table is organized as float responseData[material][wavelength][parameter] There are 12 parameters per spectral wavelength per material.
If the full response flag is selected then the parameters are defined as: 0: ambient reflectivity - unitless 0-1 1: diffuse reflectivity - unitless 0-1 2: base emission - unitless (radiance scaled by max radiance) 3: directional solar/sun emission - unitless (radiance scaled by max radiance) 4: specular reflectivity - unitless 0-1 5: shininess - unitless 0-127 6: directional earth emission 7: directional sky emission If the full response flag is false then the parameters are defined as: 0: ambient reflectivity - unitless 0-1 1: diffuse reflectivity - unitless 0-1 2: emissivity - unitless 0-1 3: unused 4: specular reflectivity - unitless 0-1 5: shininess - unitless 0-127 6: unused 7: unused
the last 4 are the Sandford Robertson parameters 8: SR reflectance 9: SR lobe width 10: SR emissivity 11: SR grazingB
| sensor | |
| numMaterials | |
| numBins | |
| numParameters |
| float* ssObject::getSandfordRobertsonResponseData | ( | ssSensor * | sensor, |
| unsigned int & | numMaterials, | ||
| unsigned int & | numBins, | ||
| unsigned int & | numParameters | ||
| ) |
get the Sandford Robertson response data in float array form for a particular sensor
| sensor | |
| numMaterials | |
| numBins | |
| numParameters |
Gets the visual band response data for a particular object.
| numMaterials | |
| sensor |
| void ssObject::getMaterialResponse | ( | ssSensor * | sensor, |
| unsigned int | matCode, | ||
| float & | ambient, | ||
| float & | emission, | ||
| float & | cosEmission | ||
| ) |
Gets the response data for a particular sensor and material code.
| sensor | |
| matCode | |
| ambient | |
| emission | |
| cosEmission |
| double ssObject::getRCS | ( | ssSensor * | sensor, |
| ssEnvironment * | env | ||
| ) |
gets the single valued RCS along the LOS to the object assuming no polarization
| sensor | |
| env |
| unsigned int ssObject::getNumberResponses | ( | ) |
gets the number of responses for an entity
| unsigned int ssObject::getNumberResponseValues | ( | ) |
gets the number of response values used in the response table
| unsigned int ssObject::getNumberMaterials | ( | ) |
gets the number of materials for an entity
| int ssObject::getObjectType | ( | ) |
get the object type
| char* ssObject::getName | ( | ) |
get the object name
| void ssObject::setName | ( | const char * | name | ) |
| name |
| int ssObject::getUniqueID | ( | ) |
get the sensor id.
must be unique to distiguish sensor
set the sensor id.
must be unique to distiguish sensor This is normally automatically set to the next ID when the object is created, so use a number high enough to avoid duplication.
sets the full response flag full response flag - set true for mcm textures - false for temperature maps/poly level temperatures indicates whether to place the full response in the response data or leave the emission value to be combined in the GPU
| bool ssObject::getFullResponseEnable | ( | ) |
get the full response flag
set the Include Emissivity flag flag indicating whether to combine the temperature with the emissivity for the full emission respons in the response data or leave the emissivity value to be combined in the GPU
| bool ssObject::getIncludeEmissivity | ( | ) |
get the Include Emissivity flag
| void ssObject::setMaterialSystemFileName | ( | char * | name | ) |
| name |
| char* ssObject::getMaterialSystemFileName | ( | ) |
| void ssObject::setSCfilename | ( | char * | name | ) |
| name |
| char* ssObject::getSCfilename | ( | ) |
| void ssObject::setRCSfilename | ( | char * | name | ) |
| name |
| char* ssObject::getRCSfilename | ( | ) |
| void ssObject::setPIPfilename | ( | char * | name = NULL | ) |
| name |
| char* ssObject::getPIPfilename | ( | ) |
| void ssObject::setTrackFileName | ( | char * | name | ) |
| name |
| char* ssObject::getTrackFileName | ( | ) |
| int ssObject::getIndex | ( | ) |
| void ssObject::setMaterialSet | ( | ssMaterialSet * | set | ) |
| set |
| ssMaterialSet* ssObject::getMaterialSet | ( | ) |
| void ssObject::setGeocentricLocation | ( | double | x, |
| double | y, | ||
| double | z | ||
| ) |
set the geocentric location (meters)
| x | = distance [m] away from ellipsoid center along direction to prime meridian |
| y | = distance [m] away from ellipsoid center along direction to east longitudinal meridian |
| z | = distance [m] away from ellipsoid center along direction to North geodetic pole |
| void ssObject::getGeocentricLocation | ( | double & | x, |
| double & | y, | ||
| double & | z | ||
| ) |
get the geocentric location (meters)
| x | = distance [m] away from ellipsoid center along direction to prime meridian |
| y | = distance [m] away from ellipsoid center along direction to east longitudinal meridian |
| z | = distance [m] away from ellipsoid center along direction to North geodetic pole |
| void ssObject::setGeodeticLocation | ( | double | lat, |
| double | lon, | ||
| double | alt | ||
| ) |
set the geodetic location (degrees, degrees, meters)
| lat | in degrees, -90=SouthPole, 90=NorthPole |
| lon | in degrees, 0=Prime Meridian, 359=1deg West of Prime Meridian |
| alt | in meters, above ellipsoid |
| void ssObject::getGeodeticLocation | ( | double & | lat, |
| double & | lon, | ||
| double & | alt | ||
| ) |
get the geodetic location (degrees, degrees, meters)
| lat | in degrees, -90=SouthPole, 90=NorthPole |
| lon | in degrees, 0=Prime Meridian, 359=1deg West of Prime Meridian |
| alt | in meters, above ellipsoid |
| void ssObject::setOrientation | ( | double | h, |
| double | p, | ||
| double | r | ||
| ) |
set the body FRD orientation relative to local NED coords (radians)
| h | = angle [rad] of 1st rotation : clockwise about body +z axis |
| p | = angle [rad] of 2nd rotation : clockwise about new body +y axis |
| r | = angle [rad] of 3rd rotation : clockwise about (even newer) body +x axis |
| void ssObject::getOrientation | ( | double & | h, |
| double & | p, | ||
| double & | r | ||
| ) |
set the body FRD orientation relative to local NED coords (radians)
| h | = angle [rad] of 1st rotation : clockwise about body +z axis |
| p | = angle [rad] of 2nd rotation : clockwise about new body +y axis |
| r | = angle [rad] of 3rd rotation : clockwise about (even newer) body +x axis |
| void ssObject::setLinearVelocity | ( | double | e, |
| double | n, | ||
| double | u | ||
| ) |
set linear velocity in local ENU coords (m/s)
| e | - East component |
| n | - North component |
| u | - Up component |
| void ssObject::getLinearVelocity | ( | double & | e, |
| double & | n, | ||
| double & | u | ||
| ) |
get linear velocity in local ENU coords (m/s)
| e | - East component |
| n | - North component |
| u | - Up component |
| void ssObject::setLinearAcceleration | ( | double | e, |
| double | n, | ||
| double | u | ||
| ) |
set linear acceleration in local ENU coords (m/s2)
| e | - East component |
| n | - North component |
| u | - Up component |
| void ssObject::getLinearAcceleration | ( | double & | e, |
| double & | n, | ||
| double & | u | ||
| ) |
get linear acceleration in local ENU coords (m/s2)
| e | - East component |
| n | - North component |
| u | - Up component |
| void ssObject::setAngularVelocity | ( | double | e, |
| double | n, | ||
| double | u | ||
| ) |
set Angular velocity in local ENU coords (rad/s) Magnitude gives speed clockwise about direction.
| e | - East component |
| n | - North component |
| u | - Up component |
| void ssObject::getAngularVelocity | ( | double & | e, |
| double & | n, | ||
| double & | u | ||
| ) |
get Angular velocity in local ENU coords (rad/s) Magnitude gives speed clockwise about direction.
| e | - East component |
| n | - North component |
| u | - Up component |
| void ssObject::setAngularAcceleration | ( | double | e, |
| double | n, | ||
| double | u | ||
| ) |
set angular acceleration in local ENU coords (rad/s2) Magnitude gives acceleration clockwise about direction.
| e | - East component |
| n | - North component |
| u | - Up component |
| void ssObject::getAngularAcceleration | ( | double & | e, |
| double & | n, | ||
| double & | u | ||
| ) |
get angular acceleration in local ENU coords (rad/s2) Magnitude gives acceleration clockwise about direction.
| e | - East component |
| n | - North component |
| u | - Up component |
set track file update
| simTime | |
| ellipsoid |
| PLUME_RADIANCE_MAP* ssObject::getPlumeRadianceMap | ( | ) |
get the plume radiance map (OBJECT.spurc_table)
| OBJECT* ssObject::getObjectPtr | ( | ) |
get the SigSim object structure...
be careful! WARNING: This method will be moved to private in an upcoming release to avoid the possibilty of users corrupting the underlying data structure which is used in SigSim. So if this method is used, please inform JRM of the needed information and get methods will be added to provide the needed data.
| bool ssObject::thermalSpinUp | ( | ssEnvironment * | env | ) |
spins up the thermal systems for the specified duration in hours
| env |
| bool ssObject::isEmatType | ( | ) |
returns true if set is being used with eigen materials
set flag indicating whether the set is to be used with eigen materials.
| flag |
| bool ssObject::initialize | ( | char * | dataDir = NULL | ) |
initializes the object's special effects.
Assumes the sigsim object structure has been filled
| dataDir | - data directory to use to find the files |
| bool ssObject::update | ( | ssEnvironment * | env | ) |
Updates object.
| env | - pointer to environment object used |
| bool ssObject::loadRCSFile | ( | ) |
loads/reloads rcs file from disk and updates ssObject memory
| bool ssObject::getScaledEffectBandSignature | ( | double & | emission, |
| double & | reflectivity, | ||
| double & | alpha, | ||
| int & | processpath, | ||
| ssEnvironment * | env, | ||
| ssSensor * | sensor | ||
| ) |
Retrieves (dynamic-range scaled) sensor band values for special effect parameters: emission, alpha, reflectivity, and processpath (0=model-absolute, 1=vis-band-ratio).
| emission | - emission component of special effect |
| reflectivity | - reflectivity component |
| alpha | - alpha component |
| processpath | - absolute values vs. values relative to the visual band values |
| env | -ssEnvironment pointer whose metin->inf.spectrum must be the same as used in ssObject::update() |
| sensor | -ssSensor pointer corresponding to desired sensor band. |
| float* ssObject::getScaledEffectSpectralSignature | ( | int & | processpath, |
| int & | numSensorWaveLengths, | ||
| int & | reponseWidth, | ||
| ssEnvironment * | env, | ||
| ssSensor * | sensor | ||
| ) |
Retrieves (dynamic-range scaled) sensor band spectral values for special effect parameters emission, alpha, reflectivity, and processpath (0=model-absolute, 1=vis-band-ratio).
| processpath | - absolute values vs. values relative to the visual band values |
| numSensorWaveLengths | - number of spectral bins |
| reponseWidth | - number of components in the array |
| env | -ssEnvironment pointer whose metin->inf.spectrum must be the same as used in ssObject::update() |
| sensor | -ssSensor pointer corresponding to desired sensor band. |
| void ssObject::updateVisibleScaledEffectBandSignature | ( | ssEnvironment * | env | ) |
Updates object's visible-band signature for special effects.
| env | - ssEnvironment pointer whose metin->inf.spectrum must be the same as used in ssObject::update() |
| void ssObject::getVisibleScaledEffectBandSignature | ( | double & | emission, |
| double & | reflectivity, | ||
| double & | alpha | ||
| ) |
Retrieves object's visible-band signature.
| void ssObject::setVisibleScaledEffectBandSignature | ( | double | emission, |
| double | reflectivity, | ||
| double | alpha | ||
| ) |
Sets object's visible-band signature.
| emission | - emission component of special effect |
| reflectivity | - reflectivity component |
| alpha | - alpha component |
copies all possible independent params from one ssObject to another
| from | - pointer to object copied from |
set all possible independent params from one ssObject to another
| flag | - indicates the object parameters have changed |
| bool ssObject::isDirty | ( | ) |
query whether the object's parameters have changed
| void ssObject::setWorldLocation | ( | double | x, |
| double | y, | ||
| double | z | ||
| ) |
Set the world location of the object.
| x | - world x position |
| y | - world y position |
| z | - world altitude |
| void ssObject::getWorldLocation | ( | double & | x, |
| double & | y, | ||
| double & | z | ||
| ) |
get the world position out of ssObject
| x | - world x position |
| y | - world y position |
| z | - world altitude |
| void ssObject::setBrdf | ( | ObjectBrdfEnum | v | ) |
set the BRDF type
| ObjectBrdfEnum ssObject::getBrdf | ( | ) |
get the BRDF type
| void ssObject::setRoughness | ( | float | r | ) |
set the roughness parameter for the BRDF
| float ssObject::getRoughness | ( | ) |
get the roughness paramater for the BRDF
set the SigSim object structure
| OBJECT | *objectPtr |
|
friend |
|
friend |
|
private |
unique ID for this object. Must be different than any other object
|
private |
material set for this object
|
private |
SigSim object objects.
|
private |
Indicates whether m_objectPtr was allocated by this instance.
|
private |
track file name
|
private |
material system file name
|
private |
SigSim data directory.
|
private |
radar cross section file name
|
private |
scattering center file name
|
private |
Particle Input Parameters file name.
|
private |
thermal spin up time for this object - hours
|
private |
flag to determine whether the full response is used for mcm texture or not for poly temperature.
|
private |
flag to indicate whether to include the emissivity in the response table or leave it for the gpu processing.
|
private |
flag indicating whether eigen materials are being used.
|
private |
Visible-band scaled particle effect alpha signature.
|
private |
Visible-band scaled particle effect reflectivity signature.
|
private |
Visible-band scaled particle effect emission signature.
|
private |
flag to indicate whether particle system spectral signatures need to be updated
|
private |
world X position of entity
|
private |
world Y position of entity
|
private |
world Z position of entity
|
private |
response array for special effects
|
private |
The BRDF to use.
|
private |
BRDF roughness factor.
|
staticprivate |