Aria: ArMapScan Class Reference

- Main Page
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# ArMapScan Class Reference

`#include <ArMapComponents.h>`

Inheritance diagram for ArMapScan:

List of all members.

## Detailed Description

The map data related to the sensable obstacles in the environment.

ArMapScan encapsulates the data for a particular sensor that is generated during the scanning process (i.e. during the creation of a .2d file). The class's primary attributes are the points and line segments that were detected during the scan. It contains methods to get and set these coordinates, and to read and write the data from and to a file.

The `scanType` parameters identify the sensor used for scanning. The parameter is used in the constructor, but it is generally disregarded in the other methods. (The method signatures are defined in ArMapScanInterface, which is also implemented by ArMap. The map provides access to the scan data for all of the sensors -- and therefore uses the `scanType` parameters. This interface was chosen in order to maintain backwards compatibility with the original map.)

If the scanType is specified, then it is used as a prefix to the DATA and LINES tags that are contained in the map file.

## Public Member Functions
virtual bool | addExtraToFileParser (ArFileParser *fileParser, bool isAddLineHandler)
| Adds the handlers for the data points and lines keywords to the given file parser.
virtual bool | addToFileParser (ArFileParser *fileParser)
| ArMapScan (const ArMapScan &other)
| Copy constructor.
| ArMapScan (const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
| Constructor.
virtual void | clear ()
| Resets the scan data, clearing all points and line segments.
virtual const char * | getDisplayString (const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
virtual ArPose | getLineMaxPose (const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
virtual ArPose | getLineMinPose (const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
virtual std::vector< ArLineSegment > * | getLines (const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
virtual const char * | getLinesKeyword () const
| Returns the keyword that designates the scan's data lines in the map file.
virtual ArPose | getMaxPose (const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
virtual ArPose | getMinPose (const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
virtual int | getNumLines (const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
virtual int | getNumPoints (const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
virtual std::vector< ArPose > * | getPoints (const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
virtual const char * | getPointsKeyword () const
| Returns the keyword that designates the scan's data points in the map file.
virtual int | getResolution (const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
virtual const char * | getScanType () const
| Returns the unique string identifier of the associated scan type.
virtual ArTime | getTimeChanged () const
| Returns the time at which the scan data was last changed.
virtual bool | isSortedLines (const char *scanType=ARMAP_DEFAULT_SCAN_TYPE) const
virtual bool | isSortedPoints (const char *scanType=ARMAP_DEFAULT_SCAN_TYPE) const
virtual void | loadDataPoint (double x, double y)
virtual void | loadLineSegment (double x1, double y1, double x2, double y2)
ArMapScan & | operator= (const ArMapScan &other)
| Assignment operator.
virtual bool | readDataPoint (char *line)
virtual bool | readLineSegment (char *line)
virtual bool | remExtraFromFileParser (ArFileParser *fileParser)
| Removes the handlers for the data points and lines keywords from the given file parser.
virtual bool | remFromFileParser (ArFileParser *fileParser)
virtual void | setLines (const std::vector< ArLineSegment > *lines, const char *scanType=ARMAP_DEFAULT_SCAN_TYPE, bool isSortedLines=false, ArMapChangeDetails *changeDetails=NULL)
virtual void | setPoints (const std::vector< ArPose > *points, const char *scanType=ARMAP_DEFAULT_SCAN_TYPE, bool isSortedPoints=false, ArMapChangeDetails *changeDetails=NULL)
virtual void | setResolution (int resolution, const char *scanType=ARMAP_DEFAULT_SCAN_TYPE, ArMapChangeDetails *changeDetails=NULL)
virtual bool | unite (ArMapScan *other, bool isIncludeDataPointsAndLines=false)
| Combines the given other scan with this one.
virtual void | writeLinesToFunctor (ArFunctor1< const char * > *functor, const char *endOfLineChars, const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
| Writes the scan's data lines (and introductory keyword) to the given functor.
virtual void | writeLinesToFunctor (ArFunctor2< int, std::vector< ArLineSegment > * > *functor, const char *scanType=ARMAP_DEFAULT_SCAN_TYPE, ArFunctor1< const char * > *keywordFunctor=NULL)
virtual void | writePointsToFunctor (ArFunctor1< const char * > *functor, const char *endOfLineChars, const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
| Writes the scan's data points (and introductory keyword) to the given functor.
virtual void | writePointsToFunctor (ArFunctor2< int, std::vector< ArPose > * > *functor, const char *scanType=ARMAP_DEFAULT_SCAN_TYPE, ArFunctor1< const char * > *keywordFunctor=NULL)
virtual void | writeScanToFunctor (ArFunctor1< const char * > *functor, const char *endOfLineChars, const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
virtual | ~ArMapScan ()
| Destructor.
## Protected Member Functions
bool | addHandlerToFileParser (ArFileParser *fileParser, const char *keyword, ArRetFunctor1< bool, ArArgumentBuilder * > *handler)
| Adds the specified argument handler to the given file parser.
const char * | getKeywordPrefix () const
| Returns the keyword prefix for this scan type.
bool | handleDisplayString (ArArgumentBuilder *arg)
| Callback to handle the Display string.
bool | handleIsSortedLines (ArArgumentBuilder *arg)
bool | handleIsSortedPoints (ArArgumentBuilder *arg)
bool | handleLine (ArArgumentBuilder *arg)
bool | handleLineMaxPos (ArArgumentBuilder *arg)
bool | handleLineMinPos (ArArgumentBuilder *arg)
bool | handleMaxPos (ArArgumentBuilder *arg)
bool | handleMinPos (ArArgumentBuilder *arg)
bool | handleNumLines (ArArgumentBuilder *arg)
bool | handleNumPoints (ArArgumentBuilder *arg)
bool | handlePoint (ArArgumentBuilder *arg)
bool | handleResolution (ArArgumentBuilder *arg)
bool | parseNumber (char *line, size_t lineLen, size_t *charCountOut, int *numOut) const
| Parses an integer from the given text line.
bool | parsePose (ArArgumentBuilder *arg, const char *keyword, ArPose *poseOut)
| Parses a pose from the given arguments.
bool | parseWhitespace (char *line, size_t lineLen, size_t *charCountOut) const
| Parses whitespace from the given text line.
virtual void | writeLinesToFunctor (ArFunctor1< const char * > *functor, const std::vector< ArLineSegment > &lines, const char *endOfLineChars, const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
| Writes the list of data lines to the given functor.
## Protected Attributes
std::string | myDisplayString
| Displayable text for this scan type.
ArRetFunctor1C< bool, ArMapScan, ArArgumentBuilder * > | myDisplayStringCB
| Callback to parse the displayable text for this scan type.
bool | myIsSortedLines
| Whether the data lines in myLines have been sorted in ascending order.
ArRetFunctor1C< bool, ArMapScan, ArArgumentBuilder * > | myIsSortedLinesCB
| Callback to parse whether the lines in the map file have been sorted.
bool | myIsSortedPoints
| Whether the data points in myPoints have been sorted in ascending order.
ArRetFunctor1C< bool, ArMapScan, ArArgumentBuilder * > | myIsSortedPointsCB
| Callback to parse whether the points in the map file have been sorted.
bool | myIsSummaryScan
| Whether this is a special summary of the other scans.
std::string | myKeywordPrefix
| The prefix prepended to the map file keywords (e.g. DATA and LINES).
ArRetFunctor1C< bool, ArMapScan, ArArgumentBuilder * > | myLineCB
| Callback to parse a data line.
ArPose | myLineMax
| Maximum x/y values of all of the data lines in the scan.
ArRetFunctor1C< bool, ArMapScan, ArArgumentBuilder * > | myLineMaxPosCB
| Callback to parse the maximum line pose from the map file.
ArPose | myLineMin
| Minimum x/y values of all of the data lines in the scan.
ArRetFunctor1C< bool, ArMapScan, ArArgumentBuilder * > | myLineMinPosCB
| Callback to parse the minimum line pose from the map file.
std::vector< ArLineSegment > | myLines
| List of data lines contained in this scan data.
std::string | myLinesKeyword
| The keyword that designates this scan's data lines in the map file.
std::string | myLogPrefix
| The prefix prepended to the output log file messages.
ArPose | myMax
| Maximum x/y values of all of the data points in the scan.
ArRetFunctor1C< bool, ArMapScan, ArArgumentBuilder * > | myMaxPosCB
| Callback to parse the maximum pose from the map file.
ArPose | myMin
| Minimum x/y values of all of the data points in the scan.
ArRetFunctor1C< bool, ArMapScan, ArArgumentBuilder * > | myMinPosCB
| Callback to parse the minimum poise from the map file.
int | myNumLines
| Number of data lines in the scan.
ArRetFunctor1C< bool, ArMapScan, ArArgumentBuilder * > | myNumLinesCB
| Callback to parse the number of data lines in the map file.
int | myNumPoints
| Number of data points in the scan.
ArRetFunctor1C< bool, ArMapScan, ArArgumentBuilder * > | myNumPointsCB
| Callback to parse the number of data points in the map file.
ArRetFunctor1C< bool, ArMapScan, ArArgumentBuilder * > | myPointCB
| Callback to parse a data point.
std::vector< ArPose > | myPoints
| List of data points contained in this scan data.
std::string | myPointsKeyword
| The keyword that designates this scan's data points in the map file.
int | myResolution
| Resolution of the data points (in mm).
ArRetFunctor1C< bool, ArMapScan, ArArgumentBuilder * > | myResolutionCB
| Callback to parse the resolution in the map file.
std::string | myScanType
| The unique string identifier of this scan type.
ArTime | myTimeChanged
| Time that this scan data was last modified.

## Constructor & Destructor Documentation

ArMapScan::ArMapScan | ( | const char * | scanType = `ARMAP_DEFAULT_SCAN_TYPE` | ) |

Constructor.

Creates a new map scan object for the specified scan type.

Parameters:

  | scanType | the const char * identifier of the scan; must be non-NULL and must not contain whitespaces

## Member Function Documentation

virtual bool ArMapScan::addExtraToFileParser | ( | ArFileParser * | fileParser,
|  | bool | isAddLineHandler |
| ) |  |  | `[virtual]`

Adds the handlers for the data points and lines keywords to the given file parser.

These handlers are "extra" because they are added after all of the summary keyword have been parsed.

virtual bool ArMapScan::unite | ( | ArMapScan * | other,
|  | bool | isIncludeDataPointsAndLines = `false` |
| ) |  |  | `[virtual]`

Combines the given other scan with this one.

Parameters:

  | other | the ArMapScan * to be united with this one
  | isIncludeDataPointsAndLines | a bool set to true if the other scan's data points and lines should be copied to this scan; if false, then only the summary (bounding box, counts, etc) information is copied.

virtual void ArMapScan::writeLinesToFunctor | ( | ArFunctor1< const char * > * | functor,
|  | const std::vector< ArLineSegment > & | lines,
|  | const char * | endOfLineChars,
|  | const char * | scanType = `ARMAP_DEFAULT_SCAN_TYPE` |
| ) |  |  | `[protected, virtual]`

Writes the list of data lines to the given functor.

Parameters:

  | functor | the ArFunctor1<const char *> * to which to write the data lines
  | lines | the vector of ArLineSegments to be written to the functor
  | endOfLineChars | an optional string to be appended to the end of each text line written to the functor
  | scanType | the unique string identifier of the scan type associated with the data lines

The documentation for this class was generated from the following file:

- ArMapComponents.h