44 HRESULT OptimizeInplace(DWORD* pAdjacency);
45 HRESULT OptimizeInplace(ID3DXBuffer* pAdjacency);
47 DWORD ComputeMeshBoundingBox(OUT cBounds3f& tBox)
const;
48 DWORD ComputeMeshBoundingSphere(
const cMatrix4x4f& CombinedTransformationMatrix, OUT
cSphereWork& bsphere)
const;
58 template <
class _TYPE_VERT = cVector3f >
69 ID3DXBaseMesh* m_pIMesh;
77 ASSERT(m_pIMesh !=
nullptr);
78 m_nVertStride = m_pIMesh->GetNumBytesPerVertex();
87 return m_pVertex !=
nullptr;
92 ASSERT(m_pIMesh !=
nullptr);
93 HRESULT hRes = m_pIMesh->LockVertexBuffer(dwFlags,
reinterpret_cast<void**
>(&m_pVertex));
103 if (m_pVertex !=
nullptr)
106 ASSERT(m_pIMesh !=
nullptr);
107 m_pIMesh->UnlockVertexBuffer();
110 operator const _TYPE_VERT* ()
const
113 ASSERT(m_pVertex !=
nullptr);
116 operator _TYPE_VERT* ()
118 ASSERT(m_pVertex !=
nullptr);
121 _TYPE_VERT* operator -> ()
const
123 ASSERT(m_pVertex !=
nullptr);
return(m_pVertex);
128 ASSERT(m_pVertex !=
nullptr);
130 return (_TYPE_VERT*)(((BYTE*)m_pVertex) + (i * m_nVertStride));
141 template <
typename _TYPE_INDEX = WORD>
151 ID3DXBaseMesh* m_pIMesh;
158 ASSERT(pIMesh !=
nullptr);
159 HRESULT hRes = pIMesh->LockIndexBuffer(dwFlags,
160 reinterpret_cast<void**
>(&m_pIndex));
173 return m_pIndex != nullptr ;
177 if (m_pIndex !=
nullptr)
180 ASSERT(m_pIMesh !=
nullptr);
181 m_pIMesh->UnlockIndexBuffer();
184 operator const _TYPE_INDEX* ()
const
186 ASSERT(m_pIndex !=
nullptr);
189 operator _TYPE_INDEX* ()
191 ASSERT(m_pIndex !=
nullptr);
212 ASSERT(pIMesh !=
nullptr);
213 HRESULT hRes = pIMesh->LockAttributeBuffer(dwFlags, &m_pdwAttrib);
217 m_pdwAttrib =
nullptr;
226 return(m_pdwAttrib !=
nullptr);
230 if (m_pdwAttrib !=
nullptr)
232 m_pdwAttrib =
nullptr;
233 ASSERT(m_pIMesh !=
nullptr);
234 m_pIMesh->UnlockAttributeBuffer();
237 operator const DWORD* ()
const
239 ASSERT(m_pdwAttrib !=
nullptr);
244 ASSERT(m_pdwAttrib !=
nullptr);
#define GRAY3D_LINK
Definition: Gray3D.h:15
#define FAILED(x)
Definition: HResult.h:30
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
#define D3DLOCK_READONLY
Definition: UseDX.h:115
#define ASSERT(exp)
Definition: cDebugAssert.h:87
#define LOGERR(hRes)
Used to supply "ERR='%s'".
Definition: cLogAppender.h:23
#define DEBUG_ERR(_x_)
Definition: cLogMgr.h:144
Definition: cDXMesh.h:199
DWORD * m_pdwAttrib
The locked pointer.
Definition: cDXMesh.h:203
~cDXMeshAttribute()
Definition: cDXMesh.h:220
bool IsValid() const
Definition: cDXMesh.h:224
cDXMeshAttribute(ID3DXMesh *pIMesh, DWORD dwFlags=0x00000010L)
Definition: cDXMesh.h:207
void Unlock()
Definition: cDXMesh.h:228
Definition: cDXMesh.h:143
_TYPE_INDEX * m_pIndex
The locked pointer.
Definition: cDXMesh.h:149
void Unlock()
Definition: cDXMesh.h:175
cDXMeshIndex(ID3DXBaseMesh *pIMesh, DWORD dwFlags=0x00000010L)
Definition: cDXMesh.h:153
~cDXMeshIndex()
Definition: cDXMesh.h:167
bool IsValid() const
Definition: cDXMesh.h:171
cVector3f & GetVert(int i) const
Definition: cDXMesh.h:132
~cDXMeshVertex()
Definition: cDXMesh.h:81
void Unlock()
Definition: cDXMesh.h:101
_TYPE_VERT * m_pVertex
The locked pointer.
Definition: cDXMesh.h:66
cDXMeshVertex(ID3DXBaseMesh *pIMesh, DWORD dwFlags=0x00000010L)
Definition: cDXMesh.h:71
size_t m_nVertStride
size in bytes of each vertex. DWORD.
Definition: cDXMesh.h:67
HRESULT Lock(DWORD dwFlags=0x00000010L)
Definition: cDXMesh.h:89
bool IsValid() const
Definition: cDXMesh.h:85
_TYPE_VERT * GetVertPtr(int i) const
Definition: cDXMesh.h:126
ID3DXMesh * get_Mesh() const
Definition: cDXMesh.h:39
cDXMesh(ID3DXMesh *pMesh=nullptr)
Definition: cDXMesh.h:34
cIUnkPtr< ID3DXMesh > m_pMesh
supports ID3DXMeshBase as well.
Definition: cDXMesh.h:31
Definition: cMatrix.h:194
Definition: cSphere.h:260
Definition: Gray3D.cpp:12
char FILECHAR_t
a UTF8 char in a file name. like TCHAR
Definition: FileName.h:22