Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r77232 - in trunk: boost/geometry/extensions/gis/projections libs/geometry/example_extensions/gis/projections
From: barend.gehrels_at_[hidden]
Date: 2012-03-05 09:45:10


Author: barendgehrels
Date: 2012-03-05 09:45:09 EST (Mon, 05 Mar 2012)
New Revision: 77232
URL: http://svn.boost.org/trac/boost/changeset/77232

Log:
[geometry] projections added (processed version of) new_projection submitted by Krzysztof Czainski, including example
 
Added:
   trunk/boost/geometry/extensions/gis/projections/new_projection.hpp (contents, props changed)
   trunk/boost/geometry/extensions/gis/projections/projection_point_type.hpp (contents, props changed)
   trunk/libs/geometry/example_extensions/gis/projections/p04_example.cpp (contents, props changed)
   trunk/libs/geometry/example_extensions/gis/projections/p04_example.vcproj (contents, props changed)
   trunk/libs/geometry/example_extensions/gis/projections/p05_example.cpp (contents, props changed)
   trunk/libs/geometry/example_extensions/gis/projections/p05_example.vcproj (contents, props changed)
Text files modified:
   trunk/libs/geometry/example_extensions/gis/projections/Jamfile.v2 | 2 ++
   trunk/libs/geometry/example_extensions/gis/projections/projection_examples.sln | 12 ++++++++++++
   2 files changed, 14 insertions(+), 0 deletions(-)

Added: trunk/boost/geometry/extensions/gis/projections/new_projection.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/geometry/extensions/gis/projections/new_projection.hpp 2012-03-05 09:45:09 EST (Mon, 05 Mar 2012)
@@ -0,0 +1,54 @@
+// Boost.Geometry (aka GGL, Generic Geometry Library)
+
+// Copyright (c) 2012 Krzysztof Czainski
+// Copyright (c) 2012 Barend Gehrels, Amsterdam, the Netherlands.
+
+// 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)
+// Distributed under 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_GEOMETRY_PROJECTIONS_NEW_PROJECTION_HPP
+#define BOOST_GEOMETRY_PROJECTIONS_NEW_PROJECTION_HPP
+
+#include <boost/geometry/extensions/gis/projections/impl/base_dynamic.hpp>
+#include <boost/geometry/extensions/gis/projections/projection_point_type.hpp>
+#include <boost/geometry/extensions/gis/projections/projection.hpp>
+
+namespace boost { namespace geometry { namespace projections
+{
+
+/*!
+\brief Creates a type-erased projection
+\details Creates using operator new a class derived from projection, that forwards method
+ calls to @p Proj.
+\ingroup projection
+\tparam Projection Type of the concrete projection to be created.
+\tparam Parameters projection parameters type
+\see projection
+\see factory
+*/
+
+//@{
+template <typename Projection, typename Parameters>
+inline projection
+ <
+ typename detail::projection_point_type<Projection, geographic_tag>::type
+ , typename detail::projection_point_type<Projection, cartesian_tag>::type
+ >* new_projection(Parameters const& par)
+{
+ return new detail::base_v_fi
+ <
+ Projection
+ , typename detail::projection_point_type<Projection, geographic_tag>::type
+ , typename detail::projection_point_type<Projection, cartesian_tag>::type
+ , Parameters
+ >(par);
+}
+//@}
+
+}}} // boost::geometry::projections
+
+#endif // BOOST_GEOMETRY_PROJECTIONS_NEW_PROJECTION_HPP

