
#ifndef _GEOMETRY_TYPES_H_
#define _GEOMETRY_TYPES_H_
/********************************************************************
	created:	 2009/07/23
	created:	 23:7:2009   19:08
	file base:	 geometry_types.h
	author:		 Liangliang Nan
    contact:     liangliang.nan@gmail.com
    affiliation: Shenzhen Institute of Advance Technology
	
	purpose:	 wrapper of CGAL types
*********************************************************************/

#include <CGAL/Cartesian.h>
#include <CGAL/Bbox_2.h>
#include <CGAL/Bbox_3.h>
#include <CGAL/Polygon_2.h>
#include <cgal/Aff_transformation_3.h>
#include <cgal/Linear_algebraCd.h>



typedef float                FT;
typedef CGAL::Cartesian<FT>  K;

typedef K::Point_2           Point2f;
typedef K::Vector_2          Vector2f;
typedef K::Segment_2		 Segment2f;
typedef K::Line_2			 Line2f;

typedef K::Iso_rectangle_2   IsoRectangle2f;
typedef CGAL::Bbox_2		 Bbox2f;

typedef CGAL::Polygon_2<K, std::vector<Point2f>>   Polygon2f; 


//////////////////////////////////////////////////////////////////////////


typedef K::Point_3           Point3f;
typedef K::Vector_3          Vector3f;

typedef K::Line_3            Line3f;
typedef K::Segment_3         Segment3f;
typedef K::Triangle_3		 Triangle3f;
typedef K::Circle_3          Circle3f;
typedef K::Plane_3           Plane3f;

typedef K::Iso_cuboid_3		 IsoCuboid3f;
typedef CGAL::Bbox_3		 Bbox3f;

typedef K::Sphere_3          Sphere3f;
typedef K::Tetrahedron_3     Tetrahedron3f;    


typedef K::Aff_transformation_3   AffTransformation3f;

typedef CGAL::Linear_Algebra::Matrix_<FT , CGAL_ALLOCATOR(FT)>  Matrixf;
typedef CGAL::Linear_Algebra::Vector_<FT, CGAL_ALLOCATOR(FT)>  Vectorf;
typedef CGAL::Linear_algebraCd<FT, CGAL_ALLOCATOR(FT) > Linear_algebraf;





//////////////////////////////////////////////////////////////////////////



typedef    int        my_bool;
#define    my_false		    0
#define    my_true			1


#endif


