Main Page | Modules | Class Hierarchy | Class List | 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 Tue Sep 7 20:37:49 2004 for ModUtils by doxygen 1.3.8