Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages | Examples

ArMapScan Class Reference

#include <ArMapComponents.h>

Inheritance diagram for ArMapScan:

ArMapScanInterface 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)
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.
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< 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.


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

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.

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.

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 files:
Generated on Thu Jan 7 10:34:42 2010 for Aria by  doxygen 1.4.2