void ReadConcept(Inputor& in, PointSet &pointSet, unsigned int recordType) { string str; pointSet.reserve(in._num); double x,y,z; double I; double r,g,b; PointRec::Reset_I(); do { switch(recordType){ case XYZ: in.getLine(str, '\n'); sscanf(str.c_str(), "%lf %lf %lf", &x, &y, &z); pointSet.push_back(PointRec(x,y,z)); break; case XYZI: in.getLine(str, '\n'); sscanf(str.c_str(), "%lf %lf %lf %lf", &x, &y, &z, &I); pointSet.push_back(PointRec(x,y,z,I)); PointRec::Update_I(I); break; case XYZRGB: in.getLine(str, '\n'); sscanf(str.c_str(), "%lf %lf %lf %lf %lf %lf", &x, &y, &z, &r, &g, &b); pointSet.push_back(PointRec(x,y,z,-1, r, g, b)); break; case XYZIRGB: in.getLine(str, '\n'); sscanf(str.c_str(), "%lf %lf %lf %lf %lf %lf %lf", &x, &y, &z, &I, &r, &g, &b); pointSet.push_back(PointRec(x,y,z, I, r, g, b)); PointRec::Update_I(I); break; } in.frame(); }while(!in.isEnd()); }