Added: trunk/boost/geometry/extensions/gis/projections/projection_point_type.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/geometry/extensions/gis/projections/projection_point_type.hpp 2012-03-05 09:45:09 EST (Mon, 05 Mar 2012)
@@ -0,0 +1,44 @@
+// Boost.Geometry (aka GGL, Generic Geometry Library)
+
+// Copyright (c) 2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2012 Krzysztof Czainski
+
+// 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)
+// Distributed under 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_GEOMETRY_PROJECTIONS_PROJECTION_POINT_TYPE_HPP
+#define BOOST_GEOMETRY_PROJECTIONS_PROJECTION_POINT_TYPE_HPP
+
+namespace boost { namespace geometry { namespace projections
+{
+
+#ifndef DOXYGEN_NO_DETAIL
+namespace detail
+{
+
+template <typename Projection, typename CoordinateSystemTag>
+struct projection_point_type
+{};
+
+template <typename Projection>
+struct projection_point_type<Projection, cartesian_tag>
+{
+ typedef typename Projection::cartesian_point_type type;
+};
+
+template <typename Projection>
+struct projection_point_type<Projection, geographic_tag>
+{
+ typedef typename Projection::geographic_point_type type;
+};
+
+} // detail
+#endif // DOXYGEN_NO_DETAIL
+
+}}} // boost::geometry::projection
+
+#endif // BOOST_GEOMETRY_PROJECTIONS_PROJECTION_POINT_TYPE_HPP

Modified: trunk/libs/geometry/example_extensions/gis/projections/Jamfile.v2
==============================================================================
--- trunk/libs/geometry/example_extensions/gis/projections/Jamfile.v2 (original)
+++ trunk/libs/geometry/example_extensions/gis/projections/Jamfile.v2 2012-03-05 09:45:09 EST (Mon, 05 Mar 2012)
@@ -16,3 +16,5 @@
 exe p01_projection_example : p01_projection_example.cpp ;
 exe p02_projfactory_example : p02_projfactory_example.cpp ;
 exe p03_projmap_example : p03_projmap_example.cpp ;
+exe p04_example : p04_example.cpp ;
+exe p05_example : p05_example.cpp ;

Added: trunk/libs/geometry/example_extensions/gis/projections/p04_example.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/geometry/example_extensions/gis/projections/p04_example.cpp 2012-03-05 09:45:09 EST (Mon, 05 Mar 2012)
@@ -0,0 +1,127 @@
+// Boost.Geometry (aka GGL, Generic Geometry Library)
+//
+// Copyright (c) 2012 Barend Gehrels, Amsterdam, the Netherlands.
+//
+// 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)
+//
+// Projection example 4, reworked version of example 3
+// Now using svg mapper, multi polygons and specific transform strategy
+
+#include <fstream>
+
+#include <boost/foreach.hpp>
+#include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/register/point.hpp>
+#include <boost/geometry/multi/geometries/multi_polygon.hpp>
+
+#include <boost/geometry/extensions/io/svg/svg_mapper.hpp>
+#include <boost/geometry/extensions/gis/latlong/latlong.hpp>
+
+#include <boost/geometry/extensions/gis/projections/parameters.hpp>
+#include <boost/geometry/extensions/gis/projections/proj/robin.hpp>
+
+// Define a specific projection transformer
+// (NOTE: this might become part of the library)
+template <typename Projection>
+struct projection_transformer
+{
+ Projection const& m_prj;
+
+ inline projection_transformer(Projection const& prj)
+ : m_prj(prj)
+ {}
+
+ inline bool apply(typename Projection::geographic_point_type const& p1,
+ typename Projection::cartesian_point_type& p2) const
+ {
+ return m_prj.forward(p1, p2);
+ }
+};
+
+void read_wkt_and_project_and_map_svg(std::string const& wkt_filename,
+ std::string const& svg_filename)
+{
+ using namespace boost::geometry;
+
+ typedef model::ll::point<degree> point_ll_deg;
+ typedef model::d2::point_xy<double> point_xy;
+
+ typedef model::multi_polygon<model::polygon<point_ll_deg> > mp_ll;
+ typedef model::multi_polygon<model::polygon<point_xy> > mp_xy;
+
+ typedef projections::robin_spheroid<point_ll_deg, point_xy> robin;
+
+ std::vector<mp_ll> countries_in_ll;
+
+ // Read polygons from WKT
+ std::ifstream cpp_file(wkt_filename.c_str());
+ if (! cpp_file.is_open())
+ {
+ throw std::string("File not found: ") + wkt_filename;
+ }
+
+ while (! cpp_file.eof() )
+ {
+ std::string line;
+ std::getline(cpp_file, line);
+ if (boost::starts_with(line, "MULTIPOLYGON"))
+ {
+ countries_in_ll.resize(countries_in_ll.size() + 1);
+ boost::geometry::read_wkt(line, countries_in_ll.back());
+ }
+ }
+
+ robin prj(projections::init("+ellps=WGS84 +units=m"));
+ projection_transformer<robin> projection(prj);
+
+ // Project the polygons, and at the same time get the bounding box (in xy)
+ std::vector<mp_xy> countries_in_xy;
+ model::box<point_xy> bbox;
+ assign_inverse(bbox);
+ BOOST_FOREACH(mp_ll const& country_ll, countries_in_ll)
+ {
+ mp_xy country_xy;
+ if (transform(country_ll, country_xy, projection))
+ {
+ expand(bbox, return_envelope<model::box<point_xy> >(country_xy));
+ countries_in_xy.push_back(country_xy);
+ }
+ }
+
+ // Create an SVG image
+ std::ofstream svg(svg_filename.c_str());
+ boost::geometry::svg_mapper<point_xy> mapper(svg, 1000, 800);
+ mapper.add(bbox);
+
+ BOOST_FOREACH(mp_xy const& country, countries_in_xy)
+ {
+ mapper.map(country, "fill-opacity:0.6;fill:rgb(153,204,0);stroke:rgb(0,128,0);stroke-width:0.2");
+ }
+}
+
+int main(int argc, char** argv)
+{
+ try
+ {
+ // Note, file location: trunk/libs/geometry/example/data
+ // update path below if necessary
+ read_wkt_and_project_and_map_svg(
+ "../../../example/data/world.wkt",
+ "world4.svg");
+ }
+ catch(std::exception const& e)
+ {
+ std::cout << "Exception: " << e.what() << std::endl;
+ return 1;
+ }
+ catch(std::string const& s)
+ {
+ std::cout << "Exception: " << s << std::endl;
+ return 1;
+ }
+
+ return 0;
+}

