Computer Assited Medical Intervention Tool Kit  version 5.0
CellProperties.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 #ifndef CELLPROPERTIES_H
27 #define CELLPROPERTIES_H
28 
29 #include "StructureProperties.h"
30 
31 #include <memory>
32 
33 // pml schema forward declarations
34 namespace physicalModel {
35 class CellProperties;
36 }
45 public:
51 
57  CellProperties(PhysicalModel* myPM, const StructureProperties::GeometricType t, physicalModel::CellProperties xmlCellProp);
58 
64  CellProperties(PhysicalModel* myPM, const StructureProperties::GeometricType t, const unsigned int ind);
65 
67  ~CellProperties() = default;
68 
71  virtual void xmlPrint(std::ostream&);
72 
76  static void resetUniqueIndex();
77 
78 private:
80  static unsigned int maxUniqueIndex;
81 
82 };
83 #endif // CELLPROPERTIES_H
StructureProperties
Describes the properties common to all structures.
Definition: StructureProperties.h:38
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
StructureProperties::GeometricType
GeometricType
Geometric type gives information about which kind of geometric representation is the structure.
Definition: StructureProperties.h:130
Properties::xmlToFields
void xmlToFields(xsd::cxx::tree::attribute_set< char > attrs)
convert the xml node parameters to data fields
Definition: Properties.cpp:41
CellProperties.h
CellProperties::resetUniqueIndex
static void resetUniqueIndex()
Reinitialize the unique index to zero (usually that what you want to do when you start to load a new ...
Definition: CellProperties.cpp:31
Properties::myPM
PhysicalModel * myPM
pointer to the physical model the object is in
Definition: Properties.h:136
StructureProperties.h
CellProperties
Describes and manages the properties attached to cells.
Definition: CellProperties.h:44
CellProperties::CellProperties
CellProperties(PhysicalModel *myPM, const StructureProperties::GeometricType t)
Default constructor : generate an unique index.
Definition: CellProperties.cpp:58
Properties::getName
std::string getName() const
get the name (be careful, this method DOES NOT return a copy, so you got the direct ptr to the name!...
Definition: Properties.h:250
PhysicalModel
This is the main class of this project. Following a nice concept, a physical model is able to represe...
Definition: PhysicalModel.h:86
StructureProperties::PYRAMID
@ PYRAMID
the structure has a quad base and one vertex outside the defined base plane (like an egyptian pyramid...
Definition: StructureProperties.h:161
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
Properties::setName
void setName(std::string)
set the name (use the string = operator)
Definition: Properties.h:254
StructureProperties::LINE
@ LINE
the structure is a simple line, i.e it must be a cell composed of only 2 atoms
Definition: StructureProperties.h:156
CellProperties::maxUniqueIndex
static unsigned int maxUniqueIndex
unique number (used to generate unique index for cells if not given at the instantiation)
Definition: CellProperties.h:80
StructureProperties::index
unsigned int index
unique index in the global structure
Definition: StructureProperties.h:178
physicalModel
Definition: Atom.h:36
StructureProperties::POLY_VERTEX
@ POLY_VERTEX
the structure is a poly vertex, i.e it must be a cell and it is a point clouds
Definition: StructureProperties.h:164
StructureProperties::QUAD
@ QUAD
the structure is a quad, i.e it must be a cell composed of 4 atoms
Definition: StructureProperties.h:158
CellProperties::xmlPrint
virtual void xmlPrint(std::ostream &)
print to an output stream in "pseaudo" XML format.
Definition: CellProperties.cpp:71
CellProperties::~CellProperties
~CellProperties()=default
the destructor...
StructureProperties::getType
GeometricType getType() const
Return the type of force.
Definition: StructureProperties.h:160
Properties::fields
std::map< std::string, std::string > fields
map containing all the different fields (name, value stored as string )
Definition: Properties.h:129
StructureProperties::POLY_LINE
@ POLY_LINE
the structure is a polyline, i.e it must be a cell and the order of the atom in the cell are arranged...
Definition: StructureProperties.h:163