"Utilize the Object3D that has been loaded through the OBJMTLLoader

I am currently developing an application that enables users to upload 3D models in the obj/mtl format. In this application, the admin can preview what the loaded object will look like in our viewer. I am working on adding controls for users to specify the initial y-position of the loaded object and the initial z-position of the camera. While I have successfully implemented the camera part, I am facing challenges with setting the y-position. Below is a snippet of my code:

var obj3d;

loader.load( model_obj, model_mtl, function ( object ) {
    object.position.y = y_init;
    scene.add( object );
    render();

    obj3d = object;

    $('#initial_y').change(function() {
      obj3d.position.y = $(this).val();
    });

}, onProgress, onError );

The problem arises when I try to access the Object3D outside the load function, as it seems the reference is no longer available. This results in a JavaScript error message:

Cannot access property 'position' of undefined.

If anyone could offer assistance with this issue, it would be greatly appreciated!

Answer â„–1

Thanks to @mrdoob's comment, I was able to figure out the solution on my own. It turned out that my variable obj3d was out of scope when the jquery callback was triggered. Moving the variable declaration to global scope solved the issue for me.

Furthermore, the reason why changes were not immediately visible in the three.js scene was because I forgot to call the render() function.

$('#initial_y').change(function() {
    obj3d.position.y = $(this).val();
    render();
});

I hope this explanation benefits others facing a similar problem. Thanks again for guiding me in the right direction!

Answer â„–2

It's a bit uncertain, but my suggestion is to utilize obj3d = object.clone(), as it seems like the object gets eliminated later on.

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

Import the CSV file and store it in a designated directory using JQuery

My goal is to enable users to upload a CSV file from an HTML page and have it saved to a specified local directory upon upload. Two possible scenarios could unfold: if the uploaded file already exists, it should be overwritten; otherwise, a new file shoul ...

Disable the movement and dragging functionality of the scroll feature in Google Maps using React

I have a map.jsx file in my React application that contains the code below: import React from 'react'; import GoogleMapReact from 'google-map-react'; import './map.css'; const Map = ({ location, zoomLevel }) => ( <d ...

What is the best way to dynamically add the 'required' attribute to an input field?

My responsibility was to dynamically add required fields to all elements on each state that the user selected as required. In my database, I have a table containing the input ID (each input has a unique ID) and a boolean field indicating whether or not a r ...

The progress bar on my browser disappears when I click a link in my Next.js (React) application

I'm currently working on an app that uses Strapi as the backend and Next.js as the frontend. In my frontend, I have multiple links that are styled in a certain way. However, when I click on these links, there is a delay of about 2 seconds before the ...

Passing array data from JavaScript to PHP using POST method in Joomla 3.x

Looking for a way to send an array from JavaScript to a Joomla 3.x PHP file? var data = ['foo', 'bar']; $.post('index.php?option=component&view=componentview&Itemid=123&tmpl=component&layout=xlsx', {'xls ...

Include a sharing option within the magiczoomplus feature

My current project involves creating a WordPress site using Artisteer along with several plugins to showcase photo galleries. To enhance the user experience, I purchased an e-commerce WordPress theme which features a share button that I really like. Now, I ...

Accessing the variable's value within a separate if statement within the function

I have a function that retrieves data from JSON and passes it to render, but I had to include two different conditions to process the data. Below is the function: filterItems = () => { let result = []; const { searchInput } = this.state; c ...

Leverage JSON data using props in React JS

Currently, my data is formatted in JSON and successfully populated into props known as foxFooterData. Upon inspecting the console.log result of foxFooterData.data, the following information is visible: https://i.sstatic.net/8htNG.png I am attempting to r ...

Creating an endless variety of modals using HTML - The ultimate guide

Currently, I am in the process of developing a Project Manager website by utilizing w3school's To-do-list tutorial. To enhance the functionality, I have included a detail button (denoted by ...) that triggers a modal displaying task information. Howev ...

Firefox 44 experiencing issue with HTML 5 Video playing sounds unexpectedly

There has been an unusual observation of Firefox playing the sounds of all embedded videos on a page, even when the elements themselves are not actively playing. Clicking play on the video controls triggers new sound and video playback to start. All video ...

The changing of colors does not function properly when clicked in JavaScript

I am having an issue with a drop-down list that offers two options: blue and green. When I select blue and click on the text input field, its background color alternates between blue and black (the default text field color). The same applies when I choose ...

Can test files be placed under the pages directory in a Next.js project?

Currently, I am in the process of writing integration tests for the API routes within a Next.js application. One question that has arisen is whether it would be problematic to place the index.test.ts file under the /pages directory. My preference leans tow ...

Personalize the appearance of your stackLabels in Highcharts with dynamic customization options

I recently created a bar graph using Highcharts. You can check it out here: http://jsfiddle.net/v1rbz41q/3/ Here's the code snippet I used: chartw.yAxis [0] .options.stackLabels.formatter = function () {              return "werfdc";   ...

When submitting the club form, my goal is to automatically generate a club admin within the user list in activeadmin

My dashboard.rb setup looks like this: ActiveAdmin.register_page "Dashboard" do menu priority: 1, label: proc{ I18n.t("active_admin.dashboard") } content title: proc{ I18n.t("active_admin.dashboard") } do # form render 'form' # Thi ...

Is it possible to replicate an HTML table using JavaScript without including the headers?

Discover a JavaScript snippet in this stack overflow post that allows you to create a button for automatically selecting and copying a table to the clipboard. When pasting the data into an Excel template, my users prefer not to include the header informat ...

What causes the occurrence of this particular error message: "THREE.WebGLRenderer: Error when attempting to create WebGL context."?

Currently, I am working on a program that involves canvas and utilizes the three.min.js library. However, when I try to run the program, nothing shows up on the screen. Upon pressing Ctrl + Shift + J in Google Chrome, I encountered the following error mess ...

Identifying whether a Alphabet or a Digit has been Pressed - JavaScript

I understand that it is possible to detect if a key has been pressed and identify which key was pressed using JavaScript. In order to check if a key is down or pressed, jQuery can be utilized with ease: $( "#some id" ).keydown(function() or $( "#m" ). ...

Converting constants into JavaScript code

I've been diving into typescript recently and came across a simple code snippet that defines a constant variable and logs it to the console. const versionNuber : number = 1.3; console.log(versionNuber); Upon running the tsc command on the file, I no ...

Challenges in retrieving information from a two-dimensional JSON dataset

I am encountering an issue with a nested JSON structure. JSON: [{"id":"15", "rand_key":"", "landlord_name":"Shah", "property_req_1":{ "lead_req_id":"", "lead_id":"0", "category_id":"1", "region_id":"1", "area_location_id":"17", ...

Enabling specific special characters for validation in Angular applications

How can we create a regex pattern that allows letters, numbers, and certain special characters (- and .) while disallowing others? #Code private _createModelForm(): FormGroup { return this.formBuilder.group({ propertyId: this.data.propertyId, ...