#include <iostream>

#include "Global.hh"
#include "Message.hh"
#include "CommandlineOptions.hh"

#include "Options.hh"
#include "ConfData.hh"

#include "Symmetry.hh"
#include "PointConfiguration.hh"
#include "CheckSymmetries.hh"
#include "CheckTriang.hh"

int main (const int argc, const char** argv) {
  using namespace topcom;

  CommandlineOptions::init(argc, argv);
  MessageStreams::forced() << std::endl;
  MessageStreams::forced() << "------------------------------------------------------------------\n";
  MessageStreams::forced() << " pretty-printing point configuration input data \n";
  MessageStreams::forced() << " TOPCOM client: " << CommandlineOptions::client() << '\n';
  MessageStreams::forced() << "------------------------------------------------------------------\n";
  MessageStreams::forced() << std::endl;

  Options options(Options::SHOW_INPUT_ONLY);
  ConfData confdata(options);
  confdata.read_input(std::cin);
  
  // pretty print all data:
  MessageStreams::result() << "points:" << std::endl;
  confdata.points().pretty_print(MessageStreams::result());
  MessageStreams::result() << std::endl;
  MessageStreams::result() << "symmetry generators:" << std::endl;
  confdata.symmetries().pretty_print_sorted_generators(MessageStreams::result());
  MessageStreams::result() << std::endl;
  MessageStreams::result() << "required symmetry generators:" << std::endl;
  confdata.required_symmetries().pretty_print_sorted_generators(MessageStreams::result());
  if (confdata.has_seed()) {
    MessageStreams::result() << "seed triangulation:" << std::endl;
    MessageStreams::result() << confdata.seed() << std::endl;
  }
  return 0;
}

// eof points2prettyprint.cc
