* builds the vertices based on the radius, center and radial and zSamples.
*/
private void setGeometryData() {
// allocate vertices
final int verts = (_zSamples - 2) * (_radialSamples + 1) + 2;
final FloatBufferData vertsData = _meshData.getVertexCoords();
if (vertsData == null) {
_meshData.setVertexBuffer(BufferUtils.createVector3Buffer(verts));
} else {
vertsData.setBuffer(BufferUtils.createVector3Buffer(vertsData.getBuffer(), verts));
}
// allocate normals if requested
final FloatBufferData normsData = _meshData.getNormalCoords();
if (normsData == null) {
_meshData.setNormalBuffer(BufferUtils.createVector3Buffer(verts));
} else {
normsData.setBuffer(BufferUtils.createVector3Buffer(normsData.getBuffer(), verts));
}
// allocate texture coordinates
final FloatBufferData texData = _meshData.getTextureCoords(0);
if (texData == null) {
_meshData.setTextureBuffer(BufferUtils.createVector2Buffer(verts), 0);
} else {
texData.setBuffer(BufferUtils.createVector2Buffer(texData.getBuffer(), verts));
}
// generate geometry
final double fInvRS = 1.0 / _radialSamples;
final double fZFactor = 2.0 / (_zSamples - 1);