Mantid
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
Mantid::Geometry::CompObj Class Reference

Compemented Object. More...

#include <Rules.h>

Inheritance diagram for Mantid::Geometry::CompObj:
Mantid::Geometry::Rule

Public Member Functions

std::string className () const override
 Returns class name as string. More...
 
std::unique_ptr< CompObjclone () const
 Clone of this. More...
 
 CompObj ()
 Constructor. 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...
 
RulefindKey (const int i) override
 This is a complementary object and we dont search into CompObjs. 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 Complementary of the object More...
 
CSGObjectgetObj () const
 Get Object Ptr. More...
 
int getObjN () const
 Get object number of component. 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...
 
void setLeaf (std::unique_ptr< Rule >, const int=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...
 
void setObj (CSGObject *)
 Set a Object state. More...
 
void setObjN (const int Ky)
 set object Number 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< Ruleclone () 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 RulefindKey (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...
 
RulegetParent () 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 Ruleleaf (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

 CompObj (const CompObj &)=default
 
CompObjoperator= (const CompObj &)=default
 
- Protected Member Functions inherited from Mantid::Geometry::Rule
Ruleoperator= (const Rule &)
 Assignment operator= does not set parent as Rules are cloned. More...
 
 Rule (const Rule &)
 Constructor copies. More...
 

Private Member Functions

CompObjdoClone () const override
 Clone of this. More...
 

Private Attributes

CSGObjectkey
 Object Pointer. More...
 
int objN
 Object number. 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...
 

Detailed Description

Compemented Object.

Author
S.Ansell
Version
1.0
Date
January 2006

This class holds a complement object of a single object group. Care must be taken to avoid a cyclic loop

Definition at line 262 of file Rules.h.

Constructor & Destructor Documentation

◆ CompObj() [1/2]

Mantid::Geometry::CompObj::CompObj ( const CompObj )
protecteddefault

◆ CompObj() [2/2]

Mantid::Geometry::CompObj::CompObj ( )

Constructor.

Definition at line 931 of file RuleItems.cpp.

Referenced by doClone().

Member Function Documentation

◆ className()

std::string Mantid::Geometry::CompObj::className ( ) const
inlineoverridevirtual

Returns class name as string.

Reimplemented from Mantid::Geometry::Rule.

Definition at line 275 of file Rules.h.

◆ clone()

std::unique_ptr< CompObj > Mantid::Geometry::CompObj::clone ( ) const

Clone of this.

Returns
new copy of this

Definition at line 947 of file RuleItems.cpp.

References doClone().

◆ display()

std::string Mantid::Geometry::CompObj::display ( ) const
overridevirtual

Displays the object as #number.

Returns
string component

Implements Mantid::Geometry::Rule.

Definition at line 1061 of file RuleItems.cpp.

References objN.

◆ displayAddress()

std::string Mantid::Geometry::CompObj::displayAddress ( ) const
overridevirtual

Returns the memory address as a string.

Returns
memory address as string

Implements Mantid::Geometry::Rule.

Definition at line 1072 of file RuleItems.cpp.

◆ doClone()

CompObj * Mantid::Geometry::CompObj::doClone ( ) const
overrideprivatevirtual

Clone of this.

Returns
new copy of this

Implements Mantid::Geometry::Rule.

Definition at line 938 of file RuleItems.cpp.

References CompObj().

Referenced by clone().

◆ findKey()

Rule * Mantid::Geometry::CompObj::findKey ( const int  i)
overridevirtual

This is a complementary object and we dont search into CompObjs.

If that is needed then the CompObj should be removed first

Parameters
i:: Null index key
Returns
0

Implements Mantid::Geometry::Rule.

Definition at line 1003 of file RuleItems.cpp.

◆ findLeaf()

int Mantid::Geometry::CompObj::findLeaf ( const Rule A) const
overridevirtual

Check to see if this is a copy of a given Rule.

Parameters
A:: Rule Ptr to find
Return values
0on success -ve on failuire

Implements Mantid::Geometry::Rule.

Definition at line 1016 of file RuleItems.cpp.

◆ getBoundingBox()

void Mantid::Geometry::CompObj::getBoundingBox ( double &  xmax,
double &  ymax,
double &  zmax,
double &  xmin,
double &  ymin,
double &  zmin 
)
overridevirtual

gets the bounding box for the Complementary of the object

Parameters
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 object bounding box and all the points in object bounding box that are in the input box

Implements Mantid::Geometry::Rule.

Definition at line 1093 of file RuleItems.cpp.

References Mantid::Geometry::CSGObject::getBoundingBox(), and key.

◆ getObj()

CSGObject * Mantid::Geometry::CompObj::getObj ( ) const
inline

Get Object Ptr.

Definition at line 293 of file Rules.h.

◆ getObjN()

int Mantid::Geometry::CompObj::getObjN ( ) const
inline

Get object number of component.

Definition at line 290 of file Rules.h.

◆ isComplementary()

int Mantid::Geometry::CompObj::isComplementary ( ) const
inlineoverridevirtual

Always returns true (1)

Reimplemented from Mantid::Geometry::Rule.

Definition at line 283 of file Rules.h.

◆ isValid() [1/2]

bool Mantid::Geometry::CompObj::isValid ( const Kernel::V3D Pt) const
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.

Parameters
Pt:: Point to test
Return values
notvalid in the object
trueis no object is set

Implements Mantid::Geometry::Rule.

Definition at line 1026 of file RuleItems.cpp.

◆ isValid() [2/2]

bool Mantid::Geometry::CompObj::isValid ( const std::map< int, int > &  SMap) const
overridevirtual

Determines if a point is valid.

Parameters
SMap:: map of surface number and true values
Returns
:: status

Implements Mantid::Geometry::Rule.

Definition at line 1041 of file RuleItems.cpp.

◆ operator=()

CompObj & Mantid::Geometry::CompObj::operator= ( const CompObj )
protecteddefault

◆ setLeaf()

void Mantid::Geometry::CompObj::setLeaf ( std::unique_ptr< Rule aR,
const int  = 0 
)
overridevirtual

Replaces a leaf with a rule.

This REQUIRES that aR is of type SurfPoint

Parameters
aR:: new rule
:Null side point

Implements Mantid::Geometry::Rule.

Definition at line 974 of file RuleItems.cpp.

◆ setLeaves()

void Mantid::Geometry::CompObj::setLeaves ( std::unique_ptr< Rule aR,
std::unique_ptr< Rule oR 
)
overridevirtual

Replaces a leaf with a rule.

This REQUIRES that aR is of type CompObj

Parameters
aR:: new rule
oR:: Null other rule

Implements Mantid::Geometry::Rule.

Definition at line 988 of file RuleItems.cpp.

◆ setObj()

void Mantid::Geometry::CompObj::setObj ( CSGObject val)

Set a Object state.

Sets the object.

Parameters
val:: Object value

Definition at line 965 of file RuleItems.cpp.

References key.

◆ setObjN()

void Mantid::Geometry::CompObj::setObjN ( const int  Ky)

set object Number

Sets the object Number.

Parameters
Ky:: key value

Definition at line 956 of file RuleItems.cpp.

References objN.

◆ simplify()

int Mantid::Geometry::CompObj::simplify ( )
overridevirtual

Impossible to simplify a simple rule leaf.

Therefore returns 0

Returns
0

Implements Mantid::Geometry::Rule.

Definition at line 1051 of file RuleItems.cpp.

◆ type()

int Mantid::Geometry::CompObj::type ( ) const
inlineoverridevirtual

Is it a branched object.

Reimplemented from Mantid::Geometry::Rule.

Definition at line 282 of file Rules.h.

Member Data Documentation

◆ key

CSGObject* Mantid::Geometry::CompObj::key
private

Object Pointer.

Definition at line 265 of file Rules.h.

Referenced by getBoundingBox(), and setObj().

◆ objN

int Mantid::Geometry::CompObj::objN
private

Object number.

Definition at line 264 of file Rules.h.

Referenced by display(), and setObjN().


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