projectVertex.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2016 OpenFOAM Foundation
9  Copyright (C) 2019 OpenCFD Ltd.
10 -------------------------------------------------------------------------------
11 License
12  This file is part of OpenFOAM.
13 
14  OpenFOAM is free software: you can redistribute it and/or modify it
15  under the terms of the GNU General Public License as published by
16  the Free Software Foundation, either version 3 of the License, or
17  (at your option) any later version.
18 
19  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22  for more details.
23 
24  You should have received a copy of the GNU General Public License
25  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26 
27 Class
28  Foam::blockVertices::projectVertex
29 
30 Description
31  Projects the vertex onto the selected surfacees of the
32  geometry provided as a searchableSurfaces object.
33 
34 SourceFiles
35  projectVertex.C
36 
37 \*---------------------------------------------------------------------------*/
38 
39 #ifndef blockVertices_projectVertex_H
40 #define blockVertices_projectVertex_H
41 
42 #include "pointVertex.H"
43 
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 
46 namespace Foam
47 {
48 namespace blockVertices
49 {
50 
51 /*---------------------------------------------------------------------------*\
52  Class projectVertex Declaration
53 \*---------------------------------------------------------------------------*/
54 
55 class projectVertex
56 :
57  public pointVertex
58 {
59  // Private data
60 
61  const searchableSurfaces& geometry_;
62 
63  //- The indices of surfaces onto which the points are projected
64  labelList surfaces_;
65 
66 
67  // Private Member Functions
68 
69  //- No copy construct
70  projectVertex(const projectVertex&) = delete;
71 
72  //- No copy assignment
73  void operator=(const projectVertex&) = delete;
74 
75 
76 public:
77 
78  //- Runtime type information
79  TypeName("project");
80 
81 
82  // Constructors
83 
84  //- Construct from Istream setting pointsList
86  (
87  const dictionary& dict,
88  const label index,
89  const searchableSurfaces& geometry,
90  Istream& is
91  );
92 
93 
94  //- Destructor
95  virtual ~projectVertex() = default;
96 
97 
98  // Member Functions
99 
100  //- Project the given points onto the surface
101  virtual operator point() const;
102 };
103 
104 
105 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
106 
107 } // End namespace blockVertices
108 } // End namespace Foam
109 
110 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
111 
112 #endif
113 
114 // ************************************************************************* //
pointVertex.H
Foam::blockVertices::projectVertex::~projectVertex
virtual ~projectVertex()=default
Destructor.
Foam::blockVertices::projectVertex::TypeName
TypeName("project")
Runtime type information.
Foam::Istream
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Definition: Istream.H:61
Foam::blockVertices::projectVertex
Projects the vertex onto the selected surfacees of the geometry provided as a searchableSurfaces obje...
Definition: projectVertex.H:54
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::List< label >
Foam::searchableSurfaces
Container for searchableSurfaces. The collection is specified as a dictionary. For example,...
Definition: searchableSurfaces.H:92
Foam::point
vector point
Point is a vector.
Definition: point.H:43
Foam::blockVertices::pointVertex
Definition: pointVertex.H:52