teepee changed the topic of #openscad to: OpenSCAD - The Programmers Solid 3D CAD Modeller | This channel is logged! | Website: http://www.openscad.org/ | FAQ: https://goo.gl/pcT7y3 | Request features / report bugs: https://goo.gl/lj0JRI | Tutorial: https://bit.ly/37P6z0B | Books: https://bit.ly/3xlLcQq | FOSDEM 2020: https://bit.ly/35xZGy6 | Logs: https://bit.ly/32MfbH5
mmu_man has joined #openscad
foul_owl has joined #openscad
mtm has quit [Ping timeout: 265 seconds]
mtm has joined #openscad
<gbruno> [github] ochafik synchronize pull request #4650 (Reserve ValueMaps in ContextFrame when possible to avoid hashtable reallocs) https://github.com/openscad/openscad/pull/4650
<gbruno> [github] ochafik synchronize pull request #4651 (Check/remove duplicate variable assignments earlier to speed up hot codepaths) https://github.com/openscad/openscad/pull/4651
<gbruno> [github] ochafik closed pull request #5526 (3mf color import / export) https://github.com/openscad/openscad/pull/5526
guerd has joined #openscad
linext has joined #openscad
foul_owl has quit [Ping timeout: 252 seconds]
foul_owl has joined #openscad
teepee_ has joined #openscad
teepee has quit [Ping timeout: 264 seconds]
teepee_ is now known as teepee
lastrodamo has joined #openscad
linext has quit [Quit: Client closed]
J24k27 has joined #openscad
J24k35 has quit [Ping timeout: 240 seconds]
mmu_man has quit [Ping timeout: 252 seconds]
J24k11 has joined #openscad
J24k27 has quit [Ping timeout: 240 seconds]
<gbruno> [github] bivanbi opened issue #5542 (linear_extrude() hull() {...} causes assertion failure in linear_extrude.cc / core dump) https://github.com/openscad/openscad/issues/5542
Guest1 has joined #openscad
Guest1 has quit [Quit: Client closed]
mtm has quit [Ping timeout: 252 seconds]
mtm has joined #openscad
<gbruno> [github] ochafik synchronize pull request #5196 (Use Manifold for hull() and minkowksi()'s hull) https://github.com/openscad/openscad/pull/5196
<gbruno> [github] ochafik ready_for_review pull request #5196 (Use Manifold for hull() and minkowksi()'s hull) https://github.com/openscad/openscad/pull/5196
guerd has quit [Read error: Connection reset by peer]
mmu_man has joined #openscad
teepee_ has joined #openscad
teepee has quit [Ping timeout: 264 seconds]
teepee_ is now known as teepee
marcus has quit [Remote host closed the connection]
marcus has joined #openscad
snaked has quit [Remote host closed the connection]
little_blossom has quit [Quit: little_blossom]
<gbruno> [github] kintel pushed 2 modifications 1 removals (Upgrade manifold to 3.0.1 (#5537)) https://github.com/openscad/openscad/commit/2b4fe1aa434bd2464647c787c7aeeaed809bed3f
<gbruno> [github] kintel closed pull request #5537 (Upgrade manifold to 3.0.1) https://github.com/openscad/openscad/pull/5537
<gbruno> [github] bneuen synchronize pull request #3505 (Allow 2D objects in 3D hull and minkowski operations) https://github.com/openscad/openscad/pull/3505
Guest61 has joined #openscad
<gbruno> [github] kintel pushed 5 additions (Add failing tests for #5542) https://github.com/openscad/openscad/commit/2c2f52a0caa57a01876a4cfc4e954ba71dbf07d3
Guest56 has joined #openscad
L29Ah has quit [Ping timeout: 248 seconds]
<gbruno> [github] nickjfenton opened pull request #5543 (Add ghostscript to test dependencies) https://github.com/openscad/openscad/pull/5543
<gbruno> [github] nickjfenton synchronize pull request #5543 (Add ghostscript to test dependencies) https://github.com/openscad/openscad/pull/5543
Guest61 has quit [Quit: Ping timeout (120 seconds)]
Guest56 has quit [Quit: Ping timeout (120 seconds)]
<gbruno> [github] kintel pushed 1 modifications 1 removals (Polygons output by hull() should be considered sanitized) https://github.com/openscad/openscad/commit/bf86765d9cfbe5f394081a61a90d4760cb5472a1
<gbruno> [github] kintel opened pull request #5544 (Bugfix: Hull polygons weren't tagged as sanitized) https://github.com/openscad/openscad/pull/5544
<gbruno> [github] kintel assigned issue #5542 (linear_extrude() hull() {...} causes assertion failure in linear_extrude.cc / core dump) https://github.com/openscad/openscad/issues/5542
<gbruno> [github] kintel closed pull request #5543 (Add ghostscript to test dependencies) https://github.com/openscad/openscad/pull/5543
<gbruno> [github] kintel pushed 1 modifications (Add ghostscript to test dependencies (#5543)) https://github.com/openscad/openscad/commit/de570cba9628062f2c4e8f251b8928423ee1d6df
kintel has joined #openscad
<kintel> Could someone give a recent GUI build a spin and see if this is reproducible on some Linux distro? https://github.com/openscad/openscad/issues/5524
<teepee> hmm, there is a mention of Snap, maybe that's an unfortunate pick, I'll try that one
<teepee> nope, Snap is fine
TheCoffeMaker has quit [Remote host closed the connection]
<teepee> I'll still update to latest...
TheCoffeMaker has joined #openscad
<kintel> I suspect an old preference file getting in the way, but that wouldn't explain why File menus don't work..
<teepee> now it's broken
<teepee> QMetaObject::connectSlotsByName: No matching signal for on_syntaxHighlight_textActivated(QString)
<teepee> QObject::connect: No such signal QSignalMapper::mappedInt(int)
<teepee> QObject::connect: (receiver name: 'MainWindow')
<kintel> oh
<kintel> Which Qt version?
<teepee> Qt version: 5.12.8
<kintel> aaah, thanks!
<teepee> that is Ubuntu Core 20
<kintel> mappedInt() was introduced in Qt-5.15, and removed in Qt6
<kintel> *edit: and the regular mapped() was removed in Qt6
<kintel> ..so we need to backport to Qt < 5.15
<teepee> right, QT_DEPRECATED_VERSION_X_5_15("Use QSignalMapper::mappedInt(int) instead")
<teepee> ah, so it converts a list of signals to one signal with a value
<kintel> I'll open a PR, but don't have a way of testing it right now
<teepee> so we need mapped() for < qt6 and mappedInt for >= qt6?
<teepee> I'll try it and we can merge, extra validation via snap then
<kintel> same for the other signal; it was introduced in Qt-5.14
<InPhase> kintel: The PR in question is using old-school SIGNAL and SLOT mechanisms which are unreliable. This should be swapped out for the post-C++11 function pointer connect calls.
<teepee> reverting snap back for the time being
<InPhase> kintel: Really the whole codebase should be using these calls, so that there is some compile-time checking going on.
<kintel> InPhase do you know if there is a minimum Qt version we need to be aware of when using C++11 signals?
mmu_man has quit [Ping timeout: 272 seconds]
<teepee> that's in qt5 from start I belive
<kintel> The other signal issue was introduced in https://github.com/openscad/openscad/pull/5026
<kintel> which even mentions a snap issue
<teepee> I'm relatively sure I've used them already, let me check
<kintel> I
<InPhase> kintel: It has been around for a while. I think qt5, yeah.
<kintel> I've seen some usage in the codebase
<InPhase> kintel: Note that if the stringly typed processing fails for those macros, you just get an error returned from connect at runtime which we are obviously not checking.
<InPhase> kintel: The net result of this is that nothing happens when the signal is emitted, and things just silently fail.
<kintel> yeah, moving those to build-time would be really good
<InPhase> Off the top of my head I can't map how the commit in question causes the behavior reported, but the described problem issue sounded to me like SIGNAL/SLOT issues from before those function pointer methods arose, and in fact, I do see those being messed with in that commit.
<teepee> that's one of those?
<InPhase> connect(this->exportformat_mapper, SIGNAL(mappedInt(int)), this, SLOT(actionExportFileFormat(int))) ; I guess this is probably the failing call.
<InPhase> Perhaps mappedInt exists on some platforms/versions but not others.
<teepee> yes, due to mappedInt noe existing
<InPhase> This really needs to be a build error.
<teepee> yep!
<teepee> we also use quite some auto-wire, that might be annoying to write down explicitely
mmu_man has joined #openscad
<teepee> but it would safeguard against those silent failures
<InPhase> I guess the outstanding question then is what Qt version one needs to flip mapped to mappedInt at to make that code correct. I assume mapped(int) disappeared, or else kintel wouldn't have mae that edit in the first place. :)
<InPhase> s/mae/made/
<kintel> InPhase Qt-5.15
<kintel> mapped(int) was removed in Qt6
<InPhase> Should be able to do then, I think: #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
<InPhase> Probably best to make it a function pointer as well at the same time. Converting the rest to function pointers could be a low hanging fruit for some eager beginner if you don't want to handle the pile. :)
<gbruno> [github] bneuen synchronize pull request #3505 (Allow 2D objects in 3D hull and minkowski operations) https://github.com/openscad/openscad/pull/3505
<gbruno> [github] kintel pushed 1 modifications (Don't use the mappedInt signal before Qt-5.15) https://github.com/openscad/openscad/commit/a58585e43be84bf3b1c4e0e35a41b4ffed766732
<gbruno> [github] kintel pushed 2 modifications (Don't use the textActivated signal as it was introduced first in Qt-5.14) https://github.com/openscad/openscad/commit/c3af6c0257075a1347314ef1f79c430c7a0bc45e
<gbruno> [github] kintel pushed 1 modifications (Use C++11 signal connection) https://github.com/openscad/openscad/commit/66f61badbca1ad53fd406aee1867b70efddf8938
<gbruno> [github] kintel opened pull request #5545 (Don't use the mappedInt signal before Qt-5.15) https://github.com/openscad/openscad/pull/5545
<gbruno> [github] kintel opened pull request #5546 (Don't use the textActivated signal as it was introduced first in Qt-5.14) https://github.com/openscad/openscad/pull/5546
<gbruno> [github] kintel edited pull request #5546 (Don't use the textActivated signal as it was introduced first in Qt-5.14) https://github.com/openscad/openscad/pull/5546
<gbruno> [github] kintel opened issue #5547 (Convert old Qt signal connection scheme to the typesafe new one) https://github.com/openscad/openscad/issues/5547
<gbruno> [github] kintel closed pull request #5544 (Bugfix: Hull polygons weren't tagged as sanitized) https://github.com/openscad/openscad/pull/5544
<gbruno> [github] kintel closed issue #5542 (linear_extrude() hull() {...} causes assertion failure in linear_extrude.cc / core dump) https://github.com/openscad/openscad/issues/5542
<gbruno> [github] kintel pushed 4 additions 1 modifications (Bugfix: Hull polygons weren't tagged as sanitized (#5544) * Add failing tests for #5542 * Polygons output by hull() should be considered sanitized) https://github.com/openscad/openscad/commit/ba1ac3bd4b73362f5227cfe2de0e506814c0b284
<gbruno> [github] kintel edited pull request #5538 (update icon-nightly.scad colors) https://github.com/openscad/openscad/pull/5538
<gbruno> [github] kintel edited pull request #5527 (Add 3MF color support) https://github.com/openscad/openscad/pull/5527
kow__ has quit [Ping timeout: 246 seconds]
Guest1428 has quit [Ping timeout: 252 seconds]
buZz has joined #openscad
buZz is now known as Guest8106
<kintel> teepee Are you certain that 3mfrendertest_issue1225 doesn't fail for you in debug mode on lib3mf V2?
<kintel> I've chased it to createNefPolyhedronFromPolySet() not supporting PolySets with colors
<kintel> ..which is fine I guess; just remove colors in that case, but that should not be specific to CPU or OS
<teepee> hmm, that's strange, I'll try again
drfff has joined #openscad
<kintel> It _could_ be that quantization messes up the PolySet. That could potentially be behaving slightly different on different CPUs
<teepee> I guess I can check via the github-ci script, that does certainly build differently as it showed the earlier Eigen issue but my normal build did not
<teepee> or do I need to build with explicit -DDEBUG?
<kintel> oh.. PolySet::quantizeVertices() only considers vertices and indices, but leaves color_indices alone
<kintel> cmake -DCMAKE_BUILD_TYPE=Debug
<teepee> I have -DCMAKE_BUILD_TYPE=RelWithDebInfo
<kintel> not sure exactly what turns assertions off..
<InPhase> kintel: The good news is, that compile-time check did its job on the mappedInt...
<teepee> probably it does turn them off
<kintel> InPhase nice
<InPhase> kintel: The bad news is, 5.15.0 doesn't seem to be the right place to switch it. ;)
<kintel> Uh?
<teepee> the comments in PolySet say color_indices should be either empty or same size as triangles
<InPhase> kintel: 20.04 failed on the PR.
<teepee> it broke on Ubuntu 20.04 which should be older, I think it's not mappedInt
<teepee> 409 | connect(this->exportformat_mapper, &QSignalMapper::mapped, this, &MainWindow::actionExportFileFormat);
<teepee> it does try mapped, but has some template instantiation error
<InPhase> Oh, yeah. Some other issue.
<teepee> it seems to have a problem with the function pointer not matching the enable_if for the template, but I may need a couple of days to get what it's trying to say ;-)
<InPhase> Yeah. I see it. It's because mapped is overloaded, so a static_cast is needed.
<InPhase> This is probably why mappedInt was created in the first place.
<InPhase> kintel: So... I think: static_cast<void (*)(int)>(&QSignalMapper::mapped)
<teepee> but why is the first enable_if saying: !IsPointerToMemberFunction
<InPhase> I'm not sitting on a system old enough to test that.
<teepee> you do, you could just comment that in the review and say "update" :-)
<teepee> let me try that :)
<InPhase> Or wait, that doesn't work for member functions, does it...
<teepee> that's what the template fail said
<InPhase> How does that magic work.
<teepee> does it need a static function which gets the object manually for older compilers or something strange like that?
<teepee> static_cast<void (QSignalMapper::*)( QObject * )>(&QSignalMapper::mapped)
<InPhase> kintel: I think maybe: static_cast<void (QSignalMapper::*)(int)>(&QSignalMapper::mapped)
<teepee> ouch
<teepee> right, the example is not using int, but otherwise it agrees
<InPhase> Okay, good. Then what I suggested is probably not crazy. ;)
<teepee> let me try to post that via the github PR comments
L29Ah has joined #openscad
<teepee> at least 1 other person come to the same result, assuming that's not your website :P
<InPhase> lol. Indeed, not my website. :)
<teepee> yep, commenting suggestion gives a commit change button
<gbruno> [github] t-paul pushed 1 modifications (Cast for build error on Ubuntu 20.04) https://github.com/openscad/openscad/commit/9a2fd3c21be8bfd468b548f653253b80cbefe500
<gbruno> [github] t-paul synchronize pull request #5545 (Don't use the mappedInt signal before Qt-5.15) https://github.com/openscad/openscad/pull/5545
<teepee> that part of the github gui workflow is not too bad
<kintel> Re. PolySet and color_indices: Yeah, so every time we modify a PolySet, we need to keep them in sync
<kintel> ..or simply kill colors if we're on a non-color path
<kintel> Actually in this case, it's a single-color object, so the 3mf importer should ideally not need to generate a bunch of indices.
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
teepee_ has joined #openscad
teepee has quit [Ping timeout: 264 seconds]
teepee_ is now known as teepee
<teepee> how so? is there a way of separately specifying a single color?
<gbruno> [github] bneuen synchronize pull request #3505 (Allow 2D objects in 3D hull and minkowski operations) https://github.com/openscad/openscad/pull/3505
guso78k has joined #openscad
mmu_man has quit [Ping timeout: 246 seconds]
kintel has joined #openscad
<kintel> teepee yes, if color_indices is an empty array, there should be a single color which is used to color the entire PolySet. This is how color() works
<teepee> aha, ok, that should be easy to test for once the PolySet is finished
<teepee> right now it tests if colors is empty
<teepee> and then cleans out indices
<kintel> yeah, good idea
<guso78k> I am wondering, where PolySet::setColor is used ? Usual way to colorize something is to add a Color() node into the CSG tree ?
<kintel> Btw., even if we fix the 3mf import, there is stlil a weakness in createNefPolyhedronFromPolySet() and possible other places. Not critical, but should be investigated, perhaps after merging the current work
<kintel> guso78k yes, and the geometry evaluator calls setColor when encountering a color node
<guso78k> kintel yes, that makes sense :)   i am impressed by the C++ abilities in your paste (assign)
mmu_man has joined #openscad
<guso78k> BTW: i am sorry for all this trouble caused by the File->Export Signal Mapping. But ultimately i think we will approach the better solution
<kintel> guso78k I agree, refactoring is sometimes painful, but result is better
<kintel> Our big weakness is lack of UI testing : /
<kintel> teepee FYI: The PolySet assertion also fails for OFF imports
<kintel> ..but the OFF export in question doesn't write any colors, while the 3mf one does
snaked has joined #openscad
<gbruno> [github] kintel opened issue #5548 (Color import can fail in CGAL mode) https://github.com/openscad/openscad/issues/5548
<gbruno> [github] kintel closed pull request #5546 (Don't use the textActivated signal as it was introduced first in Qt-5.14) https://github.com/openscad/openscad/pull/5546
<gbruno> [github] kintel pushed 2 modifications (Don't use the textActivated signal as it was introduced first in Qt-5.14 (#5546)) https://github.com/openscad/openscad/commit/6015697d4e919d81e8eba11a0b0e192db1bba670
<gbruno> [github] kintel closed pull request #5545 (Don't use the mappedInt signal before Qt-5.15) https://github.com/openscad/openscad/pull/5545
<gbruno> [github] kintel pushed 1 modifications (Don't use the mappedInt signal before Qt-5.15 (#5545) * Don't use the mappedInt signal before Qt-5.15 * Use C++11 signal connection * Cast for build error on Ubuntu 20.04 --------- Co-authored-by: Torsten Paul <Torsten.Paul@gmx.de>) https://github.com/openscad/openscad/commit/9454b4315b94445e65126a690f5a910130c7fd18
<gbruno> [github] kintel closed issue #5524 (cdc33d4f81 breaks export buttons) https://github.com/openscad/openscad/issues/5524
L29Ah has quit [Ping timeout: 260 seconds]
lastrodamo has quit [Quit: Leaving]
kintel has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<teepee> hmm, doing the color update breaks the coloring
<teepee> uh, setColor() does an assign(sizeof indices, 0)
<teepee> so it's all 0 pointers, not empty
kintel has joined #openscad
<kintel> teepee wait, that's weird.
<kintel> ok, I see now - I totally misread that code : (
<kintel> empty array means that it will use the default color
<kintel> ..and -1 color entries means that specific triangle is using default color
<teepee> that matches the comments in PolySet.h
<kintel> I guess we were lucky that this assert hasn't triggered so far
<kintel> I'm fine with disabling the test, tagging #5548
<kintel> I can pick up that issue and get some corner cases going
<teepee> ok, so I'll just revert the local stuff, it did move the cleanup into a separate file, I guess it's not worth keeping it now
<teepee> colors are a big adventure anyway, i assume there's more fun to come :)
<kintel> heh, yeah, which makes is important to make it clean, with good test coverage, as refactoring is inevitable
guerd has joined #openscad
guerd has quit [Read error: Connection reset by peer]