MeshLib C++ Docs
Loading...
Searching...
No Matches
MRPartMappingAdapters.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRPartMapping.h"
4#include "MRMapOrHashMap.h"
5
6namespace MR
7{
10
11
14{
15public:
16 MRMESH_API Src2TgtMaps( FaceMap * outFmap, VertMap * outVmap, WholeEdgeMap * outEmap );
18
19 Src2TgtMaps( const Src2TgtMaps& ) = delete;
20 Src2TgtMaps( Src2TgtMaps&& ) noexcept = default;
21
22 Src2TgtMaps & operator = ( const Src2TgtMaps& ) = delete;
23 Src2TgtMaps & operator = ( Src2TgtMaps&& ) noexcept = default;
24
25 operator const PartMapping &() const { return map_; }
26 const PartMapping & getPartMapping() const { return map_; }
27
28private:
29 FaceMap * outFmap_ = nullptr;
30 VertMap * outVmap_ = nullptr;
31 WholeEdgeMap * outEmap_ = nullptr;
32 PartMapping map_;
33 FaceMapOrHashMap src2tgtFaces_;
34 VertMapOrHashMap src2tgtVerts_;
35 WholeEdgeMapOrHashMap src2tgtEdges_;
36};
37
40{
41public:
42 MRMESH_API Tgt2SrcMaps( FaceMap * outFmap, VertMap * outVmap, WholeEdgeMap * outEmap );
44
45 Tgt2SrcMaps( const Tgt2SrcMaps& ) = delete;
46 Tgt2SrcMaps( Tgt2SrcMaps&& ) noexcept = default;
47
48 Tgt2SrcMaps & operator = ( const Tgt2SrcMaps& ) = delete;
49 Tgt2SrcMaps & operator = ( Tgt2SrcMaps&& ) noexcept = default;
50
51 operator const PartMapping &() const { return map_; }
52 const PartMapping & getPartMapping() const { return map_; }
53
54private:
55 FaceMap * outFmap_ = nullptr;
56 VertMap * outVmap_ = nullptr;
57 WholeEdgeMap * outEmap_ = nullptr;
58 PartMapping map_;
59 FaceMapOrHashMap tgt2srcFaces_;
60 VertMapOrHashMap tgt2srcVerts_;
61 WholeEdgeMapOrHashMap tgt2srcEdges_;
62};
63
64}
#define MRMESH_API
Definition MRMeshFwd.h:82
Tgt2SrcMaps(FaceMap *outFmap, VertMap *outVmap, WholeEdgeMap *outEmap)
const PartMapping & getPartMapping() const
Definition MRPartMappingAdapters.h:26
Tgt2SrcMaps(const Tgt2SrcMaps &)=delete
maps are moved back to user here
MapOrHashMap< FaceId, FaceId > FaceMapOrHashMap
Definition MRMeshFwd.h:617
Src2TgtMaps(const Src2TgtMaps &)=delete
maps are moved back to user here
MapOrHashMap< VertId, VertId > VertMapOrHashMap
Definition MRMeshFwd.h:618
Src2TgtMaps(FaceMap *outFmap, VertMap *outVmap, WholeEdgeMap *outEmap)
Src2TgtMaps(Src2TgtMaps &&) noexcept=default
const PartMapping & getPartMapping() const
Definition MRPartMappingAdapters.h:52
MapOrHashMap< UndirectedEdgeId, EdgeId > WholeEdgeMapOrHashMap
mapping of whole edges: map[e]->f, map[e.sym()]->f.sym(), where only map[e] for even edges is stored
Definition MRMeshFwd.h:622
Tgt2SrcMaps(Tgt2SrcMaps &&) noexcept=default
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
mapping among elements of source mesh, from which a part is taken, and target mesh
Definition MRPartMapping.h:13