Esempio n. 1
0
 private static void InputKeyPress(Event e)
 {
     // We added the listener to EventType.KeyPress so it should be a KeyboardEvent
     if (e.IsKeyboardEvent() && e.As<KeyboardEvent>().KeyCode == 13)
     {
         Save();
     }
 }
        void onDocumentMouseUp(Event arg)
        {
            if (!IsActive) return;

            MouseEvent e = arg.As<MouseEvent>();

            e.PreventDefault();

            controls.enabled = true;

            if (intersected != null)
            {
                plane.position.copy(intersected.position);
                selected = null;
            }

            Container.Style.Cursor = Cursor.Auto;
        }
        void onDocumentMouseMove(Event arg)
        {
            if (!IsActive) return;

            MouseEvent e = arg.As<MouseEvent>();
            e.PreventDefault();

            SetMousePos(e);
            raycaster.setFromCamera(mouse, camera);

            THREE.Intersection[] intersects;

            if (selected != null )
            {
                intersects = raycaster.intersectObject(plane);
                selected.position.copy(intersects[0].point.sub(offset));
                return;

            }

            intersects = raycaster.intersectObjects(allObjects);

            if (intersects.Length > 0)
            {
                THREE.Intersection i = intersects[0];
                THREE.Mesh m = i.Object as THREE.Mesh;

                if (m!=null && m!= intersected)
                {
                    intersected = m;
                    plane.position.copy(intersected.position);
                    plane.lookAt(camera.position);

                }
                Container.Style.Cursor = Cursor.Pointer;
            }
            else
            {
                intersected = null;
                Container.Style.Cursor = Cursor.Auto;
            }
        }
        void onDocumentMouseDown(Event arg)
        {
            if (!IsActive) return;

            MouseEvent e = arg.As<MouseEvent>();
            e.PreventDefault();

            THREE.Vector3 vector = new THREE.Vector3(mouse.x, mouse.y, 0.5).unproject(camera);

            var raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());

            THREE.Intersection[] intersects = raycaster.intersectObjects(allObjects);

            if (intersects.Length > 0 )
            {
                THREE.Intersection interSec = intersects[0];
                THREE.Mesh m = interSec.Object as THREE.Mesh;

                if (m != null)
                {
                    controls.enabled = false;
                    selected = m;
                    intersects = raycaster.intersectObject(plane);
                    offset.copy(interSec.point).sub(plane.position);
                    Container.Style.Cursor = Cursor.Move;
                }
            }
        }
Esempio n. 5
0
 public void HandleKeyUp(Event e)
 {
     this.currentlyPressedKeys[e.As<KeyboardEvent>().KeyCode] = false;
 }
Esempio n. 6
0
 public void HandleKeyDown(Event e)
 {
     this.currentlyPressedKeys[e.As<KeyboardEvent>().KeyCode] = true;
 }
        public void SwitchCase(Event arg)
        {
            KeyboardEvent e = arg.As<KeyboardEvent>();

            switch (e.KeyCode)
            {
                case 81: // Q
                    controls.setSpace(controls.space == "local" ? "world" : "local");
                    break;
                case 87: // W
                    controls.setMode("translate");
                    break;
                case 69: // E
                    controls.setMode("rotate");
                    break;
                case 82: // R
                    controls.setMode("scale");
                    break;
                case 187:
                case 107: // +,=,num+
                    controls.setSize(controls.size + 0.1);
                    break;
                case 189:
                case 10: // -,_,num-
                    controls.setSize(Math.Max(controls.size - 0.1, 0.1));
                    break;
            }
        }