BUG: cloudSet.C: force early construction of tetBasePtIs to avoid demand-driven comms
[OpenFOAM-2.0.x.git] / src / sampling / sampledSet / triSurfaceMeshPointSet / triSurfaceMeshPointSet.H
blob7742b121208aede408f2988853757d774a89fae0
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
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
13     the Free Software Foundation, either version 3 of the License, or
14     (at your 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, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::triSurfaceMeshPointSet
27 Description
28     sampleSet from all points of a triSurfaceMesh.
30 SourceFiles
31     triSurfaceMeshPointSet.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef triSurfaceMeshPointSet_H
36 #define triSurfaceMeshPointSet_H
38 #include "sampledSet.H"
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 namespace Foam
45 // Forward declaration of classes
47 /*---------------------------------------------------------------------------*\
48                            Class triSurfaceMeshPointSet Declaration
49 \*---------------------------------------------------------------------------*/
51 class triSurfaceMeshPointSet
53     public sampledSet
55     // Private data
57         //- Name of triSurfaceMesh
58         const word surface_;
60         //- Sampling points
61         List<point> sampleCoords_;
64     // Private Member Functions
66         //- Samples all points in sampleCoords.
67         void calcSamples
68         (
69             DynamicList<point>& samplingPts,
70             DynamicList<label>& samplingCells,
71             DynamicList<label>& samplingFaces,
72             DynamicList<label>& samplingSegments,
73             DynamicList<scalar>& samplingCurveDist
74         ) const;
76         //- Uses calcSamples to obtain samples. Copies them into *this.
77         void genSamples();
80 public:
82     //- Runtime type information
83     TypeName("triSurfaceMeshPointSet");
86     // Constructors
88         //- Construct from dictionary
89         triSurfaceMeshPointSet
90         (
91             const word& name,
92             const polyMesh& mesh,
93             meshSearch& searchEngine,
94             const dictionary& dict
95         );
98     //- Destructor
99     virtual ~triSurfaceMeshPointSet();
102     // Member Functions
104         //- Get reference point
105         virtual point getRefPoint(const List<point>&) const;
109 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
111 } // End namespace Foam
113 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
115 #endif
117 // ************************************************************************* //