|  | // Get base pointer
unsigned char* pVert = static_cast<unsigned char*>(vbuf->lock(HardwareBuffer::HBL_READ_ONLY));
Real* pReal;
for (size_t v = 0; v < vertexCount; ++v)
{
	// Get elements
	VertexDeclaration::VertexElementList elems = decl->findElementsBySource(bufferIdx);
	VertexDeclaration::VertexElementList::iterator i, iend;
	for (i = elems.begin(); i != elems.end(); ++i)
	{
		VertexElement& elem = *i;
		if (elem.getSemantic() == VES_POSITION)
		{
			elem.baseVertexPointerToElement(pVert, &pReal);
			// write position using pReal
		}
		
		...
		
		
	}
	pVert += vbuf->getVertexSize();
}
vbuf->unlock();
 |