Currently any code that runs a census will have a pointer to an NGluingPermSearcher object (or more likely, something which inherits from NGluingPermSearcher). But this means any code which will integrate with these will also have to inherit from NGluingPermSearcher even if the class doesn't need the specifics of NGluingPermSearcher.
I propose a generic Census class, which could hold members such as runSearch(), use_, useArgs, whichPurge_, orientableOnly_ and so-on, but not hold members such as order, orderSize, orderElt.
This will mean some changes to UseGluingPerms and related. A census should produce triangulations, so I think UseGluingPerms should be changed from
void (*UseGluingPerms)(const NGluingPermSearcher*, void*)
to
void (*UseTriangulation)(const NTriangulation*, void*)
For existing classes, we just change use_(this, useArgs_) to use_(this->triangulate(), useArgs_), but newer census classes can now construct triangulations in different manners (or have them already constructed).
Currently any code that runs a census will have a pointer to an
NGluingPermSearcher
object (or more likely, something which inherits fromNGluingPermSearcher
). But this means any code which will integrate with these will also have to inherit fromNGluingPermSearcher
even if the class doesn't need the specifics ofNGluingPermSearcher
.I propose a generic Census class, which could hold members such as
runSearch()
,use_
,useArgs
,whichPurge_
,orientableOnly_
and so-on, but not hold members such asorder
,orderSize
,orderElt
.This will mean some changes to
UseGluingPerms
and related. A census should produce triangulations, so I thinkUseGluingPerms
should be changed fromvoid (*UseGluingPerms)(const NGluingPermSearcher*, void*)
tovoid (*UseTriangulation)(const NTriangulation*, void*)
For existing classes, we just change
use_(this, useArgs_)
touse_(this->triangulate(), useArgs_)
, but newer census classes can now construct triangulations in different manners (or have them already constructed).