Reference: Muli3D: m3dcore_volume.h Source File
m3dcore_volume.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
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__