bool readFrame(Real *trajDst) { if (!curTime) if (!readKeyFrame()) return false; while ((curTime == expectedSegment.top().time) && (chunkCur < chunkSz)) readSegment(); if (expectedSegment.top().time <= curTime) return false; // push data to trajDst if (trajDst) { for (int i=0; i<numTraj; i++) trajDst[i] = trajState[i].get<Real>(curTime, quantum); } curTime++; return true; }
/** * Creates the KML, COLLADA and Network Link KML files for use in Google Earth. * * @param segments A vector of individual swath segments for processing. */ bool KMLBuilder::generateFiles(QVector<Segment> segments) { container* c; kml *kmlFile; collada *colladaFile; netlink *netlinkFile; netlinkFile = new netlink(fileDirs["root"], templates["header"], templates["network_link"], templates["footer"]); for(int i = 0; i < segments.size(); i++) { if ((c = readSegment(segments.at(i))) == NULL) return 0; kmlFile = new kml(fileDirs["ge_files"], c, templates["kml"]); colladaFile = new collada(fileDirs["models"], c, templates["collada"]); netlinkFile->addLink(c); delete kmlFile; delete c; } delete netlinkFile; relocateImages(); return 1; }