IRC log for #brlcad on 20110822

02:06.02 *** join/#brlcad nsd_ (~nicholas@c-24-0-153-224.hsd1.pa.comcast.net)
02:38.05 starseeker bhinesley: excellent!
02:47.17 *** join/#brlcad abhi2011 (~chatzilla@ip170-79-211-87.adsl2.static.versatel.nl)
05:11.11 abhi2011 ok I have got objects updating inside mged now using rt_matrix_transform() according to bullet output
10:44.25 *** join/#brlcad archivist (~archivist@host81-149-189-98.in-addr.btopenworld.com)
11:48.08 abhi2011 ok I was wondering how conditional compiling is implemented in the build system
11:48.43 abhi2011 so I have some files which are based on Bullet's libraries, but if Bullet is not installed then the compile will fail
11:49.19 abhi2011 yet if these files are not compiled then a function which is called from libged will not exsist and that too would cause the build to fail
11:50.05 abhi2011 perhaps there is a way to compile a dummy function in a separate file if bullet is not detected , so both the above errors can be avoided ?
11:53.19 kunigami1 abhi2011: you can do something I did for OSL. take a look at Cmakelists.txt at liboptical
11:53.39 abhi2011 kunigami1: thanks I ll take a look
11:59.46 abhi2011 ok so you use a top level cmake flag to enable or disable osl : BRLCAD-ENABLE_OSL
12:00.13 *** join/#brlcad d_rossberg (~rossberg@BZ.BZFLAG.BZ)
12:57.10 starseeker IF(BULLET_FOUND) could be my first guess
13:07.34 *** join/#brlcad Elrohir (~kvirc@p5B149541.dip.t-dialin.net)
13:50.19 kunigami1 abhi2011: by the way, to set the BLCAD-ENABLE_OSL flag there, you can call cmake with -DBRLCAD-ENABLE_OSL=ON
13:54.14 CIA-62 BRL-CAD: 03erikgreenwald * r46310 10/brlcad/trunk/src/libged/simulate.c: #if 0 out some unused code
13:54.48 CIA-62 BRL-CAD: 03erikgreenwald * r46311 10/brlcad/trunk/src/mged/cmd.c: remove unused variable
14:00.21 *** join/#brlcad abhi2011 (~chatzilla@wlan-145-94-185-238.wlan.tudelft.nl)
14:39.24 ``Erik fwiw, I believe today is "pencils down" for gsoc
14:40.42 ``Erik abhi: awesome, very awesome
14:47.32 abhi2011 yep preparing the cmake logic for commit now :)
15:33.59 CIA-62 BRL-CAD: 03d_rossberg * r46312 10/brlcad/trunk/src/librt/ (bbox.c primitives/rpc/rpc.c):
15:33.59 CIA-62 BRL-CAD: For the Windows build: MSVC is not C99
15:33.59 CIA-62 BRL-CAD: moved variable declarations upwards
15:43.15 CIA-62 BRL-CAD: 03bob1961 * r46313 10/brlcad/trunk/src/tclscripts/archer/ (Archer.tcl ArcherCore.tcl): The rectangle used for selection was no longer being drawn due to a previous modification (i.e. not drawing rectangle if its lwidth is 0). This restores the desired behavior in Archer.
15:44.55 plaes congrats on the new logo
16:40.40 *** join/#brlcad DarkCalf (DC@173.231.40.98)
19:01.35 *** join/#brlcad abhi2011 (~chatzilla@ip170-79-211-87.adsl2.static.versatel.nl)
19:36.45 brlcad starseeker: for submodels, each callback is basically a mini program in itself meaning they have to open the subdatabase files (like rt and company) to do their processing
19:36.58 brlcad responding to backlog so comments may be OBE
19:45.27 brlcad abhi2011: there should be no reason to prefer static over dynamic libraries when linking bullet (and you shouldn't be adding /usr/local/* to the default link/search paths (e.g., LINK_DIRECTORIES)) .. that's something to be specified during cmake
19:46.07 brlcad (i.e. that's a "non-std" location in itself)
19:47.16 brlcad plaes: thx! it is pretty nifty
19:47.40 plaes yup, nice and simple
19:53.04 brlcad kunigami1: you can't export variables to a parent context so you'd have to wrap that in a script
19:53.53 plaes are these images here created with brlcad: http://ronja.twibright.com/3d/ ?
19:54.07 brlcad abhi2011: you can't just mark a variable as 'const' and expect it to work -- that's why I said you'd have to make a copy. if you're calling a non-const function but need the object to remain unmodified, you have to make your own copy of that object beforehand
19:54.12 brlcad plaes: yes
19:55.36 plaes how do I save such images? :)
19:57.04 brlcad what do you mean?
19:57.56 *** join/#brlcad DarkCalf (DC@173.231.40.98)
19:58.03 plaes well, I know that the models are made by brlcad, but how do I save such black-and-white images
19:58.58 brlcad rtedge
19:59.17 plaes \o/
19:59.20 brlcad rt is the usual renderer, but there are a handful of other rt* renderes
19:59.54 brlcad rt and rtedge both work within mged equivalently
20:00.04 brlcad some of the others are external to mged
20:00.14 brlcad all can be run external
20:01.09 plaes lots of cool stuff still hidden in all these programs ;)
20:01.22 brlcad nods
20:04.36 plaes building stuff with primitives is like "simulating" machining.. ;)
20:06.20 plaes first build a part on the computer and then try it out in real life - http://timmu.store20.com/galerii/?galerie=frees
20:17.45 abhi2011 brlcad: ok , yes I understand now
20:19.43 abhi2011 I was checking with the db_functree() function and i saw that it tries to lookup the primitives for a combination in the dbip which I pass to it, which is of course what it should do
20:20.31 abhi2011 and it fails as expected as the dbip does not have the primitive in it , as its the in mem db_i I made in the function
20:22.20 brlcad plaes: that's a pretty nifty old machine there
20:22.39 abhi2011 so its back to square one , which is how to get union tree for the constituent primitives when passed just the rt_db_internal for a region containing those primitives
20:29.20 brlcad abhi2011: that's why I said earlier that in order to call db_functree(), you need to use the unmodified dbi from the original dbip ... not your in-mem copy
20:29.50 brlcad to use the inmem, you'd need to recursively call db_functree() on the original dbi and copy them into the inmem, just so you could look them up again
20:30.02 brlcad basically a big pain and probably unnecessary
20:30.25 brlcad much easier to create a new comb, add your primitive, then have all objects go through the other existing bb routine
20:30.42 abhi2011 brlcad: ok yah that would work, I was trying to find a way to not pass an extra parameter as the idea was to just pass a rt_db_internal
20:31.08 abhi2011 yes so I tried making a comb too
20:31.14 abhi2011 however it needs a tree as well
20:31.27 abhi2011 if you lines 414 to 418 in bbox.c
20:31.32 abhi2011 *if you see
20:31.44 brlcad you don't need an extra parameter
20:32.18 abhi2011 the unmodfiied db_i is globally available then ?
20:32.35 abhi2011 the original db_i i mean
20:33.21 brlcad I think you might be a bit confused by the different approaches being discussed
20:34.22 abhi2011 well there are 2 approaches : either use db_functree() or make a comb :)
20:35.10 abhi2011 since making a comb is easier , lets focus on that then
20:36.14 abhi2011 so the idea was that make a rt_comb_internal with 1 leaf for shapes , for combinations, well they are already a rt_comb_internal
20:36.43 brlcad so far, sounding good
20:36.50 abhi2011 ok :P
20:37.33 abhi2011 so the basics challenge in making a rt_comb_internal out of a shape is : the tree parameter in the rt_comb_internal structure
20:37.50 CIA-62 BRL-CAD: 03bob1961 * r46314 10/brlcad/trunk/src/tclscripts/archer/ArcherCore.tcl: Updated ArcherCore::selectTreePath to make the selected tree item visible.
20:38.10 abhi2011 or rather the tree member
20:38.12 brlcad not a challenge at all erally :)
20:38.38 abhi2011 umm but I would need the tree for the shape right, I cant get that from the rt_db_internal
20:38.56 brlcad you need a tree, yes
20:39.09 brlcad filling in a tree is simple
20:39.34 brlcad if the rt_db_internal is already a comb, you can just access the comb's tree
20:39.50 brlcad if the rt_db_internal is a primitive, you'll make a comb and add that primitive to the comb's tree
20:40.21 abhi2011 so something like combp->tree = intern->tree
20:40.23 brlcad see the comb.c file, for the comb command, shows creating an rt_comb_internal and filling it in
20:40.34 abhi2011 where intern is the rt_db_internal
20:40.41 abhi2011 for the primitive
20:40.53 brlcad that doesn't look or sound right
20:41.16 brlcad intern->tree is not valid
20:41.39 abhi2011 yes rt_db_internal does not have a tree member, so the tree in the rt_db_internal has to be accessed
20:42.01 abhi2011 ok that part should be easy
20:42.11 brlcad IFF intern is a comb, then intern->idb_ptr is an rt_comb_internal
20:42.20 abhi2011 oh! :P
20:42.56 abhi2011 umm no I knew that
20:43.22 abhi2011 IFF intern is a primitive, then where is the tree , will find that out
20:43.29 brlcad so you'd call something like rt_bound_tree(intern->idb_ptr->tree) if it's a comb or rt_bound_tree(my_comb->tree) if it's a primitive
20:43.29 abhi2011 :)
20:43.46 abhi2011 yes I understand that
20:44.03 brlcad you have to make my_comb
20:44.08 abhi2011 yes
20:44.13 brlcad see comb.c :)
20:44.19 abhi2011 yep :)
20:44.32 brlcad you'll need a tiny subset similar to what _ged_combadd() does
20:45.02 brlcad look for the GETSTRUCT lines to see where an rt_comb_internal is allocated
20:45.19 abhi2011 ok
20:46.46 abhi2011 by the way , on a different note, I am curious about the other approach : that is using db_functree(), you said the original db_i need not be passed
20:47.09 abhi2011 so then it can be got using a global variable or a function ?
20:52.24 brlcad no, I think you're misunderstanding something I was saying -- you are passed a db_i to your function -- you can just use it
20:52.32 brlcad you just need to make a copy of it if you're going to pass it to some other non-const function
20:54.55 abhi2011 well , the function is like this : int rt_bound_internal(struct rt_db_internal *ip, point_t rpp_min, point_t rpp_max), so there is no db_i passed
20:55.53 brlcad sorry, I was using "db_i" to mean db_internal
20:56.21 brlcad not to be confused with a database instance db_i
20:56.24 abhi2011 oh ok , I though you meant struct db_i
20:56.28 abhi2011 yah i get it :)
20:57.35 brlcad you only needed a db_i to call rt_dirbuild() iirc, so that primitive bounding boxes get calculated
20:58.11 abhi2011 yes, this db_i however was constructed from the original .g database file
20:58.20 abhi2011 so it had all the primitives
20:58.21 brlcad that approach is still fine, it's just combs that are even simpler with rt_bound_tree(ip->idb_ptr->tree)
20:58.41 abhi2011 yes
20:58.46 abhi2011 <PROTECTED>
20:59.00 abhi2011 meanwhile, I got bullet running in mged
20:59.04 abhi2011 and the cmake logic done
20:59.08 brlcad outstanding
20:59.33 abhi2011 about to commit that : had some changes to top level cmake file , hope starseeker is standing by :P
20:59.35 brlcad sounds like more work is needed on the cmake logic, but shouldn't be too difficult
20:59.48 brlcad what's the diff look like?
21:00.05 abhi2011 I ll pastebin it 1 sec
21:01.19 abhi2011 basically added logic to compile a dummy simulate.c file that does nto bullet headers, if bullet is absent
21:01.46 abhi2011 in the top level there is logic to find the bullet library and link /usr/local/lib
21:03.10 brlcad presuming you saw my earlier comment, assuming /usr/local/lib is no good
21:04.04 abhi2011 oh ok, I think I missed that
21:04.31 abhi2011 reading now :)
21:04.40 brlcad I mean, /usr/local is probalby the only "non-default" system locations that could be added, but adding it should be systematic for include headers, libs, and bins
21:05.11 brlcad and it still shouldn't be subdir aware like /usr/local/lib/bullet/.
21:06.03 brlcad libs not in "system" paths should be declared to cmake or handled by some Find*.cmake routines
21:07.46 abhi2011 ok, I would have thought that /usr/local/lib would be searched by default by cmake
21:07.57 abhi2011 so I would not need to specify it
21:08.18 abhi2011 well I am using the stock FindBullet.cmake module
21:09.09 abhi2011 its installed by cmake, and it finds and sets the ${BULLET_INCLUDE_DIR}, ${BULLET_LIBRARIES} correctly
21:09.44 abhi2011 but its not setting the ${BULLET_LIBRARY_DIR} variable, which is what I would link to , to keep things standard
21:10.35 abhi2011 here is the top level CMakeLists.txt diff : http://bin.cakephp.org/view/1810550039
21:10.46 abhi2011 will try to get rid of LINK_DIRECTORIES("/usr/local/lib")
21:13.17 abhi2011 this is the libged/CMakeLists.txt file that also required changes : http://bin.cakephp.org/view/860235467
21:16.44 abhi2011 ok , so I am thinking maybe I can remove the LINK_DIRECTORIES("/usr/local/lib") line in the top level CMakeLists.txt file
21:17.09 abhi2011 as long as a user does not enable bullet , the rest of the build will be fine
21:17.27 abhi2011 if he does enable bullet, then there will be a linking error
21:17.53 abhi2011 so the exact location where the user has installed the libs can be specified using a cmake command line flag
21:18.20 abhi2011 that would eliminate any hardcoded library paths
21:21.55 abhi2011 of course that begs the question as to why ${BULLET_LIBRARY_DIR} is not being set by the stock FindBullet.cmake module , its probably not looking at the right place
21:26.28 brlcad so several comments
21:26.50 brlcad sure, searching /usr/local/lib might be expected .. but that has nothing to do with bullet and shouldn't be part of your patch/commit
21:27.12 brlcad certainly shouldn't be specific to an if(BRLCAD-ENABLE_BULLET) section
21:27.58 brlcad which brings up my second point, and enable/disable toggle for that seems unnecessary -- it should test for bullet and, if found, use it. otherwise, the command implementation is disabled at compile-time
21:30.08 abhi2011 brlcad: ok I understand
21:30.26 brlcad abhi2011: you also do not need simulatedummy.c -- that should be logic contained within the simulate.c file (#ifdef) OR put it all in a subdir with it's own CMakeLists.txt file
21:30.45 brlcad probably should put it all in a subdir anyways just because you have multiple implementation files
21:31.13 abhi2011 ok , yes that will be easier
21:32.25 abhi2011 yes I thought about the #ifdef , but I havent found a compile time symbol that is defined if bullet was found
21:33.38 abhi2011 ok, I think there will be some symbol which will be defined if the bullet headers are detected, will go through the headers
21:33.48 brlcad if one is not defined, you can define one
21:33.59 brlcad but make sure one isn't already defined
21:34.04 abhi2011 yes, but bullet is detected by cmake
21:34.16 brlcad yes, so? :)
21:34.20 abhi2011 i cant define a symbol to be used in a c file , in the cmake logic
21:34.26 brlcad sure you can
21:34.29 abhi2011 umm...but as usual i am off mark :P
21:34.37 abhi2011 ok thats totally cool :)
21:34.56 abhi2011 ok will find out about it
21:35.15 brlcad see include/brlcad_config.h in your build directory for a list of symbols already being defined during cmake
21:35.26 abhi2011 ok
22:02.07 *** join/#brlcad abhi2011 (~chatzilla@ip170-79-211-87.adsl2.static.versatel.nl)
22:15.15 *** join/#brlcad kunigami (~kunigami@201.53.206.27)
23:00.39 *** join/#brlcad abhi2011 (~chatzilla@ip170-79-211-87.adsl2.static.versatel.nl)
23:28.47 CIA-62 BRL-CAD: 03brlcad * r46315 10/brlcad/trunk/src/libged/edit.c: quellage, may be unitialized

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