Forward compatibility: flex
[foam-extend-3.2.git] / src / mesh / cfMesh / utilities / meshes / partTetMesh / partTetMeshSimplex.H
blob83045f5a83dd31b86bd00374be012c2113616df5
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | cfMesh: A library for mesh generation
4    \\    /   O peration     |
5     \\  /    A nd           | Author: Franjo Juretic (franjo.juretic@c-fields.com)
6      \\/     M anipulation  | Copyright (C) Creative Fields, Ltd.
7 -------------------------------------------------------------------------------
8 License
9     This file is part of cfMesh.
11     cfMesh 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 3 of the License, or (at your
14     option) any later version.
16     cfMesh 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 cfMesh.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     partTetMeshSimplex
27 Description
28     A simplex which is used for smoothing purposes
30 SourceFiles
33 \*---------------------------------------------------------------------------*/
35 #ifndef partTetMeshSimplex_H
36 #define partTetMeshSimplex_H
38 #include "partTetMesh.H"
39 #include "parPartTet.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 // Forward declarations
47 class partTetMesh;
49 /*---------------------------------------------------------------------------*\
50                            Class partTetMeshSimplex Declaration
51 \*---------------------------------------------------------------------------*/
53 class partTetMeshSimplex
55     // Private data
56         //- points making the simplex
57         DynList<point, 128> pts_;
59         //- tets making the simplex
60         DynList<partTet, 128> tets_;
62     public:
64     // Constructors
65         //- Construct from partTetMeshSimplex and point label
66         partTetMeshSimplex(const partTetMesh& tm, const label pI);
68         //- Construct from the list of parPartTet and point label
69         partTetMeshSimplex
70         (
71             const DynList<parPartTet>& pt,
72             const label gpI
73         );
75         //- contruct from a list of points and a list of partTets
76         //- ad a point label
77         partTetMeshSimplex
78         (
79             const DynList<point, 128>& pts,
80             const DynList<partTet, 128>& tets,
81             const label pointI
82         );
84     // Destructor
85         ~partTetMeshSimplex();
87     // Member functions
88         //- return points
89         inline DynList<point, 128>& pts()
90         {
91             return pts_;
92         }
94         //- return points
95         inline const DynList<point, 128>& pts() const
96         {
97             return pts_;
98         }
100         //- return tets
101         inline const DynList<partTet, 128>& tets() const
102         {
103             return tets_;
104         }
106         //- return centre point coordinates
107         inline const point& centrePoint() const
108         {
109             return pts_[tets_[0][3]];
110         }
113 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
115 } // End namespace Foam
117 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
119 //#include "partTetMeshSimplexI.H"
121 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
123 #endif
125 // ************************************************************************* //