48 std::shared_ptr<const std::unordered_map<Geometry::IComponent const *, size_t>>
m_compIDToIndex;
51 std::shared_ptr<std::vector<std::shared_ptr<const Geometry::IObject>>>
m_shapes;
54 const bool excludeMonitors =
false)
const;
61 const bool excludeMonitors =
false)
const;
73 ComponentInfo(std::unique_ptr<Beamline::ComponentInfo> componentInfo,
74 std::shared_ptr<
const std::vector<Mantid::Geometry::IComponent *>> componentIds,
75 std::shared_ptr<
const std::unordered_map<Geometry::IComponent const *, size_t>> componentIdToIndexMap,
76 std::shared_ptr<std::vector<std::shared_ptr<const Geometry::IObject>>> shapes);
80 std::unique_ptr<ComponentInfo> cloneWithoutDetectorInfo()
const;
81 std::vector<size_t> detectorsInSubtree(
size_t componentIndex)
const;
82 std::vector<size_t> componentsInSubtree(
size_t componentIndex)
const;
83 const std::vector<size_t> &children(
size_t componentIndex)
const;
87 size_t indexOfAny(
const std::string &
name)
const;
88 bool uniqueName(
const std::string &
name)
const;
89 bool isDetector(
const size_t componentIndex)
const;
94 Kernel::V3D relativePosition(
const size_t componentIndex)
const;
95 Kernel::Quat relativeRotation(
const size_t componentIndex)
const;
100 void scaleComponent(
const size_t componentIndex,
const Kernel::V3D &newScaling);
101 void scaleComponent(
const std::pair<size_t, size_t> &
index,
const Kernel::V3D &newScaling);
102 size_t parent(
const size_t componentIndex)
const;
103 bool hasParent(
const size_t componentIndex)
const;
104 bool hasDetectorInfo()
const;
107 bool hasSource()
const;
109 bool hasSample()
const;
111 bool hasDetectors(
const size_t componentIndex)
const;
112 size_t source()
const;
113 size_t sample()
const;
115 Kernel::V3D scaleFactor(
const size_t componentIndex)
const;
116 const std::string &
name(
const size_t componentIndex)
const;
117 void setScaleFactor(
const size_t componentIndex,
const Kernel::V3D &scaleFactor);
121 return m_componentIds->operator[](componentIndex);
123 bool hasValidShape(
const size_t componentIndex)
const;
129 const bool excludeMonitors =
false)
const;
130 Beamline::ComponentType componentType(
const size_t componentIndex)
const;
131 void setScanInterval(
const std::pair<Types::Core::DateAndTime, Types::Core::DateAndTime> &interval);
132 size_t scanCount()
const;