/***************************************************************************
                          AtomProperties.h  -  custom Atom properties
                             -------------------
    auto-generated       : Tuesday 6 July 2004 at 17:5:15
    copyright            : (C) 2001-2004 TIMC (E. Promayon, M. Chabanas)
    email                : Emmanuel.Promayon@imag.fr
    Date                 : $Date: 2004/08/11 14:05:25 $
    Version              : $Revision: 1.7 $
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   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 ATOMPROPERTIES_H
#define ATOMPROPERTIES_H


#include "BasicAtomProperties.h"

/**
  * This is an automatically generated class for custom Atom properties.
  * It was generated by the <tt>customPhysicalProperties</tt> stylesheet from 
  * the following xml document:
  <pre>
  
        
         
  
  </pre>
  * This class inherits BasicAtomProperties.
  * Here is all the specific attributes of Atom properties (custom physical properties)
  *
  * @author Emmanuel Promayon
  * $Revision: 1.7 $
  */
class AtomProperties : public BasicAtomProperties {
public:
    /** Constructors (do not change) */
    AtomProperties(PhysicalModel *p) :  BasicAtomProperties(p) { init(); };
	AtomProperties(PhysicalModel *p, xmlNodePtr node) :  BasicAtomProperties(p, node) { init(); };
    AtomProperties(PhysicalModel *p, const unsigned int ind) : BasicAtomProperties(p, ind) { init(); };
    AtomProperties(PhysicalModel *p, const SReal pos[3]) : BasicAtomProperties(p, pos) { init(); };
    AtomProperties(PhysicalModel *p, const unsigned int ind, const SReal pos[3]) : BasicAtomProperties(p, ind, pos) { init(); };
    virtual ~AtomProperties();     
           
    /** Print the properties in xml */
    void xmlPrint(std::ostream &);

    /** Set and get method for all the properties */
    void setMyCustomProperty1(const int);
    int getMyCustomProperty1() const;
            
    void setMyCustomProperty2(const std::string);
    std::string getMyCustomProperty2() const;
            
    
protected:
                
    virtual void init();
    int myCustomProperty1;
    std::string myCustomProperty2;
    
};                

// inlines
inline void AtomProperties::setMyCustomProperty1(const int value) { myCustomProperty1 = value; }
inline int AtomProperties::getMyCustomProperty1() const { return myCustomProperty1; }
inline void AtomProperties::setMyCustomProperty2(const std::string value) { myCustomProperty2 = value; }
inline std::string AtomProperties::getMyCustomProperty2() const { return myCustomProperty2; }

#endif

