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
00016
if (user_header) {
00017 utils::ConfigFile::copy(*user_header, header);
00018 }
00019
00020
00021 header.setInt(
"int DataFormat.version_major", 1);
00022 header.setInt(
"int DataFormat.version_minor", 0);
00023
00024
00025 _logger.close();
00026
00027
00028 _logger.declare(
"points",
ROAD_DATA_FMT, &_output_area);
00029
00030
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
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
00052
bool res = _logger.log(time);
00053
00054
00055
delete [] _output_area.
points;
00056
00057
00058
return res;
00059 }
00060