|
Computer Assited Medical Intervention Tool Kit
version 5.0
|
|
Go to the documentation of this file.
78 #if defined(__has_warning)
79 # pragma GCC diagnostic push
80 # if __has_warning("-Woverloaded-virtual")
81 # pragma GCC diagnostic ignored "-Woverloaded-virtual"
85 #if defined(__has_warning)
86 # pragma GCC diagnostic pop
118 bool setIndex(
const unsigned int)
override;
166 return (std::string(className) == std::string(
"Cell"));
bool setIndex(const unsigned int) override
set the index.
Definition: Cell.cpp:139
ComposedBy
What this structural component is made of.
Definition: StructuralComponent.h:173
void addStructuralComponent(StructuralComponent *) override
add a particular StructuralComponent in the list (and set parentSC if null)
Definition: Cell.h:173
double surface()
Compute the surface of the cell.
Definition: Cell.cpp:492
StructuralComponent * getQuadFaces()
Return a new structural component directly representing the Cell as a list of quad faces (when possib...
Definition: Cell.cpp:385
@ 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
@ TETRAHEDRON
the structure is a tetrahedron, it must be a cell and have sub-structures that are atoms
Definition: StructureProperties.h:159
unsigned int getNumberOfStructures() const
get the number of structures
Definition: StructuralComponent.h:252
GeometricType
Geometric type gives information about which kind of geometric representation is the structure.
Definition: StructureProperties.h:130
~Cell() override
the destructor, my tailor. BECAREFUL: the atoms should not not be deleted here...
Definition: Cell.cpp:118
bool addGlobalIndexCellPair(std::GlobalIndexStructurePair)
add or update a pair to the cell map.
Definition: PhysicalModel.cpp:633
StructureProperties::GeometricType getType() const
get the type of index
Definition: Structure.cpp:40
An atom has an unique index in the physical model object, a 3D position, and different basic properti...
Definition: Atom.h:49
Cell(PhysicalModel *myPM, const StructureProperties::GeometricType t)
constructor that generates a unique index
Definition: Cell.cpp:36
std::pair< unsigned int, Structure * > GlobalIndexStructurePair
definition of a couple (=STL pair) (int , Structure *) this associates a global cell/atom index to th...
Definition: PhysicalModel.h:66
void removeFromParents()
this tell the parent components that this component is removed from memory.
Definition: modeling/libraries/pml/Component.cpp:48
void xmlPrint(std::ostream &, const StructuralComponent *) override
print to an output stream in "pseudo" XML format.
Definition: Cell.cpp:179
double * normal()
compute the normal of the facet Warning : Only available for QUAD and TRIANGLE type cells
Definition: Cell.cpp:460
double volume()
Compute the volume of the cell.
Definition: Cell.cpp:545
CellProperties * getProperties()
return the property
Definition: Cell.cpp:226
Properties * properties
Definition: modeling/libraries/pml/Component.h:118
unsigned int getNumberOfStructuralComponents() const
get the number of StructuralComponent that are using this structure
Definition: Structure.h:117
Atom * getAtom(const unsigned int id)
Get the atom that has the global index given in parameters.
Definition: PhysicalModel.h:385
unsigned int getIndex() const
get the structure unique index (stored in its property)
Definition: Structure.cpp:30
StructuralComponent::ComposedBy composedBy() override
overloaded from Structural component, always return StructuralComponent::ATOMS
Definition: Cell.h:169
void setColor(const StructuralComponentProperties::Color c)
Set the new color (using a StructuralComponentProperties::Color enum)
Definition: StructuralComponent.cpp:105
void deleteProperties()
delete the "properties" pointer and set it to NULL
Definition: modeling/libraries/pml/Component.cpp:42
Describes and manages the properties attached to cells.
Definition: CellProperties.h:44
A structural component is composed either by cell or by atoms.
Definition: StructuralComponent.h:52
bool makePrintData(const StructuralComponent *)
is this sc the one that will be the one that will make the cell to print out all its data or is this ...
Definition: Cell.cpp:147
Pure virtual class that represent an element of the structure. This implies that every structure coul...
Definition: Structure.h:43
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
A class that manages the structural component properties.
Definition: StructuralComponentProperties.h:44
StructuralComponent(PhysicalModel *)
Default Constructor.
Definition: StructuralComponent.cpp:37
virtual void addStructuralComponent(StructuralComponent *)
add a particular StructuralComponent in the list
Definition: Structure.h:128
This is the main class of this project. Following a nice concept, a physical model is able to represe...
Definition: PhysicalModel.h:86
@ INVALID
invalid geometry type
Definition: StructureProperties.h:154
A cell has an unique index in the physical model object, is composed by atoms, and different basic pr...
Definition: Cell.h:46
StructuralComponent * getTriangleFaces()
Return a new structural component directly representing the Cell as a list of triangular faces (when ...
Definition: Cell.cpp:231
@ PYRAMID
the structure has a quad base and one vertex outside the defined base plane (like an egyptian pyramid...
Definition: StructureProperties.h:161
StructureProperties * properties
Property of the current structure.
Definition: Structure.h:104
const StructuralComponent * getParentSC()
Get the direct parent structural that own this cell.
Definition: Cell.h:151
std::vector< Structure * > structures
List of the structure representing this component, all the structure in this list are either all Atom...
Definition: StructuralComponent.h:203
double * getColor() const
Get the color.
Definition: StructuralComponent.cpp:116
@ HEXAHEDRON
the structure is a hexahedron, it must be a cell and have sub-structures that are atoms
Definition: StructureProperties.h:162
@ DEFAULT
no color given, decided by the GUI
Definition: StructuralComponentProperties.h:50
StructuralComponent * atomList
List of all the atoms of this structural component, build the first time.
Definition: StructuralComponent.h:207
@ TRIANGLE
the structure is a triangle, i.e it must be a cell composed of 3 atoms
Definition: StructureProperties.h:157
@ LINE
the structure is a simple line, i.e it must be a cell composed of only 2 atoms
Definition: StructureProperties.h:156
void deleteAllStructures() override
This method overload the one defined in StructuralComponent.
Definition: Cell.cpp:215
Structure * getStructure(const unsigned int) const
get a structure by its index (fisrt structure is at index 0)
Definition: StructuralComponent.h:220
bool isInstanceOf(const char *) const override
return true only if the parameter is equal to "MultiComponent"
Definition: Cell.h:165
Cell * getCell(unsigned int) const override
get cell by order number (not cell index)
Definition: StructuralComponent.cpp:197
@ 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
@ ATOM
the structure is an atom, and hence should be represented by a single point
Definition: StructureProperties.h:155
StructuralComponent * parentSC
Keep a reference to the direct parent structural component.
Definition: Cell.h:160
@ QUAD
the structure is a quad, i.e it must be a cell composed of 4 atoms
Definition: StructureProperties.h:158
virtual bool setIndex(const unsigned int)
set the index.
Definition: Structure.cpp:34
unsigned int getNumberOfCells() const override
get the total nr of cell of the component
Definition: StructuralComponent.cpp:183
double signedVolumeTriangle(double p1[3], double p2[3], double p3[3])
Compute the volume of a triangle with the origin of the coordinate system.
Definition: Cell.cpp:598
@ ATOMS
the structural component is made of atoms
Definition: StructuralComponent.h:176
StructuralComponent * getStructuralComponent(unsigned int i)
get a particular StructuralComponent that is using this structure
Definition: Structure.h:120
bool isExclusive() const
tell if this component is exclusive or not
Definition: modeling/libraries/pml/Component.h:144
@ 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
PhysicalModel * getPhysicalModel() const
get the physical model
Definition: modeling/libraries/pml/Component.h:184
void plannedNumberOfStructures(const unsigned int)
optimize the I/O of the std:vector structures.
Definition: StructuralComponent.h:270