I am yunus and civil engineer from turkey. I am working as a c++ developer in an engineering company which creates some BIM and engineering softwares. I am not sure if i can contribute to this project as a developer and would really love to be involved in it.
|
Hi yekose,
We need help from developers, badly. At different fronts, with some examples, 1, Android, ios, or html5 l/emscripten 2, qt support improvement: platforms, gui(like ravas is working on), print support 3, locales, like from right to left languages 4, math, equation solvers, graph algorithms , k-d tree, r-tree, etc 5, geometry, bezier, hatch, hyperbola, parabola, voronoi(as a feature, and as ways to find nearest) Feel free to find your favorite part as well. Dxli
|
Yeah cool, i think i could give you guys some help about 4 and 5, and also i am familiar with the ios development not really deep but okay. So it would be better for some starting point, i mean to get familiar with the codebase, do you have any structure, hierarchy? I am not sure where to start first. I got the code from the git. Do you have anything like jira or something?
|
You can post an issue you want to work on at https://github.com/LibreCAD/LibreCAD/issues
Then in commit summaries you can add "issue #123" (replace 123 with your issue number) which will link the issue and the commit (it's a way to group commits). If you understand floating point errors and intersection algorithms: we need a hero for https://github.com/LibreCAD/LibreCAD/issues/523 There is a list of relevant files toward the bottom https://github.com/LibreCAD/LibreCAD/issues/523#issuecomment-128115992 In general the place to start is main.cpp and qc_applicationwindow.cpp |
In reply to this post by yekose
You start with a github account(in case you don't have one yet). and fork the official repository:
https://github.com/LibreCAD/LibreCAD Since LibreCAD is currently Qt based, it's straight forward to clone the repository and start development with Qt-Creator, and eventually send in pull requests. Feel free to play with simple stuff (like a trivial one I did: https://github.com/LibreCAD/LibreCAD/commit/263fd2dd3983e5f2bd5785e00842399b17db8b8a) items 4 and 5 are great, if you are interested in algorithms. For equations solvers, feel free to clean up and improve: https://github.com/LibreCAD/LibreCAD/blob/master/librecad/src/lib/math/rs_math.h related to issue 523, we need to improve robustness of equations solvers: quadratic, cubic, quartic, quadratic-quadratic. Of course, issue 523 should be handled from both the snapper side as well as equation solver side, as the equation solvers will always have some tolerance in results. kd-tree might help to efficiently identify duplicated points. To efficiently find intersections between two beziers, we can do binary tree search or R-Tree of bounding boxes. Currently, to find intersections of two 1000-segment beziers, all segment pairs (1 million pairs) are searched. If you would like to start new implementation, try to follow classes rs_line/rs_ellipse to implement lc_hyperbola and lc_parabola for hyperbola and parabola support. Another thought, read through our closed bugs and have a look at the fixes: https://sourceforge.net/p/librecad/bugs/
|
I ll do my best, thank you for the information you provided and i want to ask a basic question about the notation i think this LC_ is librecad but there is also some other prefixes like RS_ QC_ , do they have specific meanings?
|
Only for historical reasons, RS_ is a legacy from qcad, and whenever we don't want to use RS_, LC_ is used.
Feel free to use simple names without any prefix (like what we have in LibreCAD_3).
|
Free forum by Nabble | Edit this page |