"L. Spiro Engine"
|
00001 00016 #ifndef __LSD_MODELTEXTURE_H__ 00017 #define __LSD_MODELTEXTURE_H__ 00018 00019 #include "../LSDModelLib.h" 00020 #include "String/LSTLString.h" 00021 #include "Texture/LSGTextureBase.h" 00022 #include "Texture/LSGTextureManager.h" 00023 00024 namespace lsd { 00025 00032 class CModelTexture { 00033 public : 00034 // == Various constructors. 00035 LSE_CALLCTOR CModelTexture(); 00036 LSE_CALLCTOR ~CModelTexture(); 00037 00038 00039 // == Operators. 00046 CModelTexture & LSE_CALL operator = ( const CModelTexture &_mtOther ); 00047 00048 00049 // == Functions. 00053 LSVOID LSE_CALL Trash(); 00054 00060 LSVOID LSE_CALL SetAllocator( CAllocator * _paAllocator ); 00061 00067 LSE_INLINE CString & LSE_CALL Name(); 00068 00074 LSE_INLINE const CString & LSE_CALL Name() const; 00075 00081 LSE_INLINE CString & LSE_CALL FileName(); 00082 00088 LSE_INLINE const CString & LSE_CALL FileName() const; 00089 00095 LSE_INLINE LSG_WRAP_MODE & LSE_CALL WrappingMode(); 00096 00102 LSE_INLINE LSG_WRAP_MODE LSE_CALL WrappingMode() const; 00103 00109 LSE_INLINE LSG_MAPPING_TYPE & LSE_CALL MappingType(); 00110 00116 LSE_INLINE LSG_MAPPING_TYPE LSE_CALL MappingType() const; 00117 00123 LSE_INLINE LSG_TEXTURE_USAGE_FORMAT & LSE_CALL 00124 UsageFormat(); 00125 00131 LSE_INLINE LSG_TEXTURE_USAGE_FORMAT LSE_CALL 00132 UsageFormat() const; 00133 00139 LSE_INLINE LSG_TEXTURE_BLENDING_MODES & LSE_CALL 00140 BlendingMode(); 00141 00147 LSE_INLINE LSG_TEXTURE_BLENDING_MODES LSE_CALL 00148 BlendingMode() const; 00149 00155 LSE_INLINE CSharedStdTexPtr & LSE_CALL Texture(); 00156 00162 CSharedStdTexPtr LSE_CALL Texture() const; 00163 00164 protected : 00165 // == Members. 00169 CString m_sName; 00170 00174 CString m_sFileName; 00175 00179 LSG_WRAP_MODE m_wmWrapMode; 00180 00184 LSG_MAPPING_TYPE m_mtMappingType; 00185 00189 LSG_TEXTURE_USAGE_FORMAT m_tufUsageFormat; 00190 00194 LSG_TEXTURE_BLENDING_MODES m_tbmBlendingMode; 00195 00199 CSharedStdTexPtr m_sstpTexture; 00200 }; 00201 00202 00203 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00204 // DEFINITIONS 00205 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00206 // == Functions. 00212 LSE_INLINE CString & LSE_CALL CModelTexture::Name() { 00213 return m_sName; 00214 } 00215 00221 LSE_INLINE const CString & LSE_CALL CModelTexture::Name() const { 00222 return m_sName; 00223 } 00224 00230 LSE_INLINE CString & LSE_CALL CModelTexture::FileName() { 00231 return m_sFileName; 00232 } 00233 00239 LSE_INLINE const CString & LSE_CALL CModelTexture::FileName() const { 00240 return m_sFileName; 00241 } 00242 00248 LSE_INLINE LSG_WRAP_MODE & LSE_CALL CModelTexture::WrappingMode() { 00249 return m_wmWrapMode; 00250 } 00251 00257 LSE_INLINE LSG_WRAP_MODE LSE_CALL CModelTexture::WrappingMode() const { 00258 return m_wmWrapMode; 00259 } 00260 00266 LSE_INLINE LSG_MAPPING_TYPE & LSE_CALL CModelTexture::MappingType() { 00267 return m_mtMappingType; 00268 } 00269 00275 LSE_INLINE LSG_MAPPING_TYPE LSE_CALL CModelTexture::MappingType() const { 00276 return m_mtMappingType; 00277 } 00278 00284 LSE_INLINE LSG_TEXTURE_USAGE_FORMAT & LSE_CALL CModelTexture::UsageFormat() { 00285 return m_tufUsageFormat; 00286 } 00287 00293 LSE_INLINE LSG_TEXTURE_USAGE_FORMAT LSE_CALL CModelTexture::UsageFormat() const { 00294 return m_tufUsageFormat; 00295 } 00296 00302 LSE_INLINE LSG_TEXTURE_BLENDING_MODES & LSE_CALL CModelTexture::BlendingMode() { 00303 return m_tbmBlendingMode; 00304 } 00305 00311 LSE_INLINE LSG_TEXTURE_BLENDING_MODES LSE_CALL CModelTexture::BlendingMode() const { 00312 return m_tbmBlendingMode; 00313 } 00314 00320 LSE_INLINE CSharedStdTexPtr & LSE_CALL CModelTexture::Texture() { 00321 return m_sstpTexture; 00322 } 00323 00324 } // namespace lsd 00325 00326 #endif // __LSD_MODELTEXTURE_H__