44 lines
1.2 KiB
C++
44 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include "KPrimitive.h"
|
|
|
|
|
|
class CTerrainCustomTexturePrimitive : public K3DPrimitive
|
|
{
|
|
public:
|
|
CTerrainCustomTexturePrimitive(K3DVertexBuffer* pVertexBuffer,K3DIndexBuffer* pIndexBuffer, K3DVertex vtWorldTransform )
|
|
: m_pVB( pVertexBuffer )
|
|
, m_spIB( pIndexBuffer )
|
|
, m_bIsValid(false)
|
|
{
|
|
m_type = KPRIMITIVE_TERRAIN;
|
|
|
|
//K3DMatrixIdentity( m_matWorldTransform );
|
|
//m_matWorldTransform.SetPosVector( vtWorldTransform );
|
|
m_RootMat.SetPosVector( vtWorldTransform );
|
|
}
|
|
|
|
void SetValid( bool bIsValid ) { m_bIsValid = bIsValid; }
|
|
|
|
bool IsValid() const { return m_bIsValid; }
|
|
|
|
virtual void Render( KViewportObject *viewport, class K3DRenderDevice *dev, bool bUseAccum = true )
|
|
{
|
|
//dev->SetTransform( K3DRenderDevice::TS_WORLD, &m_matWorldTransform );
|
|
dev->SetTransform( K3DRenderDevice::TS_WORLD, &m_RootMat );
|
|
dev->SetTexture( 2, NULL );
|
|
dev->SetTexture( 3, NULL );
|
|
|
|
dev->SetVertexShader(VTXDECLARATION_TERRAIN, TECHNIQUE_TERRAINSHADOW);
|
|
dev->DrawIndexedTriangleVB_VS( m_pVB, m_spIB );
|
|
}
|
|
|
|
protected:
|
|
//K3DMatrix m_matWorldTransform;
|
|
K3DVertexBuffer* m_pVB;
|
|
// K3DVertexBufferSPtr m_spVB;
|
|
K3DIndexBufferSPtr m_spIB;
|
|
|
|
bool m_bIsValid;
|
|
};
|