*/
public Point3f[] jvxlDecodeVertexData(String data, boolean asArray) throws Exception {
int vertexCount = parseInt(XmlReader.getXmlAttrib(data, "count"));
if (!asArray)
Logger.info("Reading " + vertexCount + " vertices");
Point3f min = xr.getXmlPoint(data, "min");
Point3f range = xr.getXmlPoint(data, "max");
range.sub(min);
int colorFractionBase = jvxlData.colorFractionBase;
int colorFractionRange = jvxlData.colorFractionRange;
int ptCount = vertexCount * 3;
Point3f[] vertices = (asArray ? new Point3f[vertexCount] : null);
Point3f p = (asArray ? null : new Point3f());
float fraction;
String s = JvxlCoder.jvxlUncompressString(XmlReader.getXmlAttrib(data, "data"));
if (s.length() == 0)
s = xr.getXmlData("jvxlVertexData", data, false, false);
for (int i = 0, pt = -1; i < vertexCount; i++) {
if (asArray)
p = vertices[i] = new Point3f();
fraction = JvxlCoder.jvxlFractionFromCharacter2(s.charAt(++pt), s.charAt(pt
+ ptCount), colorFractionBase, colorFractionRange);
p.x = min.x + fraction * range.x;
fraction = JvxlCoder.jvxlFractionFromCharacter2(s.charAt(++pt), s.charAt(pt
+ ptCount), colorFractionBase, colorFractionRange);