#include <NavPlane.h>
Public Types | |
typedef ConstReferenceCountingPointer < Plane > | PlanePointer |
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 |
NavPlane (PlanePointer plane) | |
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 |
PlanePointer | theSurfaceP |
Definition at line 12 of file NavPlane.h.
Definition at line 18 of file NavPlane.h.
NavPlane::NavPlane | ( | PlanePointer | plane | ) | [inline] |
Definition at line 22 of file NavPlane.h.
: theSurfaceP(plane) {}
virtual void NavPlane::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 42 of file NavPlane.h.
References LinearSearchNavSurfaceImpl::addVolume(), and theImpl.
Bounds corresponding to a NavVolume if present.
Implements NavSurface.
Definition at line 40 of file NavPlane.h.
References LinearSearchNavSurfaceImpl::bounds(), and theImpl.
std::pair< bool, double > NavPlane::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 NavPlane.cc.
References PV3DBase< T, PVType, FrameType >::basicVector(), StraightLinePlaneCrossing::pathLength(), and theSurfaceP.
{ StraightLinePlaneCrossing pc( pos.basicVector(), dir.basicVector()); return pc.pathLength(*theSurfaceP); }
virtual const NavVolume* NavPlane::nextVolume | ( | const NavSurface::LocalPoint & | point, |
SurfaceOrientation::Side | side | ||
) | const [inline, virtual] |
Implements NavSurface.
Definition at line 28 of file NavPlane.h.
References LinearSearchNavSurfaceImpl::nextVolume(), and theImpl.
{ return theImpl.nextVolume( point,side); }
TrajectoryStateOnSurface NavPlane::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 NavPlane.cc.
References Propagator::propagate(), and theSurfaceP.
{ return prop.propagate( startingState, *theSurfaceP); }
std::pair< TrajectoryStateOnSurface, double > NavPlane::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 NavPlane.cc.
References Propagator::propagateWithPath(), and theSurfaceP.
{ return prop.propagateWithPath( startingState, *theSurfaceP); }
virtual const Surface& NavPlane::surface | ( | ) | const [inline, virtual] |
Access to actual surface.
Implements NavSurface.
Definition at line 26 of file NavPlane.h.
References theSurfaceP.
{return *theSurfaceP;}
LinearSearchNavSurfaceImpl NavPlane::theImpl [private] |
Definition at line 53 of file NavPlane.h.
Referenced by addVolume(), bounds(), and nextVolume().
PlanePointer NavPlane::theSurfaceP [private] |
Definition at line 52 of file NavPlane.h.
Referenced by distanceAlongLine(), propagate(), propagateWithPath(), and surface().