Computer Assited Medical Intervention Tool Kit  version 5.0
SurfaceExtractor.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * $CAMITK_LICENCE_BEGIN$
3  *
4  * CamiTK - Computer Assisted Medical Intervention ToolKit
5  * (c) 2001-2021 Univ. Grenoble Alpes, CNRS, Grenoble INP, TIMC, 38000 Grenoble, France
6  *
7  * Visit http://camitk.imag.fr for more information
8  *
9  * This file is part of CamiTK.
10  *
11  * CamiTK is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * CamiTK is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU Lesser General Public License version 3 for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public License
21  * version 3 along with CamiTK. If not, see <http://www.gnu.org/licenses/>.
22  *
23  * $CAMITK_LICENCE_END$
24  ****************************************************************************/
25 
26 
27 #ifndef TOOLS_SURFACEEXTRACTOR_SURFACEEXTRACTOR_H
28 #define TOOLS_SURFACEEXTRACTOR_SURFACEEXTRACTOR_H
29 
30 #include <vector>
31 
32 // Tools includes
33 #include "Facet.h"
45 
46 public:
51 
53  void init();
55  void AddCell(Cell* c);
61 
62 private:
64  std::vector<Facet*> facets;
66  void equivalent(int size, unsigned int id[]);
69 
70 };
71 
72 #endif // TOOLS_SURFACEEXTRACTOR_SURFACEEXTRACTOR_H
StructureProperties::WEDGE
@ WEDGE
the structure is a wedge (like the Pink Floyd's "Dark Side Of the Moon" prism), it must be a cell and...
Definition: StructureProperties.h:160
StructureProperties::TETRAHEDRON
@ TETRAHEDRON
the structure is a tetrahedron, it must be a cell and have sub-structures that are atoms
Definition: StructureProperties.h:159
StructuralComponent::getNumberOfStructures
unsigned int getNumberOfStructures() const
get the number of structures
Definition: StructuralComponent.h:252
Structure::getType
StructureProperties::GeometricType getType() const
get the type of index
Definition: Structure.cpp:40
Atom
An atom has an unique index in the physical model object, a 3D position, and different basic properti...
Definition: Atom.h:49
SurfaceExtractor::equivalent
void equivalent(int size, unsigned int id[])
check if equivalent of already existing facet
Definition: SurfaceExtractor.cpp:227
SurfaceExtractor::init
void init()
initialize the extractor
Definition: SurfaceExtractor.cpp:42
SurfaceExtractor::~SurfaceExtractor
~SurfaceExtractor()
destructor
Definition: SurfaceExtractor.cpp:34
SurfaceExtractor::generateExternalSurface
void generateExternalSurface(StructuralComponent &surface, StructuralComponent &surfacePoints)
generate the external surface
Definition: SurfaceExtractor.cpp:209
PhysicalModel::getAtom
Atom * getAtom(const unsigned int id)
Get the atom that has the global index given in parameters.
Definition: PhysicalModel.h:385
Structure::getIndex
unsigned int getIndex() const
get the structure unique index (stored in its property)
Definition: Structure.cpp:30
StructuralComponent
A structural component is composed either by cell or by atoms.
Definition: StructuralComponent.h:52
StructuralComponent::addStructure
void addStructure(Structure *s, bool check=true)
Add a Structure in the list (and tells the structure to add this structural component in its list).
Definition: StructuralComponent.h:212
Facet
Class facet to hold and compare facet This class is used for the extraction of external surface durin...
Definition: Facet.h:38
Facet.h
PhysicalModel
This is the main class of this project. Following a nice concept, a physical model is able to represe...
Definition: PhysicalModel.h:86
SurfaceExtractor::facets
std::vector< Facet * > facets
vector with all the facets
Definition: SurfaceExtractor.h:87
Cell
A cell has an unique index in the physical model object, is composed by atoms, and different basic pr...
Definition: Cell.h:46
SurfaceExtractor::AddCell
void AddCell(Cell *c)
try to add a cell in the surface extractor and do it if this cell is not in
Definition: SurfaceExtractor.cpp:50
StructureProperties::HEXAHEDRON
@ HEXAHEDRON
the structure is a hexahedron, it must be a cell and have sub-structures that are atoms
Definition: StructureProperties.h:162
StructureProperties::TRIANGLE
@ TRIANGLE
the structure is a triangle, i.e it must be a cell composed of 3 atoms
Definition: StructureProperties.h:157
SurfaceExtractor::pm
PhysicalModel * pm
the physical model
Definition: SurfaceExtractor.h:91
StructuralComponent::getStructure
Structure * getStructure(const unsigned int) const
get a structure by its index (fisrt structure is at index 0)
Definition: StructuralComponent.h:220
StructuralComponent::getCell
Cell * getCell(unsigned int) const override
get cell by order number (not cell index)
Definition: StructuralComponent.cpp:197
StructureProperties::QUAD
@ QUAD
the structure is a quad, i.e it must be a cell composed of 4 atoms
Definition: StructureProperties.h:158
SurfaceExtractor.h
SurfaceExtractor
A class to generate the external surface of a pml to use it just add the cells among which you want t...
Definition: SurfaceExtractor.h:44
SurfaceExtractor::SurfaceExtractor
SurfaceExtractor(PhysicalModel *pm)
constructor
Definition: SurfaceExtractor.cpp:29