#include <NavCylinder.h>
Public Member Functions | |
virtual void | addVolume (const NavVolume *vol, const Bounds *bounds, SurfaceOrientation::Side side) |
NavVolumes are supposed to call this method to "register" with the NavSurface. | |
virtual const Bounds * | bounds (const NavVolume *vol) |
Bounds corresponding to a NavVolume if present. | |
virtual std::pair< bool, double > | distanceAlongLine (const NavSurface::GlobalPoint &pos, const NavSurface::GlobalVector &dir) const |
NavCylinder (const Cylinder *cylinder) | |
virtual const NavVolume * | nextVolume (const NavSurface::LocalPoint &point, SurfaceOrientation::Side side) const |
virtual TrajectoryStateOnSurface | propagate (const Propagator &prop, const TrajectoryStateOnSurface &startingState) const |
hook for double dispatch to avoid propagation to generic surface. | |
virtual NavSurface::TSOSwithPath | propagateWithPath (const Propagator &prop, const TrajectoryStateOnSurface &startingState) const |
hook for double dispatch to avoid propagation to generic surface. | |
virtual const Surface & | surface () const |
Access to actual surface. | |
Private Attributes | |
LinearSearchNavSurfaceImpl | theImpl |
ConstReferenceCountingPointer < Cylinder > | theSurfaceP |
Definition at line 12 of file NavCylinder.h.
NavCylinder::NavCylinder | ( | const Cylinder * | cylinder | ) | [inline] |
Definition at line 18 of file NavCylinder.h.
: theSurfaceP(cylinder) {}
virtual void NavCylinder::addVolume | ( | const NavVolume * | vol, |
const Bounds * | bounds, | ||
SurfaceOrientation::Side | side | ||
) | [inline, virtual] |
NavVolumes are supposed to call this method to "register" with the NavSurface.
Implements NavSurface.
Definition at line 37 of file NavCylinder.h.
References LinearSearchNavSurfaceImpl::addVolume(), and theImpl.
Bounds corresponding to a NavVolume if present.
Implements NavSurface.
Definition at line 35 of file NavCylinder.h.
References LinearSearchNavSurfaceImpl::bounds(), and theImpl.
std::pair< bool, double > NavCylinder::distanceAlongLine | ( | const NavSurface::GlobalPoint & | pos, |
const NavSurface::GlobalVector & | dir | ||
) | const [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)
Implements NavSurface.
Definition at line 22 of file NavCylinder.cc.
References StraightLineCylinderCrossing::pathLength(), theSurfaceP, and NavSurface::toLocal().
{ StraightLineCylinderCrossing pc( toLocal(pos), toLocal(dir)); return pc.pathLength(*theSurfaceP); }
virtual const NavVolume* NavCylinder::nextVolume | ( | const NavSurface::LocalPoint & | point, |
SurfaceOrientation::Side | side | ||
) | const [inline, virtual] |
Implements NavSurface.
Definition at line 24 of file NavCylinder.h.
References LinearSearchNavSurfaceImpl::nextVolume(), and theImpl.
{ return theImpl.nextVolume( point,side); }
TrajectoryStateOnSurface NavCylinder::propagate | ( | const Propagator & | prop, |
const TrajectoryStateOnSurface & | startingState | ||
) | const [virtual] |
hook for double dispatch to avoid propagation to generic surface.
Implements NavSurface.
Definition at line 8 of file NavCylinder.cc.
References Propagator::propagate(), and theSurfaceP.
{ return prop.propagate( startingState, *theSurfaceP); }
std::pair< TrajectoryStateOnSurface, double > NavCylinder::propagateWithPath | ( | const Propagator & | prop, |
const TrajectoryStateOnSurface & | startingState | ||
) | const [virtual] |
hook for double dispatch to avoid propagation to generic surface.
Implements NavSurface.
Definition at line 15 of file NavCylinder.cc.
References Propagator::propagateWithPath(), and theSurfaceP.
{ return prop.propagateWithPath( startingState, *theSurfaceP); }
virtual const Surface& NavCylinder::surface | ( | ) | const [inline, virtual] |
Access to actual surface.
Implements NavSurface.
Definition at line 22 of file NavCylinder.h.
References theSurfaceP.
{return *theSurfaceP;}
Definition at line 48 of file NavCylinder.h.
Referenced by addVolume(), bounds(), and nextVolume().
Definition at line 47 of file NavCylinder.h.
Referenced by distanceAlongLine(), propagate(), propagateWithPath(), and surface().