Wellp… I dunno how or why, but I find myself wanting to rant. I’ll do my best not to, but I’d like to voice something about CGAL (and hopefully later when I have time, I’ll voice my concerns on their mailinglist…). I’m mostly doing this for people who might google this and wonder about it, or just to get some feedback. I’m trying to use the KDS in CGAL, and it’s making me want to cry.
Right now, when I look at the Delaunay Triangulation (the 2d one, that is) kinetic structure, I flat out cannot figure out how they are using edges from either the documentation or the immediate code. This makes the visitors and recent edge goodies a little difficult to harness. Now, right off the bat, I’ll confess I’m not using the library in a normal fashion, but wow. This is weird. I think they are using the edges as STD::Pair objects, storing a Face and an integer for the edge label of that face, thus forming an ‘edge’. I guess?
Well, what I want to do is manipulate the structure and nudge it like any good ol’ KDS, but then as updates occur to the edges, I’m trying to form an RNG (relative neighborhood graph) from the edges and update it as well. But, it doesn’t call for an all out KDS because I’m really only loosely using the RNG and it’s overkill to make it into a KDS. See the problem forming here? I’d really love to just get these “views” or “observations” at the structure of the triangulation from the visitor… but it’s becoming a serious pain. But… they have it… so it SHOULD be usable… right? I mean, I want a DCEL structure, to be honest, but the structure they are using is a little hard to comprehend. Sure, I can generate meshes and such from the KDS, but those will be constantly changing, so the KDS will cause a lot of problems for the simulation’s overhead.
Correct me if I’m wrong, but this seems like the armpit of the KDS right now (accessing the structure on specific events), and so I don’t want to criticize the team behind CGAL or the KDS stuff it has (it’s really cool junk!). You know, it’s probably something obvious that, due to my lack of experience, is going right over my head. But wow… I hope they’ll explain it one day… I’m writing this here and not in the mailinglist since I sort of want to submit a bug-report… but then, I’m pretty sure it’s not worth them changing anything. The ‘weird’ programmer must typically hack and burn his own trail. So I guess I’ll just post this here, and any interested parties can discuss. If I find anyone coming in here trying to use kinetic data structures in CGAL and they find issues with the edges and triangulations and visitors as well, then perhaps I’ll bug the CGAL people… till then, I’ll just post any updates I have on the issue here.
Well, I have to go now. My sister’s stinky chihuahua is groveling at my feet. I need to see what his problem is… or perhaps feed him to the neighbor’s cat. Yes… that’s what I feel like doing now… lemme just get some ketchup (cat’s like condiments… right?) and some tunafish… I’m sure I’ll work something out.