BUGFIX: Illegal use of uninitialised value (backport)
[foam-extend-3.2.git] / src / triSurface / tools / labelledTri / labelledTriI.H
blobdb88515889da6883ef0c5068d0806784a30bfad3
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright held by original author
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
9     This file is part of OpenFOAM.
11     OpenFOAM is free software; you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation; either version 2 of the License, or (at your
14     option) any later version.
16     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19     for more details.
21     You should have received a copy of the GNU General Public License
22     along with OpenFOAM; if not, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Description
27 \*---------------------------------------------------------------------------*/
29 #include "IOstreams.H"
31 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
33 namespace Foam
36 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
38 //- Construct null
39 inline labelledTri::labelledTri()
41     region_(-1)
45 //- Construct from components
46 inline labelledTri::labelledTri
48     const label A,
49     const label B,
50     const label C,
51     const label region
54     triFace(A, B, C),
55     region_(region)
59 inline labelledTri::labelledTri(Istream& is)
61     operator>>(is, *this);
65 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
67 inline label labelledTri::region() const
69     return region_;
72 inline label& labelledTri::region()
74     return region_;
78 // * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
80 inline Istream& operator>>(Istream& is, labelledTri& t)
82     if (is.format() == IOstream::ASCII)
83     {
84         // Read beginning of labelledTri point pair
85         is.readBegin("labelledTri");
87         is  >> static_cast<triFace&>(t) >> t.region_;
89         // Read end of labelledTri point pair
90         is.readEnd("labelledTri");
91     }
92     else
93     {
94         is.read(reinterpret_cast<char*>(&t), sizeof(labelledTri));
95     }
97     // Check state of Ostream
98     is.check("Istream& operator>>(Istream&, labelledTri&)");
100     return is;
104 inline Ostream& operator<<(Ostream& os, const labelledTri& t)
106     if (os.format() == IOstream::ASCII)
107     {
108         os  << token::BEGIN_LIST
109             << static_cast<const triFace&>(t) << token::SPACE << t.region_
110             << token::END_LIST;
111     }
112     else
113     {
114         os.write
115         (
116             reinterpret_cast<const char*>(&t),
117             sizeof(labelledTri)
118         );
119     }
121     // Check state of Ostream
122     os.check("Ostream& operator<<(Ostream&, const labelledTri&)");
125     return os;
129 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
131 } // End namespace Foam
133 // ************************************************************************* //