use of com.ardor3d.renderer.Camera in project energy3d by concord-consortium.
the class HousePart method updateEditShapes.
public void updateEditShapes() {
final Vector3 p = Vector3.fetchTempInstance();
try {
for (int i = 0; i < points.size(); i++) {
getAbsPoint(i, p);
if (!Double.isFinite(p.getZ())) {
p.setZ(1000);
}
getEditPointShape(i).setTranslation(p);
}
for (int i = 0; i < pointsRoot.getNumberOfChildren(); i++) {
final Camera camera = SceneManager.getInstance().getCamera();
if (camera != null && camera.getProjectionMode() != ProjectionMode.Parallel) {
final double distance = camera.getLocation().distance(getEditPointShape(i).getTranslation());
getEditPointShape(i).setScale(distance > 0.1 ? distance / 10 : 0.01);
} else {
getEditPointShape(i).setScale(camera.getFrustumTop() / 4);
}
}
} finally {
Vector3.releaseTempInstance(p);
}
// /* remove remaining edit shapes */
// for (int i = points.size(); i < pointsRoot.getNumberOfChildren(); i++) {
// pointsRoot.detachChildAt(points.size());
// }
}
use of com.ardor3d.renderer.Camera in project energy3d by concord-consortium.
the class Scene method saveCameraLocation.
public static void saveCameraLocation() {
final Camera camera = SceneManager.getInstance().getCamera();
if (camera != null) {
instance.setCameraLocation(camera.getLocation().clone());
instance.setCameraDirection(SceneManager.getInstance().getCamera().getDirection().clone());
}
}
use of com.ardor3d.renderer.Camera in project energy3d by concord-consortium.
the class SceneManager method initCamera.
public void initCamera() {
System.out.println("initCamera()");
final Camera camera = getCamera();
cameraNode = new CameraNode("Camera Node", camera);
root.attachChild(cameraNode);
cameraNode.updateFromCamera();
Scene.getInstance().updateEditShapes();
setCameraControl(CameraMode.ORBIT);
resetCamera(ViewMode.NORMAL);
SceneManager.getInstance().getCameraControl().reset();
taskManager.update(new Callable<Object>() {
@Override
public Object call() throws Exception {
final Spatial compass = createCompass();
compass.setScale(0.1);
compass.setTranslation(-1, -0.7, 2);
cameraNode.attachChild(compass);
final Spatial earth = createEarth();
earth.setScale(0.00012);
earth.setTranslation(-1, -0.67, 2);
cameraNode.attachChild(earth);
Scene.getInstance().updateEditShapes();
return null;
}
});
}
use of com.ardor3d.renderer.Camera in project energy3d by concord-consortium.
the class SceneManager method renderUnto.
@Override
public boolean renderUnto(final Renderer renderer) {
if (cameraNode == null) {
initCamera();
return false;
}
// setWindowsVisible(false);
try {
passManager.renderPasses(renderer);
} catch (final Throwable t) {
t.printStackTrace();
}
if (shadowPass.isEnabled() && !Heliodon.getInstance().isNightTime()) {
final Camera camera = SceneManager.getInstance().getCamera();
if (camera != null && camera.getProjectionMode() != ProjectionMode.Parallel) {
final double distance = 4 * camera.getLocation().length();
shadowPass.setMaxShadowDistance(distance);
} else {
shadowPass.setMaxShadowDistance(2000);
}
try {
shadowPass.renderPass(renderer);
} catch (final Throwable e) {
e.printStackTrace();
shadowPass.setEnabled(false);
}
}
setWindowsVisible(true);
try {
passManager.renderPasses(renderer);
} catch (final Throwable t) {
t.printStackTrace();
}
// com.ardor3d.util.geom.Debugger.drawBounds(Scene.getRoot(), renderer, true);
setWindowsVisible(false);
taskManager.getQueue(GameTaskQueue.RENDER).execute(renderer);
if (framesStartTime != -1) {
frames++;
final long t = (System.nanoTime() - framesStartTime) / 1000000000;
if (t != 0) {
System.out.println("FPS = " + frames / t);
}
}
return true;
}
use of com.ardor3d.renderer.Camera in project energy3d by concord-consortium.
the class SceneManager method resizeCamera.
public void resizeCamera(final double orthoWidth) {
final Camera camera = getCamera();
if (camera == null) {
return;
}
final Dimension size = ((Component) canvas).getSize();
camera.resize(size.width, size.height);
final double ratio = (double) size.width / size.height;
final double near = 1;
final double far = 2 * SKY_RADIUS;
if (camera.getProjectionMode() == ProjectionMode.Parallel) {
camera.setFrustum(near, far, -orthoWidth / 2, orthoWidth / 2, orthoWidth / ratio / 2, -orthoWidth / ratio / 2);
} else {
camera.setFrustumPerspective(45.0, ratio, near, far);
}
}
Aggregations