$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r70897 - in trunk/libs/geometry: example example/experimental example_extensions/experimental example_extensions/units
From: barend.gehrels_at_[hidden]
Date: 2011-04-02 17:55:10
Author: barendgehrels
Date: 2011-04-02 17:55:09 EDT (Sat, 02 Apr 2011)
New Revision: 70897
URL: http://svn.boost.org/trac/boost/changeset/70897
Log:
Moved units and experimental to extension
Added:
   trunk/libs/geometry/example_extensions/experimental/
      - copied from r70891, /trunk/libs/geometry/example/experimental/
   trunk/libs/geometry/example_extensions/units/
   trunk/libs/geometry/example_extensions/units/08_units_example.cpp
      - copied unchanged from r70891, /trunk/libs/geometry/example/08_units_example.cpp
   trunk/libs/geometry/example_extensions/units/08_units_example.vcproj
      - copied unchanged from r70891, /trunk/libs/geometry/example/08_units_example.vcproj
Removed:
   trunk/libs/geometry/example/08_units_example.cpp
   trunk/libs/geometry/example/08_units_example.vcproj
   trunk/libs/geometry/example/experimental/
Text files modified: 
   trunk/libs/geometry/example/Jamfile.v2         |     1 -                                       
   trunk/libs/geometry/example/basic_examples.sln |     6 ------                                  
   2 files changed, 0 insertions(+), 7 deletions(-)
