Skip to content

Commit ea8bc58

Browse files
committed
Update jats/paper.jats
1 parent 1a39f4e commit ea8bc58

1 file changed

Lines changed: 74 additions & 28 deletions

File tree

joss_paper/jats/paper.jats

Lines changed: 74 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -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 &amp; Contributors, 2013" rid="ref-GeographicLibU003A2013" ref-type="bibr">Karney
202229
&amp; 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 &amp; 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

Comments
 (0)