CsgNode and descendant: method isPrimitive

This method allows to check whether the CsgNode is actually a
CsgOperation or a CsgPrimitive. It will be used later on.

Signed-off-by: Celelibi <celelibi@gmail.com>
CsgTree: Add asciiArtGraph method

It should allow to print an ascii-art version of the tree.

Signed-off-by: Celelibi <celelibi@gmail.com>
csg: mark const the methods that deserve it

It may help reducing the occurence of bugs in the future.

Signed-off-by: Celelibi <celelibi@gmail.com>
csg: Make ALL the pointers const!

More const = less errors. Even iterators may be const!

Signed-off-by: Celelibi <celelibi@gmail.com>
csg: The associative table is about the id

The association table is not about the label. The labels are actually
useless. CsgTree is now able to retrive a CsgNode from an id.

Signed-off-by: Celelibi <celelibi@gmail.com>
csg: Cosmetic fix

Added a few spaces in the debug strings.

Signed-off-by: Celelibi <celelibi@gmail.com>
mainwindow: Inlcude order

System before local.

Signed-off-by: Celelibi <celelibi@gmail.com>
InterfaceCSG: Create primitive on click

Now when the button is clicked the required primitive is created and
added to the CsgTree.

Signed-off-by: Celelibi <celelibi@gmail.com>
csgTree: id -> CsgNode map cannot be const

We need sometime to retrive a CsgNode to modify it. Thus it cannot be
stored as a const pointer.

Signed-off-by: Celelibi <celelibi@gmail.com>
CsgTree: joinPrimitives return CsgOperation

Let that method return the newly created CsgOperation so that it's
easier to deal with it later on.

Signed-off-by: Celelibi <celelibi@gmail.com>
MainWindow: We should now build a tree

However the tree may easily become inconsistent. And it's still not
drawn.

Signed-off-by: Celelibi <celelibi@gmail.com>