onDocumentMouseDown: function()

in app/scripts/views/mainPage/view3d.js [748:790]


    onDocumentMouseDown: function (event) {
        var config = this.eventConfig;

        var intersects = this.calculateIntersects(event, config);

        var sceneObject = null;

        if (intersects.length) {
            sceneObject = intersects[0].object;

            if (sceneObject.objectType === this.getNodeType()) {
                this.onNodeSelect(sceneObject);
            }
        }

        //d&d
        this.get('cameraControls').enabled = true;

        var offset = new THREE.Vector3(0, 0, 0);

        var camera = this.get('camera');

        var plane = this.get('nodeMoveHelperPlane');

        var vector = this.getMouseVector(event, config).unproject(camera);

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

        if (sceneObject !== undefined && sceneObject !== null && sceneObject.objectType === this.getNodeType()) {

            var intersectsWithPlane = raycaster.intersectObject(plane);

            if (intersectsWithPlane && intersectsWithPlane[0]) {
                plane.scale.x = 1;
                plane.scale.y = 1;
                plane.scale.z = 1;
                this.set('dragNode', sceneObject);
                this.get('cameraControls').enabled = false;
                offset.copy(intersectsWithPlane[0].point).sub(plane.position);
                this.set('offset', offset);
            }
        }
    },