[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[x3d-public] Xj3D: Transforms on Transforms
Can i add more than 1 child to a Transform node using Xj3D ?
my code looks like this:
[...]
X3DNode transform[] = new X3DNode[27];
SAINode transformPrincipal = (SAINode) mainScene
.createNode("Transform");
X3DInspector.showFields(transformPrincipal);
// SFRotation
// rotation=(SFRotation)transformPrincipal.getField("rotation");
MFNode children = (MFNode) transformPrincipal.getField("children");
int c = 0;
for (int i = 0; i != 3; i++)
for (int j = 0; j != 3; j++)
for (int k = 0; k != 3; k++) {
transform[c] = createTransformBox(x3dBrowser, mainScene,
i * 4 - 4, j * 4 - 4, k * 4 - 4);
c++;
}
// HERE FAILS <--------------------------------
children.setValue(27, transform);
// -------------------------
mainScene.addRootNode(transformPrincipal);
[...]
My createTransformBox looks like:
private SAINode createTransformBox(ExternalBrowser x3dBrowser,
X3DScene x3dScene, float x, float y, float z) {
SAINode transform = (SAINode) x3dScene.createNode("Transform");
SFVec3f translation = (SFVec3f) transform.getField("translation");
translation.setValue(new float[] { x, y, z });
MFNode children = (MFNode) transform.getField("children");
SAINode shape = (SAINode) x3dScene.createNode("Shape");
SFNode nodeGeometry = (SFNode) shape.getField("geometry");
SAINode node = (SAINode) x3dScene.createNode("Box");
nodeGeometry.setValue(node);
children.setValue(1, new X3DNode[] { shape });
return transform;
}
Well , my code shows only one box, when it should show a box composed of 27
small boxes
any clue?
Daniel Rodriguez Millan
-------------------------------------------------------------------------
for list subscription/unsubscription,
go to http://www.web3d.org/cgi-bin/public_list_signup/lwgate/listsavail.html