Deleted: trunk/libs/geometry/example/08_units_example.cpp
==============================================================================
--- trunk/libs/geometry/example/08_units_example.cpp	2011-04-02 17:55:09 EDT (Sat, 02 Apr 2011)
+++ (empty file)
@@ -1,210 +0,0 @@
-// Boost.Geometry (aka GGL, Generic Geometry Library)
-
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
-
-// Use, modification and distribution is 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)
-//
-// Example combining Boost.Geometry with Boost.Units
-
-#include <iostream>
-
-#include <boost/geometry/geometry.hpp>
-
-
-#include <boost/units/quantity.hpp> 
-#include <boost/units/systems/si/length.hpp>
-#include <boost/units/systems/cgs/length.hpp>
-#include <boost/units/systems/si/io.hpp>
-
-
-// TEMPORARY this will go to somewhere within Boost.Geometry
-namespace boost { namespace geometry
-{
-
-namespace cs
-{
-
-template <typename Unit>
-struct units_cartesian {};
-
-}
-
-namespace traits
-{
-template<typename U>
-struct cs_tag<cs::units_cartesian<U> >
-{
-    typedef cartesian_tag type;
-};
-
-}
-
-
-namespace model
-{
-
-// Define a point type to interoperate with Boost.Units, having
-// 1. a constructor taking quantities
-// 2. defining a quantified coordinate system 
-// Note that all values are still stored in "normal" types as double
-template <typename U, std::size_t D = 2, typename T = double, typename CS = cs::units_cartesian<U> >
-class quantity_point : public model::point<T, D, CS>
-{
-    typedef boost::units::quantity<U, T> qtype;
-
-public :
-
-    // Templated constructor to allow constructing with other units then qtype,
-    // e.g. to convert from centimeters to meters
-    template <typename Q>
-    inline quantity_point(Q const& x, Q const& y)
-        : model::point<T, D, CS>(
-            qtype(x).value(), 
-            qtype(y).value())
-    {}
-};
-
-}
-
-
-// Adapt quantity_point to the Point Concept
-#ifndef DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-namespace traits
-{
-
-template <typename Units, std::size_t DimensionCount, typename CoordinateType, typename CoordinateSystem>
-struct tag<model::quantity_point<Units, DimensionCount, CoordinateType, CoordinateSystem> >
-{
-    typedef point_tag type;
-};
-
-template<typename Units, std::size_t DimensionCount, typename CoordinateType, typename CoordinateSystem>
-struct coordinate_type<model::quantity_point<Units, DimensionCount, CoordinateType, CoordinateSystem> >
-{
-    typedef CoordinateType type;
-};
-
-template<typename Units, std::size_t DimensionCount, typename CoordinateType, typename CoordinateSystem>
-struct coordinate_system<model::quantity_point<Units, DimensionCount, CoordinateType, CoordinateSystem> >
-{
-    typedef CoordinateSystem type;
-};
-
-template<typename Units, std::size_t DimensionCount, typename CoordinateType, typename CoordinateSystem>
-struct dimension<model::quantity_point<Units, DimensionCount, CoordinateType, CoordinateSystem> >
-    : boost::mpl::int_<DimensionCount>
-{};
-
-template<typename Units, std::size_t DimensionCount, typename CoordinateType, typename CoordinateSystem, std::size_t Dimension>
-struct access<model::quantity_point<Units, DimensionCount, CoordinateType, CoordinateSystem>, Dimension >
-{
-    static inline CoordinateType get(
-        model::quantity_point<Units, DimensionCount, CoordinateType, CoordinateSystem> const& p)
-    {
-        return p.template get<Dimension>();
-    }
-
-    static inline void set(model::quantity_point<Units, DimensionCount, CoordinateType, CoordinateSystem>& p,
-        CoordinateType const& value)
-    {
-        p.template set<Dimension>(value);
-    }
-};
-
-} // namespace traits
-#endif // DOXYGEN_NO_TRAITS_SPECIALIZATIONS
-
-
-
-// For extra support for functions as distance,area,get,set
-namespace units
-{
-    namespace detail
-    {
-        // Define an extra meta-function to get the units of a coordinate system
-        template <typename CS>
-        struct unit_dimension 
-        {
-            // define it as dimensionless
-            // or MPL ASSERT
-        };
-
-        template <typename U>
-        struct unit_dimension<cs::units_cartesian<U> >
-        {
-            typedef U type;
-        };
-    }
-
-    // Define an extra metafunction to define the quantity of a Geometry type
-    template <typename Geometry, typename CT = typename coordinate_type<Geometry>::type>
-    struct quantity
-    {
-        typedef boost::units::quantity
-            <
-                typename detail::unit_dimension
-                    <
-                        typename coordinate_system<Geometry>::type
-                    >::type, 
-                CT
-            > type;
-    };
-
-
-    template <typename Geometry1, typename Geometry2>
-    inline typename quantity<Geometry1, typename default_distance_result<Geometry1, Geometry2>::type>::type
-        distance(Geometry1 const& g1, Geometry2 const& g2)
-    {
-        typedef typename quantity<Geometry1, typename default_distance_result<Geometry1, Geometry2>::type>::type q;
-        return q::from_value(geometry::distance(g1, g2));
-    }
-
-    template <std::size_t Index, typename Point>
-    inline typename quantity<Point>::type get(Point const& p)
-    {
-        typedef typename quantity<Point>::type q;
-        return q::from_value(geometry::get<Index>(p));
-    }
-}
-
-}}
-// END TEMPORARY
-
-
-
-int main(void)
-{
-    using namespace boost::geometry;
-    using namespace boost::units;
-
-    // 1: using it directly
-    {
-        typedef model::quantity_point<si::length, 2> point;
-        point p1(1 * si::meter, 2 * si::meter);
-        point p2(3 * si::meter, 4 * si::meter);
-
-        std::cout << get<0>(p2) << std::endl;
-
-        // This is a little inconvenient:
-        quantity<si::length> d = distance(p1, p2) * si::meter;
-
-        std::cout << d << std::endl;
-    }
-
-    // 2: same but now using centimeters, and using boost::geometry::units::
-    {
-        typedef model::quantity_point<cgs::length, 2> point;
-        point p1(1 * si::meter, 2 * si::meter);
-        point p2(3 * si::meter, 4 * si::meter);
-
-        std::cout << boost::geometry::units::get<0>(p2) << std::endl;
-        quantity<cgs::length> d = boost::geometry::units::distance(p1, p2);
-        std::cout << d << std::endl;
-    }
-
-    return 0;
-}
Deleted: trunk/libs/geometry/example/08_units_example.vcproj
==============================================================================
--- trunk/libs/geometry/example/08_units_example.vcproj	2011-04-02 17:55:09 EDT (Sat, 02 Apr 2011)
+++ (empty file)
@@ -1,171 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="08_units_example"
-	ProjectGUID="{3D41FD4E-88B0-4A2A-9884-D434831A236C}"
-	RootNamespace="08_units_example"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)\08_units_example"
-			ConfigurationType="1"
-			InheritedPropertySheets=".\boost.vsprops"
-			CharacterSet="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				RuntimeLibrary="1"
-				DisableLanguageExtensions="false"
-				UsePrecompiledHeader="0"
-				DebugInformationFormat="1"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				GenerateDebugInformation="true"
-				SubSystem="1"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)\08_units_example"
-			ConfigurationType="1"
-			InheritedPropertySheets=".\boost.vsprops"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
-				UsePrecompiledHeader="0"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				SubSystem="1"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<File
-			RelativePath=".\08_units_example.cpp"
-			>
-		</File>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
Modified: trunk/libs/geometry/example/Jamfile.v2
==============================================================================
--- trunk/libs/geometry/example/Jamfile.v2	(original)
+++ trunk/libs/geometry/example/Jamfile.v2	2011-04-02 17:55:09 EDT (Sat, 02 Apr 2011)
@@ -23,7 +23,6 @@
 exe 06_b_transformation_example : 06_b_transformation_example.cpp ;
 exe 07_a_graph_route_example : 07_a_graph_route_example.cpp ;
 exe 07_b_graph_route_example : 07_b_graph_route_example.cpp ;
