14 const std::vector<double> & y,
15 const std::vector<double> & z,
16 const std::vector<double> & zx,
17 const std::vector<double> & zy,
18 const std::vector<double> & zscale)
21 assert( x.size() == y.size());
22 assert( z.size() == zx.size());
23 assert( z.size() == zy.size());
24 assert( z.size() == zscale.size());
26 p_.reserve( x.size() + y.size() + z.size() + zx.size() + zy.size() + zscale.size() + 1 );
27 p_.emplace_back( z.size());
28 p_.insert(
p_.end(), x.begin(), x.end());
29 p_.insert(
p_.end(), y.begin(), y.end());
30 p_.insert(
p_.end(), z.begin(), z.end());
31 p_.insert(
p_.end(), zx.begin(), zx.end());
32 p_.insert(
p_.end(), zy.begin(), zy.end());
33 p_.insert(
p_.end(), zscale.begin(), zscale.end());
46 auto xysize = (
unsigned int )((
p_.size() - 4*
p_[0]) * 0.5 );
47 os <<
" XY Points[cm]=";
48 for(
unsigned int k = 1;
k <= xysize; ++
k )
50 os <<
" with " <<
p_[0] <<
" Z sections:";
51 unsigned int m0 = p_.size() - 4*p_[0];
52 for(
unsigned int m = m0;
m < m0 + p_[0]; ++
m )
57 os <<
", scale[cm]=" <<
convertMmToCm( p_[m+3*p_[0]] ) <<
";";
double volume() const override
constexpr NumType convertMmToCm(NumType millimeters)
void stream(std::ostream &) const override