AngelScript's API is C++, so it makes embedding it into C++ programs (and exposing those data structures) a bit easier than Lua's C API.
For practical purposes for users, the main difference is that AngelScript has a very C/C++ like syntax -- vs. Lua's Scheme like syntax. Just one less programming language to learn. I don't have a strong suggestion -- just when I see C++ projects contemplating Lua, I like to suggest they consider AngelScript as they've probably never heard of it. Rob On Tue, Jan 19, 2021 at 11:53 AM Christopher Sean Morrison via brlcad-devel <brlcad-devel@lists.sourceforge.net> wrote: > Hi Rob, > > Thanks for the suggestion. How is AngelScript differentiated from Lua? > Sounds very similar to Lua and Tcl. > > For what it’s worth, BRL-CAD already has an embedded scripting language in > the GUI — it’s Tcl quite pervasively. That embedding is also exposed in > config file parsing, numerous extensions, and some converters. > > We also already have a very simple swiggable API for that already (LIBGED > and LIBWDB), but we’ve just not hooked it through to our lowest-level > primitive I/O layer. Nothing terribly hard, just hasn’t happened yet due > to competing priorities. We’ve wrapped the libs in swig several times over > the years but they didn’t result in compelling features (lack of > follow-through), so they’ve been ignored. > > What I was referring to, however, is a much much lower-level embedding for > describing dynamic geometry objects that get serialized as implicit CAD > geometry on the fly. Any scripting interface will work easily, it’s just > again a matter of priorities and who gets excited to work on the task. > > Cheers! > Sean > > > On Jan 19, 2021, at 2:15 PM, Rob McDonald <rob.a.mcdon...@gmail.com> > wrote: > > Not to take this thread in a different direction.... > > Sean - if you get serious about embedding a scripting language into > BRL-CAD, you might also consider AngelScript > <https://www.angelcode.com/angelscript/>. It is much less well known > than many of the alternatives, but it has the feature that it was designed > to be embedded in C++ programs. > > We use it in OpenVSP and have found it very easy to embed and to work > with. We use it for user-defined functions and plugin-like capabilities. > We also use it as a built-in scripting capability so users can automate > OpenVSP with no dependencies (no Python, no compiler, etc). In addition, > we have a C++ API that users could use to develop their own application > that uses OpenVSP's capabilities as a library -- we wrap/bind that API > using Swig. We publish Python bindings and give instructions for Matlab > bindings as those are the two most used by our users. > > There is some work keeping the AngelScript side of the API and the C++ API > consistent -- but Swig makes supporting additional languages easy. > > Rob > > > > On Tue, Jan 19, 2021 at 10:50 AM Christopher Sean Morrison via > brlcad-devel <brlcad-devel@lists.sourceforge.net> wrote: > >> Hi Daniel, >> >> Yes, import via 3dm-g or step-g are the two main methods. They can also >> be created directly with openNURBS — there are several source code examples >> in src/proc-db (see the C++ files). >> >> Lua is good stuff and obviously really easy to integrate.. but there has >> also been good progress made on a direct python interface too. That code >> currently resides in a repo fork, but was last worked on by Jaipal in 2018 >> — he’s got a nice article up at >> https://medium.com/@Mr_Jaypee/brl-cads-python-procedural-geometry-990e3c286a63 >> and >> the code is on github. >> >> I don’t think python or lua as a new required dep are a problem at all. >> I’ve had a goal for years to have a built-in procedural primitive where one >> can describe geometry and define behavior with code (starting with either >> tcl, lua, python, or pure “ged” command listings). Orthogonal to creating >> NURBS entities of course.. >> >> Cheers! >> Sean >> >> >> On Jan 19, 2021, at 1:39 PM, Daniel Roßberg <danielmrossb...@gmail.com> >> wrote: >> >> Hello all, >> >> I was recently asked, how to create a NURBS solid in BRL-CAD. >> Unfortunately, I didn't know another possibility than importing them from >> Rhino. It should however be possible to create them with openNURBS >> functionality. >> >> My idea is to wrap the openNURBS classes by the Lua scripting language. >> Because of its compactness, it would be possible to bundle it with BRL-CAD >> and have it accessible from mged. >> >> It should also be mentioned that there is already a Python scripting >> interface with the rhino3dm interface. But, making this standard for >> BRL-CAD would bloat the program a bit, or? >> >> What do you think? >> >> Regards, >> Daniel >> _______________________________________________ >> BRL-CAD Developer mailing list >> brlcad-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/brlcad-devel >> >> >> _______________________________________________ >> BRL-CAD Developer mailing list >> brlcad-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/brlcad-devel >> > _______________________________________________ > BRL-CAD Developer mailing list > brlcad-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/brlcad-devel > > > _______________________________________________ > BRL-CAD Developer mailing list > brlcad-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/brlcad-devel >
_______________________________________________ BRL-CAD Developer mailing list brlcad-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-devel