Loading...
Searching...
No Matches
levelSetMaskObject.hpp
1/*---------------------------------------------------------------------------*\
2 *
3 * bitpit
4 *
5 * Copyright (C) 2015-2021 OPTIMAD engineering Srl
6 *
7 * -------------------------------------------------------------------------
8 * License
9 * This file is part of bitpit.
10 *
11 * bitpit is free software: you can redistribute it and/or modify it
12 * under the terms of the GNU Lesser General Public License v3 (LGPL)
13 * as published by the Free Software Foundation.
14 *
15 * bitpit is distributed in the hope that it will be useful, but WITHOUT
16 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
17 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
18 * License for more details.
19 *
20 * You should have received a copy of the GNU Lesser General Public License
21 * along with bitpit. If not, see <http://www.gnu.org/licenses/>.
22 *
23\*---------------------------------------------------------------------------*/
24
25# ifndef __BITPIT_LEVELSET_MASK_OBJECT_HPP__
26# define __BITPIT_LEVELSET_MASK_OBJECT_HPP__
27
28// Standard Template Library
29# include <vector>
30# include <set>
31
32# include "bitpit_operators.hpp"
33# include "bitpit_surfunstructured.hpp"
34
35# include "levelSetSegmentationObject.hpp"
36
37namespace bitpit{
38
39class PatchKernel;
40class SurfUnstructured;
41
43
44 private:
45 std::unique_ptr<SurfUnstructured> extractCellEnvelope(const std::unordered_set<long> &, const VolumeKernel &, std::unordered_map<long,long> &);
46 std::unique_ptr<SurfUnstructured> extractFaceEnvelope(const std::vector<long> &, const VolumeKernel &, std::unordered_map<long,long> &);
47 bool sameInterfaceEnvelopeOrientation(const VolumeKernel &, long, SurfUnstructured &, long );
48
49
50 public:
51 LevelSetMaskObject(int, const std::unordered_set<long> &, const VolumeKernel &);
52 LevelSetMaskObject(int, const std::vector<long> &, long, bool, const VolumeKernel &);
53};
54
55// Typdefs for compatibility with older versions
57
58}
59
60#endif
Implements the levelset around a set of cells or interfaces of the kernel.
LevelSetMaskObject(int, const std::unordered_set< long > &, const VolumeKernel &)
Implements visitor pattern fo segmentated geometries.
The SurfUnstructured class defines an unstructured surface triangulation.
The VolumeKernel class provides an interface for defining volume patches.
--- layout: doxygen_footer ---