Search in sources :

Example 11 with MouseAxisTrigger

use of com.jme3.input.controls.MouseAxisTrigger in project jmonkeyengine by jMonkeyEngine.

the class TestWriteToTexture method simpleInitApp.

@Override
public void simpleInitApp() {
    initOpenCL1();
    tex = new Texture2D(settings.getWidth(), settings.getHeight(), 1, com.jme3.texture.Image.Format.RGBA8);
    Picture pic = new Picture("julia");
    pic.setTexture(assetManager, tex, true);
    pic.setPosition(0, 0);
    pic.setWidth(settings.getWidth());
    pic.setHeight(settings.getHeight());
    guiNode.attachChild(pic);
    initCounter = 0;
    flyCam.setEnabled(false);
    inputManager.setCursorVisible(true);
    inputManager.addMapping("right", new MouseAxisTrigger(MouseInput.AXIS_X, false));
    inputManager.addMapping("left", new MouseAxisTrigger(MouseInput.AXIS_X, true));
    inputManager.addMapping("up", new MouseAxisTrigger(MouseInput.AXIS_Y, false));
    inputManager.addMapping("down", new MouseAxisTrigger(MouseInput.AXIS_Y, true));
    inputManager.addMapping("drag", new MouseButtonTrigger(MouseInput.BUTTON_LEFT));
    inputManager.addListener(this, "right", "left", "up", "down", "drag");
    dragging = false;
}
Also used : Texture2D(com.jme3.texture.Texture2D) Picture(com.jme3.ui.Picture) MouseAxisTrigger(com.jme3.input.controls.MouseAxisTrigger) MouseButtonTrigger(com.jme3.input.controls.MouseButtonTrigger)

Example 12 with MouseAxisTrigger

use of com.jme3.input.controls.MouseAxisTrigger in project chordatlas by twak.

the class Tweed method simpleInitApp.

