summaryrefslogtreecommitdiff
path: root/matching/include/bifiltration.h
diff options
context:
space:
mode:
Diffstat (limited to 'matching/include/bifiltration.h')
-rw-r--r--matching/include/bifiltration.h31
1 files changed, 30 insertions, 1 deletions
diff --git a/matching/include/bifiltration.h b/matching/include/bifiltration.h
index c9b64f1..2b4950f 100644
--- a/matching/include/bifiltration.h
+++ b/matching/include/bifiltration.h
@@ -38,7 +38,7 @@ namespace md {
init();
}
- DiagramKeeper weighted_slice_diagram(const DualPoint& line, int dim) const;
+ Diagram weighted_slice_diagram(const DualPoint& line, int dim) const;
SimplexVector simplices() const { return simplices_; }
@@ -100,8 +100,37 @@ namespace md {
};
std::ostream& operator<<(std::ostream& os, const Bifiltration& bif);
+
+ class BifiltrationProxy {
+ public:
+ BifiltrationProxy(const Bifiltration& bif, int dim = 0);
+ // return critical values of simplices that are important for current dimension (dim and dim+1)
+ PointVec positions() const;
+ // set current dimension
+ int set_dim(int new_dim);
+
+ // wrappers of Bifiltration
+ int maximal_dim() const;
+ void translate(Real a);
+ Real minimal_coordinate() const;
+ Box bounding_box() const;
+ Real max_x() const;
+ Real max_y() const;
+ Real min_x() const;
+ Real min_y() const;
+ Diagram weighted_slice_diagram(const DualPoint& slice) const;
+
+ private:
+ int dim_ { 0 };
+ mutable PointVec cached_positions_;
+ Bifiltration bif_;
+
+ void cache_positions() const;
+ };
}
+
+
#endif //MATCHING_DISTANCE_BIFILTRATION_H
//// The value type of OutputIterator is Simplex_in_2D_filtration