cmlibs / zinc

Source code repository for OpenCMISS-Zinc
Mozilla Public License 2.0
15 stars 18 forks source link

Make C++ API const correct #190

Closed rchristie closed 2 years ago

rchristie commented 2 years ago

All get/is/has/find/write methods in the C++ API should be const as the object is not changed.

Fieldmodule::getMatchingTimesequence() is really a getOrCreate so should not be const. Unsure about the following which we may consider to always exist, so may be const: Mesh::getChartDifferentialoperator Fieldparameters::getDerivativeOperator

A handful of functions should be const but take non-const arguments which are modified: Scenepicker::addPickedElementsToFieldGroup Scenepicker::addPickedNodesToFieldGroup Scene::convertToPointCloud Scene::convertPointsToNodes

Eventually want to be able to say that most/all Fieldcache and const methods (excl. with non-const arguments) are threadsafe.

rchristie commented 2 years ago

Also boundary cases in the long run if we no longer guarantee nodes, datapoints, mesh1d, mesh2d and mesh3d to exist: Fieldmodule::findNodesetByFieldDomainType Fieldmodule::findNodesetByName Fieldmodule::findMeshByDimension Fieldmodule::findMeshByName