[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