CMS 3D CMS Logo

Public Types | Public Member Functions | Private Attributes

NavPlane Class Reference

#include <NavPlane.h>

Inheritance diagram for NavPlane:
NavSurface BasicReferenceCounted

List of all members.

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 Boundsbounds (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 NavVolumenextVolume (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 Surfacesurface () const
 Access to actual surface.

Private Attributes

LinearSearchNavSurfaceImpl theImpl
PlanePointer theSurfaceP

Detailed Description

Definition at line 12 of file NavPlane.h.


Member Typedef Documentation

Definition at line 18 of file NavPlane.h.


Constructor & Destructor Documentation

NavPlane::NavPlane ( PlanePointer  plane) [inline]

Definition at line 22 of file NavPlane.h.

: theSurfaceP(plane) {}

Member Function Documentation

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.

                                                         {
        theImpl.addVolume( vol, bounds, side);
    }
virtual const Bounds* NavPlane::bounds ( const NavVolume vol) [inline, virtual]

Bounds corresponding to a NavVolume if present.

Implements NavSurface.

Definition at line 40 of file NavPlane.h.

References LinearSearchNavSurfaceImpl::bounds(), and theImpl.

{ return theImpl.bounds(vol);}
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.

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;} 

Member Data Documentation

Definition at line 53 of file NavPlane.h.

Referenced by addVolume(), bounds(), and nextVolume().

Definition at line 52 of file NavPlane.h.

Referenced by distanceAlongLine(), propagate(), propagateWithPath(), and surface().