Added: trunk/libs/geometry/example_extensions/gis/projections/p04_example.vcproj
==============================================================================
--- (empty file)
+++ trunk/libs/geometry/example_extensions/gis/projections/p04_example.vcproj 2012-03-05 09:45:09 EST (Mon, 05 Mar 2012)
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="p04_example"
+ ProjectGUID="{D819FA4A-8C50-4A1A-83A2-85F9493C8614}"
+ RootNamespace="p04_example"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)\p04_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"
+ AdditionalIncludeDirectories=".;../../../../.."
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS"
+ MinimalRebuild="true"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="kernel32.lib $(NoInherit)"
+ LinkIncremental="2"
+ 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)\p04_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"
+ InlineFunctionExpansion="2"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="1"
+ WholeProgramOptimization="false"
+ AdditionalIncludeDirectories=".;../../../../.."
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS"
+ GeneratePreprocessedFile="0"
+ RuntimeLibrary="0"
+ EnableEnhancedInstructionSet="0"
+ UsePrecompiledHeader="0"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="kernel32.lib $(NoInherit)"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ 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=".\p04_example.cpp"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>

Added: trunk/libs/geometry/example_extensions/gis/projections/p05_example.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/geometry/example_extensions/gis/projections/p05_example.cpp 2012-03-05 09:45:09 EST (Mon, 05 Mar 2012)
@@ -0,0 +1,155 @@
+// Boost.Geometry (aka GGL, Generic Geometry Library)
+//
+// Copyright (c) 2012 Barend Gehrels, Amsterdam, the Netherlands.
+//
+// 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)
+//
+// Projection example 5 (reworked from 4), using small factory
+
+#include <fstream>
+
+#include <boost/foreach.hpp>
+#include <boost/geometry.hpp>
+#include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/register/point.hpp>
+#include <boost/geometry/multi/geometries/multi_polygon.hpp>
+
+#include <boost/geometry/extensions/io/svg/svg_mapper.hpp>
+#include <boost/geometry/extensions/gis/latlong/latlong.hpp>
+
+#include <boost/geometry/extensions/gis/projections/parameters.hpp>
+#include <boost/geometry/extensions/gis/projections/proj/goode.hpp>
+#include <boost/geometry/extensions/gis/projections/proj/moll.hpp>
+#include <boost/geometry/extensions/gis/projections/proj/natearth.hpp>
+#include <boost/geometry/extensions/gis/projections/proj/robin.hpp>
+
+#include <boost/geometry/extensions/gis/projections/new_projection.hpp>
+
+// Define a specific projection transformer
+// (NOTE: this might become part of the library - copied from p04)
+template <typename Projection>
+struct projection_transformer
+{
+ Projection const& m_prj;
+
+ inline projection_transformer(Projection const& prj)
+ : m_prj(prj)
+ {}
+
+ inline bool apply(typename Projection::geographic_point_type const& p1,
+ typename Projection::cartesian_point_type& p2) const
+ {
+ return m_prj.forward(p1, p2);
+ }
+};
+
+void p05_example(int projection_id,
+ std::string const& wkt_filename,
+ std::string const& svg_filename)
+{
+ using namespace boost::geometry;
+ using namespace boost::geometry::projections;
+
+ typedef model::ll::point<degree> pll;
+ typedef model::d2::point_xy<double> pxy;
+
+ // Idea and headerfile "new_projection" submitted by Krzysztof Czainski:
+ // They are useful, when:
+ // - you have a small set of types of projections you'll use,
+ // - you know the type of projection during it's creation, and later
+ // you want to use it through an abstract base pointer,
+ // - you want to avoid the overhead of factory: generating code for
+ // creating a projection of every type you don't use, and selecting
+ // the type from a string.
+
+ projection<pll, pxy>* prj = NULL;
+
+ parameters pars = projections::init("+ellps=WGS84");
+ switch(projection_id)
+ {
+ case 1 : prj = new_projection<robin_spheroid<pll, pxy> >(pars); break;
+ case 2 : prj = new_projection<moll_spheroid<pll, pxy> >(pars); break;
+ case 3 : prj = new_projection<goode_spheroid<pll, pxy> >(pars); break;
+ case 4 : prj = new_projection<natearth_spheroid<pll, pxy> >(pars); break;
+ default : return;
+ }
+
+ typedef model::multi_polygon<model::polygon<pll> > mp_ll;
+ typedef model::multi_polygon<model::polygon<pxy> > mp_xy;
+
+ std::vector<mp_ll> countries_in_ll;
+
+ // Read polygons from WKT
+ std::ifstream cpp_file(wkt_filename.c_str());
+ if (! cpp_file.is_open())
+ {
+ throw std::string("File not found: ") + wkt_filename;
+ }
+
+ while (! cpp_file.eof() )
+ {
+ std::string line;
+ std::getline(cpp_file, line);
+ if (boost::starts_with(line, "MULTIPOLYGON"))
+ {
+ countries_in_ll.resize(countries_in_ll.size() + 1);
+ boost::geometry::read_wkt(line, countries_in_ll.back());
+ }
+ }
+
+ projection_transformer<projection<pll, pxy> > strategy(*prj);
+
+ // Project the polygons, and at the same time get the bounding box (in xy)
+ std::vector<mp_xy> countries_in_xy;
+ model::box<pxy> bbox;
+ assign_inverse(bbox);
+ BOOST_FOREACH(mp_ll const& country_ll, countries_in_ll)
+ {
+ mp_xy country_xy;
+ if (transform(country_ll, country_xy, strategy))
+ {
+ expand(bbox, return_envelope<model::box<pxy> >(country_xy));
+ countries_in_xy.push_back(country_xy);
+ }
+ }
+
+ // Create an SVG image
+ std::ofstream svg(svg_filename.c_str());
+ boost::geometry::svg_mapper<pxy> mapper(svg, 1000, 800);
+ mapper.add(bbox);
+
+ BOOST_FOREACH(mp_xy const& country, countries_in_xy)
+ {
+ mapper.map(country, "fill-opacity:0.6;fill:rgb(153,204,0);stroke:rgb(0,128,0);stroke-width:0.2");
+ }
+
+ delete prj;
+}
+
+int main(int argc, char** argv)
+{
+ // Note, file location: trunk/libs/geometry/example/data
+ // update path below if necessary
+ std::string const data = "../../../example/data/world.wkt";
+ try
+ {
+ p05_example(1, data, "p05_world_1.svg");
+ p05_example(2, data, "p05_world_2.svg");
+ p05_example(3, data, "p05_world_3.svg");
+ p05_example(4, data, "p05_world_4.svg");
+ }
+ catch(std::exception const& e)
+ {
+ std::cerr << "Exception: " << e.what() << std::endl;
+ return 1;
+ }
+ catch(std::string const& s)
+ {
+ std::cerr << "Exception: " << s << std::endl;
+ return 1;
+ }
+
+ return 0;
+}

