$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r78182 - in sandbox/gtl: boost/polygon libs/polygon/benchmark libs/polygon/example libs/polygon/test
From: sydorchuk.andriy_at_[hidden]
Date: 2012-04-24 16:02:05
Author: asydorchuk
Date: 2012-04-24 16:01:59 EDT (Tue, 24 Apr 2012)
New Revision: 78182
URL: http://svn.boost.org/trac/boost/changeset/78182
Log:
Renaming directed_line_segment_... to segment_...
Updating Voronoi code accordingly.
Added:
   sandbox/gtl/boost/polygon/segment_concept.hpp
      - copied, changed from r78172, /sandbox/gtl/boost/polygon/directed_line_segment_concept.hpp
   sandbox/gtl/boost/polygon/segment_data.hpp
      - copied, changed from r78172, /sandbox/gtl/boost/polygon/directed_line_segment_data.hpp
   sandbox/gtl/boost/polygon/segment_set_data.hpp
      - copied, changed from r78172, /sandbox/gtl/boost/polygon/directed_line_segment_set_data.hpp
   sandbox/gtl/boost/polygon/segment_traits.hpp
      - copied, changed from r78172, /sandbox/gtl/boost/polygon/directed_line_segment_traits.hpp
Removed:
   sandbox/gtl/boost/polygon/directed_line_segment_concept.hpp
   sandbox/gtl/boost/polygon/directed_line_segment_data.hpp
   sandbox/gtl/boost/polygon/directed_line_segment_set_data.hpp
   sandbox/gtl/boost/polygon/directed_line_segment_traits.hpp
Text files modified: 
   sandbox/gtl/boost/polygon/polygon.hpp                             |     8                                         
   sandbox/gtl/boost/polygon/segment_concept.hpp                     |   210 ++++++++++++++++++++--------------------
   sandbox/gtl/boost/polygon/segment_data.hpp                        |    30 ++--                                    
   sandbox/gtl/boost/polygon/segment_set_data.hpp                    |    46 ++++----                                
   sandbox/gtl/boost/polygon/segment_traits.hpp                      |    12 +-                                      
   sandbox/gtl/boost/polygon/voronoi.hpp                             |     8                                         
   sandbox/gtl/libs/polygon/benchmark/voronoi_benchmark_segments.cpp |     4                                         
   sandbox/gtl/libs/polygon/example/voronoi_basic_tutorial.cpp       |     4                                         
   sandbox/gtl/libs/polygon/test/voronoi_benchmark_test.cpp          |     4                                         
   sandbox/gtl/libs/polygon/test/voronoi_builder_test.cpp            |    64 ++++++------                            
   10 files changed, 196 insertions(+), 194 deletions(-)
