#include <NavCone.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 |
NavCone (const Cone *cone) | |
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 < Cone > | theSurfaceP |
NavCone::NavCone | ( | const Cone * | cone | ) | [inline] |
Definition at line 19 of file NavCone.h.
: theSurfaceP(cone) {}
virtual void NavCone::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 38 of file NavCone.h.
References LinearSearchNavSurfaceImpl::addVolume(), and theImpl.
Bounds corresponding to a NavVolume if present.
Implements NavSurface.
Definition at line 36 of file NavCone.h.
References LinearSearchNavSurfaceImpl::bounds(), and theImpl.
std::pair< bool, double > NavCone::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 27 of file NavCone.cc.
{ throw NavConeNotImplementedDistanceAlongLine(); return std::pair<bool,double>(false,0); }
virtual const NavVolume* NavCone::nextVolume | ( | const NavSurface::LocalPoint & | point, |
SurfaceOrientation::Side | side | ||
) | const [inline, virtual] |
Implements NavSurface.
Definition at line 25 of file NavCone.h.
References LinearSearchNavSurfaceImpl::nextVolume(), and theImpl.
{ return theImpl.nextVolume( point,side); }
TrajectoryStateOnSurface NavCone::propagate | ( | const Propagator & | prop, |
const TrajectoryStateOnSurface & | startingState | ||
) | const [virtual] |
hook for double dispatch to avoid propagation to generic surface.
Implements NavSurface.
Definition at line 7 of file NavCone.cc.
References Propagator::propagate(), and theSurfaceP.
{ return prop.propagate( startingState, *theSurfaceP); }
std::pair< TrajectoryStateOnSurface, double > NavCone::propagateWithPath | ( | const Propagator & | prop, |
const TrajectoryStateOnSurface & | startingState | ||
) | const [virtual] |
hook for double dispatch to avoid propagation to generic surface.
Implements NavSurface.
Definition at line 14 of file NavCone.cc.
References Propagator::propagateWithPath(), and theSurfaceP.
{ return prop.propagateWithPath( startingState, *theSurfaceP); }
virtual const Surface& NavCone::surface | ( | ) | const [inline, virtual] |
Access to actual surface.
Implements NavSurface.
Definition at line 23 of file NavCone.h.
References theSurfaceP.
{return *theSurfaceP;}
LinearSearchNavSurfaceImpl NavCone::theImpl [private] |
Definition at line 49 of file NavCone.h.
Referenced by addVolume(), bounds(), and nextVolume().
Definition at line 48 of file NavCone.h.
Referenced by propagate(), propagateWithPath(), and surface().