text: // Geometric Tools, LLC
  // Copyright (c) 1998-2014
  // Distributed under the Boost Software License, Version 1.0.
  // http://www.boost.org/LICENSE_1_0.txt
  // http://www.geometrictools.com/License/Boost/LICENSE_1_0.txt
  //
  // File Version: 5.0.1 (2010/10/01)
  
  #ifndef WM5INTRRAY3LOZENGE3_H
  #define WM5INTRRAY3LOZENGE3_H
  
  #include "Wm5MathematicsLIB.h"
  #include "Wm5Intersector.h"
  #include "Wm5Ray3.h"
  #include "Wm5Lozenge3.h"
  
  namespace Wm5
  {
  
  template <typename Real>
  class WM5_MATHEMATICS_ITEM IntrRay3Lozenge3
      : public Intersector<Real,Vector3<Real> >
  {
  public:
      IntrRay3Lozenge3 (const Ray3<Real>& ray,
          const Lozenge3<Real>& lozenge);
  
      // Object access.
      const Ray3<Real>& GetRay () const;
      const Lozenge3<Real>& GetLozenge () const;
  
      // Static intersection query.
      virtual bool Test ();
  
  private:
      // The objects to intersect.
      const Ray3<Real>* mRay;
      const Lozenge3<Real>* mLozenge;
  };
  
  typedef IntrRay3Lozenge3<float> IntrRay3Lozenge3f;
  typedef IntrRay3Lozenge3<double> IntrRay3Lozenge3d;
  
  }
  
  #endif
  