1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
/***************************************************************************
CellProperties.h - Base of the cell properties
-------------------
begin : Wed Aug 8 2001
copyright : (C) 2001 TIMC (Emmanuel Promayon, Matthieu Chabanas)
email : Emmanuel.Promayon@imag.fr
Date : $Date: 2004/08/11 14:59:19 $
Version : $Revision: 1.5 $
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef BASICCELLPROPERTIES_H
#define BASICCELLPROPERTIES_H
#include "StructureProperties.h"
/** Describes the properties common to all cells.
*
* $Revision: 1.5 $
*/
class BasicCellProperties : public StructureProperties {
public:
/** Default constructor : generate an unique index
* @param t the type of the cell
*/
BasicCellProperties(PhysicalModel *, const StructureProperties::GeometricType t);
/** constructor from xml node: try to read and get the parmaters from xml */
BasicCellProperties(PhysicalModel *, const StructureProperties::GeometricType, xmlNodePtr);
/** Use this constructor when you specifically want to set the index
* @param t the type of the cell
* @param ind an unique index
*/
BasicCellProperties(PhysicalModel *, const StructureProperties::GeometricType t, const unsigned int ind);
/** the destructor...
*/
virtual ~BasicCellProperties() {}
;
/** print to an output stream in "pseaudo" XML format.
*/
virtual void xmlPrint(std::ostream &) =0;
/** Reinitialize the unique index to zero (usually that what you want to do when you
* start to load a new PhysicalModel
*/
static void resetUniqueIndex();
protected:
/// write the default xml properties (beginning)
void beginXML(std::ostream &);
/// write the default xml properties (end)
void endXML(std::ostream &);
private:
/// unique number (used to generate unique index for atoms if not given at the instanciation)
static unsigned int maxUniqueIndex;
};
#endif //BASICCELLPROPERTIES_H
|