Daniel,
I think the other part worth mentioning about LIBGED is that it's
main purpose is to make functionality that was previously ONLY
available in front-end application code within mged also available
outside of mged. Regardless of seeming scripting-based (which it
naturally is since it came from mged), LIBGED is a way to push
functionality up into libraries, clean up (and test) their
implementation, and leverage the time and effort that went into them.
There's literally more than a hundred staff-years invested across
more than 100k lines of code in mged that would be horrible to
ditch. While moving the code to LIBGED, that gives us the
opportunity to decouple the implementation from Tcl and makes it even
easier then to push some of the functionality all the way up into
LIBRT as well where much of it belongs. LIBGED is a first step.
It's a way to begin cleaning the code up so it can be used for
another, better, new GUI.
If the GE uses LIBGED, it will be a back-end detail like how GE uses
LIBRT and probably only as a temporary measure at that until it can
be cleaned up. Again, there's about 100k lines of functionality that
we're not about to rewrite so there will undoubtedly be things that
will be much more easily implemented via LIBGED than via LIBRT or
from scratch. Long term, though, GE's focus isn't to be command-
driven like the GUI. It's to be a clean OO geometry kernel API like
other geometry kernels.
Cheers!
Sean
On Nov 21, 2008, at 9:36 AM, David Loman wrote:
Daniel: Firstly, thanks for writing this up. My fingers are numb
from all the documenting I have been doing the past week!
To comment on a few items in the previous mail:
-Speed is also a major factor for iBME, but is considered an
optimization issue. Since we are early in design, its a bit too
premature to optimize at this point.
-libged will only be part of the interface into brlcad's libraries.
We will be accessing many functions directly from the root libs
themselves (librt, libwdb, etc). libged will be a shortcut to
obtain functionality quickly, at the expense of speed.
-iBME will definetly be able to make use of Daniels work thus far,
especially since part of the first milestone to meet involves db io.
-You are correct in your analysis of the levels of abstraction
between the two projects.
Once i finish documenting things on http://brlcad.org/wiki/
IBME_Main, I will dive into your implementation of things in depth.
Thanks for your time and effort! Since this is a mailing list,
anyone is more than welcome to jump on the discussion train!
-Dave Loman
On Fri, Nov 21, 2008 at 9:24 AM, Daniel Roßberg
<[EMAIL PROTECTED]> wrote:
Currently there are two ongoing efforts to create a C++ wrapper for
BRL-CAD.
First, there is my project (supported on code contributions from TNO)
to write the C++ layer right on top of the core functions (mainly
provided by librt). This way I want to
- create an easy to use interface which
- is not effected by changes to the inner (librt etc.) structures,
- is fast and
- acts as a reference on how to use BRL-CAD's core functions.
This interface shall be used in other fast running programs. One
problem which arises then is the decision about the owners and live
times of the objects. I don't want to use memory allocation or string
comparisons in simple operations. A solution is the use of call backs
(which may look ugly for some people). Well, we will see how far I
will go with this.
The other C++ interface project is part of iBME (Integrated BRL-CAD
Modeling Environment) with David Loman as the main developer of its OO
design. It will use BRL-CAD via libged's command-line like interface.
There I would like to know more about the reasons for the design.
What are the intended applications?
In my opinion these two projects are trying to develop different
layers on BRL-CAD (iBME a more abstract, higher layer than mine).
Maybe iBME's Geometry Engine could be based on my core interface.
Sziasztok,
Daniel
PS: Both projects have a wiki-page on brlcad.org and their source code
can be found on brlcad.svn.sourceforge.net/brlcad/rt^3 at
include/brlcad, src/coreInterface or src/iBME respective.
----------------------------------------------------------------------
---
This SF.Net email is sponsored by the Moblin Your Move Developer's
challenge
Build the coolest Linux based applications with Moblin SDK & win
great prizes
Grand prize is a trip for two to an Open Source event anywhere in
the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
BRL-CAD Developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-devel
----------------------------------------------------------------------
---
This SF.Net email is sponsored by the Moblin Your Move Developer's
challenge
Build the coolest Linux based applications with Moblin SDK & win
great prizes
Grand prize is a trip for two to an Open Source event anywhere in
the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
BRL-CAD Developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-devel
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
BRL-CAD Developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-devel