#include <gudhi/Alpha_complex_3d.h>
#include <gudhi/Simplex_tree.h>
#include <iostream>
#include <string>
#include <vector>
#include <limits>  
using Weighted_alpha_complex_3d =
using Point = Weighted_alpha_complex_3d::Point_3;
using Weighted_point = Weighted_alpha_complex_3d::Weighted_point_3;
int main(int argc, char **argv) {
  
  
  
  std::vector<Weighted_point> weighted_points;
  weighted_points.push_back(Weighted_point(Point(1, -1, -1), 4.));
  weighted_points.push_back(Weighted_point(Point(-1, 1, -1), 4.));
  weighted_points.push_back(Weighted_point(Point(-1, -1, 1), 4.));
  weighted_points.push_back(Weighted_point(Point(1, 1, 1), 4.));
  weighted_points.push_back(Weighted_point(Point(2, 2, 2), 1.));
  
  
  
  Weighted_alpha_complex_3d alpha_complex_from_points(weighted_points);
  if (alpha_complex_from_points.create_complex(simplex)) {
    
    
    
              << 
" simplices - " << simplex.
num_vertices() << 
" vertices." << std::endl;
    std::cout << "Iterator on alpha complex simplices in the filtration order, with [filtration value]:" << std::endl;
      std::cout << "   ( ";
        std::cout << vertex << " ";
      }
      std::cout << ") -> "
      std::cout << std::endl;
    }
  }
  return 0;
}