00:08.50 | *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14) |
00:24.33 | *** join/#brlcad FOSScookie (~brian@107-200-34-31.lightspeed.tulsok.sbcglobal.net) |
02:46.58 | Notify | 03BRL-CAD Wiki:Harman052 * 6409 /wiki/Online_Geometry: |
03:09.21 | Notify | 03BRL-CAD Wiki:Harman052 * 6410 /wiki/Online_Geometry/TODO: Content added |
03:21.47 | Notify | 03BRL-CAD Wiki:Harman052 * 6411 /wiki/Online_Geometry/TODO: Formatting improved |
03:22.23 | Notify | 03BRL-CAD Wiki:Harman052 * 6412 /wiki/Online_Geometry/TODO: /* New Features */ |
03:22.45 | Notify | 03BRL-CAD Wiki:Harman052 * 6413 /wiki/Online_Geometry/TODO: /* New Features */ |
03:40.21 | Notify | 03BRL-CAD Wiki:Harman052 * 6414 /wiki/Online_Geometry/TODO: |
03:42.29 | Notify | 03BRL-CAD Wiki:Harman052 * 6415 /wiki/Online_Geometry/TODO: /* Enhancements */ |
03:47.06 | Notify | 03BRL-CAD Wiki:Harman052 * 6416 /wiki/Online_Geometry/TODO: |
03:48.27 | Notify | 03BRL-CAD Wiki:Harman052 * 6417 /wiki/Online_Geometry/TODO: |
03:49.33 | Notify | 03BRL-CAD Wiki:Harman052 * 6418 /wiki/Online_Geometry/TODO: |
04:01.59 | *** join/#brlcad FOSScookie (~brian@107-200-34-31.lightspeed.tulsok.sbcglobal.net) |
05:24.07 | *** join/#brlcad werebutt (~buttbutt@46.165.251.66) |
05:24.07 | *** part/#brlcad werebutt (~buttbutt@46.165.251.66) |
05:24.42 | *** join/#brlcad FOSScookie (~brian@107-200-34-31.lightspeed.tulsok.sbcglobal.net) |
05:34.47 | *** join/#brlcad zxq9 (~ceverett@FL9-125-199-207-150.okn.mesh.ad.jp) |
05:50.43 | *** join/#brlcad zxq9 (~ceverett@FL9-125-199-207-150.okn.mesh.ad.jp) |
09:46.13 | *** join/#brlcad Anaphaxeton (~george@unaffiliated/anaphaxeton) |
10:44.41 | *** join/#brlcad kesha (~kesha@14.139.122.114) |
10:53.36 | *** join/#brlcad KimK (~Kim__@ip24-255-223-153.ks.ks.cox.net) |
10:59.20 | *** join/#brlcad FreezingCold (~FreezingC@135.0.41.14) |
11:45.33 | *** join/#brlcad kesha (~kesha@14.139.122.114) |
12:30.43 | *** join/#brlcad kesha (~kesha@14.139.122.114) |
12:41.11 | *** join/#brlcad kesha (~kesha@14.139.122.114) |
13:52.17 | *** join/#brlcad d_rossberg (~rossberg@66-118-151-70.static.sagonet.net) |
14:01.28 | Notify | 03BRL-CAD:starseeker * 59531 brlcad/trunk/src/conv/step/g-step/Assembly_Product.cpp: Set description to blank string as well to avoid step-g complaining about incomplete expressions |
14:34.22 | Notify | 03BRL-CAD Wiki:Harman052 * 6419 /wiki/Online_Geometry/TODO: |
14:36.33 | Notify | 03BRL-CAD Wiki:Harman052 * 6420 /wiki/Online_Geometry/TODO: /* Research work */ |
14:46.48 | Notify | 03BRL-CAD Wiki:Harman052 * 6421 /wiki/Online_Geometry/TODO: /* Enhancements */ |
14:49.49 | *** join/#brlcad kesha (~kesha@14.139.122.114) |
14:58.16 | Notify | 03BRL-CAD:starseeker * 59532 brlcad/trunk/src/librt/primitives/sketch/sketch_brep.cpp: We do want to duplicate trims here - avoids a crash in g-step |
15:31.46 | ``Erik | starseeker: "yalo" https://github.com/whily/yalo lithp on bare metal x86-64 |
15:33.45 | Notify | 03BRL-CAD:starseeker * 59533 brlcad/trunk/src/librt/primitives/eto/eto_brep.cpp: If eip->eto_C is parallel to eip->eto_N, the brep conversion routine has problems. Try the x and y vectors if eto_C is parallel - one of them should work... |
16:48.46 | *** join/#brlcad Anaphaxeton (~george@unaffiliated/anaphaxeton) |
16:48.59 | Notify | 03BRL-CAD:starseeker * 59534 brlcad/trunk/CMakeLists.txt: Add a test for lrint - not sure yet what to do when we haven't found it... |
16:49.27 | Notify | 03BRL-CAD:starseeker * 59535 brlcad/trunk/CMakeLists.txt: ws |
16:56.09 | brlcad | starseeker: ah, you beat me to it |
16:56.42 | brlcad | that was on my to-do for today, so thanks |
16:57.00 | brlcad | I need to figure out an approach for all of them since this pattern is recurring |
16:57.16 | starseeker | brlcad: that's just the detection - I'm not sure what to do to actually make it work |
16:57.45 | brlcad | what do you mean? |
16:58.06 | starseeker | I mean that test tells me when we don't have lrint, but I don't know what to do about it in libbu and friends |
16:58.27 | starseeker | if I do the define trick we have for Windows, won't it give me casting complaints? |
16:58.35 | brlcad | we always "have it" afaik |
16:58.44 | brlcad | we just don't always get it declared |
16:59.02 | starseeker | uh... |
16:59.04 | brlcad | that's in a category of functions that are compiliance-related |
16:59.26 | brlcad | just a pedantic detail, windows is the only that doesn't actually have it iirc |
16:59.41 | starseeker | so, what do we do to make libbu think we have it? |
16:59.48 | starseeker | or aware we have it, I guess |
16:59.57 | brlcad | that's what I'm working through now |
17:00.07 | starseeker | ah. |
17:00.11 | brlcad | that's the general approach I was referring to |
17:00.21 | brlcad | because there's at least a dozen symbols like this |
17:00.25 | starseeker | oh, I thought you were talking about the compile-source tests in CMake :-) |
17:01.25 | brlcad | certainly related, because we need to know 1) if it's actually available (i.e., it's a function in libc), 2) whether it's declared (i.e., a header announces it) to do anything about either failing |
17:02.37 | brlcad | the solution that should work is to just do those two tests, then make a source change to handle the case where it exists but is not declared (and if we need to, the case where it's not available) |
17:06.25 | starseeker | brlcad: is it worth all that vs just defining bu_lrint and whatever other functions of that type we would need and calling it a day? |
17:08.01 | starseeker | presumably if a header doesn't announce it, the intent of the system is that it not be used? |
17:08.09 | brlcad | it if were just one, perhaps |
17:08.13 | brlcad | but there are at least a dozen |
17:08.40 | starseeker | how many would go away once we bump to C99? |
17:08.47 | brlcad | and, no, there's no intention .. it's not announced because we requested a particular mode of compilation |
17:08.52 | brlcad | all |
17:09.07 | brlcad | nearly all at least |
17:09.29 | brlcad | it would have maybe been an issue 15 years ago |
17:09.34 | starseeker | in that case, the wrapper functions would only be present for a short while - just until we get to C89 strict |
17:09.55 | brlcad | then we would have needed to handle the actually-doesn't-exist case |
17:10.40 | starseeker | is dubious - it sounds to me like we're sort of breaking the C89 paradigm we're requesting to get the functions we need... |
17:10.49 | starseeker | if we do that, what's the point of C89? |
17:10.54 | brlcad | you mean the 6-60 months it takes to actually deprecate it, rescrub sources, update calling code that might have relied on it |
17:11.33 | brlcad | I'm not looking for strict academic compliance, that does very little for us to obsess on the past too much |
17:11.49 | brlcad | we just need some assurance that we'll work, a baseline that is good enough |
17:12.11 | brlcad | some of the symbols are dangerous and easily won't exist, most of which we already have wrapped |
17:12.17 | brlcad | others like lrint, not so much |
17:13.13 | brlcad | one line in cmake and three or four in a header is not so bad |
17:13.24 | starseeker | OK - I always lose these arguments anyhow, so I'll just go with it |
17:13.47 | brlcad | but what's wrong with the alternative? |
17:14.22 | starseeker | we'll see how it ends up looking - I don't know what you're going to have to do, so I can't visualize it |
17:14.23 | brlcad | rather aim for simplicity in our code, this gets that |
17:15.03 | starseeker | we'll see |
17:15.20 | brlcad | always the optimist ;) |
17:15.40 | starseeker | thinks this feels like jumping through hoops to avoid going straight for C99 |
17:16.26 | starseeker | however, you're the expert :-) |
17:16.38 | brlcad | this was started a LONG time ago |
17:17.37 | brlcad | if we were this close with c99, it'd feel like jumping through hoops instead of just jumping to C11 |
17:18.24 | starseeker | except C11 isn't 14 years old ;-) |
17:18.53 | brlcad | it very well could be if we address it at the same rate that we've addressed c89 |
17:18.55 | brlcad | (that's the point) |
17:19.32 | brlcad | s/could/will/ |
17:22.21 | brlcad | it this all works out they way it should, our source changes will just be a few lines in a header file that won't need to change when we go to c99 or c11 |
17:23.15 | brlcad | only work will be for functions that go from not missing to missing, then we have to decide whether to change our code or implement what went away |
17:23.54 | *** join/#brlcad Anaphaxeton (~george@unaffiliated/anaphaxeton) |
17:23.57 | starseeker | nods |
17:31.49 | *** join/#brlcad Anaphaxeton (~george@unaffiliated/anaphaxeton) |
17:40.54 | *** join/#brlcad Anaphaxeton (~george@unaffiliated/anaphaxeton) |
17:41.06 | mpictor | I'm looking for a cross-platform way to recursively delete directory contents from c/c++ |
17:42.13 | mpictor | looks like I need to use nftw() on linux and osx, and SHFileOperation() on windows. or is there something simpler that will work on all 3? |
17:52.35 | *** join/#brlcad kesha (~kesha@14.139.122.114) |
18:06.34 | brlcad | mpictor: man remove |
18:07.38 | brlcad | rather, are you looking for cross-platform traversal or cross-platform deleting? |
18:11.58 | brlcad | for traversal, what you found should work but ... deleting recursively is rather dangerous |
18:15.42 | brlcad | I suggest keeping a manifest, and just delete your manifest .. safe, robust, and if remove() fails on a directory after you remove all your files+dirs, the user put files+dirs there |
18:16.01 | brlcad | otherwise, remove() will also remove files and dirs |
18:30.01 | mpictor | brlcad: now that I think about it, it won't hurt anything if extra files accumulate in subdirectories of the build dir |
18:30.18 | mpictor | so I don't need recursive delete |
18:34.14 | mpictor | a manifest is a good idea though, I'll keep it in mind |
20:06.56 | Notify | 03BRL-CAD:carlmoore * 59536 brlcad/trunk/src/lgt/do_options.c: despite its use for the now-deprecated lgt, I have implemented h and ?, using bu_optopt because '?' is the default for c |
20:09.50 | *** join/#brlcad luca79 (~luca@13.113.227.87.static.ld.siw.siwnet.net) |
20:18.33 | Notify | 03BRL-CAD:starseeker * 59537 brlcad/trunk/src/conv/step/g-ap214/CMakeLists.txt: Try adding the /bigobj to the AP214 generated C++ file |
20:39.41 | *** join/#brlcad ncsaba__ (~ncsaba@p4FF75894.dip0.t-ipconnect.de) |
20:40.47 | ncsaba__ | kanzure: Hi Bryan, I just created another pull request for python-brlcad :-) |
20:42.35 | brlcad | cool |
20:42.36 | ncsaba__ | this time it is actually useful stuff I think - some python syntax sugar around libwdb |
20:42.41 | kanzure | howdy |
20:42.44 | kanzure | okay |
20:42.54 | kanzure | btw i haven't merged your other work yet (well, some of it) |
20:43.03 | ncsaba__ | no prob, it's independent |
20:43.05 | kanzure | because i am having trouble determining if there are any regressions in functionality |
20:43.27 | ncsaba__ | yes, I understand, it's a complex change... |
20:43.37 | ncsaba__ | I wanted it in smaller pieces but couldn't manage |
20:43.38 | kanzure | "For the windows port - for now I gave up on making it work well, librt doesn't want to work either with cygwin nor with mingw. The path problems are solved, but there is some fundamental problem somewhere in ctypesgencore which I just don't have the motivation to debug to it's end." |
20:43.51 | kanzure | if you can collect some details about the ctypesgencore issues i can take a look. i have spent some time poking around in there. |
20:43.52 | ncsaba__ | yes, but that was not better before :-) |
20:44.13 | ncsaba__ | I added myself librt, and it seems to only work on linux |
20:44.27 | kanzure | did you have any trouble with macros? |
20:44.31 | kanzure | i am looking at https://github.com/kanzure/python-brlcad/pull/13 |
20:44.38 | ncsaba__ | if you scracht librt then windows installs too |
20:45.05 | ncsaba__ | the windows error was something with a long long type |
20:45.21 | ncsaba__ | it is not supported by ctypes, and it is supposed to be skipped by ctypesgen |
20:45.27 | kanzure | in general i am against 'from ctypes_adaptors import *' and prefer 'from ctypes_adaptors import (\n thing1,\n thing2,\n)' but it is a minor nitpick |
20:45.28 | ncsaba__ | but somehow it manages to not skip it |
20:46.10 | kanzure | i am not really sure what a long long is at the moment (i am in python mode..) |
20:46.15 | ncsaba__ | well just fix it then, it was just quicker to develop this way |
20:46.30 | kanzure | brlcad: approximately how many crippling changes are you willing to make to brlcad to make it play nice with python/ctypesgencore? :) |
20:46.32 | ncsaba__ | I don't mind, if it works :-) |
20:47.02 | kanzure | "class WDB:" btw i highly recommend always at least subclassing object, so "class WDB(object):" |
20:47.04 | ncsaba__ | well have a look at the test I wrote |
20:47.25 | ncsaba__ | well again: do it, I'm a python beginner still |
20:47.48 | kanzure | yep, anyway i'm fine with these changes, i'm merging |
20:48.19 | ncsaba__ | the current wrapper is already allowing you to easily build the most useful geometry elements |
20:48.19 | kanzure | merged |
20:48.28 | ncsaba__ | and all with python "duck typing" |
20:48.49 | ncsaba__ | that was my first goal for now |
20:49.12 | ncsaba__ | I can now easily script some objects, with the power of python instead of fighting with tcl |
20:49.44 | ncsaba__ | I will post some real objects later, just to demonstrate what I mean... |
20:49.46 | kanzure | it's too bad that WDB.cone doesn't return the physical cone that was constructed. hrm. |
20:49.50 | kanzure | okay cool |
20:49.52 | kanzure | i like examples |
20:50.17 | ncsaba__ | what do you mean by the cone ? |
20:50.33 | kanzure | well, if i construct a cone, presumably i can have a reference to the cone that was just made |
20:50.36 | ncsaba__ | in fact all objects show up well in my tests, except the hyperboloid |
20:50.52 | kanzure | like, cone = wdb.cone(settings, whatever); cone.x = 5; cone.some_other_attribute = 5114 |
20:51.00 | ncsaba__ | ok, it doesn't work that way, sorry |
20:51.07 | ncsaba__ | wdb is write only |
20:51.08 | kanzure | (i don't know if x would be a realistic attribute of a cone) |
20:51.24 | kanzure | oh, the actual wdb methods don't return a pointer to the objects? i didn't consider that |
20:51.44 | ncsaba__ | librt will help do that |
20:51.50 | kanzure | oh it's direct write to a database file? |
20:51.51 | ncsaba__ | if we go that way |
20:51.53 | ncsaba__ | yes |
20:52.21 | ncsaba__ | but that's all you need to script some geometry ! |
20:52.55 | ncsaba__ | I will use high level python wrappers, they are much more flexible then the internal BRLCAD structures for actually _building_ the geometry |
20:53.17 | ncsaba__ | then serialize the result to a .g file, then raytrace |
20:53.35 | kanzure | i tried to make a simple python function to generate a png of the geometry, but i didn't come up with anything useful |
20:53.42 | kanzure | perhaps you will find a good way of doing that |
20:53.47 | ncsaba__ | will do |
20:53.51 | kanzure | (displaying a png is of course, much easier) |
20:54.17 | ncsaba__ | in fact I would settle for calling a brlcad executable and display the result :-) |
20:54.35 | ncsaba__ | if there's no library call which can directly do that |
20:55.15 | ncsaba__ | the best would be to be able to process the internal brlcad structures directly from python, but that's a real long road |
20:55.28 | ncsaba__ | the rt library is too tied to tcl |
20:56.10 | ncsaba__ | it has many features, and in this case that means lots of work till we could get any result in python with working directly with internal structures via the rt lib |
20:56.29 | ncsaba__ | I had a cursory look and it's not trivial |
20:56.34 | ncsaba__ | wdb was trivial |
20:56.57 | ncsaba__ | except figuring out why it dumps core on "mk_arbn" :-) |
20:57.22 | ncsaba__ | which in contrary to it's header, it does free the array it gets passed in |
20:57.47 | ncsaba__ | then python dumps core when it tries to free that again |
20:58.48 | ncsaba__ | OK, I will leave now - not sure when I'll have time again to work on this, but I'm definitely satisfied with what I got so far... |
21:00.14 | kanzure | hm, so yeah we should be able to represent the same internal structures, but i would posit that python would never have a database parser that isn't just pass-through to brlcad libs |
21:01.04 | ncsaba__ | well that's the whole point of having those libs :-) |
21:01.29 | ncsaba__ | but they are unfortunately off track a little bit because of the TCL stuff |
21:02.15 | ncsaba__ | for python I wouldn't embed python in brlcad though, as it is done with TCL, but the other way around |
21:03.06 | ncsaba__ | but for the moment I'm happy with only serializing things to BRLCAD from python high level objects, because that's exactly what I need anyway |
21:03.34 | ncsaba__ | I was not much using the GUI editing features before either, but scripting with TCL - and that's a real pain |
21:04.05 | ncsaba__ | I can show you some TCL scripts, they are simply unmaintainable |
21:04.47 | ncsaba__ | I discovered in the meantime python for myself - and like it more and more |
21:05.21 | ncsaba__ | anyway Bryan, please fix all the points you mentioned about inheriting object, imports, etc, it is definitely something I need to check out and remember for the next time :-) |
21:06.25 | ncsaba__ | OK, see you later, not sure when, I'll have some busy weeks next... |
21:07.12 | *** join/#brlcad FreezingAlt (~FreezingC@135.0.41.14) |
21:08.48 | *** part/#brlcad ncsaba__ (~ncsaba@p4FF75894.dip0.t-ipconnect.de) |
21:12.31 | *** join/#brlcad Anaphaxeton (~george@unaffiliated/anaphaxeton) |
21:21.33 | *** join/#brlcad Anaphaxeton (~george@unaffiliated/anaphaxeton) |
21:26.09 | Notify | 03BRL-CAD:carlmoore * 59538 brlcad/trunk/src/lgt/prnt.c: noticed a duplication of G option, so I kept the 4-argument occurrence and deleted the other one |
21:32.51 | *** join/#brlcad Anaphaxeton (~george@unaffiliated/anaphaxeton) |
21:40.53 | *** join/#brlcad Anaphaxeton (~george@unaffiliated/anaphaxeton) |
22:00.30 | *** join/#brlcad Anaphaxeton (~george@unaffiliated/anaphaxeton) |
23:42.57 | *** join/#brlcad Ch3ck (~Ch3ck@66-118-151-70.static.sagonet.net) |
23:46.28 | *** join/#brlcad maths22_ (~gcimaths@66-118-151-70.static.sagonet.net) |