| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

ISolid Interface Reference

An abstract interface to any Solid object. More...

#include <DetDesc/ISolid.h>

Inheritance diagram for ISolid:

[legend]
Collaboration diagram for ISolid:
[legend]
List of all members.

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 ISolidcover () const =0
 retrieve the pointer to "simplified" solid.
virtual const ISolidcoverTop () 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 MsgStreamprintOut (MsgStream &os) const =0
 printout to Gaudi stream
virtual ISolidreset ()=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 InterfaceIDinterfaceID ()
 retrieve the uninque interface identifier

Public Attributes

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR

Detailed Description

An abstract interface to any Solid object.

Version:
3
Author:
Vanya Belyaev Ivan.Belyaev@itep.ru
Date:
xx/xx/xxxx

Definition at line 28 of file ISolid.h.


Member Typedef Documentation

typedef double ISolid::Tick

useful type definition for dealing with intersections of the solid and the line

Definition at line 35 of file ISolid.h.

typedef StaticArray<Tick,64> ISolid::Ticks

Definition at line 36 of file ISolid.h.


Constructor & Destructor Documentation

virtual ISolid::~ISolid (  )  [virtual]

virtual destructor

See also:
ISolid::reset()


Member Function Documentation

static const InterfaceID& ISolid::interfaceID (  )  [inline, static]

retrieve the uninque interface identifier

See also:
Interface::interfaceID()
Returns:
uniqie 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

Returns:
specific name of the solid

Implemented in SolidBase.

virtual std::string ISolid::typeName (  )  const [pure virtual]

retrieve the specific type of the solid object

Returns:
type of the solid

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.

Parameters:
point point (in local reference system of the solid)
Returns:
true if the point is inside 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.

See also:
ISolid::coverTop()
Returns:
pointer to "simplified" solid - "cover"

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"

See also:
ISolid::cover()
Returns:
pointer to the most simplified cover

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

Parameters:
os STD/STL stream
Returns:
reference to the stream

Implemented in SolidBase, SolidBoolean, SolidBox, SolidChild, SolidCons, SolidPolycone, SolidSphere, SolidTrap, SolidTrd, and SolidTubs.

virtual MsgStream& ISolid::printOut ( MsgStream os  )  const [pure virtual]

printout to Gaudi stream

Parameters:
os Gaudi stream
Returns:
reference to the 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.

See also:
ISolid::~ISolid()
Returns:
self-reference

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.

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.

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.

Returns:
maximum number of ticks

Implemented in SolidBoolean, SolidBox, SolidChild, SolidCons, SolidPolycone, SolidPolyHedronHelper, SolidSphere, and SolidTubs.


The documentation for this interface was generated from the following file:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:00:19 2011 for DetDesc by doxygen 1.4.7