Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

 Outputs:
    arcLength -> distance along the track where the poca occurs  =>  poca = track.m_point + arcLength * track.m_dir
    doca         -> distance of clostest approach  == | point - poca |
    poca         -> the point of closest approach

 crossesPlane(const Track& track, const Point& plane, int face, arcLength,

...

Point& hitPoint)

Gets the point where a track projection crosses a plane.   This assumes that the plane is oriented along a cartiesen axis

...

 Outputs:
    arcLength -> distance along the track where the plane is crossed occurs  =>  hitPoint = track.m_point + arcLength * track.m_dir
    localX       -> position of the crossing point relative to the plane center
    localY       
    hitPoint     -> the point where the track projection crosses the plane 

...

 crossesPlane(const Track& track, const

...

Transform&

...

trans, arcLength

...

, Point& hitPoint)

Gets the point where a track projection crosses a tileplane.   This does not assume that the plane is oriented along a cartiesen axis

Inputs:
    track  -> the track projectection data
    tile      trans  -> the geomertical informatio about transformation for global coordinates to the tile coordinates 

 OutputsOutputs:
    arcLength -> distance along the track where the plane is crossed occurs  =>  hitPoint = track.m_point + arcLength * track.m_dir
    localX           hitPoint     -> position of the crossing point relative to point where the track projection crosses the plane center
    localY       
    activeX     -> position of the crossing point relative to the edge of the active area ( >0 is in active area)
    activeY        
    active2D  ->  the larger of activeX and activeY 
    hitPoint     -> the point where the track projection crosses the plane

  rayDoca(const Track&  track, const Point& p1, const Point& p2, RayDoca& rayDoca, double& edgeLen )

Gets the point where a track comes closest to the ray from point p1 to point p2.

Inputs:
  track  -> the track projection data
  p1, p2 ->  intial and final points of the ray, usally two corners of a tile or two end of a ribbon

Outputs:
  rayDoca -> object with intesection data
  edgeLen -> length along the edge at which the POCA occurs, we check this to make sure the poca occurs between the two ends

rayDoca_withCorner(const Track&  track,  const Ray& ray,

                                        arcLength, rayLength,  dist, Point& x, Vector& v)

 Get the point where a track comes closest to a ray.  Handles the ends of the ray correctly.

Inputs:
  track -> the track projection data
  ray   ->  the ray in question

Outputs:
  arcLength  ->  length along track where POCA occurs
  rayLength ->   length along ray where POCA occurs
  dist            ->   DOCA
  x                ->   point along track there POCA occurs,  (ie, POCA of track to ray)
  v                ->   vector from x to closest point on ray.   x-v must be on the ray

  tilePlane(const Track& track, const Tile& tile, PocaData &data)

Gets the point where a track projection crosses a tile

Inputs:
    track  -> the track projectection data
    tile      -> the geomertical information about the tile

 Outputs:
    data.arcLength_plane -> distance along the track where the plane is crossed occurs  =>  hitPoint = track.m_point + arcLength * track.m_dir
    data.activeX     -> position of the crossing point relative to the edge of the active area ( >0 is in active area)
    data.activeY        
    data.active2D  ->  the larger of activeX and activeY
    data.hitsPlane  -> the point where the track projection crosses the plane in global coords
    data.inPlane     -> the point where the track projection crosses the plane in local coords (+x , +y, -x, -y edges in local frame)
    data.volume     -> which volume of the tile (0 = main, 1 = bent piece)
 

 tilePlaneActiveDistance(cons Tile& tile, iVol, const Point& globalPoint, Point& localPoint, activeX, activeY )

  Gets the active distance of the intersection.

Inputs:
   tile      -> the geomertical information about the tile
   iVol    -> which volume of the tile (0 = main, 1 = bent piece)
   globalPoint -> intersection point in global coords

Outputs:
  localPoint -> intersection point in local coords (+x , +y, -x, -y edges in local frame)
  activeX, activeY -> active distances in X and Y
 

tileEdgePoca(const Track& track, const Tile& tile,arcLength, dist, Point& poca, Vector& vector, int& region)

...

 Outputs:
    arcLength -> distance along the track where the plane is crossed occurs  =>  hitPoint = track.m_point + arcLength * track.m_dir
    dist     ->  the distance of closest approach between the track and the tile edge (in 3D)
    poca   -> the point of closest approach along the track to the tile edge
    vector  -> the vector from the poca to the closest point on the tile edge
    region  -> a code to show which edge of the tile was considered (y,+x,+y,-x edges, ++, +, --, -+ corners)

ribbonPlane(const Track& track, const Ribbon& ribbon,

...

  PocaData& data)

Gets the point where a track projection crosses a plane.   This assumes that the plane is oriented along a cartiesen axis

Inputs:
    track  -> the track projectection data
    ribbon -> the geomertical informatio about the tile

 Outputs:
    arcLength data.arcLengthPlane -> distance along the track where the plane is crossed occurs  =>  hitPoint = track.m_point + arcLength * track.m_dir
    dist     data.active2D           -> the distance of closest approach between the track and the ribbon
    hitPoint     data.hitsPlane         -> the point where the track projection crosses the plane the plane
   data.volume          ->  which segment of the ribbon

ribbonPoca(const Track& track, const Ribbon& ribbon, arcLength, ribbonLength, dist, Point& poca, Vector& vector, int& region)

Gets the point where a track projection crosses a plane.   This assumes that the plane is oriented along a cartiesen axis

...

 Outputs:
    arcLength -> distance along the track where the plane is crossed occurs  =>  hitPoint = track.m_point + arcLength * track.m_dir
   ribbonLength ->  distance along the ribbon where the POCA occurs,  0 is center of ribbon
    dist     -> the distance of closest approach between the track and the ribbon
    poca   -> the point of closest approach along the track to the ribbon
    vector  -> the vector from the poca to the closest point on the ribbon
    region  -> a code to show which edge of the ribbon was considered (+,- in local coords)

...