#include <DetDesc/ISolid.h>
Inheritance diagram for ISolid:
Public Types | |
typedef double | Tick |
useful type definition for dealing with intersections of the solid and the line | |
typedef StaticArray< Tick, 64 > | Ticks |
SUCCESS | |
NO_INTERFACE | |
VERSMISMATCH | |
LAST_ERROR | |
enum | Status |
Public Member Functions | |
virtual const std::string & | name () const =0 |
retrieve the specific name of the solid object | |
virtual std::string | typeName () const =0 |
retrieve the specific type of the solid object | |
virtual bool | isInside (const Gaudi::XYZPoint &point) const =0 |
check for the given 3D-point. | |
virtual bool | isInside (const Gaudi::Polar3DPoint &point) const =0 |
virtual bool | isInside (const Gaudi::RhoZPhiPoint &point) const =0 |
virtual const ISolid * | cover () const =0 |
retrieve the pointer to "simplified" solid. | |
virtual const ISolid * | coverTop () const =0 |
retrieve the pointer to "the most simplified cover", ideally to something like "the bounding box" | |
virtual std::ostream & | printOut (std::ostream &os=std::cout) const =0 |
printout to STD/STL stream | |
virtual MsgStream & | printOut (MsgStream &os) const =0 |
printout to Gaudi stream | |
virtual ISolid * | reset ()=0 |
reset solid to its inititial state, remove all auxillary data fields and pointers. | |
virtual unsigned int | intersectionTicks (const Gaudi::XYZPoint &Point, const Gaudi::XYZVector &Vector, Ticks &ticks) const =0 |
calculate the intersection points("ticks") of the solid objects with given line. | |
virtual unsigned int | intersectionTicks (const Gaudi::Polar3DPoint &Point, const Gaudi::Polar3DVector &Vector, Ticks &ticks) const =0 |
virtual unsigned int | intersectionTicks (const Gaudi::RhoZPhiPoint &Point, const Gaudi::RhoZPhiVector &Vector, Ticks &ticks) const =0 |
virtual unsigned int | intersectionTicks (const Gaudi::XYZPoint &Point, const Gaudi::XYZVector &Vector, const Tick &tickMin, const Tick &tickMax, Ticks &ticks) const =0 |
calculate the intersection points("ticks") of the solid objects with given line. | |
virtual unsigned int | intersectionTicks (const Gaudi::Polar3DPoint &Point, const Gaudi::Polar3DVector &Vector, const Tick &tickMin, const Tick &tickMax, Ticks &ticks) const =0 |
virtual unsigned int | intersectionTicks (const Gaudi::RhoZPhiPoint &Point, const Gaudi::RhoZPhiVector &Vector, const Tick &tickMin, const Tick &tickMax, Ticks &ticks) const =0 |
virtual Ticks::size_type | maxNumberOfTicks () const =0 |
Calculate the maximum number of ticks that a straight line could make with this solid. | |
virtual | ~ISolid () |
virtual destructor | |
virtual StatusCode | queryInterface (const InterfaceID &riid, void **ppvInterface)=0 |
virtual unsigned long | addRef ()=0 |
virtual unsigned long | release ()=0 |
Static Public Member Functions | |
static const InterfaceID & | interfaceID () |
retrieve the uninque interface identifier | |
Public Attributes | |
SUCCESS | |
NO_INTERFACE | |
VERSMISMATCH | |
LAST_ERROR |
Definition at line 28 of file ISolid.h.
typedef double ISolid::Tick |
typedef StaticArray<Tick,64> ISolid::Ticks |
virtual ISolid::~ISolid | ( | ) | [virtual] |
static const InterfaceID& ISolid::interfaceID | ( | ) | [inline, static] |
retrieve the uninque interface identifier
Reimplemented from IInterface.
Definition at line 44 of file ISolid.h.
00044 { return IID_ISolid; }
virtual const std::string& ISolid::name | ( | ) | const [pure virtual] |
retrieve the specific name of the solid object
Implemented in SolidBase.
virtual std::string ISolid::typeName | ( | ) | const [pure virtual] |
retrieve the specific type of the solid object
Implemented in SolidBoolean, SolidBox, SolidChild, SolidCons, SolidIntersection, SolidPolycone, SolidSphere, SolidSubtraction, SolidTrap, SolidTrd, SolidTubs, and SolidUnion.
virtual bool ISolid::isInside | ( | const Gaudi::XYZPoint & | point | ) | const [pure virtual] |
check for the given 3D-point.
Point coordinated are in the local reference frame of the solid.
point | point (in local reference system of the solid) |
Implemented in SolidBox, SolidChild, SolidCons, SolidIntersection, SolidPolycone, SolidPolyHedronHelper, SolidSphere, SolidSubtraction, SolidTubs, and SolidUnion.
virtual bool ISolid::isInside | ( | const Gaudi::Polar3DPoint & | point | ) | const [pure virtual] |
Implemented in SolidBox, SolidChild, SolidCons, SolidIntersection, SolidPolycone, SolidPolyHedronHelper, SolidSphere, SolidSubtraction, SolidTubs, and SolidUnion.
virtual bool ISolid::isInside | ( | const Gaudi::RhoZPhiPoint & | point | ) | const [pure virtual] |
Implemented in SolidBox, SolidChild, SolidCons, SolidIntersection, SolidPolycone, SolidPolyHedronHelper, SolidSphere, SolidSubtraction, SolidTubs, and SolidUnion.
virtual const ISolid* ISolid::cover | ( | ) | const [pure virtual] |
retrieve the pointer to "simplified" solid.
Implemented in SolidBoolean, SolidBox, SolidChild, SolidCons, SolidPolycone, SolidSphere, SolidTrap, SolidTrd, and SolidTubs.
virtual const ISolid* ISolid::coverTop | ( | ) | const [pure virtual] |
retrieve the pointer to "the most simplified cover", ideally to something like "the bounding box"
Implemented in SolidBase, SolidBoolean, SolidBox, SolidChild, and SolidUnion.
virtual std::ostream& ISolid::printOut | ( | std::ostream & | os = std::cout |
) | const [pure virtual] |
printout to STD/STL stream
os | STD/STL stream |
Implemented in SolidBase, SolidBoolean, SolidBox, SolidChild, SolidCons, SolidPolycone, SolidSphere, SolidTrap, SolidTrd, and SolidTubs.
printout to Gaudi stream
os | Gaudi stream |
Implemented in SolidBase, SolidBoolean, SolidBox, SolidChild, SolidCons, SolidPolycone, SolidSphere, SolidTrap, SolidTrd, and SolidTubs.
virtual ISolid* ISolid::reset | ( | ) | [pure virtual] |
reset solid to its inititial state, remove all auxillary data fields and pointers.
Implemented in SolidBase, SolidBoolean, and SolidChild.
virtual unsigned int ISolid::intersectionTicks | ( | const Gaudi::XYZPoint & | Point, | |
const Gaudi::XYZVector & | Vector, | |||
Ticks & | ticks | |||
) | const [pure virtual] |
calculate the intersection points("ticks") of the solid objects with given line.
Point | initial point for the line | |
Vector | vector along the line | |
ticks | output container of "Ticks" |
Implemented in SolidBase, SolidBoolean, SolidBox, SolidChild, SolidCons, SolidPolycone, SolidPolyHedronHelper, SolidSphere, and SolidTubs.
virtual unsigned int ISolid::intersectionTicks | ( | const Gaudi::Polar3DPoint & | Point, | |
const Gaudi::Polar3DVector & | Vector, | |||
Ticks & | ticks | |||
) | const [pure virtual] |
Implemented in SolidBase, SolidBoolean, SolidBox, SolidChild, SolidCons, SolidPolycone, SolidPolyHedronHelper, SolidSphere, and SolidTubs.
virtual unsigned int ISolid::intersectionTicks | ( | const Gaudi::RhoZPhiPoint & | Point, | |
const Gaudi::RhoZPhiVector & | Vector, | |||
Ticks & | ticks | |||
) | const [pure virtual] |
Implemented in SolidBase, SolidBoolean, SolidBox, SolidChild, SolidCons, SolidPolycone, SolidPolyHedronHelper, SolidSphere, and SolidTubs.
virtual unsigned int ISolid::intersectionTicks | ( | const Gaudi::XYZPoint & | Point, | |
const Gaudi::XYZVector & | Vector, | |||
const Tick & | tickMin, | |||
const Tick & | tickMax, | |||
Ticks & | ticks | |||
) | const [pure virtual] |
calculate the intersection points("ticks") of the solid objects with given line.
Point | initial point for the line | |
Vector | vector along the line | |
tickMin | minimum value of Tick | |
tickMax | maximu value of Tick | |
ticks | output container of "Ticks" |
Implemented in SolidBase, SolidBoolean, SolidBox, SolidCons, and SolidTubs.
virtual unsigned int ISolid::intersectionTicks | ( | const Gaudi::Polar3DPoint & | Point, | |
const Gaudi::Polar3DVector & | Vector, | |||
const Tick & | tickMin, | |||
const Tick & | tickMax, | |||
Ticks & | ticks | |||
) | const [pure virtual] |
Implemented in SolidBase, SolidBoolean, SolidBox, SolidCons, and SolidTubs.
virtual unsigned int ISolid::intersectionTicks | ( | const Gaudi::RhoZPhiPoint & | Point, | |
const Gaudi::RhoZPhiVector & | Vector, | |||
const Tick & | tickMin, | |||
const Tick & | tickMax, | |||
Ticks & | ticks | |||
) | const [pure virtual] |
Implemented in SolidBase, SolidBoolean, SolidBox, SolidCons, and SolidTubs.
virtual Ticks::size_type ISolid::maxNumberOfTicks | ( | ) | const [pure virtual] |
Calculate the maximum number of ticks that a straight line could make with this solid.
Implemented in SolidBoolean, SolidBox, SolidChild, SolidCons, SolidPolycone, SolidPolyHedronHelper, SolidSphere, and SolidTubs.