IRC log for #brlcad on 20140305

00:26.48 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
01:20.08 *** join/#brlcad merzo (~merzo@139-2-133-95.pool.ukrtel.net)
01:40.57 starseeker brlcad: I suspect there's some aspect to this that I'm not properly understanding - I scrubbed down librt's inclusion of bu.h and added the subheaders where needed - it does in fact compile, but trying to link anything with it results in a bunch of missing bu functions
01:41.32 starseeker how is it compiling if it can't find the appropriate bu functions?
02:09.08 starseeker added bu headers to all the libged files that included mater.h and didn't include bu.h - still complaining about bu_vls_trunk
02:09.20 starseeker bu_vls_trunc rather
02:23.17 starseeker ah, wait a minute
02:35.09 Notify 03BRL-CAD:starseeker * 60054 (brlcad/trunk/include/bu/avs.h brlcad/trunk/include/bu/bitv.h and 20 others): Turns out the __BEGIN_DECLS and __END_DECLS statements really do matter.
02:45.16 brlcad starseeker: it doesn't know that they're missing, assumes you're going to link in the symbol later
02:46.15 brlcad the compiler only warns when the implicit default type (int) conflicts with how it's being used and most of the bu functions return an int
03:23.07 starseeker nods - I needed the BEGIN_DECLS/END_DECLS wrappers. Didn't tidy them up initially, should have
03:40.18 brlcad yeah, that demangles the name for C++ linkage
03:45.54 Notify 03BRL-CAD Wiki:Sean * 6535 /wiki/Google_Summer_of_Code/Project_Ideas: /* Infrastructure */
03:49.31 Notify 03BRL-CAD Wiki:Sean * 6536 /wiki/Google_Summer_of_Code/Project_Ideas: /* Web Development */
03:54.08 Notify 03BRL-CAD Wiki:Sean * 6537 /wiki/Google_Summer_of_Code/Project_Ideas: /* Infrastructure */ PCL
03:58.10 Notify 03BRL-CAD:starseeker * 60055 (brlcad/trunk/include/mater.h brlcad/trunk/include/nmg.h and 145 others): Get bu.h out of (most of) the toplevel include headers. Still a ton of individual files including bu.h, but it's a start.
03:58.57 Notify 03BRL-CAD Wiki:Sean * 6538 /wiki/Google_Summer_of_Code/Project_Ideas: /* Infrastructure */ annotations
04:58.25 Notify 03BRL-CAD:starseeker * 60056 (brlcad/trunk/src/librt/attributes.c brlcad/trunk/src/librt/bbox.c and 45 others): remove bu.h inclusions from librt. Right now these files are getting a lot of libbu from raytrace.h - when that header is broken out, it is likely that there will be more specific bu inclusions for most of these files.
05:07.24 Notify 03BRL-CAD:starseeker * 60057 (brlcad/trunk/src/libged/adc.c brlcad/trunk/src/libged/analyze.c and 38 others): remove bu.h inclusions from libged files. Similar to librt - getting a lot from headers currently, but will boil down as they are broken up.
05:16.02 Notify 03BRL-CAD:starseeker * 60058 (brlcad/trunk/src/adrt/isst_tcltk.c brlcad/trunk/src/adrt/librender/camera.c and 19 others): Remove bu.h inclusions from adrt.
05:21.33 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
06:51.17 Notify 03BRL-CAD:brlcad * 60059 brlcad/trunk/include/bu/file.h: lost this include when moved interface to bu/ subdir. necessary for the dynamic loader symbols, used in liboptical and elsewhere.
06:53.00 *** join/#brlcad deepak (~chatzilla@202.164.53.117)
06:53.09 Notify 03BRL-CAD:brlcad * 60060 brlcad/trunk/include/bio.h: stub in an empty setmode() call for non-windows platforms. this lets the code blend in seamlessly in the calling code while providing the functionality needed on windows.
06:56.40 Notify 03BRL-CAD:brlcad * 60061 brlcad/trunk/src/librtserver/rtserver.c: missing bu/cv.h
07:06.28 *** join/#brlcad deepak (~chatzilla@202.164.53.117)
07:07.02 Notify 03BRL-CAD:brlcad * 60062 brlcad/trunk/include/rtserver.h: there's a bu_vlb used in the interface here
07:11.18 Notify 03BRL-CAD:brlcad * 60063 (brlcad/trunk/src/conv/asc/asc2pix.c brlcad/trunk/src/conv/asc/g2asc.c and 28 others): fix regression test breakage introduced in 60016 (can no longer introduce new _WIN32's) by eliminating all of the WIN32 blocks around setmode() calls. we can just make that function a no-op for now, but might consider a bu_setmode_binary() or similar if it causes confusion. for now, go with the simplest
07:11.20 Notify solution. eliminates 30 of them.
07:41.24 Notify 03BRL-CAD:brlcad * 60064 brlcad/trunk/regress/repository.sh: the platform symbol checks were not finding symbols that were at the start or end of lines and were apparently not checking for _WIN32 and _WIN64 at all. detecting our existing raises our count to an even 200
07:45.17 Notify 03BRL-CAD:brlcad * 60065 brlcad/trunk/src/conv/dxf/g-dxf.c: save all files, removed _WIN32 wrappage
08:07.26 *** join/#brlcad _zxq9_ (~ceverett@FL9-125-199-207-150.okn.mesh.ad.jp)
09:00.57 *** join/#brlcad harmanpreet (~harman@198.199.108.236)
09:00.57 *** join/#brlcad Anaphaxeton (~george@unaffiliated/anaphaxeton)
09:12.52 *** join/#brlcad witness___ (uid10044@gateway/web/irccloud.com/session)
09:12.52 *** join/#brlcad witness___ (uid10044@gateway/web/irccloud.com/x-qcbejwnrfjcrylkt)
11:29.58 *** join/#brlcad teepee_ (bc5c2134@gateway/web/freenode/ip.188.92.33.52)
11:40.10 *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14)
11:52.56 *** join/#brlcad ankesh11_ (sid8015@gateway/web/irccloud.com/x-myznsqzxfyjeghiu)
11:56.54 *** join/#brlcad archivist (~archivist@host81-149-189-98.in-addr.btopenworld.com)
11:58.00 *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14)
12:06.47 *** join/#brlcad yizhen_ (~yizhen@c-98-206-167-91.hsd1.il.comcast.net)
12:33.09 *** join/#brlcad ries (~ries@190.9.171.121)
12:34.26 Notify 03BRL-CAD:n_reed * 60066 brlcad/trunk/src/libbrep/intersect.cpp: fix my less than correct comments
13:42.31 Notify 03BRL-CAD:n_reed * 60067 brlcad/trunk/src/libbrep/intersect.cpp: move duplicated Subsurface subdivision code to separate function
14:15.46 *** join/#brlcad rotad (~user@unaffiliated/rotad)
14:25.47 *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14)
14:34.14 *** join/#brlcad hoiji (~hoiji@117.201.93.118)
14:36.38 Notify 03BRL-CAD:carlmoore * 60068 brlcad/trunk/src/libdm/dm-ogl.c: remove trailing blank/tab
15:14.16 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
15:46.10 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
16:48.20 Notify 03BRL-CAD:n_reed * 60069 brlcad/trunk/src/libbrep/intersect.cpp: use suffix to distinguish surface A/B parameters instead of uv/st convention
17:04.28 *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14)
17:11.29 *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14)
17:13.52 *** join/#brlcad FreezingAlt (~FreezingC@135.0.41.14)
17:19.00 Notify 03BRL-CAD:starseeker * 60070 (brlcad/trunk/include/dm/dm-ogl.h brlcad/trunk/include/dm/dm-osg.h and 16 others): Start setting up to allow setting a log file for display manager debugging output.
17:32.33 *** join/#brlcad teepee_ (5084559b@gateway/web/freenode/ip.80.132.85.155)
18:24.18 *** join/#brlcad kesha (~kesha@14.139.122.114)
18:41.47 *** join/#brlcad javampire (~ncsaba@p4FF75642.dip0.t-ipconnect.de)
19:28.33 *** join/#brlcad FreezingAlt (~FreezingC@205.211.50.163)
20:40.00 *** join/#brlcad javampire (~ncsaba@p4FF75642.dip0.t-ipconnect.de)
20:40.48 javampire anybody around experienced in libdm ?
20:41.49 javampire I would like to try to wrap it from python-brlcad, and I wonder how much of setup-work I need to do before it could display anything
20:42.32 javampire I'm not even sure I understand what it does at all - the documentation in dm.h is pretty thin
20:43.02 *** join/#brlcad KimK (~Kim__@ip24-255-223-153.ks.ks.cox.net)
20:56.31 *** join/#brlcad merzo (~merzo@139-2-133-95.pool.ukrtel.net)
21:10.03 javampire after some code checking seems the better bet would be to wrap libged, and simply attach a display manager using that...
21:21.47 *** join/#brlcad ushoroh (~ushoroh@193.105.245.158)
21:43.00 javampire ok, I managed to open a geometry file using libged in python, it was actually much easier than I thought - but I see now that the "mged_attach" function is not defined publicly in a header file
21:43.48 javampire I guess it is still in the library so I probably will be able to call it if I insist, but I wonder what is the reason why it is not published ?
21:44.27 javampire or perhaps I'm mistaken and it is really not in libged ?
21:47.13 brlcad javampire: howdy
21:47.36 brlcad javampire: we were just talking about libdm for the past couple hours ... heh
21:47.48 brlcad I wouldn't suggest wrapping it just yet since we plan on changing it
21:47.59 brlcad libged is where the money is at
21:48.15 javampire brlcad: hi Sean
21:48.16 brlcad that's basically 99% of our command API
21:48.35 javampire yep, I see now, but I thought it's much harder to do the wrapping
21:48.49 javampire there were so many functions in it that I missed the open call :-)
21:49.00 brlcad it's probably the easiest lib we have :)
21:49.12 brlcad they're nearly all ged_command(int ac, char *av[]);
21:49.39 brlcad (they should all be that except for open/close ... some turds to clean up)
21:49.44 javampire yes, but for me right now the most important thing would be to actually display something
21:49.57 brlcad ahh, yes
21:50.17 javampire so even if I need to rewrite it twice, I would prefer to do that
21:50.33 brlcad well you could wrap the libdm bits for that, or wrap some more abstract "gimmie data" interface and display it yourself
21:51.12 brlcad keep in mind that you can change our APIs if some change or improvement makes it easier for you to use it
21:51.28 brlcad they aren't set in stone, so don't feel you have to work around something if you see a wart
21:51.32 brlcad we can burn those suckers off
21:51.58 javampire well I would have been real happy if the attach command would have worked :-)
21:53.08 javampire but I could just do that directly in python I guess, and do whatever the attach command does
21:53.19 brlcad attach isn't in libged, right?
21:53.26 javampire well I think not
21:53.34 brlcad pretty sure it's not
21:53.47 javampire and it's likely because it would mean depending on dm
21:53.51 brlcad interesting idea, but that is very "front-end" specific
21:54.15 brlcad yeah, it's not supposed to be dependent upon dm .. it's a command library
21:54.19 javampire well what is dm anyway ?
21:54.30 brlcad display management library
21:54.45 javampire it's the display where the wire-frames are shown, or something else ?
21:54.59 javampire is it the menus too ?
21:55.08 javampire it's hard to tell from the library code :-)
21:55.17 javampire I mean from the headers
21:55.18 brlcad manages the notion of a "display" which is usuallya window+graphics context, but can be any context including things like a network socket or a plot file
21:55.31 brlcad not the menus
21:55.35 javampire ok, but what is it doing ?
21:55.38 brlcad just the graphics portions
21:55.52 javampire so if I say Zip in ged, what will it do ?
21:55.59 brlcad for mged, it's the black window where geometry is drawn
21:56.04 javampire it needs an attached display I guess, and will clear it ?
21:56.14 brlcad Zap
21:56.22 javampire zap, sorry :-)
21:56.25 brlcad zip won't do anything ;)
21:56.56 brlcad libged does keep track of what needs to be drawn, the data being drawn
21:57.02 javampire well that's exactly what I need currently, to select something using ged, then display it
21:57.06 brlcad so you can "draw object" in libged
21:57.26 brlcad and it'll load the geometry wireframes or polygons or whatever defined for draw
21:57.46 brlcad the application (mged) then takes that data and tells libdm to draw it
21:58.11 javampire ok, but libged is then not aware of the display manager at all ?
21:58.16 brlcad so you could probably do something similar
21:58.22 brlcad it's not supposed to be
21:58.41 javampire ok, now I start to see how it works
21:58.51 brlcad I believe one or two commands cheat and talk to libdm directly (e.g., "screenshot"), but they need to burn in hell
21:58.59 javampire so libged is simply keeping a list of objects, and mged passes that on dm ?
21:59.07 brlcad basically
21:59.10 javampire aha
21:59.34 javampire ok, so I would need to rewrite that part in python then, right ?
21:59.58 brlcad yeah, I could see you doing something cool with a pygame context or something
22:00.19 javampire hmm, I would need to check pygame for that
22:00.22 brlcad in fact, you could try bypassing libdm for a first test
22:00.31 brlcad just
22:00.49 brlcad "draw sphere", pull the data out of the struct ged, and pass it to pygame (or whatever)
22:00.57 javampire aha
22:01.12 brlcad "pull the data out" might be oversimplifying
22:01.26 brlcad it's been a while since I've seen where/how that is all currently stashed
22:01.36 javampire ok, I will investigate what's easier, using libdm or some python lib...
22:01.47 brlcad it was originally very simple with a clean design, but it grew and grew as commands got migrated
22:02.10 javampire well I will start with attach.c and find the rest too :-)
22:02.33 brlcad libdm is certainly not hard .. we have examples bound through Tcl, C, and Java
22:02.57 javampire hmm, where should I look for the Java examples ?
22:03.08 javampire that's something I will navigate easier
22:03.21 brlcad knew you'd ask about that one
22:03.26 javampire :-)
22:03.28 brlcad can't share that one, not mine to share
22:03.33 javampire ok
22:03.46 brlcad but it does exist and was reportedly very easy (just a day or something)
22:03.55 javampire ok
22:04.50 javampire brlcad: thanks for the help, I think I have enough to do for the next week :-)
22:05.16 brlcad haha, no problem
22:05.24 brlcad love to hear the progress :)
22:05.50 javampire well I hope it will actually be useful/used
22:06.33 javampire I plan to implement that "sweep" thing, it is a nice challange :-)
22:06.49 brlcad wow awesome
22:06.53 *** join/#brlcad teepee (~teepee@gateway/tor-sasl/teepee)
22:07.35 brlcad let me know how i can help.. primitives are a specialty ;)
22:07.42 javampire on the python side I will also do some experiments with constraint based geometry building - but that's a bit more complex in the sense it is not yet clear to me either how I want it to work :-)
22:07.50 brlcad that's a doosey, but doable
22:08.12 brlcad you could help work on implementing constraints in our core
22:08.34 brlcad there's a fair bit written up in our todo file
22:08.44 javampire well I have some initial thoughts (related the sweep) which on second thought are not enough, but I will come up with a complete specification including algorithms
22:09.24 javampire related the constraints - I will want to do some actual geometry examples using it and that way refine the ideas
22:09.43 javampire that's why python is better, I can easily write some throw-away code
22:09.44 brlcad you could aleways cheat and tessellate a sweep parametrically on the fly (ala openscad/blender)
22:10.01 javampire nope, I want it analytically solved
22:10.10 javampire it must be possible
22:10.15 brlcad implementing ray evaluation for sweep is whats hard
22:10.45 brlcad at least iyou keep it in an implicit form
22:10.57 brlcad s/iyou/if you/
22:10.59 javampire yes, I know, but if well defined then the ray can be projected as an analytical shape on the plane of the sketch
22:11.10 javampire for each segment of the path
22:11.23 brlcad assuming you only support sweeping sketches.. ;)
22:11.41 javampire yes, but you can always reduce a shape to it's projection on a plane
22:11.49 javampire then sweep that, and fix endings
22:11.55 brlcad true.. yet another project!
22:12.09 teepee just heard openscad and wonders now what sweep is
22:12.32 brlcad sweeping a shape
22:12.51 javampire anyway, the problem with 3D paths is that the orientation of the sketch related to the path is not well defined
22:12.53 *** join/#brlcad FreezingAlt (~FreezingC@135.0.41.14)
22:13.07 brlcad basically a generalized extrusion along a path parametrically
22:13.45 javampire the plane normal can always be well defined in terms of the path tangent, but then you can rotate the sketch around that normal and there's no "natural" default orientation
22:13.52 teepee sounds a bit like the thing I'm thinking about https://github.com/openscad/openscad/wiki/OEP1%3A-Generalized-extrusion-module
22:14.02 brlcad path in 3D that might twist and turn, shape might scale/rotate as its translated along the path
22:14.16 javampire yes, but what is angle 0 ?
22:14.20 javampire for the twist
22:16.24 javampire for a 2D path it's easy, you take the angle 0 vector as the normal to the tangent in the plane of the path
22:16.48 javampire but for a 3D path there's no natural 0 plane
22:18.30 javampire also you can't reliably set one arbitrary plane or direction as reference, as the tangent could always just be parallel with that one
22:18.50 brlcad could always take tangent to the path and treat the up vector as your basis
22:19.02 javampire and what if the tangent show up ?
22:19.16 brlcad then allow transformsa relative to that orientation
22:19.54 javampire no, the tangent shows up, reference vector is up, now the sketch can again rotate around the up vector without a deterministic position
22:21.02 javampire ok, it's somewhat hard to explain without drawing it
22:21.19 brlcad could pick you next axis for that case
22:21.30 javampire yes, but it's then all jumpy
22:21.36 brlcad its the gimble lock problem
22:21.49 javampire one point has the sketch in this orientation, the next one could have it all different
22:23.09 javampire BTW, if the algorithm defines a good "Sweepable" interface, it doesn't need to be a sketch, could be any function
22:23.30 javampire I only expect it will need to be a 2D structure
22:23.40 javampire otherwise the algorithm gets too complex
22:23.55 brlcad you're still starting with an object and a path, and transformations along that path (probably parametric)
22:24.19 javampire hmm, I wouldn't do it that way
22:24.22 brlcad so while you might not know your orientation at a given position directly, you can infer it from the starting point parametrically
22:25.05 brlcad i.e., any 't' value along the path also feeds into your parametric deformation(s)
22:25.24 brlcad so you can transform the object as described
22:25.25 javampire I would project the ray on the sketch plane
22:25.45 javampire considering the plane trajectory based on the path
22:26.02 javampire I didn't do the math, but it should be some transformation of the ray based on the path
22:26.35 javampire then intersect the transformed ray with the sketch
22:26.39 javampire then transform back
22:26.41 brlcad well, look forward to seeing what you come up with ;)
22:27.14 javampire if I figure it out with this "twist"
22:27.18 brlcad especially if it can handle scale/rotate (translate?) along the path
22:27.30 javampire well it could
22:27.42 brlcad rotate with 3D seems considerably harder
22:27.53 brlcad presuming you allow more than planar rotation
22:28.02 javampire not sure, the maths are similar
22:28.15 javampire only it needs to be well defined
22:28.54 brlcad extracting a brep from this is going to be a trick too :)
22:29.03 brlcad polys, not so hard
22:29.43 brlcad gotta run ttyl!
22:30.52 *** join/#brlcad javampire_ (~ncsaba@p4FF75642.dip0.t-ipconnect.de)
22:31.08 javampire_ sorry, was disconnected
22:31.34 javampire_ in any case, I think once the problem is well defined, it can be solved
22:32.16 javampire_ the twist could be possibly defined based on some kind of continuity requirement
22:32.34 javampire_ I will think about it, but it's for later
22:33.06 javampire_ right now I want to get python-brlcad up with ged and dm...
22:33.23 javampire_ ok, I'll leave now, late here - see you !
23:33.01 ``Erik http://cmorse.org/missiongen/ semi-random mission statement generator
23:52.53 Notify 03BRL-CAD:starseeker * 60071 brlcad/trunk/src/libbu/fchmod.c: fchmod.c needs bu/str.h on Windows

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