FOX/ObjCryst++  1.10.X (development)
ObjCryst::RefParType Class Reference

class of refinable parameter types. More...

+ Collaboration diagram for ObjCryst::RefParType:

Public Member Functions

 RefParType (const string &name)
 Create a top parameter type. More...
 
 RefParType (const RefParType *parent, const string &name)
 create a children type.
 
 ~RefParType ()
 Destructor.
 
bool IsDescendantFromOrSameAs (const RefParType *type) const
 Returns true if the parameter is a descendant of 'type'.
 
bool operator== (const RefParType *parent) const
 returns true if the two types are the same.
 
const string & GetName () const
 Get the name for this parameter.
 

Private Member Functions

void InitId ()
 Get a Unique id (RefParType::mId)
 

Private Attributes

const RefParTypempParent
 the parent for this RefParType (we could easily allow several...)
 
const string mName
 The name/description for this parameter type.
 
unsigned long mId
 The unique number identifying this type.
 

Detailed Description

class of refinable parameter types.

This is used to categorize all parameters, to be able to modify a complete category of parameters (fix/unfix, set limits,...). The types are organized as a tree.

Parameters should be allocated globally in the heap, so we only use pointers in the interface.

Note
when modifying (fixing, changing limits) for a given RefParType (ie a 'family' of parameters), it affects all RefinablePar of this type and the parameters belonging to the children of this RefParType. eg fixing for the type "gpRefParTypeScatt" will fix all the derived postionnal, orientationnal, and population parameters for the scatterers.
Remarks
In the future, why not use a tree with multiple inheritance ?? It would be easy to allow multiple parents... But beware of loops...

Definition at line 78 of file RefinableObj.h.

Constructor & Destructor Documentation

ObjCryst::RefParType::RefParType ( const string &  name)

Create a top parameter type.

(in ObjCryst, there is only one, the "ObjCryst" category.

Definition at line 42 of file RefinableObj.cpp.


The documentation for this class was generated from the following files: