Main Page -
Class Hierarchy -
Class List -
File List -
Class Members -
Related Pages -

Information | Reference | SourceForge Project | Author
Muli3D

Reference: Muli3D: m3dcore_volume.h Source File

m3dcore_volume.h

Go to the documentation of this file.
00001 /* 00002 Muli3D - a software rendering library 00003 Copyright (C) 2004, 2005 Stephan Reiter <streiter@aon.at> 00004 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Lesser General Public 00007 License as published by the Free Software Foundation; either 00008 version 2.1 of the License, or (at your option) any later version. 00009 00010 This library is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 Lesser General Public License for more details. 00014 00015 You should have received a copy of the GNU Lesser General Public 00016 License along with this library; if not, write to the Free Software 00017 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00018 */ 00019 00022 00023 #ifndef __M3DCORE_VOLUME_H__ 00024 #define __M3DCORE_VOLUME_H__ 00025 00026 #include "../m3dbase.h" 00027 #include "../m3dtypes.h" 00028 00030 class CMuli3DVolume : public IBase 00031 { 00032 protected: 00033 ~CMuli3DVolume(); 00034 00035 friend class CMuli3DDevice; 00038 CMuli3DVolume( class CMuli3DDevice *i_pParent ); 00039 00049 result Create( uint32 i_iWidth, uint32 i_iHeight, uint32 i_iDepth, 00050 m3dformat i_fmtFormat ); 00051 00052 public: 00058 void SamplePoint( vector4 &o_vColor, float32 i_fU, float32 i_fV, float32 i_fW ); 00059 00065 void SampleLinear( vector4 &o_vColor, float32 i_fU, float32 i_fV, float32 i_fW ); 00066 00072 result Clear( const vector4 &i_vColor, const m3dbox *i_pBox ); 00073 00082 result CopyToVolume( const m3dbox *i_pSrcBox, CMuli3DVolume *i_pDestVolume, 00083 const m3dbox *i_pDestBox, m3dtexturefilter i_Filter ); 00084 00093 result LockBox( void **o_ppData, const m3dbox *i_pBox ); 00094 00098 result UnlockBox(); 00099 00100 m3dformat fmtGetFormat(); 00101 uint32 iGetFormatFloats(); 00102 00103 uint32 iGetWidth(); 00104 uint32 iGetHeight(); 00105 uint32 iGetDepth(); 00106 00108 class CMuli3DDevice *pGetDevice(); 00109 00110 private: 00111 class CMuli3DDevice *m_pParent; 00112 00113 m3dformat m_fmtFormat; 00114 uint32 m_iWidth; 00115 uint32 m_iHeight; 00116 uint32 m_iDepth; 00117 uint32 m_iWidthMin1; 00118 uint32 m_iHeightMin1; 00119 uint32 m_iDepthMin1; 00120 00121 bool m_bLockedComplete; 00122 m3dbox m_PartialLockBox; 00123 float32 *m_pPartialLockData; 00124 00125 float32 *m_pData; 00126 }; 00127 00128 #endif // __M3DCORE_VOLUME_H__

Documentation created with doxygen SourceForge.net Logo