peepsalot has quit [Read error: Connection reset by peer]
peepsalot has joined #openscad
Guest2933 has joined #openscad
<Guest2933>
Anybody notice how they have perspective and orthogonal mixed up now?=$
Guest2933 has quit [Client Quit]
J224 has joined #openscad
J22 has quit [Ping timeout: 250 seconds]
LordOfBikes has quit [Ping timeout: 250 seconds]
LordOfBikes has joined #openscad
fling has quit [Remote host closed the connection]
ccox has joined #openscad
peepsalot has quit [Read error: Connection reset by peer]
peepsalot has joined #openscad
ccox_ has quit [Ping timeout: 256 seconds]
<InPhase>
They who? Are those OpenSCAD devs messing things up again?
Guest72 has joined #openscad
Guest72 has quit [Client Quit]
fling has joined #openscad
arebil has joined #openscad
fling has quit [Remote host closed the connection]
fling has joined #openscad
drkow has quit [Remote host closed the connection]
drkow has joined #openscad
arebil has quit [Quit: My keyboard has gone to sleep. ZZZzzz…]
KimK has quit [Ping timeout: 248 seconds]
nedko has quit [Ping timeout: 240 seconds]
nedko has joined #openscad
buZz has quit [*.net *.split]
noonien has quit [*.net *.split]
buZz has joined #openscad
buZz is now known as Guest6667
noonien has joined #openscad
AndrewStone[m] has quit [*.net *.split]
ABSHK has quit [*.net *.split]
ABSHK has joined #openscad
KimK has joined #openscad
AndrewStone[m] has joined #openscad
califax has quit [Remote host closed the connection]
califax has joined #openscad
fling has quit [Ping timeout: 240 seconds]
fling has joined #openscad
GNUmoon has quit [Remote host closed the connection]
fling has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
fling has joined #openscad
drkow has quit [Ping timeout: 246 seconds]
drfff has joined #openscad
fling has quit [Ping timeout: 240 seconds]
fling has joined #openscad
lastrodamo has joined #openscad
fling has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
fling has joined #openscad
GNUmoon has joined #openscad
arebil has joined #openscad
GNUmoon has quit [Quit: Leaving]
GNUmoon has joined #openscad
GNUmoon2 has joined #openscad
GNUmoon has quit [Ping timeout: 240 seconds]
arebil has quit [Quit: My keyboard has gone to sleep. ZZZzzz…]
fling has quit [Ping timeout: 240 seconds]
fling has joined #openscad
<juri_>
InPhase: guess it's time for everyone to switch to implicitcad, then. ;)
fling has quit [Ping timeout: 240 seconds]
KimK has quit [Ping timeout: 240 seconds]
<crazy_imp>
uhm, openscad window not in focus - translation input from spacemouse still works (unexpected because no focus), rotation input doesn't (as expected)
GNUmoon2 has quit [Remote host closed the connection]
la1yv_a has quit [Remote host closed the connection]
<buZz>
crazy_imp: spacemice are -not- joysticks, obviously
<crazy_imp>
yeah, but still focus and input related ;)
<buZz>
crazy_imp: that issue indeed confirms the lack of sane defaults or configurability
<crazy_imp>
buZz: not sure how much of this is linked to the fact that the used input libs continue to provide input without checking for the focus
<teepee>
from OpenSCAD perspective spacemouse are really just joysticks ;-)
<buZz>
right, so why is rotation and translation different from the 1 joystick
<buZz>
because they arent
<teepee>
from software side, they are identical on Linux going through the linux joystick driver
<teepee>
some special stuff going on using HID or SpaceNav but that's not a huge difference in the end
<teepee>
hmm, where's my spacemouse then
veverak1 has joined #openscad
<buZz>
mine is so ancient , it uses that weird daemon
<veverak1>
Hi folks
<veverak1>
by any chance, anybody know a good algorithm for this 2D problem? : I have a 'rectangle' with fixed dimensions, a sequence of points with x,y,theta (coordinates and rotation). I want to take the rectangle and sweep it over the sequence of points to generate a polygon of the "path" (it's a car)
sinvet has quit [Remote host closed the connection]
califax has quit [Remote host closed the connection]
califax has joined #openscad
snaked has quit [Ping timeout: 256 seconds]
GNUmoon has quit [Remote host closed the connection]
fling has quit [Ping timeout: 240 seconds]
<AndrewStone[m]>
I don't know if this is the spot to talk about implementation details. But I'll just ask my question now and if its not the right place, feel free to let me know!
<AndrewStone[m]>
I'm looking at StackCheck::inst() and its use (for example) in UserModule.cc.
<AndrewStone[m]>
(nvm figured it out)
<teepee>
AndrewStone[m]: it's the right place too :)
<AndrewStone[m]>
thx! I'm working on deferring computation to other threads so that the UI remains responsive... obviously StackCheck therefore needs to be a little more sophisticated!
<teepee>
ah, yes. right now there's only the CGAL thread which is the mesh calculation part
<teepee>
the 2 other big chunks "compile" and "preview" are on the GUI thread. so you are looking at the compile part?
<teepee>
there's another trap, well, one I know of, that there's some static information used
<teepee>
I tried to at least make it more obvious but that comes into play when spawning separate threads too
<AndrewStone[m]>
I've made a general job executor (in threads), and then a slot that executes an arbitrary function to defer UX calls back into the GUI thread. I found the real hiccup in compile is actually execution of compileDone(bool didchange), so so-far I've just deferred that (instantiateRoot). But I think updateCompilerResult() is also causing a problem.
<AndrewStone[m]>
So that's working with a StackCheck workaround. This first step is a little easier than a generalized multi-thread perf speedup, because I'm just moving computation out of the GUI thread so presumably there remains only 1 thread actually doing "real work". But can you point me to the static vars?
<AndrewStone[m]>
(no its not updateCompilerResult... its something executing after that)
<teepee>
StaticModuleNameStack in UserModule
<teepee>
I think that's one of the reasons for that GUI lock in MainWindow that prevents parallel execution
<teepee>
I believe all that stuff now has actually a place to go, as there's the EvaluationSession now
<AndrewStone[m]>
perfect, I won't have to make something similar
<teepee>
I'm not sure it covers everything already, but as it's meant to handle the memory management, it should be at least in scope of the whole compilation part
<AndrewStone[m]>
great, I'll fool around and if I get something that seems stable open an MR if you want one but I'm pretty new to this codebase so will probably try it in 2 parts. Part 1 is just defer expensive operations out of the gui thread to keep the gui responsive (like you'll be able to edit or scroll around the code while its computing). Part 2 is actually multithreading the compile/compute. This is more where we'd need every global that
<AndrewStone[m]>
depends on compile context to be put into that Session object. There's also another problem with that which is to figure out WHEN to launch in a new thread. I already tried doing so in NodeVisitor, but that was foolish as I'm sure you know.