File: checkregularity.cc

package info (click to toggle)
topcom 0.17.8%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 78,572 kB
  • sloc: cpp: 16,640; sh: 975; makefile: 345; ansic: 40
file content (35 lines) | stat: -rw-r--r-- 1,024 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "CommandlineOptions.hh"
#include "PointConfiguration.hh"
#include "Symmetry.hh"
#include "Chirotope.hh"
#include "PlacingTriang.hh"
#include "RegularityCheck.hh"


int main(const int argc, const char** argv) {
  CommandlineOptions::init(argc, argv);
  PointConfiguration points;
  if (!points.read(std::cin)) {
    if (CommandlineOptions::verbose()) {
      std::cerr << "error while reading point configuration" << std::endl;
    }
    return 1;
  }
  SymmetryGroup symmetries(points.no());
  symmetries.read(std::cin);
  Chirotope chiro(points, false);
  SimplicialComplex triang;
  size_type count(0);
  size_type count_nonregs(0);
  while (triang.read(std::cin)) {
    ++count;
    RegularityCheck regcheck(points, chiro, triang);
    if (!regcheck.is_regular()) {
      ++count_nonregs;
      std::cout << triang << std::endl << "is non-regular." << std::endl;
    }
    std::cerr << "Checked " << count << " triangulations, " 
	      << count_nonregs << " non-regular so far." << std::endl;
  }
  return 0;
}