示例#1
0
hkpExtendedMeshShape* FlatLand::createExtendedMeshShape()
{
	setupVertexAndTriangleData();

	{
		for (int vertexIdx = 0; vertexIdx < m_vertices.getSize(); vertexIdx+=4)
		{
			m_vertices[vertexIdx+0] *= m_scaling(0);
			m_vertices[vertexIdx+1] *= m_scaling(1);
			m_vertices[vertexIdx+2] *= m_scaling(2);
			m_vertices[vertexIdx+3] *= m_scaling(3);
		}
	}

	hkpExtendedMeshShape* extendedMeshShape = new hkpExtendedMeshShape();
	{
		hkpExtendedMeshShape::TrianglesSubpart part;
		part.m_numTriangleShapes	= m_numTriangles;
		part.m_numVertices			= m_numVertices;
		part.m_vertexBase			= &m_vertices[0];
		part.m_stridingType			= hkpExtendedMeshShape::INDICES_INT16;
		part.m_vertexStriding		= sizeof(float) * 4;
		part.m_indexBase			= &m_indices[0];
		part.m_indexStriding		= sizeof( hkUint16 ) * 4;

		extendedMeshShape->addTrianglesSubpart( part );
	}

	int numTriangles = extendedMeshShape->getNumChildShapes();
	numTriangles ++;

	return extendedMeshShape;
}
示例#2
0
hkpExtendedMeshShape* TowerLand::createMeshShape()
{
	setupVertexAndTriangleData();

	hkpExtendedMeshShape* meshShape = new hkpExtendedMeshShape();
	meshShape->setRadius( m_triangleRadius );
	meshShape->setScaling( m_scaling );

	{
		hkpExtendedMeshShape::TrianglesSubpart part;

		part.m_vertexBase = &m_vertices[0];
		part.m_vertexStriding = sizeof(float) * 4;
		part.m_numVertices = m_numVertices;

		part.m_indexBase = &m_indices[0];
		part.m_indexStriding = sizeof( hkUint16 ) * 4;
		part.m_numTriangleShapes = m_numTriangles;
		part.m_stridingType = hkpExtendedMeshShape::INDICES_INT16;

		meshShape->addTrianglesSubpart( part );
	}

	return meshShape;
}