splineEdge.C
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-2016 OpenFOAM Foundation
9 Copyright (C) 2019-2021 OpenCFD Ltd.
10-------------------------------------------------------------------------------
11License
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\*---------------------------------------------------------------------------*/
28
29#include "splineEdge.H"
30#include "polyLine.H"
32
33// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
34
35namespace Foam
36{
37namespace blockEdges
38{
40
42 (
46 );
47}
48}
49
50
51// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
52
54(
55 const pointField& points,
56 const edge& fromTo,
57 const pointField& internalPoints
58)
59:
60 blockEdge(points, fromTo),
62 (
63 polyLine::concat(firstPoint(), internalPoints, lastPoint())
64 )
65{}
66
67
69(
70 const pointField& points,
71 const label from,
72 const label to,
73 const pointField& internalPoints
74)
75:
76 splineEdge(points, edge(from,to), internalPoints)
77{}
78
79
81(
82 const dictionary& dict,
83 const label index,
84 const searchableSurfaces&,
85 const pointField& points,
86 Istream& is
87)
88:
89 blockEdge(dict, index, points, is),
91 (
92 polyLine::concat(firstPoint(), pointField(is), lastPoint())
93 )
94{
95 token tok(is);
96 is.putBack(tok);
97
98 // Discard unused start/end tangents
99 if (tok == token::BEGIN_LIST)
100 {
101 vector tangent0Ignored(is);
102 vector tangent1Ignored(is);
103 }
104}
105
106
107// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
108
110{
112}
113
114
116{
118}
119
120
121// ************************************************************************* //
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
An implementation of Catmull-Rom splines (sometimes known as Overhauser splines).
scalar length() const
The length of the curve.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Definition: Istream.H:64
void putBack(const token &tok)
Put back a token. Only a single put back is permitted.
Definition: Istream.C:70
Define a curved edge that is parameterized for 0<lambda<1 between the start/end points.
Definition: blockEdge.H:64
A blockEdge interface for Catmull-Rom splines.
Definition: splineEdge.H:62
virtual scalar length() const
The length of the spline curve.
Definition: splineEdge.C:115
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:126
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
Definition: edge.H:66
A series of straight line segments, which can also be interpreted as a series of control points for s...
Definition: polyLine.H:56
Container for searchableSurfaces. The collection is specified as a dictionary. For example,...
A token holds an item read from Istream.
Definition: token.H:69
@ BEGIN_LIST
Begin list [isseparator].
Definition: token.H:155
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
Definition: className.H:121
const volScalarField & mu
const pointField & points
Namespace for OpenFOAM.
dictionary dict