vtkPolyDataPtr polydataFromTransforms(TimedTransformMap transformMap_prMt, Transform3D rMpr) { vtkPolyDataPtr retval = vtkPolyDataPtr::New(); vtkPointsPtr points = vtkPointsPtr::New(); vtkCellArrayPtr lines = vtkCellArrayPtr::New(); points->Allocate(transformMap_prMt.size()); TimedTransformMap::iterator mapIter = transformMap_prMt.begin(); while(mapIter != transformMap_prMt.end()) { Vector3D point_t = Vector3D(0,0,0); Transform3D prMt = mapIter->second; Transform3D rMt = rMpr * prMt; Vector3D p = rMt.coord(point_t); points->InsertNextPoint(p.begin()); ++mapIter; } lines->Initialize(); std::vector<vtkIdType> ids(points->GetNumberOfPoints()); for (unsigned i=0; i<ids.size(); ++i) ids[i] = i; lines->InsertNextCell(ids.size(), &(*ids.begin())); retval->SetPoints(points); retval->SetLines(lines); return retval; }