2 #ifndef vcsl_spatial_h_ 3 #define vcsl_spatial_h_ 33 # include <vcl_msvc_warnings.h> 35 #define VCSL_SPATIAL_VECTOR_BOOL std::vector<bool> 80 std::vector<vcsl_spatial_transformation_sptr>
motion()
const {
return motion_;}
93 void set_parent(std::vector<vcsl_spatial_sptr>
const& new_parent);
160 std::vector<vcsl_spatial_transformation_sptr> &path,
168 std::vector<vcsl_spatial_transformation_sptr> &path,
178 std::vector<vcsl_spatial_transformation_sptr>
motion_;
190 #endif // vcsl_spatial_h_ Spatial coordinate system transformation graph.
2D Cartesian coordinate system.
void set_beat(std::vector< double > const &new_beat)
Set the list of time clocks.
virtual bool recursive_path_from_local_to_cs_exists(const vcsl_spatial_sptr &other, double time)
Does a path from ‘this’ to ‘other’ exist ?.
virtual const vcsl_spherical * cast_to_spherical() const
std::vector< double > beat() const
Return the list of time clocks.
virtual bool path_from_local_to_cs_exists(const vcsl_spatial_sptr &other, double time)
Does a path from ‘this’ to ‘other’ exist ?.
virtual int matching_interval(double time) const
Return the index of the beat inferior or equal to ‘time’.
void set_motion(std::vector< vcsl_spatial_transformation_sptr > const &m)
Set the list of transformations along the time.
std::vector< double > beat_
Clock times.
Planar coordinate system specified by the parameters rho and theta.
virtual const vcsl_cylindrical * cast_to_cylindrical() const
Abstract coordinate system.
virtual void set_graph(const vcsl_graph_sptr &new_graph)
const vcsl_spatial * cast_to_spatial() const override
virtual const vcsl_cartesian_3d * cast_to_cartesian_3d() const
3D coordinate system specified by distance rho, angles theta and phi.
Abstract coordinate system.
#define VCSL_SPATIAL_VECTOR_BOOL
3D Cartesian coordinate system.
virtual void path_from_local_to_cs(const vcsl_spatial_sptr &other, double time, std::vector< vcsl_spatial_transformation_sptr > &path, VCSL_SPATIAL_VECTOR_BOOL &sens)
Find the sequence of transformations from ‘this’ to ‘other’.
A spatial coordinate system.
std::vector< vcsl_spatial_transformation_sptr > motion() const
Return the list of transformations along the time.
virtual const vcsl_cartesian_2d * cast_to_cartesian_2d() const
bool valid_time(double time) const
Is ‘time’ between the two time bounds ?.
void set_unique(const vcsl_spatial_sptr &new_parent, const vcsl_spatial_transformation_sptr &new_motion)
Set the unique parent and the unique motion.
unsigned int duration() const
Return the time duration.
std::vector< vcsl_spatial_transformation_sptr > motion_
successive transformations from ‘this’ to ‘parent’ along the time.
virtual bool recursive_path_from_local_to_cs(const vcsl_spatial_sptr &other, double time, std::vector< vcsl_spatial_transformation_sptr > &path, VCSL_SPATIAL_VECTOR_BOOL &sens)
Find the sequence of transformations from ‘this’ to ‘other’.
vcsl_graph_sptr graph_
List of all the spatial coordinate system of the graph.
virtual const vcsl_polar * cast_to_polar() const
std::vector< vcsl_spatial_sptr > potential_children_
List of spatial coordinate system that can be child of ‘this’ at a time.
void set_parent(std::vector< vcsl_spatial_sptr > const &new_parent)
Set the list of parent coordinate system along the time.
void set_reached(const bool &new_reached)
3D coordinate system specified by distance rho, angle theta and distance z.
virtual vnl_vector< double > from_local_to_cs(const vnl_vector< double > &v, const vcsl_spatial_sptr &other, double time)
Return v but expressed in the spatial coordinate system ‘other’.
std::vector< vcsl_spatial_sptr > parent() const
Return the list of parent coordinate system along the time.
bool reached_
True if ‘this’ is already reached during the search path algorithm.
virtual bool is_absolute(double time) const
Is ‘this’ an absolute spatial coordinate system at time ‘time’?.
std::vector< vcsl_spatial_sptr > parent_
successive parents of ‘this’ along the time.