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) |