Skip to content
Snippets Groups Projects
Commit c7069460 authored by Sergi Hernandez's avatar Sergi Hernandez
Browse files

Initial doxygen documentation for the road class.

parent 2ad52efb
No related branches found
No related tags found
No related merge requests found
...@@ -41,22 +41,158 @@ class COpendriveRoad ...@@ -41,22 +41,158 @@ class COpendriveRoad
void reindex(void); void reindex(void);
void prune(std::vector<unsigned int> &path_nodes); void prune(std::vector<unsigned int> &path_nodes);
public: public:
/**
* \brief Default constructor
*/
COpendriveRoad(); COpendriveRoad();
/**
* \brief Copy constructor
*
* \param object constant reference to the object to be copied
*/
COpendriveRoad(const COpendriveRoad& object); COpendriveRoad(const COpendriveRoad& object);
/**
* \brief Load an Opendrive road description
*
* This function loads the Opendrive description file initializes the internal
* data structures. If the file referenced by the parameter does not exist or
* the format is not valid, this function will throw an exception.
*
* \param filename the name of the opendrive file to load with the extension
* and the full path.
*/
void load(const std::string &filename); void load(const std::string &filename);
/**
* \brief Sets the resolution
*
* This functions sets the default resolution used to generate all the internal
* geomtry. This functions automatically changes the resolution of all underlying
* objects.
*
* \param res desired value of the resolution in meters. The default resolution
* is 0.1 m.
*/
void set_resolution(double res); void set_resolution(double res);
/**
* \brief Sets the scale factor
*
* This function sets the scale factor to be applied to all the internal geometry.
* The scale factor makes it possible to change the size of the road withou actually
* modifying the internal geometry data. This functions automatically changes
* the scale factor of all underlying objects.
*
* \param scale desired scale factor. A value bigger than 1.0 will scale down the
* road and a value smaller than 1.0 will scale it up. The default
* value is 1.0.
*/
void set_scale_factor(double scale); void set_scale_factor(double scale);
/**
* \brief Sets the minim road length
*
* This function sets the length threshold to include any imported road segments into
* the internal structure. This functions automatically changes the minimum road length
* of all underlying objects.
*
* \param length threshold value to include a road segment. The default value is 0.01.
*/
void set_min_road_length(double length); void set_min_road_length(double length);
/**
* \brief Returns the resolution
*
* \return This function returns the current resolution
*/
double get_resolution(void) const; double get_resolution(void) const;
/**
* \brief Returns the scale factor
*
* \return This function returns the current scale factor
*/
double get_scale_factor(void) const; double get_scale_factor(void) const;
/**
* \brief Returns the minimum road length
*
* \return This function returns the current minimum road length
*/
double get_min_road_length(void) const; double get_min_road_length(void) const;
/**
* \brief Returns the number of road segment objects in the whole road
*
* \return This function returns the number of road segments present in
* whole road. The range of valid indexes goes from 0 to the
* value returned by this function -1.
*/
unsigned int get_num_segments(void) const; unsigned int get_num_segments(void) const;
/**
* \brief Returns a road segment by index
*
* This function returns a constant reference to the desired road segment
* object, which can not be modified by the user. If the index is not valid,
* this function will throw an exception.
*
* \param index is the 0 based index of the desired road segment
*
* \return constant reference to the desired road segment object.
*/
const COpendriveRoadSegment& get_segment(unsigned int index) const; const COpendriveRoadSegment& get_segment(unsigned int index) const;
/**
* \brief Returns the number of lane objects in the whole road
*
* \return This function returns the number of lanes present in whole
* road. The range of valid indexes goes from 0 to the value
* returned by this function -1.
*/
unsigned int get_num_lanes(void) const; unsigned int get_num_lanes(void) const;
/**
* \brief Returns a lane by index
*
* This function returns a constant reference to the desired lane
* object, which can not be modified by the user. If the index is not valid,
* this function will throw an exception.
*
* \param index is the 0 based index of the desired lane
*
* \return constant reference to the desired lane object.
*/
const COpendriveLane &get_lane(unsigned int index) const; const COpendriveLane &get_lane(unsigned int index) const;
/**
* \brief Returns the number of road node objects in the whole road
*
* \return This function returns the number of road nodes present in whole
* road. The range of valid indexes goes from 0 to the value
* returned by this function -1.
*/
unsigned int get_num_nodes(void) const; unsigned int get_num_nodes(void) const;
/**
* \brief Returns a road node by index
*
* This function returns a constant reference to the desired road node
* object, which can not be modified by the user. If the index is not valid,
* this function will throw an exception.
*
* \param index is the 0 based index of the desired road node
*
* \return constant reference to the desired road node object.
*/
const COpendriveRoadNode& get_node(unsigned int index) const; const COpendriveRoadNode& get_node(unsigned int index) const;
/**
* \brief overloaded index operator
*
* This operator is similar to the get_segment() function. It returns a
* constant reference to the desired road segment object, which can not
* be modified by the user. If the index is not valid,this function will
* throw an exception.
*
* \param index is the 0 based index of the desired road segment
*
* \return constant reference to the desired road segment object.
*/
const COpendriveRoadSegment &operator[](std::size_t index); const COpendriveRoadSegment &operator[](std::size_t index);
/**
* \brief gets the closest node to a given point
*
* This functions searches all the road nodes for the one which is closest to
* a given position and returns it. The distance from the closest node to the
*/
const COpendriveRoadNode &get_closest_node(TOpendriveWorldPose &pose,double &distance,double angle_tol=0.1) const; const COpendriveRoadNode &get_closest_node(TOpendriveWorldPose &pose,double &distance,double angle_tol=0.1) const;
unsigned int get_closest_node_index(TOpendriveWorldPose &pose,double &distance,double angle_tol=0.1) const; unsigned int get_closest_node_index(TOpendriveWorldPose &pose,double &distance,double angle_tol=0.1) const;
const COpendriveLane &get_closest_lane(TOpendriveWorldPose &pose,double &distance,double angle_tol=0.1) const; const COpendriveLane &get_closest_lane(TOpendriveWorldPose &pose,double &distance,double angle_tol=0.1) const;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment