"L. Spiro Engine"
|
00001 00017 #ifndef __LSM_FLOAT16_H__ 00018 #define __LSM_FLOAT16_H__ 00019 00020 #include "../LSMMathLib.h" 00021 00022 namespace lsm { 00023 00031 class CFloat16 { 00032 public : 00033 // == Various constructors. 00034 LSE_CALLCTOR CFloat16(); 00035 LSE_CALLCTOR CFloat16( LSFLOAT _fValue ); 00036 LSE_CALLCTOR CFloat16( const CFloat16 &_f16Value ); 00037 00038 00039 // == Operators. 00045 LSE_CALL operator LSFLOAT() const; 00046 00047 00048 protected : 00049 // == Types. 00053 typedef union LSM_FLOAT_INT { 00057 LSFLOAT fValue; 00058 00062 LSINT32 i32Value; 00063 00067 LSUINT32 ui32Value; 00068 } * LPLSM_FLOAT_INT, * const LPCLSM_FLOAT_INT; 00069 00070 00071 // == Members. 00075 LSUINT16 m_ui16Value; 00076 00077 00078 // == Functions. 00084 LSVOID LSE_CALL FromFloat( LSFLOAT _fValue ); 00085 00091 LSFLOAT LSE_CALL ToFloat() const; 00092 }; 00093 00094 } // namespace lsm 00095 00096 #endif // __LSM_FLOAT16_H__