1 #ifndef TRAVERSER_SECONDARYFAN_H_INCLUDED
2 #define TRAVERSER_SECONDARYFAN_H_INCLUDED
3 
4 #include "symmetrictraversal.h"
5 #include "triangulation2.h"
6 
7 Triangulation2 triangulationWithFullDimensionalIntersection(Triangulation2 g, PolyhedralCone const &c);
8 
9 class SecondaryFanTraverser: public ConeTraverser
10 {
11 	Triangulation2 theTriangulation;
12 	PolyhedralCone theCone;
13 	PolyhedralCone theRestrictingCone;
14 //        bool isHomogeneous;
15 	bool isSecondaryFanComplete;
16 	int n,d;
17 	void updatePolyhedralCone();
18 public:
19 	SecondaryFanTraverser(Triangulation2 const &triangulation_);
20 	SecondaryFanTraverser(Triangulation2 const &triangulation_, PolyhedralCone const &restrictingCone);
21 	virtual void changeCone(IntegerVector const &ridgeVector, IntegerVector const &rayVector);
22 	virtual IntegerVectorList link(IntegerVector const &ridgeVector);
23 	PolyhedralCone & refToPolyhedralCone();
24 };
25 
26 #endif
27