27 s_pt(std::string ax, std::string ay, std::string az):
x(ax),
y(ay),
z(az) {}
33 std::cerr <<
"extract:" << std::endl;
34 std::cerr <<
" extract .pt files (x,y,z) from other .pt files or numbered pt files (i,x,y,z)" << std::endl;
35 std::cerr <<
"syntax: extract (from to) < input_file > output_file" << std::endl;
36 std::cerr <<
" if 'from' and 'to' are omitted, all the points are extracted" << std::endl;
37 std::cerr <<
" 'from' and 'to' can also take the values 'first' or 'last'" << std::endl;
38 std::cerr <<
"author: P.Smars, 2002" << std::endl;
45 std::cin.getline(buf,256);
46 std::istringstream ff(buf);
55 return atoi(x0.c_str());
62 int main(
int argc,
char ** argv)
64 if ((argc != 1)&&(argc != 3))
67 std::vector<s_pt *> points;
77 std::cin >> i >> x >> y >> z;
80 std::cin >> x >> y >> z;
88 if ((nn!=0)&&(
n==nn))
break;
95 std::string a1(argv[1]);
96 std::string a2(argv[2]);
97 std::ostringstream aa;
118 o << a1 <<
" " << a2;
119 std::istringstream i(o.str().c_str());
123 if ((nn!=0)&&((nn<imin)||(nn<imax)))
130 std::cin >> i >> x >> y >> z;
134 std::cin >> x >> y >> z;
136 if ((std::cin)&&(i >= imin)&&(i <= imax))
138 auto pt =
new s_pt(x,y,z);
139 points.push_back(
pt);
143 int n_pts = points.size();
146 std::cout << 1 << std::endl;
147 s_pt *
pt = *(points.end()-1);
148 std::cout <<
pt->
x <<
" " <<
pt->
y <<
" " <<
pt->
z << std::endl;
149 std::cerr << std::endl <<
"1 point extracted." << std::endl;
153 std::cout << n_pts << std::endl;
155 std::cout <<
pt->
x <<
" " <<
pt->
y <<
" " <<
pt->
z << std::endl;
159 std::cerr << std::endl <<
"1 point extracted." << std::endl;
161 std::cerr << std::endl << n_pts <<
" points extracted." << std::endl;
164 std::cerr << std::endl <<
"no points extracted!" << std::endl;
s_pt(std::string ax, std::string ay, std::string az)