IRC log for #brlcad on 20140808

01:01.04 *** join/#brlcad Zhao_Anqing (clouddrift@222.205.19.237)
01:17.40 Notify 03BRL-CAD:zhaoanqing * 62036 NIL: create a new dictionary for NMG codes alone.
01:25.01 Notify 03BRL-CAD:zhaoanqing * 62037 (brlcad/branches/nmgreorg/src/librt/CMakeLists.txt brlcad/branches/nmgreorg/src/librt/bbox.c and 8 others): remove some files from librt. They will be added into libnmg.
01:26.24 Notify 03BRL-CAD:zhaoanqing * 62038 brlcad/branches/nmgreorg/src/CMakeLists.txt: update CMakeLists.txt in src to config for new-created libnmg.
01:51.17 Notify 03BRL-CAD:zhaoanqing * 62039 (brlcad/branches/nmgreorg/src/libnmg/CMakeLists.txt =================================================================== and 119 others): move files from librt into libnmg.
01:57.02 Notify 03BRL-CAD:zhaoanqing * 62040 (brlcad/branches/nmgreorg/src/libnmg/primitives/bspline/nurb_basis.c =================================================================== and 117 others): move nmg/bspline parts from librt into libnmg.
01:58.40 Notify 03BRL-CAD:zhaoanqing * 62041 brlcad/branches/nmgreorg/include/raytrace.h: update raytrace.h to fit the movement from librt to libnmg.
03:12.56 Notify 03BRL-CAD Wiki:Inderpreet * 7650 /wiki/User:Inderpreet/GSoC14/logs: /* Week 12 */
04:06.59 *** join/#brlcad Zhao_Anqing (~clouddrif@183.157.160.15)
05:00.43 Notify 03BRL-CAD:zhaoanqing * 62042 (brlcad/branches/nmgreorg/include/raytrace.h brlcad/branches/nmgreorg/src/librt/comb/comb.c): remove some tree/rt_comb functions which are not used.
06:21.59 *** join/#brlcad devinder (~chatzilla@122.173.165.174)
06:22.38 *** join/#brlcad devinder (~chatzilla@122.173.165.174)
06:53.19 *** join/#brlcad konrado (~konrado@195.24.209.22)
07:12.20 *** join/#brlcad pandrei (~pandrei@86.121.194.74)
07:19.32 *** join/#brlcad mihaineacsu (~mihaineac@92.85.29.79)
09:23.08 *** join/#brlcad teepee- (bc5c2133@gateway/web/freenode/ip.188.92.33.51)
10:24.00 *** join/#brlcad teepee- (bc5c2133@gateway/web/freenode/ip.188.92.33.51)
10:30.11 *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14)
10:51.39 *** join/#brlcad zxq9 (~ceverett@FL9-125-199-207-150.okn.mesh.ad.jp)
11:21.30 *** join/#brlcad clock (~clock@77-58-143-135.dclient.hispeed.ch)
11:43.53 *** join/#brlcad teepee- (bc5c2133@gateway/web/freenode/ip.188.92.33.51)
12:13.00 *** join/#brlcad vladbogo (~vlad@86.121.97.131)
12:13.53 *** join/#brlcad teepee- (bc5c2133@gateway/web/freenode/ip.188.92.33.51)
12:30.30 ries any mentors here going to GSoC?
12:45.32 Notify 03BRL-CAD:vladbogo * 62043 brlcad/trunk/src/libfb/if_qt.cpp: Implemented the qt_read, qt_readrect and qt_writerect functions.
12:54.31 *** join/#brlcad archivist (~archivist@host81-149-189-98.in-addr.btopenworld.com)
13:09.28 Notify 03BRL-CAD:vladbogo * 62044 brlcad/trunk/src/libfb/if_qt.cpp: Handle mouse events
13:19.15 *** join/#brlcad vladbogo (~vlad@86.121.97.131)
13:25.58 Notify 03BRL-CAD:zhaoanqing * 62045 brlcad/branches/nmgreorg/src/libnmg/primitives/nmg/nmg_plot.c: remove a sentence of test code.
13:50.30 *** join/#brlcad Izakey (~Izakey@195.24.220.16)
13:59.18 *** join/#brlcad konrado (~konrado@195.24.209.21)
13:59.34 *** join/#brlcad teepee (~teepee@gateway/tor-sasl/teepee)
14:16.15 *** join/#brlcad clock (~clock@77-58-143-135.dclient.hispeed.ch)
14:30.07 *** join/#brlcad teepee (~teepee@gateway/tor-sasl/teepee)
14:39.48 tofu_ ries: going
14:40.03 brlcad along with three others for brl-cad
14:40.05 ries brlcad: Hey Sean
14:40.21 ries brlcad: it would be nice to meet
14:43.22 brlcad absolutely, it'll be kind of hard to miss each other actually :)
14:44.26 ries sounds like a date?
14:45.08 brlcad sure
14:45.42 ries great.. I will confirm to GSoC that I am going
14:46.17 brlcad this year is going to be very different from past years, so it'll be interesting
14:50.02 ries brlcad: I wouldn’t know.. but I would be very intersted to see some faces behind the names
14:50.13 ries meet some smart people...
14:55.46 *** join/#brlcad Zhao_Anqing (~clouddrif@183.157.160.9)
15:03.27 *** join/#brlcad clock (~clock@77-58-143-135.dclient.hispeed.ch)
15:20.26 Notify 03BRL-CAD:ejno * 62046 brlcad/trunk/src/conv/3dm/conv3dm-g.cpp: use ONX_Model::WireframeColor() rather than looking up colors
15:33.57 brlcad ries: it's a really interesting event, one of my favorite I look forward to every year
15:35.19 brlcad you do get to meet lots of interesting people across a huge spectrum of software development, but all open source proponents
15:35.34 brlcad just about every major project represented in some form, often with the leads of those projects there
15:37.18 Notify 03BRL-CAD:ejno * 62047 brlcad/trunk/src/libgcv/bot_solidity.h: use __BEGIN_DECLS/__END_DECLS in bot_solidity.h
15:48.11 Notify 03BRL-CAD:starseeker * 62048 (brlcad/branches/framebuffer-experiment/include/fb.h brlcad/branches/framebuffer-experiment/src/libdm/dm_obj.c and 5 others): do a bit of refactoring, start thinking about interface to replace the open_existing setup...
15:53.05 Notify 03BRL-CAD:starseeker * 62049 (brlcad/branches/framebuffer-experiment/include/fb.h brlcad/branches/framebuffer-experiment/src/libdm/dm_obj.c and 5 others): Whoops, broke something - revert
16:00.07 ries brlcad: great! We are working here at home to make it happen
16:02.50 Notify 03BRL-CAD:carlmoore * 62050 (brlcad/trunk/doc/docbook/system/man1/en/pixtile.xml brlcad/trunk/src/util/pixtile.c): remove -h highresolution in pixtile; implement -h and -? for help; touch up the man page (and remove -h usage from it)
16:04.30 brlcad starseeker: a struct containing a magic number and a void* should work for open_existing
16:04.54 Notify 03BRL-CAD:starseeker * 62051 brlcad/branches/framebuffer-experiment/src/libfb/fb_generic.c: Consolidate the lists - needed to offset to account for the /dev/ in the if_name for string comparison.
16:05.05 brlcad the implementation can validate that the right type of data was passed with the magic number, cast it from void to a proper type to work with it
16:05.58 brlcad is excited by the libfb cleanup
16:08.47 starseeker brlcad: so we just have separate definitions of the container structs that get fed to the void* in libdm and libfb?
16:09.18 starseeker keep them in sync so everthing works, but internal to each lib and not part of the public API?
16:09.56 brlcad sounds reasonable for something low level like this
16:10.00 brlcad would suggest on the fb vs. fb_s to make fb be the public instead of fb_s, and the former fbio/fb struct becoming something obvious like fb_impl or fb_private
16:10.15 starseeker nods
16:10.18 brlcad could even make libdm depend on libfb (but not the other way around)
16:10.25 brlcad so it could use the same struct
16:10.38 brlcad if dm needs to know about fb's then that make sense
16:10.39 starseeker you mean allow libdm to use libfb's private API?
16:10.56 brlcad no, this would be public fb api
16:11.17 starseeker is trying not to have any platform specific details in either public API (that's the goal, anyway...)
16:11.26 brlcad right
16:11.32 brlcad that's the point of the magic+void*
16:11.52 starseeker right, but the container struct by definition will have platform specific details
16:12.05 brlcad it's a public struct in libfb like struct fb_platform_specific { int32_t magic; void *interface; }
16:12.07 starseeker if it's part of libfb's public API too (so libdm can use the same definition) we're back in the soup
16:12.25 brlcad then open_existing takes a struct fb_platform_specific*
16:12.50 starseeker but the interface has to have the right X11/ogl/whatever voodo, and both libdm and libfb have to know about that voodo
16:13.03 starseeker (internally)
16:13.14 brlcad when X11_open_existing gets that "fpsp", it makes sure fpsp->magic is an X11 magic, casts interface to whatever X11 thingy it needs
16:13.28 brlcad only each interface needs to know about their type
16:13.36 starseeker brlcad: it's not one X11 thing though, as near as I can tell - it's a set
16:14.39 brlcad but that's fine .. the void* can be anything
16:14.56 brlcad the if_* defines what that void*interface is expected to be
16:15.06 brlcad could be a struct with 1000 pointers specific to that interface
16:15.07 starseeker sure, but my point is both libfb and libdm need to know about what's inside the void - that needs to be shared info
16:15.26 starseeker but not expressed explicitly in the libfb API
16:15.41 brlcad bingo
16:16.01 brlcad it's all about hiding the type .. obviously at some point they need to know and have platform specific types to work with
16:16.07 brlcad no way around that :)
16:16.37 brlcad this just makes both api's type-agnostic to any platform-specific detail while letting the front-end application do back-end work for the library
16:17.15 starseeker nods
16:17.34 brlcad so long as the app is creating the context, and not the lib, there's no way around it
16:17.40 brlcad s/the lib/a lib/
16:18.04 starseeker that's what I thought
16:18.22 brlcad but you can entirely hide that type
16:18.25 starseeker so we add the magic number for validation, and the void* hids the messy details for libfb to unpack
16:18.33 brlcad by just making it "data"
16:19.02 starseeker OK, I think I see now
16:19.08 brlcad the app creates a context, turns it into data (casts to void and stashes it in a struct or a struct in a struct)
16:19.23 starseeker and sets the magic so libfb knows what to do
16:19.25 brlcad the app WILL need to know what the fb interface is expecting
16:19.29 brlcad that's the point of the magic number
16:19.47 brlcad if it's not the right magic number, then something is WAY off... :)
16:20.44 starseeker but what it's expecting (the platform specific details) aren't called out in libfb's public API but are internal to each backend, and it's the responsibility of the libdm front-end to check that and handle it
16:20.44 *** join/#brlcad konrado (~konrado@195.24.209.20)
16:21.21 brlcad it's called out in libfb in terms of data, not API
16:22.05 starseeker doesn't quite follow - do (for example) the Display and Window types specific to X11 need to be visible anywhere in fb.h?
16:23.11 starseeker is hoping not, even though that does make "syncing" the libdm and libfb communications expectations more difficult...
16:23.12 brlcad so somewhere, it'll be written .. whether in a text file or some header or some comment that 0x1234aabb means that void* is a struct containing an X11 Display* and Window*
16:23.32 brlcad 0x1234aabb being a magic number
16:23.46 starseeker maybe fb/X11.h, which is included by libdm's dm-X.c but not by fb.h?
16:24.33 brlcad my gut says make it part of the doxygen comment for fb_open_existing() with a list of the currently known mappings
16:24.52 brlcad or whatever function, whereever it ends up
16:25.39 brlcad it's like documenting that printf's first parameter is a format string ... and there's this wierd set of "%" symbols followed by characters that it understands
16:25.49 brlcad so it could even be in a man page
16:26.46 brlcad it only needs to live in one place as documentation, and any time someone changes an interface, they should also change the magic number
16:27.06 starseeker is having an fb/X11.h header that's included locally in libdm's individual back-end implementations not a good approach then? was liking that, since the compiler can still check that the libfb and libdm backends are correct even though the struct definition isn't part of the public fb.h...
16:27.08 brlcad it's not great, but it's really one of only a few ways possible without exposting the type
16:28.42 brlcad that sort of / technically makes it public fb API though
16:28.50 brlcad the issue there is that it exposes the X11 types in the header if you actually declare the struct anywhere besides the front-end or back-end
16:29.17 brlcad by itself, not an issue, but it's not very dissimilar from what we currently do
16:29.28 starseeker brlcad: what if we wrap the header (like how we're talking about doing for the individual bu/bn/etc. headers) so inclusion fails outside of BRL-CAD?
16:29.56 starseeker fb.h wouldn't have it, so someone would have to dive for it specifically
16:30.14 brlcad if it's useful to us, then it'd be just as useful to anyone else wanting to make use of an open_existing interface, no?
16:30.30 brlcad give it a try
16:30.32 starseeker ideally, we'd be the only ones who ever need open_existing
16:31.15 brlcad nah, that's a *really* common operation if you're building an application
16:31.20 starseeker if someone else *does* need open_existing, then they're presumably doing their on "libdm-ish" work
16:31.28 brlcad at least if you work with more than one toolkit
16:31.38 brlcad (e.g., Qt and OGRE) ..
16:32.03 brlcad both have means to get at the context so you can work with it instead of having to go through them for that very reason
16:32.13 brlcad granted, not always a polished interface, lots of caveats
16:32.28 starseeker will do some experimenting - obviously, my goal is to make the openscenegraph framebuffer/display manager integration a bit easier
16:32.47 brlcad fairly certain the known embeddings of libdm in 4-5 other apps use the open_existing interface today
16:32.52 starseeker since I had to understand how all this works anyway, figured I'd start by trying some clean-up
16:33.14 brlcad especially those java apps
16:33.21 starseeker nods
16:34.03 starseeker brlcad: I'm almost dead certain this will break external codes, so should I hold off merging back to trunk until after the 7.26.0 release?
16:34.23 brlcad almost certainly :)
16:34.47 ``Erik yeesh, activity explosion when ya'll should be at lunch O.o :)
16:35.04 brlcad to me, the point is to make the interface-specfic construct "data" and pass it blindly to the library .. where/how the construct is documented almost doesn't matter as long as it's separate from what we'd call public libfb API
16:35.48 starseeker can't wait to see how this goes... merge from framebuffer branch to osg branch, then merge that whole thing into trunk (eventually)
16:35.53 starseeker brlcad: makes sense
16:35.55 brlcad a header would be convenient, but then have to take steps to make sure those are never included
16:36.03 starseeker nods
16:36.06 starseeker ``Erik: howdy stranger
16:36.12 starseeker how's life?
16:36.28 brlcad "the safe way" is to just put it in a comment and let apps "fill out their format string correctly"
16:37.01 ``Erik ticking along O.o with the api, keep ffi in the back of your mind, lcd may not feel great, but ffi likes it
16:37.26 starseeker lcd?
16:37.32 ``Erik lowest common denominator
16:37.34 starseeker ah
16:38.17 ``Erik note that every time something like c++ creeps into the api, ffi gets at least an order of mangitude uglier/trickier :)
16:38.37 starseeker nods - shouldn't be any C++ at the fb.h/dm.h level
16:39.18 ``Erik it's an example, take it as such :)
16:39.33 starseeker ``Erik: do void pointers to data also cause trouble?
16:39.47 starseeker doesn't see a way around that here
16:40.14 starseeker is there an ffi routine in swig that takes a text description of how to unpack a C struct from a void?
16:40.25 starseeker or parse a doxygen comment even?
16:40.27 ``Erik if the api ever views the void* as anything other than a magic box, yes... if it's never cast to anything, no
16:40.53 ``Erik hand waves some over that statement to reduce his queasiness
16:41.16 starseeker that should only come up if someone wants to replace either the libfb or the libdm component with their own foreign language replacement
16:41.24 starseeker speaking of feeling queasy
16:41.29 ``Erik swig 2 is actually pretty good at dealing with basic c++
16:42.41 ``Erik (opennurbs is not basic c++, and has been an issue recently here)
16:43.45 starseeker ``Erik: the solution is obvious - re-code openNURBS as a C library ;-)
16:44.05 starseeker even have the libnurbs sourceforge project page
16:44.38 ``Erik heh, obviously :D or wrap it in a C interface, as that's still the lingua franca of computer interfaces
16:45.35 ``Erik <-- kinda thought libbrep was working towards being a C wrapper for opennurbs
16:46.19 starseeker might evolve that way - right now, it's the holding container for all the NURBS bits we need to write that openNURBS yanked out or otherwise doesn't provide
16:47.59 Notify 03BRL-CAD:carlmoore * 62052 (brlcad/trunk/doc/docbook/system/man1/en/pixuntile.xml brlcad/trunk/src/util/pixuntile.c): make similar changes for pixuntile program & man page; also, change 'chucks' to 'chunks'
16:48.03 ``Erik I rememeber the good old days when ya just had triangles... sometimes tristrips and trifans...
16:49.16 starseeker heh
16:49.18 ``Erik I also remember a thing called lunch, might be worth scheduling in the next couple of weeks
16:49.24 starseeker agrees
16:49.29 ``Erik cuz ya'll don't seem to be doing it anymore
16:53.25 starseeker heeds ``Erik's prodding and goes to hunt down lunch
16:57.53 ``Erik not today, of course... I have taters baking in the oven :D
16:58.29 ``Erik or rather, no with me today
17:07.02 Notify 03BRL-CAD:starseeker * 62053 brlcad/branches/framebuffer-experiment/include/fb.h: Stub in Sean's idea of an fb_platform_specific container with magic number.
17:15.29 brlcad ``Erik: possibly/probably another offsite week of the 18th
17:27.02 Notify 03BRL-CAD:zhaoanqing * 62054 (brlcad/branches/nmgreorg/include/raytrace.h brlcad/branches/nmgreorg/src/CMakeLists.txt and 11 others): reverting changes back to 62036 in order to preserve the file histories
19:03.56 *** join/#brlcad andrei_ (~IceChat77@188.25.162.94)
19:07.45 *** join/#brlcad konrado (~konrado@195.24.209.22)
19:09.23 konrado brlcad: hello
19:10.54 *** join/#brlcad clock (~clock@77-58-143-135.dclient.hispeed.ch)
19:13.14 *** join/#brlcad konrado_ (~konrado@195.24.209.22)
19:19.40 *** join/#brlcad konrado (~konrado@195.24.209.22)
19:36.12 Notify 03BRL-CAD:carlmoore * 62055 (brlcad/trunk/doc/docbook/system/man1/en/bw3-pix.xml brlcad/trunk/doc/docbook/system/man1/en/pix-bw3.xml): for bw3-pix and pix-bw3, use <command> when the text references the command being described
20:21.34 *** join/#brlcad konrado (~konrado@195.24.209.22)
20:58.22 *** join/#brlcad konrado (~konrado@195.24.209.22)
21:44.38 *** join/#brlcad konrado (~konrado@195.24.209.22)
22:59.45 *** join/#brlcad konrado (~konrado@195.24.209.22)
23:14.49 Notify 03BRL-CAD Wiki:Vladbogolin * 7651 /wiki/User:Vladbogolin/GSoC2014/Logs: /* Week 12 */
23:33.59 *** join/#brlcad ankesh11 (sid8015@gateway/web/irccloud.com/x-lucrjkqshsybwqgn)

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