This class manages all the properties attached to an atom. More...
#include <AtomProperties.h>
Public Member Functions | |
AtomProperties (PhysicalModel *myPM) | |
Default constructor : set the position to the origin, and generate an unique index. More... | |
AtomProperties (PhysicalModel *myPM, const double pos[3]) | |
generate an unique index. More... | |
AtomProperties (PhysicalModel *myPM, const unsigned int ind) | |
set the position to the origin More... | |
AtomProperties (PhysicalModel *myPM, const unsigned int ind, const double pos[3]) | |
everything is given here More... | |
AtomProperties (PhysicalModel *myPM, physicalModel::AtomProperties xmlAtomProp) | |
constructor from xml node: try to read and get the properties from xml More... | |
void | getPosition (double pos[3]) const |
get the position of the atom (array of 3 doubles) More... | |
void | setPosition (const double, const double, const double) |
set the position of the atom More... | |
void | setPosition (const double[3]) |
set the position of the atom More... | |
void | setPositionPointer (double *ptr, bool update=true) |
change the position pointer. More... | |
virtual void | xmlPrint (std::ostream &) |
print to an output stream in "pseudo" XML format. More... | |
~AtomProperties () override | |
the destructor... More... | |
Public Member Functions inherited from StructureProperties | |
unsigned int | getIndex () const |
return the unique index in the global structure More... | |
GeometricType | getType () const |
Return the type of force. More... | |
void | setIndex (const unsigned int) |
set the index (BECAREFUL: it MUST be unique !!!) More... | |
void | setType (const GeometricType t) |
Set the force type. More... | |
StructureProperties (PhysicalModel *, const GeometricType) | |
the only default constructor : type must be set More... | |
void | xmlPrint (std::ostream &) const |
print to an output stream in "pseaudo" XML format. More... | |
~StructureProperties ()=default | |
Public Member Functions inherited from Properties | |
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!!!) More... | |
PhysicalModel * | getPhysicalModel () const |
get the physical model More... | |
Properties (const std::string n="") | |
A nice simple constructor, with a given name. More... | |
Properties (PhysicalModel *, const std::string n="") | |
Another nice constructor, with the PM and a name. More... | |
void | setName (std::string) |
set the name (use the string = operator) More... | |
void | setPhysicalModel (PhysicalModel *) |
set the physical model More... | |
virtual | ~Properties ()=default |
The default destructor. More... | |
void | xmlToFields (xsd::cxx::tree::attribute_set< char > attrs) |
convert the xml node parameters to data fields More... | |
unsigned int | numberOfFields () const |
get the number of extra fields found in the PML More... | |
bool | isAField (std::string attName) const |
check if the field exist in the XML document, return false if it does not More... | |
std::string | getField (unsigned int) const |
get the name of field of given index More... | |
double | getDouble (std::string attName) |
field accessor: get the field attName as a double value, if field does not exist, 0.0 is return More... | |
int | getInt (std::string attName) const |
field accessor: get the field attName as an int value, if field does not exist, 0 is return More... | |
bool | getBool (std::string attName) const |
field accessor: get the field attName as a bool value, if field does not exist, false is return More... | |
std::string | getString (std::string attName) const |
field accessor: get the field attName as a string value, if field does not exist, empty string is return More... | |
void | get (std::string attName, std::string &attVal) const |
field accessor: get the field attName as a string value in attVal, if field does not exist, empty string is return More... | |
void | set (std::string attName, double val) |
field modificator: set field attName using a double value More... | |
void | set (std::string attName, int val) |
field modificator: set field attName using an int value More... | |
void | set (std::string attName, bool val) |
field modificator: set field attName using a bool value More... | |
void | set (std::string attName, std::string val) |
field modificator: set field attName using a string value More... | |
Static Public Member Functions | |
static void | resetUniqueIndex () |
Reinitialize the unique index to zero (usually that what you want to do when you start to load a new PhysicalModel. More... | |
Static Public Member Functions inherited from StructureProperties | |
static std::string | toString (const GeometricType) |
return the string equivalent to this geometric type More... | |
static GeometricType | toType (const std::string) |
return the enum corresponding to this string More... | |
Private Member Functions | |
void | allocate () |
allocate the memory needed for the position (double[3]). More... | |
Private Attributes | |
bool | allocated |
true only if the memory used for the position was allocated in the constructor and not changed afterwards More... | |
double * | X |
Pointer to the memory triplet that stores the atom's position. More... | |
Static Private Attributes | |
static unsigned int | maxUniqueIndex = 0 |
unique number (used to generate unique index for atoms if not given at the instantiation) More... | |
Additional Inherited Members | |
Public Types inherited from StructureProperties | |
enum | GeometricType { INVALID, ATOM, LINE, TRIANGLE, QUAD, TETRAHEDRON, WEDGE, PYRAMID, HEXAHEDRON, POLY_LINE, POLY_VERTEX } |
Geometric type gives information about which kind of geometric representation is the structure. More... | |
Protected Attributes inherited from StructureProperties | |
unsigned int | index |
unique index in the global structure More... | |
Protected Attributes inherited from Properties | |
std::map< std::string, std::string > | fields |
map containing all the different fields (name, value stored as string ) More... | |
This class manages all the properties attached to an atom.
AtomProperties::AtomProperties | ( | PhysicalModel * | myPM | ) |
Default constructor : set the position to the origin, and generate an unique index.
myPM | the physical model the atom belongs to |
References allocate(), StructureProperties::index, maxUniqueIndex, and setPosition().
AtomProperties::AtomProperties | ( | PhysicalModel * | myPM, |
physicalModel::AtomProperties | xmlAtomProp | ||
) |
constructor from xml node: try to read and get the properties from xml
myPM | the physical model the atom belongs to |
prop | the xsd node of properties for this atom. |
References allocate(), StructureProperties::setIndex(), Properties::setName(), setPosition(), and Properties::xmlToFields().
AtomProperties::AtomProperties | ( | PhysicalModel * | myPM, |
const unsigned int | ind | ||
) |
set the position to the origin
myPM | the physical model the atom belongs to |
ind | an unique index |
References allocate(), StructureProperties::index, maxUniqueIndex, and setPosition().
AtomProperties::AtomProperties | ( | PhysicalModel * | myPM, |
const double | pos[3] | ||
) |
generate an unique index.
myPM | the physical model the atom belongs to |
pos | the initial position |
References allocate(), StructureProperties::index, maxUniqueIndex, and setPosition().
AtomProperties::AtomProperties | ( | PhysicalModel * | myPM, |
const unsigned int | ind, | ||
const double | pos[3] | ||
) |
everything is given here
myPM | the physical model the atom belongs to |
pos | the initial position |
ind | an unique index |
References allocate(), StructureProperties::index, maxUniqueIndex, and setPosition().
|
private |
allocate the memory needed for the position (double[3]).
This place in memory is a default, it can be changed using setPositionPointer(..). This method is called in all the constructors, and only there.
Referenced by AtomProperties().
|
inline |
get the position of the atom (array of 3 doubles)
References X.
Referenced by Atom::getPosition(), and setPositionPointer().
|
static |
Reinitialize the unique index to zero (usually that what you want to do when you start to load a new PhysicalModel.
References maxUniqueIndex.
Referenced by PhysicalModel::clear().
|
inline |
set the position of the atom
References X.
|
inline |
set the position of the atom
References X.
Referenced by AtomProperties(), Atom::setPosition(), and setPositionPointer().
void AtomProperties::setPositionPointer | ( | double * | ptr, |
bool | update = true |
||
) |
change the position pointer.
This is useful to allocate a big bunch of memory with all the position in order to improve memory cache usage.
ptr | the pointer to the memory (should have enough space for storing double[3] |
update | update the new memory space using the previously stored position |
References allocated, getPosition(), setPosition(), and X.
|
virtual |
print to an output stream in "pseudo" XML format.
References Properties::fields, Properties::getName(), StructureProperties::index, and X.
|
private |
true only if the memory used for the position was allocated in the constructor and not changed afterwards
Referenced by allocate(), setPositionPointer(), and ~AtomProperties().
|
staticprivate |
unique number (used to generate unique index for atoms if not given at the instantiation)
Referenced by AtomProperties(), and resetUniqueIndex().
|
private |
Pointer to the memory triplet that stores the atom's position.
Referenced by allocate(), getPosition(), setPosition(), setPositionPointer(), xmlPrint(), and ~AtomProperties().