2 #include "..\include\raMain.h" 8 HANDLE hFile = CreateFile(m_ModelFileName,
9 FILE_READ_DATA, FILE_SHARE_READ, NULL, OPEN_EXISTING,
10 FILE_FLAG_SEQUENTIAL_SCAN, NULL);
16 LARGE_INTEGER FileSize;
17 GetFileSizeEx(hFile, &FileSize);
18 UINT nBytes = FileSize.LowPart;
19 m_pStaticMeshData =
new BYTE[nBytes];
23 ReadFile(hFile, m_pStaticMeshData, nBytes, &nBytesRead, NULL);
26 assert(nBytesRead > 0);
56 CHAR* pTextureFilename = (CHAR*) (pNumChars + 1);
58 DiffuseTexture[*pNumChars] = (char) 0;
60 "raEffects\\MyEngine.fx",
"RenderScene", DiffuseTexture);
62 pNumChars = (UINT*) (pTextureFilename + *pNumChars);
67 "raEffects\\MyEngine.fx",
68 "RenderWithMaterialColor");
77 for(
int j = 0; j < 3; j++)
92 for(
int i = 0; i < pSubsets[matNo].
GetSize(); i++)
100 RERROR(
"raEntity Create - MeshFile()",
false);
101 delete[] m_pStaticMeshData;
107 ROK(
"ram File galden");
112 LPCSTR effectFileName, LPCSTR techniqueName) :
raVisual(dx)
119 new raMaterial(dx, effectFileName, techniqueName);
175 bool bIntersects =
false;
176 FLOAT mindist = FLT_MAX;
177 FLOAT u = 0, v = 0, dist =
false;
179 for (UINT64 idx = 0; idx < nIndices; idx += 3)
185 for(
int i = 0; i < 3; i++)
186 p[i] = (pVertices + pIndices16[idx + i])->position;
190 UINT32* pIndices32 = (UINT32*)pIndices;
191 for(
int i = 0; i < 3; i++)
192 p[i] = (pVertices + pIndices32[idx + i])->position;
195 if(D3DXIntersectTri((D3DXVECTOR3 *)&p[0], (D3DXVECTOR3 *)&p[1], (D3DXVECTOR3 *)&p[2],
196 (D3DXVECTOR3 *) pRayPos,(D3DXVECTOR3 *) pRayDir, &u, &v, &dist))
UINT64 GetNumIndices(UINT iMesh)
virtual bool DestroyMesh()
virtual void CreateVertexBuffer()
BYTE * GetRawIndicesAt(UINT iIB)
raSDKMesh(raDirectX *dx, LPCSTR modelFileName, LPCSTR effectFileName="raEffects\yEngine.fx", LPCSTR techniqueName="RenderScene")
DXGI_FORMAT GetIBFormat11(UINT iMesh)
ID3D11DeviceContext * GetImmediateContext(void)
VERTEXPOSITIONNORMALTEXTURED * m_pVertices
virtual bool CreateMesh()
interface ID3DX11EffectTechnique ID3DX11EffectTechnique
virtual bool Intersects(CONST raVector3 *pRayPos, CONST raVector3 *pRayDir, float *pDist)
virtual bool RenderMesh(LPCSTR techniqueName="")
void RAPI RERROR_DX11(raString x, HRESULT h)
virtual void ComputeBoundingBox()
virtual void Render(UINT iDiffuseSlot=INVALID_SAMPLER_SLOT, UINT iNormalSlot=INVALID_SAMPLER_SLOT, UINT iSpecularSlot=INVALID_SAMPLER_SLOT)
virtual void CreateIndexBuffer()
void RAPI RERROR_FILE(raString f)
SDKMESH_SUBSET * m_pSubsets
virtual bool CreateMesh(void)
virtual HRESULT Create(raDirectX *pDev11, LPCTSTR szFileName, bool bCreateAdjacencyIndices=false, SDKMESH_CALLBACKS11 *pLoaderCallbacks=NULL)
void RAPI ROK(raString x)
raMaterial ** m_pMaterials
HRESULT Add(const TYPE &value)
BYTE * GetRawVerticesAt(UINT iVB)
raSmartPointer< raDirectX > m_dx
virtual bool CreateMesh()
void RAPI RERROR_OUTOFMEM()
ID3DX11EffectTechnique * GetEffectTechnique(LPCSTR techniqueName="")
void RAPI RERROR(raString x)