final Box box = new Box("Box", new Vector3(), 150, 1, 150);
box.setModelBound(new BoundingBox());
box.setTranslation(new Vector3(0, -10, 0));
_root.attachChild(box);
final QuadImposterNode imposter0 = new QuadImposterNode("Imposter1", 256, 256, _settings.getDepthBits(),
_settings.getSamples(), _timer);
imposter0.setRedrawRate(0.0); // No timed update
imposter0.setCameraAngleThreshold(1.0 * MathUtils.DEG_TO_RAD);
imposter0.setCameraDistanceThreshold(0.1);
_root.attachChild(imposter0);
final Node scene1 = createModel();
scene1.setTranslation(0, 0, 0);
imposter0.attachChild(scene1);
final QuadImposterNode imposter1 = new QuadImposterNode("Imposter1", 128, 128, _settings.getDepthBits(),
_settings.getSamples(), _timer);
imposter1.setRedrawRate(0.0); // No timed update
imposter1.setCameraAngleThreshold(1.0 * MathUtils.DEG_TO_RAD);
imposter1.setCameraDistanceThreshold(0.1);
_root.attachChild(imposter1);
final Node scene2 = createModel();
scene2.setTranslation(-15, 0, -25);
imposter1.attachChild(scene2);
final QuadImposterNode imposter2 = new QuadImposterNode("Imposter2", 64, 64, _settings.getDepthBits(),
_settings.getSamples(), _timer);
imposter2.setRedrawRate(0.0); // No timed update
imposter2.setCameraAngleThreshold(1.0 * MathUtils.DEG_TO_RAD);
imposter2.setCameraDistanceThreshold(0.1);
_root.attachChild(imposter2);
final Node scene3 = createModel();
scene3.setTranslation(15, 0, -25);
imposter2.attachChild(scene3);
_logicalLayer.registerTrigger(new InputTrigger(new KeyPressedCondition(Key.SPACE), new TriggerAction() {
public void perform(final Canvas source, final TwoInputStates inputStates, final double tpf) {
showImposter = !showImposter;
if (showImposter) {
_root.detachChild(scene1);
_root.detachChild(scene2);
_root.detachChild(scene3);
imposter0.attachChild(scene1);
imposter1.attachChild(scene2);
imposter2.attachChild(scene3);
_root.attachChild(imposter0);
_root.attachChild(imposter1);
_root.attachChild(imposter2);
keyText.setText("[SPACE] Switch imposters off");