Prevent 3D object movement in Three.js on the x, y, and z axes

I want to restrict the movement of a 3D model along the x, y, and z axis. I am looking to allow users to rotate and zoom the model, but I believe that moving it could pose potential problems. While I have found a way to disable rotation, I have not come across a similar solution for translation.

Possible Usability Concerns:

  1. The rotation point may shift when translating along the axis, resulting in disrupted rotation behavior.
  2. Users might accidentally move the object out of view. Although boundaries can be set, what is the value of a 3D model viewer if users frequently lose track of the object?

In essence, I would prefer to deactivate this feature to avoid possible usability issues.

If anyone has insight on how to accomplish this task, I would greatly appreciate it.

Answer №1

If you want to stop panning using OrbitControls, you can do it this way:

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

Check out the code for additional settings.

version three.js r.92

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Synchronize custom directive controller data with data from a factory

As a newcomer to angularjs, I stumbled upon this example that I found somewhere and it works perfectly well. However, I am puzzled by how the data within the customized directive controller remains synchronized with the factory data. Here is the snippet of ...

What is the standard way to write the server-side code for HTTP request and response handling?

I stumbled upon these resources: How to send HTTP request GET/POST in Java and How to SEND HTTP request in JAVA While I understand the client-side aspect, how can this implementation be done on the server side? The goal is to utilize the link on the clie ...

responsive cascading dropdown.. preassigned value

I've come across this interesting script on a website and it's been working pretty well for me so far. The script can be found at the following link: . However, I have a specific requirement when it comes to setting a certain value for the catego ...

The variable was not properly sent to the backing bean

I am experiencing an issue with a certain piece of code. I have a variable called fieldToStore that is defined. When I alert it or check its value in the firebug console, everything seems fine. However, when I pass it to myBean, it always ends up being und ...

Changing or toggling the visibility of links once the week is finished

I have a total of 4 links available, but I want to display only one link at a time, highlighting a different lunch option every week. Once all 4 weeks have passed, the first lunch menu will be shown again, starting from Monday. <div class="wrapper& ...

Guide to transmitting webcam feed from server to servlet

I am trying to display the webcam connected to my server in a servlet. I have come across suggestions to use getUserMedia();, however, this only captures the user's video webcam feed and not the server's. Is there a way to achieve this? My servl ...

Determine if there is any item in a collection that includes a specified attribute found in a separate set

I've attempted various solutions for this issue and have searched around but I'm unable to get it to work. I am dealing with 2 arrays and need to verify if any of the items in one array contain any of the strings from the other array. const ste ...

Avoid unnecessary re-renders in ReactJS Material UI tabs when pressing the "Enter

I've created a user interface with tabs using material-ui in reactJS. The issue I'm facing is that every time a tab is selected, the content under that tab reloads, causing performance problems because there's an iFrame displayed in one of t ...

A guide to obtaining a single access token/refresh token for unlimited use with oauth2 on the Spotify API

I'm working on a project that will exclusively rely on one Spotify account, but I'm having trouble grasping the concept of the refresh token in oauth2. Ideally, I want to generate an access token and refresh token through the Spotify API console ...

Executing 'npm run bundle' with Webpack results in an ERR! with code ELIFECYCLE

As someone new to using Webpack with AngularJS apps, I am eager to learn but facing some challenges. Following the guide by Ken Howard has been helpful, but I encounter an error when attempting to run the bundle. Article by Ken Howard that I've been ...

Having success loading JSON with AJAX in a local browser, however encountering issues when attempting to do so within the PhoneGap

When I try to load external JSON-data locally in my browser, it displays the data successfully. However, when using a cloud-based build service like PhoneGap for iOS and Android apps, the page loads but without the JSON-data appearing. Can anyone provide a ...

I successfully implemented the MongoDB connection in my Node.js application, however, it is unfortunately experiencing issues when tested with JMeter

I attempted to establish a connection between JMeter and MongoDB using JavaScript as the scripting language, but encountered failures. The same code worked successfully in Node JS, however, it fails when implemented in JMeter. var mongo = require('m ...

Adjust the dimensions of the viewport in WebdriverJS

Is there a way to launch the Chrome browser with a specific viewport size, like 800x600? I have tried the following code: var width = 800; var height = 600; driver.manage().window().setSize(width, height); However, when running window.screen.width in the ...

Issue with Redux saga not responding to action initiated by clicking on an icon

Declaration of Saga function* DoStuffInSaga({myRef}){ try { console.info("saga running"); return yield delay(1000, 1); } catch(error){ console.warn(error); } } export function* mySaga(){ yield all([ yi ...

Having trouble getting jQuery scrollTop to function with an "else if" statement?

Looking to dynamically add or remove classes from a div based on scrolling position using jQuery. Defined two variables: var mainHeight = $('#main-image').height()/1.10; var footHeight = $('body').height() - $('footer').heig ...

Tips for adding an array to an array of objects with AngularJs

I'm facing an issue with the array structure in my code. Here's what I currently have: $scope.arrayList=[{FirstName:"",LastName:""}]; $scope.Address=[{address:"",PhoneNumber:""}]; What I want to achieve is to push the $scope.Address array into ...

How can I insert my URL into the webPDFLoader feature of LangChain platform?

I need help figuring out how to load a PDF from a URL using the webPDFLoader. Can someone explain how to implement this? Any assistance would be greatly appreciated. I am working on this task in nextjs. Where should I place the pdfUrl variable within the ...

What is the solution for the red underline issue with the @json Blade directive in VSC?

Everything seems to be functioning correctly with these variables, but I'm curious as to why they are underlined in red. Does anyone have a solution for this issue? https://i.sstatic.net/mzlkY.png Error message https://i.sstatic.net/4LajF.png ...

Having trouble with my React App compiling media files

I'm currently working with create-react-app and using a Data.js file where I define objects with properties that are spread as props in a tag. However, when I run npm start or deploy my application, the image doesn't show up. It seems like the co ...

Changing a string into a dictionary using Javascript

Here is the data I have: d0 = "{\"a\":\"324jk324\",\"b\":\"42793bi42\",\"c\":\"894h42hi\"}" d = JSON.parse(d0) \\ g ...