create3000 / x_ite

X_ITE X3D Browser, view and manipulate X3D, VRML, glTF and other 3D sources in HTML.
https://create3000.github.io/x_ite/
Other
67 stars 15 forks source link

Doubts at rendering the X3D component in DOM #139

Closed GuilhermeLuanMorais closed 1 year ago

GuilhermeLuanMorais commented 1 year ago

Hi, I am trying to renderize the X3D in the DOM, but by passing the byte array to the src of , the byte array is a WRL file, that is an attribute from an object that I am returning from my java controller. at my case, the 3D is not rendering properly. There is a way to render the byte array or base64 String in DOM without using the @Produces((VRML_CONTENT}) ?

create3000 commented 1 year ago

You could do:

<x3d-canvas src="data:model/vrml;base64,..."></x3d-canvas>

additionally you can set the baseURL attribute, where you can specify a URL against which relative urls are resolved.

GuilhermeLuanMorais commented 1 year ago

Nice, thanks for answering me. I will try and get back to say if it works !

Why this is happening ? image

When I execute this line i get this error: image

The response[1].fileBase64 is in this format: data:model/vrml;base64,... Can it be my string64 ?

create3000 commented 1 year ago

Could you please provide the file causing the error?

GuilhermeLuanMorais commented 1 year ago

I make it work in my project with my base64 like you said. Its working perfect, but now I am trying to check why this is happening.

image

Its a big page with a lot of libs, I'm trying to find which one is causing conflict with your lib. The error is ocurring while loading the lib js on loading the page

create3000 commented 1 year ago

From my side of view this error should not happen at all. The error happens when refineNormals is called from IndexedFaceSet, but it is really impossible that this error can happen, the code is very save.

Second it happens when the default Sphere node geometry is created, what is extensively tested.

Normally X_ITE should work well also together with other libraries.

create3000 commented 1 year ago

Why do you get a 404 error that the CSS could not be loaded?

GET https://local.weg.net:9002/catalog/ui/desktop/common/js/xite-8.9.2/x_ite.css net::ERR_ABORTED 404

create3000 commented 1 year ago

After some investigation, I figured out that the error can happen if someone in you code does Array.prototype.foo=1 or something like that. (Don't do this.)

I have changed X_ITE, so it will not be affected by that, and released a new version. Please give version 8.9.3 a try.

GuilhermeLuanMorais commented 1 year ago

Good morning, Yes, it was not loading the css in the moment that I took the printscreen, but after I have included and got the same error.

Thanks for the answer. I will try again and get back to report the status with more details.


EDIT: The 8.9.3 worked perfectly, the 3d rendered ok But now, I am reading your documentation to see why the cursor movimentation is not working, when I hold the cursor in the element, its not movimentating the "3d object". Can it be a bug ? The zoom is working.

GuilhermeLuanMorais commented 1 year ago

I can confirm that this is a bug, because I put x3d-canvas in a simple page from my project an it worked, with rotation by cursor. What is happening in my "complete page with a lot of libs" is that when I hold the click to rotate the object, it moves all the element.


EDIT: I found the error, when I put the <x3d-canvas inside a div from my project, with that css attributes: "transform: matrix(1.69, 0, 0, 1.69, 62, -38); transform-origin: 50% 50%; cursor: move; transition: transform 200ms ease-in-out 0s;" The rotation stops working. The zoom lib is the jquery.panzoom.js

create3000 commented 1 year ago

Thank you for your patience and identifying this bug.

CSS transforms are now handled correctly. Fixed version is 8.9.6.