The jme2 dome class didn't allow you to render only the inside of the dome with textures/colors. I just copied that part of the Dome class from the jme1 version, then made the jme1 -> 2 changes.
Also, I don't know how to put things up on svn or wherever they're supposed to go, so if someone else could handle that, that would be great.
Replace senIndexData() method with
private void setIndexData(boolean outsideView) {
setTriangleQuantity((planes - 2) * radialSamples * 2 + radialSamples);
setIndexBuffer(BufferUtils.createIntBuffer(3 * getTriangleCount()));
// generate connectivity
int index = 0;
// Generate only for middle planes
for (int plane = 1; plane < (planes - 1); plane++) {
int bottomPlaneStart = (plane - 1) * (radialSamples + 1);
int topPlaneStart = plane * (radialSamples + 1);
for (int sample = 0; sample < radialSamples; sample++, index += 6) {
if (!outsideView) {
getIndexBuffer().put(bottomPlaneStart + sample);
getIndexBuffer().put(bottomPlaneStart + sample + 1);
getIndexBuffer().put(topPlaneStart + sample);
getIndexBuffer().put(bottomPlaneStart + sample + 1);
getIndexBuffer().put(topPlaneStart + sample + 1);
getIndexBuffer().put(topPlaneStart + sample);
} else // inside view
{
getIndexBuffer().put(bottomPlaneStart + sample);
getIndexBuffer().put(topPlaneStart + sample);
getIndexBuffer().put(bottomPlaneStart + sample + 1);
getIndexBuffer().put(bottomPlaneStart + sample + 1);
getIndexBuffer().put(topPlaneStart + sample);
getIndexBuffer().put(topPlaneStart + sample + 1);
}
}
}
// pole triangles
int bottomPlaneStart = (planes - 2) * (radialSamples + 1);
for (int samples = 0; samples < radialSamples; samples++, index += 3) {
if (!outsideView) {
getIndexBuffer().put(bottomPlaneStart + samples);
getIndexBuffer().put(bottomPlaneStart + samples + 1);
getIndexBuffer().put(getVertexCount() - 1);
} else // inside view
{
getIndexBuffer().put(bottomPlaneStart + samples);
getIndexBuffer().put(getVertexCount() - 1);
getIndexBuffer().put(bottomPlaneStart + samples + 1);
}
}
}
and replace setData(Vector3f, int, int, float, boolean, boolean) method with
public void setData(Vector3f center, int planes, int radialSamples,
float radius, boolean updateBuffers, boolean outsideView) {
if (center != null)
this.center = center;
else
this.center = new Vector3f(0, 0, 0);
this.planes = planes;
this.radialSamples = radialSamples;
this.radius = radius;
if (updateBuffers) {
setGeometryData(outsideView);
setIndexData(outsideView);
}
}