OpenVolumeMesh issueshttps://gitlab.vci.rwth-aachen.de:9000/groups/OpenVolumeMesh/-/issues2021-09-09T15:41:49Zhttps://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/29Fix inconsistencies2021-09-09T15:41:49ZMartin HeistermannFix inconsistencies- [ ] `TopologyKernel::opposite_halfface()` returns face- [ ] `TopologyKernel::opposite_halfface()` returns facev3.0Martin HeistermannMartin Heistermannhttps://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/27Add mesh analysis2021-08-19T10:10:03ZMartin HeistermannAdd mesh analysisMove code from OF/Plugin-InfoVolumeMeshMove code from OF/Plugin-InfoVolumeMeshv3.0Martin HeistermannMartin Heistermannhttps://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/26Better mixed mesh support2022-06-28T14:25:05ZMartin HeistermannBetter mixed mesh supportA lot of functionality implemented for tet/hex meshes would also be useful in polyhedral meshes for cells/regions of the appropriate type.A lot of functionality implemented for tet/hex meshes would also be useful in polyhedral meshes for cells/regions of the appropriate type.v3.0https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/25Add tests for attributes2021-08-19T10:10:04ZMartin HeistermannAdd tests for attributesv3.0https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/24Add tests for TetTopoKernel split_*/collapse_*2021-08-19T10:08:02ZMartin HeistermannAdd tests for TetTopoKernel split_*/collapse_*v3.0https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/23OVMB: binary file format2021-11-19T14:55:28ZMartin HeistermannOVMB: binary file formatFor first release:
- [x] Implement ~~all~~ important prop types from the current ASCII format
- [x] get rid of (or catch) exceptions
- [x] save options
- [x] De-templatize implementation, often a TopologyKernel is sufficient
- [ ] Docume...For first release:
- [x] Implement ~~all~~ important prop types from the current ASCII format
- [x] get rid of (or catch) exceptions
- [x] save options
- [x] De-templatize implementation, often a TopologyKernel is sufficient
- [ ] Document API
- [ ] Standard load/save API
- [ ] Custom prop type API
- [x] file format
- [x] OF integration
- [x] .ovmb file picker
- [x] ACG vector types
- [x] PluginFunctions to register custom prop types
- [x] Add unit tests
- [x] save + load
- [x] load existing files (to avoid incompatibility regressions)
- [x] Eigen types
- [ ] custom property types
Later:
- [ ] compression (zstd?) - figure out how to handle dependency well
- [ ] progress callback + abort functionv3.0Martin HeistermannMartin Heistermannhttps://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/22Implement OM-Style smart handles2023-02-01T10:57:31ZMartin HeistermannImplement OM-Style smart handlesWIP branch: https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/tree/dev/smart-handles
When everything works well, we can start returning smart handles everywhere :smile:WIP branch: https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/tree/dev/smart-handles
When everything works well, we can start returning smart handles everywhere :smile:v3.0Martin HeistermannMartin Heistermannhttps://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/21cleanup2021-08-19T10:10:00ZMartin Heistermanncleanup- [x] Make all relative `#include` "absolute" (`<OpenVolumeMesh/...`)
- [ ] Code formatting: Replace all tabs, maybe run clang-tidy- [x] Make all relative `#include` "absolute" (`<OpenVolumeMesh/...`)
- [ ] Code formatting: Replace all tabs, maybe run clang-tidyv3.0Martin HeistermannMartin Heistermannhttps://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/58`TetrahedralMeshTopologyKernel::split_edge` issues2024-02-05T15:51:14ZMartin Heistermann`TetrahedralMeshTopologyKernel::split_edge` issues- [ ] incident faces without cells are not split into two triangles
- [ ] the `alpha` parameter of `TetrahedralGeometryKernel::split_edge` is interpreted in a counter-intuitive way (to me). Guess we are stuck with this, but we should at ...- [ ] incident faces without cells are not split into two triangles
- [ ] the `alpha` parameter of `TetrahedralGeometryKernel::split_edge` is interpreted in a counter-intuitive way (to me). Guess we are stuck with this, but we should at least document it.https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/57ovmb: improve error handling2024-02-02T17:33:39ZMartin Heistermannovmb: improve error handlingExample: a mesh that needs garbage collection. Currently we just return a failure code with no further info.
- [ ] make error text available
- [ ] add error code for `NeedsGarbageCollection`
- [ ] an empty (or worse, partial) file is st...Example: a mesh that needs garbage collection. Currently we just return a failure code with no further info.
- [ ] make error text available
- [ ] add error code for `NeedsGarbageCollection`
- [ ] an empty (or worse, partial) file is still written - see if there is a clean platform-independent way to delete the file upon failure in the filename-based interface.https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/56Make it easy to write glm::vec props2024-02-02T18:12:51ZMartin HeistermannMake it easy to write glm::vec props- [ ] Ascii writer: At least support it when used in the geometry kernel
- [ ] ovmb: `register_arraylike` won't work, need some type traits here to get dimensionality
- [ ] ovmb: support it in GeometryWriter (including `float` type cf #...- [ ] Ascii writer: At least support it when used in the geometry kernel
- [ ] ovmb: `register_arraylike` won't work, need some type traits here to get dimensionality
- [ ] ovmb: support it in GeometryWriter (including `float` type cf #55)
can we unify geometry and prop writing?Martin HeistermannMartin Heistermannhttps://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/55OVMB: support reading/writing float vertex coordinates2024-02-02T17:29:42ZMartin HeistermannOVMB: support reading/writing float vertex coordinates`vertex_encoding()` always claims `Double`, but `write()` may write floats.`vertex_encoding()` always claims `Double`, but `write()` may write floats.Martin HeistermannMartin Heistermannhttps://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/54Support more file formats2024-01-23T15:33:45ZMartin HeistermannSupport more file formatsCompare https://github.com/cgg-bern/AlgoHex/issues/13Compare https://github.com/cgg-bern/AlgoHex/issues/13https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/53Tetmesh topology kernel: implement vertex_opposite_halfface()2024-01-23T15:05:10ZMartin HeistermannTetmesh topology kernel: implement vertex_opposite_halfface()Go from a halfface of a tet cell to the opposite vertex.
This is currently possible with the local TetTopology, but that's overkill in many cases.
We also already have `halfface_opposite_vertex()` to go from halfface to opposite vertex ...Go from a halfface of a tet cell to the opposite vertex.
This is currently possible with the local TetTopology, but that's overkill in many cases.
We also already have `halfface_opposite_vertex()` to go from halfface to opposite vertex (although the naming is a bit confusing IMHO).
Ideally this would work for tet elements in mixed meshes too, not just in pure tet meshes.https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/52MeshChecker to test consistency2023-07-20T18:32:08ZMartin HeistermannMeshChecker to test consistencyLike OpenMesh's MeshChecker; very useful when using the low-level apis and messing up the mesh somehow.Like OpenMesh's MeshChecker; very useful when using the low-level apis and messing up the mesh somehow.https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/51Hexmesh `add_cell` using vertex handles is surprisingly slow2023-07-04T17:57:29ZMartin HeistermannHexmesh `add_cell` using vertex handles is surprisingly slowprofile and optimize :smile:
Weirdly, in some preliminary tests bottom up incidences make it even *slower*?!
`reorder_incident_halffaces` is very expensive, much of it is `opposite_halfface`, which creates a new vector with the halfed...profile and optimize :smile:
Weirdly, in some preliminary tests bottom up incidences make it even *slower*?!
`reorder_incident_halffaces` is very expensive, much of it is `opposite_halfface`, which creates a new vector with the halfedges - this should be a cheap iterator instead.https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/49Check Hex half-face order consistency2023-02-01T10:27:44ZMartin HeistermannCheck Hex half-face order consistencyMultiple places define orderings for the half-faces of a hex cell:
- Figure in [doc description + induced_coordsys.png](https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVol...Multiple places define orderings for the half-faces of a hex cell:
- Figure in [doc description + induced_coordsys.png](https://www.graphics.rwth-aachen.de/media/openvolumemesh_static/Documentation/OpenVolumeMesh-Doc-Latest/classOpenVolumeMesh_1_1HexahedralMeshTopologyKernel.html]
- ASCII art in [`HexahedralMeshTopologyKernel::check_halfface_ordering`](https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/blob/master/src/OpenVolumeMesh/Mesh/HexahedralMeshTopologyKernel.cc#L159-182)
- Code in [HexahedralMeshTopologyKernel::add_cell(const std::vector<VertexHandle>& _vertices,...)`](https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/blob/master/src/OpenVolumeMesh/Mesh/HexahedralMeshTopologyKernel.hh#L114-134)
- OpenFlipper's [`FileVTKPlugin::addHexaCellToOpenVolumeMesh`](https://gitlab.vci.rwth-aachen.de:9000/OpenFlipper-Free/Plugin-FileVTK/-/blob/master/FileVTK.cc#L532-582)
- Maybe more places.
Are these all equivalent? Check, and definitely improve documentation!
#48 is related.
Internal discussion with PA: https://chat.inf.unibe.ch/group/cgg-coding-questions?msg=xYxP8FNw55kLgkTnshttps://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/48FileManager (.ovm): Files with only valence-6 cells always identified as hexm...2023-02-01T10:21:40ZMartin HeistermannFileManager (.ovm): Files with only valence-6 cells always identified as hexmeshes[`FileManager::isHexahedralMesh`](https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/blob/master/src/OpenVolumeMesh/FileManager/FileManager.cc#L134-178) uses a very simplistic check to figure out if a file contains a ...[`FileManager::isHexahedralMesh`](https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/blob/master/src/OpenVolumeMesh/FileManager/FileManager.cc#L134-178) uses a very simplistic check to figure out if a file contains a hex mesh: if every cell has valence 6, it must be a hex mesh.
This leads to false positives, not only in the (less common) case of some unusual cells, but a hex mesh which was created and saved as polyhedral mesh, but not using the prescribed halfface order will be read as hex mesh, which causes all sorts of weird issues.
Not sure what the best way to fix this is!https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/47Deprecate n_vertices etc?2022-09-14T13:54:56ZMartin HeistermannDeprecate n_vertices etc?`TopologyKernel::n_{vertices, edges, ...}()` counts include deleted entities that are not garbage collected yet. Uses for this include finding out the maximum index, for property-like structure or translations to other data structures.
...`TopologyKernel::n_{vertices, edges, ...}()` counts include deleted entities that are not garbage collected yet. Uses for this include finding out the maximum index, for property-like structure or translations to other data structures.
In many cases `n_logical_{vertices, ...}()` is the correct choice, when the user is actually interested in the properties of the mesh, e.g. checking if it is empty, face-less etc.
I would like to replace the former functions by something with a new name (hard problem!) and deprecate the old ones.https://gitlab.vci.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh/-/issues/46TopologyKernel::adjacent_halfface_in_cell: Turn HEH argument into EH2022-09-09T12:13:59ZMartin HeistermannTopologyKernel::adjacent_halfface_in_cell: Turn HEH argument into EHKeep a compatibility version taking a HEH, marked as deprecated.Keep a compatibility version taking a HEH, marked as deprecated.