128 bool doesOverlap(
double phiStart,
double phiEnd)
const;
240 orientation(0) * orientation(0) + orientation(1) * orientation(1)
241 + orientation(2) * orientation(2));
std::vector< RingSection * > RingSectionList
static double magnitude(const Vector_t< double, 3 > &v)
Interface for a single beam element.
Component placement handler in ring geometry.
void setComponentOrientation(Vector_t< double, 3 > orientation)
Set the rotation for the component relative to the section start.
Vector_t< double, 3 > getStartPosition() const
Get a position on the plane of the section start.
RingSection & operator=(const RingSection &sec)
Vector_t< double, 3 > componentOrientation_m
void rotateToCyclCoordinates(Vector_t< double, 3 > &vec) const
void setEndPosition(Vector_t< double, 3 > pos)
Set a position on the section end plane.
Vector_t< double, 3 > getEndPosition() const
Get a position on the section end plane.
void setComponent(Component *component)
Set the component wrapped by RingSection.
bool getFieldValue(const Vector_t< double, 3 > &pos, const Vector_t< double, 3 > ¢roid, const double &t, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B) const
Return field value in global coordinate system.
Vector_t< double, 3 > & normalise(Vector_t< double, 3 > &vector) const
void setStartNormal(Vector_t< double, 3 > orientation)
Set the normal vector to the section start plane.
Vector_t< double, 3 > getEndNormal() const
Get the normal vector to the section end plane.
void setComponentPosition(Vector_t< double, 3 > position)
Set the displacement for the component relative to the section start.
Vector_t< double, 3 > getStartNormal() const
Get the normal vector to the section start plane.
std::vector< Vector_t< double, 3 > > getVirtualBoundingBox() const
Get the "Virtual" bounding box for the RingSection.
Component * getComponent() const
Get the component wrapped by RingSection.
void rotateToTCoordinates(Vector_t< double, 3 > &vec) const
bool isOnOrPastStartPlane(const Vector_t< double, 3 > &pos) const
Return true if pos is on or past start plane.
bool doesOverlap(double phiStart, double phiEnd) const
Return true if the phi range overlaps bounding box elements.
Vector_t< double, 3 > endPosition_m
void updateComponentOrientation()
void setEndNormal(Vector_t< double, 3 > orientation)
Set the normal vector to the section end plane
Vector_t< double, 3 > startOrientation_m
void setStartPosition(Vector_t< double, 3 > pos)
Set a position on the plane of the section start.
void rotate_back(Vector_t< double, 3 > &vector) const
Vector_t< double, 3 > componentPosition_m
bool isPastEndPlane(const Vector_t< double, 3 > &pos) const
Return true if pos is past end plane.
void rotate(Vector_t< double, 3 > &vector) const
Vector_t< double, 3 > startPosition_m
Vector_t< double, 3 > endOrientation_m
Vector_t< double, 3 > getComponentOrientation() const
Get the rotation for the component relative to the section start.
Vector_t< double, 3 > getComponentPosition() const
Get the displacement for the component relative to the section start.
RingSection()
Construct a ring section - positions, orientations etc default to 0.
~RingSection()
Destructor - does nothing.