public void simpleInitApp() {
    // TweedSettings.load( new File ( Tweed.DATA ) );
    point = new PointLight();
    point.setEnabled(true);
    point.setColor(ColorRGBA.White.mult(4));
    point.setRadius(50);
    rootNode.addLight(point);
    sun = new DirectionalLight();
    // sun.setDirection(new Vector3f(-0.0f, -1f, -0f).normalizeLocal());
    sun.setDirection(new Vector3f(-0.1f, -0.7f, -1.0f).normalizeLocal());
    sun.setColor(new ColorRGBA(1f, 0.95f, 0.99f, 1f));
    rootNode.addLight(sun);
    // enable multiple lights
    renderManager.setPreferredLightMode(LightMode.SinglePass);
    renderManager.setSinglePassLightBatchSize(16);
    ambient = new AmbientLight();
    rootNode.addLight(ambient);
    setAmbient(0);
    setDisplayFps(false);
    setDisplayStatView(false);
    clearBackground();
    buildBackground();
    getFlyByCamera().setDragToRotate(true);
    setTool(tools[0]);
    debug = new Node("dbg");
    rootNode.attachChild(debug);
    // String folder = ; // data-source
    // SpotLightShadowRenderer shadows = new SpotLightShadowRenderer(assetManager, 1024);
    // shadows.setLight(sun);
    // shadows.setShadowIntensity(0.3f);
    // shadows.setEdgeFilteringMode(EdgeFilteringMode.PCF8);
    // viewPort.addProcessor(shadows);
    cam.setLocation(TweedSettings.settings.cameraLocation);
    cam.setRotation(TweedSettings.settings.cameraOrientation);
    setFov(0);
    setCameraSpeed(0);
    if (false) {
        // TweedSettings.settings.SSAO ) {
        FilterPostProcessor fpp = new FilterPostProcessor(assetManager);
        SSAOFilter filter = new SSAOFilter(0.50997847f, 1.440001f, 1.39999998f, 0);
        // fpp.addFilter( new ColorOverlayFilter( ColorRGBA.Magenta ));
        fpp.addFilter(filter);
        fpp.addFilter(new FXAAFilter());
        viewPort.addProcessor(fpp);
    }
    TweedSettings.loadDefault();
    inputManager.addMapping(MOUSE_MOVE, new MouseAxisTrigger(MouseInput.AXIS_X, false));
    inputManager.addMapping(MOUSE_MOVE, new MouseAxisTrigger(MouseInput.AXIS_Y, false));
    inputManager.addMapping(MOUSE_MOVE, new MouseAxisTrigger(MouseInput.AXIS_X, true));
    inputManager.addMapping(MOUSE_MOVE, new MouseAxisTrigger(MouseInput.AXIS_Y, true));
    inputManager.addListener(moveListener, MOUSE_MOVE);
    inputManager.addMapping(CLICK, new MouseButtonTrigger(MouseInput.BUTTON_RIGHT));
    inputManager.addListener(analogListener, CLICK);
    inputManager.addMapping(SPEED_UP, new KeyTrigger(KeyInput.KEY_UP));
    inputManager.addMapping(SPEED_DOWN, new KeyTrigger(KeyInput.KEY_DOWN));
    inputManager.addMapping(AMBIENT_UP, new KeyTrigger(KeyInput.KEY_RIGHT));
    inputManager.addMapping(AMBIENT_DOWN, new KeyTrigger(KeyInput.KEY_LEFT));
    inputManager.addMapping(FOV_UP, new KeyTrigger(KeyInput.KEY_PGUP));
    inputManager.addMapping(FOV_DOWN, new KeyTrigger(KeyInput.KEY_PGDN));
    inputManager.addMapping(TOGGLE_ORTHO, new KeyTrigger(KeyInput.KEY_O));
    inputManager.addListener(new com.jme3.input.controls.ActionListener() {

        @Override
        public void onAction(String name, boolean isPressed, float tpf) {
            if (name == SPEED_UP)
                setCameraSpeed(+1);
            else
                setCameraSpeed(-1);
        }
    }, SPEED_UP, SPEED_DOWN);
    inputManager.addListener(new com.jme3.input.controls.ActionListener() {

        @Override
        public void onAction(String name, boolean isPressed, float tpf) {
            if (!isPressed)
                return;
            if (name == AMBIENT_UP)
                setAmbient(+1);
            else
                setAmbient(-1);
        }
    }, AMBIENT_UP, AMBIENT_DOWN);
    inputManager.addListener(new com.jme3.input.controls.ActionListener() {

        @Override
        public void onAction(String name, boolean isPressed, float tpf) {
            if (!isPressed)
                return;
            if (name == FOV_UP)
                setFov(+1);
            else
                setFov(-1);
        }
    }, FOV_UP, FOV_DOWN);
    inputManager.addListener(new com.jme3.input.controls.ActionListener() {

        @Override
        public void onAction(String name, boolean isPressed, float tpf) {
            if (isPressed) {
                TweedSettings.settings.ortho = !TweedSettings.settings.ortho;
                setCameraPerspective();
            }
        }
    }, TOGGLE_ORTHO);
}
Also used : SSAOFilter(com.jme3.post.ssao.SSAOFilter) FXAAFilter(com.jme3.post.filters.FXAAFilter) Node(com.jme3.scene.Node) MouseAxisTrigger(com.jme3.input.controls.MouseAxisTrigger) KeyTrigger(com.jme3.input.controls.KeyTrigger) FilterPostProcessor(com.jme3.post.FilterPostProcessor) ColorRGBA(com.jme3.math.ColorRGBA) DirectionalLight(com.jme3.light.DirectionalLight) Vector3f(com.jme3.math.Vector3f) PointLight(com.jme3.light.PointLight) MouseButtonTrigger(com.jme3.input.controls.MouseButtonTrigger) AmbientLight(com.jme3.light.AmbientLight)

Example 13 with MouseAxisTrigger

use of com.jme3.input.controls.MouseAxisTrigger in project TeachingInSimulation by ScOrPiOzzy.

the class CircuitState method bindCircuitBoardEvents.

