linearDirection.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) 2011-2015 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::extrudeModels::linearDirection
29 
30 Description
31  Extrudes by transforming points in a specified direction by the given
32  distance.
33 
34  The linearDirectionCoeffs dictionary entries
35  \table
36  Property | Description | Required | Default
37  direction | The extrusion direction, normalized on input | yes |
38  thickness | The extrusion thickness | yes |
39  \endtable
40 
41 \*---------------------------------------------------------------------------*/
42 
43 #ifndef linearDirection_H
44 #define linearDirection_H
45 
46 #include "point.H"
47 #include "extrudeModel.H"
48 
49 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 
51 namespace Foam
52 {
53 namespace extrudeModels
54 {
55 
56 /*---------------------------------------------------------------------------*\
57  Class linearDirection Declaration
58 \*---------------------------------------------------------------------------*/
59 
60 class linearDirection
61 :
62  public extrudeModel
63 {
64  // Private data
65 
66  //- Extrude direction
67  vector direction_;
68 
69  //- Layer thickness
70  scalar thickness_;
71 
72 
73 public:
74 
75  //- Runtime type information
76  TypeName("linearDirection");
77 
78  // Constructors
79 
80  //- Construct from dictionary
81  explicit linearDirection(const dictionary& dict);
82 
83 
84  //- Destructor
85  virtual ~linearDirection() = default;
86 
87 
88  // Member Operators
89 
90  point operator()
91  (
92  const point& surfacePoint,
93  const vector& surfaceNormal,
94  const label layer
95  ) const;
96 };
97 
98 
99 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
100 
101 } // End namespace extrudeModels
102 } // End namespace Foam
103 
104 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
105 
106 #endif
107 
108 // ************************************************************************* //
dictionary dict
TypeName("linearDirection")
Runtime type information.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Definition: dictionary.H:129
Vector< scalar > vector
Definition: vector.H:57
virtual ~linearDirection()=default
Destructor.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
Namespace for OpenFOAM.
linearDirection(const dictionary &dict)
Construct from dictionary.