Added: trunk/libs/geometry/example_extensions/gis/projections/p05_example.vcproj
==============================================================================
--- (empty file)
+++ trunk/libs/geometry/example_extensions/gis/projections/p05_example.vcproj 2012-03-05 09:45:09 EST (Mon, 05 Mar 2012)
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="p05_example"
+ ProjectGUID="{A85549E1-F545-4398-A4E7-258ED821AB76}"
+ RootNamespace="p05_example"
+ Keyword="Win32Proj"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)\p05_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"
+ AdditionalIncludeDirectories=".;../../../../.."
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS"
+ MinimalRebuild="true"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="kernel32.lib $(NoInherit)"
+ LinkIncremental="2"
+ 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)\p05_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"
+ InlineFunctionExpansion="2"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="1"
+ WholeProgramOptimization="false"
+ AdditionalIncludeDirectories=".;../../../../.."
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS"
+ GeneratePreprocessedFile="0"
+ RuntimeLibrary="0"
+ EnableEnhancedInstructionSet="0"
+ UsePrecompiledHeader="0"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="kernel32.lib $(NoInherit)"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ 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=".\p05_example.cpp"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>

Modified: trunk/libs/geometry/example_extensions/gis/projections/projection_examples.sln
==============================================================================
--- trunk/libs/geometry/example_extensions/gis/projections/projection_examples.sln (original)
+++ trunk/libs/geometry/example_extensions/gis/projections/projection_examples.sln 2012-03-05 09:45:09 EST (Mon, 05 Mar 2012)
@@ -6,6 +6,10 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "p03_example", "p03_example.vcproj", "{130DA4D1-E7E6-4E51-9D97-FC048995FEAC}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "p04_example", "p04_example.vcproj", "{D819FA4A-8C50-4A1A-83A2-85F9493C8614}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "p05_example", "p05_example.vcproj", "{A85549E1-F545-4398-A4E7-258ED821AB76}"
+EndProject
 Global
         GlobalSection(SolutionConfigurationPlatforms) = preSolution
                 Debug|Win32 = Debug|Win32
