Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Facet.hpp
00001 /* $Id$ */
00002 
00003 #ifndef _GEOM_FACET_HPP_
00004 #define _GEOM_FACET_HPP_
00005 
00006 #include "geom/OrientedPlan.hpp"
00007 #include "geom/PolyLine.hpp"
00008 
00009 namespace jafar {
00010   namespace geom {
00015     template<int dimension>
00016     class Facet : public OrientedPlan<dimension> {
00017         typedef Repere<dimension> RepereD;
00018         typedef OrientedPlan<dimension> OrientedPlanD;
00019         typedef typename geom::Atom<dimension>::HomogenousVecD HomogenousVecD;
00020         typedef typename geom::Atom<dimension - 1>::HomogenousVecD HomogenousVecDM1;
00021         typedef typename geom::Atom<dimension>::VecD VecD;
00022         typedef boost::numeric::ublas::bounded_matrix<double,dimension + 1 ,dimension + 1> Matrix;
00023       public:
00024         Facet();
00025         template<typename _TDriver_>
00026         Facet( _TDriver_* d, const PolyLine<dimension-1>& polyLine );
00027         Facet( const PolyLine<dimension>& polyLine );
00028         Facet(const Facet&);
00029         ~Facet();
00030         inline Facet& operator=(const Facet& rhs);
00031         virtual BoundingBox<dimension> boundingBox() const;
00032         void setPlanPolyLine(const PolyLine<dimension-1>& planPolyLine);
00033         const PolyLine<dimension-1>& planPolyLine() const;
00034         const PolyLine<dimension>& spacePolyLine() const;
00035         virtual typename Atom<dimension>::Type type() const { return Atom<dimension>::T_Facet; }
00042         inline double surface() const;
00043         inline double perimeter() const;
00044       public:
00045         virtual std::string toString() const;
00046       public:
00047         GEN_DISTANCE_FUNCTIONS
00048         GEN_ANGLE_FUNCTIONS;
00049         GEN_VISITOR_FUNCTIONS
00050       private:
00051         inline double surface(const HomogenousVecDM1& v1, const HomogenousVecDM1& v2) const;
00052       private:
00053         PolyLine<dimension-1> m_planPolyLine;
00054         PolyLine<dimension> m_spacePolyLine;
00055     };
00056   }
00057 }
00058 
00059 #include "geom/FacetImpl.hpp"
00060 
00061 #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