private void bindCircuitBoardEvents() {
    // 给电路板添加监听
    addMapping("CONNECT_ON_DESKTOP_AXIR_X+", new MouseAxisTrigger(MouseInput.AXIS_X, true));
    addMapping("CONNECT_ON_DESKTOP_AXIR_X-", new MouseAxisTrigger(MouseInput.AXIS_X, false));
    addMapping("CONNECT_ON_DESKTOP_AXIR_Y+", new MouseAxisTrigger(MouseInput.AXIS_Y, true));
    addMapping("CONNECT_ON_DESKTOP_AXIR_Y-", new MouseAxisTrigger(MouseInput.AXIS_Y, false));
    String[] hoverMapping = new String[] { "CONNECT_ON_DESKTOP_AXIR_X+", "CONNECT_ON_DESKTOP_AXIR_X-", "CONNECT_ON_DESKTOP_AXIR_Y+", "CONNECT_ON_DESKTOP_AXIR_Y-" };
    addListener((AnalogListener) (name, value, tpf) -> {
        if (state == null) {
            return;
        }
        // 先判断鼠标是否在元器件上
        collision = JmeUtil.getCollisionFromCursor(rootCompNode, cam, inputManager);
        // 如果没有宣导元器件
        if (collision == null) {
            // 再尝试和桌面碰撞
            collision = JmeUtil.getCollisionFromCursor(desktop, cam, inputManager);
        }
        if (collision == null) {
            return;
        }
        Vector3f point = collision.getContactPoint();
        // 离电路板略高一些。
        point.addLocal(0, minHeight, 0);
        if (state == State.Starting) {
            // 开头
            Vector3f project = point.subtract(startLine1.getStart()).project(dir);
            if (project.dot(dir) < minLen) {
                return;
            }
            Vector3f line1EndPoint = startLine1.getStart().add(project);
            startLine1.updatePoints(startLine1.getStart(), line1EndPoint);
            Vector3f line2EndPoint = line1EndPoint.add(point.subtract(line1EndPoint).project(Vector3f.UNIT_Y));
            startLine2.updatePoints(line1EndPoint, line2EndPoint);
            // Vector3f line3EndPoint = point;
            startLine3.updatePoints(line2EndPoint, point);
        } else if (state == State.Mid) {
            // 计算midLine1.getStart() 与  鼠标point 向量在X与Z轴的投影。
            Vector3f tmpPoint = null;
            tmpPoint = midLine1.getStart().add(point.subtract(midLine1.getStart()).project(midAxis));
            midLine1.updatePoints(midLine1.getStart(), tmpPoint);
            midLine2.updatePoints(tmpPoint, point);
        } else if (state == State.Ending) {
        // endLine1.updatePoints(endLine1.getStart(), point);
        }
    }, hoverMapping);
    addMapping("CLICKED_ON_BOARD", new MouseButtonTrigger(MouseInput.BUTTON_LEFT));
    addMapping("CANCEL_ON_CONNECTING", new MouseButtonTrigger(MouseInput.BUTTON_RIGHT));
    addListener((ActionListener) (name, isPressed, tpf) -> {
        if (collision == null) {
            return;
        }
        if (desktop != collision.getGeometry()) {
            return;
        }
        if ("CANCEL_ON_CONNECTING".equals(name) && isPressed) {
            if (state == State.Starting || state == State.Mid) {
                connectClean();
            }
        }
        if ("CLICKED_ON_BOARD".equals(name) && isPressed) {
            if (state == null) {
                return;
            }
            if (state == State.Starting) {
                connectStarting();
                // 设置当前接线状态为接线中
                state = State.Mid;
            } else if (state == State.Mid) {
                connectMid();
            } else if (state == State.Ending) {
            // do nothing
            }
        }
    }, "CLICKED_ON_BOARD", "CANCEL_ON_CONNECTING");
}
Also used : BitmapFont(com.jme3.font.BitmapFont) URL(java.net.URL) ElecCompDef(com.cas.circuit.vo.ElecCompDef) TypicalCase(com.cas.sim.tis.entity.TypicalCase) MouseEventAdapter(com.cas.sim.tis.app.event.MouseEventAdapter) MouseAxisTrigger(com.jme3.input.controls.MouseAxisTrigger) Node(com.jme3.scene.Node) Future(java.util.concurrent.Future) ElecCompAction(com.cas.sim.tis.action.ElecCompAction) ElecComp(com.cas.sim.tis.entity.ElecComp) Map(java.util.Map) WireNumberControl(com.cas.sim.tis.app.control.WireNumberControl) WireProxy(com.cas.circuit.vo.archive.WireProxy) Archive(com.cas.circuit.vo.Archive) TagNameControl(com.cas.sim.tis.app.control.TagNameControl) AnalogListener(com.jme3.input.controls.AnalogListener) IContent(com.cas.sim.tis.view.control.IContent) PageController(com.cas.sim.tis.view.controller.PageController) TypicalCaseAction(com.cas.sim.tis.action.TypicalCaseAction) Set(java.util.Set) ActionListener(com.jme3.input.controls.ActionListener) CollisionResult(com.jme3.collision.CollisionResult) Collectors(java.util.stream.Collectors) Platform(javafx.application.Platform) Nullable(org.jetbrains.annotations.Nullable) List(java.util.List) Jack(com.cas.circuit.vo.Jack) Geometry(com.jme3.scene.Geometry) ControlIO(com.cas.circuit.vo.ControlIO) HintControl(com.cas.sim.tis.app.control.HintControl) Terminal(com.cas.circuit.vo.Terminal) ElecCompProxy(com.cas.circuit.vo.archive.ElecCompProxy) JmeUtil(com.cas.sim.tis.util.JmeUtil) HashMap(java.util.HashMap) Callable(java.util.concurrent.Callable) TypicalCase3D(com.cas.sim.tis.view.control.imp.jme.TypicalCase3D) MouseButtonTrigger(com.jme3.input.controls.MouseButtonTrigger) MouseInput(com.jme3.input.MouseInput) FastMath(com.jme3.math.FastMath) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) Spatial(com.jme3.scene.Spatial) Line(com.jme3.scene.shape.Line) SpringUtil(com.cas.sim.tis.util.SpringUtil) MouseEvent(com.cas.sim.tis.app.event.MouseEvent) Nonnull(javax.annotation.Nonnull) CfgConst(com.cas.circuit.CfgConst) Vector3f(com.jme3.math.Vector3f) Wire(com.cas.circuit.vo.Wire) CullHint(com.jme3.scene.Spatial.CullHint) Quaternion(com.jme3.math.Quaternion) HTTPUtils(com.cas.sim.tis.util.HTTPUtils) JaxbUtil(com.cas.sim.tis.xml.util.JaxbUtil) ModelKey(com.jme3.asset.ModelKey) ColorRGBA(com.jme3.math.ColorRGBA) StringUtils(org.springframework.util.StringUtils) BitmapText(com.jme3.font.BitmapText) MouseAxisTrigger(com.jme3.input.controls.MouseAxisTrigger) Vector3f(com.jme3.math.Vector3f) MouseButtonTrigger(com.jme3.input.controls.MouseButtonTrigger)

