OpenMesh merge requestshttps://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/merge_requests2016-12-27T07:55:07Zhttps://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/merge_requests/114OM Writer: Added Mark to the format header to identify end of stream correctl...2016-12-27T07:55:07ZJan Möbiusmoebius@cs.rwth-aachen.deOM Writer: Added Mark to the format header to identify end of stream correctly (……Thanks to Jamie Kydd for the patch)…Thanks to Jamie Kydd for the patch)OpenMesh 7.0Jan Möbiusmoebius@cs.rwth-aachen.deJan Möbiusmoebius@cs.rwth-aachen.dehttps://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/merge_requests/131Respect vector Traits in Quadric2017-04-26T13:34:46ZJan Möbiusmoebius@cs.rwth-aachen.deRespect vector Traits in QuadricRespect vector Traits in QuadricRespect vector Traits in QuadricOpenMesh 7.0Jan Möbiusmoebius@cs.rwth-aachen.deJan Möbiusmoebius@cs.rwth-aachen.dehttps://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/merge_requests/132Triangle Mesh 1->4 split2017-05-31T11:01:45ZJan Möbiusmoebius@cs.rwth-aachen.deTriangle Mesh 1->4 splitSplit a triangle into 4 triangles by splitting all edges at their midpoint and then retriangulateSplit a triangle into 4 triangles by splitting all edges at their midpoint and then retriangulateOpenMesh 7.0Jan Möbiusmoebius@cs.rwth-aachen.deJan Möbiusmoebius@cs.rwth-aachen.dehttps://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/merge_requests/135Boost range support (Thanks to Bastian Pranzas for the patch)2017-06-27T13:38:11ZJan Möbiusmoebius@cs.rwth-aachen.deBoost range support (Thanks to Bastian Pranzas for the patch)OpenMesh 7.0Jan Möbiusmoebius@cs.rwth-aachen.deJan Möbiusmoebius@cs.rwth-aachen.dehttps://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/merge_requests/339Add Edge circulators2023-11-14T07:57:20ZJanis BornAdd Edge circulatorsAdds Edge-Halfedge, Edge-Vertex, and Edge-Face circulators (and corresponding circulator ranges). These are especially useful in combination with smart ranges and their associated functional programming style. For example:
```cpp
int val...Adds Edge-Halfedge, Edge-Vertex, and Edge-Face circulators (and corresponding circulator ranges). These are especially useful in combination with smart ranges and their associated functional programming style. For example:
```cpp
int valence_after_collapse(SmartEdgeHandle _eh)
{
return _eh.vertices().sum([&](auto _vh) { return _vh.valence(); }) - 2;
}
```
Their iteration behaviour is defined as follows:
## Edge-Halfedge circulator
```cpp
for (auto heh : eh.halfedges()) {
// ...
}
```
is the same as
```cpp
for (int i = 0; i < 2; ++i) {
auto heh = eh.halfedge(i);
// ...
}
```
## Edge-Vertex circulator
```cpp
for (auto vh : eh.vertices()) {
// ...
}
```
is the same as
```cpp
for (int i = 0; i < 2; ++i) {
auto vh = eh.vertex(i);
// ...
}
```
## Edge-Face circulator
```cpp
for (auto fh : eh.faces()) {
// ...
}
```
is the same as
```cpp
for (int i = 0; i < 2; ++i) {
auto fh = eh.halfedge(i).face();
if (fh.is_valid()) {
// ...
}
}
```
## Notes
One additional change was adding a default argument to `PolyConnectivity::halfedge_handle`, i.e.
```cpp
mesh.halfedge_handle(eh)
```
is now equivalent to
```cpp
mesh.halfedge_handle(eh, 0)
```
This greatly simplifies the implementation of the Generic Circulator, which can now call `halfedge_handle()` on any center element type to obtain a starting halfedge.Janis BornJanis Bornhttps://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/merge_requests/71Handle nr newlines2016-05-30T14:31:08ZJan Möbiusmoebius@cs.rwth-aachen.deHandle nr newlinesOpenMesh 6.1Jan Möbiusmoebius@cs.rwth-aachen.deJan Möbiusmoebius@cs.rwth-aachen.dehttps://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/merge_requests/69Throw error when no readers are available2016-05-30T14:27:56ZJan Möbiusmoebius@cs.rwth-aachen.deThrow error when no readers are availableOpenMesh 6.1Jan Möbiusmoebius@cs.rwth-aachen.deJan Möbiusmoebius@cs.rwth-aachen.dehttps://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/merge_requests/75Hash functions2016-07-11T08:24:47ZJan Möbiusmoebius@cs.rwth-aachen.deHash functionsOpenMesh 6.2Jan Möbiusmoebius@cs.rwth-aachen.deJan Möbiusmoebius@cs.rwth-aachen.dehttps://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/merge_requests/32Om6 code reduction2015-11-30T12:19:34ZJan Möbiusmoebius@cs.rwth-aachen.deOm6 code reductionReduce number of includesReduce number of includesOpenMesh 6.0Jan Möbiusmoebius@cs.rwth-aachen.deJan Möbiusmoebius@cs.rwth-aachen.dehttps://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/merge_requests/23Cpp112015-11-23T15:47:26ZHans-Christian EbkeCpp11OpenMesh 6.0Jan Möbiusmoebius@cs.rwth-aachen.deJan Möbiusmoebius@cs.rwth-aachen.dehttps://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/merge_requests/19Fixed warnings in unit tests due to unused variables2015-11-11T13:52:11ZJan Möbiusmoebius@cs.rwth-aachen.deFixed warnings in unit tests due to unused variablesFixed Warnings in UnittestsFixed Warnings in UnittestsJan Möbiusmoebius@cs.rwth-aachen.deJan Möbiusmoebius@cs.rwth-aachen.dehttps://gitlab.vci.rwth-aachen.de:9000/OpenMesh/OpenMesh/-/merge_requests/31Om5.1 code reduction2015-11-30T11:12:17ZJan Möbiusmoebius@cs.rwth-aachen.deOm5.1 code reductionSignificant reduction of includesSignificant reduction of includesOpenMesh 5.1Jan Möbiusmoebius@cs.rwth-aachen.deJan Möbiusmoebius@cs.rwth-aachen.de