codac
codac_TPlane.h
Go to the documentation of this file.
1 
12 #ifndef __CODAC_TPLANE_H__
13 #define __CODAC_TPLANE_H__
14 
15 #include "codac_Paving.h"
16 #include "codac_TubeVector.h"
17 #include "codac_ConnectedSubset.h"
18 
19 namespace codac
20 {
43  class TPlane : public Paving
44  {
45  public:
46 
52  TPlane(const Interval& tdomain);
53 
54  TPlane(const TPlane& t);
55 
56  TPlane(const TPlane* t, const Paving* p);
57 
61  ~TPlane();
62 
63  TPlane& operator=(const TPlane& t);
64 
73  void compute_loops(float precision, const TubeVector& p, const TubeVector& v);
74 
81  void compute_detections(float precision, const TubeVector& p);
82 
91  void compute_detections(float precision, const TubeVector& p, const TubeVector& v);
92 
100  void compute_proofs(const TubeVector& p);
101 
110  void compute_proofs(const TubeVector& p, const TubeVector& v);
111 
119  int nb_loops_detections() const;
120 
128  int nb_loops_proofs() const;
129 
137  const std::vector<ConnectedSubset>& detected_loops_subsets() const;
138 
146  const std::vector<IntervalVector> detected_loops() const;
147 
155  const std::vector<ConnectedSubset>& proven_loops_subsets() const;
156 
164  const std::vector<IntervalVector> proven_loops() const;
165 
175 
181  static void verbose(bool verbose = true);
182 
190  void compute_proofs(const std::function<IntervalVector(const IntervalVector&)>& f);
191 
192  protected:
193 
206  void compute_detections(float precision, const TubeVector& p, const TubeVector& v, bool with_derivative, bool extract_subsets);
207 
208  float m_precision = 0.;
209  std::vector<ConnectedSubset> m_v_detected_loops;
210  std::vector<ConnectedSubset> m_v_proven_loops;
211 
212  TPlane *m_first_subtplane, *m_second_subtplane;
213 
214  static bool m_verbose;
215  };
216 }
217 
218 #endif
FixPoint of a separator The fixpoint of a separator is computed by calling the "::"separate function ...
Definition: codac_capd_helpers.h:9
void compute_detections(float precision, const TubeVector &p)
Computes this tplane as a subpaving, from the tube of positions only.
void compute_loops(float precision, const TubeVector &p, const TubeVector &v)
Computes the loops (detections and proofs) as a subpaving, from the tube of positions and the tube o...
const std::vector< IntervalVector > detected_loops() const
Returns the set of boxed detected loops.
Temporal representation of loops.
Definition: codac_TPlane.h:43
One dimensional trajectory , defined as a temporal map of values.
Definition: codac_Trajectory.h:34
std::vector< ConnectedSubset > m_v_detected_loops
set of loops detections
Definition: codac_TPlane.h:209
const std::vector< ConnectedSubset > & detected_loops_subsets() const
Returns the set of detected loops.
n-dimensional tube , defined as an interval of n-dimensional trajectories
Definition: codac_TubeVector.h:38
int nb_loops_proofs() const
Returns the number of proven loops.
float m_precision
precision of the SIVIA algorithm, used later on in traj_loops_summary()
Definition: codac_TPlane.h:208
int nb_loops_detections() const
Returns the number of loop detections.
Trajectory traj_loops_summary() const
Returns a temporal function of value 0 in case of no-detection, 1 in case of loop detection and 2 in ...
void compute_proofs(const TubeVector &p)
Tries to prove the existence of loops in each detection set.
static void verbose(bool verbose=true)
Enables verbose mode for displaying information related to loops computations.
const std::vector< ConnectedSubset > & proven_loops_subsets() const
Returns the set of proven loops.
std::vector< ConnectedSubset > m_v_proven_loops
set of loops proofs
Definition: codac_TPlane.h:210
const std::vector< IntervalVector > proven_loops() const
Returns the set of boxed proven loops.
TPlane(const Interval &tdomain)
Creates a 2d temporal space .
~TPlane()
TPlane destructor.
Multi-dimensional paving as representation of a set.
Definition: codac_Paving.h:29