IRC log for #brlcad on 20140202

07:55.46 *** join/#brlcad archivist (~archivist@host81-149-189-98.in-addr.btopenworld.com)
09:14.19 *** join/#brlcad Anaphaxeton (~george@unaffiliated/anaphaxeton)
10:59.03 *** join/#brlcad chick (~chick@195.24.220.16)
11:16.55 *** join/#brlcad chick (~chick@195.24.220.16)
13:38.18 brlcad ries: a variety of ways, heavily analytic being the dominant
14:04.58 *** join/#brlcad chick (~chick@195.24.220.16)
14:06.34 Notify 03BRL-CAD:tbrowder2 * 59641 brlcad/trunk/src/libbu/bitv.c: correct comments; tweak formatting
14:10.14 Notify 03BRL-CAD:tbrowder2 * 59642 brlcad/trunk/src/libbu/bitv.c: bu_binary_to_bitv is just a specialized case of bu_binary_to_bitv2
14:52.07 Notify 03BRL-CAD:tbrowder2 * 59643 brlcad/trunk/src/libbu/bitv.c: beef up error checking; use same var names for similar routines
15:00.20 Notify 03BRL-CAD:tbrowder2 * 59644 brlcad/trunk/src/libbu/bitv.c: use a literal constant to clarify use in bit fiddling
15:28.47 *** join/#brlcad kanzure (~kanzure@131.252.130.248)
15:33.19 Notify 03BRL-CAD:tbrowder2 * 59645 (brlcad/trunk/src/libbu/tests/bitv-tests.txt brlcad/trunk/src/libbu/tests/bu_bitv.c and 2 others): bitv-tests.txtbu_bitv.c+ incorporate all bitv tests into bu_bitv.c+ change test input accordinglytest_internals.hbu_vls.c+ changing PASS/FAIL to CTEST_PASS/CTEST_FAILbu_bitv_and.cbu_bitv_or.cbu_bitv_shift.cbu_bitv_to_hex.cbu_bitv_vls.cbu_hex_to_bitv.c+ removed since their tests are now
15:33.21 Notify incorporated into bu_bitv.c
15:36.31 Notify 03BRL-CAD:tbrowder2 * 59646 brlcad/trunk/src/libbu/tests/bitv-tests.txt: add comment about efficacy of hex_to_bitv tests
16:43.13 *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14)
16:45.08 *** join/#brlcad chick (~chick@195.24.220.16)
18:52.56 *** join/#brlcad merzo (~merzo@51-132-132-95.pool.ukrtel.net)
19:01.47 *** join/#brlcad Anaphaxeton (~george@unaffiliated/anaphaxeton)
19:32.00 *** join/#brlcad infobot (~infobot@rikers.org)
19:32.00 *** topic/#brlcad is BRL-CAD || http://brlcad.org || logs: http://ibot.rikers.org/%23brlcad/ || Ask us about Google Doc Sprint 2013 || GCI has ended. Stay tunned for announcement of Grand Prize Winners.
20:10.44 *** join/#brlcad chick (~chick@195.24.220.16)
20:17.52 *** join/#brlcad ncsaba__ (~ncsaba@p4FF7338C.dip0.t-ipconnect.de)
20:26.23 ncsaba__ hi all, anybody around who knows how to write using libwdb a combination
20:26.23 gcibot ncsaba__, hey!
20:27.15 ncsaba__ sorry, enter hit too early - a combination which has parenthesis to override the default precedence of +,-,u ?
20:27.40 ncsaba__ I just can't figure it out
20:28.31 *** join/#brlcad chick (~chick@195.24.220.16)
20:49.36 kanzure ncsaba__: wasn't there a comb command?
20:50.20 ncsaba__ kanzure: yes, there is one, but I can't figure out from it's parameters how to group the elements (if it is possible at all)
20:51.15 ncsaba__ currently in the python code I pass a linked list of elements to be combined, but I would like to group them for overriding the precedence of the operators
20:51.34 ncsaba__ that is definitely possible e.g. via mged's "c" command
20:52.11 ncsaba__ I'm still reading code, I will surely figure it out sooner or later, but if there's a shortcut I would be glad to take it :-)
21:00.09 ncsaba__ kanzure: BTW, what do you think about using numpy as vmath replacement in python ?
21:00.46 kanzure i like numpy/scipy my only worry is that it's a large dependency
21:01.04 kanzure perhaps it would be nice if it is an optional dependency
21:01.16 kanzure but if it must be a required dependency then i wouldn't have a fit anyway :)
21:06.06 ncsaba__ hmm
21:07.04 ncsaba__ well the high level python code could go in a separate package perhaps, so people can code directly to ctypes if they wanted to without the numpy dependency
21:07.41 kanzure shrug, brlcad is a large dependency too, and numpy isn't really a bad thing to have around
21:08.19 ncsaba__ but if you want to do any coding/calculation using vectors in python, then numpy is almost surely the better choice
21:08.33 kanzure yeah, i say let's put numpy in
21:08.38 kanzure and then we can remove it later if it's problematic.. i doubt it will be.
21:08.45 ncsaba__ ok, cool
21:09.56 ncsaba__ thing is that I'm not necessarily after having the best code around, but to script my geometry models as fast as possible :-)
21:10.36 ncsaba__ currently I have some TCL code which does the job, but I can't read it myself after 2 days
21:11.13 ncsaba__ I translated part of it to python using BRL-CAD, and it is definitely a huge improvement
21:11.30 ncsaba__ I mean python-brlcad
21:11.36 kanzure yeah, simple scriptable geometry is really hugely important
21:11.40 kanzure openscad ain't got nothing on this :)
21:12.47 ncsaba__ but I got stuck on this operator precedence/grouping issue, I have a few fairly complex combinations which won't work with the current code
21:13.26 ncsaba__ I guess I will be forced finally to work on the internal representation of a combination and use librt instead of libwdb
21:13.56 ncsaba__ for now I avoided that to have fast results
21:14.47 ncsaba__ the internal representation is for sure more complex to work with than simply providing some primitive parameters and have the geometry created that way
21:16.26 ncsaba__ in the long term it is necessary to wrap the primitives in python objects, but for now it was faster to just pass numbers to libwdb
21:17.43 ncsaba__ do you have any experience writing C code to create a combination/region ?
21:18.54 ncsaba__ or perhaps a hint where I could find example code creating more complex combinations than ones with 2 objects unioned/intersected/extracted ?
22:10.47 ncsaba__ ok, I got to the conclusion that it is not possible to do the grouping via libwdb's mk_comb
22:13.39 brlcad ncsaba__: GIFT is an old geometry interchange format that predates BRL-CAD
22:14.02 brlcad basically an ancestor representation format that included definitions of standard fields which were adopted
22:14.17 brlcad you can otherwise ignore that in names (we'll eventually remove them)
22:14.18 ncsaba__ brlcad: Hi, thanks for the info !
22:14.30 brlcad hi :)
22:14.57 brlcad so I'm looking into ways to make binding to brl-cad not such a huge dependency
22:15.21 brlcad if you have thoughts on what would work well for you, I'd appreciate the feedback
22:15.52 ncsaba__ well it's a lot of code to read through, that's a problem indeed
22:15.57 brlcad structurally, the issue is we have about 7 libraries "underneath" libwdb and librt
22:16.33 brlcad we could make the "core" a separate download or installable module
22:16.50 ncsaba__ the size of the download is not the problem, at least not for me
22:16.58 brlcad having to read through a lot of code is being addressed by organizing the headers
22:17.03 brlcad so you don't have to go rummaging around src/
22:17.13 brlcad you'd just read the docs and decls in the include/ hierarchy
22:17.38 brlcad what about a separate of libraries from applications?
22:17.44 brlcad s/separate/separation/
22:17.48 ncsaba__ on what criteria ?
22:18.02 brlcad yours ;)
22:18.03 ncsaba__ the problem is that you don't know what to separate until somebody wants to use it
22:18.21 brlcad well that's why I said libs vs non-libs
22:18.24 ncsaba__ well for starters libwdb is perfect :-)
22:18.40 brlcad wdb is almost our smallest lib
22:18.46 ncsaba__ except it has a few edge cases
22:18.54 brlcad I fixed the bug you found, thanks
22:18.54 ncsaba__ yes, that's why I started at it :-)
22:19.02 ncsaba__ which bug ?
22:19.35 brlcad arbn releasing the caller's memorg
22:19.37 brlcad memory
22:19.54 ncsaba__ aha, so it will not do it anymore ?
22:20.12 brlcad it will leave the caller's memory alone (it makes a copy)
22:20.18 ncsaba__ then I will also need to get the extra allocation out of the python wrapper :-)
22:20.42 brlcad also makes it possible to use stack-allocated memory
22:20.51 ncsaba__ ok, sounds good
22:21.09 brlcad if you have a list of issues like that, they can be easily fixed
22:21.46 ncsaba__ if you're around, do you have any idea if libwdb's mk_comb can create combinations where the operations are grouped like in a parenthesized "c" command in libged ?
22:21.50 ncsaba__ I mean mged
22:22.38 ncsaba__ I have a few complex combinations where I want to extract the result of other diffs without extra intermediary combinations
22:23.12 ncsaba__ I can always do it with intermediary results, but there's no point if I don't actually need them and poses a problem in naming them...
22:23.57 ncsaba__ the mk_comb function accepts a list of combination members, whereas I need to specify a tree I guess
22:26.35 ncsaba__ I got to the conclusion it's likely only possible via wdb_put_internal or wdb_export
22:27.30 ncsaba__ meaning I will need to create the internal representation, after I figure out how to build the combination's tree :-)
22:29.04 brlcad ncsaba__: if you can create it with parentheses, you can create it with one mk_comb call
22:29.25 brlcad that expands into a single-declaration stack form without need for intermediates
22:29.28 ncsaba__ hmm, I'm reading and searching for 2-3 days by now, and couldn't figure it out
22:29.42 brlcad i'll see if I can work up an example
22:30.08 ncsaba__ example: a - (b - c)
22:33.02 ncsaba__ anyway, I guess I will go for interfacing with librt and allow read/write/modify of geometry files
22:35.32 ncsaba__ then after that works too, I wonder how hard would it be to extract all TCL dependencies and invert the control, to have the shell call in brlcad, then python can do that the same as TCL ?
22:36.11 ncsaba__ I haven't checked extensively, but is it possible that the TK interface is just as well usable from python ?
22:36.24 ncsaba__ so a kind of mged but with python instead of TCL
22:37.38 ncsaba__ I have to say I don't use the UI that much, and TCL is terrible compared to python for any script which needs to be readable after a week
22:39.15 ncsaba__ so in terms of brl-cad internal work, I would go for extracting the dependencies on TCL in some "shell" library which can be interfaced from other scripting shells too
22:39.21 kanzure ncsaba__: yes i wrote mk_comb code in examples/ in python-brlcad btw, take a look there
22:40.59 kanzure brlcad can easily have a python shell, but it's a tough choice about how to do the integration (embed the python interpreter? etc.)
22:41.23 ncsaba__ yes, but that's just plain union, that works already fine
22:41.47 ncsaba__ well I would go for interfacing via an API
22:41.49 ncsaba__ no embedding
22:42.30 ncsaba__ If TCL would not be embedded, it would be much easier now to interface from python too
22:44.57 ncsaba__ in fact if it would be possible, I would like to only interface to libged and to the display manager (not sure if it is called like that), that would allow to have a python mged with the least effort
22:45.43 ncsaba__ from brief code reading it seems at least theoretically possible to reuse almost the whole infrastructure, if the TCL dependencies are separated
22:46.15 ncsaba__ but I might be mistaken, there's lots of code there too
22:47.22 ncsaba__ kanzure: there are some examples with '-' indeed, but how would you code a combination which has this: shape1 - (shape2 - shape3) ?
22:48.53 ncsaba__ that's my biggest problem case, but for others where I used parenthesis I'm also not very sure how to get it in a flat list...
22:49.05 kanzure i haven't done that yet, and also i don't have an answer
22:49.25 ncsaba__ well, I just guess it is not possible with mk_comb
22:49.47 ncsaba__ will need to read more code to be sure
22:50.41 kanzure yeah, i agree that an api is preferable, although that means that brlcad would have to bundle python-brlcad if it was to distribute a python interface or something
22:50.48 kanzure or, maybe it would just mean a less monolithic release
22:51.03 ncsaba__ less monolithic, that's my vote
22:51.04 kanzure e.g. a release for core components, and then a release for gui components that are compatible with (at the very least) the recent core library release
22:51.43 ncsaba__ python-brlcad can surely be backwards compatible to all known releases, python is fairly flexible to allow that
22:53.39 ncsaba__ I'm pretty sure the TCL shell would also profit from a well defined shell interface
22:54.58 ncsaba__ if nothing else, in the process of implementing a python shell, the interface will get better documented ;-)
22:55.20 ncsaba__ some of mged's commands really need some more documentation
22:55.47 ncsaba__ and if I touch any of that, first thing will be to document it
22:58.04 ncsaba__ in fact I think when I start wrapping primitives in python, I will add code to display all parameters visually and write some code to display all primitives annotated with parameters
22:58.46 ncsaba__ so whoever wants to see what parameters a primitive takes, just run and check
22:59.09 ncsaba__ no need to print it, if you can check it visually online
22:59.17 ncsaba__ that would also be always up to date
23:00.13 ncsaba__ that's also one of the problems of BRL-CAD, it changes rapidly and documentation get's out-dated
23:00.27 ncsaba__ and it's so big that it is almost impossible to keep it up to date
23:01.21 ncsaba__ so I would say make it possible to get the same documentation on-line as you have embedded in the code, and make it mandatory to document code very well
23:03.48 ncsaba__ OK, so instead of lots of talking, I will go now to sleep (late here) and continue tomorrow to work on the combination saving, then next on open/modify/write cycle of internal structures from python
23:04.09 ncsaba__ once that's ready, we can discuss again what comes next
23:04.39 ncsaba__ see you guys :-)
23:39.08 kanzure i am glad he is around

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