Here is another very simple test:
Two opaque shapes in OrderedGroup are located and sized so, that it is easy to test the order.
As you can check OrderedGroup doesn’t work here…
import javax.swing.JFrame;
import javax.vecmath.Vector3f;
import com.xith3d.render.CanvasPeer;
import com.xith3d.render.RenderPeer;
import com.xith3d.render.jsr231.RenderPeerImpl;
import com.xith3d.scenegraph.BranchGroup;
import com.xith3d.scenegraph.Canvas3D;
import com.xith3d.scenegraph.Locale;
import com.xith3d.scenegraph.OrderedGroup;
import com.xith3d.scenegraph.Shape3D;
import com.xith3d.scenegraph.View;
import com.xith3d.scenegraph.VirtualUniverse;
import com.xith3d.test.TestUtils;
public class OrderedGroupTest {
public OrderedGroupTest() {
JFrame frame = new JFrame("OrderedGroupTest");
frame.setSize(500, 500);
//======= setting up Universe ===============
VirtualUniverse My_Universe = new VirtualUniverse();
Locale locale = new Locale();
My_Universe.addLocale(locale);
BranchGroup scRootBG = new BranchGroup();
locale.addBranchGraph(scRootBG);
//------------------------------
RenderPeer renderPeer = new RenderPeerImpl();
CanvasPeer canvasPeer = renderPeer.
makeCanvas(frame.getContentPane(), 0, 0, 32, false);
Canvas3D scrCanvas = new Canvas3D();
scrCanvas.set3DPeer(canvasPeer);
//------------------------------
View scView = new View();
scView.addCanvas3D(scrCanvas);
My_Universe.addView(scView);
scView.getTransform().setTranslation(new Vector3f(0,0,3));
//======= adding OrderedGroup ===============
Shape3D cube = new Shape3D(TestUtils.createCubeViaTriangles(0, 0, 0, 1.5f, true));
Shape3D sphere = new Shape3D(TestUtils.createSphere(1f, 16));
OrderedGroup ordGR = new OrderedGroup();
//--- here play with order ------
ordGR.addChild(cube);
ordGR.addChild(sphere);
//-------------------------------
scRootBG.addChild(ordGR);
//======= running =============================
frame.setVisible(true);
while (frame.isVisible()) {
scView.renderOnce();
}
System.exit(0);
}
public static void main(String args[]) {
new OrderedGroupTest();
}
}
Bohdan
P.S. Changing OrderedGroup to DecalGroup makes no diference.