1 // Boost.Geometry (aka GGL, Generic Geometry Library) 2 3 // Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands. 4 // Copyright (c) 2008-2012 Bruno Lalande, Paris, France. 5 // Copyright (c) 2009-2012 Mateusz Loskot, London, UK. 6 7 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library 8 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands. 9 10 // Use, modification and distribution is subject to the Boost Software License, 11 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 12 // http://www.boost.org/LICENSE_1_0.txt) 13 14 #ifndef BOOST_GEOMETRY_STRATEGIES_CONCEPTS_SEGMENT_INTERSECT_CONCEPT_HPP 15 #define BOOST_GEOMETRY_STRATEGIES_CONCEPTS_SEGMENT_INTERSECT_CONCEPT_HPP 16 17 18 //NOT FINISHED! 19 20 #include <boost/concept_check.hpp> 21 22 23 namespace boost { namespace geometry { namespace concepts 24 { 25 26 27 /*! 28 \brief Checks strategy for segment intersection 29 \ingroup segment_intersection 30 */ 31 template <typename Strategy> 32 class SegmentIntersectStrategy 33 { 34 #ifndef DOXYGEN_NO_CONCEPT_MEMBERS 35 36 // 1) must define return_type 37 typedef typename Strategy::return_type return_type; 38 39 // 2) must define point_type (of segment points) 40 //typedef typename Strategy::point_type point_type; 41 42 // 3) must define segment_type 1 and 2 (of segment points) 43 typedef typename Strategy::segment_type1 segment_type1; 44 typedef typename Strategy::segment_type2 segment_type2; 45 46 47 struct check_methods 48 { applyboost::geometry::concepts::SegmentIntersectStrategy::check_methods49 static void apply() 50 { 51 Strategy const* str; 52 53 return_type* rt; 54 //point_type const* p; 55 segment_type1 const* s1; 56 segment_type2 const* s2; 57 58 // 4) must implement a method apply 59 // having two segments 60 *rt = str->apply(*s1, *s2); 61 62 } 63 }; 64 65 66 public : BOOST_CONCEPT_USAGE(SegmentIntersectStrategy)67 BOOST_CONCEPT_USAGE(SegmentIntersectStrategy) 68 { 69 check_methods::apply(); 70 } 71 #endif 72 }; 73 74 75 76 }}} // namespace boost::geometry::concepts 77 78 #endif // BOOST_GEOMETRY_STRATEGIES_CONCEPTS_SEGMENT_INTERSECT_CONCEPT_HPP 79