Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

RoadLogger.cc

Go to the documentation of this file.
00001 
00005 #include <utils/Linear.h>
00006 #include <utils/ConfigFile.h>
00007 
00008 #include "RoadLogger.h"
00009 
00010 bool RoadLogger::open(const char* name,
00011                       const utils::ConfigFile* user_header)
00012 {
00013   utils::ConfigFile header;
00014 
00015   // copy user header information if there is any
00016   if (user_header) {
00017     utils::ConfigFile::copy(*user_header, header);
00018   }
00019 
00020   // set the data format major and minor version numbers in the header
00021   header.setInt("int DataFormat.version_major", 1);
00022   header.setInt("int DataFormat.version_minor", 0);
00023 
00024   // make sure logger is closed
00025   _logger.close();
00026 
00027   // hook up logger to _output_area
00028   _logger.declare("points", ROAD_DATA_FMT, &_output_area);
00029 
00030   // open the file, and return status as the result
00031   return _logger.open(name, header);
00032 }
00033 
00034 bool RoadLogger::open(utils::ConfigFile& header)
00035 {
00036   return open(header.getString("name", "Road.raw"), &header);
00037 }
00038 
00039 bool RoadLogger::logPoints(utils::Time time,
00040                            const std::vector<utils::Vec3d>& points)
00041 {
00042   // setup output area
00043   _output_area.num_points = (int) points.size();
00044   _output_area.points = new RoadDataPoint[_output_area.num_points];
00045   for (int i=0;i<_output_area.num_points;i++) {
00046     _output_area.points[i].x = points[i].x;
00047     _output_area.points[i].y = points[i].y;
00048     _output_area.points[i].z = points[i].z;
00049   }
00050 
00051   // log _output_area
00052   bool res = _logger.log(time);
00053 
00054   // cleanup output area
00055   delete [] _output_area.points;
00056 
00057   // return the result of the log
00058   return res;
00059 }
00060 

Generated on Fri Jun 16 13:21:19 2006 for ModUtils by  doxygen 1.4.4