00001 // $Header: /nfs/slac/g/glast/ground/cvs/geometry/geometry/Wedge.h,v 1.2 2000/01/18 00:42:11 burnett Exp $ 00002 // 00003 00004 #ifndef __WEDGE_H 00005 #define __WEDGE_H 00006 00007 #include "geometry/Surface.h" 00008 #include "geometry/Plane.h" 00009 00011 class Wedge : public Surface 00012 { 00013 public: 00014 Wedge(const Point& c,const Vector& axis, double phi1, double phi2); 00015 // constructor: inside is from phi1 to phi2 00016 00017 virtual double how_near( const Point& x )const; 00018 // signed function giving minimum distance to the surface: surface 00019 // is actually defined by zero. 00020 00021 virtual double distance( const Point& x ,const Vector& v, int inout) const; 00022 virtual Vector normal( const Point& x )const; 00023 // returns normal-vector at Point x, assuming x to be "on" the surface 00024 00025 const Vector& axis()const{return Surface::direction();} 00026 const Vector& n1()const; //return the normal to plane 1 00027 const Vector& n2()const; // return the normal to plane 2 00028 00029 const char * nameOf()const{return "Wedge";} 00030 00031 private: 00032 Vector _n1; 00033 Vector _n2; 00034 double dphi; 00035 }; 00036 #endif 00037
1.2.3 written by Dimitri van Heesch,
© 1997-2000