Moving cfMesh into place. Updated contibutors list
[foam-extend-3.2.git] / src / mesh / cfMesh / meshLibrary / utilities / meshes / partTriMesh / partTriMeshSimplex.H
blobd91849fe8d7c7308218baa67227dc6ac38481d1a
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     partTriMeshSimplex
27 Description
28     A simplex which is used for smoothing purposes
29     
30 SourceFiles
31     
33 \*---------------------------------------------------------------------------*/
35 #ifndef partTriMeshSimplex_H
36 #define partTriMeshSimplex_H
38 #include "partTriMesh.H"
39 #include "triFace.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
45     
46 // Forward declarations
47 class partTriMesh;
49 /*---------------------------------------------------------------------------*\
50                            Class partTriMeshSimplex Declaration
51 \*---------------------------------------------------------------------------*/
53 class partTriMeshSimplex
55     // Private data
56         //- points making the simplex
57         DynList<point, 32> pts_;
58     
59         //- triangles making the simplex
60         DynList<triFace, 32> trias_;
61     
62     public:
63         
64     // Constructors
65         //- Construct from partTriMesh and point label
66         partTriMeshSimplex(const partTriMesh& tm, const label pI);
67     
68     // Destructor
69         ~partTriMeshSimplex();
70     
71     // Member functions
72         //- return points
73         inline DynList<point, 32>& pts()
74         {
75             return pts_;
76         }
77         
78         //- return points
79         inline const DynList<point, 32>& pts() const
80         {
81             return pts_;
82         }
83     
84         //- return triangles
85         inline const DynList<triFace, 32>& triangles() const
86         {
87             return trias_;
88         }
89         
90         //- return centre point coordinates
91         inline const point& centrePoint() const
92         {
93             return pts_[trias_[0][0]];
94         }
96         //- return the normal of the simplex
97         vector normal() const;
100 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
102 } // End namespace Foam
104 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
106 #endif
108 // ************************************************************************* //