@@ -24,6 +28,14 @@
                 {130DA4D1-E7E6-4E51-9D97-FC048995FEAC}.Debug|Win32.Build.0 = Debug|Win32
                 {130DA4D1-E7E6-4E51-9D97-FC048995FEAC}.Release|Win32.ActiveCfg = Release|Win32
                 {130DA4D1-E7E6-4E51-9D97-FC048995FEAC}.Release|Win32.Build.0 = Release|Win32
+ {D819FA4A-8C50-4A1A-83A2-85F9493C8614}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D819FA4A-8C50-4A1A-83A2-85F9493C8614}.Debug|Win32.Build.0 = Debug|Win32
+ {D819FA4A-8C50-4A1A-83A2-85F9493C8614}.Release|Win32.ActiveCfg = Release|Win32
+ {D819FA4A-8C50-4A1A-83A2-85F9493C8614}.Release|Win32.Build.0 = Release|Win32
+ {A85549E1-F545-4398-A4E7-258ED821AB76}.Debug|Win32.ActiveCfg = Debug|Win32
+ {A85549E1-F545-4398-A4E7-258ED821AB76}.Debug|Win32.Build.0 = Debug|Win32
+ {A85549E1-F545-4398-A4E7-258ED821AB76}.Release|Win32.ActiveCfg = Release|Win32
+ {A85549E1-F545-4398-A4E7-258ED821AB76}.Release|Win32.Build.0 = Release|Win32
         EndGlobalSection
         GlobalSection(SolutionProperties) = preSolution
                 HideSolutionNode = FALSE


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk