code logs -> 2018 -> Tue, 21 Aug 2018< code.20180820.log - code.20180822.log >
--- Log opened Tue Aug 21 00:00:27 2018
00:50 macdjord|wurk is now known as macdjord
00:54 celticminstrel [celticminst@Nightstar-v1qb0r.dsl.bell.ca] has joined #code
00:54 mode/#code [+o celticminstrel] by ChanServ
00:57
< Jessikat`>
jeroud: life continues to improve :)
00:57
<&jeroud>
Yay!
01:00 Jessikat` is now known as Jessikat
01:10 Derakon[AFK] is now known as Derakon
01:24 Kindamoody is now known as Kindamoody[zZz]
01:36 macdjord [macdjord@Nightstar-grpbnp.mc.videotron.ca] has quit [[NS] Quit: The best way to complete an annoying but necessary task is to find another, more urgent task to procrastinate on by working on the first task.]
01:49 macdjord [macdjord@Nightstar-grpbnp.mc.videotron.ca] has joined #code
01:49 mode/#code [+o macdjord] by ChanServ
02:33 himi [sjjf@Nightstar-1drtbs.anu.edu.au] has quit [Ping timeout: 121 seconds]
02:41
<~Vornicus>
Ok. As far as I can tell: the mesh invariant is always kept, so that's cool, but for some reason it will occasionally - and only when I've added an on-edge point - fail in stack overflowing ways.
02:46 himi [sjjf@Nightstar-1drtbs.anu.edu.au] has joined #code
02:46 mode/#code [+o himi] by ChanServ
02:48
<~Vornicus>
This doesn't make *sense* though: the edge correction invariant should mean that any individual edge doesn't get checked more than once
02:50
<~Vornicus>
This suggests I may still be messing up the on-edge triangle creation
03:07 * Vornicus checks something else
03:16
<&McMartin>
It begins. https://bumbershootsoft.wordpress.com/2018/08/20/atari-2600-powers-and-responsibilities/
03:22
<~Vornicus>
the link got a line break on my computer after the 'p' in 'responsibilities' and I thought it said 'obscenities'
03:33
<&McMartin>
Heh
03:33
<&McMartin>
No, part of the tale here is that there are no terrors left for us after getting vertical-scrolling splitscreen to work on the C64~
03:33
<&McMartin>
Rebootski
03:33 McMartin [mcmartin@Nightstar-rpcdbf.sntcca.sbcglobal.net] has quit [[NS] Quit: leaving]
03:35 McMartin [mcmartin@Nightstar-rpcdbf.sntcca.sbcglobal.net] has joined #code
03:35 mode/#code [+ao McMartin McMartin] by ChanServ
03:44
<&[R]>
'I call such programs as LibreOffice Base "database programs" or "database software."'
03:44 Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has quit [[NS] Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]
03:46 Reiv [NSkiwiirc@Nightstar-ih0uis.global-gateway.net.nz] has joined #code
03:46 mode/#code [+o Reiv] by ChanServ
04:11 celticminstrel [celticminst@Nightstar-v1qb0r.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
04:12 celticminstrel [celticminst@Nightstar-v1qb0r.dsl.bell.ca] has joined #code
04:12 mode/#code [+o celticminstrel] by ChanServ
04:13 celticminstrel [celticminst@Nightstar-v1qb0r.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
04:14 celticminstrel [celticminst@Nightstar-v1qb0r.dsl.bell.ca] has joined #code
04:14 mode/#code [+o celticminstrel] by ChanServ
04:15 celticminstrel [celticminst@Nightstar-v1qb0r.dsl.bell.ca] has quit [Client exited]
04:24 Vornicus [Vorn@Nightstar-sjaki9.res.rr.com] has quit [Ping timeout: 121 seconds]
05:05 Jessikat` [Jessikat@Nightstar-r1qofu.dab.02.net] has joined #code
05:08 Jessikat [Jessikat@Nightstar-afs2pp.dab.02.net] has quit [Ping timeout: 121 seconds]
05:08
<&McMartin>
Progress: https://i0.wp.com/bumbershootsoft.files.wordpress.com/2018/08/lightsout2600_05.png?ssl=1
05:08
<&McMartin>
I think it's time to stop hacking and get back to writing for awhile
05:19 Derakon is now known as Derakon[AFK]
06:09 macdjord is now known as macdjord|slep
06:21 Jessikat` is now known as Jessikat
06:59 himi [sjjf@Nightstar-1drtbs.anu.edu.au] has quit [Ping timeout: 121 seconds]
07:18 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code
07:18 mode/#code [+qo Vornicus Vornicus] by ChanServ
07:29 [R] [rstamer@genoce.org] has quit [Ping timeout: 121 seconds]
07:48 [R] [rstamer@Nightstar-d7h8ki.org] has joined #code
07:48 mode/#code [+ao [R] [R]] by ChanServ
08:39 Kindamoody[zZz] is now known as Kindamoody
09:59 * Vornicus adds yet more diagnostics, learns nothing
10:01 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code
10:08 Jessikat [Jessikat@Nightstar-r1qofu.dab.02.net] has quit [Ping timeout: 121 seconds]
11:12
<~Vornicus>
aha, here we are with something. I'm making inside-out faces. How though?
12:09 * TheWatcher would try to make clockwise/counterclockwise puns, but his head hurts too much for such shenanigans
13:18 macdjord|slep is now known as macdjord|wurk
13:27 celticminstrel [celticminst@Nightstar-v1qb0r.dsl.bell.ca] has joined #code
13:27 mode/#code [+o celticminstrel] by ChanServ
13:59 celticminstrel [celticminst@Nightstar-v1qb0r.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
15:28
<~Vornicus>
I fucking hate geometry
15:35 * TheWatcher has an angle on a pun related to that, but would be going off on a tangent
15:35
<@TheWatcher>
What's up?
15:39
<~Vornicus>
I'm doing voronoi diagrams. Every time I think I've got it, there's another goddamn special case I have to hunt down and kill
15:39
<~Vornicus>
There are *so many* special cases
15:40
<@TheWatcher>
Code is 90% space case handling?
15:40
<@TheWatcher>
*special
15:40
<~Vornicus>
oh ho ho, no
15:40
<@TheWatcher>
(don't ask how I did that, my fingers are special today)
15:40
<@TheWatcher>
99%? >.>
15:41
<~Vornicus>
A good half of it is gathering data from the existing structure and then rejiggering it
15:47
<~Vornicus>
like, okay, I've got a function, put_point_on_face. there's 8 lines of collecting edge and point data from the mesh, then another 8 to build three new faces, 7 lines to build and load six new edges (the first one just creates six edge structures, the other six fill each one in individually), another three to update existing edges, two to set hierarchy data for the old face and prevent leakage of dead edges, one to let the point find
15:47
<~Vornicus>
itself in the mesh, and three to start enforcement of the delaunay invariant
15:48
<~Vornicus>
None of this is really a special case, but it's 32 lines of pointer mashing.
15:48
<@TheWatcher>
(C++?)
15:49
<~Vornicus>
Lua
15:49
<@TheWatcher>
Aha
15:49
<@TheWatcher>
Fairynuff
15:49
<~Vornicus>
(technically references but you know)
15:54
<~Vornicus>
Then in the special case, put_point_on_edge, all of those are slightly longer, so it comes out at 40 lines
16:07
<~Vornicus>
So there's a lot of Just Plain Manipulation and it's huge and then the special cases, while there are a lot of them, boil down to things like "if the edge I'm using is infinite at both ends, make sure I don't claim to be on it"
16:07
<~Vornicus>
...speaking of, I think I've figured out what's actually wrong in this case and that means I can solve it
16:08
<~Vornicus>
The problem is simple: I have a degenerate triangle - all the points are collinear. ...usually this means that the triangle is in fact infinite
16:09
<~Vornicus>
Well, infinitely long, and so forth
16:10
<~Vornicus>
But there's several upshots to this, which combine to make this awful
16:10
<~Vornicus>
1. the method I use to determine whether I'm actually inside the triangle uses "which side of each edge of the triangle am I on" as its thing. This is fine... when the triangle is non-degenerate, or when the new point isn't on the line
16:11
<~Vornicus>
rather, the infinitely long line that is collinear with the three points of the degenerate triangle
16:13
<~Vornicus>
2. but this also means that any point on the entire infinite line - whether the degenerate triangle is actually a line, or ray, or segment - counts via this method as inside the triangle.
16:13
<~Vornicus>
3. worse still, it's not actually "inside", it's "on an edge" for all three triangle edges - including ones that it isn't actually on!
16:15
<~Vornicus>
So what appears to be happening, now that I've managed to get through all the rubber ducking, is this: I've added a point that lands collinear with a degenerate triangle. Since it's "on an edge", it finds an edge that it claims to be on, and uses that as the target for making the edge
16:15
<~Vornicus>
Er, for updating the mesh
16:17
<~Vornicus>
But sometimes it's not actually in/on the triangle, and that's bad in one way and another special case I have to handle... and sometimes the edge it thinks it's on, it's not on. In either of these two cases, it will attempt to modify the mesh by splitting triangles that it's not in to make more triangles, and this *cannot help* but create reverse-wound triangles, which bring a huge set of issues, not least of which is that nothing will
16:17
<~Vornicus>
ever think it's inside a reverse-wound triangle
16:18
<~Vornicus>
Okay. how do I solve this.
16:21
<~Vornicus>
1. don't rely entirely on the insideness coefficients to determine what edge to use for ppoe. Instead, is_inside will return as additional data the index of an edge it believes the point lies on.
16:28
<~Vornicus>
2. make sure that, when answering this question for any particular edge, I actually consider the endpoints.
16:28
<~Vornicus>
3. -- and if the answer is no for all three despite the insideness coefficients being 0, then I'm not actually inside the triangle
16:28
<~Vornicus>
holy fuck I hate geometry
16:29 Kindamoody is now known as Kindamoody|out
16:58 Jessikat [Jessikat@Nightstar-d1qlv1.dab.02.net] has joined #code
17:13
<~Vornicus>
okay that was one thing. there's still some evil here
17:13
<~Vornicus>
...I'd love to have logs that aren't completely full of the same log entry
17:25
<~Vornicus>
Okay! Make sure that when attempting to correct an edge, that the quadrilateral is convex!
17:35 McMartin [mcmartin@Nightstar-rpcdbf.sntcca.sbcglobal.net] has quit [Ping timeout: 121 seconds]
17:37 Kindamoody|out is now known as Kindamoody
17:40 McMartin [mcmartin@Nightstar-rpcdbf.sntcca.sbcglobal.net] has joined #code
17:40 mode/#code [+ao McMartin McMartin] by ChanServ
17:43
<~Vornicus>
...wow that happens more often than I expected
17:46
<~Vornicus>
Okay, well, that was a cause of errors, so that's one more thing down
17:46
<~Vornicus>
Still getting some though.
17:46
<~Vornicus>
...this one I don't get at all. How the fuck am I getting faces that twin with themselves.
18:05 Jessikat` [Jessikat@Nightstar-drvb4h.dab.02.net] has joined #code
18:08 Jessikat [Jessikat@Nightstar-d1qlv1.dab.02.net] has quit [Ping timeout: 121 seconds]
18:21
<~Vornicus>
okay I *think* the only way that can happen is if a pair of faces share two edges. ...this is in fact a thing that happens at the beginning, but I'm reasonably sure that after the second point it's no longer true... and the failures are happening a very long time after that initial setup
18:34
<~Vornicus>
Okay it's definitely happening late but I have no idea how.
18:51
<~Vornicus>
Fucking hate geometry.
18:53 * TheWatcher patpats vorn, offers burritos?
18:54
<~Vornicus>
*devour*
18:55
<@TheWatcher>
(proper beef and bell pepper and salsa and cheese and rice ones, not Scalzi Burritos, I note~)
19:04
<~Vornicus>
...I don't think it should be creating area-0 faces during edge correction. I wonder why it's doing that
19:08
<~Vornicus>
noooo.
19:08
<~Vornicus>
(462, 291) (438, 351) (411, 293) (462, 291)
19:08
<~Vornicus>
noooooooo.
19:16
<~Vornicus>
Sigh. Okay! I was intending on dealing with this anyway.
19:25
<~Vornicus>
I don't know why it was failing to do uniqueness in the first place though, which is worrying
19:56
<~Vornicus>
...one more thing on the pile. gnarg!
20:17
<~Vornicus>
(in the highly specific situation of: the second point is on the same horizontal line as the first, at the very, very beginning, it does not work correctly. I suppose I could do this the right way and add more special cases to the thing or I could do it the wrong way and just fuck with ordering until that's not true
22:42 Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
23:21 Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Ping timeout: 121 seconds]
23:35 himi [sjjf@Nightstar-1drtbs.anu.edu.au] has joined #code
23:35 mode/#code [+o himi] by ChanServ
--- Log closed Wed Aug 22 00:00:29 2018
code logs -> 2018 -> Tue, 21 Aug 2018< code.20180820.log - code.20180822.log >

[ Latest log file ]