Nikola Lukic
Nikola Lukic

Reputation: 4244

threejs - Defect in rotation - THREE.OrbitControls

I use OrbitControls now but still i have strange bug. It is hard to explain. When i drag mouse down in the begin work normally and then in one moment whole scene begin to rotate in wrong direction and flip my whole scene.

I got warnings :

OrbitControls.js:1103 [Violation] Added non-passive event listener to a scroll-blocking 'wheel' event. Consider marking event handler as 'passive' to make the page more responsive. See https://www.chromestatus.com/feature/5745543795965952

Here is my code:


    controls = new THREE.OrbitControls(camera, renderer.domElement);

    //controls.addEventListener( 'change', render ); // call this only in static scenes (i.e., if there is no animation loop)

    controls.enableDamping = true; // an animation loop is required when either damping or auto-rotation are enabled
    controls.dampingFactor = 0.05;
    controls.screenSpacePanning = true;
    controls.minDistance = 14;
    controls.maxDistance = 120;

    controls.maxPolarAngle = Math.PI / 3;

    controls.target.set(5, 4, -20);

Upvotes: 0

Views: 847

Answers (2)

ibrahim ünal
ibrahim ünal

Reputation: 109

Try this, i had a familiar issue and applied it to my code and worked camera.up = new THREE.Vector3( 0, 0, 1 );

Upvotes: 2

M -
M -

Reputation: 28472

Did you take a look at the documentation? It outlines four different properties to limit angles of rotation. These are the defaults:

// How far you can orbit vertically, upper and lower limits.
// Range is 0 to Math.PI radians.
controls.minPolarAngle = 0; // radians
controls.maxPolarAngle = Math.PI; // radians

// How far you can orbit horizontally, upper and lower limits.
// If set, must be a sub-interval of the interval [ - Math.PI, Math.PI ].
controls.minAzimuthAngle = - Infinity; // radians
controls.maxAzimuthAngle = Infinity; // radians

Edit:

The above solution is for OrbitControls, which is not what the original question asked. TrackballControls does not offer the ability to limit angles of rotation.

Upvotes: 1

Related Questions