-exe 08_units_example : 08_units_example.cpp ;
 
 exe c01_custom_point_example : c01_custom_point_example.cpp ;
 exe c02_custom_box_example : c02_custom_box_example.cpp ;
Modified: trunk/libs/geometry/example/basic_examples.sln
==============================================================================
--- trunk/libs/geometry/example/basic_examples.sln	(original)
+++ trunk/libs/geometry/example/basic_examples.sln	2011-04-02 17:55:09 EDT (Sat, 02 Apr 2011)
@@ -20,8 +20,6 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "04_boost_example", "04_boost_example.vcproj", "{6254AA18-1E45-4ECD-B574-D20F97F5BBA3}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "08_units_example", "08_units_example.vcproj", "{3D41FD4E-88B0-4A2A-9884-D434831A236C}"
-EndProject
 Global
         GlobalSection(SolutionConfigurationPlatforms) = preSolution
                 Debug|Win32 = Debug|Win32
@@ -68,10 +66,6 @@
                 {6254AA18-1E45-4ECD-B574-D20F97F5BBA3}.Debug|Win32.Build.0 = Debug|Win32
                 {6254AA18-1E45-4ECD-B574-D20F97F5BBA3}.Release|Win32.ActiveCfg = Release|Win32
                 {6254AA18-1E45-4ECD-B574-D20F97F5BBA3}.Release|Win32.Build.0 = Release|Win32
-		{3D41FD4E-88B0-4A2A-9884-D434831A236C}.Debug|Win32.ActiveCfg = Debug|Win32
-		{3D41FD4E-88B0-4A2A-9884-D434831A236C}.Debug|Win32.Build.0 = Debug|Win32
-		{3D41FD4E-88B0-4A2A-9884-D434831A236C}.Release|Win32.ActiveCfg = Release|Win32
-		{3D41FD4E-88B0-4A2A-9884-D434831A236C}.Release|Win32.Build.0 = Release|Win32
         EndGlobalSection
         GlobalSection(SolutionProperties) = preSolution
                 HideSolutionNode = FALSE