IRC log for #brlcad on 20080411

00:14.15 *** join/#brlcad iraytrace (n=iraytrac@cocoa.sci.utah.edu)
01:02.04 *** join/#brlcad andrecastelo (n=chatzill@189.71.41.1)
01:03.06 andrecastelo good evening everyone ;)
01:06.47 hippieindamakin8 good morning andrecastelo
01:25.12 brlcad ahhh, waht a day
01:31.10 spike_ waves at everyone
01:38.12 andrecastelo hey brlcad
01:38.28 andrecastelo is there a problem if i change my mind from implementing MLT in C++ to implement it in C ??? :)
01:41.45 brlcad andrecastelo: heh
01:41.51 brlcad what's the reasoning?
01:41.57 andrecastelo well
01:42.33 andrecastelo originally i thought encapsulation, abstraction and operator overloading would benefit the whole algorithm
01:42.40 *** join/#brlcad DaytonaJohn (n=jra@c-68-55-36-65.hsd1.md.comcast.net)
01:43.14 brlcad andrecastelo: yeah, I don't see that as being a good reason to go with it -- I presumed you were merely justifying what is familiar to you ;)
01:43.19 andrecastelo but some parts of the code written would eventually be incompatible with existing code.. part of the code written in C++ wouldn't be usable in other C code
01:43.30 brlcad do you have a stronger basis in OO or procedural?
01:43.41 andrecastelo and there is no need to rewrite basic structures
01:43.48 andrecastelo in OO
01:43.48 brlcad it just would have to be isolated as c++
01:44.33 brlcad yeah, rewriting basic structures would be frowned -- you'd still be expected to write classes that reuse libbu/libbn/librt as needed
01:45.21 andrecastelo the requirement for a patch is a great thing indeed
01:46.04 andrecastelo i'll update my application accordingly
01:48.30 brlcad great
01:54.54 brlcad for what it's worth, erik doesn't like OO (unless it's pure), procedural is probably a step up for him but still below functional ... he's a schemer ;)
01:55.09 hippieindamakin8 brlcad i posted a reply
01:55.14 brlcad hippieindamakin8: ok
01:55.15 brlcad thanks
01:55.28 hippieindamakin8 hey can we discuss it rt now ?
01:56.24 andrecastelo brlcad: like ruby ?
01:56.57 brlcad like smalltalk, can't speak for him re: ruby
01:57.21 brlcad likes ruby .. about as impractical as smalltalk, but a nice language
01:58.20 andrecastelo (is Ada OO ?)
01:58.22 brlcad andrecastelo: either way, you still just need to be able to justify your design decisions regardless of the mentor's preference ;)
01:58.48 andrecastelo brlcad: i justified it and i hope it's acceptable
01:59.18 brlcad though I would heavily argue against a functional impl for integration/maintainability reasons :)
01:59.46 brlcad hippieindamakin8: i'm not sure what you'd like to discuss
02:00.08 andrecastelo brlcad: you are pro C++ ?
02:00.39 brlcad in general or for your project?
02:00.52 brlcad I could see going either way for your project
02:01.37 brlcad if it is C++, there are a slew of stipulations like still reusing existing libs as much possible and not mixing C++ into any existing C facilities
02:03.27 andrecastelo i see..
02:03.46 brlcad andrecastelo: your app is probably at the point that it should start moving to the wiki too if you haven't started already
02:04.31 andrecastelo yeah, it's too big ehhehe
02:05.21 andrecastelo on a related note - i'm having some weird issues trying to compile some of the code i've written
02:05.41 andrecastelo this is the compile log -> http://pastebin.com/d5eb121ff and this is the code -> http://pastebin.com/d1b8b3aee
02:07.02 andrecastelo what you think is wrong ?
02:07.24 brlcad "inconsistent dll linkage" .. sounds like you're trying to compile a file as both C and C++
02:07.55 brlcad or both imported and exported
02:08.45 andrecastelo actually i haven't compile the version i'm with, i'm guessing that's the problem
02:09.30 andrecastelo (i had that warning before and could compile rtarea)
02:09.44 andrecastelo i'll build everything and get back to you after hehehe
02:09.45 brlcad andrecastelo: OOh.. tsk tsk
02:10.00 brlcad http://pastebin.com/d1b8b3aee <-- bad :)
02:10.17 brlcad you're compiling C code, not C++
02:10.25 brlcad remember your scoping declaration rules for C
02:13.18 andrecastelo bad code??
02:13.25 andrecastelo why exactly ?
02:17.12 brlcad that hilighted line is an error .. think about why :)
02:21.47 andrecastelo ehhe ok ok
02:21.56 pacman87 brlcad: http://brlcad.org/wiki/Revolve_Primitive
02:24.58 brlcad pacman87: I read it :)
02:25.05 brlcad well, skimmed it for now :)
02:25.59 brlcad i'm very dubious as to how you intend to get the profile curve of a given/arbitrary primitive or (even harder) that of a combination
02:26.36 brlcad you don't have a reliable method to project the outline onto 2D
02:32.18 pacman87 yeah, that's the hardest part
02:32.50 brlcad heh, "hardest" is an understatement
02:33.13 brlcad makes the shot() routine for sweeps seem like bubble sort
02:33.40 pacman87 well, i could calculate it numerically
02:33.57 pacman87 it only has to be done once
02:33.59 pacman87 then stored
02:36.10 pacman87 once the outline is found for each shape, combinations aren't that much more work than getting the outline in the first place
02:37.28 hippieindamakin8 ya brlcad i wish not to mix C++ into existinc C facilities but use the existing header and dependancies as it is in the first phase of refactoring the code
02:38.56 pacman87 since each shape has a bounding volume, i could do a grid over the plane, and check each point for in/out
02:39.04 pacman87 and keep refining the border
02:39.08 pacman87 until it meets the tolerance
02:40.53 brlcad andrecastelo: hint: search for "declaring variables mid-function"
02:41.03 pacman87 for the simpler primitives, it may be possible to solve analytically
02:41.19 pacman87 but that's in the 'optimization' phase of my timelime
02:41.25 andrecastelo brlcad: oooooohhh
02:41.27 brlcad pacman87: yes, but how do you "calculate it numerically"
02:41.53 pacman87 given a primitive, get the bounding volume
02:42.16 pacman87 intersect that volume with the plane specified for the 2D revolve outline
02:42.20 brlcad basically you'd end up point-sampling (i.e. ray-tracing) to find the contour.. :)
02:42.28 pacman87 essentially
02:42.35 andrecastelo brlcad: i'm building the project i'll try something in a sec
02:42.36 brlcad hehe
02:42.41 pacman87 but i can ignore everything that's clearly outside or clearly inside
02:43.17 brlcad pacman87: well I suppose that will give an approximation -- you'd also then have to derive and fit a series of splines to the contour .. that's not easy
02:43.44 pacman87 i never said it'd be easy
02:43.46 brlcad just take the case of a projected cube rotated 45 degrees
02:43.49 pacman87 just that it's possible
02:44.23 pacman87 cutting it somewhere down the middle?
02:44.39 brlcad actually finding the four piecewise linear segments would be really hard
02:45.24 brlcad especially at each corner ..
02:45.26 pacman87 it depends on how the 2D outline is actually stored
02:46.55 pacman87 if it's stored as a series of (r,z) points
02:49.50 pacman87 check the midpoint of each segment to make sure it's within the tolerance
02:49.56 pacman87 if not, add a new point in the middle
02:50.28 brlcad hm
02:50.49 pacman87 also specify a maximum distance between points
02:51.05 brlcad I think there's another way that doesn't require sampling
02:51.08 pacman87 to avoid getting (un)lucky on a segment who's midpoint happens to be right
02:51.24 pacman87 please share :)
02:51.46 brlcad don't know why I didn't think of it
02:52.12 brlcad you have the right idea with thinking about it from the perspective of considering the plane
02:53.00 brlcad you're already evaluating a given ray during shot() against some contour
02:54.04 pacman87 shot() for the revolve?
02:54.49 brlcad there's no reason you couldn't just evaluate that same ray against the actual primitive/combination being revolved and just using it's hit/miss characteristic as the inside/outside result
02:55.59 brlcad the trick is that you'll have to figure out where the primitivies/combinations are situated in order to evaluate them
02:56.00 pacman87 what if that ray is rotated away from the original primitive, such that the ray misses the original, but should hit the revolved part
02:56.07 brlcad which is the same problem you have with sweeps
02:57.49 brlcad you'd probably have to perform some sort of newtonian iteration to find the extents .. arg, that'd really be slow as hell
02:58.34 andrecastelo (compiled perfectly
02:58.36 andrecastelo )
02:59.32 *** join/#brlcad justin__ (n=justin@74.92.144.217)
02:59.51 pacman87 for rev shot(), you're getting the segment intersected with the base shape, and checking it agianst the outline plane?
03:01.04 brlcad sort of
03:01.37 brlcad consider a ray being shot at a shape that is centered on the axis of rotation
03:01.50 pacman87 symmetric shape or not?
03:01.57 brlcad doesn't matter
03:02.07 pacman87 ok
03:02.44 brlcad what you end up doing is solving the min/max rotation of that shape to find the closest and farthest entry/exit spans
03:03.21 *** join/#brlcad SWPadnos_ (n=Me@dsl107.esjtvtli.sover.net)
03:04.00 yukonbob 1 note while pacman87 is here -- in the into to your posting today... did you mean start and end surfaces will be "flat plates", or "flat planes" (or does it matter? typo/grammar editing is the best I can offer on that posting :)
03:04.11 brlcad that's the newtonian iteration I was thinking of, you have to solve the aligned rotations that give you maximal extents .. and that basically amounts to shooting the same ray at that shape with different rotations
03:04.53 pacman87 right, that method does a lot of calculation for each shot9)
03:04.55 pacman87 shot()
03:05.36 pacman87 yukonbob: should probably be planes, thanks for the feedback
03:05.44 yukonbob laughs
03:05.52 yukonbob yw
03:06.05 brlcad pacman87: this is all interesting and something to keep thinking about ... BUT ... I have to admit that I'm lacking faith in finding a "useful" solution in reasonable time -- I'd probably say stick with classic 2D sketches being revolved first and proposing in your timeline to revisit with 3D shapes later as time permits :)
03:06.31 pacman87 if you find the outline once per shape, then the ray intersection is a 2D problem
03:06.34 brlcad pacman87: no more than sampling to find an outline :) .. should be less if the solver can converge fast enough :)
03:06.51 pacman87 right, but the outline only happens once per shape
03:06.57 pacman87 not once per ray
03:06.58 brlcad except like I said earlier, that approach results in sampling and shape extraction problems
03:07.42 brlcad the "real solution" is to complete brep support for all of the primitives, then you'd just project the 3D brep curves onto the 2D plan and have your exact curve
03:07.42 pacman87 you dont need to extract the shape if you keep the outline as a set of points
03:07.54 brlcad brep support, however, is incomplete
03:08.32 pacman87 but yeah, i'll move the 3D shapes to the end under 'additional features'
03:09.13 *** join/#brlcad hippieindamakin8 (n=hippiein@210.212.55.3)
03:15.01 andrecastelo hey brlcad.. i'll keep on working on the patch tomorrow
03:15.09 andrecastelo i'm too tired, i'm going to get some sleep
03:15.16 brlcad the real question is how you intend to solve sweeps as they're a similar problem
03:15.21 andrecastelo cya tomorrow
03:15.27 brlcad cya andrecastelo
03:15.48 brlcad does not comprehend this "sleep" he speaks of
03:16.29 pacman87 brlcad: it's sort of like being knocked unconscious, but you feel better when you wake up
03:18.21 pacman87 the sweep will probably have to be done how you describe
03:18.58 brlcad dunno, I felt pretty good after the only time i've been unconconscious .. wisdom teeth .. god bless those drugs
03:19.55 CIA-20 BRL-CAD: 03starseeker * r30658 10/brlcad/trunk/src/proc-db/tire.c: New way of specifying the sides - hopefully somewhat more robust than previous method.
03:20.36 starseeker ``Erik: OK, now what were your tire dimensions again?
03:20.53 starseeker may stand a chance of getting them now
03:20.56 brlcad pacman87: what do you think about implementing the rt_*_brep() routines as part of getting sweep to work?
03:21.27 pacman87 that could be easier/more useful than any other way of doing it
03:22.08 brlcad are you familiar with what boundary representation spline surfaces are, how to define/create them? :)
03:23.07 pacman87 no, but i could learn :)
03:23.31 pacman87 i didnt' know anything about raytracing before i started researching it, either :)
03:23.32 brlcad heck if you just worked on revolve, rt_*_brep(), and some sort of rt_project_brep_to_sketch() routine, that would be insanely useful/cool
03:23.54 brlcad and probably consume all summer
03:24.07 brlcad sweeps then become just a generalized solution
03:24.32 pacman87 yeah, i'll have to start researching breps
03:24.42 brlcad otherwise maybe limiting both sweep and revolve to sketchs for starters, then working on rt_*_brep() as time permits to get generalized shapes
03:24.47 pacman87 when do we finalize exactly the scope of my project?
03:25.02 brlcad when you're happy with it and we're happy with it
03:25.26 pacman87 sketch only first seems to be a good solution
03:25.32 brlcad if you keep going the way you're going, there's little chance for unhappiness :)
03:25.53 pacman87 because if i do the 3D stuff without the brep, i'd just have to redo it later
03:25.57 pacman87 thanks ;)
03:25.58 brlcad save for you being happy and capable of learning the solutions :)
03:26.33 brlcad rt_project_brep_to_sketch() would be pretty math-intensive, for example
03:27.04 brlcad even just implementing sweep/revolve with sketches isn't easy, but extrude is a good example
03:27.27 pacman87 would you want a different project() and intersection() for total outline vs outline in a specified plane?
03:28.09 brlcad total outline?
03:28.17 pacman87 total outline = shadow
03:28.32 brlcad don't see what you mean
03:28.35 pacman87 plane outline = slice, ink, and stamp
03:28.53 pacman87 ex: sphere
03:28.57 pacman87 total outline is great circle
03:29.03 pacman87 plane outline is smaller circle
03:29.13 pacman87 depending on where the plane cuts the circle
03:29.35 brlcad ah, you mean some sort of arbitrary cross-section
03:29.40 pacman87 right
03:30.00 pacman87 which could also be useful for section views
03:33.03 brlcad not sure how useful that would be actually -- even for generating scalable vector draft images you have all curves just projected onto a 2D plane, maybe with hidden edge removal (via projecting surfaces too to 2d patches)
03:33.45 brlcad even for revolve, you just need the projected curves
03:34.09 brlcad as hm, that's not entirely true I suppose
03:34.16 starseeker does little happy dance that things are finally close to Working As Desired and hits the hay
03:34.34 brlcad you want just the projected surfaces, not their edges
03:35.03 brlcad is thinking out loud
03:36.42 pacman87 i'm thinking something like this: http://www.solidsmack.com/wp-content/uploads/2007/08/solidworks-iso-section-04.jpg
03:37.05 brlcad nods
03:39.29 brlcad pacman87: for that specific image, though, you have other facilities at your disposal since it's still 3D -- you basically evaluate the cut plane as a trimming curve for each surface it itersects
03:40.02 brlcad hehe, which maybe is just what you should do too :)
03:40.45 pacman87 right, but for a adding a section view to the drawing, you'll need the plane cut outline, not just the shadow
03:40.49 brlcad tricky operations -- borderlines implementation of the CSG evaluation of BREP-on-BREP surfaces
03:41.16 pacman87 wasn't BREP representations a different GSoC topic?
03:41.19 brlcad yep
03:41.26 pacman87 anyone interested in it?
03:41.34 brlcad there's one proposal for it
03:43.01 brlcad what I was saying, though, is that you can get what you're calling a plane cut outline directly .. by evaluating the intersection of the plane surface as a trimming surface on the surfaces of the brep it cuts
03:43.18 brlcad you get a series of trimming curves in 3D .. that are all planar
03:43.46 pacman87 so brep csg will give you the plane outline already
03:44.30 brlcad kinda, that same operation is required to evaluate breps with csg
03:45.28 brlcad but it also requires even harder non-planar evaluations .. two arbitrary spline surfaces intersecting in arbitrary ways generating sets of non-planar 3d curves
03:45.52 brlcad numerically unstable and hard
03:46.01 pacman87 really needs to get some background info
03:46.10 brlcad but still critical for what we need ;)
03:47.09 pacman87 so the rt_*_brep() function does what exactly?
03:47.16 brlcad pacman87: search for "BOOLE" and "ESOLID" -- they were research from a few years ago that implemented what we need (in a manner of speaking), but not production code to say the least
03:47.44 brlcad they are good reading material for background information though, as well as just general searches on boundary representation geometry
03:48.04 brlcad do you recall the rt_*_nurb() function?
03:48.15 brlcad it's the same thing
03:49.12 brlcad just that the nurbs routines were never completed and use an obsolete data structure
03:49.57 brlcad so the function is actually already implemented for several of the primitives, just needs to be renamed to rt_*_brep() and have the data structures updated to the new openNURBS-based structures
03:51.12 pacman87 to summarize: start with revolve using sketch, then sweep using sketch, then rt_*_brep(), then project_brep_to_sketch()
03:52.02 pacman87 then add 3D support to sweep (and revolve?) using brep
03:53.17 brlcad the basic difference is implicit vs explicit evaluation -- your g_hyp.c uses implicit evaluation in the shot() routine .. the hyperboloid is defined by an implicit equation where you have x^2/a^2 + y^2/a^2 - z^2/c^2 = 1 being solved for a given t parameter
03:54.26 brlcad another approach would be to actually have that actual surface in parametric form as a spline surface .. evaluation is considerably different
03:54.56 brlcad pacman87: yeah, that sounds like a strong plan I'd be happy with :)
03:55.54 brlcad even the reverse order would be fine with me, e.g. brep() then project() then revolve then sweep
03:56.17 pacman87 the only difference between the 3D and sketchs is that for 3D, the sketch comes from the brep, right?
03:56.18 brlcad as these are all "core tasks" with really high value
03:57.15 brlcad what do you mean?
03:57.57 pacman87 the initial problem with revolving the 3D shape was in getting the 2D outline
03:58.29 pacman87 and project() solves that problem
03:58.46 brlcad yes
03:58.48 pacman87 but it's not the same as revolving/sweeping the actual 3D shape
03:58.51 brlcad should solve it exactly
04:02.11 pacman87 because the maximum extents of the projection could happen at different distances along the sweep or different angles around the revolve
04:02.25 brlcad yeah, it's not the same ... I believe it is the same if you constrain the revolve/sweep to maintain the object's normal/orientation in the direction of the sweep/rotate
04:03.10 brlcad but if you allow the more generalized case that allows the object to reorient/rotate while being swept/revolved, there's a problem
04:03.11 pacman87 not quite
04:04.11 pacman87 revolving an ellipse with focii at (4,1) and (6, -1) about the z axis
04:05.01 pacman87 you can't just project it in the direction of Z cross R
04:05.08 pacman87 because the path is curved
04:05.19 pacman87 so to get the real outline, you'd need a curved projection
04:06.44 pacman87 in the simple case, just take the line segment between them
04:06.59 pacman87 if you use the linear projection, Rmin = 4 and Rmax = 6
04:07.41 pacman87 but really, Rmin = sqrt(4^2 + 1^2) and Rmax = sqrt(6^2 + 1^2)
04:09.11 brlcad hm, i'm still not seeing the issue -- the ellipse you describe results in an elliptical torus, yes?
04:09.29 pacman87 ok, forget the ellipse
04:09.38 pacman87 just look at the 2D line segment
04:09.43 pacman87 revolve it around the z axis
04:10.13 pacman87 the center of the 'object' is at (5,0)
04:10.28 pacman87 so it'd be projected along the y axis
04:10.36 pacman87 (Z cross R)
04:11.28 pacman87 that rotation would give you a donut with Rmin = 4 and Rmax = 6, from projection along y
04:12.09 pacman87 you follow up to this point?
04:13.00 brlcad probably just needs a visual aid, but so far sounds good
04:13.21 pacman87 you get a different width if you take a paintbrush and paint | -> vs / ->
04:14.22 pacman87 i'll throw together a diagram
04:17.31 brlcad i think we may just be saying the same thing in two different ways too -- I was saying that you *have* to maintain the object's orientation with respect to the rotation, so your / segment (presume facing into display, for example) at the 180 rotation angle is now on the other side of the axis as \ (now facing out of your display)
04:18.25 brlcad everything should work out if you keep it oriented, else it can self-intersect, pinch solidity, and other nasty effects
04:18.56 brlcad (at least for 3d)
04:20.37 brlcad starseeker: if you intend to add units support, see src/libbu/units.c
04:20.50 pacman87 https://webspace.utexas.edu/trv82/www/revolve.png
04:20.56 brlcad otherwise default should always be mm :)
04:22.09 pacman87 medium blue is original shape, cyan is the projected shape, green circle is true revolve bounds, red circle is revolve bounds from projection
04:23.36 brlcad AHA, I see what you're trying to show me now, heh :)
04:23.52 pacman87 yeah, saved me 1k words :)
04:24.16 brlcad I was talking about something a bit different :)
04:25.35 pacman87 right, but i'm saying keepign the 2D plane's normal vector along the sweep path won't help my problem
04:26.09 brlcad for the general projected 3D case
04:26.11 pacman87 if the sweep path is curved
04:26.36 pacman87 yes, sweeping with the 2D projection of a 3D shape
04:27.16 pacman87 you also have trouble on the sweep if you allow rotation of the 2D outline about the sweep direction
04:27.23 pacman87 even if the sweep direction is straight
04:27.48 brlcad definitely
04:28.50 pacman87 and i can't think of a 'nice' solution to these problems
04:28.50 brlcad that's what I was getting at at first about maintaining the orientation
04:29.19 pacman87 meaning keep plane normal in line with sweep, and no rotation?
04:29.23 brlcad I can see one, but it's still pretty hard
04:31.15 pacman87 if i can work out a curved project(), the revolve would be possible
04:31.17 brlcad you end up taking your sweep curves (e.g. your green lines in your diagram) and actually create a brep surfaces using those curves and use the original object as the surface coefficients
04:31.50 brlcad that, however, is paramount to "cheating" imo -- it's an explicit parametric solution as opposed to an implicit one
04:32.41 brlcad could do some research in the literature on implicit sweep objects, there are some papers on the subject (that I lamentably admit I've not read yet)
04:34.35 pacman87 the problem with a sweep is that the green curves depend on the curvature of the sweep path
04:34.44 pacman87 which is constnat for the revolve, so it's a lot easier
04:35.43 brlcad for sweeps, you could start by saying the swept object must be rotationally invariant -- keep if fixed
04:36.49 pacman87 disallow rotation about the sweep path?
04:37.34 brlcad object rotation, yes
04:37.47 brlcad the path is still some arbitrary spline path
04:38.10 brlcad hm, somewhat interesting http://www.unknownroad.com/publications/SweepsTRApril2005.pdf
04:39.27 pacman87 reads
04:39.46 brlcad files for later
04:39.58 pacman87 s/reads/skims ;)
04:43.47 brlcad mm, interesting http://dimacs.rutgers.edu/Workshops/CompAided/slides/blackmore2.pdf
04:45.20 brlcad very similar to what you suggested
04:45.29 brlcad 2D scalar fields
05:01.53 pacman87 i didnt really read in depth, but it looks like the links just deal with 2D shapes
05:05.27 brlcad implicit 2D shapes though
05:06.09 brlcad you could leverage that directly with sampling if you *had* to
05:39.28 *** join/#brlcad clock_ (n=clock@77-56-93-95.dclient.hispeed.ch)
07:04.03 *** join/#brlcad clock_ (n=clock@zux221-122-143.adsl.green.ch)
07:50.37 *** join/#brlcad Axman6 (n=Axman6@pdpc/supporter/student/Axman6)
08:28.09 brlcad waves and wanders a bit
10:00.48 *** join/#brlcad Axman6 (n=Axman6@pdpc/supporter/student/Axman6) [NETSPLIT VICTIM]
10:00.48 *** join/#brlcad clock_ (n=clock@zux221-122-143.adsl.green.ch) [NETSPLIT VICTIM]
10:00.49 *** join/#brlcad SWPadnos (n=Me@emc/developer/SWPadnos) [NETSPLIT VICTIM]
10:00.49 *** join/#brlcad Twingy (n=justin@74.92.144.217) [NETSPLIT VICTIM]
10:00.49 *** join/#brlcad prasad_ (n=psilva@static-70-108-244-218.res.east.verizon.net) [NETSPLIT VICTIM]
10:00.49 *** join/#brlcad pacman87 (i=127@resnet-45-192.dorm.utexas.edu) [NETSPLIT VICTIM]
10:00.49 *** join/#brlcad CIA-20 (n=CIA@208.69.182.149) [NETSPLIT VICTIM]
10:00.49 *** join/#brlcad dtidrow (n=dtidrow@c-69-255-182-248.hsd1.va.comcast.net) [NETSPLIT VICTIM]
10:00.49 *** join/#brlcad b0ef (n=b0ef@062016141231.customer.alfanett.no) [NETSPLIT VICTIM]
10:00.49 *** join/#brlcad alex_joni (n=juve@emc/board-of-directors/alexjoni) [NETSPLIT VICTIM]
10:00.49 *** join/#brlcad poolio (n=poolio@bz.bzflag.bz) [NETSPLIT VICTIM]
10:23.27 *** join/#brlcad mafm (n=mafm@elnet-111.lip.pt)
10:25.16 mafm hallo
10:35.42 Axman6 o/
10:44.37 *** join/#brlcad camcorder (n=draco@81.213.157.51)
11:51.17 starseeker brlcad: OK, thanks :-). Apparently a lot of US tire size specifications use Inches, so conversion will be needed...
12:00.40 clock_ brlcad: I wonder have you ever modelled a ball bearing?
12:00.59 clock_ Do the raceways have the same inner diameter as the diameter of the balls?
12:01.05 clock_ Some people claim that I think it's bullshit
12:03.05 archivist no balls need some clearance
12:03.31 archivist also press fit is allowed for in the clearance
12:03.52 clock_ I wonder how they get the balls inside
12:04.41 archivist without the retaining plates (before they get riveted
12:04.42 clock_ do they ram them with such a pressure that the hardened rings elastically deform and make way?
12:05.07 clock_ you mean without the cage?
12:05.10 archivist all metal is elastic
12:05.41 clock_ I may need to model my skateboard in the BRL-CAD
12:05.59 archivist yes except for crowded large ring bearings, they have a small groove to let in the balls
12:06.14 clock_ yesterday I have mounted my superheavy 30kg 21'' CRT on a wall using a unique DIY space frame design wall mount
12:06.45 archivist btw your quit message has an XML error
12:07.11 clock_ Oh I see fixed thanks
12:08.14 clock_ this space frame is amazing
12:08.30 clock_ if you poke at the monitor with a finger slightly, it swings.
12:08.46 clock_ But if you grab the holder with two hands and push it forth and back, the monitor stays without movement.
12:08.56 clock_ It weighs only 3kg, but is rock solid
12:09.12 clock_ Now I understand fully why they use it in cosmic vehicles
13:49.43 CIA-20 BRL-CAD: 03starseeker * r30659 10/brlcad/trunk/src/proc-db/tire.c: Clean up unused variables in new specification scheme.
13:58.17 *** join/#brlcad docelic (n=docelic@78.134.198.227)
14:03.06 *** part/#brlcad camcorder (n=draco@81.213.157.51)
14:04.03 *** join/#brlcad d_rossberg (n=rossberg@bz.bzflag.bz)
14:33.18 brlcad d_rossberg: good morning
14:35.23 d_rossberg isn't it almost lunch time?
14:35.32 prasad_ indeed
14:37.14 brlcad hour or so
14:38.00 brlcad ~ugt
14:38.01 ibot i heard ugt is Universal Greeting Time. Created in #mipslinux, it is a rule that states that whenever somebody enters an IRC channel it is always morning, and it is always late when the person leaves. The local time of any other people in the channel, including the greeter, is irrelevant. http://www.total-knowledge.com/~ilya/mips/ugt.html
14:40.04 d_rossberg ah, somebody spend its rare time creating a rule for it :)
14:57.20 brlcad =)
14:58.50 clock_ and someone else spent his rare time commenting that somebody spend its rare time creating a rule for it
14:59.41 brlcad clock_: curious if john's -k option help your 210x report
15:00.12 brlcad it's not a fix, but potentially a big performance opt
15:00.27 clock_ brlcad: I don't have rt available here, what does -k do?
15:00.39 brlcad it was just added
15:00.42 brlcad see your report
15:00.47 clock_ what does it do?
15:00.56 clock_ the report doesn't say what it does
15:06.59 brlcad it's a -k cutting plane option
15:12.43 yukonbob morning
15:13.40 clock_ http://www.theregister.co.uk/2008/04/11/us_war_robot_rebellion_iraq/
15:15.33 brlcad g'mornin yukonbob
15:21.31 ``Erik *readreadread*
15:24.10 ``Erik starseeker: 255/40ZR18 (mm/aspect rating inches)
15:26.29 ``Erik likes ruby, smalltalk, ocaml, erlang, even objc... was not trying to say "use C, not C++", was just asking for support to the argument that MLT would benefit greatly from classes, encapsulation and operator overloading...
15:26.58 ``Erik I do *NOT* like operator overloading :D but classes, namespaces, etc, *shrug* sometimes they're the right tool
15:33.46 *** join/#brlcad andrecastelo (n=chatzill@189.71.41.1)
15:34.06 andrecastelo good morning folks
15:34.14 ``Erik greetings, andre
15:34.21 ``Erik jabs brlcad with a cattleprod
15:35.06 ``Erik <-- wanders off to lunch, bbiab
15:38.55 *** join/#brlcad docelic (n=docelic@78.134.198.227)
16:45.26 *** join/#brlcad Elperion (n=Bary@p54873D12.dip.t-dialin.net)
16:47.59 brlcad ``Erik: I was at korean
17:13.43 *** join/#brlcad clock_ (n=clock@77-56-87-36.dclient.hispeed.ch)
17:15.09 *** join/#brlcad Elperion (n=Bary@p54873D12.dip.t-dialin.net)
17:33.14 yukonbob tries to figure out the GSoC spreadsheet...
17:33.47 yukonbob ahhh... got it
17:35.00 yukonbob (couldn't find "sheet" selector)
17:45.41 brlcad :)
18:21.29 *** join/#brlcad Elperion (n=Bary@p54873D12.dip.t-dialin.net)
18:22.52 mafm bye
18:23.59 CIA-20 BRL-CAD: 03brlcad * r30660 10/brlcad/trunk/src/libbu/htond.c: cleanup header
18:29.10 *** join/#brlcad Elperion (n=Bary@p54873D12.dip.t-dialin.net)
18:34.39 andrecastelo hey brlcad..
18:35.23 andrecastelo the exposed area center is rather straight forward - get the hit points for the area and do the median
18:35.30 andrecastelo but what about the presented area ?
18:36.35 *** join/#brlcad pacman_87 (i=127@resnet-45-192.dorm.utexas.edu)
18:38.39 *** join/#brlcad Elperion (n=Bary@p54873D12.dip.t-dialin.net)
18:55.46 CIA-20 BRL-CAD: 03starseeker * r30661 10/brlcad/trunk/src/proc-db/tire.c: Experimenting with ways to make reasonable tire shapes from standard input data.
18:59.19 brlcad andrecastelo: presented is same as exposed.. just a different set of points
19:00.40 andrecastelo yeah but for example, for the exposed area i just recorded every point in the partition->inhit->hitpoint
19:00.56 andrecastelo because if the ray hit those points, then the area is exposed, right ?
19:02.11 brlcad you're evaluating entire shotlines, there are multiple in/out hits along the shotline -- rays are evaluated all the way through
19:02.29 brlcad multiple hits, not just first hit
19:05.21 andrecastelo brlcad: so this is wrong ? http://pastebin.com/d4fd4025d (code is from line 45 to 56)
19:05.41 brlcad can't get to pastebin.com from here
19:06.07 andrecastelo hm ok
19:07.00 andrecastelo brlcad: http://rafb.net/p/WQdS4J26.html
19:08.28 *** join/#brlcad Elperion (n=Bary@p54873D12.dip.t-dialin.net)
19:15.57 ``Erik wiggles his toes
19:16.10 *** join/#brlcad Elperion (n=Bary@p54873D12.dip.t-dialin.net)
19:17.07 andrecastelo hey ``Erik, i've responded to your comment on the app
19:17.19 andrecastelo did you have the time to see it yet ?
19:17.25 ``Erik just read it
19:17.59 andrecastelo what did you think ?
19:18.20 ``Erik d'no yet, looks like you looked around and thought, which was really what I was trying to kick off :)
19:18.30 ``Erik btw, your 'home page' doesn't work, I get a 404
19:18.34 brlcad andrecastelo: exposures are handled in increment_assembly_counter()
19:18.41 andrecastelo really? i'll check
19:19.55 brlcad andrecastelo: if you look at the struct area, you'll see there are two counters --> "exposures" and "hits" .. just follow the logic where those are incremented
19:19.56 ``Erik <-- kinda feels unanswered wrt c vs c++...
19:20.22 andrecastelo brlcad: hm ok
19:20.44 ``Erik I'm not going to advocate one language or the other, I just want to know exactly why you'd choose one over the other
19:21.57 ``Erik brlcad is trying to mkae it sound like I'm gonna ask why you don't propose to write it in scheme, heh :D I just want to know that you understand the various paradigms, the algorithm, and the existing code base well enough to make an informed decision *shrug*
19:22.37 andrecastelo ``Erik: i discussed this with brlcad the other night.. i proposed C++ because i'm familiar with it and i thought classes, abstraction and overloading would benefit the project as a whole
19:23.11 andrecastelo and in the end, when assembling the algorithm together, the end result would be more readable and simple
19:23.29 ``Erik yeah, I saw, and sorry, but that statement seems like fluff to me, I've done enought c++ and java and those to know the broad brush statements *shrug* :)
19:23.31 andrecastelo but since there are already basic structures, rewriting them would be a big no no
19:24.31 ``Erik re-writing, yes... but wrapping or interfacing is fine *shrug*
19:25.06 ``Erik indeed, one of the ideas brlcad put forth at the beginning was a full OO wrapping of the core libraries functionality
19:25.45 andrecastelo sorry i thought that wasn't the ideal
19:25.58 andrecastelo i thought the general consensus was to keep everything in simple C
19:26.08 andrecastelo (i mean standard C)
19:26.36 ``Erik opennurbs is c++, we already have c++ in librt *shrug* it wouldn't be a huge issue to go with c++...
19:27.52 ``Erik you made a statement that the task would benefit from using features of c++, and then some bland sales pitch on c++, I want to know exactly why those features would aid this... if it's just familiarity, that's cool, if there's something more, I want to know :D
19:28.32 ``Erik (sorry if I seem a bit aggressive, I'm a language geek so I'm keen to understanding the various trade-offs when engineering software)
19:29.06 andrecastelo i thought of using some oo features because i thought of them as a natural with point and vector handling, you know ?
19:29.19 andrecastelo and because i'm more familiar with it and all
19:29.29 andrecastelo but i have no problem programming in either language
19:29.35 ``Erik hum, we already have point vector and matrix handling in vmath.h (and in tiemath.h, but that's going away)
19:30.41 andrecastelo couldn't those functions and macros in vmath.h be wrapped up in a class ?
19:30.54 ``Erik sure, what would the advantage of that be?
19:32.53 andrecastelo essentially, it would be easier to use points and vectors by those who do not know vmath.h by memory
19:33.03 ``Erik hummmm, possibly, I know I have to keep looking stuff up in vmath :D "is it v2add, or vadd2, or ..." :)
19:33.04 brlcad with a new class that none of the rest of the devs know by memory? :)
19:33.21 archivist andrecastelo, speed of running is often more important than speed of writing software
19:33.33 brlcad you'd only know it because you wrote it, otherwise you'd still have to look up the API when you use it
19:33.38 ``Erik heh, in this case, yes... in most cases, I'd disagree, archivist :)
19:34.02 ``Erik most software spends most of its time waiting for users or network or disk... developer time is far more expensive than cpu time
19:34.21 archivist except deep in graphics
19:34.25 andrecastelo ``Erik: but he has a point
19:34.44 andrecastelo the MLT algorithm is processor intensive, any advantage is welcome, right ?
19:34.49 ``Erik (also; it's possible to make very very fast c++... hell, it's even possible to make very fast java if you know how to code)
19:35.06 ``Erik <-- likes to play devils advocate, btw...
19:35.10 brlcad vmath is very simple and high-performance simply because it's inline'd math -- it's actually rather tricky to get oo-based math that actually out-performs (usually requires some specific templatized foo)
19:35.45 ``Erik still wants to ugly up vmath with sse/altivec intrinsics
19:36.43 brlcad the tradeoff is maintainability and integration in this case, we have a math lib so I'd be for using that, not wrapping up some new layer for OO sake -- it's enough work to implement MLT without spending time on that
19:37.50 ``Erik well, if the lead time in wrapping it is made up for in fast implementation (and still maintainable), then it is worth it... *shrug* that can be a hard call to be correct one, though
19:37.51 brlcad ``Erik: that's where it actually gets kinda interesting to abstract it .. multiple impl types in macros is fugly as hell, few things that make templates actually look "good"
19:38.08 ``Erik *nod*
19:38.46 ``Erik I'm wondering if being compile time specified is acceptable... high performance stuff often has multiple codepaths compiled and does a runtime detect to see which one to use
19:39.04 ``Erik so binaries can be used on a 486, but still take advantage of a p4 or athlon
19:39.11 brlcad i'd not be convinced of the wrapper though, without lots of profile and cross-platform multi-compiler testing, and that starts adding up to weeks of work/research in itself (especially if mixing in vectorization)
19:39.47 ``Erik that'd be a good pub topic :)
19:39.54 CIA-20 BRL-CAD: 03starseeker * r30662 10/brlcad/trunk/src/proc-db/tire.c: Whoops - set scale factor to one for this part.
19:39.59 andrecastelo the math wrapping up could be something for after the summer
19:40.02 brlcad andrecastelo: and yes .. any path tracing is slow as all hell .. it's a brute force solution
19:40.27 ``Erik well, a statistical method, anyways
19:40.50 ``Erik metropolis tries to cull a lot of the brute force 'waste' off
19:41.07 brlcad it's still slow as balls compared to ray-tracing :)
19:41.40 ``Erik hehehhee, but mlt IS raytracing :D slow compared to the simple phong+shadow rays approach, sure
19:41.41 brlcad like one-to-two orders, the optimizations usually cull some linear time component (like /2)
19:41.52 yukonbob ``Erik: re: run-time optimization -- I can't speak from coding experience, but in the case of mplayer for example, runtime cpu detection is available, but contraindicated... one would be better off knowing the arch that is the target and installing the proper CPUFLAGS, no?
19:42.44 ``Erik most of my experience with multiple code path stuff comes from proprietary binary distribution stuff, yukon :( chumming with 'tards trying to make the next ultimate video game, etc
19:43.22 ``Erik so the object bloat is accepted for the handful of common configurations expected
19:48.17 brlcad yeah most games can take a wrapper hit, or poor design hit - they often spend most of their time in the graphics loop
19:48.54 ``Erik heh
19:49.21 ``Erik and I've seen too much "my game will be fast because I'm writing it in assembly" or "this is going to rock, I'm using pascal with assembly where performance is needed" :/
19:49.46 brlcad I actually implemented a series of vector/matrix replacements for vmath many years ago, as C++ -- it was actually rather complicated and unreliable at the time to match performance, compilers that would ignore the inline directives for example
19:50.12 brlcad likes to write in posix shell scripting and drop to assembly where performance is needed
19:50.23 archivist ya have to know your algorythm, never mind the language
19:50.43 archivist used to do assembler
19:51.27 brlcad mips assembler ftw
19:51.29 ``Erik has layed down a lot of 6510, 6812, and 80286 assembly :(
19:51.35 ``Erik r2k was sweeeet
19:51.56 ``Erik the bsd guys would call it "teh sex0rz"
19:51.59 archivist I started on 6502 oops that shows my age
19:52.11 prasad_ ecmascript ftw
19:52.16 prasad_ lolz
19:52.26 ``Erik 6510 and 6511 were essentially 6502 with minor tweaks
19:52.33 ``Erik c64, c64c, c128... good little boxes
19:52.46 ``Erik actually, my first was a z80 cp/m machine
19:52.47 brlcad wonders who poisoned prasad_'s coffee
19:53.15 ``Erik ecma script because javascript has become a four letter word? :D
19:53.38 archivist eczma script
19:53.41 andrecastelo realizes he is way too young
19:53.52 prasad_ archivist: sounds about right
19:54.16 ``Erik heh, everyone was young at some point :D
19:54.44 andrecastelo i started programming in mirc script :p
19:54.46 prasad_ c++ is where it's at :o
19:54.58 andrecastelo then i tried my hand with delphi when i was 13 or 14
19:55.20 andrecastelo i forgot about programming for a while, returning when in college, where i learned java, c and c++
19:55.21 ``Erik winiot *cough* O:-)
19:56.04 andrecastelo ``Erik: the 404 is fixed (i hope)
19:56.12 ``Erik "like Montezuma's revenge on discount taco night..."
19:57.13 ``Erik http://www.smbc-comics.com/comics/20080410.gif
19:58.20 andrecastelo lol
20:00.18 prasad_ haha
20:27.22 andrecastelo well guys
20:27.26 andrecastelo off to class
20:27.28 andrecastelo cya later
20:31.04 ``Erik If you want to make an omelet, you have to kill a few people.
21:04.08 CIA-20 BRL-CAD: 03brlcad * r30663 10/brlcad/trunk/regress/flawfinder.sh: fix test failure
21:17.06 *** join/#brlcad Elperion (n=Bary@p54873D12.dip.t-dialin.net)
21:43.52 *** join/#brlcad Elperion (n=Bary@p54873D12.dip.t-dialin.net)
21:53.27 yukonbob remembers "Montezuma's Revenge" game on the C=64
22:52.37 *** join/#brlcad IriX64 (n=mariodot@bas2-sudbury98-1177593626.dsl.bell.ca)
22:53.49 IriX64 http://www3.sympatico.ca/mario.dulisse2/jeep.png <---- a usefull motor vehicle :)
22:56.41 IriX64 what? nobody else here is a hobbyist? :)
22:57.55 IriX64 ``Erik, you were right, found somebody here with 500g drive (sigh)
22:59.26 brlcad yukonbob: http://mapy.atari8.info/l-o/montezuma.png :)
22:59.57 louipc IriX64: too dark. You don't really get the essense of the hot pink and violet
23:00.43 IriX64 louipc: blame brlcads photon mapping
23:01.25 IriX64 "hot" pink :)
23:01.57 brlcad IriX64: it's like we've told you before -- photon mapping is pointless if you're not going to put the model in a box with a custom light source
23:02.26 IriX64 i extracetd all, thought the light source was there
23:02.42 IriX64 ill look again
23:02.53 brlcad eh, there's still no box
23:02.59 IriX64 true
23:03.01 brlcad so it isn't going to work
23:03.22 IriX64 so you enclose it, map it and then remove the box ;)

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