Deleted: sandbox/gtl/boost/polygon/directed_line_segment_concept.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/directed_line_segment_concept.hpp	2012-04-24 16:01:59 EDT (Tue, 24 Apr 2012)
+++ (empty file)
@@ -1,758 +0,0 @@
-/*
-  Copyright 2008 Intel Corporation
- 
-  Use, modification and distribution are subject to the Boost Software License,
-  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-  http://www.boost.org/LICENSE_1_0.txt).
-*/
-#ifndef BOOST_POLYGON_DIRECTED_LINE_SEGMENT_CONCEPT_HPP
-#define BOOST_POLYGON_DIRECTED_LINE_SEGMENT_CONCEPT_HPP
-#include "isotropy.hpp"
-#include "directed_line_segment_data.hpp"
-#include "directed_line_segment_traits.hpp"
-#include "rectangle_concept.hpp"
-#include "detail/polygon_arbitrary_formation.hpp"
-
-namespace boost { namespace polygon{
-  struct directed_line_segment_concept {};
- 
-  template <typename T>
-  struct is_directed_line_segment_concept { typedef gtl_no type; };
-  template <>
-  struct is_directed_line_segment_concept<directed_line_segment_concept> {
-    typedef gtl_yes type;
-  };
-
-  template <typename T>
-  struct is_mutable_directed_line_segment_concept { typedef gtl_no type; };
-  template <>
-  struct is_mutable_directed_line_segment_concept<directed_line_segment_concept> {
-    typedef gtl_yes type;
-  };
-
-  template <typename T, typename CT>
-  struct directed_line_segment_distance_type_by_concept {
-    typedef void type;
-  };
-
-  template <typename T>
-  struct directed_line_segment_distance_type_by_concept<T, gtl_yes> { 
-    typedef typename coordinate_traits<
-      typename directed_line_segment_traits<T>::coordinate_type
-    >::coordinate_distance type;
-  };
-
-  template <typename T>
-  struct directed_line_segment_distance_type {
-    typedef typename directed_line_segment_distance_type_by_concept<
-      T,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<T>::type
-      >::type
-    >::type type;
-  };
-
-  template <typename T, typename CT>
-  struct directed_line_segment_point_type_by_concept { typedef void type; };
-  template <typename T>
-  struct directed_line_segment_point_type_by_concept<T, gtl_yes> { 
-    typedef typename directed_line_segment_traits<T>::point_type type;
-  };
-
-  template <typename T>
-  struct directed_line_segment_point_type {
-    typedef typename directed_line_segment_point_type_by_concept<
-      T,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<T>::type
-      >::type
-    >::type type;
-  };
-
-  template <typename T, typename CT>
-  struct directed_line_segment_coordinate_type_by_concept {
-    typedef void type;
-  };
-  
-  template <typename T>
-  struct directed_line_segment_coordinate_type_by_concept<T, gtl_yes> { 
-    typedef typename directed_line_segment_traits<T>::coordinate_type type;
-  };
-
-  template <typename T>
-  struct directed_line_segment_coordinate_type {
-    typedef typename directed_line_segment_coordinate_type_by_concept<
-      T,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<T>::type
-      >::type
-    >::type type;
-  };
-
-  struct y_s_get : gtl_yes {};
-
-  template <typename T>
-  typename enable_if<
-    typename gtl_and<
-      y_s_get,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<T>::type
-      >::type
-    >::type,
-    typename directed_line_segment_point_type<T>::type
-  >::type
-  get(const T& segment, direction_1d dir) {
-    return directed_line_segment_traits<T>::get(segment, dir); 
-  }
-
-  struct y_s_set : gtl_yes {};
-
-  template <typename T, typename point_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_set,
-      typename is_mutable_directed_line_segment_concept<
-        typename geometry_concept<T>::type
-      >::type
-    >::type,
-    void
-  >::type
-  set(T& segment, direction_1d dir, point_type value) {
-    directed_line_segment_mutable_traits<T>::set(segment, dir, value);
-  }
-
-  struct y_s_construct : gtl_yes {};
-  
-  template <typename T, typename T2, typename T3>
-  typename enable_if<
-    typename gtl_and<
-      y_s_construct,
-      typename is_mutable_directed_line_segment_concept<
-        typename geometry_concept<T>::type
-      >::type
-    >::type,
-    T
-  >::type
-  construct(T2 low_value, T3 high_value) {
-    return directed_line_segment_mutable_traits<T>::construct(low_value, high_value);
-  }
-
-  struct y_s_copy_construct : gtl_yes {};
-
-  template <typename T, typename T2>
-  typename enable_if<
-    typename gtl_and_3<
-      y_s_copy_construct,
-      typename is_mutable_directed_line_segment_concept<
-        typename geometry_concept<T>::type
-      >::type,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<T2>::type
-      >::type
-    >::type,
-    T
-  >::type
-  copy_construct(const T2& segment) {
-    return construct<T>
-      (get(segment, LOW ),
-       get(segment, HIGH));
-  }
-
-  struct y_s_assign : gtl_yes {};
-
-  template <typename T1, typename T2>
-  typename enable_if<
-    typename gtl_and_3<
-      y_s_assign,
-        typename is_mutable_directed_line_segment_concept<
-          typename geometry_concept<T1>::type
-        >::type,
-        typename is_directed_line_segment_concept<
-          typename geometry_concept<T2>::type
-        >::type
-    >::type,
-    T1
-  >::type &
-  assign(T1& lvalue, const T2& rvalue) {
-    lvalue = copy_construct<T1>(rvalue);
-    return lvalue;
-  }
-
-  struct y_s_equivalence : gtl_yes {};
-
-  template <typename T, typename T2>
-  typename enable_if<
-    typename gtl_and_3<
-      y_s_equivalence,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<T>::type
-      >::type,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<T2>::type
-      >::type
-    >::type,
-    bool
-  >::type
-  equivalence(const T& segment1, const T2& segment2) {
-    return get(segment1, LOW) == get(segment2, LOW) &&
-      get(segment1, HIGH) == get(segment2, HIGH);
-  }
-  
-  struct y_s_on_above_or_below : gtl_yes {};
-
-  //-1 for below, 0 for on and 1 for above
-  template <typename segment_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_on_above_or_below,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type
-    >::type,
-    bool
-  >::type 
-  on_above_or_below(const segment_type& segment,
-                    typename directed_line_segment_point_type<segment_type>::type value) {
-    typedef polygon_arbitrary_formation<
-      typename directed_line_segment_coordinate_type<segment_type>::type
-    > paf;
-    typename paf::Point pt, l, h;
-    assign(pt, value);
-    assign(l, low(segment));
-    assign(h, high(segment));
-    return paf::on_above_or_below(pt, typename paf::half_edge(l, h));
-  }
-
-  struct y_s_contains : gtl_yes {};
-
-  template <typename segment_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_contains,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type
-    >::type,
-    bool
-  >::type 
-  contains(const segment_type& segment,
-           typename directed_line_segment_point_type<segment_type>::type value,
-           bool consider_touch = true ) {
-    if(on_above_or_below(segment, value) == 0) {
-      rectangle_data<typename directed_line_segment_coordinate_type<segment_type>::type> rect;
-      set_points(rect, low(segment), high(segment));
-      if(area(rect) == 0.0) {
-        if(!consider_touch) {
-          return !equivalence(value, low(segment)) &&
-                 !equivalence(value, high(segment));
-        }
-      }
-      return contains(rect, value, consider_touch);
-    }
-    return false;
-  }
-
-  struct y_s_contains2 : gtl_yes {};
-
-  template <typename segment_type, typename segment_type_2>
-  typename enable_if<
-    typename gtl_and_3<
-      y_s_contains2,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type_2>::type
-      >::type
-    >::type,
-    bool
-  >::type
-  contains(const segment_type& segment,
-           const segment_type_2& value,
-           bool consider_touch = true) {
-    return contains(segment, get(value, LOW), consider_touch) &&
-           contains(segment, get(value, HIGH), consider_touch);
-  }
-
-  struct y_s_low : gtl_yes {};
-  
-  // get the low point
-  template <typename segment_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_low,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type
-    >::type,
-    typename directed_line_segment_point_type<segment_type>::type
-  >::type
-  low(const segment_type& segment) {
-    return get(segment, LOW);
-  }
-
-  struct y_s_high : gtl_yes {};
-
-  // get the high point
-  template <typename segment_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_high,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type
-    >::type,
-    typename directed_line_segment_point_type<segment_type>::type
-  >::type
-  high(const segment_type& segment) {
-    return get(segment, HIGH);
-  }
-
-  struct y_s_center : gtl_yes {};
-
-  // get the center point
-  template <typename segment_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_center,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type
-    >::type,
-    typename directed_line_segment_point_type<segment_type>::type
-  >::type
-  center(const segment_type& segment) { 
-    return construct<typename directed_line_segment_coordinate_type<segment_type>::type>(
-        (x(high(segment)) + x(low(segment)))/2,
-        (y(high(segment)) + y(low(segment)))/2); 
-  }
-
-  struct y_s_low2 : gtl_yes {};
-
-  // set the low point to v
-  template <typename segment_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_low2,
-      typename is_mutable_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type
-    >::type,
-    void
-  >::type 
-  low(segment_type& segment,
-      typename directed_line_segment_point_type<segment_type>::type v) {
-    set(segment, LOW, v);
-  }
-  
-  struct y_s_high2 : gtl_yes {};
-
-  // set the high coordinate to v
-  template <typename segment_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_high2,
-      typename is_mutable_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type
-    >::type,
-    void
-  >::type 
-  high(segment_type& segment,
-       typename directed_line_segment_point_type<segment_type>::type v) {
-    set(segment, HIGH, v);
-  }
-
-  struct y_s_length : gtl_yes {};
-
-  template <typename segment_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_length,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type
-    >::type,
-    typename directed_line_segment_point_type<segment_type>::type
-  >::type
-  length(const segment_type& segment) {
-    return euclidean_distance(low(segment), high(segment));
-  }
-
-  struct y_s_scale_up : gtl_yes {};
-
-  // scale segment by factor
-  template <typename segment_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_scale_up,
-      typename is_mutable_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type
-    >::type,
-    segment_type
-  >::type &
-  scale_up(segment_type& segment, 
-           typename coordinate_traits<
-             typename directed_line_segment_coordinate_type<segment_type>::type
-           >::unsigned_area_type factor) {
-    typename directed_line_segment_point_type<segment_type>::type l = low(segment), h = high(segment);
-    low(segment, scale_up(l, factor));
-    high(segment, scale_up(h, factor));
-    return segment;
-  }
-
-  struct y_s_scale_down : gtl_yes {};
-
-  template <typename segment_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_scale_down,
-      typename is_mutable_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type
-    >::type,
-    segment_type
-  >::type &
-  scale_down(segment_type& segment, 
-             typename coordinate_traits<
-               typename directed_line_segment_coordinate_type<segment_type>::type
-             >::unsigned_area_type factor) {
-    typename directed_line_segment_point_type<segment_type>::type l = low(segment), h = high(segment);
-    low(segment, scale_down(l, factor));
-    high(segment, scale_down(h, factor));
-    return segment;
-  }
-
-  struct y_s_scale : gtl_yes {};
-
-  template <typename segment_type, typename scaling_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_scale,
-      typename is_mutable_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type
-    >::type,
-    segment_type
-  >::type &
-  scale(segment_type& segment, scaling_type factor) {
-    typename directed_line_segment_point_type<segment_type>::type l = low(segment), h = high(segment);
-    low(segment, scale(l, factor));
-    high(segment, scale(h, factor));
-    return segment;
-  }
-
-
-  struct y_s_transform : gtl_yes {};
-
-  template <typename segment_type, typename transform_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_transform,
-      typename is_mutable_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type
-    >::type,
-    segment_type
-  >::type &
-  transform(segment_type& segment, const transform_type& val) {
-    typename directed_line_segment_point_type<segment_type>::type l = low(segment), h = high(segment);
-    low(segment, transform(l, val));
-    high(segment, transform(h, val));
-    return segment;
-  }
-
-  struct y_s_move : gtl_yes {};
-
-  // move segment by delta
-  template <typename segment_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_move,
-      typename is_mutable_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type
-    >::type,
-    segment_type
-  >::type &
-  move(segment_type& segment, orientation_2d orient,
-      typename directed_line_segment_coordinate_type<segment_type>::type displacement) {
-    typename directed_line_segment_point_type<segment_type>::type l = low(segment), h = high(segment);
-    low(segment, move(l, orient, displacement));
-    high(segment, move(h, orient, displacement));
-    return segment;
-  }
-  
-  struct y_s_convolve : gtl_yes {};
-
-  // convolve this with b
-  template <typename segment_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_convolve,
-      typename is_mutable_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type
-    >::type,
-    segment_type
-  >::type &
-  convolve(segment_type& segment,
-      const typename directed_line_segment_point_type<segment_type>::type& b) {
-    typename directed_line_segment_point_type<segment_type>::type l = low(segment), h = high(segment);
-    low(segment, convolve(l, b));
-    high(segment, convolve(h, b));
-    return segment;
-  }
-
-  struct y_s_deconvolve : gtl_yes {};
-
-  // deconvolve this with b
-  template <typename segment_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_deconvolve,
-      typename is_mutable_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type
-    >::type,
-    segment_type
-  >::type &
-  deconvolve(segment_type& segment,
-      const typename directed_line_segment_point_type<segment_type>::type& b) {
-    typename directed_line_segment_point_type<segment_type>::type l = low(segment), h = high(segment);
-    low(segment, deconvolve(l, b));
-    high(segment, deconvolve(h, b));
-    return segment;
-  }
-
-  struct y_s_e_dist1 : gtl_yes {};
-
-  // distance from a point to a segment
-  template <typename segment_type>
-  typename enable_if<
-    typename gtl_and<
-      y_s_e_dist1,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type
-    >::type,
-    typename directed_line_segment_distance_type<segment_type>::type
-  >::type
-  euclidean_distance(const segment_type& segment,
-      typename directed_line_segment_point_type<segment_type>::type position) {
-    typedef typename directed_line_segment_distance_type<segment_type>::type Unit;
-    Unit x1 = x(low(segment));
-    Unit y1 = y(low(segment));
-    Unit x2 = x(high(segment));
-    Unit y2 = y(high(segment));
-    Unit X = x(position);
-    Unit Y = y(position);
-    Unit A = X - x1;
-    Unit B = Y - y1;
-    Unit C = x2 - x1;
-    Unit D = y2 - y1;
-    Unit length_sq = C * C + D * D;
-    Unit param = (A * C + B * D)/length_sq;
-    if(param > 1.0) {
-      return euclidean_distance(high(segment), position);
-    } else if(param < 0.0) {
-      return euclidean_distance(low(segment), position);
-    } 
-    Unit denom = sqrt(length_sq);
-    if(denom == 0.0)
-      return 0.0;
-    Unit result = (A * D - C * B) / denom;
-    if(result < 0.0)
-      result *= -1;
-    return result;
-  }
-
-  struct y_s_e_dist2 : gtl_yes {};
-  
-  // distance between two segments
-  template <typename segment_type, typename segment_type_2>
-  typename enable_if< 
-    typename gtl_and_3<
-      y_s_e_dist2,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type_2>::type
-      >::type
-    >::type,
-    typename directed_line_segment_distance_type<segment_type>::type
-  >::type
-  euclidean_distance(const segment_type& segment,
-                     const segment_type_2& b) {
-    typename directed_line_segment_distance_type<segment_type>::type result1 =
-        euclidean_distance(segment, low(b)),
-    result2 = euclidean_distance(segment, high(b));
-    if(result2 < result1) result1 = result2;
-    return result1;
-  }
-  
-  struct y_s_e_intersects : gtl_yes {};
-
-  // check if Interval b intersects `this` Interval
-  template <typename segment_type, typename segment_type_2>
-  typename enable_if<
-    typename gtl_and_3<
-      y_s_e_intersects, 
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type, 
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type_2>::type
-      >::type
-    >::type,
-    bool
-  >::type 
-  intersects(const segment_type& segment,
-             const segment_type_2& b,
-             bool consider_touch = true) {
-    if(consider_touch) {
-      if(low(segment) == low(b) ||
-         low(segment) == high(b) ||
-         high(segment) == low(b) ||
-         high(segment) == high(b))
-        return true;
-    }
-    typedef polygon_arbitrary_formation<
-      typename directed_line_segment_coordinate_type<segment_type>::type
-    > paf;
-    typename paf::Point l, h, l2, h2;
-    assign(l, low(segment));
-    assign(h, high(segment));
-    assign(l2, low(b));
-    assign(h2, high(b));
-    return paf::intersects(typename paf::half_edge(l, h),
-                           typename paf::half_edge(l2, h2));
-  }
-
-  struct y_s_e_bintersect : gtl_yes {};
-
-  // check if Interval b partially overlaps `this` Interval
-  template <typename segment_type, typename segment_type_2>
-  typename enable_if< 
-    typename gtl_and_3<
-      y_s_e_bintersect,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type_2>::type
-      >::type
-    >::type,
-    bool
-  >::type 
-  boundaries_intersect(const segment_type& segment, const segment_type_2& b,
-                       bool consider_touch = true) {
-    return (contains(segment, low(b), consider_touch) || 
-            contains(segment, high(b), consider_touch)) &&
-      (contains(b, low(segment), consider_touch) || 
-       contains(b, high(segment), consider_touch));
-  }
-
-  struct y_s_abuts1 : gtl_yes {};
-
-  // check if they are end to end
-  template <typename segment_type, typename segment_type_2>
-  typename enable_if<
-    typename gtl_and_3<
-      y_s_abuts1,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type_2>::type
-      >::type
-    >::type,
-    bool
-  >::type
-  abuts(const segment_type& segment,
-        const segment_type_2& b,
-        direction_1d dir) {
-    return dir.to_int() ? equivalence(low(b) , high(segment)) :
-                          equivalence(low(segment) , high(b));
-  }
-
-  struct y_s_abuts2 : gtl_yes {};
-
-  // check if they are end to end
-  template <typename segment_type, typename segment_type_2>
-  typename enable_if< 
-    typename gtl_and_3<
-      y_s_abuts2,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type_2>::type
-      >::type
-    >::type,
-    bool
-  >::type 
-  abuts(const segment_type& segment, const segment_type_2& b) {
-    return abuts(segment, b, HIGH) || abuts(segment, b, LOW);
-  } 
-
-  struct y_s_intersect : gtl_yes {};
-
-  // set point to the intersection of segment and b
-  template <typename point_type,
-            typename segment_type,
-            typename segment_type_2>
-  typename enable_if<
-    typename gtl_and_4<
-      y_s_intersect,
-      typename is_mutable_point_concept<
-        typename geometry_concept<point_type>::type
-      >::type,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type>::type
-      >::type,
-      typename is_directed_line_segment_concept<
-        typename geometry_concept<segment_type_2>::type
-      >::type
-    >::type,
-    bool
-  >::type 
-  intersection(point_type& intersection,
-               const segment_type& segment,
-               const segment_type_2& b, 
-               bool projected = false,
-               bool round_closest = false) {
-    typedef polygon_arbitrary_formation<
-      typename directed_line_segment_coordinate_type<segment_type>::type
-    > paf;
-    typename paf::Point pt;
-    typename paf::Point l, h, l2, h2;
-    assign(l, low(segment));
-    assign(h, high(segment));
-    assign(l2, low(b));
-    assign(h2, high(b));
-    typename paf::half_edge he1(l, h), he2(l2, h2);
-    typename paf::compute_intersection_pack pack;
-    if(pack.compute_intersection(pt, he1, he2, projected, round_closest)) {
-      assign(intersection, pt);
-      return true;
-    }
-    return false;
-  }
-
-  template <class T>
-  template <class T2>
-  directed_line_segment_data<T>& directed_line_segment_data<T>::operator=(const T2& rvalue) {
-    assign(*this, rvalue);
-    return *this;
-  }
-
-  template <typename T>
-  struct geometry_concept<directed_line_segment_data<T> > {
-    typedef directed_line_segment_concept type;
-  };
-}
-}
-#endif
Deleted: sandbox/gtl/boost/polygon/directed_line_segment_data.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/directed_line_segment_data.hpp	2012-04-24 16:01:59 EDT (Tue, 24 Apr 2012)
+++ (empty file)
@@ -1,85 +0,0 @@
-/*
-  Copyright 2008 Intel Corporation
- 
-  Use, modification and distribution are subject to the Boost Software License,
-  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-  http://www.boost.org/LICENSE_1_0.txt).
-*/
-#ifndef BOOST_POLYGON_DIRECTED_LINE_SEGMENT_DATA_HPP
-#define BOOST_POLYGON_DIRECTED_LINE_SEGMENT_DATA_HPP
-#include "isotropy.hpp"
-#include "point_data.hpp"
-namespace boost { namespace polygon{
-  template <typename T>
-  class directed_line_segment_data {
-  public:
-    typedef T coordinate_type;
-    typedef point_data<T> point_type;
-    inline directed_line_segment_data()
-#ifndef BOOST_POLYGON_MSVC 
-      :points_() 
-#endif 
-    {} 
-    inline directed_line_segment_data(point_type low, point_type high)
-#ifndef BOOST_POLYGON_MSVC 
-      :points_() 
-#endif 
-    {
-      points_[LOW] = low; points_[HIGH] = high; 
-    }
-    inline directed_line_segment_data(const directed_line_segment_data& that)
-#ifndef BOOST_POLYGON_MSVC 
-      :points_() 
-#endif 
-    {
-      (*this) = that; 
-    }
-    inline directed_line_segment_data& operator=(
-        const directed_line_segment_data& that) {
-      points_[0] = that.points_[0]; points_[1] = that.points_[1];
-      return *this;
-    }
-    template <typename T2>
-    inline directed_line_segment_data& operator=(const T2& rvalue);
-    inline point_type get(direction_1d dir) const {
-      return points_[dir.to_int()]; 
-    }
-    inline point_type low() const { return points_[0]; }
-    inline point_type low(point_type low) {
-      points_[0] = low;
-      return *this;
-    }
-    inline point_type high() const { return points_[1]; }
-    inline point_type high(point_type high) {
-        points_[1] = high;
-        return *this;
-    }
-    inline bool operator==(const directed_line_segment_data& that) const {
-      return low() == that.low() && high() == that.high(); }
-    inline bool operator!=(const directed_line_segment_data& that) const {
-      return low() != that.low() || high() != that.high(); }
-    inline bool operator<(const directed_line_segment_data& that) const {
-      if(points_[0] < that.points_[0]) return true;
-      if(points_[0] > that.points_[0]) return false;
-      if(points_[1] < that.points_[1]) return true;
-      return false;
-    }
-    inline bool operator<=(const directed_line_segment_data& that) const {
-      return !(that < *this);
-    }
-    inline bool operator>(const directed_line_segment_data& that) const {
-      return that < *this;
-    }
-    inline bool operator>=(const directed_line_segment_data& that) const {
-      return !((*this) < that);
-    }
-  inline void set(direction_1d dir, point_type value) {
-    points_[dir.to_int()] = value; 
-  }
-
-  private:
-  point_type points_[2]; 
-};
-}
-}
-#endif
Deleted: sandbox/gtl/boost/polygon/directed_line_segment_set_data.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/directed_line_segment_set_data.hpp	2012-04-24 16:01:59 EDT (Tue, 24 Apr 2012)
+++ (empty file)
@@ -1,271 +0,0 @@
-/*
-  Copyright 2008 Intel Corporation
- 
-  Use, modification and distribution are subject to the Boost Software License,
-  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-  http://www.boost.org/LICENSE_1_0.txt).
-*/
-#ifndef BOOST_POLYGON_DIRECTED_LINE_SEGMENT_SET_DATA_HPP
-#define BOOST_POLYGON_DIRECTED_LINE_SEGMENT_SET_DATA_HPP
-
-namespace boost { namespace polygon{
-  template <typename T>
-  class directed_line_segment_set_data {
-  public:
-    typedef T coordinate_type;
-    typedef point_data<T> point_type;
-    typedef directed_line_segment_data<T> directed_line_segment_type;
-    typedef std::vector<directed_line_segment_type> value_type;
-    typedef typename std::vector<directed_line_segment_type>::const_iterator iterator_type;
-
-    inline directed_line_segment_set_data() : data_(), dirty_(false), unsorted_(false) {}
-    inline directed_line_segment_set_data(const directed_line_segment_set_data& that): 
-      data_(that.data_), dirty_(that.dirty_), unsorted_(that.unsorted_) {}
-    inline directed_line_segment_set_data& operator=(const directed_line_segment_set_data& that) {
-      if(this == &that) return *this;
-      data_ = that.data_;
-      dirty_ = that.dirty_;
-      unsorted_ = that.unsorted_;
-      return *this;
-    }
-    template <typename T2>
-    inline directed_line_segment_set_data& operator=(const T2& rvalue) {
-      data_.clear();
-      bool unsorted = !sorted(rvalue);
-      bool dirty = !dirty(rvalue);
-      insert(begin(rvalue), end(rvalue));
-      unsorted_ = unsorted;
-      dirty_ = dirty;
-      return *this;
-    }
-
-    inline bool operator==(const directed_line_segment_set_data& that) const {
-      clean();
-      that.clean();
-      sort();
-      that.sort();
-      return data_ == that.data_;
-    } 
-    inline bool operator!=(const directed_line_segment_set_data& that) const {
-      return !(*this == that);
-    }
-
-    template <typename iT>
-    inline void insert(iT begin_segments, iT end_segments) {
-      data_.clear();
-      for(; begin_segments != end_segments; ++begin_segments) {
-        insert(*begin_segments);
-      }
-    }
-
-    template <typename ST>
-    inline void insert(ST segment) {
-      unsorted_ = true;
-      dirty_ = true;
-      directed_line_segment_type tmp_seg;
-      assign(tmp_seg, segment);
-      data_.push_back(tmp_seg);
-    }
-
-    inline void clear() { data_.clear(); unsorted_ = false; dirty_ = false; }
-
-    inline iterator_type begin() const {
-      return data_.begin();
-    }
-
-    inline iterator_type end() const {
-      return data_.end();
-    }
-
-    const value_type& value() const {
-      return data_;
-    }
-
-    template <typename output_container>
-    inline void get(output_container& output) const {
-      for(std::size_t i = 0; i < size(); ++i) {
-        output.push_back(typename output_container::value_type());
-        assign(output.back(), data_[i]);
-      }
-    }
-
-    inline bool empty() const { return data_.empty(); }
-
-    inline std::size_t size() const { clean(); return data_.size(); }
-
-    inline std::size_t capacity() const { return data_.capacity(); }
-
-    inline void reserve(std::size_t size) { return data_.reserve(size); }
-
-    inline bool sorted() const { return !unsorted_; }
-
-    inline bool dirty() const { return dirty_; }
-
-    void clean() const {
-      if (!dirty_) return;
-      typedef T Unit;
-      typedef typename scanline_base<Unit>::Point Point;
-      typedef typename scanline_base<Unit>::half_edge half_edge;
-      typedef int segment_id;
-      std::vector<std::pair<half_edge, segment_id> > half_edges;
-      std::vector<std::pair<half_edge, segment_id> > half_edges_out;
-      segment_id id = 0;
-      half_edges.reserve(data_.size());
-      for(iterator_type itr = begin(); itr != end(); ++itr) {
-        Point l = (*itr).low();
-        Point h = (*itr).high();
-        half_edges.push_back(std::make_pair(half_edge(l, h), id++));
-      }
-      half_edges_out.reserve(half_edges.size());
-      //apparently no need to pre-sort data when calling validate_scan
-      line_intersection<Unit>::validate_scan(half_edges_out, half_edges.begin(), half_edges.end());
-      value_type result;
-      result.reserve(half_edges_out.size());
-      for(std::size_t i = 0; i < half_edges_out.size(); ++i) {
-        id = half_edges_out[i].second;
-        Point l = half_edges_out[i].first.first;
-        Point h = half_edges_out[i].first.second;
-        directed_line_segment_type orig_seg = data_[id];
-        if(orig_seg.high() < orig_seg.low())
-          std::swap(l, h);
-        result.push_back(directed_line_segment_type(l, h));
-      }
-      std::swap(result, data_);
-      dirty_ = false;
-      unsorted_ = true;
-    };
-
-    void sort() const{
-      if(unsorted_) {
-        polygon_sort(data_.begin(), data_.end());
-        unsorted_ = false;
-      }
-    }
-
-    template <typename input_iterator_type>
-    void set(input_iterator_type input_begin, input_iterator_type input_end) {
-      clear();
-      reserve(std::distance(input_begin,input_end));
-      insert(input_begin, input_end);
-      dirty_ = true;
-      unsorted_ = true;
-    }
-
-    void set(const value_type& value) {
-      data_ = value; 
-      dirty_ = true;
-      unsorted_ = true;
-    }
-
-    template <typename rectangle_type>
-    bool extents(rectangle_type& rect) {
-      if(empty()) return false;
-      bool first_iteration = true;
-      for(iterator_type itr = begin();
-          itr != end(); ++itr) {
-        rectangle_type edge_box;
-        set_points(edge_box, (*itr).low(), (*itr).high());
-        if(first_iteration)
-          rect = edge_box;
-        else
-          encompass(rect, edge_box);
-        first_iteration = false;
-      }
-      return true;
-    }
-
-    template <typename transform_type>
-    inline directed_line_segment_set_data& 
-    transform(const transform_type& tr) {
-      for(typename value_type::iterator itr = data_.begin(); itr != data_.end(); ++itr) {
-        point_type l = (*itr).low();
-        point_type h = (*itr).high();
-        ::boost::polygon::transform(l, tr);
-        ::boost::polygon::transform(h, tr);
-        (*itr).low(l);
-        (*itr).high(h);
-      }
-      unsorted_ = true;
-      return *this;
-    }
-
-    inline directed_line_segment_set_data& 
-    scale_up(typename coordinate_traits<coordinate_type>::unsigned_area_type factor) {
-      for(typename value_type::iterator itr = data_.begin(); itr != data_.end(); ++itr) {
-        point_type l = (*itr).low();
-        point_type h = (*itr).high();
-        ::boost::polygon::scale_up(l, factor);
-        ::boost::polygon::scale_up(h, factor);
-        (*itr).low(l);
-        (*itr).high(h);
-      }
-      return *this;
-    }
-    
-    inline directed_line_segment_set_data& 
-    scale_down(typename coordinate_traits<coordinate_type>::unsigned_area_type factor) {
-      for(typename value_type::iterator itr = data_.begin(); itr != data_.end(); ++itr) {
-        point_type l = (*itr).low();
-        point_type h = (*itr).high();
-        ::boost::polygon::scale_down(l, factor);
-        ::boost::polygon::scale_down(h, factor);
-        (*itr).low(l);
-        (*itr).high(h);
-      }
-      return *this;
-    }
-    
-    template <typename scaling_type>
-    inline directed_line_segment_set_data& scale(const scaling_type& scaling) {
-      for(typename value_type::iterator itr = data_.begin(); itr != data_.end(); ++itr) {
-        point_type l = (*itr).low();
-        point_type h = (*itr).high();
-        ::boost::polygon::scale(l, scaling);
-        ::boost::polygon::scale(h, scaling);
-        (*itr).low(l);
-        (*itr).high(h);
-      }
-      return *this;
-    }
-
-    template <typename cT>
-    std::size_t get_intersection_points(cT& output_points) const {
-      typedef T Unit;
-      typedef typename scanline_base<Unit>::Point Point;
-      typedef typename scanline_base<Unit>::half_edge half_edge;
-      typedef int segment_id;
-      std::vector<std::pair<half_edge, segment_id> > half_edges;
-      std::vector<std::pair<half_edge, segment_id> > half_edges_out;
-      segment_id id = 0;
-      half_edges.reserve(data_.size());
-      for(iterator_type itr = begin(); itr != end(); ++itr) {
-        Point l = (*itr).low();
-        Point h = (*itr).high();
-        half_edges.push_back(std::make_pair(half_edge(l, h), id++));
-      }
-      half_edges_out.reserve(half_edges.size());
-      std::vector<std::set<Point> > intersection_points(half_edges.size(), std::set<Point>());
-      line_intersection<Unit>::validate_scan_divide_and_conquer(intersection_points, half_edges.begin(), half_edges.end());
-      std::vector<Point> tmp_points;
-      for(std::size_t i = 0; i < intersection_points.size(); ++i) {
-        typename std::set<Point>::iterator itr2 = intersection_points[i].begin();
-        for(; itr2 != intersection_points[i].end(); ++itr2)
-          if(data_[i].low() != *itr2 && data_[i].high() != *itr2)
-            tmp_points.push_back(*itr2);
-      }
-      polygon_sort(tmp_points.begin(), tmp_points.end());
-      typename std::vector<Point>::iterator new_end = std::unique(tmp_points.begin(), tmp_points.end());
-      output_points.insert(output_points.end(), tmp_points.begin(), new_end);
-      return std::distance(tmp_points.begin(), new_end);
-    }
-
-
-private:
-    mutable value_type data_;
-    mutable bool dirty_;
-    mutable bool unsorted_;
-};
-
-}
-}
-#endif
Deleted: sandbox/gtl/boost/polygon/directed_line_segment_traits.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/directed_line_segment_traits.hpp	2012-04-24 16:01:59 EDT (Tue, 24 Apr 2012)
+++ (empty file)
@@ -1,42 +0,0 @@
-/*
-  Copyright 2008 Intel Corporation
- 
-  Use, modification and distribution are subject to the Boost Software License,
-  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-  http://www.boost.org/LICENSE_1_0.txt).
-*/
-#ifndef BOOST_POLYGON_DIRECTED_LINE_SEGMENT_TRAITS_HPP
-#define BOOST_POLYGON_DIRECTED_LINE_SEGMENT_TRAITS_HPP
-namespace boost { namespace polygon{
-  template <typename T>
-  struct directed_line_segment_traits {
-    typedef typename T::coordinate_type coordinate_type;
-    typedef typename T::point_type point_type;
-
-    static inline point_type get(const T& segment, direction_1d dir) {
-      return segment.get(dir); 
-    }
-  };
-
-  template <typename T>
-  struct directed_line_segment_mutable_traits {
-    template <typename Point1>
-    static inline void set(T& segment, direction_1d dir, const Point1& value) {
-      typename directed_line_segment_traits<T>::point_type p1;
-      assign(p1, value);
-      segment.set(dir, value); 
-    }
-    
-    template <typename Point1, typename Point2>
-    static inline T construct(const Point1& low_value, 
-                              const Point2& high_value) {
-      typename directed_line_segment_traits<T>::point_type p1, p2; 
-      assign(p1, low_value);
-      assign(p2, high_value);
-      return T(p1, p2); 
-    }
-  };
-}
-}
-#endif
-
Modified: sandbox/gtl/boost/polygon/polygon.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/polygon.hpp	(original)
+++ sandbox/gtl/boost/polygon/polygon.hpp	2012-04-24 16:01:59 EDT (Tue, 24 Apr 2012)
@@ -88,9 +88,9 @@
 
 #include "polygon_set_concept.hpp"
 
