Subject: Re: [boost] [Review] GGL review starts today, November 5th
From: Pierre Morcello (pmorcell-cppfrance_at_[hidden])
Date: 2009-11-12 16:35:37
This is not a review.
I have a few remarks, since I am from realtime 3D world (and not really GIS), and I did not see in previous comments much about this.
I took 2 hours to read through the example and documentation and hpp. I also read all exchanges about the GGL since september09.
Please note also maybe most of my comment is wrong because it's more about maths sometimes than geometry itself. It also might be more about graphs than geometry. In that case, don't hesitate to tell me!
// ==============remarks A
What I would like from a geometric library (for realtime 3D) is
### between (for) : lines / segments / rays / triangles / spheres / boxes / frustum / planes / cylinder
### all the previous ones on planes
# matrix / vertex / 4D homogeneous coordinates
# multiplication / projection etc...
# conversions of position/rotation/scale/normal
### for the following coordinates systems : world / view / parent / local
2/ less basic
## mesh normals proposition
## interpolation of vertex attributes
# infinite positions of points (for lines, meshes etc...)
# frustum manipulation.
### extraction of corners / plans
### on triangles / mesh / cylinder / spheres
A list of basic stuffs is for example the functions of the cml library (configurable maths library).
3/ more advanced
# uvw proposition
# projection of mesh -> mesh
### interpolation of vertex attributes
### results stored in maps + uvw
# mesh blendings
# extraction of some mesh features
# segmentation of meshes
4/ very advanced
You can check xNormal.net website to get an idea of the traditionnal mapping and mesh manipulations (which are out of scope of the thread right now).
All of this is of course extremely application oriented. And I did not even spoke of animations (inverse cinematic, motions graphs etc...). To not have any of theses features would not mean that ggl lacks a lot, because geometry is very wide subject. It just might not really be suited for realtime 3D or even toolchain creations in its current state.
// ==============remarks B
Now given my point of view the documentation is not easy at all to follow, even if the tutorials are very good. Please have a look at the "geometric tools"/ wild magic documentation to get an idea of what is a perfect documentation in my opinion. The current ggl doxygen just looks like it was barely configured. Though I see an enormous amount of work, it could be better advertised by completing / pruning the documentation. This seems to me mandatory if you want people to develop extensions for your library, or even use it.
The examples you provided are very clear, but the reference is not as good.
There is an extraordinary amount of work behind the ggl. But if you want external contributions for realtime, you might wonder : can it be extented by someone who do not use more templates than the stl ? how does he find at least the basics 1/ 2/ in the documentation ?
// ==============remarks C
I personnaly think boost.geometry would be much clearer to the reader. (there is even someone how posted something about the 'CGL' on boost mailing list..).
Perfect lib would be easy as the cml, documented as geometric tools, and with algorithms like those of xnormals. But, as I stated, maybe this is not "real geometric" problems, but graphs problems / analysis problems / very application specific problems.
What do you think of these views ?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk