Copyright © 2023, Hrvoje Lukatela. All rights reserved.
Redistribution and use in source and binary form, without modification, is permitted provided that the following conditions are met:
No modifications: The above license is, with only a single exception, identical to the industry-standard, well-known "3‑clause BSD License". The difference between the two is that the BSD license permits redistribution "...with or without modification,..", while this license permits only the redistribution of unmodified source and binaries.
In situations involving monolithic applications, redistribution of modified work is a necessary condition for the desirable evolution of the software product. In the case of a modular library however, it is good software engineering practice not to modify an existing module, but instead to replace it with a new, independently developed, documented and tested version. This is especially the case when the replaceable modules are C language functions that consist of only a dozen or two of source code statements, and the interface between any module and the rest of the system consist of nothing other than the function calling sequence and its return value. The module or modules, replacements and additions, can be packaged as a different library, with the application build process controlling which modules are linked-in from which library.
In order to make the replacements and additions as straightforward as
possible, all numeric constants and data type names, together with their
internal composition, as defined by the C language pre‑processor
#typedef
's in nemo.h
header file (specifically:
nemoPtPln
, nemoPtCc3
, nemoAzCc2
,
nemoDxCc3
, nemoPtNcs
, nemoElRot
,
nemoPtEll
, nemoPtEnr
and nemoElRot
)
can be used in any other software product, without any restriction.
Note that the copyright never extends to mathematics - in this case the algebraic fundamentals of computational geometry: these are, once published, free to use for all, with no restrictions whatsoever.