Boost.Geometry    Boost C++ Libraries
Classes | Public Types | Static Public Member Functions
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...

List of all members.

Classes

class  counter

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