Example 14 with MouseAxisTrigger

use of com.jme3.input.controls.MouseAxisTrigger in project TeachingInSimulation by ScOrPiOzzy.

the class SceneCameraState method initializeLocal.

@Override
public void initializeLocal() {
    // 初始化相机
    cam.setLocation(new Vector3f(0, 10, 10));
    cam.lookAt(Vector3f.ZERO, Vector3f.UNIT_Y);
    // 添加鼠标监听事件
    inputManager.addMapping("MouseAxisX", new MouseAxisTrigger(MouseInput.AXIS_X, false));
    inputManager.addMapping("MouseAxisY", new MouseAxisTrigger(MouseInput.AXIS_Y, false));
    inputManager.addMapping("MouseAxisX-", new MouseAxisTrigger(MouseInput.AXIS_X, true));
    inputManager.addMapping("MouseAxisY-", new MouseAxisTrigger(MouseInput.AXIS_Y, true));
    inputManager.addMapping("MouseWheel", new MouseAxisTrigger(MouseInput.AXIS_WHEEL, false));
    inputManager.addMapping("MouseWheel-", new MouseAxisTrigger(MouseInput.AXIS_WHEEL, true));
    inputManager.addMapping("MouseButtonLeft", new MouseButtonTrigger(MouseInput.BUTTON_LEFT));
    inputManager.addMapping("MouseButtonMiddle", new MouseButtonTrigger(MouseInput.BUTTON_MIDDLE));
    inputManager.addMapping("MouseButtonRight", new MouseButtonTrigger(MouseInput.BUTTON_RIGHT));
    inputManager.addMapping("ShiftModifier", new KeyTrigger(KeyInput.KEY_LSHIFT));
    // 注册监听
    inputManager.addListener(this, "MouseAxisX", "MouseAxisY", "MouseAxisX-", "MouseAxisY-", "MouseWheel", "MouseWheel-", "MouseButtonLeft", "MouseButtonMiddle", "MouseButtonRight", "ShiftModifier");
    // 设置相机视锥
    float aspect = (float) cam.getWidth() / cam.getHeight();
    cam.setParallelProjection(false);
    cam.setFrustumPerspective(45f, aspect, 0.01f, 1000);
    camera = new WASDListener(cam);
    camera.registerWithInput(inputManager);
}
Also used : Vector3f(com.jme3.math.Vector3f) MouseAxisTrigger(com.jme3.input.controls.MouseAxisTrigger) KeyTrigger(com.jme3.input.controls.KeyTrigger) WASDListener(com.cas.sim.tis.app.listener.WASDListener) MouseButtonTrigger(com.jme3.input.controls.MouseButtonTrigger)

Aggregations

MouseAxisTrigger (com.jme3.input.controls.MouseAxisTrigger)13 MouseButtonTrigger (com.jme3.input.controls.MouseButtonTrigger)7 ActionListener (com.jme3.input.controls.ActionListener)4 AnalogListener (com.jme3.input.controls.AnalogListener)4 KeyTrigger (com.jme3.input.controls.KeyTrigger)4 Vector3f (com.jme3.math.Vector3f)3 Node (com.jme3.scene.Node)3 BitmapText (com.jme3.font.BitmapText)2 MouseInput (com.jme3.input.MouseInput)2 AmbientLight (com.jme3.light.AmbientLight)2 ColorRGBA (com.jme3.math.ColorRGBA)2 Spatial (com.jme3.scene.Spatial)2 CfgConst (com.cas.circuit.CfgConst)1 Archive (com.cas.circuit.vo.Archive)1 ControlIO (com.cas.circuit.vo.ControlIO)1 ElecCompDef (com.cas.circuit.vo.ElecCompDef)1 Jack (com.cas.circuit.vo.Jack)1 Terminal (com.cas.circuit.vo.Terminal)1 Wire (com.cas.circuit.vo.Wire)1 ElecCompProxy (com.cas.circuit.vo.archive.ElecCompProxy)1