the number of the points of geometry in j3d is not equal to that of the VRML file?
I load a VRML model using VrmlLoader in VRML97.jar.
the geometry node in .wrl file which includes 9 points is as follow:
geometry DEF Bone_LeftUpperArm-FACES IndexedFaceSet {
ccw TRUE
solid TRUE
coord DEF Bone_LeftUpperArm-COORD Coordinate { point [
5 5 5, 5 5 -5, 5 -5 -5, 5 -5 5, 250 0.5 0.5,
250 0.5 -0.5, 250 -0.5 -0.5, 250 -0.5 0.5,
0 0 0]
}
coordIndex [
4, 7, 5, -1, 6, 5, 7, -1, 1, 5, 2, -1, 6, 2, 5, -1,
0, 4, 1, -1, 5, 1, 4, -1, 7, 3, 6, -1,
2, 6, 3, -1, 4, 0, 7, -1, 3, 7, 0, -1,
8, 0, 1, -1, 8, 1, 2, -1, 8, 2, 3, -1,
}
And in my java3d application, the code I used to retrieve the node is follow:
...
Shape3D myShape=new Shape3D();
myShape= (Shape3D) objTG.getChild(0);
//objTG is a TransformGroup which is the Bone_LeftUpperArm-FACES in .wrl file
GeometryArray g;
g = (GeometryArray) myShape.getGeometry();
int vertexNum=g.getValidVertexCount(); //get the VertexCount,but vertexNum=42,not 9!!!
Point3f[] tt=new Point3f[vertexNum];
for (int i=0;i<vertexNum;i++){
tt[i]=new Point3f();
}
g.getCoordinates(0,tt);
...
the problem is that in my application the number of points is not equal to that of the .wrl file. because in .wrl file the num is 9,while in debug in my j3d application the virable “vertexNum” is 42! (but the coordinates of the 42 vertexs include all the coordinates of the original 9 vertexs). That means when a geometry was loaded in java3d, the number of the points of the geometry has been changed, is that right? how can I get the same points as in the orignal .wrl file?
thanks!
regrads.
Martin