40 auto onEdgeSplit = [&] ( EdgeId e1, EdgeId e )
44 if ( org < data.
size() && dest < data.
size() )
45 data.
push_back( ( data[org] + data[dest] ) * 0.5f );
54 auto onEdgeSplit = [&] ( EdgeId e1, EdgeId e )
61 if ( newLeft && oldLeft && oldLeft < data.
size() )
69 if ( newRight && oldRight && oldRight < data.
size() )
#define MRMESH_API
Definition MRMesh/MRMeshFwd.h:46
FaceId left(EdgeId he) const
returns left face of half-edge
Definition MRMesh/MRMeshTopology.h:92
VertId dest(EdgeId he) const
returns destination vertex of half-edge
Definition MRMesh/MRMeshTopology.h:89
VertId org(EdgeId he) const
returns origin vertex of half-edge
Definition MRMesh/MRMeshTopology.h:86
FaceId right(EdgeId he) const
returns right face of half-edge
Definition MRMesh/MRMeshTopology.h:95
std::vector<T>-like container that requires specific indexing type,
Definition MRMesh/MRVector.h:20
std::size_t size() const
Definition MRMesh/MRVector.h:42
void autoResizeSet(I pos, size_t len, T val)
sets elements [pos, pos+len) to given value, adjusting the size of the vector to include new elements
Definition MRMesh/MRVector.h:87
void push_back(const T &t)
Definition MRMesh/MRVector.h:111
Definition MRCameraOrientationPlugin.h:8
MRMESH_API OnEdgeSplit meshOnEdgeSplitVertAttribute(const Mesh &mesh, const MeshAttributesToUpdate ¶ms)
struct MRMESH_CLASS Mesh
Definition MRMesh/MRMeshFwd.h:475
auto onEdgeSplitVertAttribute(const Mesh &mesh, Vector< T, VertId > &data)
Definition MRMeshSubdivideCallbacks.h:38
auto onEdgeSplitFaceAttribute(const Mesh &mesh, Vector< T, FaceId > &data)
Definition MRMeshSubdivideCallbacks.h:52
MRMESH_API OnEdgeSplit meshOnEdgeSplitFaceAttribute(const Mesh &mesh, const MeshAttributesToUpdate ¶ms)
std::function< void(EdgeId e1, EdgeId e)> OnEdgeSplit
Definition MRMesh/MRMeshFwd.h:428
MRMESH_API OnEdgeSplit meshOnEdgeSplitAttribute(const Mesh &mesh, const MeshAttributesToUpdate ¶ms)
Definition MRMeshAttributesToUpdate.h:10
Definition MRMesh/MRMesh.h:23
MeshTopology topology
Definition MRMesh/MRMesh.h:24