@@ -138,17 +138,24 @@ a Creative Commons Attribution 4.0 International License (CC BY
138138 standards-compliant geometric computation. It defines geometry
139139 <italic >concepts</italic > and implements algorithms in a dimension-
140140 and coordinate-system-agnostic manner. Since its inclusion in Boost
141- (2011), it has become a widely used component in C++ scientific and
142- industrial software.</p >
141+ (2011), it has been used in a range of C++ scientific and industrial
142+ software.</p >
143143</sec >
144144<sec id =" statement-of-need" >
145145 <title >Statement of need</title >
146- <p ><monospace >Boost.Geometry</monospace > fulfills the need for a
147- general-purpose, high-performance geometry engine in C++ with:</p >
146+ <p >C++ developers working in GIS, robotics, computer graphics, CAD,
147+ simulation, and scientific computing frequently require geometry
148+ algorithms that are both correct and efficient across multiple
149+ coordinate systems. Existing solutions either target a single
150+ coordinate system, lack extensibility for user-defined types, or
151+ impose runtime overhead through dynamic dispatching.
152+ <monospace >Boost.Geometry</monospace > addresses these needs by
153+ providing:</p >
148154 <list list-type =" bullet" >
149155 <list-item >
150156 <p >A generic programming architecture via concepts, type traits,
151- and template metaprogramming</p >
157+ and template metaprogramming, enabling zero-overhead
158+ abstraction</p >
152159 </list-item >
153160 <list-item >
154161 <p >Strategy-based dispatch enabling coordinate-system-specific
@@ -166,10 +173,12 @@ a Creative Commons Attribution 4.0 International License (CC BY
166173 </list-item >
167174 <list-item >
168175 <p >Header-only distribution, simplifying deployment and
169- integration</p >
176+ integration into existing codebases without additional build
177+ dependencies</p >
170178 </list-item >
171179 <list-item >
172- <p >Support for adapting user-defined geometry types</p >
180+ <p >Seamless adaptation of user-defined geometry types without
181+ modifying existing data structures</p >
173182 </list-item >
174183 </list >
175184</sec >
@@ -182,27 +191,55 @@ a Creative Commons Attribution 4.0 International License (CC BY
182191 applications and serves as the core geometry engine for major
183192 geospatial tools like PostGIS
184193 (<xref alt =" PostGIS Contributors, 2025" rid =" ref-PostGISU003A2025" ref-type =" bibr" >PostGIS
185- Contributors, 2025</xref >).</p >
194+ Contributors, 2025</xref >). GEOS is widely used in GIS, but it is
195+ centered on its own runtime geometry model and API. By contrast,
196+ <monospace >Boost.Geometry</monospace > is designed as a generic C++
197+ library: users can work with adapted user-defined types, write against
198+ stateless free functions, and integrate geometry algorithms into
199+ existing C++ code without introducing a separate object hierarchy.</p >
186200 <p >CGAL
187201 (<xref alt =" Fabri et al., 2000" rid =" ref-FabriU003A2000" ref-type =" bibr" >Fabri
188202 et al., 2000</xref >) is a comprehensive C++ library covering a broader
189- range of geometric algorithms (triangulations, Voronoi diagrams, mesh
190- generation, geometry processing) with a strong emphasis on robustness
191- via exact geometric predicates and constructions.</p >
203+ range of geometric algorithms, including triangulations, Voronoi
204+ diagrams, mesh generation, and geometry processing, with a strong
205+ emphasis on robustness via exact geometric predicates and
206+ constructions. Compared with CGAL,
207+ <monospace >Boost.Geometry</monospace > is more narrowly focused on the
208+ geometry operations and predicates commonly needed in GIS, geospatial
209+ software, and related scientific applications. Its added value lies in
210+ combining this focus with support for Cartesian, spherical, and
211+ geographic coordinate systems, as well as spatial indexing, within a
212+ single generic programming framework.</p >
192213 <p >Coordinate transformations and CRS handling are commonly performed
193214 using PROJ
194215 (<xref alt =" PROJ Contributors, 2024" rid =" ref-PROJU003A2024" ref-type =" bibr" >PROJ
195- Contributors, 2024</xref >), which users integrate alongside geometry
196- libraries for projections and datum transformations. For spatial
197- indexing, specialized libraries such as libspatialindex
216+ Contributors, 2024</xref >), which users often combine with geometry
217+ libraries for projections and datum transformations. Similarly,
218+ specialized libraries such as libspatialindex
198219 (<xref alt =" L. Contributors, 2024" rid =" ref-libspatialindexU003A2024" ref-type =" bibr" >L.
199- Contributors, 2024</xref >) are frequently used.</p >
220+ Contributors, 2024</xref >) are frequently used for spatial indexing.
221+ <monospace >Boost.Geometry</monospace > does not aim to replace such
222+ specialized tools in full; rather, it provides commonly needed
223+ projections, coordinate-system-aware algorithms, and an R-tree
224+ implementation for spatial and nearest-neighbor queries within the
225+ same header-only library, which can simplify integration in some
226+ workflows.</p >
200227 <p >GeographicLib
201228 (<xref alt =" Karney & Contributors, 2013" rid =" ref-GeographicLibU003A2013" ref-type =" bibr" >Karney
202229 & Contributors, 2013</xref >) and Karney’s work on geodesics
203230 (<xref alt =" Karney, 2013" rid =" ref-KarneyU003A2013" ref-type =" bibr" >Karney,
204231 2013</xref >) provide state-of-the-art algorithms for ellipsoidal
205- geodesic problems.</p >
232+ geodesic problems. <monospace >Boost.Geometry</monospace > builds on
233+ these geodetic methods and incorporates them into a broader geometry
234+ library, allowing users to apply geographic calculations as part of
235+ higher-level operations such as distance, area, and buffering. This
236+ integration is useful in applications that need geodetic accuracy
237+ without first projecting data into a planar coordinate system.</p >
238+ <p >In summary, these libraries each excel in their respective domains,
239+ but <monospace >Boost.Geometry</monospace > occupies a distinct position
240+ by combining generic C++ type adaptation, coordinate-system-aware
241+ geometric algorithms, geodetic support, and integrated spatial
242+ indexing in a single header-only library.</p >
206243</sec >
207244<sec id =" software-design" >
208245 <title >Software design</title >
@@ -265,9 +302,13 @@ a Creative Commons Attribution 4.0 International License (CC BY
265302 et al., 2024</xref >). Contributor guidelines, documentation tooling,
266303 talks, and videos are collected on the
267304 <ext-link ext-link-type =" uri" xlink : href =" https://github.com/boostorg/geometry/wiki" >project
268- wiki</ext-link >. The repository’s <monospace >test/</monospace > and
269- <monospace >example/</monospace > directories contain an extensive suite
270- of unit and regression tests alongside usage examples. Continuous
305+ wiki</ext-link >. The repository’s <monospace >test/</monospace >
306+ directory contain an extensive suite of unit and regression tests. The
307+ repository also provides examples in multiple forms: standalone
308+ tutorial-style programs in <monospace >example/</monospace >,
309+ documentation-integrated snippets in
310+ <monospace >doc/src/examples/</monospace >, and spatial-index-specific
311+ material in <monospace >index/example/</monospace >. Continuous
271312 integration on the Boost project provides broad platform and compiler
272313 coverage; <monospace >Boost.Geometry</monospace > also runs
273314 project-specific CI on GitHub Actions and CircleCI.</p >
@@ -276,19 +317,21 @@ a Creative Commons Attribution 4.0 International License (CC BY
276317 <title >Research impact statement</title >
277318 <p ><monospace >Boost.Geometry</monospace > has demonstrated significant
278319 adoption across scientific and industrial domains since its inclusion
279- in Boost (2011).</p >
320+ in Boost (2011). The examples below are indicative rather than
321+ exhaustive, and highlight the diversity of settings in which the
322+ library has been used.</p >
280323 <p >MySQL uses <monospace >Boost.Geometry</monospace > as the geometry
281324 engine for spatial SQL operations
282325 (<xref alt =" Zhao, 2014" rid =" ref-MySQLGISU003A2014" ref-type =" bibr" >Zhao,
283- 2014</xref >), exposing it to millions of database deployments
284- worldwide.</p >
326+ 2014</xref >), demonstrating use in production database systems.</p >
285327 <p >In spatial data management research, Hecatoncheir
286328 (<xref alt =" Georgiadis et al., 2025" rid =" ref-GeorgiadisU003A2025" ref-type =" bibr" >Georgiadis
287329 et al., 2025</xref >), a distributed in-memory spatial data management
288330 library, uses <monospace >Boost.Geometry</monospace > for geometry
289- comparisons and reports orders-of-magnitude speedups over Apache
290- Sedona, showing that <monospace >Boost.Geometry</monospace > can serve
291- as the geometry engine in high-performance distributed systems.</p >
331+ comparisons. The system reports orders-of-magnitude speedups over
332+ Apache Sedona, illustrating the use of
333+ <monospace >Boost.Geometry</monospace > within a high-performance
334+ distributed setting.</p >
292335 <p >In scientific computing, the lifex finite-element library
293336 (<xref alt =" Bucelli, 2025" rid =" ref-BucelliU003A2024" ref-type =" bibr" >Bucelli,
294337 2025</xref >), uses <monospace >Boost.Geometry</monospace >’s R-tree
@@ -303,7 +346,7 @@ a Creative Commons Attribution 4.0 International License (CC BY
303346 respectively.</p >
304347 <p >In crowd simulation research, Vermeulen et al.
305348 (<xref alt =" 2017" rid =" ref-VermeulenU003A2017" ref-type =" bibr" >2017</xref >)
306- use and evaluate <monospace >Boost.Geometry</monospace >’s R-tree for
349+ used and evaluated <monospace >Boost.Geometry</monospace >’s R-tree for
307350 k-nearest-neighbour searching.</p >
308351 <p >In robotics, Ashtekar & Dutta
309352 (<xref alt =" 2023" rid =" ref-AshtekarU003A2023" ref-type =" bibr" >2023</xref >)
@@ -331,8 +374,11 @@ a Creative Commons Attribution 4.0 International License (CC BY
331374<sec id =" ai-usage-disclosure" >
332375 <title >AI usage disclosure</title >
333376 <p >No generative AI tools were used in the development of this
334- software, the writing of this manuscript, or the preparation of
335- supporting materials.</p >
377+ software or supporting materials. Generative AI was used in a limited
378+ role to suggest wording improvements during proofreading of this
379+ manuscript. All AI-suggested edits were reviewed and confirmed by the
380+ authors. The AI tool used for this assistance was GitHub Copilot with
381+ GPT-5.4.</p >
336382</sec >
337383</body >
338384<back >
0 commit comments