The challenges of combining THREE.PlaneBufferGeometries in three.js r70

While attempting to utilize the recently introduced THREE.BufferGeometry.merge feature on buffer geometries created with THREE.PlaneBufferGeometry in r70, I encountered an error during the subsequent render call (although the merging process itself was error-free).

  • Error message in Chrome:
    Uncaught TypeError: Cannot read property 'array' of undefined
  • Error message in Firefox:
    TypeError: this.attributes.position is undefined
  • Affected line of code: Line 8679 in the non-minified r70 build:
    var positions = this.attributes.position.array;
    in the buffer geometry's computeBoundingSphere function

I managed to narrow down the issue to a simple cube model (attempting to merge all faces of the cube into a single BufferGeometry):

Sample code...

Here are links to jsfiddles:

Based on my understanding, THREE.PlaneBufferGeometry should have handled setting the BufferGeometry's position attribute with the vertex positions. Did I make a mistake, or is this potentially a bug in three.js version r70?

Answer №1

One solution is to utilize the following code:

var bg = new BufferGeometry().fromGeometry(geometry);

This will give you the combined BufferGeometry you need. I've encountered this issue in my own projects and had to resort to this workaround due to the error message. Has a bug report been filed or is there a fix available?

Answer №2

You should be able to use the code provided in the github issue mentioned below.

https://github.com/mrdoob/three.js/issues/6188

It's strange that this code hasn't been integrated yet.

Update: Upon further review, I realized that you are actually the original author of the code.

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

Manipulating events through adjusting values of a JQuery-UI range-slider

My range-slider's values are being set with the code: $('...').slider( 'values', [ 0, 10000 ] );. However, I am facing an issue where this line triggers the change( event, ui ) event twice. Is there a way to ensure it only triggers ...

Checking the status of an object using a Jasmine spy call in an Ajax method

Currently, I am unit testing an Angular controller that relies on a Rails Resource factory to manage data exchange with a Rails application. Specifically, POST requests are handled by calling a method on the model, like so: $scope.resource.update().then(s ...

Creating with NodeJS

I'm encountering an issue where my code is not waiting for a response when trying to retrieve data from a database. The connection is fine and everything works well, but Express isn't patient enough for the data to come through. Despite trying v ...

Utilizing AngularJS within a Captive Network Assistant (WISPr) on iOS and MacOS devices

In my past experiences with projects, it has been observed that Apple's Captive Network Assistant (also known as WISPr client) operates with a restricted browser. For further information, you can refer to How can I debug the browser in Captive Portal? ...

How can you use jQuery.ajax to solely fetch the status code without downloading the entire document?

My application relies on the use of jQuery.ajax to check if a particular resource exists by constantly polling it. Once the resource is no longer returning a 404 status code, the app redirects to view that resource. However, I am concerned about downloadin ...

What is the best way to disable the functions doajax_red and doajax_blue when a radio button is checked?

Is there a way to halt the functions doajax_red and doajax_blue when a radio button is checked? Upon loading the page index.php, clicking the red button will display a loading image. If you check the BLUE radio button and then re-check the RED radio butt ...

Build.js.erb requesting a partial script task

Struggling to make my create action function accurately in my rails app. The following two lines work as intended: $('#pit_form').remove(); //remove form $('#new_link').show(); //show new link again They successfully remove the form ...

Using CSS files from node modules within a meteor application

Incorporating the froala editor into my Meteor and React project has presented a unique challenge. The editor mandates the importation of CSS files, as outlined in the documentation here: . However, upon importing a specific CSS file using the command belo ...

Is there a way to synchronize the autohide duration for both the LinearProgress MUI and SnackBar components?

Can someone help me align my SnackBar with the LinearProgress so that they both have an auto-hide duration of 4 seconds? I've been struggling to figure it out for hours and haven't found a solution yet. Could the issue be in the useEffect part of ...

Struggling with uploading files in AngularJS?

Below is the code snippet from my controller file where I aim to retrieve the values of various input elements (name, price, date, image) and store them in an array of objects... $scope.addBook = function(name, price, date, image) { name = $scope ...

Modify MUI's ListItemText component by targeting a specific span to implement customized styles using the useStyle hook

It's quite perplexing that although this is a straightforward task in regular CSS, it must be accomplished through MUI's useStyles for some peculiar reason. Essentially, I possess a ListItem containing a ListItemText. It appears as follows: cons ...

Is there a way for me to retrieve both a ModelAndView file and a string?

Can JavaScript return an object and a string simultaneously? const myModel = new Map(); if (preview === "pdf") { myModel.set("IS_IGNORE_PAGINATION", false); myModel.set("format", "pdf"); } else if (preview === "xls") { myModel.set("IS_IGNO ...

Using AngularJS ng-repeat to pass href links

I am facing an issue with displaying hyperlinks in a list of messages obtained from server response using AngularJS. $scope.messages = [] When a button is clicked, the content of a text area is added to the array using ng-click method. This message is th ...

Error in Material UI when using the select component

CustomComponent.js:98 UI Error: The value undefined provided for the selection is out of range. Please make sure to select a value that matches one of the available options or ''. The available options are: `All`, `Software Development`, `Qualit ...

Problems with Angular UI Router: Functions not functioning properly within the template

Currently, I am delving into the realm of Angular UI Router in order to effectively manage different sections of my application. If you'd like, check out this plunkr (http://plnkr.co/edit/KH7lgNOG7iCAEDS2D3C1?p=preview) Here are some issues that I&a ...

Leveraging Angular 4 component as a custom widget within a static website

Is it possible to integrate my Angular 4 component (a mail window widget application built with webpack) into a static website, ideally utilizing the <script> tag? I came across some blog articles, but they all mention using SystemJS while my app is ...

Acquire the content of an interactive website with Python without using the onclick event

I am looking to extract the content of a dynamically generated website after clicking on a specific link. The link is structured as follows: <a onclick="function(); return false" href="#">Link</a> This setup prevents me from directly accessin ...

What is preventing the listener from activating?

I came across some HTML code that looks like this: <form id="robokassa" action="//test.robokassa.ru/Index.aspx" method="post"> <input type="text" id="OutSum" name="OutSum" value="" placeholder="Сумма пополнения"> ...

Switching between Login Form and Register Form in VueJS template

Recently, I attempted to switch between the 'Login Form' and 'Register Form' using code that I found on codepen Flat HTML5/CSS3 Login Form. While the code functioned properly on its own, when integrated into a Vue Template, the form fai ...

Using Backbone for the front end and Node.js for the backend, this website combines powerful technologies

Currently, I am in the process of developing a new website that will function as a single-page application featuring dialog/modal windows. My intention is to utilize Backbone for the frontend and establish communication with the backend through ajax/webs ...