| 01:31.15 | *** join/#brlcad Axman6 (n=Axman6@pdpc/supporter/student/Axman6) | |
| 03:50.09 | *** join/#brlcad andrecastelo (n=chatzill@189.71.31.179) | |
| 05:46.54 | *** join/#brlcad clock_ (n=clock@77-56-87-218.dclient.hispeed.ch) | |
| 06:14.41 | yukonbob | hello , cadheds |
| 06:14.47 | yukonbob | *cadheads |
| 06:15.30 | *** join/#brlcad andrecastelo_ (n=chatzill@189.71.14.236) | |
| 06:15.59 | yukonbob | uhhhhhhh |
| 06:16.29 | yukonbob | there are andrecastelo's popping up like mushrooms in here.. |
| 06:16.37 | yukonbob | set out the traps... |
| 06:52.29 | brlcad | howdy yukonbob |
| 07:13.24 | *** join/#brlcad clock_ (n=clock@zux221-122-143.adsl.green.ch) | |
| 07:33.13 | *** join/#brlcad d_rossberg (n=rossberg@bz.bzflag.bz) | |
| 08:30.09 | *** join/#brlcad elite01 (n=elite01@unaffiliated/elite01) | |
| 10:08.06 | *** join/#brlcad mafm (n=mafm@elnet-111.lip.pt) | |
| 10:10.02 | mafm | hello |
| 10:13.28 | *** join/#brlcad Mouette (n=root@fw1.phys.sinica.edu.tw) | |
| 10:39.18 | *** join/#brlcad andrecastelo__ (n=chatzill@189.71.13.212) | |
| 12:21.11 | *** join/#brlcad andrecastelo__ (n=chatzill@189.71.13.212) | |
| 12:38.06 | *** join/#brlcad elite01 (n=elite01@unaffiliated/elite01) | |
| 13:11.59 | pacman87 | morning, all |
| 13:14.09 | mafm | morning |
| 13:56.36 | *** join/#brlcad clock_ (n=clock@zux221-122-143.adsl.green.ch) | |
| 14:42.22 | pacman87 | d_rossberg & brlcad: the revolve axis is currently set as the sketch's y-axis. it would be fairly easy to allow the user to specify a different x coordinate to revolve about -- would this be useful, or would it be better assume that the sketch is setup properly? |
| 14:43.24 | pacman87 | if the sketch editor could be extended to handle transformations (translation, rotation, scale) |
| 14:43.58 | pacman87 | that would probably work better |
| 14:44.31 | pacman87 | allow more flexablilty with sketches, and avoid the extra computation doing the translation each time in revolve |
| 14:45.50 | brlcad | ewilhelm: yes |
| 14:51.33 | *** join/#brlcad prasad_ (n=psilva@h-67-103-183-185.mclnva23.covad.net) | |
| 14:59.45 | ``Erik | O.o |
| 15:05.09 | brlcad | pacman87: "no comment" .. i.e. I defer to you and d_rossberg on that one |
| 15:05.47 | pacman87 | i'm assuming the curent sketch editor doesnt already do that... |
| 15:08.26 | brlcad | present sketch editor is crappy |
| 15:09.11 | ``Erik | hum, now tcl and tk have 8.5.3 out |
| 15:09.13 | brlcad | it'll let you translate, but only edge/curve at a time |
| 15:09.35 | brlcad | presently no scaling or rotation, though they would be trivial to add |
| 15:10.02 | brlcad | you just have this absolute 2D coordinate space that you work in, create your sketch |
| 15:11.13 | pacman87 | should i start a 'wish list' for the editor? |
| 15:13.06 | brlcad | sure |
| 15:14.11 | brlcad | could add a section to the TODO specifically for it or a new file somewhere in doc or in src/primitives/sketch etc |
| 15:14.52 | ``Erik | it might be better to add it to the orange page or make something similar to that, then migrate those to the TODO in svn when people agree? |
| 15:15.46 | d_rossberg | pacman87: to use the y-axis as the revolve axis is ok for now |
| 15:16.35 | pacman87 | how much sketch checking should i do? |
| 15:17.00 | pacman87 | ie, make sure it's a closed loop? |
| 15:17.07 | d_rossberg | what kind of checks do you need |
| 15:17.52 | d_rossberg | you could also have some kind of default behavior if it's not closed |
| 15:18.02 | pacman87 | closed loop, everything on the + side of the y-axis |
| 15:18.49 | d_rossberg | why not on the - side? |
| 15:19.26 | pacman87 | my algorithm for partial revolves assumes + only |
| 15:20.25 | pacman87 | is there an application for partial revolves on the - side too? |
| 15:22.49 | d_rossberg | i don't know (at the moment) but you can have a sketch with the rotation axis moving through (but this can be done by two rotatons too) |
| 15:23.14 | d_rossberg | pacman97: BTW the sketch_name in rt_revolve_internal has a problem |
| 15:23.53 | d_rossberg | in asc2g there will be no memory allocated for it, and in ifree not freed |
| 15:24.13 | pacman87 | i noticed the asc2g problem |
| 15:24.18 | d_rossberg | maybe you should use bu_vls there |
| 15:25.02 | d_rossberg | (%S format in bu_structparse) |
| 15:25.21 | d_rossberg | see the dsp primitive for reference |
| 15:25.41 | pacman87 | ok, i was basing it more on the extrude |
| 15:27.00 | d_rossberg | the extrude has it's own adjust function |
| 15:40.56 | *** join/#brlcad louipc (n=louipc@206-248-164-28.dsl.teksavvy.com) | |
| 15:51.08 | *** join/#brlcad elite01 (n=elite01@unaffiliated/elite01) | |
| 16:57.20 | *** join/#brlcad docelic (n=docelic@78.134.201.30) | |
| 17:00.34 | brlcad | ``Erik: possibly, though the TODO doesn't cover "big picture"/project goals like the orange page, they tend to be much smaller tasks |
| 17:00.52 | brlcad | a section on the website/wiki would be good for that though, for sure |
| 17:34.03 | *** join/#brlcad d_rossberg (n=rossberg@bz.bzflag.bz) | |
| 18:05.17 | *** join/#brlcad ilya0044566 (n=q@217.118.79.36) | |
| 18:08.05 | ilya0044566 | after the installation, brlcad 7.10 has not offered mr graphical mode in ubuntu 8.04, and i have problems with some libraries for X as Xlib.h. What librarie(s) shall I use? |
| 18:09.47 | *** join/#brlcad elite01 (n=elite01@unaffiliated/elite01) | |
| 18:10.47 | ilya0044566 | in linux [ubuntu] - what libraries for X Window system shall I use? do i need something 'huge' as OpenGL? |
| 18:12.28 | ilya0044566 | People leave the room, than they enter the room. It's kind of-a life, it is kind of-a "this's the way life is, yeah..." |
| 18:23.14 | d_rossberg | ilya0044566: you should use the head version from the subversion repository for Ubuntu 8.04 |
| 18:25.00 | mafm | I go now, bye |
| 18:25.06 | ilya0044566 | head version of which librarie - I have non-cheap internet traffic - this is a problem... |
| 18:26.12 | d_rossberg | and for the xlib you need some X development package (xserver-xorg-dev?) |
| 18:28.17 | ilya0044566 | so, after the installation into new system it has offered me only [nu] at the startup... Is it something well-known, or I just 2 greedy 2 install libraries? I'lltry xorg-dev and others... |
| 18:30.11 | d_rossberg | ~brlsvn |
| 18:30.40 | pacman87 | ~svncad |
| 18:30.47 | pacman87 | ~cadsvn |
| 18:30.47 | ibot | To obtain BRL-CAD from Subversion: svn checkout https://brlcad.svn.sourceforge.net/svnroot/brlcad/brlcad/trunk brlcad |
| 18:30.49 | ilya0044566 | ~brlsvn - what is it? |
| 18:30.51 | ibot | ilya0044566: okay |
| 18:31.39 | ilya0044566 | "okay" - what is it? |
| 18:31.56 | d_rossberg | ilya0044566: ~cadsvn shown the url uf brl-cad's subversion repository |
| 18:32.23 | ilya0044566 | okay |
| 18:32.28 | d_rossberg | use your subversion client wih this url to check out the latest version of brlcad |
| 18:33.03 | d_rossberg | (~brlsvn was mistyped) |
| 18:34.04 | ilya0044566 | ok, but i'm 2 greedy 2 spend 20 mb of traffic, i'm www.ansysED.narod.ru and i'm new 2 open source... |
| 18:36.21 | d_rossberg | that's probable a problem, brl-cad version 7.12.4 (and probable the versions before) has a problem with Ubuntu 8.04 |
| 18:37.12 | d_rossberg | however, you could try to get the X window working |
| 18:37.27 | ilya0044566 | yes, and ubuntu, probably, might have a lot more libraries at the "plain" installation... |
| 18:38.19 | d_rossberg | by instaling did you install the xserver-xorg-dev package of Ubuntu? |
| 18:39.57 | d_rossberg | or the xorg-dev package? |
| 18:40.08 | ilya0044566 | ther were no any options... it's a cd image... only onr cd, but kubuntu's dvd I had was 'empty' too - I compare it with versions of ASPLinux on 4 cd's... |
| 18:41.13 | pacman87 | d_rossberg: the other thing for checking sketches is the order of the spline curves |
| 18:42.10 | ilya0044566 | i don't really know... "essentials libraries for X window system" - this make a sence... I just can't spend traffic for a while... but i surely will have a brlcad installed! |
| 18:42.25 | d_rossberg | ilya0044566: do you update or upgrade your system via internet? |
| 18:43.13 | ilya0044566 | no, 1mb equals 0.1 US $ |
| 18:44.01 | d_rossberg | ilya0044566: you probaly have to install the development packeges via internet (because they are not essential for using the other software) |
| 18:44.19 | ilya0044566 | ok, ...corporations still 'milking' good guys :( |
| 18:45.27 | ilya0044566 | ok. i need 2 quit now... My frien says his program Pro-Engeneer can point the dimensions to the model, and to prepare views... Without autocad, i want to mix BRLCAD with QCAD... Am I right, or there are another ways? |
| 18:46.42 | ilya0044566 | 'other ways' - to be correct... |
| 18:47.58 | d_rossberg | pacman87: sure, they have to have a low degree (2 or so), will it be done in the prep function? |
| 18:48.11 | ilya0044566 | ok, i quit for about 1.5 days |
| 18:48.27 | *** part/#brlcad ilya0044566 (n=q@217.118.79.36) | |
| 18:48.47 | pacman87 | i was thinking about adding a function to sketch.c |
| 18:48.58 | pacman87 | and calling it from rt_revolve_prep() |
| 18:49.07 | pacman87 | since the sweep will need that check too |
| 18:50.25 | d_rossberg | will sweep work with the same degree of spline (i.e. sketch) curves as the revolve? |
| 18:51.09 | pacman87 | yes, that's the plan |
| 18:51.16 | d_rossberg | ... maybe yes if we think of a sweep as a series of revolves (?) |
| 18:53.26 | pacman87 | essentially, yes |
| 18:53.51 | pacman87 | for revolve, i'm mappign the ray into 2d, then finding intersections |
| 18:55.08 | d_rossberg | pacman87: therefore you plan to implement a function which checks the maximum degree of a sketch in sketch.c and call it from revolve.c and sweep.c, that sounds good for me |
| 18:55.49 | pacman87 | what should i name it? |
| 18:56.11 | d_rossberg | as for the closed loop: you can require a closed loop or close it with a default method |
| 18:57.25 | d_rossberg | are there any similar functions to guess the name? |
| 18:57.26 | pacman87 | if it's not closed, the only thing that makes sense is if the two endpoints are on the y-axis |
| 18:58.27 | pacman87 | there's an rt_check_curve() |
| 18:59.11 | d_rossberg | for example, closing the sketch automatically would make the primitive more robust |
| 18:59.27 | pacman87 | ideally, i'd return the degree of the sketch, so if someone else needs it, it's there |
| 18:59.50 | d_rossberg | rt_check_sketch_degree() |
| 18:59.51 | pacman87 | close by line segment from end to start? |
| 19:02.57 | d_rossberg | closing the sketch: from the y-axis to the first point by a straight line, from the last point of one segment to the first point of the next segment by a straight line, from the last point to the y-axis by a straight line (for all: if it is not already closed) |
| 19:04.38 | d_rossberg | the result of automatic closing may be not what the user want but he sees what he did |
| 19:05.15 | d_rossberg | this is better than seeing nothing but the error message |
| 19:05.16 | pacman87 | yeah, depends on how 'smart' i make the algorithm |
| 19:05.31 | pacman87 | since there could be several disjointed segments |
| 19:06.04 | pacman87 | or unconnected sets of segments |
| 19:06.54 | d_rossberg | yes, the sketch can be very ugly, even if it is closed |
| 19:07.11 | pacman87 | self intersecting |
| 19:07.27 | d_rossberg | exactly |
| 19:07.37 | pacman87 | which i don't think will be a problem, other than looking ugly |
| 19:08.35 | d_rossberg | it could be intended to get holes in the solid |
| 19:09.11 | pacman87 | if you have two seperate, independantly closed loops |
| 19:10.14 | pacman87 | the other way to handle open loops is to duplicate all the segments |
| 19:10.18 | pacman87 | forming a shell |
| 19:10.27 | pacman87 | since the hitpoints would be duplicated |
| 19:10.38 | pacman87 | (i ran into this problem with an ill-formed sketch earlier) |
| 19:11.56 | d_rossberg | yes, a double line in the sketch means nothing (no hit) |
| 19:12.29 | pacman87 | i though it was a hit with a zero-length hit segment |
| 19:12.48 | pacman87 | ie, identical in and out points |
| 19:13.47 | d_rossberg | double lines are a common trick to conect two regions in one border line |
| 19:14.33 | d_rossberg | they should be trated as "not there" |
| 19:15.06 | pacman87 | hmmm |
| 19:16.19 | pacman87 | is trying to think of the best way to detect this |
| 19:16.33 | d_rossberg | with double lines you may cut holes in plates if you have to deskribe the plate by one closed borderline |
| 19:17.45 | pacman87 | i'm not seeing it |
| 19:18.37 | pacman87 | say you have three points: (0,0); (0,2); and (1,1) |
| 19:18.51 | pacman87 | and the sketch just has line segments |
| 19:18.54 | pacman87 | so it's a triangle |
| 19:19.04 | d_rossberg | e.g. a wall with a window in it |
| 19:19.51 | d_rossberg | how would you describe this with a single closed border? |
| 19:20.16 | pacman87 | oh, so the sketch outline traces along the middle of the wall, around the window, and back to the edge of teh wall on the same path |
| 19:20.25 | pacman87 | and the overlapping segments cancel |
| 19:20.35 | pacman87 | leaving a window in a wall |
| 19:20.52 | d_rossberg | yep |
| 19:21.22 | pacman87 | where does the 'single' part of the 'single closed border' requirement come from? |
| 19:22.26 | d_rossberg | the structure is much simpler than having a list of closed non overlapping borders |
| 19:24.08 | d_rossberg | a surface has a border and a border is a list of points |
| 19:24.28 | d_rossberg | this is much simpler than "list of list of points" |
| 19:25.23 | d_rossberg | if you need the second you have to compute it from the first one |
| 19:27.21 | pacman87 | i though the sketch primitive could handle multiple closed loops |
| 19:28.30 | pacman87 | and if those loops overlap, then that'd be the same as a self-intersecting closed loop |
| 19:29.46 | d_rossberg | the sketch primitive has no problem with it |
| 19:30.30 | d_rossberg | but you have to decide if two intersection points are identical or not |
| 19:32.22 | pacman87 | so i'd have to check for zero length segments, and for zero distance between the end/start of adjacent segments |
| 19:35.13 | d_rossberg | i would say yes |
| 19:39.44 | *** join/#brlcad clock_ (n=clock@77-56-95-134.dclient.hispeed.ch) | |
| 20:30.17 | brlcad | ~brlsvn is <reply>try ~cadsvn instead |
| 20:30.18 | ibot | brlcad: okay |
| 20:33.07 | brlcad | pacman87: feel free to refactor code needed by multiple primitives into files in src/librt/primitives ;) |
| 20:33.27 | brlcad | nice working pic too :) |
| 20:40.30 | brlcad | pacman87: also adding to the previous discussion, being a solid shotline ray-tracer, no primitives should return zero-thickness ray segments as hits -- they shoule have a non-zero thickness or it's a miss |
| 20:54.37 | *** join/#brlcad homovulgaris (n=homovulg@117.196.130.46) | |
| 20:56.05 | pacman87 | so do a NEAR_ZERO( dist1-dist2, SMALL_FASTF)? |
| 21:31.20 | brlcad | that'd be one way |
| 21:32.10 | brlcad | isolates which of his memory chips is bad after about a dozen reboots and tests |
| 21:32.26 | pacman87 | mmmm, memory chips :) |
| 21:38.39 | brlcad | excessively obscure file corruption errors .. that took a while to pin down |
| 21:40.14 | pacman87 | brlcad: what's your opinion on how to handle non-closed sketches? |
| 21:44.21 | brlcad | pacman87: if they're implicitly 'closed' wrt the rotation axis, I think it should behave accordingly -- e.g. points/edges 0,0 -> 1,1 -> 0,1 would be 'implicitly' closed even though there is no 0,1 -> 0,0 closure |
| 21:45.02 | brlcad | where accordingly means that it'd revolve and ray-trace successfully (as an upside-down cone in that example) |
| 21:45.36 | brlcad | if someone defined 0,0 -> 0,1 -> 1,1 though .. hm, dunno |
| 21:46.52 | brlcad | you could close it automatically by implicitly forming an edge to the 0,y value or throw an error (not so useful but not unreasonable) |
| 21:47.46 | brlcad | i suppose you could also auto-close to the original point if they don't form a closed loop (e.g. to 0,0 in that second example instead of to 0,y) .. but that'd be .. wierd |
| 21:48.55 | pacman87 | most 'auto-closing' ends up rather complicated; ie for multiple open sections |
| 21:51.00 | brlcad | determining what it means might get complicated, but the closure itself could be fairly simple |
| 21:52.25 | brlcad | something like "if a segment/curve endpoint has no connected endpoints, connect it to a line segment that goes from the unconnected x,y point to the corresponding 0,y point |
| 21:53.41 | brlcad | you would probably want to throw an error if you close it for the user since I'd still probably consider that an "invalid" ill-defined revolve sketch, but it'd probably be closer to what was expected |
| 21:54.43 | brlcad | so if someone models a simple open 0,0 -> 1,1 straight segment as the curve, it'd make the cone |
| 21:55.11 | brlcad | 1,0 -> 1,1 would make a cylinder, etc |
| 21:55.26 | pacman87 | ok, will do |
| 21:56.45 | brlcad | as if they'd modeled those as 0,0 -> 1,1 -> 0,1 -> 0,0 for the cone and 1,0 -> 1,1 -> 0,1 -> 0,0 -> 1,0 respectively for the cylinder |
| 21:57.51 | brlcad | probably need to test each edge/curve against the y-axis as a bisector, so you can insert the corresponding points/edges |
| 21:58.55 | pacman87 | so we're still ignoring everything on the (-) side of y? |
| 22:00.31 | pacman87 | one other question: should i modify the actual sketch (add the extra points/segments) or leave it alone? |
| 22:00.48 | pacman87 | modifying the sketch would be easier for me |
| 22:00.51 | brlcad | hm? not really ignoring it |
| 22:02.14 | brlcad | 0,0 -> -1,0 -> 1,1 -> 0,1 would be perfectly valid I would think (two cones that touch tip to tip) |
| 22:02.35 | pacman87 | that's the -x side |
| 22:02.41 | pacman87 | i was referring to the -y side |
| 22:02.45 | brlcad | ah ah |
| 22:03.23 | brlcad | how's -y any different? |
| 22:03.35 | pacman87 | wait, i just confused myself |
| 22:03.41 | brlcad | translate all the values down and it works just fine |
| 22:04.05 | pacman87 | invalid | valid |
| 22:04.08 | pacman87 | axis ^ |
| 22:04.32 | brlcad | in fact, to make your processing simple, you may want to do exactly that -- translate all values into positive xy 'normalized' coordinates |
| 22:05.41 | brlcad | you'd have to translate the ray by the same amount, but it should remove sign problems when evaluating |
| 22:06.11 | pacman87 | let me ask as an open question: what should happen when a circle centered at 0,0 is revolved through 90 degrees? |
| 22:07.29 | brlcad | two quarter-sphere wedges |
| 22:08.08 | pacman87 | ok, that gets a bit more difficult |
| 22:10.03 | brlcad | hm, I take it back about translating to positive first-quadrant coordinates .. that might cause more problems than it solves |
| 22:10.34 | pacman87 | yeah, it's working perfectly when everything has a positive x coord |
| 22:10.57 | pacman87 | s/perfectly/perfectly for straight lines ;) |
| 22:11.57 | brlcad | what about automatically trimming the curves like I suggested -- bisect all curves against the x and y axis so you can evaluate all curves for each of the four quadrants consistently? |
| 22:12.45 | brlcad | since if you got it working for +x, should be a few flips of sign to get the other quadrants |
| 22:12.48 | pacman87 | the y coordinate doesn't working |
| 22:12.55 | pacman87 | doesn't matter* |
| 22:13.25 | brlcad | so only bisect with the x-axis |
| 22:13.37 | brlcad | er, y-axis |
| 22:14.12 | pacman87 | what should result from a triangle at -1,0 1,0 1,2? |
| 22:14.21 | brlcad | then all your x coordinate signs are flipped and only solid for angles 90->270 |
| 22:15.40 | pacman87 | i could pick up the hits with -x coords by using both sides of my projected hyperbola |
| 22:15.44 | brlcad | I'd think a cylinder, no different than 0,0 -> 1,0 -> 1,2 -> 1,0 |
| 22:16.28 | brlcad | testing hits, you'd get solids on both the left and right, but the segments would overlap so you'd combine them (and get the cynlinder since the +x side encompasses) |
| 22:16.54 | pacman87 | so i'd have to keep the hit lists seperate |
| 22:17.43 | brlcad | yeah, you wouldn't have your answer until you evaluate both sides |
| 22:18.14 | pacman87 | which doesnt' really have any computational advantages over just using two revolves |
| 22:18.18 | brlcad | pretty simple book-keeping though, some of the other primitives have to do that |
| 22:18.35 | pacman87 | which primitives? |
| 22:19.10 | brlcad | yeah, don't think there are any computational advantages other than they overlap as *one* primitive so you would only ever get one segment back |
| 22:19.44 | brlcad | whereas if I actually made two revolve primitives, that would be an overlap -- I'd have to union them at a sub-region level |
| 22:21.17 | pacman87 | is that really a problem? |
| 22:22.53 | brlcad | not really -- they are able to do that regardless |
| 22:23.25 | brlcad | the question is more what should a single primitive do -- your -1,0 1,0 1,2 should work I think |
| 22:24.03 | pacman87 | it would do the same by ignoring the -x hits (only for full revolve, though) |
| 22:24.25 | brlcad | in that case it would |
| 22:24.39 | pacman87 | if it was flipped, it'd be different |
| 22:24.44 | brlcad | for other cases, it wouldn't (like your sphere rotated by 90) |
| 22:25.13 | brlcad | s/sphere/circle/ |
| 22:25.46 | brlcad | or even -1,-1 -> 1,1 (two cones) |
| 22:27.17 | pacman87 | yeah, partial revolves are a major difference |
| 22:30.02 | brlcad | if you a) break up prep()/shot() into a left/right case for +-x and b) close all open edges to the y-axis .. should give you a consistent means to test intersection |
| 22:31.24 | brlcad | kicks CIA-22 |
| 22:31.25 | CIA-22 | ow |
| 22:32.15 | *** join/#brlcad Twingy (n=justin@74.92.144.217) | |
| 22:50.57 | *** join/#brlcad elite01 (n=elite01@unaffiliated/elite01) | |