Package com.bbn.openmap.tools.j3d

Source Code of com.bbn.openmap.tools.j3d.ControlledManager

// **********************************************************************
//
// <copyright>
//
//  BBN Technologies
//  10 Moulton Street
//  Cambridge, MA 02138
//  (617) 873-8000
//
//  Copyright (C) BBNT Solutions LLC. All rights reserved.
//
// </copyright>
// **********************************************************************
//
// $Source: /cvs/distapps/openmap/src/j3d/com/bbn/openmap/tools/j3d/ControlledManager.java,v $
// $RCSfile: ControlledManager.java,v $
// $Revision: 1.3.2.3 $
// $Date: 2005/08/11 21:36:12 $
// $Author: dietrick $
//
// **********************************************************************

package com.bbn.openmap.tools.j3d;

import com.bbn.openmap.MapHandler;
import com.bbn.openmap.proj.Projection;
import java.awt.*;
import javax.media.j3d.*;
import javax.swing.JFrame;

/**
* A 3D manager where the eye position is controlled by an outside
* object. The keys should still work to control the view orientation,
* just not position. (I don't think they do, yet).
*
* @author dietrick
*/
public class ControlledManager extends MapContentManager {

    /**
     * The object controlling the viewer's position.
     */
    protected NavBehaviorProvider controller;

    public ControlledManager(MapHandler mapHandler, NavBehaviorProvider cont,
            int contentMask) {
        this(mapHandler, cont, new Background(0f, 0f, 0f), contentMask);
    }

    public ControlledManager(MapHandler mapHandler, NavBehaviorProvider cont,
            Background background, int contentMask) {
        super();

        //      background.setCapability(Background.ALLOW_APPLICATION_BOUNDS_WRITE);
        //      background.setCapability(Background.ALLOW_APPLICATION_BOUNDS_READ);
        //      background.setCapability(Background.ALLOW_COLOR_READ);
        //      background.setCapability(Background.ALLOW_COLOR_WRITE);

        setController(cont);
        this.setSceneBackground(background);
        addMapContent(mapHandler, objRootBG, contentMask);

        // Important!! Compiles the universe
        ((UniverseManager) universe).makeLive();
    }

    protected void setController(NavBehaviorProvider cont) {
        controller = cont;
    }

    public NavBehaviorProvider getController() {
        return controller;
    }

    public Behavior getMotionBehavior(TransformGroup cameraTransform,
                                      Projection projection) {

        Behavior behavior = null;
        if (controller != null) {
            behavior = controller.setViewingPlatformBehavior(cameraTransform,
                    projection,
                    scaleFactor);
        }
        return behavior;
    }

    public static JFrame getFrame(String title, int width, int height,
                                  MapHandler mapHandler,
                                  NavBehaviorProvider controller,
                                  Background background, int contentMask) {

        JFrame frame = new JFrame(title);
        frame.setSize(width, height);
        frame.getContentPane().setLayout(new BorderLayout());
        ControlledManager c3d = new ControlledManager(mapHandler, controller, background, contentMask);
        c3d.compileUniverse();
        frame.getContentPane().add("Center", c3d.getCanvas());
        return frame;
    }

}
TOP

Related Classes of com.bbn.openmap.tools.j3d.ControlledManager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.