/****************************************************************************
** GMAF - The Geometry Modeling Algorithms Framewor
**
** Created : 03112000
**
** Copyright (C) 2000 by Le-Jeng Shiue.  All rights reserved.
**
****************************************************************************/
#ifndef cgalConfig_H
#define cgalConfig_H

#include <CGAL/Cartesian.h>
#include <CGAL/Halfedge_data_structure_polyhedron_default_3.h>
#include <CGAL/Polyhedron_default_traits_3.h>
#include <CGAL/Polyhedron_3.h>

#include "gmafConfig.h"
#include "cgalVertexBase.h"
#include "cgalFacetBase.h"
#include "cgalHalfedgeBase.h"

typedef CGAL::Cartesian<DOUBLE>                        R;
//typedef CGAL::Halfedge_data_structure_polyhedron_default_3<R>  HDS;
typedef cgalVertexBase<CGAL::Point_3<R> >              VBase;
//typedef CGAL::Vertex_max_base<CGAL::Point_3<R> >       VBase;
typedef cgalHalfedgeBase                               EBase;
//typedef CGAL::Halfedge_max_base                              EBase;
typedef cgalFacetBase<R>                               FBase;
typedef CGAL::Halfedge_data_structure_using_list<VBase,EBase,FBase> HDS;

typedef CGAL::Polyhedron_default_traits_3<R>           Traits;
typedef CGAL::Polyhedron_3<Traits,HDS>                 Polyhedron;

typedef Polyhedron::Size                               Size; 
typedef Polyhedron::Difference                         Difference; 

typedef Polyhedron::Point                              Point;
typedef Polyhedron::Plane                              Plane;
typedef Polyhedron::Normal                             Normal;
typedef Polyhedron::Vertex                             Vertex;
typedef Polyhedron::Halfedge                           Halfedge;
typedef Polyhedron::Facet                              Facet;

typedef Polyhedron::Halfedge_handle                    Halfedge_handle;
typedef Polyhedron::Facet_handle                       Facet_handle;

typedef Polyhedron::Vertex_iterator                    Vertex_iterator;
typedef Polyhedron::Halfedge_iterator                  Halfedge_iterator;
typedef Polyhedron::Facet_iterator                     Facet_iterator;

typedef Polyhedron::Halfedge_around_facet_circulator   Halfedge_around_facet_circulator;
typedef Polyhedron::Halfedge_around_vertex_circulator  Halfedge_around_vertex_circulator;


#endif cgalConfig_H
