User:Cprecup/GSoC2012 progress

< User:Cprecup
Revision as of 09:19, 16 May 2012 by Cprecup (talk | contribs) (patch for test_booleanize.c applied in the revision r50566)

Community bonding period

General progress


Patch for the file src/libbu/booleanize.c was accepted and applied in the revision r50566.


I have modified my first patch, the one meant to create a test_booleanize.c with unit tests for the file src/libbu/booleanize.c. At the same time, I found a small bug in the booleanize.c code. The patch can be found here.


I have created an alternative patch for the one that is meant to separate out LIBNMG from LIBRT. This one 'moves' the files from the src/primitives/nmg location to src/libnmg without being needed an extra help from someone with commit access.

Here is a link to a temporary location for the patch since it exceeds the size limit provided by Sourceforge.


I have finished a patch meant to separate out LIBNMG from LIBRT. You can find the patch here. Build system modifications have been made in the following files:

  • src/librt/CMakeLists.txt
  • src/librt/

and the following 2 files have been correspondingly added for libnmg:

  • src/libnmg/CMakeLists.txt
  • src/librt/

One thing needs to be made by a person with commit access: move the src/librt/primitives/nmg source code into src/libnmg and apply the provided patch.

Reminder: there's also this patch that I've made and needs to be reviewed. It contains unit tests for the src/libbu/booleanize.c file and it fixes a small bug that wouldn't have passed one of the tests.


I've studied the src/mged, src/librt and src/conv folders, looking for methods that can be used to access the elements of a CSG tree.

Methods that got my attention:

  • in the src/librt/db_tree.c file:
int db_tree_list(struct bu_vls *vls, const union tree *tp)

which fills a bu_vls with a representation of a given tree appropriate for processing by Tcl scripts. Could be useful in constructing the interactive graph.

union tree *db_tree_parse(struct bu_vls *vls, const char *str, struct resource *resp)

which takes a TCL-style string description of a binary tree, as produced * by db_tree_list(), and reconstruct the in-memory form of that tree. Could be useful after the structure of the graph is modified and the CSG needs to be updated.

2. Get commit access


Worked on the patch for the NMG migration task (create a separate library LIBNMG outside LIBRT). This time, because BRL-CAD previously built without errors, things go smoother.

1. Compile & install BRL-CAD


After discussing my problem with one of the mentors and finding the cause for these errors, BRL-CAD completely built.


I created my first patch for BRL-CAD by using the virtual machine disk image so now I want to compile and install BRL-CAD from source (from a svn checkout).

I've followed the instructions with respect to the dependencies (the ones from here and from the doc/README.Linux). I've used the command


but after using


, I kept getting these errors

Afterwards, I decided to try the command

cmake -DCMAKE_BUILD_TYPE=Debug .

but then I encountered another error while running it: I managed to solve the problem by installing itk3 and itk3-dev. However, while running the make command I bumped into the previously mentioned make errors and this one: The first ones refer to fontconfig symbols.