-
Notifications
You must be signed in to change notification settings - Fork 172
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integration with elalish/manifold #164
Comments
hello there, I am just curious what kind of apis does ifcjs need from emscripten port, and where can I check the current code that needs to be replaced in order to tap into that port? I did dabble in emscripten ports in the past, I think I was the 1st to compile assimp to js 6 years ago, for example, but Im not sure if I could take on this one π |
Hey @makc we have a video explaining how the library works, it'll probably clarify some of your questions. If you give us a mail, we'll give you access. Cheers! |
@makc talking with one of the original authors: "he needs to port the boolean API and everything that is needed to use it, so transforming meshes to the internal format of Manifold. Inside web-ifc he needs to call that lib from the web-ifc-bool file, and potentially modify also web-ifc-geometry. If he gets the boolean subtract working using Manifold, in the browser of course, he's done" |
Hello @makc |
@makc I can review that code, but i will need some help from your part. Is it fine for you if we review this problem together? |
yes, via emscripten, so these .a files only work for wasm build
iirc it does not pass the test due to self-intersections, which are caused by double geometry in the input (which is the data problem I referred to). Also see #53 (comment) |
I think it will be necessary to add a function that removes these repeated triangles from geometries. I could do that, thank you. Let's see if it solves the problem. |
so then you can, for example, use DEBUG_BOOLEAN_INPUT and tweak #ifdef EMSCRIPTEN to let it reach geom2mesh() but comment out all the code referencing manifold there. |
@QuimMoya one last thing,
they should never be added in the 1st place. also it will be quite hard to remove them, I mean the boxes are intersecting, not identical |
I think there is no other choice than collect all files that fail, then go file by file detecting which elements are causing it to fail. |
@QuimMoya what, do you think it is different from file to file? I would think any file from the issues will do the job |
π GENERAL:
C++
.β CHALLENGE:
One of the greatest challenges of BIM software are CSG operations, also known as boolean operations. Until now, we have relied on our own implementation, but it's a complex topic and it demands a lot in terms of maintainance.
Short time ago, we were super excited to see the library elalish/manifold show up, because it solves all the issues that we currently have with boolean operations. The task consists of taking this library and integrating it with this repository, thus compiling it with Emscripten.
It seems that it's possible and [some people already did it, explaining the steps to follow, so this task shouldn't be that complicated:
Here are some of the issues that this bounty should solve as a side effect:
π©ββοΈ REQUIREMENTS:
π₯ STARTING MATERIAL:
You should follow the steps described in the elalish/manifold issue, where they explain how to do this.
Here you have some IFC files to test:
The text was updated successfully, but these errors were encountered: