HETOOL: A Half-Edge Topological Object-Oriented Library for generic 2-D geometric modeling
Danilo S. Bomfim,
Rodrigo L. Soares,
Luiz F. Bez,
Pedro C.F. Lopes,
André M.B. Pereira,
Luiz F. Martha
Affiliations
Danilo S. Bomfim
Department of Civil and Environmental Engineering, Pontifical Catholic University of Rio de Janeiro, St. Marquês de São Viciente, 225 - Gávea, 22541-041, RJ/ Rio de Janeiro, Brazil
Rodrigo L. Soares
Department of Civil and Environmental Engineering, Pontifical Catholic University of Rio de Janeiro, St. Marquês de São Viciente, 225 - Gávea, 22541-041, RJ/ Rio de Janeiro, Brazil
Luiz F. Bez
Institute of Computing, Fluminense Federal University, Av. Gal. Milton Tavares de Souza, s/n - São Domingos, 24210-310, RJ/Niterói, Brazil
Pedro C.F. Lopes
Institute of Computing, Fluminense Federal University, Av. Gal. Milton Tavares de Souza, s/n - São Domingos, 24210-310, RJ/Niterói, Brazil
André M.B. Pereira
Institute of Computing, Fluminense Federal University, Av. Gal. Milton Tavares de Souza, s/n - São Domingos, 24210-310, RJ/Niterói, Brazil
Luiz F. Martha
Department of Civil and Environmental Engineering, Pontifical Catholic University of Rio de Janeiro, St. Marquês de São Viciente, 225 - Gávea, 22541-041, RJ/ Rio de Janeiro, Brazil; Corresponding author.
An object-oriented architecture of a topological data structure that allows high-level interactive two-dimensional (2-D) geometric modeling, called HETOOL, is introduced in this paper. The implementation is based on the well-known half-edge data structure for 2-manifold solids, adapted here to deal efficiently with general 2-D models and planar subdivisions, often employed in science and engineering problems. The HETOOL was implemented in Python. The developed package presents a dynamic data structure that performs the automatic topological sewing of the modeled geometric elements. The library offers many features and facilities to the user, allowing the use of the package even without the user knowing the topological concepts involved in implementing this data structure. In addition, the library offers flexibility in configuring new attributes, enabling the creation of these elements in a fast and straightforward way from a file in JSON format. This versatility in creating attributes allows the application of this package to solve several problems present in the scientific world.