Closed notalfredo closed 6 months ago
A couple things have been discovered. You can use VTK with with AIS which is OCCT way of interacting with objects but its a bit janky.
I managed to build the web assembly example from the occt website.
We could go the web route but this would require me to build flex and bison with web assembly which im currently trying and is such a pain. I had to go trough a journey to use web asm with OCCT which im glad I managed to do but Im not sure if I have the energy to do it.
I could go down the route with QT or some other c++UI library but im not sure if I want to. Ill have to think about it.
imgui looks like a possible candidate if we decide to use a c++ library.
I would really like to use web assembly but using Emscripten is such a pain. I learned a lot about how gcc and g++ works just trying to build the web assembly for the OCCT webGl example but it was just a pain in the ass to get it to run, I cant imagine having to do it for flex and bison which by them selves are not simply to build from source. I cant imagine having that as a requirement for the project it would suck for anybody else trying to compile the project them selves.
Since I know I can build the occt webGl example if I dont want to have to do the same thing for flex or bison I could just create my own lexer and parser. Which I dont think will be hard but it would make it harder to just add things to the language or delete things. Especially since a lot of the grammar and lexemes are not set in stone.
This would remove the dependencies of using flex and bison
Okay I think im going to play around with imgui
to see if I can bootstrap and example. Now that I now that im capable of building the webgl example for occt
I found this repo that does imgui and OCCT together ImGui OCCT
While I could not get the example to run I did find out that they built of the glfw
sample folder for OCCT which I was able to get running.
My next step is to try and get imgui plugged into with this example.
Was able to get imgui + OCCT working together but I had to display them in separate windows.
Ill have to play around with multi text editor. And I want to see if I can get them displayed in the same window.
This is sorta what I envision if it was all under one window. Not sure if prefer this or one window
Using my qt might be a more viable option. Since we can keep everything in the same window. We would have to see if I can make this project with CMAKE
If I can get the QT scene to match up the GLFW scene. I also have to see if I can edit the text in sample code. By that I mean I can programmatically change it just via code.
If I can get the QT scene to match up the GLFW scene. I also have to see if I can edit the text in sample code. By that I mean I can programmatically change it just via code.
Got it to looks 10x better
Crazy how much the application changed with just that lol. Now ill have to play around with the Sample code box. Also maybe worth taking a look if I can change how the rotation works for the camera as I dont like it.
Okay so I got to play around with it more. I think im going to go with QT mainly because how everything is in the same window. And now I have a better idea of how to modify things. Ill have to throw away a lot of useless code as a lot of the code provided I dont think is applicable to what I need it for.
The main thing left is building the program with CMake. The reason that is bc we build are project with CMake.
Good news. I got Cmake to build the project. Time to integrate it into my application. I will try and get rid of anything thats not needed.
Got it to compile in the OpenKittenCad repo. Going to plug in code -> cad into the application then going to start purging not needed files etc...
Got Code -> cad plugged in. Now im going to remove as much as not needed files as possible.
Just pushed a big commit that got rid of a lot of not needed files. Its coming together. Still need to clean up more.
Currently we are just using VTK, since it made things easy to bootstrap but we need a "Native" Cad experience.
Whatever way I decide to display objects I just need to be able to do a couple things.