ENH: patchCloud: return pTraits<Type>::max for unfound points
[OpenFOAM-1.7.x.git] / src / sampling / sampledSet / coordSet / coordSet.H
blobaa883ea0f591ca05ff8fd9feea5f3e97dfc9b4d3
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2010 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
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::coordSet
27 Description
28     Holds list of sampling positions
30 SourceFiles
31     coordSet.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef coordSet_H
36 #define coordSet_H
38 #include "pointField.H"
39 #include "word.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 /*---------------------------------------------------------------------------*\
47                            Class coordSet Declaration
48 \*---------------------------------------------------------------------------*/
50 class coordSet
52     public pointField
55 protected:
57         //- Name
58         const word name_;
60         //- Axis write type
61         const word axis_;
63         //- Reference point for "distance" write specifier.
64         point refPoint_;
66 public:
68     // Constructors
70         //- Construct from components
71         coordSet
72         (
73             const word& name,
74             const word& axis
75         );
78         //- Construct from components
79         coordSet
80         (
81             const word& name,
82             const word& axis,
83             const List<point>& points,
84             const point& refPoint = point::zero
85         );
87         //- Construct from components
88         coordSet
89         (
90             const word& name,
91             const word& axis,
92             const scalarField& points,
93             const scalar refPoint = 0.0
94         );
97     // Member functions
99         const word& name() const
100         {
101             return name_;
102         }
104         const word& axis() const
105         {
106             return axis_;
107         }
109         const point& refPoint() const
110         {
111             return refPoint_;
112         }
114         //- Is axis specification a vector
115         bool hasVectorAxis() const;
117         //- Get coordinate of point according to axis specification.
118         //  If axis="distance" can be: -distance to starting point (e.g.
119         //  uniformSet) or -distance to first sampling point
120         //  (e.g. cloudSet)
121         scalar scalarCoord
122         (
123             const label index
124         ) const;
126         //- Get point according to axis="full" specification
127         vector vectorCoord
128         (
129             const label index
130         ) const;
132         Ostream& write(Ostream& os) const;
136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
138 } // End namespace Foam
140 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
142 #endif
144 // ************************************************************************* //