CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions
NavSurface Class Referenceabstract

#include <NavSurface.h>

Inheritance diagram for NavSurface:
BasicReferenceCounted NavCone NavCylinder NavPlane

Public Types

typedef Surface::GlobalPoint GlobalPoint
 
typedef Surface::GlobalVector GlobalVector
 
typedef Surface::LocalPoint LocalPoint
 
typedef Surface::LocalVector LocalVector
 
typedef std::pair
< TrajectoryStateOnSurface,
double > 
TSOSwithPath
 

Public Member Functions

virtual void addVolume (const NavVolume *vol, const Bounds *bounds, SurfaceOrientation::Side side)=0
 NavVolumes are supposed to call this method to "register" with the NavSurface. More...
 
virtual const Boundsbounds (const NavVolume *vol)=0
 Bounds corresponding to a NavVolume if present. More...
 
virtual std::pair< bool, double > distanceAlongLine (const GlobalPoint &pos, const GlobalVector &dir) const =0
 
virtual const NavVolumenextVolume (const LocalPoint &point, SurfaceOrientation::Side side) const =0
 
virtual TrajectoryStateOnSurface propagate (const Propagator &prop, const TrajectoryStateOnSurface &startingState) const =0
 hook for double dispatch to avoid propagation to generic surface. More...
 
virtual TSOSwithPath propagateWithPath (const Propagator &prop, const TrajectoryStateOnSurface &startingState) const =0
 hook for double dispatch to avoid propagation to generic surface. More...
 
virtual const Surfacesurface () const =0
 Access to actual surface. More...
 
GlobalPoint toGlobal (const LocalPoint &p) const
 
GlobalVector toGlobal (const LocalVector &p) const
 
LocalPoint toLocal (const GlobalPoint &p) const
 Forwarding of part of surface interface for convenience. More...
 
LocalVector toLocal (const GlobalVector &p) const
 
virtual ~NavSurface ()
 
- Public Member Functions inherited from BasicReferenceCounted
void addReference () const
 
 BasicReferenceCounted ()
 
 BasicReferenceCounted (const BasicReferenceCounted &iRHS)
 
const BasicReferenceCountedoperator= (const BasicReferenceCounted &)
 
unsigned int references () const
 
void removeReference () const
 
virtual ~BasicReferenceCounted ()
 

Detailed Description

Definition at line 13 of file NavSurface.h.

Member Typedef Documentation

Definition at line 21 of file NavSurface.h.

Definition at line 22 of file NavSurface.h.

Definition at line 19 of file NavSurface.h.

Definition at line 20 of file NavSurface.h.

Definition at line 23 of file NavSurface.h.

Constructor & Destructor Documentation

virtual NavSurface::~NavSurface ( )
inlinevirtual

Definition at line 25 of file NavSurface.h.

25 {}

Member Function Documentation

virtual void NavSurface::addVolume ( const NavVolume vol,
const Bounds bounds,
SurfaceOrientation::Side  side 
)
pure virtual

NavVolumes are supposed to call this method to "register" with the NavSurface.

Implemented in NavPlane, NavCone, and NavCylinder.

Referenced by NavVolume6Faces::computeBounds().

virtual const Bounds* NavSurface::bounds ( const NavVolume vol)
pure virtual

Bounds corresponding to a NavVolume if present.

Implemented in NavPlane, NavCone, and NavCylinder.

Referenced by NavVolume6Faces::computeBounds().

virtual std::pair<bool,double> NavSurface::distanceAlongLine ( const GlobalPoint pos,
const GlobalVector dir 
) const
pure virtual

Distance to surface from point pos along line dir. If the half-line does not cross the surface the returned value is (false,undefined), otherwise the returned value is (true,distance)

Implemented in NavPlane, NavCone, and NavCylinder.

virtual const NavVolume* NavSurface::nextVolume ( const LocalPoint point,
SurfaceOrientation::Side  side 
) const
pure virtual

Implemented in NavPlane, NavCone, and NavCylinder.

virtual TrajectoryStateOnSurface NavSurface::propagate ( const Propagator prop,
const TrajectoryStateOnSurface startingState 
) const
pure virtual

hook for double dispatch to avoid propagation to generic surface.

Implemented in NavPlane, NavCone, and NavCylinder.

virtual TSOSwithPath NavSurface::propagateWithPath ( const Propagator prop,
const TrajectoryStateOnSurface startingState 
) const
pure virtual

hook for double dispatch to avoid propagation to generic surface.

Implemented in NavPlane, NavCone, and NavCylinder.

virtual const Surface& NavSurface::surface ( ) const
pure virtual

Access to actual surface.

Implemented in NavPlane, NavCone, and NavCylinder.

Referenced by NavVolume6Faces::computeBounds(), toGlobal(), and toLocal().

GlobalPoint NavSurface::toGlobal ( const LocalPoint p) const
inline

Definition at line 58 of file NavSurface.h.

References surface(), and Surface::toGlobal().

58 {return surface().toGlobal(p);}
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:78
virtual const Surface & surface() const =0
Access to actual surface.
GlobalVector NavSurface::toGlobal ( const LocalVector p) const
inline

Definition at line 59 of file NavSurface.h.

References surface(), and Surface::toGlobal().

59 {return surface().toGlobal(p);}
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:78
virtual const Surface & surface() const =0
Access to actual surface.
LocalPoint NavSurface::toLocal ( const GlobalPoint p) const
inline

Forwarding of part of surface interface for convenience.

Definition at line 56 of file NavSurface.h.

References surface(), and GloballyPositioned< T >::toLocal().

Referenced by NavCylinder::distanceAlongLine().

56 {return surface().toLocal(p);}
virtual const Surface & surface() const =0
Access to actual surface.
LocalPoint toLocal(const GlobalPoint &gp) const
LocalVector NavSurface::toLocal ( const GlobalVector p) const
inline

Definition at line 57 of file NavSurface.h.

References surface(), and GloballyPositioned< T >::toLocal().

57 {return surface().toLocal(p);}
virtual const Surface & surface() const =0
Access to actual surface.
LocalPoint toLocal(const GlobalPoint &gp) const