Limbo 3.5.4
Loading...
Searching...
No Matches
Geometry.h File Reference

Contains utilities for geometric types, such as type traits, area calculator. I'm trying to make these setting as similar as Boost.Polygon, which will lead to easier embedding. More...

#include <vector>
#include <list>
#include <ostream>

Go to the source code of this file.

Classes

class  limbo::geometry::orientation_2d
 a class denoting orientation of lines More...
struct  limbo::geometry::coordinate_traits< int >
 specialization for default integer type More...
class  limbo::geometry::point_traits< PointType >
 type traits for point More...
class  limbo::geometry::rectangle_traits< RectType >
 type traits for rectangle More...
class  limbo::geometry::container_traits< ContainerType >
 type traits for containers such as vector, list, multiset More...
struct  limbo::geometry::container_traits< std::vector< T > >
 partial specialization of limbo::geometry::container_traits for commonly used data structures like std::vector More...
struct  limbo::geometry::container_traits< std::list< T > >
 partial specialization of limbo::geometry::container_traits for commonly used data structures like std::list More...

Namespaces

namespace  limbo
 namespace for Limbo
namespace  limbo::geometry
 namespace for Limbo.Geometry

Macros

#define LIMBO_GEOMETRY_COORDINATE_TRAITS(T, AREA_T, UNSIGNED_AREA_T)
 macro to define coordinate_traits for other integer types

Enumerations

enum  orientation_2d_enum { HORIZONTAL = 0 , VERTICAL = 1 }
enum  limbo::geometry::slicing_orientation_2d {
  HORIZONTAL_SLICING = 1 , VERTICAL_SLICING = 2 , limbo::geometry::HOR_VER_SLICING = 3 , limbo::geometry::HOR_VER_SA_SLICING = 4 ,
  limbo::geometry::HOR_VER_AR_SLICING = 5
}
enum  direction_2d { LEFT = 0 , BOTTOM = 1 , RIGHT = 2 , TOP = 3 }
enum  winding_direction { CLOCKWISE = 0 , COUNTERCLOCKWISE = 1 , UNKNOWN_WINDING = 2 }

Functions

std::string limbo::geometry::to_string (slicing_orientation_2d slicing_orient)
 convert enum type of slicing orientation to string
template<typename PointSet>
coordinate_traits< typenamepoint_traits< typenamecontainer_traits< PointSet >::value_type >::coordinate_type >::area_type limbo::geometry::area (PointSet const &vPoint)
 calculate signed area of a polygon, the result is positive if its winding is CLOCKWISE

Detailed Description

Contains utilities for geometric types, such as type traits, area calculator. I'm trying to make these setting as similar as Boost.Polygon, which will lead to easier embedding.

Author
Yibo Lin
Date
Oct 2014

Definition in file Geometry.h.

Macro Definition Documentation

◆ LIMBO_GEOMETRY_COORDINATE_TRAITS

#define LIMBO_GEOMETRY_COORDINATE_TRAITS ( T,
AREA_T,
UNSIGNED_AREA_T )
Value:
template <> \
struct coordinate_traits<T> \
{ \
typedef T coordinate_type; \
typedef AREA_T area_type; \
typedef AREA_T manhattan_area_type; \
typedef UNSIGNED_AREA_T unsigned_area_type; \
typedef AREA_T coordinate_difference; \
typedef AREA_T coordinate_distance; \
};

macro to define coordinate_traits for other integer types

Definition at line 165 of file Geometry.h.