#include <Scatterer.h>
Inheritance diagram for ObjCryst::Scatterer::
Public Methods | |
Scatterer () | |
Constructor. | |
Scatterer (const Scatterer &old) | |
Copy Constructor. | |
virtual | ~Scatterer () |
Destructor. | |
virtual Scatterer * | CreateCopy () const=0 |
so-called Virtual copy constructor, needed to make copies of arrays of Scatterers. More... | |
virtual const string & | GetClassName () const |
Name for this class ("RefinableObj", "Crystal",...). This is only useful to distinguish different classes when picking up objects from the RefinableObj Global Registry. | |
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. More... | |
virtual string | GetComponentName (const int i) const=0 |
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.
| |
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). More... | |
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). More... | |
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 bool noSymmetrics=false) const=0 |
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. | |
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=0 |
const RefinableObjClock & | GetClockScatterer () const |
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 ? | |
Protected Methods | |
virtual void | InitRefParList ()=0 |
Prepare refinable parameters for the scatterer object. More... | |
virtual void | InitRGBColour () |
Get RGB Colour coordinates from Colour Name. More... | |
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. More... | |
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). It cannot be const since some scatterers may want to modify the list of scattering powers of the crystal... |
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.
|
so-called Virtual copy constructor, needed to make copies of arrays of Scatterers.
For internal use only.
Reimplemented in ObjCryst::Atom, ObjCryst::ZScatterer, and ObjCryst::ZPolyhedron. |
|
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.
Reimplemented in ObjCryst::Atom, 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. Reimplemented in ObjCryst::Atom, and ObjCryst::ZScatterer. |
|
For internal use only. Create an OpenGL Display List of the scatterer. This should only be called by a Crystal object.
Reimplemented in ObjCryst::Atom, and ObjCryst::ZScatterer. |
|
Prepare refinable parameters for the scatterer object.
For internal use only.
Reimplemented in ObjCryst::Atom, 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 |
|
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. |
|
Last time the ScatteringComponentList was generated.
For internal use only.
|