IRC log for #brlcad on 20160520

00:21.08 *** join/#brlcad krcevnzncbxyguxx (~armin@dslb-088-064-047-237.088.064.pools.vodafone-ip.de)
00:30.04 *** join/#brlcad archivist (~archivist@host81-149-189-98.in-addr.btopenworld.com)
02:50.25 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
03:14.06 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
03:27.21 *** topic/#brlcad by brlcad -> Welcome to BRL-CAD! || Don't ask if someone is here, ask a better question. || GSoC 2016 is under way, 9 CAx students! || Release 7.26.0 by 27th... || Logs: http://ibot.rikers.org/%23brlcad/
03:30.13 *** join/#brlcad tandoorichick (75d837cb@gateway/web/freenode/ip.117.216.55.203)
03:31.56 brlcad tandoorichick: how are your setup and preparations coming along?
03:32.43 brlcad tandoorichick: please update your dev log with a summary of all the work you've done during the bonding period
03:32.58 tandoorichick brlcad: yes they're going good. yet to decide on the method to use for the portable module.
03:33.17 brlcad tandoorichick: I didn't fully understand your e-mail
03:33.33 brlcad i mean, your first option was pretty clear -- it was the second that was unclear
03:33.41 tandoorichick Yes i'm in the middle of that, will be done by today.. had a few problems setting up the blog, now it's done. so i'll be updating the content and adding the link..
03:34.01 tandoorichick the first option being what daniel sugegsted?
03:34.12 tandoorichick or the first part of what i suggested?
03:35.21 tandoorichick so ok i'll explain it here then
03:35.58 tandoorichick so, what that method does it create a structure that contains all the attributes for a mesh that we could possibly need (of course spanning just the needs of BRL-
03:36.06 tandoorichick CAd and OpenSCAD)
03:37.07 tandoorichick so for OpenSCAD, it is just the PolySet class which just contains information about all the polygons in the mesh. and we're quite familiar with the rt_bot_internal structure
03:39.04 tandoorichick essentially because the bot type is a superset of the polyset type (because it includes stuff like mode, thickness, orientation, etc.), what we'll be doing while converting polyset to the intermediate mesh is set those attributes that don't apply to NULL.
03:39.43 tandoorichick converting rt_bot_internal to the intermediate type will be trivial because the two structures will essentially contain the same information.
03:40.15 tandoorichick this is what i had proposed.. have i made myself clearer?
03:40.17 brlcad right, I got that regarding your struct example
03:41.01 brlcad it was your next statement: "do you feel it'd be more robust using the generic container and defining the conversion process separately in the utility functions?"
03:41.01 brlcad are you suggesting that there'd be two of every utility funciton or something?
03:42.14 tandoorichick in the first method (what daniel had suggested), the conversion process essentially lies in the functions - so there'd be two of them right?
03:42.42 tandoorichick like get_face or get_num_faces, etc.?
03:43.45 tandoorichick these are going to be dependent on the native structures. that's why i suggested the second one, where the conversion process primarily gets over before we even define the functions?
03:43.53 tandoorichick .*
03:44.38 brlcad I'm still not following -- say I have a "heal_mesh()" top-level function ... it's going to take a data structure of some sort
03:44.50 brlcad e.g., struct polygonal_mesh
03:45.25 tandoorichick ok?
03:45.28 brlcad OR .. there's a heal_brlcad_mesh() and heal_openscad_mesh()
03:45.34 brlcad what other alternative is there?
03:45.47 brlcad void*?
03:46.42 brlcad what I'm not understanding is this second option where the conversion process is defined separately in the utility functions -- what that actually means
03:46.44 tandoorichick we're going for the heal_mesh() which takes in the intermediate mesh, that's more efficient right?
03:47.21 brlcad I'm asking you what you meant
03:47.38 brlcad certainly could be a heal_mesh(struct polygonal_mesh *);
03:48.17 tandoorichick ok so we have the struct polygonal_mesh defined.
03:48.55 brlcad that struct polygonal_mesh could contain a generic structure or it could contain void*'s or it could contain typed fields for each format (probably a terrible idea) or ...
03:49.51 brlcad ok
03:50.16 tandoorichick i don't understand your last question.. i'll just try to explain again.
03:50.24 brlcad before you do
03:50.25 tandoorichick now, for BRL-CAD, we implement it as a rt_bot_internal structure, and for OpenSCAD, as a polyset structure..
03:50.32 tandoorichick yes?
03:50.37 brlcad all I'm really trying to understand is what you meant by "defining the conversion process separately in the utility functions"
03:51.05 brlcad please continue
03:51.17 tandoorichick yeah so for example if we need to get the number of faces of polygonal_mesh, what we'll do is:
03:53.47 tandoorichick for BRL-CAD, we'd do it like this: we define the polygonal_mesh as an rt_bot_internal type. that is - struct polygonal_mesh( rt_bot_internal bot; } . now if we need to get the number of faces, we do this: int get_num_faces(struct *polygonal_mesh) { return polygonal_mesh->bot->num_faces; }
03:56.02 tandoorichick for OpenSCAD: we define polygonal_mesh as: struct polygonal_mesh{ PolySet polyset_mesh; } . and for getting the number of faces: int get_num_faces(polygonal_mesh *mesh) { return mesh->sizeof(polyset_mesh); }
03:56.30 tandoorichick in the get_num_faces for BRL-CAD, i meant int get_num
03:56.45 tandoorichick _face (polygonal_mesh *mesh)
03:56.55 tandoorichick sorry for all the typos..
03:57.10 tandoorichick is this what you wanted to know?
03:58.53 brlcad hmm
03:59.55 tandoorichick is it more understandable now? :)
04:00.42 brlcad the problem I see is that your utility functions are going to amount to accessors for the generic intermediate container you defined in the first example
04:01.41 brlcad to amount to accessors for == be the same as having
04:02.14 tandoorichick yeah.. i don't understand the problem though..
04:02.42 brlcad now if you worked in C++, I could totally see having some sort of derived brlcad_bot class and openscad_mesh class that have some common virtual base class
04:02.52 brlcad but you were planning on working in C, yes?
04:03.36 tandoorichick uhm yes, but since it's going to be a portable module it could be done in C++ right?
04:03.54 brlcad I think that's basically the difference between your first and second versions -- the prior is a data-centric model that you'd do in C, the latter is a composition-centric model that you'd do in C++
04:04.30 brlcad so basically, are you more familiar with C or C++?
04:05.10 tandoorichick both equally i guess.. i use them alternatively..
04:05.37 brlcad no such thing as equal :)
04:06.09 tandoorichick oh well, then C++ it'll be :)
04:06.21 brlcad so, then I think that's a decision you need to make with daniel in the loop
04:06.45 tandoorichick yeah sure, i'm yet to hear from him on the mailing list..
04:07.11 tandoorichick i'll be updating my dev log/blog entry meanwhile
04:07.44 brlcad well your e-mail wasn't clear so he may have had just as much trouble following
04:07.58 brlcad but he's a smarter man than I am, so maybe just busy too ;)
04:08.59 tandoorichick actually half the stuff i explained here, was what he'd told me on the mailing list..
04:09.23 tandoorichick or do you think i should send another mail stating my strategy more clearly?
04:11.02 brlcad no
04:12.19 brlcad just a general note -- you should make progress forward just like you've been doing regardless of there being questions
04:12.51 brlcad obviously try to get them answered, but some aren't answerable until more progress is made or the problem is more concrete like you spelling out an example here
04:13.22 tandoorichick sure, will keep it in mind. :)
04:14.03 brlcad fwiw, now that you're further along, I suggest writing an actual header file with comments instead of prose
04:14.48 brlcad maybe write a front end driver application for how this would be used before it's implemented (in pseudocode or real code)
04:15.53 tandoorichick you mean like putting everything i explained here, as comments?
04:16.09 tandoorichick of course for just the method that we decide on right?
04:22.11 brlcad right
04:22.46 brlcad but not focusing so much on the comments as actually starting towards stubbing in proper class structures, functions, structs, whatever (and yes, putting some comments with them to explain if needed)
04:22.50 brlcad simple test program might look something like this: #include "MeshCleanup.h" ; int main() { Mesh *mesh = NULL; if (MeshCleanup::Type(argv[1]) == MeshCleanup::BRLCAD_BOT) mesh = new BrlcadMesh(argv[1]); else if (MeshCleanup::Type(argv[1]) == MeshCleanup::OPENSCAD_MESH) mesh = new OpenscadMesh(argv[1]); mesh->closeGaps(); mesh->write(argv[2]); return 0;}
04:23.50 brlcad you could create a "stub" MeshCleanup.h file that would let something like that actually compile .. obviously wouldn't work until you implement the guts, but it will get you thinking about how this will be used before you get lost in the weeds
04:24.45 tandoorichick ok got it. :)
04:28.37 brlcad concrete examples move the discussion forward ;)
04:52.34 tandoorichick brlcad: will keep it in mind from next time onwards!
05:15.33 *** join/#brlcad kanzure (~kanzure@unaffiliated/kanzure)
06:25.55 *** join/#brlcad tofu_ (~sean@104.225.5.10)
06:42.01 *** join/#brlcad merzo (~merzo@32-20-133-95.pool.ukrtel.net)
06:44.34 *** join/#brlcad merzo (~merzo@32-20-133-95.pool.ukrtel.net)
06:53.37 *** join/#brlcad teepee (~teepee@unaffiliated/teepee)
07:13.34 *** join/#brlcad d_rossberg (~rossberg@104.225.5.10)
07:23.59 *** join/#brlcad sniok (~sniok@89.252.29.238)
07:39.51 *** join/#brlcad teepee` (bc5c2134@gateway/web/freenode/ip.188.92.33.52)
11:03.32 tandoorichick d_rossberg: i didn't het this question of yours: "If you do the vertex contraction with the triangulated boundary of a plate mode BoT, how will this compare with the contraction of the vertices of the original BoT?"
11:03.39 tandoorichick get*
11:07.49 d_rossberg a plate mode bot is a solid -> has a boundary -> triangulate the boundary
11:17.14 tandoorichick i was talking about vertex contraction while healing gaps in meshes.. how does the relation between the two scenarios you mentioned come in?
11:28.07 d_rossberg what would be the difference between haling the plate mode bot and healing its boundary representation bot?
11:46.39 d_rossberg i.e. what's the difference of the results (volume object) if you 1) heal the plate mode bot and 2) heal its facetized boundary representation bot
11:48.14 d_rossberg ideally it should be the same (i.e equivalent)
14:45.29 tandoorichick well it depends: if we're healing a plate mode bot by "gluing" i to something outside of it, it will be the same. if there are defects inside it, then triangulating the brep will be a lot less like the original, i.e. fidelity decreases..
14:45.56 tandoorichick sorry for the late reply, i got in the middle of something..
14:46.34 *** join/#brlcad amarjeet (~amarjeet@101.211.162.159)
15:25.07 d_rossberg i thought at the vertex contraction feature you wrote about
15:42.28 *** join/#brlcad merzo (~merzo@32-20-133-95.pool.ukrtel.net)
15:43.07 Notify 03BRL-CAD Wiki:Tandoorichick * 9720 /wiki/Google_Summer_of_Code/2016: /* Automatic Polygonal Mesh Healing */
15:56.42 *** join/#brlcad djkonro (~konro@41.202.219.77)
16:27.21 *** join/#brlcad kintel (~kintel@unaffiliated/kintel)
16:38.49 *** join/#brlcad ickby (~stefan@p4FD3C9AE.dip0.t-ipconnect.de)
16:55.10 *** join/#brlcad Mandeep_Singh (~mandeep@117.199.103.101)
16:58.39 *** join/#brlcad djkonro (~konro@41.202.219.72)
19:45.32 *** join/#brlcad merzo (~merzo@11-143-53-37.pool.ukrtel.net)
20:16.35 *** join/#brlcad LordOfBikes (~armin@dslb-088-064-047-237.088.064.pools.vodafone-ip.de)
20:38.38 *** join/#brlcad djkonro (~djkonro@41.202.219.71)
20:46.52 *** join/#brlcad LordOfBikes (~armin@dslb-088-064-047-237.088.064.pools.vodafone-ip.de)
21:19.42 *** join/#brlcad djkonro (~djkonro@41.202.219.72)
21:23.59 starseeker Hmm: https://github.com/Kitware/QtTesting
21:38.45 *** join/#brlcad Guest31597 (~djkonro@41.202.219.76)
21:58.52 *** join/#brlcad Guest31597 (~djkonro@41.202.219.77)
22:23.12 *** join/#brlcad Guest31597 (~djkonro@41.202.219.77)
23:01.20 *** join/#brlcad Guest31597 (~djkonro@41.202.219.73)

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