Loading...
Searching...
No Matches
TRIsurfaceFormat.H
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) 2011-2016 OpenFOAM Foundation
9 Copyright (C) 2016-2024 OpenCFD Ltd.
10-------------------------------------------------------------------------------
11License
12 This file is part of OpenFOAM.
13
14 OpenFOAM is free software: you can redistribute it and/or modify it
15 under the terms of the GNU General Public License as published by
16 the Free Software Foundation, either version 3 of the License, or
17 (at your option) any later version.
18
19 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 for more details.
23
24 You should have received a copy of the GNU General Public License
25 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26
27Class
28 Foam::fileFormats::TRIsurfaceFormat
29
30Description
31 Provide a means of reading/writing .tri format.
32
33 Output stream options:
34 - ASCII only
35 - compression on/off
36
37 Output dictionary options: ignored
38
39Note
40 For efficiency, the zones are sorted before creating the faces.
41 The class is thus derived from MeshedSurface.
42
43SourceFiles
44 TRIsurfaceFormat.C
45
46\*---------------------------------------------------------------------------*/
47
48#ifndef Foam_TRIsurfaceFormat_H
49#define Foam_TRIsurfaceFormat_H
50
51#include "MeshedSurface.H"
52#include "MeshedSurfaceProxy.H"
54
55// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
56
57namespace Foam
58{
59namespace fileFormats
60{
61
62/*---------------------------------------------------------------------------*\
63 Class fileFormats::TRIsurfaceFormat Declaration
64\*---------------------------------------------------------------------------*/
65
66template<class Face>
68:
69 public MeshedSurface<Face>
70{
71 // Private Member Functions
72
73 static inline void writeShell
74 (
75 Ostream& os,
76 const UList<point>& pts,
77 const Face& f,
78 const label zoneI
79 );
80
81
82public:
83
84 // Constructors
85
86 //- Construct from file name
87 explicit TRIsurfaceFormat(const fileName& filename);
88
89
90 //- Destructor
91 virtual ~TRIsurfaceFormat() = default;
92
93
94 // Static Functions
95
96 //- Write surface mesh components (by proxy) in TRI format
97 static void write
98 (
99 const fileName& filename,
100 const MeshedSurfaceProxy<Face>& surf,
101 IOstreamOption streamOpt = IOstreamOption(),
102 const dictionary& /*unused*/ = dictionary::null
103 );
104
105 //- Write UnsortedMeshedSurface, the output remains unsorted
106 static void write
107 (
108 const fileName& filename,
109 const UnsortedMeshedSurface<Face>& surf,
110 IOstreamOption streamOpt = IOstreamOption(),
111 const dictionary& /*unused*/ = dictionary::null
112 );
113
114
115 // Member Functions
116
117 //- Read from file
118 virtual bool read(const fileName& filename) override;
119
120 //- Write surface mesh to file (by proxy)
121 virtual void write
122 (
123 const fileName& name,
124 IOstreamOption streamOpt = IOstreamOption(),
125 const dictionary& options = dictionary::null
126 ) const override
127 {
128 write(name, MeshedSurfaceProxy<Face>(*this), streamOpt, options);
129 }
130
131 //- Write surface mesh to file (by proxy)
132 virtual void write
133 (
134 const fileName& name,
135 const word& fileType, /* ignored */
136 IOstreamOption streamOpt = IOstreamOption(),
137 const dictionary& options = dictionary::null
138 ) const override
139 {
140 write(name, MeshedSurfaceProxy<Face>(*this), streamOpt, options);
142};
143
144
145// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
146
147} // End namespace fileFormats
148} // End namespace Foam
149
150// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
151
152#ifdef NoRepository
153 #include "TRIsurfaceFormat.C"
154#endif
155
156// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
157
158#endif
159
160// ************************************************************************* //
A simple container for options an IOstream can normally have.
A proxy for writing MeshedSurface, UnsortedMeshedSurface and surfMesh to various file formats.
friend class UnsortedMeshedSurface
friend class MeshedSurface
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition Ostream.H:59
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Definition UList.H:89
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition dictionary.H:133
static const dictionary null
An empty dictionary, which is also the parent for all dictionaries.
Definition dictionary.H:487
virtual bool read(const fileName &filename) override
Read from file.
virtual void write(const fileName &name, const word &fileType, IOstreamOption streamOpt=IOstreamOption(), const dictionary &options=dictionary::null) const override
Write surface mesh to file (by proxy).
virtual ~TRIsurfaceFormat()=default
Destructor.
TRIsurfaceFormat(const fileName &filename)
Construct from file name.
virtual void write(const fileName &name, IOstreamOption streamOpt=IOstreamOption(), const dictionary &options=dictionary::null) const override
Write surface mesh to file (by proxy).
A class for handling file names.
Definition fileName.H:75
A class for handling words, derived from Foam::string.
Definition word.H:66
OBJstream os(runTime.globalPath()/outputName)
Namespace to isolate specifics for file formats, and some common utilities.
Namespace for OpenFOAM.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
Definition exprTraits.C:127
runTime write()
labelList f(nPoints)
const pointField & pts