Changeset 7163

Timestamp:
Jun 26, 2007, 6:06:52 AM (15 years ago)
Author:
hervebronnimann
Message:

Review pass. Here is my email:

I went to look at the Boost.graph library, and found out that they define
source(e, g) for the IncidenceGraph concept. Oops. We should follow the same
convention and have the hds as *second* argument as well.
I modified all the concepts.

Finally, thou shall write 50 times "I will never use #include "...", always
with <...> form." In order to make #include <boost/hdstl/hds_traits.hpp> work,
I created a boost subdirectory with a symlink named hdstl pointing to ../../.
I was sad that hds_traits.hpp did not have any documentation! Please add some.

Then I fixed the test driver (it compiles with the command line:

g++ -W -Wall -pedantic -I$BOOST -I. -o hds_concept.t hds_concept.t.cpp

).

Next I added the support_vertices and support_facets to the hds_traits<HDS> in
the HDS concept. If they are not supported, they still need to be defined (and
equal to false).

In fact, they define a single MutableGraph concept with many concept-checking
classes. I think that's confusing, so I prefer to keep it the way we do it.

I performed a cleanup pass on all the concepts. I removed the set_opposite(h1,
h2): what could it possibly mean? Half-edges are created in pair, what would
the opposite h3 of h1 point to after h1 is set to be opposite to h2? Such a
function would violate the basic invariant that opposite(opposite(h3)) == h3
(it would then be equal to h2).

For vertex, you are inconsistent: the next_at_target_tag etc. in the
ForwardHDS concept does not have a single next(h, hds) function whose meaning
changes wrt the tag... So I don't think there should be a vertex(h, hds)
function that returns either the source or the target! You should have two
functions, source(h, hds) and target(h, hds) which always return the proper
vertex. Note that there is no need for a tag here, since target(h) =
source(opposite(h)). In fact, this should be an invariant.

I corrected a few things here and there (hopefully didn't miss too much, but
careful at defining hds member with types that are not 'HDS'; e.g., there is
no FacetListHDS type, not even as a template parameter -- the type is called
HDS, simply).

(No files)

Note: See TracChangeset for help on using the changeset viewer.