1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
7 -------------------------------------------------------------------------------
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 the
13 Free Software Foundation; either version 2 of the License, or (at your
14 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
21 You should have received a copy of the GNU General Public License
22 along with OpenFOAM; if not, write to the Free Software Foundation,
23 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
29 Searching on plane. See plane.H
34 \*---------------------------------------------------------------------------*/
36 #ifndef searchablePlane_H
37 #define searchablePlane_H
39 #include "searchableSurface.H"
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 // Forward declaration of classes
49 /*---------------------------------------------------------------------------*\
50 Class searchablePlane Declaration
51 \*---------------------------------------------------------------------------*/
55 public searchableSurface,
60 // Private Member Data
62 mutable wordList regions_;
65 // Private Member Functions
67 pointIndexHit findLine
74 //- Disallow default bitwise copy construct
75 searchablePlane(const searchablePlane&);
77 //- Disallow default bitwise assignment
78 void operator=(const searchablePlane&);
83 //- Runtime type information
84 TypeName("searchablePlane");
89 //- Construct from components
93 const point& basePoint,
97 //- Construct from dictionary (used by searchableSurface)
101 const dictionary& dict
106 virtual ~searchablePlane();
111 virtual const wordList& regions() const;
113 //- Whether supports volume type below
114 virtual bool hasVolumeType() const
119 //- Range of local indices that can be returned.
120 virtual label size() const
126 // Multiple point queries.
128 virtual void findNearest
130 const pointField& sample,
131 const scalarField& nearestDistSqr,
135 virtual void findLine
137 const pointField& start,
138 const pointField& end,
142 virtual void findLineAny
144 const pointField& start,
145 const pointField& end,
149 //- Get all intersections in order from start to end.
150 virtual void findLineAll
152 const pointField& start,
153 const pointField& end,
154 List<List<pointIndexHit> >&
157 //- From a set of points and indices get the region
158 virtual void getRegion
160 const List<pointIndexHit>&,
164 //- From a set of points and indices get the normal
165 virtual void getNormal
167 const List<pointIndexHit>&,
171 //- Determine type (inside/outside/mixed) for point. unknown if
172 // cannot be determined (e.g. non-manifold surface)
173 virtual void getVolumeType
180 // regIOobject implementation
182 bool writeData(Ostream&) const
184 notImplemented("searchablePlane::writeData(Ostream&) const");
191 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
193 } // End namespace Foam
195 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
199 // ************************************************************************* //