Mantid
|
Compemented Grup. More...
#include <Rules.h>
Public Member Functions | |
std::string | className () const override |
Returns class name as string. More... | |
std::unique_ptr< CompGrp > | clone () const |
Clone of this. More... | |
CompGrp ()=default | |
CompGrp (Rule *, std::unique_ptr< Rule >) | |
Constructor to build parent and complent tree. More... | |
std::string | display () const override |
Displays the object as #number. More... | |
std::string | displayAddress () const override |
Returns the memory address as a string. More... | |
Rule * | findKey (const int i) override |
This is a complementary object and we dont search into CompGrps. More... | |
int | findLeaf (const Rule *) const override |
Check to see if this is a copy of a given Rule. More... | |
void | getBoundingBox (double &xmax, double &ymax, double &zmax, double &xmin, double &ymin, double &zmin) override |
gets the bounding box for the complement of the group More... | |
int | isComplementary () const override |
Always returns true (1) More... | |
bool | isValid (const Kernel::V3D &) const override |
Determines if a point is valid. More... | |
bool | isValid (const std::map< int, int > &) const override |
Determines if a point is valid. More... | |
Rule * | leaf (const int) const override |
selects leaf component More... | |
void | setLeaf (std::unique_ptr< Rule > nR, const int side=0) override |
Replaces a leaf with a rule. More... | |
void | setLeaves (std::unique_ptr< Rule >, std::unique_ptr< Rule >) override |
Replaces a leaf with a rule. More... | |
int | simplify () override |
Impossible to simplify a simple rule leaf. More... | |
int | type () const override |
Is it a branched object. More... | |
Public Member Functions inherited from Mantid::Geometry::Rule | |
int | checkParents () const |
Debug test for parents. More... | |
virtual std::string | className () const |
Returns class name as string. More... | |
std::unique_ptr< Rule > | clone () const |
int | commonType () const |
Gets a common type. More... | |
virtual std::string | display () const =0 |
Abstract Display. More... | |
virtual std::string | displayAddress () const =0 |
Abstract Display Address. More... | |
int | Eliminate () |
elimination not written More... | |
virtual Rule * | findKey (const int)=0 |
Abstract key find. More... | |
virtual int | findLeaf (const Rule *) const =0 |
Abstract find. More... | |
virtual void | getBoundingBox (double &xmax, double &ymax, double &zmax, double &xmin, double &ymin, double &zmin)=0 |
Abstract getBoundingBox. More... | |
int | getKeyList (std::vector< int > &) const |
Generate the key list given an insertion type object. More... | |
Rule * | getParent () const |
Returns the parent object. More... | |
virtual int | isComplementary () const |
Always returns false (0) More... | |
virtual bool | isValid (const Kernel::V3D &) const =0 |
Abstract: The point is within the object. More... | |
virtual bool | isValid (const std::map< int, int > &) const =0 |
Abstract Validity based on surface true/false map. More... | |
virtual Rule * | leaf (const int=0) const |
No leaf for a base rule. More... | |
void | makeParents () |
This is initialisation code that populates all the parents in the rule tree. More... | |
Rule () | |
Standard Constructor. More... | |
Rule (Rule *) | |
Constructor copies. More... | |
virtual void | setLeaf (std::unique_ptr< Rule >, const int=0)=0 |
Abstract set. More... | |
virtual void | setLeaves (std::unique_ptr< Rule >, std::unique_ptr< Rule >)=0 |
abstract set leaves More... | |
void | setParent (Rule *) |
Sets the parent object (not check for A==this) More... | |
virtual int | simplify ()=0 |
Abstract: Can the rule be simplified. More... | |
int | substituteSurf (const int SurfN, const int newSurfN, const std::shared_ptr< Surface > &SPtr) |
Substitues a surface item if within a rule. More... | |
virtual int | type () const |
Null rule. More... | |
virtual | ~Rule ()=default |
Protected Member Functions | |
CompGrp (const CompGrp &) | |
Standard copy constructor. More... | |
CompGrp & | operator= (const CompGrp &) |
Standard assignment operator. More... | |
Protected Member Functions inherited from Mantid::Geometry::Rule | |
Rule & | operator= (const Rule &) |
Assignment operator= does not set parent as Rules are cloned. More... | |
Rule (const Rule &) | |
Constructor copies. More... | |
Private Member Functions | |
CompGrp * | doClone () const override |
Clone of this. More... | |
Private Attributes | |
std::unique_ptr< Rule > | A |
The rule. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from Mantid::Geometry::Rule | |
static int | makeCNF (std::unique_ptr< Rule > &) |
Make Rule into a CNF format. More... | |
static int | makeCNFcopy (std::unique_ptr< Rule > &) |
Make Rule into a CNF format (slow) More... | |
static int | makeFullDNF (std::unique_ptr< Rule > &) |
Make Rule into a full DNF format. More... | |
static int | removeComplementary (std::unique_ptr< Rule > &) |
NOT WORKING. More... | |
static int | removeItem (std::unique_ptr< Rule > &TRule, const int SurfN) |
Given an item as a surface name, remove the surface from the Rule tree. More... | |
Compemented Grup.
This class holds a complement object of a single object group. Care must be taken to avoid a cyclic loop
|
protected |
Standard copy constructor.
Cother | :: CompGrp to copy |
Definition at line 1346 of file RuleItems.cpp.
References A.
|
default |
Referenced by doClone().
Constructor to build parent and complent tree.
Parent | :: Rule that is the parent to this |
Cx | :: Complementary object below |
Definition at line 1334 of file RuleItems.cpp.
References A.
|
inlineoverridevirtual |
Returns class name as string.
Reimplemented from Mantid::Geometry::Rule.
std::unique_ptr< CompGrp > Mantid::Geometry::CompGrp::clone | ( | ) | const |
Clone of this.
Definition at line 1385 of file RuleItems.cpp.
References doClone().
|
overridevirtual |
Displays the object as #number.
Implements Mantid::Geometry::Rule.
Definition at line 1485 of file RuleItems.cpp.
References A.
|
overridevirtual |
Returns the memory address as a string.
Implements Mantid::Geometry::Rule.
Definition at line 1497 of file RuleItems.cpp.
References A.
|
overrideprivatevirtual |
Clone of this.
Implements Mantid::Geometry::Rule.
Definition at line 1376 of file RuleItems.cpp.
References CompGrp().
Referenced by clone().
|
overridevirtual |
This is a complementary object and we dont search into CompGrps.
If that is needed then the CompGrp should be removed first
i | :: Null index key |
Implements Mantid::Geometry::Rule.
Definition at line 1422 of file RuleItems.cpp.
|
overridevirtual |
Check to see if this is a copy of a given Rule.
R | :: Rule Ptr to find |
0 | on success -ve on failuire |
Implements Mantid::Geometry::Rule.
Definition at line 1435 of file RuleItems.cpp.
|
overridevirtual |
gets the bounding box for the complement of the group
xmax | :: Maximum value for the bounding box in x direction |
ymax | :: Maximum value for the bounding box in y direction |
zmax | :: Maximum value for the bounding box in z direction |
xmin | :: Minimum value for the bounding box in x direction |
ymin | :: Minimum value for the bounding box in y direction |
zmin | :: Minimum value for the bounding box in z direction |
To calculate the bounding box is formed by the all the points in input box that are not in group bounding box and all the points in group bounding box that are in the input box
Implements Mantid::Geometry::Rule.
Definition at line 1523 of file RuleItems.cpp.
References A.
|
inlineoverridevirtual |
Always returns true (1)
Reimplemented from Mantid::Geometry::Rule.
|
overridevirtual |
Determines if a point is valid.
Checks to see if the point is valid in the object and returns ture if it is not valid. Note the complementary reverse in the test.
Pt | :: Point to test |
not | valid in the object |
true | is no object is set |
Implements Mantid::Geometry::Rule.
Definition at line 1445 of file RuleItems.cpp.
|
overridevirtual |
Determines if a point is valid.
SMap | :: map of surface number and true values |
Implements Mantid::Geometry::Rule.
Definition at line 1462 of file RuleItems.cpp.
|
inlineoverridevirtual |
selects leaf component
Reimplemented from Mantid::Geometry::Rule.
Standard assignment operator.
Cother | :: CompGrp to copy |
Definition at line 1359 of file RuleItems.cpp.
References A, and Mantid::Geometry::Rule::operator=().
|
overridevirtual |
Replaces a leaf with a rule.
No deletion is carried out
nR | :: new rule |
side | :: side to use |
Implements Mantid::Geometry::Rule.
Definition at line 1394 of file RuleItems.cpp.
References A.
|
overridevirtual |
Replaces a leaf with a rule.
No deletion is carried out but sets the parents.
aR | :: new rule |
oR | :: Null other rule |
Implements Mantid::Geometry::Rule.
Definition at line 1408 of file RuleItems.cpp.
References A.
|
overridevirtual |
Impossible to simplify a simple rule leaf.
Therefore returns 0
Implements Mantid::Geometry::Rule.
Definition at line 1475 of file RuleItems.cpp.
|
inlineoverridevirtual |
Is it a branched object.
Reimplemented from Mantid::Geometry::Rule.
|
private |
The rule.
Definition at line 317 of file Rules.h.
Referenced by CompGrp(), display(), displayAddress(), getBoundingBox(), operator=(), setLeaf(), and setLeaves().