12#include "MantidGeometry/DllConfig.h"
91 std::shared_ptr<CSGObject> createShape(Poco::XML::Element *pElem);
92 std::shared_ptr<CSGObject> createShape(std::string shapeXML,
bool addTypeTag =
true);
94 static std::shared_ptr<CSGObject> createSphere(
const Kernel::V3D ¢re,
double radius);
95 static std::shared_ptr<CSGObject> createHexahedralShape(
double xlb,
double xlf,
double xrf,
double xrb,
double ylb,
96 double ylf,
double yrf,
double yrb);
104 static std::string sphereAlgebra(
const int surfaceID);
105 std::string parseSphere(Poco::XML::Element *pElem, std::map<
int, std::shared_ptr<Surface>> &prim,
int &l_id);
106 std::string parseInfinitePlane(Poco::XML::Element *pElem, std::map<
int, std::shared_ptr<Surface>> &prim,
int &l_id);
107 std::string parseInfiniteCylinder(Poco::XML::Element *pElem, std::map<
int, std::shared_ptr<Surface>> &prim,
109 std::string parseCylinder(Poco::XML::Element *pElem, std::map<
int, std::shared_ptr<Surface>> &prim,
int &l_id);
110 std::string parseHollowCylinder(Poco::XML::Element *pElem, std::map<
int, std::shared_ptr<Surface>> &prim,
int &l_id);
113 std::string parseCuboid(Poco::XML::Element *pElem, std::map<
int, std::shared_ptr<Surface>> &prim,
int &l_id);
114 std::string parseInfiniteCone(Poco::XML::Element *pElem, std::map<
int, std::shared_ptr<Surface>> &prim,
int &l_id);
115 std::string parseCone(Poco::XML::Element *pElem, std::map<
int, std::shared_ptr<Surface>> &prim,
int &l_id);
117 static std::string parseHexahedronFromStruct(
const Hexahedron &hex, std::map<
int, std::shared_ptr<Surface>> &prim,
119 Hexahedron parseHexahedron(Poco::XML::Element *pElem);
120 std::string parseHexahedron(Poco::XML::Element *pElem, std::map<
int, std::shared_ptr<Surface>> &prim,
int &l_id);
121 std::string parseTaperedGuide(Poco::XML::Element *pElem, std::map<
int, std::shared_ptr<Surface>> &prim,
int &l_id);
122 std::string parseTorus(Poco::XML::Element *pElem, std::map<
int, std::shared_ptr<Surface>> &prim,
int &l_id);
123 std::string parseSliceOfCylinderRing(Poco::XML::Element *pElem, std::map<
int, std::shared_ptr<Surface>> &prim,
126 Poco::XML::Element *getShapeElement(Poco::XML::Element *pElem,
const std::string &name);
127 Poco::XML::Element *getOptionalShapeElement(Poco::XML::Element *pElem,
const std::string &name);
128 double getDoubleAttribute(Poco::XML::Element *pElem,
const std::string &name);
129 Kernel::V3D parsePosition(Poco::XML::Element *pElem);
130 void createGeometryHandler(Poco::XML::Element *,
const std::shared_ptr<CSGObject> &);
Class originally intended to be used with the DataHandling 'LoadInstrument' algorithm.
void rotate(const Matrix< double > &) noexcept
Rotate a point by a matrix.
Helper class which provides the Collimation Length for SANS instruments.
void rotatePoints(const std::vector< double > &rotationMatrix)
void rotatePoints(const std::vector< double > &rotationMatrix)