/* Copyright (c) 2018
   Charles Jordan (Hokkaido University, Sapporo, Japan),
   Michael Joswig, Lars Kastner (Technische Universitaet Berlin, Germany)

   This program is free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by the
   Free Software Foundation; either version 3, or (at your option) any
   later version: http://www.gnu.org/licenses/gpl.txt.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
-----------------------------------------------------------------------------
*/

#ifndef DUMMYTREEGRAPH_HH
#define DUMMYTREEGRAPH_HH

// This is a workaround since currently there is the _make_tree parameter in
// reverse search, but for cyclic polytopes we do not have a gkz object, so the
// usual TreeGraph does not work. This one does nothing and can be used
// instead.
#include "TriangNode.hh"
#include "AugmentedPointConfigurationCyclic.hh"
#include "FlipChecker.hh"
#include "FlipDataCyclic.hh"


template<typename FlipDataType, typename APCType>
class DummyTreeGraph {
   
   private:
      using FlipChecker = typename FlipDataType::Checker;
   
   public:
      DummyTreeGraph(
            const APCType& apc_in,
            const FlipChecker& fc_in)
         {}
      // Add a node to tree.
      void add_node(const TriangNode& triang){}
      // Add an edge to tree.
      void add_edge(const TriangNode& source, const TriangNode& target){}


      void print(){}
      // Add a node safely: First check whether it already exists, only add if
      // it does not.
      void add_node_safely(const TriangNode& triang){}

      void print_polymake_edges(const graph_edges_type& e){}

      void print_polymake(){}

      void print_polymake_fine(){}
};
#endif
