initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / surfMesh / surfaceFormats / stl / STLtriangleI.H
blobef63c4ea627d5ad3e57370239b46fb8f6d56b2ca
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
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 \*---------------------------------------------------------------------------*/
27 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
29 inline Foam::STLtriangle::STLtriangle()
33 inline Foam::STLtriangle::STLtriangle
35     const STLpoint& normal,
36     const STLpoint& a,
37     const STLpoint& b,
38     const STLpoint& c,
39     unsigned short attrib
42     normal_(normal),
43     a_(a),
44     b_(b),
45     c_(c),
46     attrib_(attrib)
50 inline Foam::STLtriangle::STLtriangle(istream& is)
52     read(is);
56 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
58 inline const Foam::STLpoint& Foam::STLtriangle::normal() const
60     return normal_;
64 inline const Foam::STLpoint& Foam::STLtriangle::a() const
66     return a_;
70 inline const Foam::STLpoint& Foam::STLtriangle::b() const
72     return b_;
76 inline const Foam::STLpoint& Foam::STLtriangle::c() const
78     return c_;
82 inline unsigned short Foam::STLtriangle::attrib() const
84     return attrib_;
88 inline void Foam::STLtriangle::read(istream& is)
90     is.read(reinterpret_cast<char*>(this), 4*sizeof(STLpoint));
91     is.read(reinterpret_cast<char*>(&attrib_), sizeof(STLattrib));
95 inline void Foam::STLtriangle::write(ostream& os)
97     os.write(reinterpret_cast<char*>(this), 4*sizeof(STLpoint));
98     os.write(reinterpret_cast<char*>(&attrib_), sizeof(STLattrib));
102 // * * * * * * * * * * * * * * * Ostream Operator  * * * * * * * * * * * * * //
104 inline Foam::Ostream& Foam::operator<<(Ostream& os, const STLtriangle& t)
106     os  << t.normal_ << token::SPACE
107         << t.a_ << token::SPACE
108         << t.b_ << token::SPACE
109         << t.c_ << token::SPACE
110         << t.attrib_;
112     return os;
116 // ************************************************************************* //