Fixed URL for libccmio-2.6.1 (bug report #5 by Thomas Oliveira)
[foam-extend-3.2.git] / src / mesh / cfMesh / utilities / surfaceTools / meshSurfaceEngine / meshSurfaceEngineModifier.H
blob040c921835ed10999e11a587e45d67ad1c9c716d
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | cfMesh: A library for mesh generation
4    \\    /   O peration     |
5     \\  /    A nd           | Author: Franjo Juretic (franjo.juretic@c-fields.com)
6      \\/     M anipulation  | Copyright (C) Creative Fields, Ltd.
7 -------------------------------------------------------------------------------
8 License
9     This file is part of cfMesh.
11     cfMesh is free software; you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation; either version 3 of the License, or (at your
14     option) any later version.
16     cfMesh 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 cfMesh.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     meshSurfaceEngineModifier
27 Description
28     Modifier for the meshSurfaceEngine
30 SourceFiles
31     meshSurfaceEngine.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef meshSurfaceEngineModifier_H
36 #define meshSurfaceEngineModifier_H
38 #include "meshSurfaceEngine.H"
40 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
42 namespace Foam
45 /*---------------------------------------------------------------------------*\
46                     Class meshSurfaceEngineModifier Declaration
47 \*---------------------------------------------------------------------------*/
49 class meshSurfaceEngineModifier
51     // Private data
52         //- reference to the meshSurfaceEngine
53         meshSurfaceEngine& surfaceEngine_;
55         //- Disallow default bitwise copy construct
56         meshSurfaceEngineModifier(const meshSurfaceEngineModifier&);
58         //- Disallow default bitwise assignment
59         void operator=(const meshSurfaceEngineModifier&);
61 public:
63     // Constructors
65         //- Construct from reference to meshSurfaceEngine
66         meshSurfaceEngineModifier(meshSurfaceEngine& surfaceEngine);
68         //- Construct from const reference to meshSurfaceEngine
69         meshSurfaceEngineModifier(const meshSurfaceEngine& surfaceEngine);
71     // Destructor
73         ~meshSurfaceEngineModifier();
75     // Member Functions
77         //- relocate the selected boundary vertex
78         void moveBoundaryVertexNoUpdate(const label bpI, const point& newP);
80         //- relocate the selected boundary vertex and update geometry data
81         void moveBoundaryVertex(const label bpI, const point& newP);
83         //- update normals of boundary vertices at processor boundaries
84         inline void updateVertexNormals()
85         {
86             if( surfaceEngine_.pointNormalsPtr_ )
87                 surfaceEngine_.updatePointNormalsAtProcBoundaries();
88         }
90         //- updates faceCentres, face normal, and point normals
91         //- of the boundary faces attached to the selected boundary points
92         void updateGeometry(const labelLongList&);
93         void updateGeometry();
95         //- makes sure that all surface vertices at parallel boundaries
96         //- have the same coordinates
97         void syncVerticesAtParallelBoundaries();
98         void syncVerticesAtParallelBoundaries(const labelLongList&);
102 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
104 } // End namespace Foam
106 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
108 #endif
110 // ************************************************************************* //