// Copyright (c) 2005 INRIA Sophia-Antipolis (France). // All rights reserved. // // This file is part of CGAL (www.cgal.org); you may redistribute it under // the terms of the Q Public License version 1.0. // See the file LICENSE.QPL distributed with CGAL. // // Licensees holding a valid commercial license may use this file in // accordance with the commercial license agreement provided with the software. // // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // // $URL$ // $Id$ // // // Author(s) : Laurent Rineau #ifndef CONTRAINTE #define CONTRAINTE #include #include #include #include #include #include #include #include #include CGAL_BEGIN_NAMESPACE template class Constrained_Element { public: typedef Gt Geom_traits_; typedef typename Gt::FT Nb; typedef typename Gt::Point_3 Point; typedef typename Gt::Vector_3 Vector; typedef typename Gt::Segment_3 Segment; typedef typename Gt::Iso_cuboid_3 Iso_Cuboid; typedef typename Gt::Tetrahedron_3 Tetrahedron; // structure de donnees pour la liste d'incidence typedef std::map < Constrained_Element ,int > Contrainte_map; typedef typename Contrainte_map::iterator Contrainte_it; private: typedef typename Gt::Triangle_3 Triangle; typedef typename Gt::Plane_3 Plane; typedef typename Gt::Ray_3 Ray; typedef CGAL::Bbox_3 Bbox_3; typedef char* Mot; public : char* type; public : Constrained_Element(){ type = new char; } Constrained_Element(char* nom) { type = new char; strcpy(type,nom);} virtual ~Constrained_Element(){} //les methodes virtuelles virtual Bbox_3 getBBox() = 0; virtual bool does_intersect( Iso_Cuboid c) = 0; virtual bool does_intersect( Tetrahedron tet) = 0; virtual bool does_intersect( Constrained_Element* ce) = 0; virtual Nb sqared_distance_to_sheet(Point p) = 0; virtual bool does_intersect( Segment seg ) = 0; virtual Object intersection (Segment seg) = 0; virtual bool does_intersect(Ray ray ) = 0; virtual Object intersection (Ray ray) = 0; void setType(char *nom){type = nom;} Mot getType() { return type;} }; CGAL_END_NAMESPACE #endif