![]() |
VR-Vantage 2.8 API Documentation
|
Contains information on a set of material systems. More...

Classes | |
| struct | ssEmission |
| emission structure More... | |
| struct | ssIntensityModulationParameters |
| Intensity modulation structure. More... | |
| struct | ssTemperature |
| Temperature structure. More... | |
Public Member Functions | |
| ssMaterialSet () | |
| constructor | |
| ~ssMaterialSet () | |
| destructor | |
| ssMaterialSet (ssMaterialSet ©Obj) | |
| copy method | |
| 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 8 parameters per spectral wavelength per material. | |
| float * | getPhongResponseData (ssSensor *sensor, unsigned int &numMaterials, unsigned int &numBins, unsigned int &numParameters) |
| get the Phong response data in float array form for a particular sensor | |
| float * | getSandfordRobertsonResponseData (ssSensor *sensor, unsigned int &numMaterials, unsigned int &numBins, unsigned int &numParameters) |
| get the SandfordRobertson response data in float array form for a particular sensor | |
| float * | getRadarResponseData (ssSensor *sensor, unsigned int &numMaterials, unsigned int &numBins, unsigned int &numParameters) |
| get the radar 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 sensor | |
| float | getMSBandDHR (ssMaterialTable *table, ssSensor *sensor, int msindex, double ax, double bx, double thetarad) |
| get the DHR value for a particular material and sensor band | |
| void | getPhongMaterialResponse (ssSensor *sensor, unsigned int matCode, float &ambient, float &emission, float &cosEmission) |
| Gets the Phong response data for a particular sensor and material code. | |
| void | getSanfordRobertson (ssSensor *sensor, unsigned int matCode, float &reflectance, float &lobeWidth, float &emissivity, float &grazingB) |
| Gets the response data for a particular sensor and material code. | |
| unsigned int | getNumberMaterials () |
| get the number of materials in this set | |
| unsigned int | getNumberResponses () |
| get the number of material response entries in this set this is the same as the number of materials unless the light data is appended to the end of the response data and in that case it is 256 if the number of materials is less than 256. | |
| unsigned int | getNumberResponseValues () |
| get the number of response parameter values per material in this set | |
| bool | initializeEmats (ssEnvironment *env) |
| Initializes the E Materials. | |
| void | getEmatEmission (double &baseEmission, double &cosEmission, double &twoSideFlag, double &absorbRatio, ssSensor *sensor, unsigned int index) |
| Gets the Eigen material emission data for a particular sensor. | |
| int | getEmatIndex (unsigned int ematIndex) |
| Gets the material index from the full set for a particular emat index. | |
| bool | setThermalSpinUpTime (double spinUp) |
| set the thermal spin up time period. | |
| double | getThermalSpinUpTime () |
| get the thermal spin up time period | |
| void | setFullResponseEnable (bool flag) |
| sets the full response flag full response flag - set true for mcm textures | |
| 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 | |
| double | getMaximumTemperature () |
| get maximum temperature for the current time of day for all the materials | |
| double | getMinimumTemperature () |
| get minimum temperature for the current time of day for all the materials | |
| unsigned int | getNumberTemperatures () |
| get the number of temperatures in ssTemperature arrays | |
| void | setNumberTemperatures (unsigned int n) |
| set the number of temperatures in ssTemperature arrays | |
| void | setAutoRadianceScale (bool flag) |
| set flag indicating whether the min/max radiance should use automatically generated values | |
| bool | isAutoRadianceScale () |
| returns true if the the min/max radiance should use automatically generated values from this material set. | |
| double | getAverageAbsorbRatio () |
| Get the average value of the absorption ratio in the material set. | |
| double | getAverageTwoSidedFlag () |
| Get the average value of the two-sided flag in the material set. | |
| double | getAverageConductionFactor () |
| Get the average value of the conduction factor in the material set. | |
| void | setAbsorbRatio (double absorbRatio) |
| set the absorption ratio to use for the material set rather than the calculated value for each material. | |
| double | getAbsorbRatio () |
| get the absorption ratio | |
| void | setTwoSidedFlag (double twoSidedFlag) |
| set the two-sided flag to use for the material set rather than the calculated value for each material. | |
| double | getTwoSidedFlag () |
| get the two-sided flag | |
| void | setAppendLightData (bool flag) |
| returns true if the man made light data should be appended to the end of the response data - used if the material texture contains lights or luminous texels | |
| bool | isAppendLightData () |
| set flag indicating whether the man made light data should be appended to the end of the response data - used if the material texture contains lights or luminous texels | |
| 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. | |
| void | setNumberEMats (unsigned int numEmats) |
| set the number of Emats in this set | |
| unsigned int | getNumberEMats () |
| get the number of Emats in this set | |
| MATL_PROP_TABLE * | getMaterialPropertyTablePtr () |
| Gets the MaterialPropertyTable structure pointer. | |
| MATERIAL_EIGENFRACTIONS * | getEmatFractionsPtr () |
| Gets the EMAT fraction structure pointer. | |
| bool | isUsingSimpleGpuFactor () |
| returns true if using old mode 2 thermal solver implementation - only use DotNL with cosSurfaceTemp. | |
| void | setUseSimpleGpuFactor (bool flag) |
| set flag indicating whether the set is to be using the old mode 2 thermal solver implementation - only use DotNL with cosSurfaceTemp. | |
| bool | isCacheDirty (ssEnvironment *env) |
| returns true if the temperature cache needs to be updated either due to a change in the environment or the user has forced an update | |
| void | forceCacheUpdate () |
| force the temperature cache to be updated | |
| bool | getUseInstance () |
| returns true if the set should be reused for multiple instances of a model | |
| void | setUseInstance (bool flag) |
| indicate that the set should be reused for multiple instances of a model | |
| void | initActiveRegions (bool loadFile=true) |
| indicates that the set has active regions and that materials may change temperature over time - like a vehicle engine | |
| ssMaterialProperties * | getActiveMaterials () |
| get the active region material system table | |
| ssMaterialProperties * | getInactiveMaterials () |
| get the inactive region material system table | |
| bool | setActiveRegion (unsigned int index, bool activeFlag) |
| set an active region's material to be in the active or inactive state | |
| bool | sendActiveRegionImpulse (unsigned int index) |
| send an impules to the active region which causes it to heat quickly gunfire is an example of what this is used for. | |
| int | getActiveRegionImpulseCount (unsigned int index) |
| get the number of outstanding impulses for this active region | |
| double | getActiveRegionImpulseDeltaTime (unsigned int index) |
| get the delta time an impulse skips for this active region | |
| bool | getActiveRegion (unsigned int index) |
| get an active region's material whether in the active or inactive state | |
| int | getNumberActiveRegions () |
| return the number of active regions for the model | |
| char * | getActiveRegionName (int index) |
| bool | hasActiveRegionsFile (char *msName=NULL) |
| Find out if the active regions (ar) file that matches the ms file exists or not. | |
| float * | getRCSData (ssSensor *sensor, unsigned int &numBins, unsigned int &x, unsigned int &y, unsigned int &z) |
| Gets the material set's RCS source data for a particular sensor based on Ulaby-Dobson. | |
| void | setNumberRCSangle (unsigned int angles) |
| set the number of RCS angles to use for the Material set's rcs data array | |
| unsigned int | getNumberRCSangle () |
| get thenumber of RCS angles to use for the Material set's rcs data array | |
| bool | hasIntensityModulationFile () |
| Find out if the intensity modulation (imod) file that matches the ms file exists or not. | |
| bool | loadIntensityModulationFile () |
| Open the intensity modulation file associated with the ms file for a specific object. | |
| void | writeIntensityModulationFile () |
| write out the intensity modulation file according to what is in the m_imodGain ssIntensityModulationParameters struct. | |
| void | setIntensityModulationParameters (ssIntensityModulationParameters imodGain, int index) |
| Set the parameters for intensity modulation gain to desired values. | |
| void | setIntensityModulationParameters (double visAvg, double NVGGain, double IRGain, double RFGain, int index) |
| Set the parameters for intensity modulation gain to desired values. | |
| void | getIntensityModulationParameters (ssIntensityModulationParameters &imodGain, int index) |
| Open the intensity modulation file associated with the ms file for a specific object. | |
| void | getIntensityModulationParameters (double &visAvg, double &NVGGain, double &FLIRGain, double &RFGain, int index) |
| Open the intensity modulation file associated with the ms file for a specific object. | |
| const char * | getMSfilename () |
| Returns MS filename from ssMaterialProperties. | |
| void | setImmediateActiveRegionUpdate (bool flag) |
| set immediate update flag to cause active regions to immediately go to current active state | |
| bool | getImmediateActiveRegionUpdate () |
| get immediate update flag to cause active regions to immediately go to current active state | |
| bool | isMarkedDelete () |
| returns true if set is ready to be deleted | |
| void | setMarkedDelete (bool flag) |
| set flag indicating whether the set is ready to be deleted | |
Public Member Functions inherited from ssMaterialProperties | |
| ssMaterialProperties () | |
| constructor | |
| ~ssMaterialProperties () | |
| destructor | |
| ssMaterialProperties (ssMaterialProperties ©Obj) | |
| copy method | |
| void | setMaterialSystemFileName (char *name) |
| Sets the material system file name (.ms) for the material set. | |
| void | setSigSimDataDirectory (char *name) |
| Sets the SigSim data directory. | |
| bool | isValid () |
| Returns true if this is a valid material system, false otherwise. | |
| unsigned int | getNumberLayers (unsigned int materialIndex) |
| get the number of layers for a material | |
| unsigned int | getNumberWavelengths (unsigned int materialIndex) |
| get the number of spectral wavelengths used by a material in this set | |
| char * | getMaterialName (unsigned int materialIndex) |
| get the material name for the index into the material system table. | |
| void | setMaterialName (unsigned int materialIndex, char *matName) |
| set the material name for the index into the material system table. | |
| double | getIntensityModulationScalarParameter (unsigned int material, bool visualBand) |
| bool | getAltitude (unsigned int materialIndex, double &altitude) |
| get the altitude for the index into the material system table This value is not used in SigSimRT since the altitude varies. | |
| void | setAltitude (unsigned int materialIndex, double altitude) |
| set the altitude for the index into the material system table. | |
| bool | getUpperBoundaryConditionType (unsigned int materialIndex, unsigned int &boundaryConditionType) |
| get the upper boundary condition type for the index into the material system table 0 - Forced Boundary Condition Temperature 1 - Natural Air Convection 2 - Forced Boundary Condition Air Convection 3 - Forced Ambient Air Convection 4 - Aerodynamic Skin Heating 5 - Forced Ambient Temperature | |
| void | setUpperBoundaryConditionType (unsigned int materialIndex, unsigned int boundaryConditionType) |
| set the upper boundary condition type for the index into the material system table 0 - Forced Boundary Condition Temperature 1 - Natural Air Convection 2 - Forced Boundary Condition Air Convection 3 - Forced Ambient Air Convection 4 - Aerodynamic Skin Heating 5 - Forced Ambient Temperature | |
| const char * | getUpperBoundaryConditionType (unsigned int materialIndex) |
| get the upper boundary condition type for the index into the material system table | |
| bool | getUpperBoundaryTemperature (unsigned int materialIndex, double &temperature) |
| get the upper boundary condition temperature for the index into the material system table | |
| bool | setUpperBoundaryTemperature (unsigned int materialIndex, double temperature) |
| set the upper boundary condition temperature for the index into the material system table | |
| bool | getUpperBoundaryWindSpeed (unsigned int materialIndex, double &windSpeed) |
| get the upper boundary condition wind speed for the index into the material system table | |
| bool | setUpperBoundaryWindSpeed (unsigned int materialIndex, double windSpeed) |
| set the upper boundary condition wind speed for the index into the material system table | |
| bool | getUpperBoundaryHeatLoad (unsigned int materialIndex, double &heatLoad) |
| get the upper boundary condition heat load for the index into the material system table | |
| bool | setUpperBoundaryHeatLoad (unsigned int materialIndex, double heatLoad) |
| set the upper boundary condition heat load for the index into the material system table | |
| bool | getLowerBoundaryConditionType (unsigned int materialIndex, unsigned int &boundaryConditionType) |
| get the lower boundary condition type for the index into the material system table 0 - Conduction at Boundary Condition 1 - Natural Air Convection 2 - Forced Boundary Condition Air Convection 3 - Forced Ambient Air Convection 4 - Aerodynamic Skin Heating 5 - Solid Contact at Ambient Temperature 6 - Insulated | |
| void | setLowerBoundaryConditionType (unsigned int materialIndex, unsigned int boundaryConditionType) |
| set the upper boundary condition type for the index into the material system table 0 - Forced Boundary Condition Temperature 1 - Natural Air Convection 2 - Forced Boundary Condition Air Convection 3 - Forced Ambient Air Convection 4 - Aerodynamic Skin Heating 5 - Forced Ambient Temperature | |
| const char * | getLowerBoundaryConditionType (unsigned int materialIndex) |
| get the lower boundary condition type for the index into the material system table | |
| bool | getLowerBoundaryTemperature (unsigned int materialIndex, double &temperature) |
| get the lower boundary condition temperature for the index into the material system table | |
| bool | setLowerBoundaryTemperature (unsigned int materialIndex, double temperature) |
| set the lower boundary condition temperature for the index into the material system table | |
| bool | getLowerBoundaryWindSpeed (unsigned int materialIndex, double &windSpeed) |
| get the lower boundary condition wind speed for the index into the material system table | |
| bool | setLowerBoundaryWindSpeed (unsigned int materialIndex, double windSpeed) |
| set the lower boundary condition wind speed for the index into the material system table | |
| bool | getLowerBoundaryHeatLoad (unsigned int materialIndex, double &heatLoad) |
| get the lower boundary condition heat load for the index into the material system table | |
| bool | setLowerBoundaryHeatLoad (unsigned int materialIndex, double heatLoad) |
| set the lower boundary condition heat load for the index into the material system table | |
| bool | getReflectType (unsigned int materialIndex, unsigned int wavelengthIndex, enum ReflectType &reflectType) |
| get the relection type for the index into the material system table and the wavelength index io - Infrared & Optical rf - RadioFrequency | |
| const char * | getReflectType (unsigned int materialIndex, unsigned int wavelengthIndex) |
| get the reflection type for the index into the material system table and the wavelength index io - Infrared & Optical rf - RadioFrequency | |
| void | setReflectType (unsigned int materialIndex, unsigned int wavelengthIndex, enum ReflectType &reflectType) |
| set the reflection type for the index into the material system table and the wavelength index io - Infrared & Optical rf - RadioFrequency | |
| bool | getDHR (unsigned int materialIndex, unsigned int wavelengthIndex, double &DHR) |
| get the DHR material paramater for the index into the material system table and the wavelength index | |
| void | setDHR (unsigned int materialIndex, unsigned int wavelengthIndex, double DHR) |
| set the DHR material paramater for the index into the material system table and the wavelength index | |
| bool | getPercentSpecular (unsigned int materialIndex, unsigned int wavelengthIndex, double &PercentSpecular) |
| get the percent specular parameter for the index into the material system table and the wavelength index | |
| void | setPercentSpecular (unsigned int materialIndex, unsigned int wavelengthIndex, double PercentSpecular) |
| set the percent specular parameter for the index into the material system table and the wavelength index | |
| bool | getLobeWidth (unsigned int materialIndex, unsigned int wavelengthIndex, double &LobeWidth) |
| get the lobe width parameter for the index into the material system table and the wavelength index | |
| void | setLobeWidth (unsigned int materialIndex, unsigned int wavelengthIndex, double LobeWidth) |
| set the lobe width parameter for the index into the material system table and the wavelength index | |
| bool | isValidMaterialIndex (unsigned int materialIndex) |
| Returns true if this is a valid material system, false otherwise. | |
| bool | isValidMaterialLayerIndex (unsigned int materialIndex, unsigned int layerIndex) |
| Returns true if this is a valid material system, false otherwise. | |
| bool | isValidMaterialWavelengthIndex (unsigned int materialIndex, unsigned int wavelengthIndex) |
| Returns true if this is a valid material system, false otherwise. | |
| void | setUpdateTimeofDay (unsigned int materialIndex, JRMTIME time) |
| bool | getUpdateTimeofDay (unsigned int materialIndex, JRMTIME &time) |
| double | getEnvironmentUpdateInterval () |
| Returns environment update interval used as interval between thermal spinup calculations. | |
| void | setEnvironmentUpdateInterval (double interval) |
| sets the environment update interval used as interval between thermal spinup calculations | |
| bool | hasChanged () |
| Returns true if the MS file has changed since last used. | |
Private Member Functions | |
| bool | initialize (ssEnvironment *env, char *dataDir) |
| initialization of the material set | |
| void | update (ssSensor *sensor, ssEnvironment *env) |
| update the material responses for this sensor and environment | |
| bool | insertMaterialTable (ssSensor *sensor) |
| inserts a material table into a set. | |
| bool | insertPhongMaterialTable (ssSensor *sensor) |
| bool | insertSRMaterialTable (ssSensor *sensor) |
| bool | insertRadarMaterialTable (ssSensor *sensor) |
| void | updatePhong (ssSensor *sensor, ssEnvironment *env, bool dirty) |
| void | updateSR (ssSensor *sensor, ssEnvironment *env, bool dirty) |
| void | updateRadar (ssSensor *sensor, ssEnvironment *env, bool dirty) |
| void | getTemperatureData (ssEnvironment *env) |
| extracts the current temperature data from the m_temperatureCache for a particular tod | |
| bool | thermalSpinUp (ssEnvironment *env) |
| spins up the material systems in this set SigSim routine: AdvanceThermalTime | |
| bool | dynamicThermalSpinUp (ssEnvironment *env, float deltaTime) |
| description: incrementally adjust the thermal conditions of the materials in this set | |
| bool | computeSpectralReflectanceParameters (ssSensor *sensor, ssMaterialTable *table) |
| fills in the materials spectral reflectance parameters for this sensor | |
| void | computeBaseAndLoadedRadiances (ssTemperature inTemp, double ax, double bx, double emissivity, ssEmission &emission) |
| Compute spectral solar loading. | |
| void | updateFullTemperatureCache (ssEnvironment *env) |
| updates the diurnal temperature cache for all the materials for all tods | |
| bool | queryTemperatureCache (ssEnvironment *env) |
| Checks to see if there is a valid temperature cache. | |
| ssTemperature * | getTemperatureCache () |
| Returns pointer to temperatureCache. | |
| void | saveTemperatureCache (ssEnvironment *env) |
| saves the temperature cache and relivant state data. | |
| ssTemperature * | getEmatTemperatureCache () |
| Returns pointer to EmatTemperatureCache. | |
| bool | compareFloat (float float1, float float2) |
| void | loadActiveRegionsFile () |
| Load the active region file that corresponds to the ms file of the same name. | |
Private Attributes | |
| ssMaterialTable * | m_visualMaterialTable |
| material table for the visual domain to use to compare with visual rgb texture for intensity modulation. | |
| SENSOR | m_visualSensor |
| sensor for visual domain to use to compare with visual rgb texture for intensity modulation. | |
| float * | m_visualData |
| visual band reflectance data | |
| bool | m_fullResponse |
| 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 | m_includeEmissivity |
| 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 | |
| ssTemperature * | m_temperatureCache |
| temperature diurnal cache for all materials. | |
| ssTemperature * | m_temperatureData |
| current temperature data for all materials. | |
| ssTemperature * | m_eMatTemperatureCache |
| temperature diurnal cache for all materials. | |
| ssTemperature * | m_eMatTemperatureData |
| current temperature data for all materials. | |
| ssTemperature * | m_eMatRadianceData |
| current radiance data for all materials. | |
| JRMTIME | m_updateTime |
| date/time of last update of the material table | |
| double | m_thermalSpinUp |
| thermal spin up time for this material set. | |
| double | m_userAbsorbRatio |
| user defined absorption ratio to be used rather than value calculated for each material | |
| double | m_userTwoSidedFlag |
| user defined two-sided flag to be used rather than value calculated for each material | |
| double | m_maxTemperature |
| maximum temperature for the current tod for all the materials | |
| double | m_minTemperature |
| minimum temperature for the current tod for all the materials | |
| bool | m_autoRadianceScale |
| flag indicating whether the min/max radiance should use automatically generated values | |
| bool | m_appendLightData |
| flag indicating whether the man made light data should be appended to the response data. | |
| bool | m_ematType |
| flag indicating whether eigen materials are being used. | |
| MATERIAL_EIGENFRACTIONS * | m_EmatFractions |
| fractions for each eigen material | |
| int * | m_ematIndexes |
| material indexes for each eigen material. | |
| unsigned int | m_numEMats |
| Number of E materials. | |
| bool | m_useSimpleGpuFactor |
| Use old mode 2 thermal solver implementation - only use DotNL with cosSurfaceTemp. | |
| bool | m_cacheForceUpdate |
| flag to indicate that the temperature cache must be regenerated | |
| bool | m_useInstance |
| flag to indicate that the set should be used for multiple instances of a model | |
| bool | m_immediateActiveRegionUpdate |
| immediate update of active regions flag | |
| bool | m_setMarkedDelete |
| flag to indicate that the materialSet is ready to be deleted | |
| ssMaterialProperties | m_activeMaterials |
| ssMaterialProperties | m_inactiveMaterials |
| unsigned int | m_numRCSangles |
| Implementation * | m_impl |
Friends | |
| class | ssObject |
| class | SigSimRT |
Additional Inherited Members | |
Protected Member Functions inherited from ssMaterialProperties | |
| bool | validate () |
| Validate the setting of the data directory and ms file name and if ok then load the MS file. | |
| void | clean () |
| free the allocated material property table. | |
Protected Attributes inherited from ssMaterialProperties | |
| MATL_PROP_TABLE * | m_materialPropertyTablePtr |
| SigSim material properties table. | |
| unsigned int | m_numMaterials |
| Number of materials. | |
| unsigned int | m_numTemperatures |
| Number of temperature intervals. | |
| char | m_dataDirectory [256] |
| SigSim data directory. | |
| char | m_materialSystemFileName [256] |
| material system file name | |
| char | m_timeStamp [256] |
| MS file time stamp. | |
| double | m_updateInterval |
| Update interval. | |
Contains information on a set of material systems.
The material system information is read in from a .ms file that contains the list of material systems and their material structure and thermal characteristics. This data is then used to determine the temperature and the reflective and emissive response of each material. The data needed to perform the BRDF calculation externally (GPU) is provided in an array indexed by material and the spectral wavelength.
| ssMaterialSet::ssMaterialSet | ( | ) |
constructor
| ssMaterialSet::~ssMaterialSet | ( | ) |
destructor
| ssMaterialSet::ssMaterialSet | ( | ssMaterialSet & | copyObj | ) |
copy method
| float* ssMaterialSet::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 8 parameters per spectral wavelength per material.
If the full reponse 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 sun emission - unitless (radiance scaled by max radiance) 4: specular reflectivity - unitless 0-1 5: shininess - unitless 0-127 6: two-sided flag (d) - unitless 7: absorbRatio - unitless aS/eL
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
In both cases the Sandford Robertson parameters are also provided as: 8: Total angle-independent diffuse reflectance (pd) 9: Lobe Width Parameter (w or omega) 10: Total angle-independent emissivity (epsilon) 11: Grazing Parameter (b)
For Radar sensors, apparently what we have are the coefficients of expansions in sin(zenith) : 0: scaled 0th order HH arealRCS[dB] - unitless 0-1 1: scaled 1st order HH arealRCS[dB] - unitless 0-1 2: scaled 1st order HH arealRCS[dB] - unitless 0-1 NOTE duplicate of above, seems a waste given: 3: scaled sum of 2nd + 3rd order HH arealRCS[dB] - unitless 0-1 4: scaled 0th order HH stddevRCS[dB] - unitless 0-1 5: scaled 1st order HH stddevRCS[dB] - unitless 0-1 6: scaled 2nd order HH stddevRCS[dB] - unitless 0-1 7: unused
For MMLS light points if placed at end of response table : 0: = 0.0 1: = 0.0 2: = scaled in-bin radiance[W/cm2/sr] - unitless 0-1 3: = 0.0 4: = 0.0 5: = 0.0 6: = 1.0 7: = 1.0
| sensor | |
| numMaterials | |
| numBins | |
| numParameters |
| float* ssMaterialSet::getPhongResponseData | ( | ssSensor * | sensor, |
| unsigned int & | numMaterials, | ||
| unsigned int & | numBins, | ||
| unsigned int & | numParameters | ||
| ) |
get the Phong response data in float array form for a particular sensor
| sensor | |
| numMaterials | |
| numBins | |
| numParameters |
| float* ssMaterialSet::getSandfordRobertsonResponseData | ( | ssSensor * | sensor, |
| unsigned int & | numMaterials, | ||
| unsigned int & | numBins, | ||
| unsigned int & | numParameters | ||
| ) |
get the SandfordRobertson response data in float array form for a particular sensor
| sensor | |
| numMaterials | |
| numBins | |
| numParameters |
| float* ssMaterialSet::getRadarResponseData | ( | ssSensor * | sensor, |
| unsigned int & | numMaterials, | ||
| unsigned int & | numBins, | ||
| unsigned int & | numParameters | ||
| ) |
get the radar response data in float array form for a particular sensor
| sensor | |
| numMaterials | |
| numBins | |
| numParameters |
gets the visual band response data for a particular sensor
| numMaterials | |
| sensor |
| float ssMaterialSet::getMSBandDHR | ( | ssMaterialTable * | table, |
| ssSensor * | sensor, | ||
| int | msindex, | ||
| double | ax, | ||
| double | bx, | ||
| double | thetarad | ||
| ) |
get the DHR value for a particular material and sensor band
| table | |
| sensor | |
| msindex | |
| ax | |
| bx | |
| thetarad |
| void ssMaterialSet::getPhongMaterialResponse | ( | ssSensor * | sensor, |
| unsigned int | matCode, | ||
| float & | ambient, | ||
| float & | emission, | ||
| float & | cosEmission | ||
| ) |
Gets the Phong response data for a particular sensor and material code.
| sensor | |
| matCode | |
| ambient | |
| emission | |
| cosEmission |
| void ssMaterialSet::getSanfordRobertson | ( | ssSensor * | sensor, |
| unsigned int | matCode, | ||
| float & | reflectance, | ||
| float & | lobeWidth, | ||
| float & | emissivity, | ||
| float & | grazingB | ||
| ) |
Gets the response data for a particular sensor and material code.
| sensor | |
| matCode | |
| reflectance | |
| lobeWidth | |
| emissivity | |
| grazingB | The return values are checked |
| unsigned int ssMaterialSet::getNumberMaterials | ( | ) |
get the number of materials in this set
Reimplemented from ssMaterialProperties.
| unsigned int ssMaterialSet::getNumberResponses | ( | ) |
get the number of material response entries in this set this is the same as the number of materials unless the light data is appended to the end of the response data and in that case it is 256 if the number of materials is less than 256.
| unsigned int ssMaterialSet::getNumberResponseValues | ( | ) |
get the number of response parameter values per material in this set
| bool ssMaterialSet::initializeEmats | ( | ssEnvironment * | env | ) |
Initializes the E Materials.
| void ssMaterialSet::getEmatEmission | ( | double & | baseEmission, |
| double & | cosEmission, | ||
| double & | twoSideFlag, | ||
| double & | absorbRatio, | ||
| ssSensor * | sensor, | ||
| unsigned int | index | ||
| ) |
Gets the Eigen material emission data for a particular sensor.
| baseEmission | |
| cosEmission | |
| twoSideFlag | |
| absorbRatio | |
| sensor | |
| index |
Gets the material index from the full set for a particular emat index.
| bool ssMaterialSet::setThermalSpinUpTime | ( | double | spinUp | ) |
set the thermal spin up time period.
This is the time period that the thermal solvers to use to incrementally determine the temperature of a material. Three days (72 hours) is the default and gives enough time to reach close to steady state. The longer the time period the more accurate the temperatures, but it also takes longer to do the calculations.
| spinUp | [hours] |
| double ssMaterialSet::getThermalSpinUpTime | ( | ) |
get the thermal spin up time period
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 ssMaterialSet::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 ssMaterialSet::getIncludeEmissivity | ( | ) |
get the Include Emissivity flag
| double ssMaterialSet::getMaximumTemperature | ( | ) |
get maximum temperature for the current time of day for all the materials
| double ssMaterialSet::getMinimumTemperature | ( | ) |
get minimum temperature for the current time of day for all the materials
| unsigned int ssMaterialSet::getNumberTemperatures | ( | ) |
get the number of temperatures in ssTemperature arrays
set the number of temperatures in ssTemperature arrays
set flag indicating whether the min/max radiance should use automatically generated values
| flag |
| bool ssMaterialSet::isAutoRadianceScale | ( | ) |
returns true if the the min/max radiance should use automatically generated values from this material set.
Only one material set should be selected.
| double ssMaterialSet::getAverageAbsorbRatio | ( | ) |
Get the average value of the absorption ratio in the material set.
| double ssMaterialSet::getAverageTwoSidedFlag | ( | ) |
Get the average value of the two-sided flag in the material set.
| double ssMaterialSet::getAverageConductionFactor | ( | ) |
Get the average value of the conduction factor in the material set.
| void ssMaterialSet::setAbsorbRatio | ( | double | absorbRatio | ) |
set the absorption ratio to use for the material set rather than the calculated value for each material.
If set to -1 then the calculated value for each material is used and this is the default case. The average value of the ms file would generally be used given by getAverageAbsorbRatio.
| double ssMaterialSet::getAbsorbRatio | ( | ) |
get the absorption ratio
| void ssMaterialSet::setTwoSidedFlag | ( | double | twoSidedFlag | ) |
set the two-sided flag to use for the material set rather than the calculated value for each material.
If set to -1 then the calculated value for each material is used and this is the default case. 0.0 would generally be used unless the ms file contained a lot of two-sided materials
| double ssMaterialSet::getTwoSidedFlag | ( | ) |
get the two-sided flag
returns true if the man made light data should be appended to the end of the response data - used if the material texture contains lights or luminous texels
| flag |
| bool ssMaterialSet::isAppendLightData | ( | ) |
set flag indicating whether the man made light data should be appended to the end of the response data - used if the material texture contains lights or luminous texels
| bool ssMaterialSet::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 |
set the number of Emats in this set
| numEmats |
| unsigned int ssMaterialSet::getNumberEMats | ( | ) |
get the number of Emats in this set
| MATL_PROP_TABLE* ssMaterialSet::getMaterialPropertyTablePtr | ( | ) |
Gets the MaterialPropertyTable structure pointer.
Reimplemented from ssMaterialProperties.
| MATERIAL_EIGENFRACTIONS* ssMaterialSet::getEmatFractionsPtr | ( | ) |
Gets the EMAT fraction structure pointer.
| bool ssMaterialSet::isUsingSimpleGpuFactor | ( | ) |
returns true if using old mode 2 thermal solver implementation - only use DotNL with cosSurfaceTemp.
set flag indicating whether the set is to be using the old mode 2 thermal solver implementation - only use DotNL with cosSurfaceTemp.
| flag |
| bool ssMaterialSet::isCacheDirty | ( | ssEnvironment * | env | ) |
returns true if the temperature cache needs to be updated either due to a change in the environment or the user has forced an update
| void ssMaterialSet::forceCacheUpdate | ( | ) |
force the temperature cache to be updated
| bool ssMaterialSet::getUseInstance | ( | ) |
returns true if the set should be reused for multiple instances of a model
indicate that the set should be reused for multiple instances of a model
indicates that the set has active regions and that materials may change temperature over time - like a vehicle engine
| ssMaterialProperties* ssMaterialSet::getActiveMaterials | ( | ) |
get the active region material system table
| ssMaterialProperties* ssMaterialSet::getInactiveMaterials | ( | ) |
get the inactive region material system table
set an active region's material to be in the active or inactive state
| index | - active region index |
| activeFlag | - true for active state and false for inactive state |
send an impules to the active region which causes it to heat quickly gunfire is an example of what this is used for.
Set the active region state to false and call this every time the gun is fired.
| index | - active region index |
get the number of outstanding impulses for this active region
| index | - active region index |
| double ssMaterialSet::getActiveRegionImpulseDeltaTime | ( | unsigned int | index | ) |
get the delta time an impulse skips for this active region
| index | - active region index |
get an active region's material whether in the active or inactive state
| msIndex | - material system index |
| int ssMaterialSet::getNumberActiveRegions | ( | ) |
return the number of active regions for the model
| char* ssMaterialSet::getActiveRegionName | ( | int | index | ) |
| index | - index of the active region |
| bool ssMaterialSet::hasActiveRegionsFile | ( | char * | msName = NULL | ) |
Find out if the active regions (ar) file that matches the ms file exists or not.
| msName | - ms file name - defaults to the materialSet's MS filename. |
| float* ssMaterialSet::getRCSData | ( | ssSensor * | sensor, |
| unsigned int & | numBins, | ||
| unsigned int & | x, | ||
| unsigned int & | y, | ||
| unsigned int & | z | ||
| ) |
Gets the material set's RCS source data for a particular sensor based on Ulaby-Dobson.
| sensor | - the sensor |
| numBins | - number of wavelengths |
| x | - dimension of x |
| y | - dimension of y |
| z | = dimension of z (like that tells you anything). Indexed as : index = (l * z*y*x + i * z*y + j * z + k); where l=numBins index, i=z=polarization index, j=y=angle index, k=x=material index. |
set the number of RCS angles to use for the Material set's rcs data array
| angles |
| unsigned int ssMaterialSet::getNumberRCSangle | ( | ) |
get thenumber of RCS angles to use for the Material set's rcs data array
| bool ssMaterialSet::hasIntensityModulationFile | ( | ) |
Find out if the intensity modulation (imod) file that matches the ms file exists or not.
| bool ssMaterialSet::loadIntensityModulationFile | ( | ) |
Open the intensity modulation file associated with the ms file for a specific object.
| void ssMaterialSet::writeIntensityModulationFile | ( | ) |
write out the intensity modulation file according to what is in the m_imodGain ssIntensityModulationParameters struct.
| void ssMaterialSet::setIntensityModulationParameters | ( | ssIntensityModulationParameters | imodGain, |
| int | index | ||
| ) |
Set the parameters for intensity modulation gain to desired values.
| void ssMaterialSet::setIntensityModulationParameters | ( | double | visAvg, |
| double | NVGGain, | ||
| double | IRGain, | ||
| double | RFGain, | ||
| int | index | ||
| ) |
Set the parameters for intensity modulation gain to desired values.
| void ssMaterialSet::getIntensityModulationParameters | ( | ssIntensityModulationParameters & | imodGain, |
| int | index | ||
| ) |
Open the intensity modulation file associated with the ms file for a specific object.
| void ssMaterialSet::getIntensityModulationParameters | ( | double & | visAvg, |
| double & | NVGGain, | ||
| double & | FLIRGain, | ||
| double & | RFGain, | ||
| int | index | ||
| ) |
Open the intensity modulation file associated with the ms file for a specific object.
| const char* ssMaterialSet::getMSfilename | ( | ) |
Returns MS filename from ssMaterialProperties.
set immediate update flag to cause active regions to immediately go to current active state
| bool | flag |
| bool ssMaterialSet::getImmediateActiveRegionUpdate | ( | ) |
get immediate update flag to cause active regions to immediately go to current active state
| bool ssMaterialSet::isMarkedDelete | ( | ) |
returns true if set is ready to be deleted
set flag indicating whether the set is ready to be deleted
| flag |
|
private |
initialization of the material set
| env | |
| dataDir |
|
private |
update the material responses for this sensor and environment
| sensor | |
| env |
inserts a material table into a set.
There is 1 per sensor
| sensor |
|
private |
|
private |
|
private |
|
private |
extracts the current temperature data from the m_temperatureCache for a particular tod
| env |
|
private |
spins up the material systems in this set SigSim routine: AdvanceThermalTime
| env |
|
private |
description: incrementally adjust the thermal conditions of the materials in this set
| deltaTime | - time since last update [hours] |
| env | returns: true if it material temperature is updated |
|
private |
fills in the materials spectral reflectance parameters for this sensor
| sensor |
|
private |
Compute spectral solar loading.
| inTemp | |
| ax | |
| bx | |
| emissivity | |
| ssEmission | &emission |
|
private |
updates the diurnal temperature cache for all the materials for all tods
|
private |
Checks to see if there is a valid temperature cache.
If so, it loads it.
| sgObject | *ent - The entity object. |
|
private |
Returns pointer to temperatureCache.
|
private |
saves the temperature cache and relivant state data.
| sgObject | *ent - The entity object. |
|
private |
Returns pointer to EmatTemperatureCache.
|
private |
| float1 | |
| float2 |
|
private |
Load the active region file that corresponds to the ms file of the same name.
Active region entries with the same name get put into the same ssActiveRegion. This is how they are grouped when we want multiple materials to be part of the same active region.
|
friend |
|
friend |
|
private |
material table for the visual domain to use to compare with visual rgb texture for intensity modulation.
|
private |
sensor for visual domain to use to compare with visual rgb texture for intensity modulation.
|
private |
visual band reflectance data
|
private |
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
|
private |
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
|
private |
temperature diurnal cache for all materials.
|
private |
current temperature data for all materials.
|
private |
temperature diurnal cache for all materials.
|
private |
current temperature data for all materials.
|
private |
current radiance data for all materials.
|
private |
date/time of last update of the material table
|
private |
thermal spin up time for this material set.
|
private |
user defined absorption ratio to be used rather than value calculated for each material
|
private |
user defined two-sided flag to be used rather than value calculated for each material
|
private |
maximum temperature for the current tod for all the materials
|
private |
minimum temperature for the current tod for all the materials
|
private |
flag indicating whether the min/max radiance should use automatically generated values
|
private |
flag indicating whether the man made light data should be appended to the response data.
|
private |
flag indicating whether eigen materials are being used.
|
private |
fractions for each eigen material
|
private |
material indexes for each eigen material.
|
private |
Number of E materials.
|
private |
Use old mode 2 thermal solver implementation - only use DotNL with cosSurfaceTemp.
|
private |
flag to indicate that the temperature cache must be regenerated
|
private |
flag to indicate that the set should be used for multiple instances of a model
|
private |
immediate update of active regions flag
|
private |
flag to indicate that the materialSet is ready to be deleted
|
private |
|
private |
|
private |
|
private |