IRC log for #brlcad on 20140210

03:17.42 *** join/#brlcad ejno_ (~ejno@unaffiliated/kazaik)
03:46.32 Notify 03BRL-CAD:brlcad * 59803 brlcad/trunk/NEWS: credit cezar with a number of the memory leaks he fixed in r54118 as part of fixing clang static analysis defects.
04:01.59 starseeker prods Notify
04:02.11 Notify 03BRL-CAD:starseeker * 59804 (brlcad/trunk/include/raytrace.h brlcad/trunk/src/conv/step/g-step/Trees.cpp and 4 others): And this is why the search API was still flagged as WIP. Consolidate plan testing, flat vs. tree-aware searching, single dp vs dp array inputs, and full_path vs. unique dp return types into a single db_search function that accepts flags to control its behavior and a db_free_search_tbl function
04:02.14 Notify that can handle either result type. Code reduction and simplification overall - barring some major missing considerations, this is most likely the final form of the C search API. Needs a fair bit of testing, as the change was a bit invasive - particularly when it comes to things like hidden objects.
04:02.21 starseeker ah, there we go
04:02.43 starseeker yawns - time to sleep on it, but that feels like it may well be the right solution
04:35.49 *** join/#brlcad KimK (~Kim__@ip24-255-223-153.ks.ks.cox.net)
04:36.45 *** join/#brlcad _ff (29cac42b@gateway/web/freenode/ip.41.202.196.43)
04:38.16 _ff hello any one there??
04:39.23 _ff hey guys i really need help
04:40.54 brlcad hello _ff
04:40.57 brlcad ~ask
04:40.57 infobot Questions in the channel should be specific, informative, complete, concise, and on-topic. Don't ask if you can ask a question first. Don't ask if a person is there; just ask what you intended to ask them. Better questions more frequently yield better answers. We are all here voluntarily or against our will.
04:42.13 _ff thanks for that!
04:42.35 brlcad sure
04:43.45 _ff i am a newbie in programming and with the skills i've aquired in C i wish to work on a project on brlcad! looking at the ideas proposal i fell on the adding the exec function to the search!
04:44.22 _ff though i have no idea on how to start the project i wish to have some materials wish can help me start the project
04:54.16 *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14)
05:04.24 *** join/#brlcad _ff (29cac42b@gateway/web/freenode/ip.41.202.196.43)
05:07.20 _ff --brlcad-- any proposal ??
05:16.36 *** join/#brlcad _ff (29cac42b@gateway/web/freenode/ip.41.202.196.43)
05:56.27 *** join/#brlcad FOSScookie (~brian@107-200-34-31.lightspeed.tulsok.sbcglobal.net)
06:13.28 *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14)
06:31.15 *** join/#brlcad luca79 (~luca@net-37-117-72-79.cust.vodafonedsl.it)
06:44.45 *** join/#brlcad Anaphaxeton (~george@unaffiliated/anaphaxeton)
08:46.59 *** join/#brlcad luca79 (~luca@net-37-117-72-79.cust.vodafonedsl.it)
08:56.06 *** join/#brlcad merzo (~merzo@user-94-45-58-138-1.skif.com.ua)
09:18.09 *** join/#brlcad archivist (~archivist@host81-149-189-98.in-addr.btopenworld.com)
09:36.40 *** join/#brlcad inspired (c318dc10@gateway/web/freenode/ip.195.24.220.16)
09:38.30 inspired hello! just heard about brl-cad and i wich to know where and how to download the software to install on my pc. operating system-linux
10:12.33 *** join/#brlcad caen23 (~caen23@92.81.213.198)
12:04.40 *** join/#brlcad luca79 (~luca@net-37-117-72-79.cust.vodafonedsl.it)
12:48.20 Notify 03BRL-CAD:tbrowder2 * 59805 (brlcad/trunk/include/bu.h brlcad/trunk/src/libbu/bitv.c): change two functions to return success/failure; change decls accordingly and add explanation in bu.h
12:53.25 *** join/#brlcad caleb (c318dc10@gateway/web/freenode/ip.195.24.220.16)
13:07.08 *** join/#brlcad caen23 (~caen23@92.81.213.198)
13:09.54 *** join/#brlcad KimK (~Kim__@ip24-255-223-153.ks.ks.cox.net)
13:40.34 mpictor Anyone have experience with operator= behaving differently on windows than linux? We removed a pure virtual operator= in STEPcode due to msvc linker errors, and it triggered a regression on Linux.
13:40.56 mpictor https://github.com/stepcode/stepcode/issues/284
13:44.04 *** join/#brlcad gaganjyot (~gagan@124.253.230.99)
13:50.37 gaganjyot hello there,
13:51.02 gaganjyot is librecad participating under BRL-CAD this year for GSoC ?
14:00.33 *** join/#brlcad jasleen (~chatzilla@117.253.230.220)
14:13.08 Notify 03BRL-CAD:starseeker * 59806 brlcad/trunk/NEWS: Keith implemented improvements in handling NURBS surfaces where edges and trims 'wrap around' from one side of the UV domain to the other.
14:20.12 brlcad gaganjyot: that is the intention, though still some details to sort out
14:27.46 Notify 03BRL-CAD:starseeker * 59807 brlcad/trunk/src/conv/step/g-ap214/Add_Tree.cpp: Update search calls in g-ap214
14:30.42 gaganjyot brlcad: thanks :)
14:32.25 *** join/#brlcad gaganjyot (~gagan@124.253.230.99)
14:33.21 Notify 03BRL-CAD:starseeker * 59808 (brlcad/trunk/include/raytrace.h brlcad/trunk/src/conv/step/g-ap214/Add_Tree.cpp brlcad/trunk/src/libged/comb.c): Add a more meaningful label for the default or 0 flag to allow devs to make it more explicit what type of search is being performed.
14:38.12 gaganjyot brlcad: is there any ideas page for gsoc 14 ?
15:12.21 Notify 03BRL-CAD:carlmoore * 59809 (brlcad/trunk/src/libbn/vert_tree.c brlcad/trunk/src/librt/search.c): fix spellings, and adjust (not change) a comment so it more closely resembles a comment which I didn't change
15:18.35 *** join/#brlcad gaganjyot (~gagan@124.253.230.99)
15:43.30 starseeker mpictor: sorry, that one is beyond my experience :-/
16:06.09 ``Erik I have recollection of game developers bitching that linux "just didn't work right" with c++ overloads, a long time ago... my assessment at the time was that windows sucked and windows coders were self-absorbed idiots... these days, I'd recommend a microtest and would assume the spec is ... imperfect and ambiguous?
16:12.24 *** join/#brlcad KimK (~Kim__@ip24-255-223-153.ks.ks.cox.net)
16:23.35 *** join/#brlcad gaganjyot (~gagan@124.253.230.99)
16:27.37 Notify 03BRL-CAD:starseeker * 59810 brlcad/trunk/include/raytrace.h: Actually use rt/defines.h - removes about 10 lines of duplication
16:32.33 Notify 03BRL-CAD:starseeker * 59811 brlcad/trunk/include/dm.h: Set up a similar subdir and header file for dm
16:50.03 Notify 03BRL-CAD:starseeker * 59812 (brlcad/trunk/include/CMakeLists.txt brlcad/trunk/src/libdm/color.c and 24 others): Move the dm-*.h headers into the dm subdirectory.
17:05.30 *** join/#brlcad gaganjyot (~gagan@124.253.230.99)
17:08.42 Notify 03BRL-CAD:starseeker * 59813 (brlcad/trunk/include/CMakeLists.txt brlcad/trunk/include/raytrace.h brlcad/trunk/include/rt/defines.h): Break search header definitions out into rt/search.h
17:14.32 starseeker O.O http://www.opencascade.org/getocc/license/
17:14.48 starseeker Holy cow - OpenCascade went LGPL 2.1!
17:17.32 starseeker Back in December
17:17.53 starseeker Version 6.7.0 (not retro-active to earlier versions)
17:19.59 starseeker wonders how he missed that...
17:25.12 gaganjyot starseeker: LGPL v2.1 with one condition
18:33.19 *** join/#brlcad sod (737c2942@gateway/web/freenode/ip.115.124.41.66)
18:34.43 sod hi all
18:34.43 gcibot sod, hey!
18:35.09 sod i'm new here in brlcad
18:35.23 sod and need some help to start
18:35.55 sod hi all
18:35.56 gcibot sod, hey!
19:20.47 brlcad starseeker: yep, mid-dec
19:22.14 brlcad shame that wasn't 10 years ago or it might have been an interesting consideration for incorporation
19:22.26 brlcad though bsd/mit would have been better
19:27.48 brlcad it does mean we can probably "look" at their code now without too much concern, but I'd stil be disinclined to directly incorporate any of their code
19:28.14 starseeker nods - was thinking more along the lines of using features they have that we don't have implemented yet
19:28.16 brlcad I'd really like to see us move to a more flexible and permissive license
19:28.33 starseeker sort of a "plug in opencascade until we get our version working" sort of approach
19:29.19 brlcad how would that'd be accomplished without incorporating their code, using a system version or something?
19:29.25 starseeker yep
19:29.37 starseeker "if opencascade found, enable goodies"
19:29.39 brlcad would be a digression from src/other
19:29.52 brlcad sort of like X11, but .. not really
19:30.01 starseeker like bullet and adaptagrams
19:30.10 brlcad yeah, better analogy
19:30.26 brlcad what feature would be useful that way?
19:30.51 brlcad step conversion would have been the main thing that came to my mind, and I think our support is probably approaching better if not there already
19:31.25 starseeker first thing that came to my mind was drawing support, i.e. http://freecadweb.org/wiki/index.php?title=File:FreeCAD011.png
19:31.59 starseeker they also have a constraint solving 2D sketcher
19:32.30 brlcad ironically, I think that was one of the things they suggested for a possible gsoc project because it wasn't very good (recollection is vague, could be wrong)
19:32.42 *** join/#brlcad cain_ (c318dc10@gateway/web/freenode/ip.195.24.220.16)
19:35.02 starseeker brlcad: we could try hooking into their boolean support...
19:36.37 brlcad dunno, those both seem like a stretch to me ... we'd end up integrating and it'd either suck (in which case nobody would/should use it and it would have been a waste of time) ... OR ... it works great and we've painted ourselves into a dependency corner for the foreseeable future
19:37.50 brlcad IF it worked great, that'd be even LESS incentive to invest development time and effort, meaning it simply wouldn't happen
19:38.53 brlcad that's very much a lose-lose situation unless we're willing to adopt OC as a dependency (and that seems like a very bad idea to me, but I'd want to do a full cost/benefit analysis)
19:39.08 starseeker it may be worth waiting a bit to see what happens, but this license change is potentially a seismic event for the open source CAD world...
19:39.29 starseeker the old license on opencascade was a blocker to an effective community forming
19:39.48 starseeker without that hangup, things could get interesting
19:40.15 brlcad the company is still not encouraging or supportive to that happening
19:41.02 brlcad this was almost entirely a prlonged delayed response to the problems from those codes (10 years ago!) trying to integrate into debian and other repos, getting declared non-free
19:41.29 brlcad those that wanted to use it already are
19:41.38 brlcad that community is freecad
19:41.52 starseeker the company may not be able to build a community around the code, but FreeCAD is another story, especially in partnership with the OCE crowd
19:41.53 brlcad (there's a couple others in fairness, but they don't interoperate)
19:42.47 starseeker isn't proposing to hop on the bandwagon and abandon our efforts - from some of the comments I've seen, the opencascade code is... difficult to work with
19:43.12 brlcad that's probably an understatement
19:43.14 brlcad I've been talking with several in their community over the past couple weeks
19:43.53 brlcad mentioned my longer term plans to produce a viable stand-alone open source kernel that would replace the likes of acis, granite, parasolid, opencascade, etc
19:44.03 brlcad several were actually rather excited by that notion
19:44.09 starseeker cool :-)
19:45.05 brlcad some of their gsoc hesitation was because OC was simply too complicated for someone to get into in that short amount of time (a summer)
19:46.00 starseeker actually isn't opposed to the notion of "proper" open source competition between BRL-CAD and FreeCAD/opencascade - from a broader perspective, not being totally dependent on one solution is almost invariably a good thing
19:46.29 brlcad I don't mind competition at all, I think it's a good thing that we do things in somewhat different ways
19:46.37 brlcad we address different needs, have different communities
19:46.53 brlcad we can still bridge various collaboration points, like STEPcode or ray tracing
19:47.41 brlcad one of their devs noted that our development activity is 10-20 times theirs
19:48.05 starseeker will be interesting in the longer term to see if BRL-CAD can be slotted in "under" their GUI, which is undeniably snazzier than even Archer (much less MGED)
19:48.34 brlcad we're still pretty much the only de-facto open source CAD in production use that I know of, so having them help expand open source CAD activity is a good thing
19:49.12 starseeker last time I checked they were getting something like 3 times our download rate on sf
19:49.44 brlcad we're not very good at pumping out releases, our interface and usability suck
19:49.56 brlcad using OC doesn't do ANYTHING for that
19:50.12 brlcad so yeah, busy work
19:50.19 starseeker er, correction - 6 times our download rate
19:50.33 brlcad what are they at per month?
19:50.45 brlcad we were around 10k/month when we had consistent releases
19:50.48 starseeker let's see... 13,731 per week...
19:51.10 brlcad good to know
19:51.35 starseeker we're at 2069 per week right now according to the "3d modeling" listing
19:51.50 brlcad so we've gone down a bit, not too suprising given our lack of releases
19:52.01 brlcad every time we release, that number jumps way up
19:52.07 starseeker nods
19:52.21 starseeker I need to quit fiddling with the search API and get back to learning Qt :-P
19:53.25 brlcad we should all quit what we're doing to work on interface, but "that'd be bad" for other reasons... ;)
19:53.43 brlcad I think we'll have a ton of momentum come this summer
19:53.58 brlcad enough infrastructure finally in place to modularize the front-end development
19:54.37 starseeker brlcad: is moving the dm headers to the subdir a problem? I figured it came under the heading of minimally impacting...
19:54.37 brlcad we really need boolean evaluation (what nick's working on) and clean import/export (what you and keith are doing)
19:54.47 brlcad nope, looked good to me
19:55.07 starseeker should probably remove the dm- prefixes, they're pretty redundant now
19:55.17 brlcad those dm-*.h are actually "private" and shouldn't be in include but they are exposed in a few places right now
19:55.31 starseeker mged, tclcad, and a couple utils iirc
19:55.35 brlcad don't, several of those will conflict with system headers
19:55.41 starseeker blegh
19:55.42 starseeker ok
19:55.49 brlcad annoying, I know
19:56.24 brlcad but yeah, I think our first step is to simply categorize all the include/ headers into subdirs
19:56.57 brlcad once we do that, we can focus on the build system and any header file breakups needed, then removing the private ones
19:57.50 brlcad so we'll end up with nothing except common.h, bio.h, bin.h, and conf/ in the include directory (plus one dir per lib)
19:58.37 starseeker ah, so "raytrace.h" would be inside rt/ ? Or were you thinking to modularize what is included at a finer level?
20:00.58 starseeker i.e. no "raytrace.h" at all, just including the necessary pieces?
20:01.45 brlcad both
20:02.08 brlcad there'd all live inside a subdir
20:02.26 brlcad some like raytrace.h would simply #include all of the sub-modules that form the ray tracing API
20:02.36 starseeker nods
20:02.42 starseeker make sense
20:02.44 brlcad lib/lib.h would include everything for lib
20:02.58 starseeker so... raytrace.h -> rt.h?
20:03.11 *** join/#brlcad witness___ (uid10044@gateway/web/irccloud.com/x-pynwrjlokdcycoyt)
20:03.13 brlcad "maybe" .. that's probably the most complicated header of all
20:03.50 starseeker was/is contemplating splitting more pieces out of it a.l.a. rt/search.h
20:03.57 brlcad there's 943 public functions in raytrace.h now
20:04.04 starseeker just for readability it helps
20:04.10 brlcad right, that's the idea
20:04.13 starseeker wines
20:04.16 starseeker winces
20:04.18 starseeker grr
20:04.30 brlcad so imagine separating everything out that groups into some set of sub-functionality
20:04.56 starseeker I take it defines.h is intended to hold all the #define type things, not just the DLL foo?
20:05.07 brlcad basically the lib_group_function() would imply there's a lib/lib.h you could include or a lib/group.h you could include
20:05.22 brlcad no no
20:05.29 brlcad modular per group
20:05.44 starseeker so defines.h was just a stub?
20:06.03 brlcad defines.h is global to the lib
20:06.20 brlcad it ideally would just live in that lib/lib.h file, but every header will need it
20:06.28 brlcad and every header cannot include lib/lib.h ... cyclic dep
20:06.39 starseeker ah, so lib/group.h would include lib/defines.h
20:06.42 brlcad so the common/global aspects get their own header necessarily
20:06.46 brlcad right
20:06.56 brlcad every header would include exactly and only what it needs
20:07.09 brlcad should actually speed up compilation substantially
20:07.12 starseeker sounds good
20:07.58 starseeker brlcad: sorry if I'm "jumping the gun" on that but after one too many times digging db_search out of raytrace.h I figured I might as well go for it...
20:09.46 brlcad no jumping the gun, it's all good
20:09.51 brlcad as you can tell, I'd already started it
20:09.56 brlcad long term low priority
20:10.07 brlcad I peck at it when I can think clearly
20:10.12 brlcad which isn't very often
20:10.20 starseeker heh
20:10.37 brlcad just have to make sure it's cleaner and not a work-in-progress mess, complete every step along the way
20:11.22 starseeker every time I have to think long and hard about an API like search, I always think about doxygen documtation... which leads to headers
20:11.32 *** join/#brlcad zxq9 (~ceverett@FL9-125-199-207-150.okn.mesh.ad.jp)
20:11.38 brlcad there is one issue of managing the includes, whether we want to update all caller codes to lib/whatever.h (particularly third-party codes) or whether we'll rely on brlcad-config or pkg_config to set per-lib include dirs
20:12.22 brlcad won't matter so long as the "lib.h" header is the LAST to move (staying in include/ for now)
20:12.26 starseeker to be honest, that was the primary reason I figured raytrace.h would continue to live in include and the sub-headers would be in rt/
20:12.45 starseeker er, right
20:12.51 brlcad that makes the most sense for now
20:13.32 brlcad just thinking once EVERYTHING is broken out into lib/module.h and other headers, those top-levels will be inconsistent with some established conventions
20:13.50 brlcad but yeah, breakouts first whenever
20:14.53 starseeker sweet. When I get a little time I'll try to make sure the doxygen stuff is handling it correctly
20:16.30 *** join/#brlcad zxq9 (~ceverett@FL9-125-199-207-150.okn.mesh.ad.jp)
20:21.33 *** join/#brlcad zxq9 (~ceverett@FL9-125-199-207-150.okn.mesh.ad.jp)
20:26.22 *** join/#brlcad zxq9 (~ceverett@FL9-125-199-207-150.okn.mesh.ad.jp)
20:34.21 starseeker jots a note to himself to prod the fossil devs and see if libfossil (http://fossil.wanderinghorse.net/repos/libfossil) is still active
20:35.37 starseeker depending on how it's done, that has the potential to be an almost ideal backend for libgvm
20:36.44 Notify 03BRL-CAD:tbrowder2 * 59814 (brlcad/trunk/include/bu.h brlcad/trunk/src/libbu/tests/CMakeLists.txt and 2 others): add new function 'bu_vls_substr'; add tests for it
20:37.52 starseeker brlcad: what do you think about moving libgvm from geomcore into BRL-CAD proper?
20:40.04 brlcad what's in the lib?
20:40.51 starseeker mostly the incantations to split a .g file up into a subversion repo and put it back together again
20:41.04 brlcad ahh
20:41.07 *** join/#brlcad luca79 (~luca@net-37-117-72-79.cust.vodafonedsl.it)
20:41.25 starseeker header (gvm.h) is generic (credit to you for instisting on that)
20:41.47 brlcad C API?
20:41.50 starseeker yep
20:42.54 starseeker brlcad: http://sourceforge.net/p/brlcad/code/HEAD/tree/geomcore/trunk/src/libgvm/
20:52.53 brlcad suppose it's be alright, but not sure I'd see that being anything but a useful distraction right now
20:53.27 brlcad having our progs call that lib directly wasn't ever in the tea leaves
20:54.08 brlcad even mged is supposed to be going through the GS so we can properly manage the notion of a checkout
20:54.38 brlcad if no tool or lib in our checkout calls it, becomes unusal to have there
20:54.41 starseeker OK, just a thought
20:54.53 brlcad sure, it's an interesting thought
20:55.51 brlcad I think I'd just expect some way it to get put to use and I can't think of one right this second except maybe some low-level command-line interface
20:56.29 starseeker nods - yeah, I think I've got some basic commands for working with .g files and that's about it
20:56.35 starseeker plus needs svn libs
20:57.13 brlcad yeah
20:57.34 starseeker libfossil would be *awesome* but it doesn't look like it has much momentum
20:58.43 brlcad is having trouble getting his head around the 500 public functions in the nmg API
20:58.57 starseeker isn't surprised
20:59.05 brlcad at a glance, more than half of those simply shouldn't be public
20:59.28 brlcad and it's just lazy declaration
20:59.39 brlcad wonder how many are actually directly used
20:59.48 starseeker that sounds like a rather massive addition to the CHANGES deprecation list
20:59.52 brlcad how big/complicated the API really is
21:00.37 brlcad afaik, nmg was never "published", documented in a manner that others could use it
21:01.02 starseeker given my druthers, I'd probably stub out a "clean" API for NMG as the first step in digging it out of librt, then work from there...
21:01.19 brlcad easy enough to leave the decls public for a deprecation phase, but not sure it'd technically be required
21:07.27 mpictor reads discussion from last few hours
21:08.04 mpictor starseeker: as of a couple years ago, OCC's boolean operations were slow and had a lot of bugs
21:08.49 starseeker mpictor: ah, good to know
21:08.52 mpictor has fond memories of solids with negative volume and/or invisible faces
21:08.57 starseeker heh
21:09.27 mpictor I think I have a whitepaper from where SALOME wrote their own boolean ops with more modern algos
21:11.02 starseeker this one? http://docs.salome-platform.org/salome_7_3_0/gui/GEOM/SALOME_BOA_PA.pdf
21:11.53 mpictor heh, I was about to mail you v 6.3.0 of that :)
21:12.35 starseeker <spock voice>fascinating</spock voice>
21:14.07 mpictor I remember the OCC sources being in french - at least the old parts. the comments were too technical for google translate to work on, as well :/
21:16.22 starseeker they've put quite a lot of work into documenting SALOME, based on that example
21:16.55 kanzure hello
21:17.09 starseeker kanzure: howdy
21:17.21 kanzure i think OCC's boolean operations still have bugs
21:17.33 kanzure i wasn't aware that SALOME has a separate implementation
21:17.38 kanzure finding code inside of OCC is impossible enough as it is
21:17.48 mpictor heh no kidding :)
21:17.48 kanzure some parts are in french, others in russian, and some more in english
21:17.59 kanzure it is entirely hopeless and should be abandoned
21:21.46 starseeker kanzure: so you don't think the OCE team is inclined to try and save it?
21:23.38 kanzure i have spent a lot of time trying to work through OCC's source code to see how i could start to clean things up
21:23.46 kanzure and honestly i wasn't able to make up any actionable plan
21:24.06 kanzure like, in theory, there are these 100+ modules that can be reused, but they seem to call each other a lot, and i'm never really sure where the actual boolean operations are really truly implemented..
21:24.33 kanzure i think that the OCC team upstream might not have the talent necessary to fix their situation
21:24.58 kanzure large refactor initiatives from the OCE people would be interesting.. but brlcad is way cleaner :)
21:26.24 mpictor kanzure: do they still use WOK to generate container classes, or have they moved to templates?
21:27.22 kanzure i haven't looked in the past ~2 years so i would guess WOK
21:27.44 mpictor bleh
21:28.40 kanzure oh wait, hi, nice to see you around :)
21:28.45 kanzure i know who you are. heh.
21:29.35 mpictor you're brian bishop, right?
21:30.54 kanzure hi yes
21:33.07 mpictor don't think I've talked to you since I used to frequent #cam
21:33.17 starseeker kanzure: it would be interesting if the FreeCAD/OCE folks could look at BRL-CAD and itemize what is missing from their point of view to make BRL-CAD viable for their applications
21:34.05 starseeker we know the obvious ones (booleans, shaded displays, 2D drawings/dimensioning)
21:34.13 kanzure booleans?
21:34.33 starseeker subracting one Brep from another to form a new shape
21:34.45 starseeker i.e. use a cylindar to punch holes in a plate
21:36.34 kanzure oh, i wasn't aware that this was missing at the moment.
21:37.07 starseeker we're working on it - one of last years GSoC projects did quite a bit of work on that topic
21:37.51 starseeker http://brlcad.org/wiki/User:Phoenix/GSoc2013/Reports
21:38.09 kanzure my biggest suggestion would be something about decoupling releases of individual components/sub libraries or something, and especially separating the gui-related releases, but i dunno if the freecad person cares about that
21:38.17 kanzure yeah, i remember User:Phoenix
21:39.00 starseeker kanzure: so separating a "libbrlcad" backend from the GUI front-ends?
21:39.40 kanzure that sounds nice
21:39.44 kanzure have you looked at python-brlcad?
21:39.58 starseeker unfortunately I haven't had time recently
21:39.59 kanzure https://github.com/kanzure/python-brlcad
21:40.15 mpictor starseeker: did you mention a constraints solver as something you don't have? https://code.google.com/p/sketchsolve/ (BSD) was used in the now-defunct heekscad
21:40.41 starseeker nods - I looked at that a bit, but apparently FreeCAD did too and they wound up implementing their own
21:41.24 starseeker is curious as to whether gecode could be used as a foundation on which to define and solve such constraints - they seem to do well in the open source constraint solving arena
21:41.47 starseeker not to mention a nice license and good documentation
21:42.36 mpictor there's also psketcher, which has fewer constraints but includes 2d sketching https://code.google.com/p/psketcher/
21:42.44 mpictor had not heard of gecode
21:42.58 starseeker mpictor: unfortunately, psketcher is GPL
21:43.07 mpictor oh yea :/
21:43.15 starseeker http://www.gecode.org/doc-latest/reference/classCartesianHeart.html
21:45.34 starseeker that example is promising when you consider our problem domain :-)
21:46.56 starseeker main question I have is how to approach a runtime specification of and rebuilding of the constraints - from what I can tell, we basically will need to construct GECODE models "on the fly", destroying them and creating new ones when the geometry changes (not parameters changing per say, but new geometry and/or constraints being added or removed)
21:48.08 mpictor oh, so you'd have their model, as well as one of your own?
21:49.07 starseeker in essence - we would have a series of conceptual constraints (like psketcher's list for 2D, for example) and we would need to express those in terms of how GECODE defines a system
21:49.28 mpictor yea
21:50.42 starseeker so we would take (say) sketch, define the notion of angles between edges as a constraint, and then for each specific set of edges that had an angle constraint we would create and insert into the "space" GECODE defines those specific constraints
21:51.24 starseeker ditto for distance, horizontal/vertical edges, etc.
21:52.46 starseeker I suspect once certain conceptual hurdles and basic setups are in place, it would be fairly straightforward to get at least some basic solves going - the trick would be making sure we are using the right techniques for specification and solving to make it *fast*
21:54.02 *** join/#brlcad merzo (~merzo@181-27-132-95.pool.ukrtel.net)
21:54.05 starseeker doesn't know if "implement a 2D constrained sketcher using GECODE" is a viable GSoC project or not, but it sure would be interesting
21:54.19 mpictor yes, it would
21:54.45 mpictor speaking of which, we need to figure out gsoc projects for stepcode
21:55.09 mpictor thread safety is one that someone was asking about recently
21:55.22 starseeker do you think that's doable for a student in a summer?
21:55.44 mpictor I was about to ask what you thought :)
21:56.09 starseeker well, the new file breakout will probably help debugging quite a lot
21:56.34 mpictor yes
21:56.52 starseeker I guess it's a question of how deep the changes would really have to go
21:57.10 mpictor but that made me think of all the assignment operators (etc) which copy pointers rather than creating new objs
21:57.22 starseeker winces
21:58.04 starseeker I almost wanted to suggest as a project getting really nice doxygen documentation generating for the STEPcode sources and maybe even the schema files
21:58.56 starseeker that might help all future projects (and us) navigate the labyrinth
22:00.08 starseeker mpictor: assuming you want to go with doxygen, of course...
22:00.38 mpictor I've wondered about that
22:00.42 mpictor there is a doxyfile
22:01.13 mpictor I guess the docs could be greatly improved by using more of the doxygen commands
22:01.25 starseeker mpictor: that's kinda what I was thinking
22:01.50 starseeker would include a component to generate html from express files, complete with graphviz diagrams of component relationships
22:02.04 mpictor I've been meaning to re-generate and upload the docs ever since v0.7 :/
22:02.07 mpictor nice!
22:02.31 starseeker that might not be doxygen per say (might even be a code-writing project) but it would be a vast help in making sense of what the schemas are trying to tell us
22:02.34 mpictor maybe they could take SCView and hook it into libexpress instead of using the sdai libs
22:02.43 mpictor yes
22:03.15 starseeker even the AP203 practical guide had just a few black and white diagrams - color coding and/or node shape could be used to convey a lot more information
22:04.18 starseeker perhaps in addtion to exp2cxx we would have exp2html
22:04.29 mpictor hmmm
22:04.45 mpictor good idea
22:05.01 mpictor and a 'make doxygen' target, of course
22:05.06 starseeker right
22:05.30 starseeker whether it was an actual doxygen run or called exp2html under the hood instead, the end result would be detailed, useful docs
22:05.42 starseeker (actually, it'd probably call both)
22:05.58 mpictor yea
22:06.28 starseeker the steptools folks do have their hyperlinked pages generated from the schema, and they're quite useful, but I've always thought there might be a way to do better
22:06.32 mpictor in a folder adjacent to p21read, there is code to generate html - but it uses the sdai libs rather than libexpress
22:06.41 starseeker hmm
22:06.50 starseeker is the output any good?
22:07.02 mpictor looks a lot like steptools :)
22:07.06 starseeker heh
22:07.17 starseeker should have guessed
22:07.25 starseeker ok, that's a good starting point then
22:07.46 mpictor I looked into https://readthedocs.org/ for documentation once, but they require reStructuredText
22:07.53 mpictor not compatible with doxygen :/
22:08.26 starseeker nods - especially for a summer project, my instinct would be to have them get familiar with what's there and how it works, then build from that
22:08.37 mpictor yes
22:09.31 mpictor and I think I looked for programs that could turn c/c++ into rst and didn't see any, so we'd lose a lot
22:10.23 starseeker ultimately we'd probably want doxygen for src code and the direct schema documentation to reference each other - I'd love to be able to click on a link in the schema docs and go to the header that defines its corresponding C++ type
22:11.17 starseeker anyway, something to think about - "what would our preferred generated documentation look like"
22:12.56 mpictor I've wondered from time to time about a gui app with searchable, clickable express
22:13.01 starseeker actually, rather than exp2html would probably want exp2doc with a --format option to specify options - would start with html, but in the future we could add rst, docbook, etc
22:13.22 starseeker mpictor: could html be generated to produce that result?
22:13.33 starseeker or did you have something more like a graph navigator in mind?
22:13.47 mpictor hmmm. guess we could do the search in javascript
22:14.00 mpictor I was actually thinking of something a lot like SCView
22:14.13 mpictor just using libexpress so it would have more info than present in the libs
22:14.21 starseeker nods
22:15.27 mpictor now that exppp is in use on official schemas, we can be pretty confident that the parser understands all the express currently used in step schemas
22:16.05 mpictor actually, its formatted, clickable express could be html
22:16.15 mpictor I think that Qt supports html natively
22:16.51 mpictor so we could use the same output for the gui app and for the www documentation
22:18.57 starseeker nods
22:19.18 kanzure have either of you used swagger
22:19.29 mpictor never heard ofit
22:19.30 kanzure it is a marginally not awful way of rendering schema documentation
22:19.43 kanzure http://swagger.wordnik.com/
22:20.18 kanzure anyway i mention it because it takes a schema and generates documentation (i don't think it is directly usable in this context)
22:20.40 kanzure the ui is generated from http://petstore.swagger.wordnik.com/api/api-docs/pet
22:21.04 mpictor what kind of schema does it take? xml?
22:21.08 kanzure json
22:21.34 mpictor oic
22:25.00 *** join/#brlcad merzo (~merzo@181-27-132-95.pool.ukrtel.net)
22:25.38 starseeker was thinking maybe something like D3 could be used to design a navigation widget for a schema view...
22:29.48 starseeker but even graphiz rendered images would be a great start
22:30.16 mpictor you mean d3js.org?
22:30.27 mpictor I always thought chord diagrams looked pretty cool http://bl.ocks.org/mbostock/1046712
22:31.20 mpictor searches for a schema hammer, to pound on a schema until it fits perfectly ;)
22:33.01 mpictor speaking of graphs, I wonder what would happen if we ran doxygen on the code from a schema
22:34.21 starseeker ponders what size of explosion would make a good analogy...
22:34.57 mpictor heh
22:35.16 starseeker but actually, that was one of the things I was wondering - whether we wanted to add comments to schema and have them end up as doxygen comments in the generated code
22:35.31 mpictor if exp2cxx printed doxygen comments on some things and not others, we could set doxygen to only document commented things
22:35.46 starseeker nods
22:35.56 mpictor guess I should have read your comment before finishing what I was typing :)
22:36.06 starseeker maybe listing undocumented entries upon request
22:36.12 mpictor yea
22:36.17 starseeker do the schemas allow comments?
22:36.26 mpictor oic
22:36.43 mpictor (* this is an EXPRESS comment *) --and so is this
22:36.53 starseeker sweet
22:37.34 starseeker adding comments to those beasts will be a years long process, but if we do it as we go it will end up being a very valuable resource
22:37.46 mpictor I was thinking of having exp2cxx write comments for every class stating which entity it came from (for example) and listing ancestors as "see also"'s
22:37.53 starseeker our generated schema docs will get progressively more valuable :-)
22:38.16 mpictor at least some of the schema tools (such as exppp) strip comments out
22:38.17 starseeker nods - then adding any "additional" comments that have been manually added to the output
22:38.23 mpictor heh
22:38.50 starseeker time to bugfix exppp :-P - GSoC task #1
22:38.57 mpictor lol
22:39.28 starseeker seriously though, that would be worthwhile. Remember how useful that old schema with comments was that you dug up a while back
22:39.54 starseeker if we can do a more modern version of that, our .exp files will begin to become goto resources instead of just copies
22:40.08 starseeker or rather, our generated docs will be the goto point
22:40.13 mpictor true
22:40.33 mpictor it would require changing the parser though, and probably adding onto the data structures
22:40.42 starseeker in exppp you mean?
22:40.46 mpictor libexpress ignores comments and has no facility to save them
22:40.50 starseeker ah
22:41.03 starseeker what do you think - doable for a summer project?
22:41.26 mpictor for the right student, I guess
22:41.32 mpictor parsers aren't my strong point
22:41.36 starseeker (has the advantage of letting them work on something useful while learning and (hopefully) not hurting working functionality)
22:41.52 mpictor yes
23:25.53 starseeker ``Erik: did Notify get taken out again?

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