Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Angle.hpp
00001 /* $ Id: $ */
00002 
00003 #ifndef _GEOM_ANGLE_HPP_
00004 #define _GEOM_ANGLE_HPP_
00005 
00006 #define GEN_ANGLE_FUNCTIONS \
00007       protected: \
00008         virtual double angle( const geom::Line<dimension>& line) const \
00009         { \
00010           return geom::angle(line, *this); \
00011         } \
00012         virtual double angle( const geom::HyperPlane<dimension>& plan) const \
00013         { \
00014           return geom::angle(plan, *this); \
00015         } \
00016         virtual double angle( const geom::Segment<dimension>& segment) const \
00017         { \
00018           return geom::angle( segment, *this); \
00019         } \
00020         virtual double angle( const geom::PolyLine<dimension>& polyLine) const \
00021         { \
00022           return geom::angle( polyLine, *this); \
00023         } \
00024         virtual double angle( const geom::Facet<dimension>& facet) const \
00025         { \
00026           return geom::angle( facet, *this); \
00027         } \
00028         virtual double angle( const geom::Repere<dimension>& repere) const \
00029         { \
00030           return geom::angle( repere, *this); \
00031         }
00032 
00033 
00034 
00035 namespace jafar {
00036   namespace geom {
00037     template<int dimension>
00038     inline double angle(const Point<dimension>&, const Point<dimension>&);
00039     template<int dimension>
00040     inline double angle(const Point<dimension>&, const Line<dimension>&);
00041     template<int dimension>
00042     inline double angle(const Point<dimension>&, const HyperPlane<dimension>&);
00043     template<int dimension>
00044     inline double angle(const Line<dimension>&, const Point<dimension>&);
00045     template<int dimension>
00046     inline double angle(const Line<dimension>&, const typename Atom<dimension>::HomogenousVecD&);
00047     template<int dimension>
00048     inline double angle(const Line<dimension>&, const Line<dimension>&);
00049     template<int dimension>
00050     inline double angle(const Line<dimension>&, const HyperPlane<dimension>&);
00051     template<int dimension>
00052     inline double angle(const HyperPlane<dimension>&, const Point<dimension>&);
00053     template<int dimension>
00054     inline double angle(const HyperPlane<dimension>&, const Line<dimension>&);
00055     template<int dimension>
00056     inline double angle(const HyperPlane<dimension>&, const Repere<dimension>&);
00057     template<int dimension>
00058     inline double angle(const HyperPlane<dimension>&, const HyperPlane<dimension>&);
00059     // Segment
00060     template<int dimension, typename _T2_>
00061     inline double angle(const Segment<dimension>&, const _T2_&);
00062     template<int dimension, typename _T1_>
00063     inline double angle(const _T1_&, const Segment<dimension>&);
00064     template<int dimension>
00065     inline double angle(const Segment<dimension>&, const Segment<dimension>&);
00066     // PolyLine
00067     template<int dimension, typename _T2_>
00068     inline double angle(const PolyLine<dimension>&, const _T2_&);
00069     template<int dimension, typename _T1_>
00070     inline double angle(const _T1_&, const PolyLine<dimension>&);
00071     template<int dimension>
00072     inline double angle(const PolyLine<dimension>&, const PolyLine<dimension>&);
00073     template<int dimension>
00074     inline double angle(const PolyLine<dimension>&, const Segment<dimension>&);
00075     template<int dimension>
00076     inline double angle(const Segment<dimension>&, const PolyLine<dimension>&);
00077     // Repere
00078     template<int dimension>
00079     inline double angle(const Repere<dimension>&, const Point<dimension>&);
00080     template<int dimension>
00081     inline double angle(const Repere<dimension>&, const Line<dimension>&);
00082     template<int dimension>
00083     inline double angle(const Repere<dimension>&, const HyperPlane<dimension>&);
00084     template<int dimension>
00085     inline double angle(const Repere<dimension>&, const Repere<dimension>&);
00086     template<int dimension>
00087     inline double angle(const Repere<dimension>&, const PolyLine<dimension>&);
00088   }
00089 }
00090 
00091 #include "AngleImpl.hpp"
00092 
00093 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:19 for Jafar by doxygen 1.7.6.1
LAAS-CNRS