Inheritance diagram for ObjCryst::Scatterer:
Public Member Functions | |
Scatterer () | |
Constructor. | |
Scatterer (const Scatterer &old) | |
Copy Constructor. | |
virtual | ~Scatterer () |
Destructor. | |
virtual Scatterer * | CreateCopy () const=0 |
virtual const string & | GetClassName () const |
Name for this class ("RefinableObj", "Crystal",...). | |
virtual int | GetNbComponent () const=0 |
Number of components in the scatterer (eg number of point scatterers). | |
virtual const ScatteringComponentList & | GetScatteringComponentList () const=0 |
Get the list of all scattering components for this scatterer. | |
virtual string | GetComponentName (const int i) const=0 |
Name for the i-th component of this scatterer. | |
REAL | GetX () const |
X coordinate (fractionnal) of the scatterer (for complex scatterers, this corresponds to the position of one atom of the Scatterer, ideally it should be near the center of the Scatterer. | |
REAL | GetY () const |
Y coordinate (fractionnal) of the scatterer (for complex scatterers, this corresponds to the position of one atom of the Scatterer, ideally it should be near the center of the Scatterer. | |
REAL | GetZ () const |
Z coordinate (fractionnal) of the scatterer (for complex scatterers, this corresponds to the position of one atom of the Scatterer, ideally it should be near the center of the Scatterer. | |
REAL | GetOccupancy () const |
Get the occupancy of the scatterer (0. -> 1.0). | |
virtual void | SetX (const REAL x) |
X coordinate (fractionnal) of the scatterer (for complex scatterers, this corresponds to the position of one atom of the Scatterer, ideally it should be near the center of the Scatterer. | |
virtual void | SetY (const REAL y) |
Y coordinate (fractionnal) of the scatterer (for complex scatterers, this corresponds to the position of one atom of the Scatterer, ideally it should be near the center of the Scatterer. | |
virtual void | SetZ (const REAL z) |
Z coordinate (fractionnal) of the scatterer (for complex scatterers, this corresponds to the position of one atom of the Scatterer, ideally it should be near the center of the Scatterer. | |
virtual void | SetOccupancy (const REAL occupancy) |
Change the occupancy of the scatterer (0. -> 1.0). | |
operator string () const | |
Conversion function.-> returns the scatt name. | |
virtual void | Print () const=0 |
Print some info about the scatterer (ideally this should be one line...). | |
virtual const string & | GetColour () const |
Colour associated to this scatterer (using POVRay names). | |
virtual const float * | GetColourRGB () const |
Colour associated to this scatterer, 3 RGB Coordinates. | |
virtual ostream & | POVRayDescription (ostream &os, const CrystalPOVRayOptions &options) const=0 |
virtual void | GLInitDisplayList (const bool noSymmetrics=false, const REAL xMin=-.1, const REAL xMax=1.1, const REAL yMin=-.1, const REAL yMax=1.1, const REAL zMin=-.1, const REAL zMax=1.1, const bool displayEnantiomer=false, const bool displayNames=false) const=0 |
const RefinableObjClock & | GetClockScatterer () const |
Last time anything in the scatterer was changed (atoms, positions, scattering power). | |
RefinableObjClock & | GetClockScatterer () |
Last time anything in the scatterer was changed (atoms, positions, scattering power). | |
void | SetCrystal (Crystal &) |
Set the crystal in which is included this Scatterer. | |
const Crystal & | GetCrystal () const |
In which crystal is this Scatterer included ? | |
Crystal & | GetCrystal () |
In which crystal is this Scatterer included ? | |
Protected Member Functions | |
virtual void | InitRefParList ()=0 |
Prepare refinable parameters for the scatterer object. | |
virtual void | InitRGBColour () |
Get RGB Colour coordinates from Colour Name. | |
const RefinableObjClock & | GetClockScattCompList () const |
Last time the ScatteringComponentList was generated. | |
Protected Attributes | |
CrystVector_REAL | mXYZ |
coordinates of the scatterer (or of its center..) | |
REAL | mOccupancy |
Occupancy : 0 <= occ <= 1 For a multi-atom scatterer (polyhedron,..), this is the overall occupancy of the scatterer (affects all components of the scatterer). | |
string | mColourName |
Colour for this scatterer (from POVRay). | |
float | mColourRGB [3] |
Colour for this scatterer using RGB. | |
RefinableObjClock | mClockScatterer |
Last time anything (number of atoms, positions, scattering power) was changed. | |
RefinableObjClock | mClockScattCompList |
Last time the ScatteringComponentList was generated. | |
Crystal * | mpCryst |
The crystal in which the Scatterer is This is needed so that we can know which scattering powers are available in the crystal, and also to convert fractionnal to orthonormal coordinates (for some scatterers only). |
A Scatterer is able to give its position (in fractionnal coordinates) in the unit cell, and more generally the position of all point scattering centers (ScatteringComponent), along with the ScatteringPower associated with each position.
For simple atoms, there is only one scattering position with the associated scattering power (scattering factor, anomalous, thermic). For complex scatterers (molecules: ZScatterer) there are as many positions as atoms.
A scatterer also has a few functions to display itself in 3D
This is an abstract base class.
|
Constructor.
|
|
Copy Constructor.
|
|
Destructor.
|
|
For internal use only. so-called Virtual copy constructor, needed to make copies of arrays of Scatterers Implemented in ObjCryst::Atom, ObjCryst::Molecule, ObjCryst::ZScatterer, and ObjCryst::ZPolyhedron. |
|
Name for this class ("RefinableObj", "Crystal",...). This is only useful to distinguish different classes when picking up objects from the RefinableObj Global Registry Reimplemented from ObjCryst::RefinableObj. Reimplemented in ObjCryst::Atom, ObjCryst::Molecule, and ObjCryst::ZScatterer. |
|
Last time the ScatteringComponentList was generated.
|
|
Last time anything in the scatterer was changed (atoms, positions, scattering power).
|
|
Last time anything in the scatterer was changed (atoms, positions, scattering power).
|
|
Colour associated to this scatterer (using POVRay names).
|
|
Colour associated to this scatterer, 3 RGB Coordinates.
|
|
Name for the i-th component of this scatterer. If the component is an Atom, Then the name is that of the atom. Else, it is the name of the scatterer plus the component number in the scatterer plus the name of the ScatteringPower.
Implemented in ObjCryst::Atom, ObjCryst::Molecule, and ObjCryst::ZScatterer. |
|
In which crystal is this Scatterer included ?
|
|
In which crystal is this Scatterer included ?
|
|
Number of components in the scatterer (eg number of point scatterers).
Implemented in ObjCryst::Atom, ObjCryst::Molecule, and ObjCryst::ZScatterer. |
|
Get the occupancy of the scatterer (0. -> 1.0). The occupancy is given in , and must take into account the 'special position' character of atoms (ie an atom on a 2fold axis should have at most a .5 population, etc...). For a multi-atom scatterer (polyhedra), this is the overall occupancy of the scatterer, affecting all atoms. |
|
Get the list of all scattering components for this scatterer. This is the most important function of this class, giving the list of scattering positions along with the associated ScatteringPower. Implemented in ObjCryst::Atom, ObjCryst::Molecule, and ObjCryst::ZScatterer. |
|
X coordinate (fractionnal) of the scatterer (for complex scatterers, this corresponds to the position of one atom of the Scatterer, ideally it should be near the center of the Scatterer.
|
|
Y coordinate (fractionnal) of the scatterer (for complex scatterers, this corresponds to the position of one atom of the Scatterer, ideally it should be near the center of the Scatterer.
|
|
Z coordinate (fractionnal) of the scatterer (for complex scatterers, this corresponds to the position of one atom of the Scatterer, ideally it should be near the center of the Scatterer.
|
|
For internal use only. Create an OpenGL Display List of the scatterer. This should only be called by a Crystal object.
Implemented in ObjCryst::Atom, ObjCryst::Molecule, and ObjCryst::ZScatterer. |
|
Prepare refinable parameters for the scatterer object.
Implemented in ObjCryst::Atom, ObjCryst::Molecule, and ObjCryst::ZScatterer. |
|
Get RGB Colour coordinates from Colour Name. Note that the colour used for display is usually that of the ScatteringPower, not that of the Scatterer |
|
Conversion function.-> returns the scatt name.
|
|
For internal use only. Output a description of the scatterer for POVRay. This should only be called by the Crystal Object to which belongs this scatterer. Implemented in ObjCryst::Atom, ObjCryst::Molecule, and ObjCryst::ZScatterer. |
|
Print some info about the scatterer (ideally this should be one line...).
Reimplemented from ObjCryst::RefinableObj. Implemented in ObjCryst::Atom, ObjCryst::Molecule, and ObjCryst::ZScatterer. |
|
Set the crystal in which is included this Scatterer.
|
|
Change the occupancy of the scatterer (0. -> 1.0). The occupancy is given in , and must take into account the 'special position' character of atoms (ie an atom on a 2fold axis should have at most a .5 population, etc...). For a multi-atom scatterer (polyhedra), this is the overall occupancy of the scatterer, affecting all atoms. |
|
X coordinate (fractionnal) of the scatterer (for complex scatterers, this corresponds to the position of one atom of the Scatterer, ideally it should be near the center of the Scatterer.
|
|
Y coordinate (fractionnal) of the scatterer (for complex scatterers, this corresponds to the position of one atom of the Scatterer, ideally it should be near the center of the Scatterer.
|
|
Z coordinate (fractionnal) of the scatterer (for complex scatterers, this corresponds to the position of one atom of the Scatterer, ideally it should be near the center of the Scatterer.
|
|
Last time the ScatteringComponentList was generated.
|
|
Last time anything (number of atoms, positions, scattering power) was changed.
|
|
Colour for this scatterer (from POVRay).
|
|
Colour for this scatterer using RGB.
|
|
Occupancy : 0 <= occ <= 1 For a multi-atom scatterer (polyhedron,..), this is the overall occupancy of the scatterer (affects all components of the scatterer).
|
|
The crystal in which the Scatterer is This is needed so that we can know which scattering powers are available in the crystal, and also to convert fractionnal to orthonormal coordinates (for some scatterers only). It cannot be const since some scatterers may want to modify the list of scattering powers of the crystal... |
|
coordinates of the scatterer (or of its center..)
|