ensightCaseOptions.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2016-2022 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 \*---------------------------------------------------------------------------*/
27 
28 #include "ensightCase.H"
29 
30 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
31 
33 :
34  format_(fmt),
35  overwrite_(false),
36  nodeValues_(false),
37  separateCloud_(false),
38  width_(0),
39  mask_(),
40  printf_()
41 {
42  width(8); // Fill mask and setup printf-format
43 }
44 
45 
46 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
47 
49 {
50  // As per word::printf(), but with fixed length
51  char buf[32];
52 
53  ::snprintf(buf, 32, printf_.c_str(), static_cast<int>(i));
54  buf[31] = 0;
55 
56  // No stripping required
57  return word(buf, false);
58 }
59 
60 
61 void Foam::ensightCase::options::width(const label n)
62 {
63  // Enforce min/max sanity limits
64  if (n < 1 || n > 31)
65  {
66  return;
67  }
68 
69  // Set mask accordingly
70  mask_.resize(n, '*');
71 
72  // Appropriate printf format
73  printf_ = "%0" + std::to_string(n) + "d";
74 }
75 
76 
77 // ************************************************************************* //
word padded(const label i) const
Consistent zero-padded integer value.
label width() const noexcept
Return current width of mask and padded.
Definition: ensightCase.H:582
A class for handling words, derived from Foam::string.
Definition: word.H:63
options(IOstreamOption::streamFormat fmt=IOstreamOption::BINARY)
Construct with the specified format (default is binary)
streamFormat
Data format (ascii | binary)
label n