Aria  2.8.0
ArMapScan Class Reference

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

#include <ArMapComponents.h>

Inherits ArMapScanInterface.

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. More...
 
virtual bool addToFileParser (ArFileParser *fileParser)
 
 ArMapScan (const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
 Constructor. More...
 
 ArMapScan (const ArMapScan &other)
 Copy 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)
 
ArMapScanoperator= (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. More...
 
virtual void writeLinesToFunctor (ArFunctor2< int, std::vector< ArLineSegment > *> *functor, const char *scanType=ARMAP_DEFAULT_SCAN_TYPE, ArFunctor1< const char *> *keywordFunctor=NULL)
 
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 writePointsToFunctor (ArFunctor2< int, std::vector< ArPose > *> *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 writeScanToFunctor (ArFunctor1< const char *> *functor, const char *endOfLineChars, const char *scanType=ARMAP_DEFAULT_SCAN_TYPE)
 
virtual ~ArMapScan ()
 Destructor.
 
- Public Member Functions inherited from ArMapScanInterface
 ArMapScanInterface ()
 Default constructor.
 
virtual ~ArMapScanInterface ()
 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. More...
 

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< ArLineSegmentmyLines
 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< ArPosemyPoints
 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.
 

Additional Inherited Members

- Static Public Member Functions inherited from ArMapScanInterface
static bool isDefaultScanType (const char *scanType)
 Determines whether the given scan type is the default (i.e. no prefix on the map tags)
 
static bool isSummaryScanType (const char *scanType)
 Determines whether the given scan type represents the summary of all other scan types.
 

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.

Constructor & Destructor Documentation

◆ ArMapScan()

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

Constructor.

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

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

Member Function Documentation

◆ addExtraToFileParser()

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.

◆ unite()

bool ArMapScan::unite ( ArMapScan other,
bool  isIncludeDataPointsAndLines = false 
)
virtual

Combines the given other scan with this one.

Parameters
otherthe ArMapScan * to be united with this one
isIncludeDataPointsAndLinesa 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.

◆ writeLinesToFunctor()

void ArMapScan::writeLinesToFunctor ( ArFunctor1< const char *> *  functor,
const std::vector< ArLineSegment > &  lines,
const char *  endOfLineChars,
const char *  scanType = ARMAP_DEFAULT_SCAN_TYPE 
)
protectedvirtual

Writes the list of data lines to the given functor.

Parameters
functorthe ArFunctor1<const char *> * to which to write the data lines
linesthe vector of ArLineSegments to be written to the functor
endOfLineCharsan optional string to be appended to the end of each text line written to the functor
scanTypethe unique string identifier of the scan type associated with the data lines

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