IRC log for #brlcad on 20160823

00:41.15 *** join/#brlcad aodzalkgykrzrriw (~armin@dslb-088-066-131-231.088.066.pools.vodafone-ip.de)
03:00.17 *** join/#brlcad asad_ (~asad00@host10-2.natpool.mwn.de)
03:58.39 *** join/#brlcad amarjeet (~Amarjeet@101.211.218.19)
04:10.36 *** join/#brlcad amarjeet (~Amarjeet@101.211.218.19)
04:37.44 *** join/#brlcad amarjeet (~Amarjeet@101.211.218.19)
04:53.21 *** join/#brlcad merzo (~merzo@62-51-133-95.pool.ukrtel.net)
05:09.03 Notify 03BRL-CAD Wiki:Mandeeps708 * 9829 /wiki/User:Mandeeps708/GSoC16/logs: /* logs*/
05:19.16 *** join/#brlcad amarjeet (~Amarjeet@101.211.218.19)
05:33.05 Notify 03BRL-CAD Wiki:Mandeeps708 * 9830 /wiki/User:Mandeeps708/GSoC16/logs: /* Project Details */
05:34.24 nmz787_ brlcad: hmm, well I don't think the slicing is terribly slow... I mean, for the speed and ease of Python coding, the speed was fine for slicing. NIRT seems like it doesn't benefit from parallel jobs, at least on my machine. I thought about whether it was some kind of file lock... but I haven't tried copying the g-file a few times and running a job on each file in parallel.
05:37.15 nmz787_ brlcad: what is more interesting and concerning from your response is actually "or at least 0.0005mm for computational stability"... why is 5 microns the limit for computational stability??? I mean, have I been mislead by front-page advertising i.e. last sentence here: http://brlcad.org/wiki/Overview#What_is_BRL-CAD.3F
05:37.57 nmz787_ brlcad: I have been banking on "BRL-CAD users can accurately model objects on scales ranging from the subatomic through the galactic and get "all the details, all the time."" for a few years
06:42.00 *** join/#brlcad teepee_ (~teepee@unaffiliated/teepee)
07:06.55 *** join/#brlcad maths22 (~maths22@unaffiliated/maths22)
07:15.18 *** join/#brlcad tandoorichick (b64b2de1@gateway/web/freenode/ip.182.75.45.225)
07:38.53 *** join/#brlcad sniok (~sniok@89.252.2.135)
07:56.03 *** join/#brlcad teepee] (bc5c2134@gateway/web/freenode/ip.188.92.33.52)
08:25.55 *** join/#brlcad Caterpillar (~caterpill@unaffiliated/caterpillar)
08:27.08 *** join/#brlcad sniok (~sniok@89.252.2.135)
08:32.06 *** join/#brlcad merzo (~merzo@user-94-45-58-141.skif.com.ua)
08:49.12 *** join/#brlcad d_rossberg (~rossberg@104.225.5.10)
09:12.30 tandoorichick d_rossberg: could you please give suggestions on my final work product?
10:27.08 *** join/#brlcad sniok (~sniok@89.252.2.135)
10:35.19 d_rossberg tandoorichick: okay, i assumed that you already completed your evaluation for Google
10:37.00 tandoorichick d_rossberg: i've made a blog post here: https://tandoorichickblog.wordpress.com/2016/08/23/gsoc16workproduct/
10:40.02 d_rossberg is this essentially the same as the google doc from your e-mail?
10:40.11 tandoorichick Yes it is
10:40.33 tandoorichick Since they had mentioned it needed to be at a stable location, i published it in a blog..
10:42.16 tandoorichick also, could you advise me on the intersection of lines issue i had mailed you about?
10:43.35 tandoorichick when there are thin triangles, no feature pairs are identified sometimes because wrong intersection of lines is detected
10:49.28 d_rossberg regarding your blog post: the only thing i would recommend to add is to emphasize your final patch (with a direkt link to it)
10:52.46 d_rossberg regarding the thin triables: the first thing which came into my mind when you talked about triangles with a thickness on the edge of the precision was: remove them!
10:53.16 d_rossberg is this feasible?
10:55.37 tandoorichick i will add a direct link to my patch, maybe put it up on g drive?
10:55.46 tandoorichick i dont understand your comment about the thin triangles..
10:57.16 d_rossberg you get numerical/precision issues with the thin triangles, right?
10:58.40 tandoorichick yeah..
10:59.41 d_rossberg so, they must be very thin, with a thickness close to the numerical precision?
11:00.14 tandoorichick yeah
11:01.15 d_rossberg with almost no area => remove them?
11:02.08 d_rossberg maybe with moving its point in the middle on the long edge
11:02.29 tandoorichick yes i am doing that..
11:03.05 tandoorichick when it is a quadrilateral, or has more vertices what do we do then?
11:03.43 tandoorichick essentially all the vertices in the gap need to be healed in one go, because they wont be visited again.
11:04.13 tandoorichick so with gaps with more number of vertices itm ight tricky
11:04.36 tandoorichick because we wouldnt know which vertex to choose to heal first such that the whole mesh gets healed
11:05.23 tandoorichick is what i am saying true?
11:06.00 tandoorichick (also, i have included my final patch in the blog)
11:15.40 d_rossberg what i once did in a (maybe?) similar case was a kind of preprocessing: i unified nearby vertices; this could be extended by a test for vertices on (or near) edges
11:16.02 d_rossberg this should give us a mesh with "wide open" holes
11:16.13 tandoorichick oh okay..
11:16.19 tandoorichick yes that seems fair enough
11:16.57 tandoorichick but then again until when would be unify the vertices?
11:17.07 tandoorichick until it is a thin triangle or until it is a whide hole?
11:17.15 tandoorichick wide*
11:17.34 tandoorichick because both are possible right?
11:19.58 d_rossberg there shouldn't be any thin triangle any more after this procedure: there are no two vertices closer to each othes as <precision> and no vertex is closer to any edge than <precision>
11:21.22 tandoorichick so essentially one unification would be enough?
11:25.03 *** join/#brlcad merzo (~merzo@92.60.189.225)
11:28.48 d_rossberg one unification of vertices, one moving of vertices onto nearby edges, and maybe an additional unification of vertices (plus fixing affected edges and faces)
11:34.12 tandoorichick the thing is then, the heal command might have to be called multiple times as the algo does not revisit vertices..
11:36.09 *** join/#brlcad sniok (~sniok@89.252.2.135)
11:36.38 d_rossberg the filtering i described here is something which would be done before the creation of the DCEL
11:37.52 tandoorichick oh..
11:38.24 tandoorichick but the thin triangles that i described arise after one round of healing..
11:42.09 d_rossberg but in this case: don't create thin triangles? if the triangle you would create is thin something is wrong
11:42.59 *** join/#brlcad amarjeet (~Amarjeet@101.211.244.81)
11:45.46 tandoorichick the thing is, with the broken sphere: say a vertex contraction happens. after this, for the vertex next to the vertex just healed, the feature edge becomes the edge that has been newly added, whose dist measure is just slightly lesser than that of the previous feature (which was a vertex). this is what results in thin triangles..
12:26.20 *** join/#brlcad asad_ (~asad00@host10-2.natpool.mwn.de)
12:37.36 *** join/#brlcad amarjeet (~Amarjeet@101.211.244.81)
12:39.03 d_rossberg when do you know that the triangle is thin?
12:56.23 *** join/#brlcad sniok (~sniok@89.252.2.135)
13:19.34 *** join/#brlcad amarjeet (~Amarjeet@101.211.244.81)
13:22.23 tandoorichick d_rossberg: algorithmically i'm not sure, i just saw from the return value of the orientation function, and from the visualization
13:29.32 *** join/#brlcad amarjeet (~Amarjeet@101.211.244.81)
13:29.37 d_rossberg maybe there is a (small) consistency check necesary after each healing step to make it watertight
13:30.35 tandoorichick okay, yeah that seems plausible..
13:32.34 tandoorichick this step would involve the unification of the close vertices?
13:33.20 tandoorichick and what do i take as the tolerance for that
13:36.57 d_rossberg i would recommend a machine or double dependent value
13:37.20 d_rossberg i'm using 5.3e-11 for 3d points
13:37.34 tandoorichick hmmm okay cool..
13:37.42 tandoorichick i will try to finish this..
13:38.02 d_rossberg this is (3. * std::numeric_limits<double>::epsilon()^2)^1/3
13:38.44 tandoorichick ok cool
13:39.08 d_rossberg and with absMax = std::max(std::max(fabs(value1), fabs(value2)), 1.)
13:39.37 d_rossberg test for fabs(value1 - value2) < (absMax * tolerance)
13:43.05 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
13:50.19 *** join/#brlcad sniok (~sniok@89.252.2.135)
13:51.21 tandoorichick d_rossberg: actually the vertices of the triangular hole are v1: (-12.976259378703389, 1.4414630845285288, 995.78376342420256), v2: (587.78601884841919, 65.293997526168823, 809.01700258255005) and v3: (0, 0, 1000)
13:51.39 tandoorichick v3 is to be projected onto the edge v1v2
13:51.49 tandoorichick the vertices are not that close enough right?
13:54.09 *** join/#brlcad amarjeet (~Amarjeet@101.211.244.81)
13:58.48 tandoorichick also what are value1 and value2 wrt the 3d points?
14:03.43 *** join/#brlcad amarjeet (~Amarjeet@101.211.244.81)
14:15.09 *** join/#brlcad yorik (~yorik@187.35.8.25)
14:16.06 *** join/#brlcad amarjeet (~Amarjeet@101.211.212.162)
14:17.49 d_rossberg replace fabs(value1 - value2) with the distance of the two points
14:19.15 d_rossberg your points really aren't so close ...
14:19.33 tandoorichick yeah...
14:19.53 tandoorichick basically the error pops up in the orientation function
14:20.32 tandoorichick when the the two points v1, v2 and the orthogonal projection of v3 onto v1v2 are passed for orientation check,
14:20.37 tandoorichick collinearity isnot returned
14:20.41 tandoorichick im not sure why..
14:21.08 tandoorichick this is the basis of all error pertaining to thin triangles..
14:21.24 tandoorichick any opinions as to why this might be happening?
14:27.20 *** join/#brlcad amarjeet_ (~Amarjeet@101.211.233.74)
14:42.01 tandoorichick d_rossberg: alternatively, i could try this. im currently ignoreing edges that are incident on a vertex for the candidate of closest edge. if this were not the case, with thin triangles, the two closest vertices would be unified. this could work. but im not sure i can complete it before the gsoc deadline. but definitely before the showcase..
14:43.57 d_rossberg your tolerance is very low
14:44.15 d_rossberg try 5.3e-11 ?
14:45.22 d_rossberg keep in mind what std::numeric_limits<double>::epsilon() means
14:47.04 d_rossberg i.e. "< absMax * tolerance"
14:49.39 tandoorichick i dont exactly get what absMax is
14:53.27 tandoorichick i set my tolerance to the value you suggested
14:53.30 d_rossberg okay, you can ignore this if one value is 0
14:54.12 d_rossberg i.e. if you test for "value = 0?"
14:54.58 tandoorichick i set it to 5.3e-11 and tried.. the issue persists..
15:01.32 d_rossberg there seams to be a more general issue with the orientation function: if the 3 points are in the x=0 plane it returns collinear ...
15:03.02 tandoorichick right...
15:04.49 tandoorichick id been very confused as to how to implement the orientation function, guess i didn't think it through..
15:04.58 tandoorichick what may be the right implementation of it?
15:05.02 d_rossberg so: two points define a vector, when is the third one clockwise and when counterclockwise?
15:05.47 tandoorichick clockwise if the point is to the "right" of it and CCw if left?
15:06.48 d_rossberg you mean in the projection to the xy plane?
15:07.29 tandoorichick not quite
15:08.22 tandoorichick i mean to say if i was at point 1, and im looking towards point 2, if to the right of my line of sight, then CW, if left ccw
15:08.50 tandoorichick if point 3 is to the right of my line of sight*
15:10.57 tandoorichick how about finding the cross product of the vectors AB, AC when the three points in order are A, B, C?
15:11.36 d_rossberg "right" and "left" devide the space in two parts, the partition plane is described by the vector from 1 to 2 and a third point: which?
15:13.10 tandoorichick ok yeah it is the projection in the xy plane..
15:14.18 d_rossberg the cross product gives you a vector orthogonal to your triangle
15:15.11 tandoorichick hmmmm
15:15.23 d_rossberg i'll rethink it when i review your code
15:15.32 tandoorichick how do we determine the orientation?
15:15.40 tandoorichick okay..
15:15.52 tandoorichick so do i submit off this code?
15:16.41 tandoorichick i would like to finish fixing the orientation code..
15:16.47 tandoorichick any suggestions?
15:20.01 d_rossberg with your understanding of orientation you will likely go into trouble if you go around something, the right and left will flip, e.g. with a sphere
15:20.37 tandoorichick hmmmm
15:21.08 tandoorichick what could i do then?
15:22.56 d_rossberg the question is: for what do you need it? only for checkIfIntersectsInterior() and checkIfCollinear()?
15:24.42 tandoorichick as of now, the init functions also use it..
15:26.41 tandoorichick setting the start edge for a face, and the incident face ref for an edge..
15:27.34 tandoorichick and also at one point if the square is a hole, to check if it is indeed a hole and not the external boundary
15:27.41 *** join/#brlcad amarjeet (~Amarjeet@101.211.249.120)
15:30.19 d_rossberg as i already mentioned: determine the orientation from the nearby triangles
15:31.20 d_rossberg what is really inside and outside isn't important, but it has to be consistent for the whole mesh
15:31.32 tandoorichick yeah i got that..
15:32.05 tandoorichick thought i will look into this more pressing issue of line intersections before i looked into that bigger issue..
15:34.20 d_rossberg okay :)
15:53.10 *** join/#brlcad asad_ (~asad00@host10-2.natpool.mwn.de)
15:54.20 *** join/#brlcad sniok (~sniok@89.252.2.135)
16:13.07 *** join/#brlcad ickby (~stefan@x5d847777.dyn.telefonica.de)
16:36.16 *** join/#brlcad ickby (~stefan@x5d847777.dyn.telefonica.de)
16:37.10 *** join/#brlcad sniok (~sniok@89.252.2.135)
17:16.26 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
18:02.49 *** join/#brlcad amarjeet_ (~Amarjeet@101.211.209.239)
18:31.10 *** join/#brlcad ickby_ (~stefan@x5d847777.dyn.telefonica.de)
18:39.27 *** join/#brlcad tandoorichick (b64b2de1@gateway/web/freenode/ip.182.75.45.225)
19:47.29 *** join/#brlcad merzo (~merzo@80-118-132-95.pool.ukrtel.net)
19:47.43 Notify 03BRL-CAD:starseeker * 68743 brlcad/trunk/src/librt/primitives/bot/g_bot_include.c: Revert commits 61337 and r61598. The former broke some BoT raytracing situations, and the latter is causing more subtle issues with an isolated bot region reporting one raytracing result and the same region below another comb reporting a different result.
20:51.29 *** join/#brlcad ickby (~stefan@x5d847777.dyn.telefonica.de)
20:54.48 *** join/#brlcad ickby (~stefan@x5d847777.dyn.telefonica.de)
21:21.53 *** join/#brlcad asad_ (~asad00@host10-2.natpool.mwn.de)
21:58.47 *** join/#brlcad teepee_ (~teepee@unaffiliated/teepee)
22:14.33 *** join/#brlcad merzo (~merzo@80-118-132-95.pool.ukrtel.net)

Generated by irclog2html.pl Modified by Tim Riker to work with infobot.