23 #ifndef _OBJCRYST_ATOM_H_
24 #define _OBJCRYST_ATOM_H_
26 #include "ObjCryst/CrystVector/CrystVector.h"
28 #include "ObjCryst/ObjCryst/General.h"
30 #include "ObjCryst/ObjCryst/ScatteringPower.h"
31 #include "ObjCryst/ObjCryst/Scatterer.h"
69 Atom(
const REAL x,
const REAL y,
const REAL z,
84 Atom(
const REAL x,
const REAL y,
const REAL z,
const string &name,
93 virtual void operator=(
const Atom & rhs);
100 void Init(
const REAL x,
const REAL y,
const REAL z,
108 virtual void Print()
const;
131 virtual void GLInitDisplayList(
const bool noSymmetrics=
false,
132 const REAL xMin=-.1,
const REAL xMax=1.1,
133 const REAL yMin=-.1,
const REAL yMax=1.1,
134 const REAL zMin=-.1,
const REAL zMax=1.1,
135 const bool displayEnantiomer=
false,
136 const bool displayNames=
false,
137 const bool hideHydrogens=
false,
138 const REAL fadeDistance=0,
139 const bool fullMoleculeInLimits=
false)
const;
146 virtual void XMLOutput(ostream &os,
int indent=0)
const;
154 CrystVector_uint & groupIndex,
155 unsigned int &firstGroup)
const;
175 #include "ObjCryst/ObjCryst/Crystal.h"
The namespace which includes all objects (crystallographic and algorithmic) in ObjCryst++.
The basic atom scatterer, in a crystal.
void SetScatteringPower(const ScatteringPower &pow)
Change the ScatteringPower for this atom.
const ScatteringPower * mpScattPowAtom
The ScatteringPowerAtom associated to that atom.
REAL GetRadius() const
Returns the radius (in Angstroems) of the atom.
bool IsDummy() const
Is this a dummy atom ? (ie no ScatteringPower) Dummy atoms should not exist !
virtual void InitRefParList()
Prepare refinable parameters for the scatterer object.
virtual void Print() const
Print some info about the scatterer (ideally this should be one line...).
virtual const ScatteringComponentList & GetScatteringComponentList() const
Get the list of all scattering components for this scatterer.
REAL GetMass() const
Returns the molar mass of the atom.
virtual int GetNbComponent() const
Number of components in the scatterer (eg number of point scatterers)
ScatteringComponentList mScattCompList
The list of scattering components.
virtual ostream & POVRayDescription(ostream &os, const CrystalPOVRayOptions &options) const
XMLOutput a description of the scatterer for POVRay.
void Init(const REAL x, const REAL y, const REAL z, const string &name, const ScatteringPower *pow, const REAL popu=1)
initialize the atom (used for arrays of atoms).
const ScatteringPower & GetScatteringPower() const
Get the ScatteringPowerAtom corresponding to this atom.
virtual string GetComponentName(const int i) const
Name for the i-th component of this scatterer.
virtual void GetGeneGroup(const RefinableObj &obj, CrystVector_uint &groupIndex, unsigned int &firstGroup) const
Get the gene group assigned to each parameter.
virtual const string & GetClassName() const
Name for this class ("RefinableObj", "Crystal",...).
virtual Atom * CreateCopy() const
virtual void XMLInput(istream &is, const XMLCrystTag &tag)
Input From stream.
virtual void XMLOutput(ostream &os, int indent=0) const
Output to stream in well-formed XML.
Atom()
Default constructor.
Class to store POV-Ray output options.
Generic type of scatterer: can be an atom, or a more complex assembly of atoms.
Abstract Base Class to describe the scattering power of any Scatterer component in a crystal.
list of scattering positions in a crystal, associated with the corresponding occupancy and a pointer ...
class to input or output a well-formatted xml beginning or ending tag.
Generic Refinable Object.
Abstract base class for all objects in wxCryst.