03:17.42 |
*** join/#brlcad ejno_
(~ejno@unaffiliated/kazaik) |
03:46.32 |
Notify |
03BRL-CAD:brlcad * 59803 brlcad/trunk/NEWS:
credit cezar with a number of the memory leaks he fixed in r54118
as part of fixing clang static analysis defects. |
04:01.59 |
starseeker |
prods Notify |
04:02.11 |
Notify |
03BRL-CAD:starseeker * 59804
(brlcad/trunk/include/raytrace.h
brlcad/trunk/src/conv/step/g-step/Trees.cpp and 4 others): And this
is why the search API was still flagged as WIP. Consolidate plan
testing, flat vs. tree-aware searching, single dp vs dp array
inputs, and full_path vs. unique dp return types into a single
db_search function that accepts flags to control its behavior and a
db_free_search_tbl function |
04:02.14 |
Notify |
that can handle either result type. Code
reduction and simplification overall - barring some major missing
considerations, this is most likely the final form of the C search
API. Needs a fair bit of testing, as the change was a bit invasive
- particularly when it comes to things like hidden
objects. |
04:02.21 |
starseeker |
ah, there we go |
04:02.43 |
starseeker |
yawns - time to sleep on it,
but that feels like it may well be the right
solution |
04:35.49 |
*** join/#brlcad KimK
(~Kim__@ip24-255-223-153.ks.ks.cox.net) |
04:36.45 |
*** join/#brlcad _ff
(29cac42b@gateway/web/freenode/ip.41.202.196.43) |
04:38.16 |
_ff |
hello any one there?? |
04:39.23 |
_ff |
hey guys i really need help |
04:40.54 |
brlcad |
hello _ff |
04:40.57 |
brlcad |
~ask |
04:40.57 |
infobot |
Questions in the channel should be specific,
informative, complete, concise, and on-topic. Don't ask if you can
ask a question first. Don't ask if a person is there; just ask
what you intended to ask them. Better questions more frequently
yield better answers. We are all here voluntarily or against our
will. |
04:42.13 |
_ff |
thanks for that! |
04:42.35 |
brlcad |
sure |
04:43.45 |
_ff |
i am a newbie in programming and with the
skills i've aquired in C i wish to work on a project on brlcad!
looking at the ideas proposal i fell on the adding the exec
function to the search! |
04:44.22 |
_ff |
though i have no idea on how to start the
project i wish to have some materials wish can help me start the
project |
04:54.16 |
*** join/#brlcad FreezingCold
(~FreezingC@135.0.41.14) |
05:04.24 |
*** join/#brlcad _ff
(29cac42b@gateway/web/freenode/ip.41.202.196.43) |
05:07.20 |
_ff |
--brlcad-- any proposal ?? |
05:16.36 |
*** join/#brlcad _ff
(29cac42b@gateway/web/freenode/ip.41.202.196.43) |
05:56.27 |
*** join/#brlcad FOSScookie
(~brian@107-200-34-31.lightspeed.tulsok.sbcglobal.net) |
06:13.28 |
*** join/#brlcad FreezingCold
(~FreezingC@135.0.41.14) |
06:31.15 |
*** join/#brlcad luca79
(~luca@net-37-117-72-79.cust.vodafonedsl.it) |
06:44.45 |
*** join/#brlcad Anaphaxeton
(~george@unaffiliated/anaphaxeton) |
08:46.59 |
*** join/#brlcad luca79
(~luca@net-37-117-72-79.cust.vodafonedsl.it) |
08:56.06 |
*** join/#brlcad merzo
(~merzo@user-94-45-58-138-1.skif.com.ua) |
09:18.09 |
*** join/#brlcad archivist
(~archivist@host81-149-189-98.in-addr.btopenworld.com) |
09:36.40 |
*** join/#brlcad inspired
(c318dc10@gateway/web/freenode/ip.195.24.220.16) |
09:38.30 |
inspired |
hello! just heard about brl-cad and i wich to
know where and how to download the software to install on my pc.
operating system-linux |
10:12.33 |
*** join/#brlcad caen23
(~caen23@92.81.213.198) |
12:04.40 |
*** join/#brlcad luca79
(~luca@net-37-117-72-79.cust.vodafonedsl.it) |
12:48.20 |
Notify |
03BRL-CAD:tbrowder2 * 59805
(brlcad/trunk/include/bu.h brlcad/trunk/src/libbu/bitv.c): change
two functions to return success/failure; change decls accordingly
and add explanation in bu.h |
12:53.25 |
*** join/#brlcad caleb
(c318dc10@gateway/web/freenode/ip.195.24.220.16) |
13:07.08 |
*** join/#brlcad caen23
(~caen23@92.81.213.198) |
13:09.54 |
*** join/#brlcad KimK
(~Kim__@ip24-255-223-153.ks.ks.cox.net) |
13:40.34 |
mpictor |
Anyone have experience with operator= behaving
differently on windows than linux? We removed a pure virtual
operator= in STEPcode due to msvc linker errors, and it triggered a
regression on Linux. |
13:40.56 |
mpictor |
https://github.com/stepcode/stepcode/issues/284 |
13:44.04 |
*** join/#brlcad gaganjyot
(~gagan@124.253.230.99) |
13:50.37 |
gaganjyot |
hello there, |
13:51.02 |
gaganjyot |
is librecad participating under BRL-CAD this
year for GSoC ? |
14:00.33 |
*** join/#brlcad jasleen
(~chatzilla@117.253.230.220) |
14:13.08 |
Notify |
03BRL-CAD:starseeker * 59806
brlcad/trunk/NEWS: Keith implemented improvements in handling NURBS
surfaces where edges and trims 'wrap around' from one side of the
UV domain to the other. |
14:20.12 |
brlcad |
gaganjyot: that is the intention, though still
some details to sort out |
14:27.46 |
Notify |
03BRL-CAD:starseeker * 59807
brlcad/trunk/src/conv/step/g-ap214/Add_Tree.cpp: Update search
calls in g-ap214 |
14:30.42 |
gaganjyot |
brlcad: thanks :) |
14:32.25 |
*** join/#brlcad gaganjyot
(~gagan@124.253.230.99) |
14:33.21 |
Notify |
03BRL-CAD:starseeker * 59808
(brlcad/trunk/include/raytrace.h
brlcad/trunk/src/conv/step/g-ap214/Add_Tree.cpp
brlcad/trunk/src/libged/comb.c): Add a more meaningful label for
the default or 0 flag to allow devs to make it more explicit what
type of search is being performed. |
14:38.12 |
gaganjyot |
brlcad: is there any ideas page for gsoc 14
? |
15:12.21 |
Notify |
03BRL-CAD:carlmoore * 59809
(brlcad/trunk/src/libbn/vert_tree.c
brlcad/trunk/src/librt/search.c): fix spellings, and adjust (not
change) a comment so it more closely resembles a comment which I
didn't change |
15:18.35 |
*** join/#brlcad gaganjyot
(~gagan@124.253.230.99) |
15:43.30 |
starseeker |
mpictor: sorry, that one is beyond my
experience :-/ |
16:06.09 |
``Erik |
I have recollection of game developers
bitching that linux "just didn't work right" with c++ overloads, a
long time ago... my assessment at the time was that windows sucked
and windows coders were self-absorbed idiots... these days, I'd
recommend a microtest and would assume the spec is ... imperfect
and ambiguous? |
16:12.24 |
*** join/#brlcad KimK
(~Kim__@ip24-255-223-153.ks.ks.cox.net) |
16:23.35 |
*** join/#brlcad gaganjyot
(~gagan@124.253.230.99) |
16:27.37 |
Notify |
03BRL-CAD:starseeker * 59810
brlcad/trunk/include/raytrace.h: Actually use rt/defines.h -
removes about 10 lines of duplication |
16:32.33 |
Notify |
03BRL-CAD:starseeker * 59811
brlcad/trunk/include/dm.h: Set up a similar subdir and header file
for dm |
16:50.03 |
Notify |
03BRL-CAD:starseeker * 59812
(brlcad/trunk/include/CMakeLists.txt brlcad/trunk/src/libdm/color.c
and 24 others): Move the dm-*.h headers into the dm
subdirectory. |
17:05.30 |
*** join/#brlcad gaganjyot
(~gagan@124.253.230.99) |
17:08.42 |
Notify |
03BRL-CAD:starseeker * 59813
(brlcad/trunk/include/CMakeLists.txt
brlcad/trunk/include/raytrace.h brlcad/trunk/include/rt/defines.h):
Break search header definitions out into rt/search.h |
17:14.32 |
starseeker |
O.O http://www.opencascade.org/getocc/license/ |
17:14.48 |
starseeker |
Holy cow - OpenCascade went LGPL
2.1! |
17:17.32 |
starseeker |
Back in December |
17:17.53 |
starseeker |
Version 6.7.0 (not retro-active to earlier
versions) |
17:19.59 |
starseeker |
wonders how he missed
that... |
17:25.12 |
gaganjyot |
starseeker: LGPL v2.1 with one
condition |
18:33.19 |
*** join/#brlcad sod
(737c2942@gateway/web/freenode/ip.115.124.41.66) |
18:34.43 |
sod |
hi all |
18:34.43 |
gcibot |
sod, hey! |
18:35.09 |
sod |
i'm new here in brlcad |
18:35.23 |
sod |
and need some help to start |
18:35.55 |
sod |
hi all |
18:35.56 |
gcibot |
sod, hey! |
19:20.47 |
brlcad |
starseeker: yep, mid-dec |
19:22.14 |
brlcad |
shame that wasn't 10 years ago or it might
have been an interesting consideration for incorporation |
19:22.26 |
brlcad |
though bsd/mit would have been
better |
19:27.48 |
brlcad |
it does mean we can probably "look" at their
code now without too much concern, but I'd stil be disinclined to
directly incorporate any of their code |
19:28.14 |
starseeker |
nods - was thinking more
along the lines of using features they have that we don't have
implemented yet |
19:28.16 |
brlcad |
I'd really like to see us move to a more
flexible and permissive license |
19:28.33 |
starseeker |
sort of a "plug in opencascade until we get
our version working" sort of approach |
19:29.19 |
brlcad |
how would that'd be accomplished without
incorporating their code, using a system version or
something? |
19:29.25 |
starseeker |
yep |
19:29.37 |
starseeker |
"if opencascade found, enable
goodies" |
19:29.39 |
brlcad |
would be a digression from src/other |
19:29.52 |
brlcad |
sort of like X11, but .. not really |
19:30.01 |
starseeker |
like bullet and adaptagrams |
19:30.10 |
brlcad |
yeah, better analogy |
19:30.26 |
brlcad |
what feature would be useful that
way? |
19:30.51 |
brlcad |
step conversion would have been the main thing
that came to my mind, and I think our support is probably
approaching better if not there already |
19:31.25 |
starseeker |
first thing that came to my mind was drawing
support, i.e. http://freecadweb.org/wiki/index.php?title=File:FreeCAD011.png |
19:31.59 |
starseeker |
they also have a constraint solving 2D
sketcher |
19:32.30 |
brlcad |
ironically, I think that was one of the things
they suggested for a possible gsoc project because it wasn't very
good (recollection is vague, could be wrong) |
19:32.42 |
*** join/#brlcad cain_
(c318dc10@gateway/web/freenode/ip.195.24.220.16) |
19:35.02 |
starseeker |
brlcad: we could try hooking into their
boolean support... |
19:36.37 |
brlcad |
dunno, those both seem like a stretch to me
... we'd end up integrating and it'd either suck (in which case
nobody would/should use it and it would have been a waste of time)
... OR ... it works great and we've painted ourselves into a
dependency corner for the foreseeable future |
19:37.50 |
brlcad |
IF it worked great, that'd be even LESS
incentive to invest development time and effort, meaning it simply
wouldn't happen |
19:38.53 |
brlcad |
that's very much a lose-lose situation unless
we're willing to adopt OC as a dependency (and that seems like a
very bad idea to me, but I'd want to do a full cost/benefit
analysis) |
19:39.08 |
starseeker |
it may be worth waiting a bit to see what
happens, but this license change is potentially a seismic event for
the open source CAD world... |
19:39.29 |
starseeker |
the old license on opencascade was a blocker
to an effective community forming |
19:39.48 |
starseeker |
without that hangup, things could get
interesting |
19:40.15 |
brlcad |
the company is still not encouraging or
supportive to that happening |
19:41.02 |
brlcad |
this was almost entirely a prlonged delayed
response to the problems from those codes (10 years ago!) trying to
integrate into debian and other repos, getting declared
non-free |
19:41.29 |
brlcad |
those that wanted to use it already
are |
19:41.38 |
brlcad |
that community is freecad |
19:41.52 |
starseeker |
the company may not be able to build a
community around the code, but FreeCAD is another story, especially
in partnership with the OCE crowd |
19:41.53 |
brlcad |
(there's a couple others in fairness, but they
don't interoperate) |
19:42.47 |
starseeker |
isn't proposing to hop on the
bandwagon and abandon our efforts - from some of the comments I've
seen, the opencascade code is... difficult to work
with |
19:43.12 |
brlcad |
that's probably an understatement |
19:43.14 |
brlcad |
I've been talking with several in their
community over the past couple weeks |
19:43.53 |
brlcad |
mentioned my longer term plans to produce a
viable stand-alone open source kernel that would replace the likes
of acis, granite, parasolid, opencascade, etc |
19:44.03 |
brlcad |
several were actually rather excited by that
notion |
19:44.09 |
starseeker |
cool :-) |
19:45.05 |
brlcad |
some of their gsoc hesitation was because OC
was simply too complicated for someone to get into in that short
amount of time (a summer) |
19:46.00 |
starseeker |
actually isn't opposed to the
notion of "proper" open source competition between BRL-CAD and
FreeCAD/opencascade - from a broader perspective, not being totally
dependent on one solution is almost invariably a good
thing |
19:46.29 |
brlcad |
I don't mind competition at all, I think it's
a good thing that we do things in somewhat different ways |
19:46.37 |
brlcad |
we address different needs, have different
communities |
19:46.53 |
brlcad |
we can still bridge various collaboration
points, like STEPcode or ray tracing |
19:47.41 |
brlcad |
one of their devs noted that our development
activity is 10-20 times theirs |
19:48.05 |
starseeker |
will be interesting in the longer term to see
if BRL-CAD can be slotted in "under" their GUI, which is undeniably
snazzier than even Archer (much less MGED) |
19:48.34 |
brlcad |
we're still pretty much the only de-facto open
source CAD in production use that I know of, so having them help
expand open source CAD activity is a good thing |
19:49.12 |
starseeker |
last time I checked they were getting
something like 3 times our download rate on sf |
19:49.44 |
brlcad |
we're not very good at pumping out releases,
our interface and usability suck |
19:49.56 |
brlcad |
using OC doesn't do ANYTHING for
that |
19:50.12 |
brlcad |
so yeah, busy work |
19:50.19 |
starseeker |
er, correction - 6 times our download
rate |
19:50.33 |
brlcad |
what are they at per month? |
19:50.45 |
brlcad |
we were around 10k/month when we had
consistent releases |
19:50.48 |
starseeker |
let's see... 13,731 per week... |
19:51.10 |
brlcad |
good to know |
19:51.35 |
starseeker |
we're at 2069 per week right now according to
the "3d modeling" listing |
19:51.50 |
brlcad |
so we've gone down a bit, not too suprising
given our lack of releases |
19:52.01 |
brlcad |
every time we release, that number jumps way
up |
19:52.07 |
starseeker |
nods |
19:52.21 |
starseeker |
I need to quit fiddling with the search API
and get back to learning Qt :-P |
19:53.25 |
brlcad |
we should all quit what we're doing to work on
interface, but "that'd be bad" for other reasons... ;) |
19:53.43 |
brlcad |
I think we'll have a ton of momentum come this
summer |
19:53.58 |
brlcad |
enough infrastructure finally in place to
modularize the front-end development |
19:54.37 |
starseeker |
brlcad: is moving the dm headers to the subdir
a problem? I figured it came under the heading of minimally
impacting... |
19:54.37 |
brlcad |
we really need boolean evaluation (what nick's
working on) and clean import/export (what you and keith are
doing) |
19:54.47 |
brlcad |
nope, looked good to me |
19:55.07 |
starseeker |
should probably remove the dm- prefixes,
they're pretty redundant now |
19:55.17 |
brlcad |
those dm-*.h are actually "private" and
shouldn't be in include but they are exposed in a few places right
now |
19:55.31 |
starseeker |
mged, tclcad, and a couple utils
iirc |
19:55.35 |
brlcad |
don't, several of those will conflict with
system headers |
19:55.41 |
starseeker |
blegh |
19:55.42 |
starseeker |
ok |
19:55.49 |
brlcad |
annoying, I know |
19:56.24 |
brlcad |
but yeah, I think our first step is to simply
categorize all the include/ headers into subdirs |
19:56.57 |
brlcad |
once we do that, we can focus on the build
system and any header file breakups needed, then removing the
private ones |
19:57.50 |
brlcad |
so we'll end up with nothing except common.h,
bio.h, bin.h, and conf/ in the include directory (plus one dir per
lib) |
19:58.37 |
starseeker |
ah, so "raytrace.h" would be inside rt/ ? Or
were you thinking to modularize what is included at a finer
level? |
20:00.58 |
starseeker |
i.e. no "raytrace.h" at all, just including
the necessary pieces? |
20:01.45 |
brlcad |
both |
20:02.08 |
brlcad |
there'd all live inside a subdir |
20:02.26 |
brlcad |
some like raytrace.h would simply #include all
of the sub-modules that form the ray tracing API |
20:02.36 |
starseeker |
nods |
20:02.42 |
starseeker |
make sense |
20:02.44 |
brlcad |
lib/lib.h would include everything for
lib |
20:02.58 |
starseeker |
so... raytrace.h -> rt.h? |
20:03.11 |
*** join/#brlcad witness___
(uid10044@gateway/web/irccloud.com/x-pynwrjlokdcycoyt) |
20:03.13 |
brlcad |
"maybe" .. that's probably the most
complicated header of all |
20:03.50 |
starseeker |
was/is contemplating
splitting more pieces out of it a.l.a. rt/search.h |
20:03.57 |
brlcad |
there's 943 public functions in raytrace.h
now |
20:04.04 |
starseeker |
just for readability it helps |
20:04.10 |
brlcad |
right, that's the idea |
20:04.13 |
starseeker |
wines |
20:04.16 |
starseeker |
winces |
20:04.18 |
starseeker |
grr |
20:04.30 |
brlcad |
so imagine separating everything out that
groups into some set of sub-functionality |
20:04.56 |
starseeker |
I take it defines.h is intended to hold all
the #define type things, not just the DLL foo? |
20:05.07 |
brlcad |
basically the lib_group_function() would imply
there's a lib/lib.h you could include or a lib/group.h you could
include |
20:05.22 |
brlcad |
no no |
20:05.29 |
brlcad |
modular per group |
20:05.44 |
starseeker |
so defines.h was just a stub? |
20:06.03 |
brlcad |
defines.h is global to the lib |
20:06.20 |
brlcad |
it ideally would just live in that lib/lib.h
file, but every header will need it |
20:06.28 |
brlcad |
and every header cannot include lib/lib.h ...
cyclic dep |
20:06.39 |
starseeker |
ah, so lib/group.h would include
lib/defines.h |
20:06.42 |
brlcad |
so the common/global aspects get their own
header necessarily |
20:06.46 |
brlcad |
right |
20:06.56 |
brlcad |
every header would include exactly and only
what it needs |
20:07.09 |
brlcad |
should actually speed up compilation
substantially |
20:07.12 |
starseeker |
sounds good |
20:07.58 |
starseeker |
brlcad: sorry if I'm "jumping the gun" on that
but after one too many times digging db_search out of raytrace.h I
figured I might as well go for it... |
20:09.46 |
brlcad |
no jumping the gun, it's all good |
20:09.51 |
brlcad |
as you can tell, I'd already started
it |
20:09.56 |
brlcad |
long term low priority |
20:10.07 |
brlcad |
I peck at it when I can think
clearly |
20:10.12 |
brlcad |
which isn't very often |
20:10.20 |
starseeker |
heh |
20:10.37 |
brlcad |
just have to make sure it's cleaner and not a
work-in-progress mess, complete every step along the way |
20:11.22 |
starseeker |
every time I have to think long and hard about
an API like search, I always think about doxygen documtation...
which leads to headers |
20:11.32 |
*** join/#brlcad zxq9
(~ceverett@FL9-125-199-207-150.okn.mesh.ad.jp) |
20:11.38 |
brlcad |
there is one issue of managing the includes,
whether we want to update all caller codes to lib/whatever.h
(particularly third-party codes) or whether we'll rely on
brlcad-config or pkg_config to set per-lib include dirs |
20:12.22 |
brlcad |
won't matter so long as the "lib.h" header is
the LAST to move (staying in include/ for now) |
20:12.26 |
starseeker |
to be honest, that was the primary reason I
figured raytrace.h would continue to live in include and the
sub-headers would be in rt/ |
20:12.45 |
starseeker |
er, right |
20:12.51 |
brlcad |
that makes the most sense for now |
20:13.32 |
brlcad |
just thinking once EVERYTHING is broken out
into lib/module.h and other headers, those top-levels will be
inconsistent with some established conventions |
20:13.50 |
brlcad |
but yeah, breakouts first whenever |
20:14.53 |
starseeker |
sweet. When I get a little time I'll try to
make sure the doxygen stuff is handling it correctly |
20:16.30 |
*** join/#brlcad zxq9
(~ceverett@FL9-125-199-207-150.okn.mesh.ad.jp) |
20:21.33 |
*** join/#brlcad zxq9
(~ceverett@FL9-125-199-207-150.okn.mesh.ad.jp) |
20:26.22 |
*** join/#brlcad zxq9
(~ceverett@FL9-125-199-207-150.okn.mesh.ad.jp) |
20:34.21 |
starseeker |
jots a note to himself to
prod the fossil devs and see if libfossil (http://fossil.wanderinghorse.net/repos/libfossil)
is still active |
20:35.37 |
starseeker |
depending on how it's done, that has the
potential to be an almost ideal backend for libgvm |
20:36.44 |
Notify |
03BRL-CAD:tbrowder2 * 59814
(brlcad/trunk/include/bu.h
brlcad/trunk/src/libbu/tests/CMakeLists.txt and 2 others): add new
function 'bu_vls_substr'; add tests for it |
20:37.52 |
starseeker |
brlcad: what do you think about moving libgvm
from geomcore into BRL-CAD proper? |
20:40.04 |
brlcad |
what's in the lib? |
20:40.51 |
starseeker |
mostly the incantations to split a .g file up
into a subversion repo and put it back together again |
20:41.04 |
brlcad |
ahh |
20:41.07 |
*** join/#brlcad luca79
(~luca@net-37-117-72-79.cust.vodafonedsl.it) |
20:41.25 |
starseeker |
header (gvm.h) is generic (credit to you for
instisting on that) |
20:41.47 |
brlcad |
C API? |
20:41.50 |
starseeker |
yep |
20:42.54 |
starseeker |
brlcad:
http://sourceforge.net/p/brlcad/code/HEAD/tree/geomcore/trunk/src/libgvm/ |
20:52.53 |
brlcad |
suppose it's be alright, but not sure I'd see
that being anything but a useful distraction right now |
20:53.27 |
brlcad |
having our progs call that lib directly wasn't
ever in the tea leaves |
20:54.08 |
brlcad |
even mged is supposed to be going through the
GS so we can properly manage the notion of a checkout |
20:54.38 |
brlcad |
if no tool or lib in our checkout calls it,
becomes unusal to have there |
20:54.41 |
starseeker |
OK, just a thought |
20:54.53 |
brlcad |
sure, it's an interesting thought |
20:55.51 |
brlcad |
I think I'd just expect some way it to get put
to use and I can't think of one right this second except maybe some
low-level command-line interface |
20:56.29 |
starseeker |
nods - yeah, I think I've got
some basic commands for working with .g files and that's about
it |
20:56.35 |
starseeker |
plus needs svn libs |
20:57.13 |
brlcad |
yeah |
20:57.34 |
starseeker |
libfossil would be *awesome* but it doesn't
look like it has much momentum |
20:58.43 |
brlcad |
is having trouble getting his
head around the 500 public functions in the nmg
API |
20:58.57 |
starseeker |
isn't
surprised |
20:59.05 |
brlcad |
at a glance, more than half of those simply
shouldn't be public |
20:59.28 |
brlcad |
and it's just lazy declaration |
20:59.39 |
brlcad |
wonder how many are actually directly
used |
20:59.48 |
starseeker |
that sounds like a rather massive addition to
the CHANGES deprecation list |
20:59.52 |
brlcad |
how big/complicated the API really
is |
21:00.37 |
brlcad |
afaik, nmg was never "published", documented
in a manner that others could use it |
21:01.02 |
starseeker |
given my druthers, I'd probably stub out a
"clean" API for NMG as the first step in digging it out of librt,
then work from there... |
21:01.19 |
brlcad |
easy enough to leave the decls public for a
deprecation phase, but not sure it'd technically be
required |
21:07.27 |
mpictor |
reads discussion from last
few hours |
21:08.04 |
mpictor |
starseeker: as of a couple years ago, OCC's
boolean operations were slow and had a lot of bugs |
21:08.49 |
starseeker |
mpictor: ah, good to know |
21:08.52 |
mpictor |
has fond memories of solids
with negative volume and/or invisible faces |
21:08.57 |
starseeker |
heh |
21:09.27 |
mpictor |
I think I have a whitepaper from where SALOME
wrote their own boolean ops with more modern algos |
21:11.02 |
starseeker |
this one?
http://docs.salome-platform.org/salome_7_3_0/gui/GEOM/SALOME_BOA_PA.pdf |
21:11.53 |
mpictor |
heh, I was about to mail you v 6.3.0 of that
:) |
21:12.35 |
starseeker |
<spock voice>fascinating</spock
voice> |
21:14.07 |
mpictor |
I remember the OCC sources being in french -
at least the old parts. the comments were too technical for google
translate to work on, as well :/ |
21:16.22 |
starseeker |
they've put quite a lot of work into
documenting SALOME, based on that example |
21:16.55 |
kanzure |
hello |
21:17.09 |
starseeker |
kanzure: howdy |
21:17.21 |
kanzure |
i think OCC's boolean operations still have
bugs |
21:17.33 |
kanzure |
i wasn't aware that SALOME has a separate
implementation |
21:17.38 |
kanzure |
finding code inside of OCC is impossible
enough as it is |
21:17.48 |
mpictor |
heh no kidding :) |
21:17.48 |
kanzure |
some parts are in french, others in russian,
and some more in english |
21:17.59 |
kanzure |
it is entirely hopeless and should be
abandoned |
21:21.46 |
starseeker |
kanzure: so you don't think the OCE team is
inclined to try and save it? |
21:23.38 |
kanzure |
i have spent a lot of time trying to work
through OCC's source code to see how i could start to clean things
up |
21:23.46 |
kanzure |
and honestly i wasn't able to make up any
actionable plan |
21:24.06 |
kanzure |
like, in theory, there are these 100+ modules
that can be reused, but they seem to call each other a lot, and i'm
never really sure where the actual boolean operations are really
truly implemented.. |
21:24.33 |
kanzure |
i think that the OCC team upstream might not
have the talent necessary to fix their situation |
21:24.58 |
kanzure |
large refactor initiatives from the OCE people
would be interesting.. but brlcad is way cleaner :) |
21:26.24 |
mpictor |
kanzure: do they still use WOK to generate
container classes, or have they moved to templates? |
21:27.22 |
kanzure |
i haven't looked in the past ~2 years so i
would guess WOK |
21:27.44 |
mpictor |
bleh |
21:28.40 |
kanzure |
oh wait, hi, nice to see you around
:) |
21:28.45 |
kanzure |
i know who you are. heh. |
21:29.35 |
mpictor |
you're brian bishop, right? |
21:30.54 |
kanzure |
hi yes |
21:33.07 |
mpictor |
don't think I've talked to you since I used to
frequent #cam |
21:33.17 |
starseeker |
kanzure: it would be interesting if the
FreeCAD/OCE folks could look at BRL-CAD and itemize what is missing
from their point of view to make BRL-CAD viable for their
applications |
21:34.05 |
starseeker |
we know the obvious ones (booleans, shaded
displays, 2D drawings/dimensioning) |
21:34.13 |
kanzure |
booleans? |
21:34.33 |
starseeker |
subracting one Brep from another to form a new
shape |
21:34.45 |
starseeker |
i.e. use a cylindar to punch holes in a
plate |
21:36.34 |
kanzure |
oh, i wasn't aware that this was missing at
the moment. |
21:37.07 |
starseeker |
we're working on it - one of last years GSoC
projects did quite a bit of work on that topic |
21:37.51 |
starseeker |
http://brlcad.org/wiki/User:Phoenix/GSoc2013/Reports |
21:38.09 |
kanzure |
my biggest suggestion would be something about
decoupling releases of individual components/sub libraries or
something, and especially separating the gui-related releases, but
i dunno if the freecad person cares about that |
21:38.17 |
kanzure |
yeah, i remember User:Phoenix |
21:39.00 |
starseeker |
kanzure: so separating a "libbrlcad" backend
from the GUI front-ends? |
21:39.40 |
kanzure |
that sounds nice |
21:39.44 |
kanzure |
have you looked at python-brlcad? |
21:39.58 |
starseeker |
unfortunately I haven't had time
recently |
21:39.59 |
kanzure |
https://github.com/kanzure/python-brlcad |
21:40.15 |
mpictor |
starseeker: did you mention a constraints
solver as something you don't have? https://code.google.com/p/sketchsolve/
(BSD) was used in the now-defunct heekscad |
21:40.41 |
starseeker |
nods - I looked at that a
bit, but apparently FreeCAD did too and they wound up implementing
their own |
21:41.24 |
starseeker |
is curious as to whether
gecode could be used as a foundation on which to define and solve
such constraints - they seem to do well in the open source
constraint solving arena |
21:41.47 |
starseeker |
not to mention a nice license and good
documentation |
21:42.36 |
mpictor |
there's also psketcher, which has fewer
constraints but includes 2d sketching https://code.google.com/p/psketcher/ |
21:42.44 |
mpictor |
had not heard of
gecode |
21:42.58 |
starseeker |
mpictor: unfortunately, psketcher is
GPL |
21:43.07 |
mpictor |
oh yea :/ |
21:43.15 |
starseeker |
http://www.gecode.org/doc-latest/reference/classCartesianHeart.html |
21:45.34 |
starseeker |
that example is promising when you consider
our problem domain :-) |
21:46.56 |
starseeker |
main question I have is how to approach a
runtime specification of and rebuilding of the constraints - from
what I can tell, we basically will need to construct GECODE models
"on the fly", destroying them and creating new ones when the
geometry changes (not parameters changing per say, but new geometry
and/or constraints being added or removed) |
21:48.08 |
mpictor |
oh, so you'd have their model, as well as one
of your own? |
21:49.07 |
starseeker |
in essence - we would have a series of
conceptual constraints (like psketcher's list for 2D, for example)
and we would need to express those in terms of how GECODE defines a
system |
21:49.28 |
mpictor |
yea |
21:50.42 |
starseeker |
so we would take (say) sketch, define the
notion of angles between edges as a constraint, and then for each
specific set of edges that had an angle constraint we would create
and insert into the "space" GECODE defines those specific
constraints |
21:51.24 |
starseeker |
ditto for distance, horizontal/vertical edges,
etc. |
21:52.46 |
starseeker |
I suspect once certain conceptual hurdles and
basic setups are in place, it would be fairly straightforward to
get at least some basic solves going - the trick would be making
sure we are using the right techniques for specification and
solving to make it *fast* |
21:54.02 |
*** join/#brlcad merzo
(~merzo@181-27-132-95.pool.ukrtel.net) |
21:54.05 |
starseeker |
doesn't know if "implement a
2D constrained sketcher using GECODE" is a viable GSoC project or
not, but it sure would be interesting |
21:54.19 |
mpictor |
yes, it would |
21:54.45 |
mpictor |
speaking of which, we need to figure out gsoc
projects for stepcode |
21:55.09 |
mpictor |
thread safety is one that someone was asking
about recently |
21:55.22 |
starseeker |
do you think that's doable for a student in a
summer? |
21:55.44 |
mpictor |
I was about to ask what you thought
:) |
21:56.09 |
starseeker |
well, the new file breakout will probably help
debugging quite a lot |
21:56.34 |
mpictor |
yes |
21:56.52 |
starseeker |
I guess it's a question of how deep the
changes would really have to go |
21:57.10 |
mpictor |
but that made me think of all the assignment
operators (etc) which copy pointers rather than creating new
objs |
21:57.22 |
starseeker |
winces |
21:58.04 |
starseeker |
I almost wanted to suggest as a project
getting really nice doxygen documentation generating for the
STEPcode sources and maybe even the schema files |
21:58.56 |
starseeker |
that might help all future projects (and us)
navigate the labyrinth |
22:00.08 |
starseeker |
mpictor: assuming you want to go with doxygen,
of course... |
22:00.38 |
mpictor |
I've wondered about that |
22:00.42 |
mpictor |
there is a doxyfile |
22:01.13 |
mpictor |
I guess the docs could be greatly improved by
using more of the doxygen commands |
22:01.25 |
starseeker |
mpictor: that's kinda what I was
thinking |
22:01.50 |
starseeker |
would include a component to
generate html from express files, complete with graphviz diagrams
of component relationships |
22:02.04 |
mpictor |
I've been meaning to re-generate and upload
the docs ever since v0.7 :/ |
22:02.07 |
mpictor |
nice! |
22:02.31 |
starseeker |
that might not be doxygen per say (might even
be a code-writing project) but it would be a vast help in making
sense of what the schemas are trying to tell us |
22:02.34 |
mpictor |
maybe they could take SCView and hook it into
libexpress instead of using the sdai libs |
22:02.43 |
mpictor |
yes |
22:03.15 |
starseeker |
even the AP203 practical guide had just a few
black and white diagrams - color coding and/or node shape could be
used to convey a lot more information |
22:04.18 |
starseeker |
perhaps in addtion to exp2cxx we would have
exp2html |
22:04.29 |
mpictor |
hmmm |
22:04.45 |
mpictor |
good idea |
22:05.01 |
mpictor |
and a 'make doxygen' target, of
course |
22:05.06 |
starseeker |
right |
22:05.30 |
starseeker |
whether it was an actual doxygen run or called
exp2html under the hood instead, the end result would be detailed,
useful docs |
22:05.42 |
starseeker |
(actually, it'd probably call both) |
22:05.58 |
mpictor |
yea |
22:06.28 |
starseeker |
the steptools folks do have their hyperlinked
pages generated from the schema, and they're quite useful, but I've
always thought there might be a way to do better |
22:06.32 |
mpictor |
in a folder adjacent to p21read, there is code
to generate html - but it uses the sdai libs rather than
libexpress |
22:06.41 |
starseeker |
hmm |
22:06.50 |
starseeker |
is the output any good? |
22:07.02 |
mpictor |
looks a lot like steptools :) |
22:07.06 |
starseeker |
heh |
22:07.17 |
starseeker |
should have
guessed |
22:07.25 |
starseeker |
ok, that's a good starting point
then |
22:07.46 |
mpictor |
I looked into https://readthedocs.org/ for
documentation once, but they require reStructuredText |
22:07.53 |
mpictor |
not compatible with doxygen :/ |
22:08.26 |
starseeker |
nods - especially for a
summer project, my instinct would be to have them get familiar with
what's there and how it works, then build from
that |
22:08.37 |
mpictor |
yes |
22:09.31 |
mpictor |
and I think I looked for programs that could
turn c/c++ into rst and didn't see any, so we'd lose a
lot |
22:10.23 |
starseeker |
ultimately we'd probably want doxygen for src
code and the direct schema documentation to reference each other -
I'd love to be able to click on a link in the schema docs and go to
the header that defines its corresponding C++ type |
22:11.17 |
starseeker |
anyway, something to think about - "what would
our preferred generated documentation look like" |
22:12.56 |
mpictor |
I've wondered from time to time about a gui
app with searchable, clickable express |
22:13.01 |
starseeker |
actually, rather than exp2html would probably
want exp2doc with a --format option to specify options - would
start with html, but in the future we could add rst, docbook,
etc |
22:13.22 |
starseeker |
mpictor: could html be generated to produce
that result? |
22:13.33 |
starseeker |
or did you have something more like a graph
navigator in mind? |
22:13.47 |
mpictor |
hmmm. guess we could do the search in
javascript |
22:14.00 |
mpictor |
I was actually thinking of something a lot
like SCView |
22:14.13 |
mpictor |
just using libexpress so it would have more
info than present in the libs |
22:14.21 |
starseeker |
nods |
22:15.27 |
mpictor |
now that exppp is in use on official schemas,
we can be pretty confident that the parser understands all the
express currently used in step schemas |
22:16.05 |
mpictor |
actually, its formatted, clickable express
could be html |
22:16.15 |
mpictor |
I think that Qt supports html
natively |
22:16.51 |
mpictor |
so we could use the same output for the gui
app and for the www documentation |
22:18.57 |
starseeker |
nods |
22:19.18 |
kanzure |
have either of you used swagger |
22:19.29 |
mpictor |
never heard ofit |
22:19.30 |
kanzure |
it is a marginally not awful way of rendering
schema documentation |
22:19.43 |
kanzure |
http://swagger.wordnik.com/ |
22:20.18 |
kanzure |
anyway i mention it because it takes a schema
and generates documentation (i don't think it is directly usable in
this context) |
22:20.40 |
kanzure |
the ui is generated from http://petstore.swagger.wordnik.com/api/api-docs/pet |
22:21.04 |
mpictor |
what kind of schema does it take?
xml? |
22:21.08 |
kanzure |
json |
22:21.34 |
mpictor |
oic |
22:25.00 |
*** join/#brlcad merzo
(~merzo@181-27-132-95.pool.ukrtel.net) |
22:25.38 |
starseeker |
was thinking maybe something
like D3 could be used to design a navigation widget for a schema
view... |
22:29.48 |
starseeker |
but even graphiz rendered images would be a
great start |
22:30.16 |
mpictor |
you mean d3js.org? |
22:30.27 |
mpictor |
I always thought chord diagrams looked pretty
cool http://bl.ocks.org/mbostock/1046712 |
22:31.20 |
mpictor |
searches for a schema hammer,
to pound on a schema until it fits perfectly ;) |
22:33.01 |
mpictor |
speaking of graphs, I wonder what would happen
if we ran doxygen on the code from a schema |
22:34.21 |
starseeker |
ponders what size of
explosion would make a good analogy... |
22:34.57 |
mpictor |
heh |
22:35.16 |
starseeker |
but actually, that was one of the things I was
wondering - whether we wanted to add comments to schema and have
them end up as doxygen comments in the generated code |
22:35.31 |
mpictor |
if exp2cxx printed doxygen comments on some
things and not others, we could set doxygen to only document
commented things |
22:35.46 |
starseeker |
nods |
22:35.56 |
mpictor |
guess I should have read your comment before
finishing what I was typing :) |
22:36.06 |
starseeker |
maybe listing undocumented entries upon
request |
22:36.12 |
mpictor |
yea |
22:36.17 |
starseeker |
do the schemas allow comments? |
22:36.26 |
mpictor |
oic |
22:36.43 |
mpictor |
(* this is an EXPRESS comment *) --and so is
this |
22:36.53 |
starseeker |
sweet |
22:37.34 |
starseeker |
adding comments to those beasts will be a
years long process, but if we do it as we go it will end up being a
very valuable resource |
22:37.46 |
mpictor |
I was thinking of having exp2cxx write
comments for every class stating which entity it came from (for
example) and listing ancestors as "see also"'s |
22:37.53 |
starseeker |
our generated schema docs will get
progressively more valuable :-) |
22:38.16 |
mpictor |
at least some of the schema tools (such as
exppp) strip comments out |
22:38.17 |
starseeker |
nods - then adding any
"additional" comments that have been manually added to the
output |
22:38.23 |
mpictor |
heh |
22:38.50 |
starseeker |
time to bugfix exppp :-P - GSoC task
#1 |
22:38.57 |
mpictor |
lol |
22:39.28 |
starseeker |
seriously though, that would be worthwhile.
Remember how useful that old schema with comments was that you dug
up a while back |
22:39.54 |
starseeker |
if we can do a more modern version of that,
our .exp files will begin to become goto resources instead of just
copies |
22:40.08 |
starseeker |
or rather, our generated docs will be the goto
point |
22:40.13 |
mpictor |
true |
22:40.33 |
mpictor |
it would require changing the parser though,
and probably adding onto the data structures |
22:40.42 |
starseeker |
in exppp you mean? |
22:40.46 |
mpictor |
libexpress ignores comments and has no
facility to save them |
22:40.50 |
starseeker |
ah |
22:41.03 |
starseeker |
what do you think - doable for a summer
project? |
22:41.26 |
mpictor |
for the right student, I guess |
22:41.32 |
mpictor |
parsers aren't my strong point |
22:41.36 |
starseeker |
(has the advantage of letting them work on
something useful while learning and (hopefully) not hurting working
functionality) |
22:41.52 |
mpictor |
yes |
23:25.53 |
starseeker |
``Erik: did Notify get taken out
again? |