Computer Assisted Medical Intervention Tool Kit  version 5.2
 
Loading...
Searching...
No Matches
PMLTransform.h
Go to the documentation of this file.
1/*****************************************************************************
2 * $CAMITK_LICENCE_BEGIN$
3 *
4 * CamiTK - Computer Assisted Medical Intervention ToolKit
5 * (c) 2001-2024 Univ. Grenoble Alpes, CNRS, Grenoble INP - UGA, 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#ifndef PMLTRANSFORM_H
27#define PMLTRANSFORM_H
28
29#include "PhysicalModel.h"
30
31#include <map>
32#include <vector>
33
34class CellProperties;
42class Facet {
43public:
45 Facet(unsigned int size, unsigned int id[]);
46
48 virtual ~Facet();
49
51 bool testEquivalence(unsigned int size, unsigned int id[]);
52
55
57 void debug();
58
60 unsigned int getUsed() const;
61
62private:
64 bool isIn(unsigned int) const;
65
67 unsigned int* id;
68
70 unsigned int size;
71
73 unsigned int used;
74};
75
76
77
78
83
84public :
85//-- elem to neighborhhod methods
86
89 static std::map<unsigned int, Cell*>::iterator getIterator(unsigned int index);
90
93
95 static void equivalent(int size, unsigned int id[]);
96
99
100
101private :
102 // -------------------- Neigborhood Map ------------------------
103 // associative map of all the neighboors for a given index of an atom
104 static std::map<unsigned int, Cell*> neighMap;
105
106 // -------------------- All border facets ------------------------
108 static std::vector <Facet*> allFacets;
109
110};
111
112#endif
Describes and manages the properties attached to cells.
Definition CellProperties.h:44
A cell has an unique index in the physical model object, is composed by atoms, and different basic pr...
Definition Cell.h:46
Class facet to hold and compare facet This class is used for the extraction of external surface durin...
Definition Facet.h:38
Cell * getCell(PhysicalModel *) const
return the corresponding PML cell
bool testEquivalence(unsigned int size, unsigned int id[])
if it is the same (equivalent) facet, increment used (return true if equivalence)
void debug()
print on stdout
unsigned int getUsed() const
get the number of time it is being used
Facet(unsigned int size, unsigned int id[])
create a facet using size nodes and their indexes
virtual ~Facet()
destructor
A multi-component stores other components, hence providing a way to have an tree representation of co...
Definition MultiComponent.h:44
PML Transform is composed by static methods It performs transformations on pml object and do a lot of...
Definition PMLTransform.h:82
static std::map< unsignedint, Cell * >::iterator getIterator(unsigned int index)
get the iterator on the correct atom index in the neighMap if non existant create it
Definition PMLTransform.cpp:164
static StructuralComponent * generateNeighborhood(StructuralComponent *sc)
generate the neighborhoods
Definition PMLTransform.cpp:191
static MultiComponent * generateExternalSurface(StructuralComponent *sc)
generate the outside surface
Definition PMLTransform.cpp:380
static void equivalent(int size, unsigned int id[])
check if equivalent of already existing facet
Definition PMLTransform.cpp:361
This is the main class of this project.
Definition PhysicalModel.h:86
A structural component is composed either by cell or by atoms.
Definition StructuralComponent.h:52