-#include "directed_line_segment_data.hpp"
-#include "directed_line_segment_set_data.hpp"
-#include "directed_line_segment_traits.hpp"
-#include "directed_line_segment_concept.hpp"
+#include "segment_data.hpp"
+#include "segment_set_data.hpp"
+#include "segment_traits.hpp"
+#include "segment_concept.hpp"
 
 #endif
Copied: sandbox/gtl/boost/polygon/segment_concept.hpp (from r78172, /sandbox/gtl/boost/polygon/directed_line_segment_concept.hpp)
==============================================================================
--- /sandbox/gtl/boost/polygon/directed_line_segment_concept.hpp	(original)
+++ sandbox/gtl/boost/polygon/segment_concept.hpp	2012-04-24 16:01:59 EDT (Tue, 24 Apr 2012)
@@ -5,85 +5,85 @@
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).
 */
-#ifndef BOOST_POLYGON_DIRECTED_LINE_SEGMENT_CONCEPT_HPP
-#define BOOST_POLYGON_DIRECTED_LINE_SEGMENT_CONCEPT_HPP
+#ifndef BOOST_POLYGON_SEGMENT_CONCEPT_HPP
+#define BOOST_POLYGON_SEGMENT_CONCEPT_HPP
 #include "isotropy.hpp"
