Search in sources :

Example 1 with Camera

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());
// }
}
Also used : ReadOnlyVector3(com.ardor3d.math.type.ReadOnlyVector3) Vector3(com.ardor3d.math.Vector3) Camera(com.ardor3d.renderer.Camera) CullHint(com.ardor3d.scenegraph.hint.CullHint)

Example 2 with Camera

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());
    }
}
Also used : Camera(com.ardor3d.renderer.Camera)

Example 3 with Camera

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;
        }
    });
}
Also used : Spatial(com.ardor3d.scenegraph.Spatial) CameraNode(com.ardor3d.scenegraph.extension.CameraNode) Camera(com.ardor3d.renderer.Camera) IOException(java.io.IOException)

Example 4 with Camera

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;
}
Also used : Camera(com.ardor3d.renderer.Camera)

Example 5 with Camera

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);
    }
}
Also used : Camera(com.ardor3d.renderer.Camera) Dimension(java.awt.Dimension) Component(java.awt.Component)

Aggregations

Camera (com.ardor3d.renderer.Camera)14 ReadOnlyVector3 (com.ardor3d.math.type.ReadOnlyVector3)6 Vector3 (com.ardor3d.math.Vector3)5 CullHint (com.ardor3d.scenegraph.hint.CullHint)2 Matrix3 (com.ardor3d.math.Matrix3)1 Spatial (com.ardor3d.scenegraph.Spatial)1 CameraNode (com.ardor3d.scenegraph.extension.CameraNode)1 Component (java.awt.Component)1 Dimension (java.awt.Dimension)1 BufferedImage (java.awt.image.BufferedImage)1 IOException (java.io.IOException)1 ByteBuffer (java.nio.ByteBuffer)1 FresnelReflector (org.concord.energy3d.model.FresnelReflector)1 HousePart (org.concord.energy3d.model.HousePart)1 Mirror (org.concord.energy3d.model.Mirror)1 ParabolicDish (org.concord.energy3d.model.ParabolicDish)1 ParabolicTrough (org.concord.energy3d.model.ParabolicTrough)1 PickedHousePart (org.concord.energy3d.model.PickedHousePart)1 Rack (org.concord.energy3d.model.Rack)1 SolarPanel (org.concord.energy3d.model.SolarPanel)1