Boost.Geometry    Boost C++ Libraries
Classes | Public Types | Static Public Member Functions | List of all members
boost::geometry::strategy::within::oriented_winding< Reverse, Point, PointOfSegment, CalculationType > Class Template Reference

Within detection using winding rule, but checking if enclosing ring is counter clockwise and, if so, reverses the result. More...

Public Types

typedef Point point_type
 
typedef PointOfSegment segment_point_type
 
typedef counter state_type
 

Static Public Member Functions

static bool apply (Point const &point, PointOfSegment const &s1, PointOfSegment const &s2, counter &state)
 
static int result (counter const &state)
 

Detailed Description

template<bool Reverse, typename Point, typename PointOfSegment = Point, typename CalculationType = void>
class boost::geometry::strategy::within::oriented_winding< Reverse, Point, PointOfSegment, CalculationType >

Within detection using winding rule, but checking if enclosing ring is counter clockwise and, if so, reverses the result.

Template Parameters
PointAny type fulfilling a Point Concept
ReverseTrue if parameter should be reversed
PointOfSegmentsegment point type
CalculationTypenumeric type for calculation (e.g. high precision); if [*void] then it is extracted automatically from the coordinate type and (if necessary) promoted to floating point
Author
Barend Gehrels
Note
The implementation is inspired by terralib http://www.terralib.org (LGPL)
but totally revised afterwards, especially for cases on segments
Only dependant on "side", -> agnostic, suitable for spherical/latlong

Member Typedef Documentation

template<bool Reverse, typename Point , typename PointOfSegment = Point, typename CalculationType = void>
typedef Point boost::geometry::strategy::within::oriented_winding< Reverse, Point, PointOfSegment, CalculationType >::point_type
template<bool Reverse, typename Point , typename PointOfSegment = Point, typename CalculationType = void>
typedef PointOfSegment boost::geometry::strategy::within::oriented_winding< Reverse, Point, PointOfSegment, CalculationType >::segment_point_type
template<bool Reverse, typename Point , typename PointOfSegment = Point, typename CalculationType = void>
typedef counter boost::geometry::strategy::within::oriented_winding< Reverse, Point, PointOfSegment, CalculationType >::state_type

Member Function Documentation

template<bool Reverse, typename Point , typename PointOfSegment = Point, typename CalculationType = void>
static bool boost::geometry::strategy::within::oriented_winding< Reverse, Point, PointOfSegment, CalculationType >::apply ( Point const &  point,
PointOfSegment const &  s1,
PointOfSegment const &  s2,
counter &  state 
)
static
template<bool Reverse, typename Point , typename PointOfSegment = Point, typename CalculationType = void>
static int boost::geometry::strategy::within::oriented_winding< Reverse, Point, PointOfSegment, CalculationType >::result ( counter const &  state)
static

April 2, 2011

Copyright © 2007-2011 Barend Gehrels, Amsterdam, the Netherlands
Copyright © 2008-2011 Bruno Lalande, Paris, France
Copyright © 2009-2010 Mateusz Loskot, London, UK
Documentation is generated by Doxygen