Adding cfMesh-v1.0 into the repository
[foam-extend-3.2.git] / src / meshLibrary / utilities / meshes / partTetMesh / partTetMeshSimplex.H
blob32d38d525b02bdbac8a3b5aa34ab19a3b07ade68
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
29     
30 SourceFiles
31     
33 \*---------------------------------------------------------------------------*/
35 #ifndef partTetMeshSimplex_H
36 #define partTetMeshSimplex_H
38 #include "partTetMesh.H"
39 #include "parPartTet.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
45     
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_;
58     
59         //- tets making the simplex
60         DynList<partTet, 128> tets_;
61     
62     public:
63         
64     // Constructors
65         //- Construct from partTetMeshSimplex and point label
66         partTetMeshSimplex(const partTetMesh& tm, const label pI);
67     
68         //- Construct from the list of parPartTet and point label
69         partTetMeshSimplex
70         (
71             const DynList<parPartTet>& pt,
72             const label gpI
73         );
74     
75     // Destructor
76         ~partTetMeshSimplex();
77     
78     // Member functions
79         //- return points
80         inline DynList<point, 128>& pts()
81         {
82             return pts_;
83         }
84         
85         //- return points
86         inline const DynList<point, 128>& pts() const
87         {
88             return pts_;
89         }
90     
91         //- return tets
92         inline const DynList<partTet, 128>& tets() const
93         {
94             return tets_;
95         }
96         
97         //- return centre point coordinates
98         inline const point& centrePoint() const
99         {
100             return pts_[tets_[0][3]];
101         }
104 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
106 } // End namespace Foam
108 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
110 //#include "partTetMeshSimplexI.H"
112 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
114 #endif
116 // ************************************************************************* //