@Override public void updateData(boolean urgent) { if (!positionPanel.hasFocus() && !rotationPanel.getSliderPanel().getxSlider().hasFocus() && !rotationPanel.getSliderPanel().getySlider().hasFocus() && !rotationPanel.getSliderPanel().getzSlider().hasFocus() && !rotationPanel.getFloat3Panel().hasFocus()) { positionPanel.setVector(((SpotLight) lightModel.getLight()).getPosition()); updateLightDirection(((SpotLight) lightModel.getLight()).getDirection()); } }
private void updateLightDirection(final Vector3f direction) { rotationPanel.getFloat3Panel().setVector(direction); CurrentData.getEditorWindow() .getB3DApp() .enqueue( new Callable<Void>() { @Override public Void call() throws Exception { ((SpotLight) lightModel.getLight()).setDirection(direction); Vector3f end = lightModel .getRepresentative() .getLocalTranslation() .add( ((SpotLight) lightModel.getLight()) .getDirection() .mult(((SpotLight) lightModel.getLight()).getSpotRange())); Mesh mesh = new Line(lightModel.getRepresentative().getLocalTranslation(), end); mesh.setPointSize(5); lightModel.getSymbol().setMesh(mesh); return null; } }); }