summaryrefslogtreecommitdiff
path: root/src/Alpha_complex/example
diff options
context:
space:
mode:
authorvrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2015-08-17 10:04:23 +0000
committervrouvrea <vrouvrea@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2015-08-17 10:04:23 +0000
commit9d0238eb065cd1a6b25ec2916d7a1a3cc52adcd6 (patch)
tree5cab7471757381ac4ebb1a86c4b5e9ab03df65ba /src/Alpha_complex/example
parentf572657e071e25e6fddea4950096e7eefc72072e (diff)
Alpha complex fix for only inserting when alpha is less than
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/alphashapes@736 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 0bc6560fa08b72d823681d36c49e80f0437d99f1
Diffstat (limited to 'src/Alpha_complex/example')
-rw-r--r--src/Alpha_complex/example/Alpha_complex_from_off.cpp25
-rw-r--r--src/Alpha_complex/example/Alpha_complex_from_points.cpp51
2 files changed, 32 insertions, 44 deletions
diff --git a/src/Alpha_complex/example/Alpha_complex_from_off.cpp b/src/Alpha_complex/example/Alpha_complex_from_off.cpp
index a17155de..3ce4c7f4 100644
--- a/src/Alpha_complex/example/Alpha_complex_from_off.cpp
+++ b/src/Alpha_complex/example/Alpha_complex_from_off.cpp
@@ -1,37 +1,40 @@
-// to construct a Delaunay_triangulation from a OFF file
-#include "gudhi/Delaunay_triangulation_off_io.h"
-#include "gudhi/Alpha_complex.h"
-
#include <stdio.h>
#include <stdlib.h>
+
#include <string>
+// to construct a Delaunay_triangulation from a OFF file
+#include "gudhi/Delaunay_triangulation_off_io.h"
+#include "gudhi/Alpha_complex.h"
+
void usage(char * const progName) {
- std::cerr << "Usage: " << progName << " filename.off" << std::endl;
- exit(-1); // ----- >>
+ std::cerr << "Usage: " << progName << " filename.off alpha_square_max_value" << std::endl;
+ std::cerr << " i.e.: " << progName << " ../../data/points/alphacomplexdoc.off 60.0" << std::endl;
+ exit(-1); // ----- >>
}
int main(int argc, char **argv) {
- if (argc != 2) {
+ if (argc != 3) {
std::cerr << "Error: Number of arguments (" << argc << ") is not correct" << std::endl;
usage(argv[0]);
}
std::string off_file_name(argv[1]);
+ double alpha_square_max_value = atof(argv[2]);
// ----------------------------------------------------------------------------
// Init of an alpha complex from an OFF file
// ----------------------------------------------------------------------------
typedef CGAL::Epick_d< CGAL::Dynamic_dimension_tag > Kernel;
- Gudhi::alphacomplex::Alpha_complex<Kernel> alpha_complex_from_file(off_file_name);
-
+ Gudhi::alphacomplex::Alpha_complex<Kernel> alpha_complex_from_file(off_file_name, alpha_square_max_value);
+
// ----------------------------------------------------------------------------
// Display information about the alpha complex
// ----------------------------------------------------------------------------
std::cout << "Alpha complex is of dimension " << alpha_complex_from_file.dimension() <<
" - " << alpha_complex_from_file.num_simplices() << " simplices - " <<
alpha_complex_from_file.num_vertices() << " vertices." << std::endl;
-
+
std::cout << "Iterator on alpha complex simplices in the filtration order, with [filtration value]:" << std::endl;
for (auto f_simplex : alpha_complex_from_file.filtration_simplex_range()) {
std::cout << " ( ";
@@ -42,4 +45,4 @@ int main(int argc, char **argv) {
std::cout << std::endl;
}
return 0;
-} \ No newline at end of file
+}
diff --git a/src/Alpha_complex/example/Alpha_complex_from_points.cpp b/src/Alpha_complex/example/Alpha_complex_from_points.cpp
index 33680a40..b160d702 100644
--- a/src/Alpha_complex/example/Alpha_complex_from_points.cpp
+++ b/src/Alpha_complex/example/Alpha_complex_from_points.cpp
@@ -1,55 +1,40 @@
-// to construct a Delaunay_triangulation from a OFF file
-#include "gudhi/Delaunay_triangulation_off_io.h"
-#include "gudhi/Alpha_complex.h"
-
+#include <stdio.h>
+#include <stdlib.h>
#include <CGAL/Delaunay_triangulation.h>
#include <CGAL/Epick_d.h>
-#include <stdio.h>
-#include <stdlib.h>
#include <string>
+#include <vector>
+
+// to construct a Delaunay_triangulation from a OFF file
+#include "gudhi/Delaunay_triangulation_off_io.h"
+#include "gudhi/Alpha_complex.h"
typedef CGAL::Epick_d< CGAL::Dynamic_dimension_tag > Kernel;
typedef Kernel::Point_d Point;
typedef std::vector<Point> Vector_of_points;
int main(int argc, char **argv) {
-
// ----------------------------------------------------------------------------
// Init of a list of points
// ----------------------------------------------------------------------------
Vector_of_points points;
- std::vector<double> coords;
-
- coords.clear();
- coords.push_back(0.0);
- coords.push_back(0.0);
- coords.push_back(0.0);
- coords.push_back(1.0);
+
+ std::vector<double> coords = { 0.0, 0.0, 0.0, 1.0 };
points.push_back(Point(coords.begin(), coords.end()));
- coords.clear();
- coords.push_back(0.0);
- coords.push_back(0.0);
- coords.push_back(1.0);
- coords.push_back(0.0);
+ coords = { 0.0, 0.0, 1.0, 0.0 };
points.push_back(Point(coords.begin(), coords.end()));
- coords.clear();
- coords.push_back(0.0);
- coords.push_back(1.0);
- coords.push_back(0.0);
- coords.push_back(0.0);
+ coords = { 0.0, 1.0, 0.0, 0.0 };
points.push_back(Point(coords.begin(), coords.end()));
- coords.clear();
- coords.push_back(1.0);
- coords.push_back(0.0);
- coords.push_back(0.0);
- coords.push_back(0.0);
+ coords = { 1.0, 0.0, 0.0, 0.0 };
points.push_back(Point(coords.begin(), coords.end()));
-
+
// ----------------------------------------------------------------------------
// Init of an alpha complex from the list of points
// ----------------------------------------------------------------------------
- Gudhi::alphacomplex::Alpha_complex<Kernel> alpha_complex_from_points(3, points.size(), points.begin(), points.end());
+ double max_alpha_square_value = 1e10;
+ Gudhi::alphacomplex::Alpha_complex<Kernel> alpha_complex_from_points(3, points.size(), points.begin(), points.end(),
+ max_alpha_square_value);
// ----------------------------------------------------------------------------
// Display information about the alpha complex
@@ -57,7 +42,7 @@ int main(int argc, char **argv) {
std::cout << "Alpha complex is of dimension " << alpha_complex_from_points.dimension() <<
" - " << alpha_complex_from_points.num_simplices() << " simplices - " <<
alpha_complex_from_points.num_vertices() << " vertices." << std::endl;
-
+
std::cout << "Iterator on alpha complex simplices in the filtration order, with [filtration value]:" << std::endl;
for (auto f_simplex : alpha_complex_from_points.filtration_simplex_range()) {
std::cout << " ( ";
@@ -68,4 +53,4 @@ int main(int argc, char **argv) {
std::cout << std::endl;
}
return 0;
-} \ No newline at end of file
+}