//===========================================================================// // File: envirnmt.hh // // Project: MUNGA Brick: Model Manager // // Contents: Interface specification for environment variables // //---------------------------------------------------------------------------// // Date Who Modification // // -------- --- ---------------------------------------------------------- // // 02/13/95 JMA Initial coding. // //---------------------------------------------------------------------------// // Copyright (C) 1995, Virtual World Entertainment, Inc. // // All Rights reserved worldwide // // This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL // //===========================================================================// #if !defined(ENVIRNMT_HPP) # define ENVIRNMT_HPP # if !defined(STYLE_HPP) # include # endif # if !defined(VECTOR3D_HPP) # include # endif //########################################################################## //######################## Environment ############################### //########################################################################## class Environment { #if defined(USE_SIGNATURE) friend int Is_Signature_Bad(const Environment *p); #endif public: Scalar gravityConstant, airDensity, audioReverbTime, audioAverageSurfaceReflectivity, audioAirAbsorption; Vector3D windVelocity; Scalar ambientTemperature; // Kelvin const Vector3D& GetWindVelocity() {return windVelocity;} Environment() {} Environment( Scalar gravity, Scalar air_density, Scalar reverb_time, Scalar surface_reflectivity, Scalar air_absorption, const Vector3D &wind_velocity, Scalar ambient_temperature ): gravityConstant(gravity), airDensity(air_density), audioReverbTime(reverb_time), audioAverageSurfaceReflectivity(surface_reflectivity), audioAirAbsorption(air_absorption), windVelocity(wind_velocity), ambientTemperature(ambient_temperature) {} Logical TestInstance() const; }; //~~~~~~~~~~~~~~~~~~~~~~~~~ Environment functions ~~~~~~~~~~~~~~~~~~~~~~~~~~ void Convert_From_Ascii( const char *str, Environment *environment ); inline MemoryStream& MemoryStream_Read( MemoryStream* stream, Environment *output ) {return stream->ReadBytes(output, sizeof(*output));} inline MemoryStream& MemoryStream_Write( MemoryStream* stream, const Environment *input ) {return stream->WriteBytes(input, sizeof(*input));} //########################################################################## //###################### EnvironmentList ############################# //########################################################################## class EnvironmentList SIGNATURED { protected: int environmentCount; Environment *environmentArray; public: EnvironmentList(int environments); virtual ~EnvironmentList(); int GetEnvironmentCount() {Check(this); return environmentCount;} virtual Environment& GetEnvironment(int index) { Check (this); Verify((unsigned)index < environmentCount); return environmentArray[index]; } Logical TestInstance() const; }; extern EnvironmentList *Environments; #endif