Mantid
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Typedefs | Functions
SpaceGroupFactory.h File Reference
#include "MantidGeometry/Crystal/SpaceGroup.h"
#include "MantidGeometry/DllConfig.h"
#include "MantidKernel/RegistrationHelper.h"
#include "MantidKernel/SingletonHolder.h"
#include <map>

Go to the source code of this file.

Classes

class  Mantid::Geometry::AbstractSpaceGroupGenerator
 AbstractSpaceGroupGenerator is used by SpaceGroupFactory to delay (possibly costly) construction of space group prototype objects until they are actually requested. More...
 
class  Mantid::Geometry::AlgorithmicSpaceGroupGenerator
 Concrete space group generator that uses space group generators as given in ITA. More...
 
class  Mantid::Geometry::SpaceGroupFactoryImpl
 
class  Mantid::Geometry::TabulatedSpaceGroupGenerator
 Concrete space group generator that constructs space groups from a list of symmetry operations with no further computations. More...
 
class  Mantid::Geometry::TransformationSpaceGroupGenerator
 Concrete generator that generates a space group from another space group using a transformation. More...
 

Namespaces

namespace  Mantid
 Helper class which provides the Collimation Length for SANS instruments.
 
namespace  Mantid::Geometry
 
namespace  Mantid::Kernel
 

Macros

#define DECLARE_GENERATED_SPACE_GROUP(number, hmSymbol, generators)
 
#define DECLARE_ORTHORHOMBIC_SPACE_GROUP(number, hmSymbol, generators)
 
#define DECLARE_TABULATED_SPACE_GROUP(number, hmSymbol, symmetryOperations)
 
#define DECLARE_TRANSFORMED_ORTHORHOMBIC_SPACE_GROUP(number, hmSymbol, generators)
 
#define DECLARE_TRANSFORMED_SPACE_GROUP(number, hmSymbol, generators)
 
#define SPGF_CONCAT(x, y)   SPGF_CONCAT_IMPL(x, y)
 
#define SPGF_CONCAT_IMPL(x, y)   x##y
 

Typedefs

using Mantid::Geometry::AbstractSpaceGroupGenerator_sptr = std::shared_ptr< AbstractSpaceGroupGenerator >
 
using Mantid::Geometry::SpaceGroupFactory = Mantid::Kernel::SingletonHolder< SpaceGroupFactoryImpl >
 

Functions

bool MANTID_GEOMETRY_DLL Mantid::Geometry::isValidGeneratorString (const std::string &generatorString)
 Free function that tries to parse the given list of symmetry operations and returns true if successfull. More...
 
std::vector< std::string > MANTID_GEOMETRY_DLL Mantid::Geometry::operator* (const SymmetryOperation &symOp, const std::vector< std::string > &strings)
 Transform a vector of strings using a symmetry operation. More...
 

Macro Definition Documentation

◆ DECLARE_GENERATED_SPACE_GROUP

#define DECLARE_GENERATED_SPACE_GROUP (   number,
  hmSymbol,
  generators 
)
Value:
namespace { \
Mantid::Kernel::RegistrationHelper SPGF_CONCAT(register_spacegroup_, __COUNTER__)( \
((Mantid::Geometry::SpaceGroupFactory::Instance().subscribeGeneratedSpaceGroup(number, hmSymbol, generators)), \
0)); \
}
#define SPGF_CONCAT(x, y)
This class is simply used in the subscription of classes into the various factories in Mantid.
static T & Instance()
Return a reference to the Singleton instance, creating it if it does not already exist Creation is do...

Definition at line 252 of file SpaceGroupFactory.h.

◆ DECLARE_ORTHORHOMBIC_SPACE_GROUP

#define DECLARE_ORTHORHOMBIC_SPACE_GROUP (   number,
  hmSymbol,
  generators 
)
Value:
namespace { \
Mantid::Kernel::RegistrationHelper SPGF_CONCAT(register_spacegroup_, __COUNTER__)( \
.subscribeOrthorhombicSpaceGroup<AlgorithmicSpaceGroupGenerator>(number, hmSymbol, generators)), \
0)); \
}

Definition at line 275 of file SpaceGroupFactory.h.

◆ DECLARE_TABULATED_SPACE_GROUP

#define DECLARE_TABULATED_SPACE_GROUP (   number,
  hmSymbol,
  symmetryOperations 
)
Value:
namespace { \
Mantid::Kernel::RegistrationHelper SPGF_CONCAT(register_spacegroup_, __COUNTER__)( \
((Mantid::Geometry::SpaceGroupFactory::Instance().subscribeTabulatedSpaceGroup(number, hmSymbol, \
symmetryOperations)), \
0)); \
}

Definition at line 267 of file SpaceGroupFactory.h.

◆ DECLARE_TRANSFORMED_ORTHORHOMBIC_SPACE_GROUP

#define DECLARE_TRANSFORMED_ORTHORHOMBIC_SPACE_GROUP (   number,
  hmSymbol,
  generators 
)
Value:
namespace { \
Mantid::Kernel::RegistrationHelper SPGF_CONCAT(register_spacegroup_, __COUNTER__)( \
.subscribeOrthorhombicSpaceGroup<TransformationSpaceGroupGenerator>(number, hmSymbol, generators)), \
0)); \
}

Definition at line 283 of file SpaceGroupFactory.h.

◆ DECLARE_TRANSFORMED_SPACE_GROUP

#define DECLARE_TRANSFORMED_SPACE_GROUP (   number,
  hmSymbol,
  generators 
)
Value:
namespace { \
Mantid::Kernel::RegistrationHelper SPGF_CONCAT(register_spacegroup_, __COUNTER__)( \
((Mantid::Geometry::SpaceGroupFactory::Instance().subscribeUsingGenerator<TransformationSpaceGroupGenerator>( \
number, hmSymbol, generators)), \
0)); \
}

Definition at line 259 of file SpaceGroupFactory.h.

◆ SPGF_CONCAT

#define SPGF_CONCAT (   x,
 
)    SPGF_CONCAT_IMPL(x, y)

Definition at line 250 of file SpaceGroupFactory.h.

◆ SPGF_CONCAT_IMPL

#define SPGF_CONCAT_IMPL (   x,
 
)    x##y

Definition at line 249 of file SpaceGroupFactory.h.