three.js panning restr.

by Herst

HTML

<script src="https://rawgit.com/mrdoob/three.js/dev/build/three.js"></script>
<script src="https://rawgit.com/Herst/three.js/OrbCtrlPanRestrExample/examples/js/controls/OrbitControls.js"></script>

CSS

body {
    overflow: hidden;
}

JavaScript

var camera, renderer, controls;
var floor, box;
var scene;
var i;

init();
render();

function init() {

    camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 10000);
    camera.position.set(150, 450, 450);

    scene = new THREE.Scene();

    floor = new THREE.Mesh(
    new THREE.PlaneGeometry(500, 500),
    new THREE.MeshBasicMaterial({
        color: 0x00ff00
    }));
    floor.rotation.x = -Math.PI / 2


    scene.add(floor);

    box = new THREE.Mesh(new THREE.BoxGeometry(100, 100, 100), new THREE.MeshBasicMaterial({
        color: 0xff0000
    }));
    box.translateY(50.001);

    scene.add(box);

    renderer = new THREE.WebGLRenderer({
        antialias: true,
    });
    renderer.setSize(window.innerWidth, window.innerHeight);
    renderer.setClearColor(0x5f5f5f);

    controls = new THREE.OrbitControls(camera, renderer.domElement);
    controls.maxPolarAngle = Math.PI / 2 * 0.8;

    document.body.appendChild(renderer.domElement);
}

function render() {

    requestAnimationFrame(render);

    renderer.render(scene, camera);
}