-#include "directed_line_segment_data.hpp"
-#include "directed_line_segment_traits.hpp"
+#include "segment_data.hpp"
+#include "segment_traits.hpp"
 #include "rectangle_concept.hpp"
 #include "detail/polygon_arbitrary_formation.hpp"
 
 namespace boost { namespace polygon{
-  struct directed_line_segment_concept {};
+  struct segment_concept {};
  
   template <typename T>
-  struct is_directed_line_segment_concept { typedef gtl_no type; };
+  struct is_segment_concept { typedef gtl_no type; };
   template <>
-  struct is_directed_line_segment_concept<directed_line_segment_concept> {
+  struct is_segment_concept<segment_concept> {
     typedef gtl_yes type;
   };
 
   template <typename T>
-  struct is_mutable_directed_line_segment_concept { typedef gtl_no type; };
+  struct is_mutable_segment_concept { typedef gtl_no type; };
   template <>
-  struct is_mutable_directed_line_segment_concept<directed_line_segment_concept> {
+  struct is_mutable_segment_concept<segment_concept> {
     typedef gtl_yes type;
   };
 
   template <typename T, typename CT>
-  struct directed_line_segment_distance_type_by_concept {
+  struct segment_distance_type_by_concept {
     typedef void type;
   };
 
   template <typename T>
-  struct directed_line_segment_distance_type_by_concept<T, gtl_yes> { 
+  struct segment_distance_type_by_concept<T, gtl_yes> { 
     typedef typename coordinate_traits<
-      typename directed_line_segment_traits<T>::coordinate_type
+      typename segment_traits<T>::coordinate_type
     >::coordinate_distance type;
   };
 
   template <typename T>
-  struct directed_line_segment_distance_type {
-    typedef typename directed_line_segment_distance_type_by_concept<
+  struct segment_distance_type {
+    typedef typename segment_distance_type_by_concept<
       T,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<T>::type
       >::type
     >::type type;
   };
 
   template <typename T, typename CT>
-  struct directed_line_segment_point_type_by_concept { typedef void type; };
+  struct segment_point_type_by_concept { typedef void type; };
   template <typename T>
-  struct directed_line_segment_point_type_by_concept<T, gtl_yes> { 
-    typedef typename directed_line_segment_traits<T>::point_type type;
+  struct segment_point_type_by_concept<T, gtl_yes> { 
+    typedef typename segment_traits<T>::point_type type;
   };
 
   template <typename T>
-  struct directed_line_segment_point_type {
-    typedef typename directed_line_segment_point_type_by_concept<
+  struct segment_point_type {
+    typedef typename segment_point_type_by_concept<
       T,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<T>::type
       >::type
     >::type type;
   };
 
   template <typename T, typename CT>
-  struct directed_line_segment_coordinate_type_by_concept {
+  struct segment_coordinate_type_by_concept {
     typedef void type;
   };
   
   template <typename T>
-  struct directed_line_segment_coordinate_type_by_concept<T, gtl_yes> { 
-    typedef typename directed_line_segment_traits<T>::coordinate_type type;
+  struct segment_coordinate_type_by_concept<T, gtl_yes> { 
+    typedef typename segment_traits<T>::coordinate_type type;
   };
 
   template <typename T>
-  struct directed_line_segment_coordinate_type {
-    typedef typename directed_line_segment_coordinate_type_by_concept<
+  struct segment_coordinate_type {
+    typedef typename segment_coordinate_type_by_concept<
       T,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<T>::type
       >::type
     >::type type;
@@ -95,14 +95,14 @@
   typename enable_if<
     typename gtl_and<
       y_s_get,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<T>::type
       >::type
     >::type,
-    typename directed_line_segment_point_type<T>::type
+    typename segment_point_type<T>::type
   >::type
   get(const T& segment, direction_1d dir) {
-    return directed_line_segment_traits<T>::get(segment, dir); 
+    return segment_traits<T>::get(segment, dir); 
   }
 
   struct y_s_set : gtl_yes {};
@@ -111,14 +111,14 @@
   typename enable_if<
     typename gtl_and<
       y_s_set,
-      typename is_mutable_directed_line_segment_concept<
+      typename is_mutable_segment_concept<
         typename geometry_concept<T>::type
       >::type
     >::type,
     void
   >::type
   set(T& segment, direction_1d dir, point_type value) {
-    directed_line_segment_mutable_traits<T>::set(segment, dir, value);
+    segment_mutable_traits<T>::set(segment, dir, value);
   }
 
   struct y_s_construct : gtl_yes {};
@@ -127,14 +127,14 @@
   typename enable_if<
     typename gtl_and<
       y_s_construct,
-      typename is_mutable_directed_line_segment_concept<
+      typename is_mutable_segment_concept<
         typename geometry_concept<T>::type
       >::type
     >::type,
     T
   >::type
   construct(T2 low_value, T3 high_value) {
-    return directed_line_segment_mutable_traits<T>::construct(low_value, high_value);
+    return segment_mutable_traits<T>::construct(low_value, high_value);
   }
 
   struct y_s_copy_construct : gtl_yes {};
@@ -143,10 +143,10 @@
   typename enable_if<
     typename gtl_and_3<
       y_s_copy_construct,
-      typename is_mutable_directed_line_segment_concept<
+      typename is_mutable_segment_concept<
         typename geometry_concept<T>::type
       >::type,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<T2>::type
       >::type
     >::type,
@@ -164,10 +164,10 @@
   typename enable_if<
     typename gtl_and_3<
       y_s_assign,
-        typename is_mutable_directed_line_segment_concept<
+        typename is_mutable_segment_concept<
           typename geometry_concept<T1>::type
         >::type,
-        typename is_directed_line_segment_concept<
+        typename is_segment_concept<
           typename geometry_concept<T2>::type
         >::type
     >::type,
@@ -184,10 +184,10 @@
   typename enable_if<
     typename gtl_and_3<
       y_s_equivalence,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<T>::type
       >::type,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<T2>::type
       >::type
     >::type,
@@ -205,16 +205,16 @@
   typename enable_if<
     typename gtl_and<
       y_s_on_above_or_below,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type
     >::type,
     bool
   >::type 
   on_above_or_below(const segment_type& segment,
-                    typename directed_line_segment_point_type<segment_type>::type value) {
+                    typename segment_point_type<segment_type>::type value) {
     typedef polygon_arbitrary_formation<
-      typename directed_line_segment_coordinate_type<segment_type>::type
+      typename segment_coordinate_type<segment_type>::type
     > paf;
     typename paf::Point pt, l, h;
     assign(pt, value);
@@ -229,17 +229,17 @@
   typename enable_if<
     typename gtl_and<
       y_s_contains,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type
     >::type,
     bool
   >::type 
   contains(const segment_type& segment,
-           typename directed_line_segment_point_type<segment_type>::type value,
+           typename segment_point_type<segment_type>::type value,
            bool consider_touch = true ) {
     if(on_above_or_below(segment, value) == 0) {
-      rectangle_data<typename directed_line_segment_coordinate_type<segment_type>::type> rect;
+      rectangle_data<typename segment_coordinate_type<segment_type>::type> rect;
       set_points(rect, low(segment), high(segment));
       if(area(rect) == 0.0) {
         if(!consider_touch) {
@@ -258,10 +258,10 @@
   typename enable_if<
     typename gtl_and_3<
       y_s_contains2,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type_2>::type
       >::type
     >::type,
@@ -281,11 +281,11 @@
   typename enable_if<
     typename gtl_and<
       y_s_low,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type
     >::type,
-    typename directed_line_segment_point_type<segment_type>::type
+    typename segment_point_type<segment_type>::type
   >::type
   low(const segment_type& segment) {
     return get(segment, LOW);
@@ -298,11 +298,11 @@
   typename enable_if<
     typename gtl_and<
       y_s_high,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type
     >::type,
-    typename directed_line_segment_point_type<segment_type>::type
+    typename segment_point_type<segment_type>::type
   >::type
   high(const segment_type& segment) {
     return get(segment, HIGH);
@@ -315,14 +315,14 @@
   typename enable_if<
     typename gtl_and<
       y_s_center,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type
     >::type,
-    typename directed_line_segment_point_type<segment_type>::type
+    typename segment_point_type<segment_type>::type
   >::type
   center(const segment_type& segment) { 
-    return construct<typename directed_line_segment_coordinate_type<segment_type>::type>(
+    return construct<typename segment_coordinate_type<segment_type>::type>(
         (x(high(segment)) + x(low(segment)))/2,
         (y(high(segment)) + y(low(segment)))/2); 
   }
@@ -334,14 +334,14 @@
   typename enable_if<
     typename gtl_and<
       y_s_low2,
-      typename is_mutable_directed_line_segment_concept<
+      typename is_mutable_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type
     >::type,
     void
   >::type 
   low(segment_type& segment,
-      typename directed_line_segment_point_type<segment_type>::type v) {
+      typename segment_point_type<segment_type>::type v) {
     set(segment, LOW, v);
   }
   
@@ -352,14 +352,14 @@
   typename enable_if<
     typename gtl_and<
       y_s_high2,
-      typename is_mutable_directed_line_segment_concept<
+      typename is_mutable_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type
     >::type,
     void
   >::type 
   high(segment_type& segment,
-       typename directed_line_segment_point_type<segment_type>::type v) {
+       typename segment_point_type<segment_type>::type v) {
     set(segment, HIGH, v);
   }
 
@@ -369,11 +369,11 @@
   typename enable_if<
     typename gtl_and<
       y_s_length,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type
     >::type,
-    typename directed_line_segment_point_type<segment_type>::type
+    typename segment_point_type<segment_type>::type
   >::type
   length(const segment_type& segment) {
     return euclidean_distance(low(segment), high(segment));
@@ -386,7 +386,7 @@
   typename enable_if<
     typename gtl_and<
       y_s_scale_up,
-      typename is_mutable_directed_line_segment_concept<
+      typename is_mutable_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type
     >::type,
@@ -394,9 +394,9 @@
   >::type &
   scale_up(segment_type& segment, 
            typename coordinate_traits<
-             typename directed_line_segment_coordinate_type<segment_type>::type
+             typename segment_coordinate_type<segment_type>::type
            >::unsigned_area_type factor) {
-    typename directed_line_segment_point_type<segment_type>::type l = low(segment), h = high(segment);
+    typename segment_point_type<segment_type>::type l = low(segment), h = high(segment);
     low(segment, scale_up(l, factor));
     high(segment, scale_up(h, factor));
     return segment;
@@ -408,7 +408,7 @@
   typename enable_if<
     typename gtl_and<
       y_s_scale_down,
-      typename is_mutable_directed_line_segment_concept<
+      typename is_mutable_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type
     >::type,
@@ -416,9 +416,9 @@
   >::type &
   scale_down(segment_type& segment, 
              typename coordinate_traits<
-               typename directed_line_segment_coordinate_type<segment_type>::type
+               typename segment_coordinate_type<segment_type>::type
              >::unsigned_area_type factor) {
-    typename directed_line_segment_point_type<segment_type>::type l = low(segment), h = high(segment);
+    typename segment_point_type<segment_type>::type l = low(segment), h = high(segment);
     low(segment, scale_down(l, factor));
     high(segment, scale_down(h, factor));
     return segment;
@@ -430,14 +430,14 @@
   typename enable_if<
     typename gtl_and<
       y_s_scale,
-      typename is_mutable_directed_line_segment_concept<
+      typename is_mutable_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type
     >::type,
     segment_type
   >::type &
   scale(segment_type& segment, scaling_type factor) {
-    typename directed_line_segment_point_type<segment_type>::type l = low(segment), h = high(segment);
+    typename segment_point_type<segment_type>::type l = low(segment), h = high(segment);
     low(segment, scale(l, factor));
     high(segment, scale(h, factor));
     return segment;
@@ -450,14 +450,14 @@
   typename enable_if<
     typename gtl_and<
       y_s_transform,
-      typename is_mutable_directed_line_segment_concept<
+      typename is_mutable_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type
     >::type,
     segment_type
   >::type &
   transform(segment_type& segment, const transform_type& val) {
-    typename directed_line_segment_point_type<segment_type>::type l = low(segment), h = high(segment);
+    typename segment_point_type<segment_type>::type l = low(segment), h = high(segment);
     low(segment, transform(l, val));
     high(segment, transform(h, val));
     return segment;
@@ -470,15 +470,15 @@
   typename enable_if<
     typename gtl_and<
       y_s_move,
-      typename is_mutable_directed_line_segment_concept<
+      typename is_mutable_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type
     >::type,
     segment_type
   >::type &
   move(segment_type& segment, orientation_2d orient,
-      typename directed_line_segment_coordinate_type<segment_type>::type displacement) {
-    typename directed_line_segment_point_type<segment_type>::type l = low(segment), h = high(segment);
+      typename segment_coordinate_type<segment_type>::type displacement) {
+    typename segment_point_type<segment_type>::type l = low(segment), h = high(segment);
     low(segment, move(l, orient, displacement));
     high(segment, move(h, orient, displacement));
     return segment;
@@ -491,15 +491,15 @@
   typename enable_if<
     typename gtl_and<
       y_s_convolve,
-      typename is_mutable_directed_line_segment_concept<
+      typename is_mutable_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type
     >::type,
     segment_type
   >::type &
   convolve(segment_type& segment,
-      const typename directed_line_segment_point_type<segment_type>::type& b) {
-    typename directed_line_segment_point_type<segment_type>::type l = low(segment), h = high(segment);
+      const typename segment_point_type<segment_type>::type& b) {
+    typename segment_point_type<segment_type>::type l = low(segment), h = high(segment);
     low(segment, convolve(l, b));
     high(segment, convolve(h, b));
     return segment;
@@ -512,36 +512,36 @@
   typename enable_if<
     typename gtl_and<
       y_s_deconvolve,
-      typename is_mutable_directed_line_segment_concept<
+      typename is_mutable_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type
     >::type,
     segment_type
   >::type &
   deconvolve(segment_type& segment,
-      const typename directed_line_segment_point_type<segment_type>::type& b) {
-    typename directed_line_segment_point_type<segment_type>::type l = low(segment), h = high(segment);
+      const typename segment_point_type<segment_type>::type& b) {
+    typename segment_point_type<segment_type>::type l = low(segment), h = high(segment);
     low(segment, deconvolve(l, b));
     high(segment, deconvolve(h, b));
     return segment;
   }
 
-  struct y_s_e_dist1 : gtl_yes {};
+  struct y_s_e_dist : gtl_yes {};
 
   // distance from a point to a segment
   template <typename segment_type>
   typename enable_if<
     typename gtl_and<
-      y_s_e_dist1,
-      typename is_directed_line_segment_concept<
+      y_s_e_dist,
+      typename is_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type
     >::type,
-    typename directed_line_segment_distance_type<segment_type>::type
+    typename segment_distance_type<segment_type>::type
   >::type
   euclidean_distance(const segment_type& segment,
-      typename directed_line_segment_point_type<segment_type>::type position) {
-    typedef typename directed_line_segment_distance_type<segment_type>::type Unit;
+      typename segment_point_type<segment_type>::type position) {
+    typedef typename segment_distance_type<segment_type>::type Unit;
     Unit x1 = x(low(segment));
     Unit y1 = y(low(segment));
     Unit x2 = x(high(segment));
@@ -575,18 +575,18 @@
   typename enable_if< 
     typename gtl_and_3<
       y_s_e_dist2,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type_2>::type
       >::type
     >::type,
-    typename directed_line_segment_distance_type<segment_type>::type
+    typename segment_distance_type<segment_type>::type
   >::type
   euclidean_distance(const segment_type& segment,
                      const segment_type_2& b) {
-    typename directed_line_segment_distance_type<segment_type>::type result1 =
+    typename segment_distance_type<segment_type>::type result1 =
         euclidean_distance(segment, low(b)),
     result2 = euclidean_distance(segment, high(b));
     if(result2 < result1) result1 = result2;
@@ -600,10 +600,10 @@
   typename enable_if<
     typename gtl_and_3<
       y_s_e_intersects, 
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type, 
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type_2>::type
       >::type
     >::type,
@@ -620,7 +620,7 @@
         return true;
     }
     typedef polygon_arbitrary_formation<
-      typename directed_line_segment_coordinate_type<segment_type>::type
+      typename segment_coordinate_type<segment_type>::type
     > paf;
     typename paf::Point l, h, l2, h2;
     assign(l, low(segment));
@@ -638,10 +638,10 @@
   typename enable_if< 
     typename gtl_and_3<
       y_s_e_bintersect,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type_2>::type
       >::type
     >::type,
@@ -662,10 +662,10 @@
   typename enable_if<
     typename gtl_and_3<
       y_s_abuts1,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type_2>::type
       >::type
     >::type,
@@ -685,10 +685,10 @@
   typename enable_if< 
     typename gtl_and_3<
       y_s_abuts2,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type_2>::type
       >::type
     >::type,
@@ -710,10 +710,10 @@
       typename is_mutable_point_concept<
         typename geometry_concept<point_type>::type
       >::type,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type>::type
       >::type,
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<segment_type_2>::type
       >::type
     >::type,
@@ -725,7 +725,7 @@
                bool projected = false,
                bool round_closest = false) {
     typedef polygon_arbitrary_formation<
-      typename directed_line_segment_coordinate_type<segment_type>::type
+      typename segment_coordinate_type<segment_type>::type
     > paf;
     typename paf::Point pt;
     typename paf::Point l, h, l2, h2;
@@ -744,14 +744,14 @@
 
   template <class T>
   template <class T2>
-  directed_line_segment_data<T>& directed_line_segment_data<T>::operator=(const T2& rvalue) {
+  segment_data<T>& segment_data<T>::operator=(const T2& rvalue) {
     assign(*this, rvalue);
     return *this;
   }
 
   template <typename T>
-  struct geometry_concept<directed_line_segment_data<T> > {
-    typedef directed_line_segment_concept type;
+  struct geometry_concept<segment_data<T> > {
+    typedef segment_concept type;
   };
 }
 }
Copied: sandbox/gtl/boost/polygon/segment_data.hpp (from r78172, /sandbox/gtl/boost/polygon/directed_line_segment_data.hpp)
==============================================================================
--- /sandbox/gtl/boost/polygon/directed_line_segment_data.hpp	(original)
+++ sandbox/gtl/boost/polygon/segment_data.hpp	2012-04-24 16:01:59 EDT (Tue, 24 Apr 2012)
@@ -5,42 +5,42 @@
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).
 */
-#ifndef BOOST_POLYGON_DIRECTED_LINE_SEGMENT_DATA_HPP
-#define BOOST_POLYGON_DIRECTED_LINE_SEGMENT_DATA_HPP
+#ifndef BOOST_POLYGON_SEGMENT_DATA_HPP
+#define BOOST_POLYGON_SEGMENT_DATA_HPP
 #include "isotropy.hpp"
 #include "point_data.hpp"
 namespace boost { namespace polygon{
   template <typename T>
-  class directed_line_segment_data {
+  class segment_data {
   public:
     typedef T coordinate_type;
     typedef point_data<T> point_type;
-    inline directed_line_segment_data()
+    inline segment_data()
 #ifndef BOOST_POLYGON_MSVC 
       :points_() 
 #endif 
     {} 
-    inline directed_line_segment_data(point_type low, point_type high)
+    inline segment_data(point_type low, point_type high)
 #ifndef BOOST_POLYGON_MSVC 
       :points_() 
 #endif 
     {
       points_[LOW] = low; points_[HIGH] = high; 
     }
-    inline directed_line_segment_data(const directed_line_segment_data& that)
+    inline segment_data(const segment_data& that)
 #ifndef BOOST_POLYGON_MSVC 
       :points_() 
 #endif 
     {
       (*this) = that; 
     }
-    inline directed_line_segment_data& operator=(
-        const directed_line_segment_data& that) {
+    inline segment_data& operator=(
+        const segment_data& that) {
       points_[0] = that.points_[0]; points_[1] = that.points_[1];
       return *this;
     }
     template <typename T2>
-    inline directed_line_segment_data& operator=(const T2& rvalue);
+    inline segment_data& operator=(const T2& rvalue);
     inline point_type get(direction_1d dir) const {
       return points_[dir.to_int()]; 
     }
@@ -54,23 +54,23 @@
         points_[1] = high;
         return *this;
     }
-    inline bool operator==(const directed_line_segment_data& that) const {
+    inline bool operator==(const segment_data& that) const {
       return low() == that.low() && high() == that.high(); }
-    inline bool operator!=(const directed_line_segment_data& that) const {
+    inline bool operator!=(const segment_data& that) const {
       return low() != that.low() || high() != that.high(); }
-    inline bool operator<(const directed_line_segment_data& that) const {
+    inline bool operator<(const segment_data& that) const {
       if(points_[0] < that.points_[0]) return true;
       if(points_[0] > that.points_[0]) return false;
       if(points_[1] < that.points_[1]) return true;
       return false;
     }
-    inline bool operator<=(const directed_line_segment_data& that) const {
+    inline bool operator<=(const segment_data& that) const {
       return !(that < *this);
     }
-    inline bool operator>(const directed_line_segment_data& that) const {
+    inline bool operator>(const segment_data& that) const {
       return that < *this;
     }
-    inline bool operator>=(const directed_line_segment_data& that) const {
+    inline bool operator>=(const segment_data& that) const {
       return !((*this) < that);
     }
   inline void set(direction_1d dir, point_type value) {
Copied: sandbox/gtl/boost/polygon/segment_set_data.hpp (from r78172, /sandbox/gtl/boost/polygon/directed_line_segment_set_data.hpp)
==============================================================================
--- /sandbox/gtl/boost/polygon/directed_line_segment_set_data.hpp	(original)
+++ sandbox/gtl/boost/polygon/segment_set_data.hpp	2012-04-24 16:01:59 EDT (Tue, 24 Apr 2012)
@@ -5,23 +5,23 @@
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).
 */
-#ifndef BOOST_POLYGON_DIRECTED_LINE_SEGMENT_SET_DATA_HPP
-#define BOOST_POLYGON_DIRECTED_LINE_SEGMENT_SET_DATA_HPP
+#ifndef BOOST_POLYGON_SEGMENT_SET_DATA_HPP
+#define BOOST_POLYGON_SEGMENT_SET_DATA_HPP
 
 namespace boost { namespace polygon{
   template <typename T>
-  class directed_line_segment_set_data {
+  class segment_set_data {
   public:
     typedef T coordinate_type;
     typedef point_data<T> point_type;
-    typedef directed_line_segment_data<T> directed_line_segment_type;
-    typedef std::vector<directed_line_segment_type> value_type;
-    typedef typename std::vector<directed_line_segment_type>::const_iterator iterator_type;
+    typedef segment_data<T> segment_type;
+    typedef std::vector<segment_type> value_type;
+    typedef typename std::vector<segment_type>::const_iterator iterator_type;
 
-    inline directed_line_segment_set_data() : data_(), dirty_(false), unsorted_(false) {}
-    inline directed_line_segment_set_data(const directed_line_segment_set_data& that): 
+    inline segment_set_data() : data_(), dirty_(false), unsorted_(false) {}
+    inline segment_set_data(const segment_set_data& that): 
       data_(that.data_), dirty_(that.dirty_), unsorted_(that.unsorted_) {}
-    inline directed_line_segment_set_data& operator=(const directed_line_segment_set_data& that) {
+    inline segment_set_data& operator=(const segment_set_data& that) {
       if(this == &that) return *this;
       data_ = that.data_;
       dirty_ = that.dirty_;
@@ -29,24 +29,24 @@
       return *this;
     }
     template <typename T2>
-    inline directed_line_segment_set_data& operator=(const T2& rvalue) {
+    inline segment_set_data& operator=(const T2& rvalue) {
       data_.clear();
       bool unsorted = !sorted(rvalue);
-      bool dirty = !dirty(rvalue);
+      bool dirty = dirty(rvalue);
       insert(begin(rvalue), end(rvalue));
       unsorted_ = unsorted;
       dirty_ = dirty;
       return *this;
     }
 
-    inline bool operator==(const directed_line_segment_set_data& that) const {
+    inline bool operator==(const segment_set_data& that) const {
       clean();
       that.clean();
       sort();
       that.sort();
       return data_ == that.data_;
     } 
-    inline bool operator!=(const directed_line_segment_set_data& that) const {
+    inline bool operator!=(const segment_set_data& that) const {
       return !(*this == that);
     }
 
@@ -62,7 +62,7 @@
     inline void insert(ST segment) {
       unsorted_ = true;
       dirty_ = true;
-      directed_line_segment_type tmp_seg;
+      segment_type tmp_seg;
       assign(tmp_seg, segment);
       data_.push_back(tmp_seg);
     }
@@ -125,10 +125,10 @@
         id = half_edges_out[i].second;
         Point l = half_edges_out[i].first.first;
         Point h = half_edges_out[i].first.second;
-        directed_line_segment_type orig_seg = data_[id];
+        segment_type orig_seg = data_[id];
         if(orig_seg.high() < orig_seg.low())
           std::swap(l, h);
-        result.push_back(directed_line_segment_type(l, h));
+        result.push_back(segment_type(l, h));
       }
       std::swap(result, data_);
       dirty_ = false;
@@ -175,7 +175,7 @@
     }
 
     template <typename transform_type>
-    inline directed_line_segment_set_data& 
+    inline segment_set_data& 
     transform(const transform_type& tr) {
       for(typename value_type::iterator itr = data_.begin(); itr != data_.end(); ++itr) {
         point_type l = (*itr).low();
@@ -189,7 +189,7 @@
       return *this;
     }
 
-    inline directed_line_segment_set_data& 
+    inline segment_set_data& 
     scale_up(typename coordinate_traits<coordinate_type>::unsigned_area_type factor) {
       for(typename value_type::iterator itr = data_.begin(); itr != data_.end(); ++itr) {
         point_type l = (*itr).low();
@@ -202,7 +202,7 @@
       return *this;
     }
     
-    inline directed_line_segment_set_data& 
+    inline segment_set_data& 
     scale_down(typename coordinate_traits<coordinate_type>::unsigned_area_type factor) {
       for(typename value_type::iterator itr = data_.begin(); itr != data_.end(); ++itr) {
         point_type l = (*itr).low();
@@ -216,7 +216,7 @@
     }
     
     template <typename scaling_type>
-    inline directed_line_segment_set_data& scale(const scaling_type& scaling) {
+    inline segment_set_data& scale(const scaling_type& scaling) {
       for(typename value_type::iterator itr = data_.begin(); itr != data_.end(); ++itr) {
         point_type l = (*itr).low();
         point_type h = (*itr).high();
@@ -245,7 +245,8 @@
       }
       half_edges_out.reserve(half_edges.size());
       std::vector<std::set<Point> > intersection_points(half_edges.size(), std::set<Point>());
-      line_intersection<Unit>::validate_scan_divide_and_conquer(intersection_points, half_edges.begin(), half_edges.end());
+      line_intersection<Unit>::validate_scan_divide_and_conquer(
+          intersection_points, half_edges.begin(), half_edges.end());
       std::vector<Point> tmp_points;
       for(std::size_t i = 0; i < intersection_points.size(); ++i) {
         typename std::set<Point>::iterator itr2 = intersection_points[i].begin();
@@ -254,7 +255,8 @@
             tmp_points.push_back(*itr2);
       }
       polygon_sort(tmp_points.begin(), tmp_points.end());
-      typename std::vector<Point>::iterator new_end = std::unique(tmp_points.begin(), tmp_points.end());
+      typename std::vector<Point>::iterator new_end =
+          std::unique(tmp_points.begin(), tmp_points.end());
       output_points.insert(output_points.end(), tmp_points.begin(), new_end);
       return std::distance(tmp_points.begin(), new_end);
     }
Copied: sandbox/gtl/boost/polygon/segment_traits.hpp (from r78172, /sandbox/gtl/boost/polygon/directed_line_segment_traits.hpp)
==============================================================================
--- /sandbox/gtl/boost/polygon/directed_line_segment_traits.hpp	(original)
+++ sandbox/gtl/boost/polygon/segment_traits.hpp	2012-04-24 16:01:59 EDT (Tue, 24 Apr 2012)
@@ -5,11 +5,11 @@
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).
 */
-#ifndef BOOST_POLYGON_DIRECTED_LINE_SEGMENT_TRAITS_HPP
-#define BOOST_POLYGON_DIRECTED_LINE_SEGMENT_TRAITS_HPP
+#ifndef BOOST_POLYGON_SEGMENT_TRAITS_HPP
+#define BOOST_POLYGON_SEGMENT_TRAITS_HPP
 namespace boost { namespace polygon{
   template <typename T>
-  struct directed_line_segment_traits {
+  struct segment_traits {
     typedef typename T::coordinate_type coordinate_type;
     typedef typename T::point_type point_type;
 
@@ -19,10 +19,10 @@
   };
 
   template <typename T>
-  struct directed_line_segment_mutable_traits {
+  struct segment_mutable_traits {
     template <typename Point1>
     static inline void set(T& segment, direction_1d dir, const Point1& value) {
-      typename directed_line_segment_traits<T>::point_type p1;
+      typename segment_traits<T>::point_type p1;
       assign(p1, value);
       segment.set(dir, value); 
     }
@@ -30,7 +30,7 @@
     template <typename Point1, typename Point2>
     static inline T construct(const Point1& low_value, 
                               const Point2& high_value) {
-      typename directed_line_segment_traits<T>::point_type p1, p2; 
+      typename segment_traits<T>::point_type p1, p2; 
       assign(p1, low_value);
       assign(p2, high_value);
       return T(p1, p2); 
Modified: sandbox/gtl/boost/polygon/voronoi.hpp
==============================================================================
--- sandbox/gtl/boost/polygon/voronoi.hpp	(original)
+++ sandbox/gtl/boost/polygon/voronoi.hpp	2012-04-24 16:01:59 EDT (Tue, 24 Apr 2012)
@@ -66,7 +66,7 @@
 static inline
 typename enable_if<
   typename gtl_if<
-    typename is_directed_line_segment_concept<
+    typename is_segment_concept<
       typename geometry_concept<Segment>::type
     >::type
   >::type,
@@ -80,7 +80,7 @@
 static inline
 typename enable_if<
   typename gtl_if<
-    typename is_directed_line_segment_concept<
+    typename is_segment_concept<
       typename geometry_concept<
         typename std::iterator_traits<SegmentIterator>::value_type
       >::type
@@ -116,7 +116,7 @@
 static inline
 typename enable_if<
   typename gtl_if<
-    typename is_directed_line_segment_concept<
+    typename is_segment_concept<
       typename geometry_concept<
         typename std::iterator_traits<SegmentIterator>::value_type
       >::type
@@ -142,7 +142,7 @@
       >::type
     >::type,
     typename gtl_if<
-      typename is_directed_line_segment_concept<
+      typename is_segment_concept<
         typename geometry_concept<
           typename std::iterator_traits<SegmentIterator>::value_type
         >::type
Modified: sandbox/gtl/libs/polygon/benchmark/voronoi_benchmark_segments.cpp
==============================================================================
--- sandbox/gtl/libs/polygon/benchmark/voronoi_benchmark_segments.cpp	(original)
+++ sandbox/gtl/libs/polygon/benchmark/voronoi_benchmark_segments.cpp	2012-04-24 16:01:59 EDT (Tue, 24 Apr 2012)
@@ -40,8 +40,8 @@
 // Include for the Boost.Polygon library.
 #include <boost/polygon/polygon.hpp>
 typedef boost::polygon::point_data<int32> POINT_POLYGON;
-typedef boost::polygon::directed_line_segment_data<int32> SEGMENT_POLYGON;
-typedef boost::polygon::directed_line_segment_set_data<int32> SSD_POLYGON;
+typedef boost::polygon::segment_data<int32> SEGMENT_POLYGON;
+typedef boost::polygon::segment_set_data<int32> SSD_POLYGON;
 
 const int RANDOM_SEED = 27;
 const int NUM_TESTS = 6;
Modified: sandbox/gtl/libs/polygon/example/voronoi_basic_tutorial.cpp
==============================================================================
--- sandbox/gtl/libs/polygon/example/voronoi_basic_tutorial.cpp	(original)
+++ sandbox/gtl/libs/polygon/example/voronoi_basic_tutorial.cpp	2012-04-24 16:01:59 EDT (Tue, 24 Apr 2012)
@@ -42,10 +42,10 @@
 };
 
 template <>
-struct geometry_concept<Segment> { typedef directed_line_segment_concept type; };
+struct geometry_concept<Segment> { typedef segment_concept type; };
 
 template <>
-struct directed_line_segment_traits<Segment> {
+struct segment_traits<Segment> {
   typedef int coordinate_type;
   typedef Point point_type;
     
Modified: sandbox/gtl/libs/polygon/test/voronoi_benchmark_test.cpp
==============================================================================
--- sandbox/gtl/libs/polygon/test/voronoi_benchmark_test.cpp	(original)
+++ sandbox/gtl/libs/polygon/test/voronoi_benchmark_test.cpp	2012-04-24 16:01:59 EDT (Tue, 24 Apr 2012)
@@ -117,9 +117,9 @@
 BOOST_AUTO_TEST_CASE_TEMPLATE(benchmark_test_segments, T, test_types) {
     typedef T coordinate_type;
     typedef point_data<coordinate_type> point_type;
-    typedef directed_line_segment_data<coordinate_type> segment_type;
+    typedef segment_data<coordinate_type> segment_type;
 
-    directed_line_segment_set_data<coordinate_type> segments;
+    segment_set_data<coordinate_type> segments;
     {
         std::ifstream input_file(SEGMENT_INPUT_FILE);
         int num_segments;
Modified: sandbox/gtl/libs/polygon/test/voronoi_builder_test.cpp
==============================================================================
--- sandbox/gtl/libs/polygon/test/voronoi_builder_test.cpp	(original)
+++ sandbox/gtl/libs/polygon/test/voronoi_builder_test.cpp	2012-04-24 16:01:59 EDT (Tue, 24 Apr 2012)
@@ -374,10 +374,10 @@
 
 BOOST_AUTO_TEST_CASE_TEMPLATE(segment_sites_test1, T, test_types) {
     vd_type test_output;
-    directed_line_segment_set_data<T> segments;
+    segment_set_data<T> segments;
     point_data<T> point1(0, 0);
     point_data<T> point2(1, 1);
-    segments.insert(directed_line_segment_data<T>(point1, point2));
+    segments.insert(segment_data<T>(point1, point2));
     construct_voronoi(segments.begin(), segments.end(), &test_output);
     CHECK_OUTPUT_SIZE(test_output, 3, 0, 2);
     VERIFY_NO_HALF_EDGE_INTERSECTIONS(test_output);
@@ -386,12 +386,12 @@
 BOOST_AUTO_TEST_CASE_TEMPLATE(segment_sites_test2, T, test_types) {
     vd_type test_output;
     std::vector< point_data<T> > points;
-    directed_line_segment_set_data<T> segments;
+    segment_set_data<T> segments;
     point_data<T> point1(0, 0);
     point_data<T> point2(4, 4);
     point_data<T> point3(3, 1);
     point_data<T> point4(1, 3);
-    segments.insert(directed_line_segment_data<T>(point1, point2));
+    segments.insert(segment_data<T>(point1, point2));
     points.push_back(point3);
     points.push_back(point4);
     construct_voronoi(points.begin(), points.end(), segments.begin(), segments.end(), &test_output);
@@ -402,12 +402,12 @@
 BOOST_AUTO_TEST_CASE_TEMPLATE(segment_sites_test3, T, test_types) {
     vd_type test_output;
     std::vector< point_data<T> > points;
-    directed_line_segment_set_data<T> segments;
+    segment_set_data<T> segments;
     point_data<T> point1(4, 0);
     point_data<T> point2(0, 4);
     point_data<T> point3(3, 3);
     point_data<T> point4(1, 1);
-    segments.insert(directed_line_segment_data<T>(point1, point2));
+    segments.insert(segment_data<T>(point1, point2));
     points.push_back(point3);
     points.push_back(point4);
     construct_voronoi(points.begin(), points.end(), segments.begin(), segments.end(), &test_output);
@@ -418,12 +418,12 @@
 BOOST_AUTO_TEST_CASE_TEMPLATE(segment_sites_test4, T, test_types) {
     vd_type test_output;
     std::vector< point_data<T> > points;
-    directed_line_segment_set_data<T> segments;
+    segment_set_data<T> segments;
     point_data<T> point1(4, 0);
     point_data<T> point2(0, 4);
     point_data<T> point3(3, 2);
     point_data<T> point4(2, 3);
-    segments.insert(directed_line_segment_data<T>(point1, point2));
+    segments.insert(segment_data<T>(point1, point2));
     points.push_back(point3);
     points.push_back(point4);
     construct_voronoi(points.begin(), points.end(), segments.begin(), segments.end(), &test_output);
@@ -434,13 +434,13 @@
 BOOST_AUTO_TEST_CASE_TEMPLATE(segment_site_test5, T, test_types) {
     vd_type test_output;
     std::vector< point_data<T> > points;
-    directed_line_segment_set_data<T> segments;
+    segment_set_data<T> segments;
     point_data<T> point1(0, 0);
     point_data<T> point2(0, 8);
     point_data<T> point3(-2, -2);
     point_data<T> point4(-2, 4);
     point_data<T> point5(-2, 10);
-    segments.insert(directed_line_segment_data<T>(point1, point2));
+    segments.insert(segment_data<T>(point1, point2));
     points.push_back(point3);
     points.push_back(point4);
     points.push_back(point5);
@@ -452,11 +452,11 @@
 BOOST_AUTO_TEST_CASE_TEMPLATE(segment_site_test6, T, test_types) {
     vd_type test_output;
     std::vector< point_data<T> > points;
-    directed_line_segment_set_data<T> segments;
+    segment_set_data<T> segments;
     point_data<T> point1(-1, 1);
     point_data<T> point2(1, 0);
     point_data<T> point3(1, 2);
-    segments.insert(directed_line_segment_data<T>(point2, point3));
+    segments.insert(segment_data<T>(point2, point3));
     points.push_back(point1);
     construct_voronoi(points.begin(), points.end(), segments.begin(), segments.end(), &test_output);
     CHECK_OUTPUT_SIZE(test_output, 4, 2, 5);
@@ -465,14 +465,14 @@
 
 BOOST_AUTO_TEST_CASE_TEMPLATE(segment_site_test7, T, test_types) {
     vd_type test_output;
-    directed_line_segment_set_data<T> segments;
+    segment_set_data<T> segments;
     point_data<T> point1(0, 0);
     point_data<T> point2(4, 0);
     point_data<T> point3(0, 4);
     point_data<T> point4(4, 4);
-    segments.insert(directed_line_segment_data<T>(point1, point2));
-    segments.insert(directed_line_segment_data<T>(point2, point3));
-    segments.insert(directed_line_segment_data<T>(point3, point4));
+    segments.insert(segment_data<T>(point1, point2));
+    segments.insert(segment_data<T>(point2, point3));
+    segments.insert(segment_data<T>(point3, point4));
     construct_voronoi(segments.begin(), segments.end(), &test_output);
     CHECK_OUTPUT_SIZE(test_output, 7, 6, 12);
     VERIFY_NO_HALF_EDGE_INTERSECTIONS(test_output);
@@ -480,15 +480,15 @@
 
 BOOST_AUTO_TEST_CASE_TEMPLATE(segment_site_test8, T, test_types) {
     vd_type test_output;
-    directed_line_segment_set_data<T> segments;
+    segment_set_data<T> segments;
     point_data<T> point1(0, 0);
     point_data<T> point2(4, 0);
     point_data<T> point3(4, 4);
     point_data<T> point4(0, 4);
-    segments.insert(directed_line_segment_data<T>(point1, point2));
-    segments.insert(directed_line_segment_data<T>(point2, point3));
-    segments.insert(directed_line_segment_data<T>(point3, point4));
-    segments.insert(directed_line_segment_data<T>(point4, point1));
+    segments.insert(segment_data<T>(point1, point2));
+    segments.insert(segment_data<T>(point2, point3));
+    segments.insert(segment_data<T>(point3, point4));
+    segments.insert(segment_data<T>(point4, point1));
     construct_voronoi(segments.begin(), segments.end(), &test_output);
     CHECK_OUTPUT_SIZE(test_output, 8, 5, 12);
     VERIFY_NO_HALF_EDGE_INTERSECTIONS(test_output);
@@ -497,7 +497,7 @@
 #ifdef NDEBUG
 BOOST_AUTO_TEST_CASE_TEMPLATE(segment_grid_test, T, test_types) {
     vd_type test_output_small, test_output_large;
-    directed_line_segment_set_data<T> segments_small, segments_large;
+    segment_set_data<T> segments_small, segments_large;
     int grid_size[] = {10, 33, 100};
     int max_value[] = {100, 330, 1000};
     int array_length = sizeof(grid_size) / sizeof(int);
@@ -514,14 +514,14 @@
                 point_data<T> point1_2(koef * 10 * i, koef * 10 * j);
                 point_data<T> point2_1(10 * i, 10 * j + 10);
                 point_data<T> point2_2(koef * 10 * i, koef * (10 * j + 10));
-                segments_small.insert(directed_line_segment_data<T>(point1_1, point2_1));
-                segments_large.insert(directed_line_segment_data<T>(point1_2, point2_2));
+                segments_small.insert(segment_data<T>(point1_1, point2_1));
+                segments_large.insert(segment_data<T>(point1_2, point2_2));
                 point_data<T> point3_1(10 * j, 10 * i);
                 point_data<T> point3_2(koef * 10 * j, koef * 10 * i);
                 point_data<T> point4_1(10 * j + 10, 10 * i);
                 point_data<T> point4_2(koef * (10 * j + 10), koef * 10 * i);
-                segments_small.insert(directed_line_segment_data<T>(point3_1, point4_1));
-                segments_large.insert(directed_line_segment_data<T>(point3_2, point4_2));
+                segments_small.insert(segment_data<T>(point3_1, point4_1));
+                segments_large.insert(segment_data<T>(point3_2, point4_2));
             }
         construct_voronoi(segments_small.begin(), segments_small.end(), &test_output_small);
         construct_voronoi(segments_large.begin(), segments_large.end(), &test_output_large);
@@ -539,7 +539,7 @@
     boost::mt19937 gen(static_cast<unsigned int>(time(NULL)));
     vd_type test_output;
     std::vector< point_data<T> > points;
-    directed_line_segment_set_data<T> segments;
+    segment_set_data<T> segments;
     int num_runs = 1000;
     int num_segments = 10;
     points.push_back(point_data<T>(-100, -100));
@@ -559,7 +559,7 @@
             }
             point_data<T> point1(x1, y1);
             point_data<T> point2(x2, y2);
-            segments.insert(directed_line_segment_data<T>(point1, point2));
+            segments.insert(segment_data<T>(point1, point2));
         }
         segments.clean();
         construct_voronoi(points.begin(), points.end(), segments.begin(), segments.end(), &test_output);
@@ -572,7 +572,7 @@
 BOOST_AUTO_TEST_CASE_TEMPLATE(segment_random_test2, T, test_types) {
     boost::mt19937 gen(static_cast<unsigned int>(time(NULL)));
     vd_type test_output_small, test_output_large;
-    directed_line_segment_set_data<T> segments_small, segments_large;
+    segment_set_data<T> segments_small, segments_large;
     int num_segments[] = {5, 25, 125, 625};
     int num_runs[] = {1000, 100, 10, 1};
     int mod_koef1[] = {10, 100, 200, 300};
@@ -598,10 +598,10 @@
                 T y2 = y1 + dy;
                 point_data<T> point1_small(x1, y1);
                 point_data<T> point2_small(x2, y2);
-                segments_small.insert(directed_line_segment_data<T>(point1_small, point2_small));
+                segments_small.insert(segment_data<T>(point1_small, point2_small));
             }
             segments_small.clean();
-            for (typename directed_line_segment_set_data<T>::iterator_type it = segments_small.begin();
+            for (typename segment_set_data<T>::iterator_type it = segments_small.begin();
                  it != segments_small.end(); ++it) {
                 T x1 = it->low().x() * koef;
                 T y1 = it->low().y() * koef;
@@ -609,7 +609,7 @@
                 T y2 = it->high().y() * koef;
                 point_data<T> point1_large(x1, y1);
                 point_data<T> point2_large(x2, y2);
-                segments_large.insert(directed_line_segment_data<T>(point1_large, point2_large));
+                segments_large.insert(segment_data<T>(point1_large, point2_large));
             }
             construct_voronoi(segments_small.begin(), segments_small.end(), &test_output_small);
             construct_voronoi(segments_large.begin(), segments_large.end(), &test_output_large);