MeshLib C Docs
Loading...
Searching...
No Matches
MROneMeshContours.h File Reference
#include <MRCMesh/MREnums.h>
#include <MRCMesh/MRVector3.h>
#include <MRCMisc/common.h>
#include <MRCMisc/exports.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>

Go to the source code of this file.

Typedefs

typedef struct MR_AffineXf3f MR_AffineXf3f
 
typedef struct MR_CoordinateConverters MR_CoordinateConverters
 
typedef struct MR_Mesh MR_Mesh
 
typedef struct MR_MeshTriPoint MR_MeshTriPoint
 
typedef struct MR_expected_MR_OneMeshContour_std_string MR_expected_MR_OneMeshContour_std_string
 
typedef struct MR_phmap_flat_hash_map_MR_FaceId_MR_FaceId MR_phmap_flat_hash_map_MR_FaceId_MR_FaceId
 
typedef struct MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref
 
typedef struct MR_std_variant_MR_FaceId_MR_EdgeId_MR_VertId MR_std_variant_MR_FaceId_MR_EdgeId_MR_VertId
 
typedef struct MR_std_vector_MR_EdgePoint MR_std_vector_MR_EdgePoint
 
typedef struct MR_std_vector_MR_MeshTriPoint MR_std_vector_MR_MeshTriPoint
 
typedef struct MR_std_vector_MR_OneMeshContour MR_std_vector_MR_OneMeshContour
 
typedef struct MR_std_vector_MR_OneMeshIntersection MR_std_vector_MR_OneMeshIntersection
 
typedef struct MR_std_vector_int32_t MR_std_vector_int32_t
 
typedef struct MR_std_vector_std_vector_MR_EdgePoint MR_std_vector_std_vector_MR_EdgePoint
 
typedef struct MR_std_vector_std_vector_MR_VarEdgeTri MR_std_vector_std_vector_MR_VarEdgeTri
 
typedef struct MR_std_vector_std_vector_MR_Vector3f MR_std_vector_std_vector_MR_Vector3f
 
typedef struct MR_SortIntersectionsData MR_SortIntersectionsData
 Generated from class MR::SortIntersectionsData.
 
typedef struct MR_OneMeshIntersection MR_OneMeshIntersection
 Generated from class MR::OneMeshIntersection.
 
typedef struct MR_OneMeshContour MR_OneMeshContour
 Generated from class MR::OneMeshContour.
 
typedef struct MR_SearchPathSettings MR_SearchPathSettings
 

Functions

MRC_API const MR_MeshMR_SortIntersectionsData_Get_otherMesh (const MR_SortIntersectionsData *_this)
 
MRC_API const MR_std_vector_std_vector_MR_VarEdgeTriMR_SortIntersectionsData_Get_contours (const MR_SortIntersectionsData *_this)
 
MRC_API const MR_std_function_MR_Vector3i_from_const_MR_Vector3f_refMR_SortIntersectionsData_Get_converter (const MR_SortIntersectionsData *_this)
 
MRC_API void MR_SortIntersectionsData_Set_converter (MR_SortIntersectionsData *_this, MR_PassBy value_pass_by, MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref *value)
 
MRC_API MR_std_function_MR_Vector3i_from_const_MR_Vector3f_refMR_SortIntersectionsData_GetMutable_converter (MR_SortIntersectionsData *_this)
 
MRC_API const MR_AffineXf3f *const * MR_SortIntersectionsData_Get_rigidB2A (const MR_SortIntersectionsData *_this)
 
MRC_API void MR_SortIntersectionsData_Set_rigidB2A (MR_SortIntersectionsData *_this, const MR_AffineXf3f *value)
 
MRC_API const MR_AffineXf3f ** MR_SortIntersectionsData_GetMutable_rigidB2A (MR_SortIntersectionsData *_this)
 
MRC_API const MR_uint64_tMR_SortIntersectionsData_Get_meshAVertsNum (const MR_SortIntersectionsData *_this)
 
MRC_API void MR_SortIntersectionsData_Set_meshAVertsNum (MR_SortIntersectionsData *_this, MR_uint64_t value)
 
MRC_API MR_uint64_tMR_SortIntersectionsData_GetMutable_meshAVertsNum (MR_SortIntersectionsData *_this)
 
MRC_API const bool * MR_SortIntersectionsData_Get_isOtherA (const MR_SortIntersectionsData *_this)
 
MRC_API void MR_SortIntersectionsData_Set_isOtherA (MR_SortIntersectionsData *_this, bool value)
 
MRC_API bool * MR_SortIntersectionsData_GetMutable_isOtherA (MR_SortIntersectionsData *_this)
 
MRC_API MR_SortIntersectionsDataMR_SortIntersectionsData_ConstructFromAnother (MR_PassBy _other_pass_by, MR_SortIntersectionsData *_other)
 
MRC_API MR_SortIntersectionsDataMR_SortIntersectionsData_ConstructFrom (const MR_Mesh *otherMesh, const MR_std_vector_std_vector_MR_VarEdgeTri *contours, MR_PassBy converter_pass_by, MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref *converter, const MR_AffineXf3f *rigidB2A, MR_uint64_t meshAVertsNum, bool isOtherA)
 
MRC_API const MR_SortIntersectionsDataMR_SortIntersectionsData_OffsetPtr (const MR_SortIntersectionsData *ptr, ptrdiff_t i)
 Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
 
MRC_API MR_SortIntersectionsDataMR_SortIntersectionsData_OffsetMutablePtr (MR_SortIntersectionsData *ptr, ptrdiff_t i)
 Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
 
MRC_API void MR_SortIntersectionsData_Destroy (const MR_SortIntersectionsData *_this)
 Destroys a heap-allocated instance of MR_SortIntersectionsData. Does nothing if the pointer is null.
 
MRC_API void MR_SortIntersectionsData_DestroyArray (const MR_SortIntersectionsData *_this)
 Destroys a heap-allocated array of MR_SortIntersectionsData. Does nothing if the pointer is null.
 
MRC_API const MR_std_variant_MR_FaceId_MR_EdgeId_MR_VertIdMR_OneMeshIntersection_Get_primitiveId (const MR_OneMeshIntersection *_this)
 
MRC_API void MR_OneMeshIntersection_Set_primitiveId (MR_OneMeshIntersection *_this, const MR_std_variant_MR_FaceId_MR_EdgeId_MR_VertId *value)
 
MRC_API MR_std_variant_MR_FaceId_MR_EdgeId_MR_VertIdMR_OneMeshIntersection_GetMutable_primitiveId (MR_OneMeshIntersection *_this)
 
MRC_API const MR_Vector3fMR_OneMeshIntersection_Get_coordinate (const MR_OneMeshIntersection *_this)
 
MRC_API void MR_OneMeshIntersection_Set_coordinate (MR_OneMeshIntersection *_this, MR_Vector3f value)
 
MRC_API MR_Vector3fMR_OneMeshIntersection_GetMutable_coordinate (MR_OneMeshIntersection *_this)
 
MRC_API MR_OneMeshIntersectionMR_OneMeshIntersection_DefaultConstruct (void)
 
MRC_API MR_OneMeshIntersectionMR_OneMeshIntersection_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_OneMeshIntersectionMR_OneMeshIntersection_ConstructFrom (const MR_std_variant_MR_FaceId_MR_EdgeId_MR_VertId *primitiveId, MR_Vector3f coordinate)
 
MRC_API const MR_OneMeshIntersectionMR_OneMeshIntersection_OffsetPtr (const MR_OneMeshIntersection *ptr, ptrdiff_t i)
 Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
 
MRC_API MR_OneMeshIntersectionMR_OneMeshIntersection_OffsetMutablePtr (MR_OneMeshIntersection *ptr, ptrdiff_t i)
 Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
 
MRC_API MR_OneMeshIntersectionMR_OneMeshIntersection_ConstructFromAnother (const MR_OneMeshIntersection *_other)
 
MRC_API void MR_OneMeshIntersection_Destroy (const MR_OneMeshIntersection *_this)
 Destroys a heap-allocated instance of MR_OneMeshIntersection. Does nothing if the pointer is null.
 
MRC_API void MR_OneMeshIntersection_DestroyArray (const MR_OneMeshIntersection *_this)
 Destroys a heap-allocated array of MR_OneMeshIntersection. Does nothing if the pointer is null.
 
MRC_API MR_OneMeshIntersectionMR_OneMeshIntersection_AssignFromAnother (MR_OneMeshIntersection *_this, const MR_OneMeshIntersection *_other)
 
MRC_API const MR_std_vector_MR_OneMeshIntersectionMR_OneMeshContour_Get_intersections (const MR_OneMeshContour *_this)
 
MRC_API void MR_OneMeshContour_Set_intersections (MR_OneMeshContour *_this, MR_PassBy value_pass_by, MR_std_vector_MR_OneMeshIntersection *value)
 
MRC_API MR_std_vector_MR_OneMeshIntersectionMR_OneMeshContour_GetMutable_intersections (MR_OneMeshContour *_this)
 
MRC_API const bool * MR_OneMeshContour_Get_closed (const MR_OneMeshContour *_this)
 
MRC_API void MR_OneMeshContour_Set_closed (MR_OneMeshContour *_this, bool value)
 
MRC_API bool * MR_OneMeshContour_GetMutable_closed (MR_OneMeshContour *_this)
 
MRC_API MR_OneMeshContourMR_OneMeshContour_DefaultConstruct (void)
 
MRC_API MR_OneMeshContourMR_OneMeshContour_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_OneMeshContourMR_OneMeshContour_ConstructFrom (MR_PassBy intersections_pass_by, MR_std_vector_MR_OneMeshIntersection *intersections, bool closed)
 
MRC_API const MR_OneMeshContourMR_OneMeshContour_OffsetPtr (const MR_OneMeshContour *ptr, ptrdiff_t i)
 Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
 
MRC_API MR_OneMeshContourMR_OneMeshContour_OffsetMutablePtr (MR_OneMeshContour *ptr, ptrdiff_t i)
 Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
 
MRC_API MR_OneMeshContourMR_OneMeshContour_ConstructFromAnother (MR_PassBy _other_pass_by, MR_OneMeshContour *_other)
 
MRC_API void MR_OneMeshContour_Destroy (const MR_OneMeshContour *_this)
 Destroys a heap-allocated instance of MR_OneMeshContour. Does nothing if the pointer is null.
 
MRC_API void MR_OneMeshContour_DestroyArray (const MR_OneMeshContour *_this)
 Destroys a heap-allocated array of MR_OneMeshContour. Does nothing if the pointer is null.
 
MRC_API MR_OneMeshContourMR_OneMeshContour_AssignFromAnother (MR_OneMeshContour *_this, MR_PassBy _other_pass_by, MR_OneMeshContour *_other)
 
MRC_API void MR_subdivideLoneContours (MR_Mesh *mesh, const MR_std_vector_MR_OneMeshContour *contours, MR_phmap_flat_hash_map_MR_FaceId_MR_FaceId *new2oldMap)
 
MRC_API void MR_getOneMeshIntersectionContours (const MR_Mesh *meshA, const MR_Mesh *meshB, const MR_std_vector_std_vector_MR_VarEdgeTri *contours, MR_std_vector_MR_OneMeshContour *outA, MR_std_vector_MR_OneMeshContour *outB, const MR_CoordinateConverters *converters, const MR_AffineXf3f *rigidB2A, MR_std_vector_std_vector_MR_Vector3f *outPtsA, const bool *addSelfyTerminalVerts)
 
MRC_API MR_std_vector_MR_OneMeshContourMR_getOneMeshSelfIntersectionContours (const MR_Mesh *mesh, const MR_std_vector_std_vector_MR_VarEdgeTri *contours, const MR_CoordinateConverters *converters, const MR_AffineXf3f *rigidB2A)
 
MRC_API MR_std_vector_std_vector_MR_Vector3fMR_extractMeshContours (const MR_std_vector_MR_OneMeshContour *meshContours)
 
MRC_API const MR_GeodesicPathApproxMR_SearchPathSettings_Get_geodesicPathApprox (const MR_SearchPathSettings *_this)
 
MRC_API void MR_SearchPathSettings_Set_geodesicPathApprox (MR_SearchPathSettings *_this, MR_GeodesicPathApprox value)
 
MRC_API MR_GeodesicPathApproxMR_SearchPathSettings_GetMutable_geodesicPathApprox (MR_SearchPathSettings *_this)
 
MRC_API const int32_t * MR_SearchPathSettings_Get_maxReduceIters (const MR_SearchPathSettings *_this)
 
MRC_API void MR_SearchPathSettings_Set_maxReduceIters (MR_SearchPathSettings *_this, int32_t value)
 
MRC_API int32_t * MR_SearchPathSettings_GetMutable_maxReduceIters (MR_SearchPathSettings *_this)
 
MRC_API MR_SearchPathSettingsMR_SearchPathSettings_DefaultConstruct (void)
 
MRC_API MR_SearchPathSettingsMR_SearchPathSettings_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_SearchPathSettingsMR_SearchPathSettings_ConstructFrom (MR_GeodesicPathApprox geodesicPathApprox, int32_t maxReduceIters)
 
MRC_API const MR_SearchPathSettingsMR_SearchPathSettings_OffsetPtr (const MR_SearchPathSettings *ptr, ptrdiff_t i)
 Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
 
MRC_API MR_SearchPathSettingsMR_SearchPathSettings_OffsetMutablePtr (MR_SearchPathSettings *ptr, ptrdiff_t i)
 Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
 
MRC_API MR_SearchPathSettingsMR_SearchPathSettings_ConstructFromAnother (const MR_SearchPathSettings *_other)
 
MRC_API void MR_SearchPathSettings_Destroy (const MR_SearchPathSettings *_this)
 Destroys a heap-allocated instance of MR_SearchPathSettings. Does nothing if the pointer is null.
 
MRC_API void MR_SearchPathSettings_DestroyArray (const MR_SearchPathSettings *_this)
 Destroys a heap-allocated array of MR_SearchPathSettings. Does nothing if the pointer is null.
 
MRC_API MR_SearchPathSettingsMR_SearchPathSettings_AssignFromAnother (MR_SearchPathSettings *_this, const MR_SearchPathSettings *_other)
 
MRC_API MR_expected_MR_OneMeshContour_std_stringMR_convertMeshTriPointsToMeshContour (const MR_Mesh *mesh, const MR_std_vector_MR_MeshTriPoint *surfaceLine, const MR_SearchPathSettings *searchSettings, MR_std_vector_int32_t *pivotIndices)
 Makes continuous contour by mesh tri points, if first and last meshTriPoint is the same, makes closed contour.
 
MRC_API MR_expected_MR_OneMeshContour_std_stringMR_convertMeshTriPointsToClosedContour (const MR_Mesh *mesh, const MR_std_vector_MR_MeshTriPoint *surfaceLine, const MR_SearchPathSettings *searchSettings, MR_std_vector_int32_t *pivotIndices)
 Makes closed continuous contour by mesh tri points, note that first and last meshTriPoint should not be same.
 
MRC_API MR_OneMeshContourMR_convertSurfacePathWithEndsToMeshContour (const MR_Mesh *mesh, const MR_MeshTriPoint *start, const MR_std_vector_MR_EdgePoint *surfacePath, const MR_MeshTriPoint *end)
 Converts SurfacePath to OneMeshContours.
 
MRC_API MR_std_vector_MR_OneMeshContourMR_convertSurfacePathsToMeshContours (const MR_Mesh *mesh, const MR_std_vector_std_vector_MR_EdgePoint *surfacePaths)
 Converts SurfacePaths to OneMeshContours.
 

Typedef Documentation

◆ MR_AffineXf3f

typedef struct MR_AffineXf3f MR_AffineXf3f

◆ MR_CoordinateConverters

◆ MR_expected_MR_OneMeshContour_std_string

◆ MR_Mesh

typedef struct MR_Mesh MR_Mesh

◆ MR_MeshTriPoint

◆ MR_OneMeshContour

Generated from class MR::OneMeshContour.

◆ MR_OneMeshIntersection

◆ MR_phmap_flat_hash_map_MR_FaceId_MR_FaceId

◆ MR_SearchPathSettings

Geo path search settings Generated from class MR::SearchPathSettings.

◆ MR_SortIntersectionsData

◆ MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref

◆ MR_std_variant_MR_FaceId_MR_EdgeId_MR_VertId

◆ MR_std_vector_int32_t

◆ MR_std_vector_MR_EdgePoint

◆ MR_std_vector_MR_MeshTriPoint

◆ MR_std_vector_MR_OneMeshContour

◆ MR_std_vector_MR_OneMeshIntersection

◆ MR_std_vector_std_vector_MR_EdgePoint

◆ MR_std_vector_std_vector_MR_VarEdgeTri

◆ MR_std_vector_std_vector_MR_Vector3f

Function Documentation

◆ MR_convertMeshTriPointsToClosedContour()

MRC_API MR_expected_MR_OneMeshContour_std_string * MR_convertMeshTriPointsToClosedContour ( const MR_Mesh * mesh,
const MR_std_vector_MR_MeshTriPoint * surfaceLine,
const MR_SearchPathSettings * searchSettings,
MR_std_vector_int32_t * pivotIndices )

Makes closed continuous contour by mesh tri points, note that first and last meshTriPoint should not be same.

Finds shortest paths between neighbor surfaceLine and build closed contour MR::cutMesh input

Parameters
pivotIndicesoptional output indices of given surfaceLine in result OneMeshContour
Note
better use convertMeshTriPointsToMeshContour(...) instead, note that it requires same front and back MeshTriPoints for closed contour Generated from function MR::convertMeshTriPointsToClosedContour. Parameter mesh can not be null. It is a single object. Parameter surfaceLine can not be null. It is a single object. Parameter searchSettings is a single object. Parameter searchSettings has a default argument: {}, pass a null pointer to use it. Parameter pivotIndices defaults to a null pointer in C++. Never returns null. Returns an instance allocated on the heap! Must call MR_expected_MR_OneMeshContour_std_string_Destroy() to free it when you're done using it.

◆ MR_convertMeshTriPointsToMeshContour()

MRC_API MR_expected_MR_OneMeshContour_std_string * MR_convertMeshTriPointsToMeshContour ( const MR_Mesh * mesh,
const MR_std_vector_MR_MeshTriPoint * surfaceLine,
const MR_SearchPathSettings * searchSettings,
MR_std_vector_int32_t * pivotIndices )

Makes continuous contour by mesh tri points, if first and last meshTriPoint is the same, makes closed contour.

Finds shortest paths between neighbor surfaceLine and build contour MR::cutMesh input

Parameters
searchSettingssettings for search geo path
pivotIndicesoptional output indices of given surfaceLine in result OneMeshContour Generated from function MR::convertMeshTriPointsToMeshContour. Parameter mesh can not be null. It is a single object. Parameter surfaceLine can not be null. It is a single object. Parameter searchSettings is a single object. Parameter searchSettings has a default argument: {}, pass a null pointer to use it. Parameter pivotIndices defaults to a null pointer in C++. Never returns null. Returns an instance allocated on the heap! Must call MR_expected_MR_OneMeshContour_std_string_Destroy() to free it when you're done using it.

◆ MR_convertSurfacePathsToMeshContours()

MRC_API MR_std_vector_MR_OneMeshContour * MR_convertSurfacePathsToMeshContours ( const MR_Mesh * mesh,
const MR_std_vector_std_vector_MR_EdgePoint * surfacePaths )

Converts SurfacePaths to OneMeshContours.

Creates MR::OneMeshContours object from given surface paths for MR::cutMesh input Generated from function MR::convertSurfacePathsToMeshContours. Parameter mesh can not be null. It is a single object. Parameter surfacePaths can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_std_vector_MR_OneMeshContour_Destroy() to free it when you're done using it.

◆ MR_convertSurfacePathWithEndsToMeshContour()

MRC_API MR_OneMeshContour * MR_convertSurfacePathWithEndsToMeshContour ( const MR_Mesh * mesh,
const MR_MeshTriPoint * start,
const MR_std_vector_MR_EdgePoint * surfacePath,
const MR_MeshTriPoint * end )

Converts SurfacePath to OneMeshContours.

Creates MR::OneMeshContour object from given surface path with ends for MR::cutMesh input start and surfacePath.front() should be from same face surfacePath.back() and end should be from same face

note that whole path (including start and end) should not have self-intersections also following case is not supported (vertex -> edge (incident with vertex)):

vert path edge point path edge end o-------—o- – – – – O \ \ / \ \ / \ \ / \/ o path Generated from function MR::convertSurfacePathWithEndsToMeshContour. Parameter mesh can not be null. It is a single object. Parameter start can not be null. It is a single object. Parameter surfacePath can not be null. It is a single object. Parameter end can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_OneMeshContour_Destroy() to free it when you're done using it.

◆ MR_extractMeshContours()

MRC_API MR_std_vector_std_vector_MR_Vector3f * MR_extractMeshContours ( const MR_std_vector_MR_OneMeshContour * meshContours)

Generated from function MR::extractMeshContours. Parameter meshContours can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_std_vector_std_vector_MR_Vector3f_Destroy() to free it when you're done using it. the algorithm to compute approximately geodesic path Returns a pointer to a member variable of class MR::SearchPathSettings named geodesicPathApprox. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_getOneMeshIntersectionContours()

MRC_API void MR_getOneMeshIntersectionContours ( const MR_Mesh * meshA,
const MR_Mesh * meshB,
const MR_std_vector_std_vector_MR_VarEdgeTri * contours,
MR_std_vector_MR_OneMeshContour * outA,
MR_std_vector_MR_OneMeshContour * outB,
const MR_CoordinateConverters * converters,
const MR_AffineXf3f * rigidB2A,
MR_std_vector_std_vector_MR_Vector3f * outPtsA,
const bool * addSelfyTerminalVerts )

Converts contours given in topological terms as the intersections of one mesh's edge and another mesh's triangle (ContinuousContours), into contours of meshA and/or meshB given as a sequence of (primitiveId and Cartesian coordinates); converters are required for better precision in case of degenerations; note that contours should not have intersections Generated from function MR::getOneMeshIntersectionContours. Parameter meshA can not be null. It is a single object. Parameter meshB can not be null. It is a single object. Parameter contours can not be null. It is a single object. Parameter converters can not be null. It is a single object. Parameter rigidB2A defaults to a null pointer in C++. Parameter outPtsA defaults to a null pointer in C++. Parameter addSelfyTerminalVerts has a default argument: false, pass a null pointer to use it.

◆ MR_getOneMeshSelfIntersectionContours()

MRC_API MR_std_vector_MR_OneMeshContour * MR_getOneMeshSelfIntersectionContours ( const MR_Mesh * mesh,
const MR_std_vector_std_vector_MR_VarEdgeTri * contours,
const MR_CoordinateConverters * converters,
const MR_AffineXf3f * rigidB2A )

Generated from function MR::getOneMeshSelfIntersectionContours. Parameter mesh can not be null. It is a single object. Parameter contours can not be null. It is a single object. Parameter converters can not be null. It is a single object. Parameter rigidB2A defaults to a null pointer in C++. Never returns null. Returns an instance allocated on the heap! Must call MR_std_vector_MR_OneMeshContour_Destroy() to free it when you're done using it.

◆ MR_OneMeshContour_AssignFromAnother()

MRC_API MR_OneMeshContour * MR_OneMeshContour_AssignFromAnother ( MR_OneMeshContour * _this,
MR_PassBy _other_pass_by,
MR_OneMeshContour * _other )

Generated from a method of class MR::OneMeshContour named operator=. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_OneMeshContour_ConstructFrom()

MRC_API MR_OneMeshContour * MR_OneMeshContour_ConstructFrom ( MR_PassBy intersections_pass_by,
MR_std_vector_MR_OneMeshIntersection * intersections,
bool closed )

Constructs MR::OneMeshContour elementwise. Never returns null. Returns an instance allocated on the heap! Must call MR_OneMeshContour_Destroy() to free it when you're done using it.

◆ MR_OneMeshContour_ConstructFromAnother()

MRC_API MR_OneMeshContour * MR_OneMeshContour_ConstructFromAnother ( MR_PassBy _other_pass_by,
MR_OneMeshContour * _other )

Generated from a constructor of class MR::OneMeshContour. Never returns null. Returns an instance allocated on the heap! Must call MR_OneMeshContour_Destroy() to free it when you're done using it.

◆ MR_OneMeshContour_DefaultConstruct()

MRC_API MR_OneMeshContour * MR_OneMeshContour_DefaultConstruct ( void )

Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_OneMeshContour_Destroy() to free it when you're done using it.

◆ MR_OneMeshContour_DefaultConstructArray()

MRC_API MR_OneMeshContour * MR_OneMeshContour_DefaultConstructArray ( size_t num_elems)

Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_OneMeshContour_DestroyArray(). Use MR_OneMeshContour_OffsetMutablePtr() and MR_OneMeshContour_OffsetPtr() to access the array elements.

◆ MR_OneMeshContour_Destroy()

MRC_API void MR_OneMeshContour_Destroy ( const MR_OneMeshContour * _this)

Destroys a heap-allocated instance of MR_OneMeshContour. Does nothing if the pointer is null.

◆ MR_OneMeshContour_DestroyArray()

MRC_API void MR_OneMeshContour_DestroyArray ( const MR_OneMeshContour * _this)

Destroys a heap-allocated array of MR_OneMeshContour. Does nothing if the pointer is null.

◆ MR_OneMeshContour_Get_closed()

MRC_API const bool * MR_OneMeshContour_Get_closed ( const MR_OneMeshContour * _this)

Returns a pointer to a member variable of class MR::OneMeshContour named closed. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_OneMeshContour_Get_intersections()

MRC_API const MR_std_vector_MR_OneMeshIntersection * MR_OneMeshContour_Get_intersections ( const MR_OneMeshContour * _this)

Returns a pointer to a member variable of class MR::OneMeshContour named intersections. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_OneMeshContour_GetMutable_closed()

MRC_API bool * MR_OneMeshContour_GetMutable_closed ( MR_OneMeshContour * _this)

Returns a mutable pointer to a member variable of class MR::OneMeshContour named closed. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_OneMeshContour_GetMutable_intersections()

MRC_API MR_std_vector_MR_OneMeshIntersection * MR_OneMeshContour_GetMutable_intersections ( MR_OneMeshContour * _this)

Returns a mutable pointer to a member variable of class MR::OneMeshContour named intersections. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_OneMeshContour_OffsetMutablePtr()

MRC_API MR_OneMeshContour * MR_OneMeshContour_OffsetMutablePtr ( MR_OneMeshContour * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.

◆ MR_OneMeshContour_OffsetPtr()

MRC_API const MR_OneMeshContour * MR_OneMeshContour_OffsetPtr ( const MR_OneMeshContour * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.

◆ MR_OneMeshContour_Set_closed()

MRC_API void MR_OneMeshContour_Set_closed ( MR_OneMeshContour * _this,
bool value )

Modifies a member variable of class MR::OneMeshContour named closed. Parameter _this can not be null. It is a single object.

◆ MR_OneMeshContour_Set_intersections()

MRC_API void MR_OneMeshContour_Set_intersections ( MR_OneMeshContour * _this,
MR_PassBy value_pass_by,
MR_std_vector_MR_OneMeshIntersection * value )

Modifies a member variable of class MR::OneMeshContour named intersections. Parameter _this can not be null. It is a single object.

◆ MR_OneMeshIntersection_AssignFromAnother()

MRC_API MR_OneMeshIntersection * MR_OneMeshIntersection_AssignFromAnother ( MR_OneMeshIntersection * _this,
const MR_OneMeshIntersection * _other )

Generated from a method of class MR::OneMeshIntersection named operator=. Parameter _this can not be null. It is a single object. Parameter _other can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_OneMeshIntersection_ConstructFrom()

MRC_API MR_OneMeshIntersection * MR_OneMeshIntersection_ConstructFrom ( const MR_std_variant_MR_FaceId_MR_EdgeId_MR_VertId * primitiveId,
MR_Vector3f coordinate )

Constructs MR::OneMeshIntersection elementwise. Parameter primitiveId can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_OneMeshIntersection_Destroy() to free it when you're done using it.

◆ MR_OneMeshIntersection_ConstructFromAnother()

MRC_API MR_OneMeshIntersection * MR_OneMeshIntersection_ConstructFromAnother ( const MR_OneMeshIntersection * _other)

Generated from a constructor of class MR::OneMeshIntersection. Parameter _other can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_OneMeshIntersection_Destroy() to free it when you're done using it.

◆ MR_OneMeshIntersection_DefaultConstruct()

MRC_API MR_OneMeshIntersection * MR_OneMeshIntersection_DefaultConstruct ( void )

Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_OneMeshIntersection_Destroy() to free it when you're done using it.

◆ MR_OneMeshIntersection_DefaultConstructArray()

MRC_API MR_OneMeshIntersection * MR_OneMeshIntersection_DefaultConstructArray ( size_t num_elems)

Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_OneMeshIntersection_DestroyArray(). Use MR_OneMeshIntersection_OffsetMutablePtr() and MR_OneMeshIntersection_OffsetPtr() to access the array elements.

◆ MR_OneMeshIntersection_Destroy()

MRC_API void MR_OneMeshIntersection_Destroy ( const MR_OneMeshIntersection * _this)

Destroys a heap-allocated instance of MR_OneMeshIntersection. Does nothing if the pointer is null.

◆ MR_OneMeshIntersection_DestroyArray()

MRC_API void MR_OneMeshIntersection_DestroyArray ( const MR_OneMeshIntersection * _this)

Destroys a heap-allocated array of MR_OneMeshIntersection. Does nothing if the pointer is null.

◆ MR_OneMeshIntersection_Get_coordinate()

MRC_API const MR_Vector3f * MR_OneMeshIntersection_Get_coordinate ( const MR_OneMeshIntersection * _this)

Returns a pointer to a member variable of class MR::OneMeshIntersection named coordinate. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_OneMeshIntersection_Get_primitiveId()

MRC_API const MR_std_variant_MR_FaceId_MR_EdgeId_MR_VertId * MR_OneMeshIntersection_Get_primitiveId ( const MR_OneMeshIntersection * _this)

Returns a pointer to a member variable of class MR::OneMeshIntersection named primitiveId. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_OneMeshIntersection_GetMutable_coordinate()

MRC_API MR_Vector3f * MR_OneMeshIntersection_GetMutable_coordinate ( MR_OneMeshIntersection * _this)

Returns a mutable pointer to a member variable of class MR::OneMeshIntersection named coordinate. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_OneMeshIntersection_GetMutable_primitiveId()

MRC_API MR_std_variant_MR_FaceId_MR_EdgeId_MR_VertId * MR_OneMeshIntersection_GetMutable_primitiveId ( MR_OneMeshIntersection * _this)

Returns a mutable pointer to a member variable of class MR::OneMeshIntersection named primitiveId. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_OneMeshIntersection_OffsetMutablePtr()

MRC_API MR_OneMeshIntersection * MR_OneMeshIntersection_OffsetMutablePtr ( MR_OneMeshIntersection * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.

◆ MR_OneMeshIntersection_OffsetPtr()

MRC_API const MR_OneMeshIntersection * MR_OneMeshIntersection_OffsetPtr ( const MR_OneMeshIntersection * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.

◆ MR_OneMeshIntersection_Set_coordinate()

MRC_API void MR_OneMeshIntersection_Set_coordinate ( MR_OneMeshIntersection * _this,
MR_Vector3f value )

Modifies a member variable of class MR::OneMeshIntersection named coordinate. Parameter _this can not be null. It is a single object.

◆ MR_OneMeshIntersection_Set_primitiveId()

MRC_API void MR_OneMeshIntersection_Set_primitiveId ( MR_OneMeshIntersection * _this,
const MR_std_variant_MR_FaceId_MR_EdgeId_MR_VertId * value )

Modifies a member variable of class MR::OneMeshIntersection named primitiveId. Parameter _this can not be null. It is a single object. Parameter value can not be null. It is a single object.

◆ MR_SearchPathSettings_AssignFromAnother()

MRC_API MR_SearchPathSettings * MR_SearchPathSettings_AssignFromAnother ( MR_SearchPathSettings * _this,
const MR_SearchPathSettings * _other )

Generated from a method of class MR::SearchPathSettings named operator=. Parameter _this can not be null. It is a single object. Parameter _other can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_SearchPathSettings_ConstructFrom()

MRC_API MR_SearchPathSettings * MR_SearchPathSettings_ConstructFrom ( MR_GeodesicPathApprox geodesicPathApprox,
int32_t maxReduceIters )

Constructs MR::SearchPathSettings elementwise. Never returns null. Returns an instance allocated on the heap! Must call MR_SearchPathSettings_Destroy() to free it when you're done using it.

◆ MR_SearchPathSettings_ConstructFromAnother()

MRC_API MR_SearchPathSettings * MR_SearchPathSettings_ConstructFromAnother ( const MR_SearchPathSettings * _other)

Generated from a constructor of class MR::SearchPathSettings. Parameter _other can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_SearchPathSettings_Destroy() to free it when you're done using it.

◆ MR_SearchPathSettings_DefaultConstruct()

MRC_API MR_SearchPathSettings * MR_SearchPathSettings_DefaultConstruct ( void )

Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_SearchPathSettings_Destroy() to free it when you're done using it.

◆ MR_SearchPathSettings_DefaultConstructArray()

MRC_API MR_SearchPathSettings * MR_SearchPathSettings_DefaultConstructArray ( size_t num_elems)

Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_SearchPathSettings_DestroyArray(). Use MR_SearchPathSettings_OffsetMutablePtr() and MR_SearchPathSettings_OffsetPtr() to access the array elements.

◆ MR_SearchPathSettings_Destroy()

MRC_API void MR_SearchPathSettings_Destroy ( const MR_SearchPathSettings * _this)

Destroys a heap-allocated instance of MR_SearchPathSettings. Does nothing if the pointer is null.

◆ MR_SearchPathSettings_DestroyArray()

MRC_API void MR_SearchPathSettings_DestroyArray ( const MR_SearchPathSettings * _this)

Destroys a heap-allocated array of MR_SearchPathSettings. Does nothing if the pointer is null.

◆ MR_SearchPathSettings_Get_geodesicPathApprox()

MRC_API const MR_GeodesicPathApprox * MR_SearchPathSettings_Get_geodesicPathApprox ( const MR_SearchPathSettings * _this)

the algorithm to compute approximately geodesic path Modifies a member variable of class MR::SearchPathSettings named geodesicPathApprox. Parameter _this can not be null. It is a single object.

◆ MR_SearchPathSettings_Get_maxReduceIters()

MRC_API const int32_t * MR_SearchPathSettings_Get_maxReduceIters ( const MR_SearchPathSettings * _this)

the maximum number of iterations to reduce approximate path length and convert it in geodesic path Modifies a member variable of class MR::SearchPathSettings named maxReduceIters. Parameter _this can not be null. It is a single object.

◆ MR_SearchPathSettings_GetMutable_geodesicPathApprox()

MRC_API MR_GeodesicPathApprox * MR_SearchPathSettings_GetMutable_geodesicPathApprox ( MR_SearchPathSettings * _this)

the maximum number of iterations to reduce approximate path length and convert it in geodesic path Returns a pointer to a member variable of class MR::SearchPathSettings named maxReduceIters. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_SearchPathSettings_GetMutable_maxReduceIters()

MRC_API int32_t * MR_SearchPathSettings_GetMutable_maxReduceIters ( MR_SearchPathSettings * _this)

◆ MR_SearchPathSettings_OffsetMutablePtr()

MRC_API MR_SearchPathSettings * MR_SearchPathSettings_OffsetMutablePtr ( MR_SearchPathSettings * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.

◆ MR_SearchPathSettings_OffsetPtr()

MRC_API const MR_SearchPathSettings * MR_SearchPathSettings_OffsetPtr ( const MR_SearchPathSettings * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.

◆ MR_SearchPathSettings_Set_geodesicPathApprox()

MRC_API void MR_SearchPathSettings_Set_geodesicPathApprox ( MR_SearchPathSettings * _this,
MR_GeodesicPathApprox value )

the algorithm to compute approximately geodesic path Returns a mutable pointer to a member variable of class MR::SearchPathSettings named geodesicPathApprox. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_SearchPathSettings_Set_maxReduceIters()

MRC_API void MR_SearchPathSettings_Set_maxReduceIters ( MR_SearchPathSettings * _this,
int32_t value )

the maximum number of iterations to reduce approximate path length and convert it in geodesic path Returns a mutable pointer to a member variable of class MR::SearchPathSettings named maxReduceIters. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_SortIntersectionsData_ConstructFrom()

MRC_API MR_SortIntersectionsData * MR_SortIntersectionsData_ConstructFrom ( const MR_Mesh * otherMesh,
const MR_std_vector_std_vector_MR_VarEdgeTri * contours,
MR_PassBy converter_pass_by,
MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref * converter,
const MR_AffineXf3f * rigidB2A,
MR_uint64_t meshAVertsNum,
bool isOtherA )

Constructs MR::SortIntersectionsData elementwise. Parameter otherMesh can not be null. It is a single object. Parameter contours can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_SortIntersectionsData_Destroy() to free it when you're done using it.

◆ MR_SortIntersectionsData_ConstructFromAnother()

MRC_API MR_SortIntersectionsData * MR_SortIntersectionsData_ConstructFromAnother ( MR_PassBy _other_pass_by,
MR_SortIntersectionsData * _other )

Generated from a constructor of class MR::SortIntersectionsData. Never returns null. Returns an instance allocated on the heap! Must call MR_SortIntersectionsData_Destroy() to free it when you're done using it.

◆ MR_SortIntersectionsData_Destroy()

MRC_API void MR_SortIntersectionsData_Destroy ( const MR_SortIntersectionsData * _this)

Destroys a heap-allocated instance of MR_SortIntersectionsData. Does nothing if the pointer is null.

◆ MR_SortIntersectionsData_DestroyArray()

MRC_API void MR_SortIntersectionsData_DestroyArray ( const MR_SortIntersectionsData * _this)

Destroys a heap-allocated array of MR_SortIntersectionsData. Does nothing if the pointer is null.

◆ MR_SortIntersectionsData_Get_contours()

MRC_API const MR_std_vector_std_vector_MR_VarEdgeTri * MR_SortIntersectionsData_Get_contours ( const MR_SortIntersectionsData * _this)

Returns a pointer to a member variable of class MR::SortIntersectionsData named contours. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_SortIntersectionsData_Get_converter()

MRC_API const MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref * MR_SortIntersectionsData_Get_converter ( const MR_SortIntersectionsData * _this)

Returns a pointer to a member variable of class MR::SortIntersectionsData named converter. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_SortIntersectionsData_Get_isOtherA()

MRC_API const bool * MR_SortIntersectionsData_Get_isOtherA ( const MR_SortIntersectionsData * _this)

Returns a pointer to a member variable of class MR::SortIntersectionsData named isOtherA. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_SortIntersectionsData_Get_meshAVertsNum()

MRC_API const MR_uint64_t * MR_SortIntersectionsData_Get_meshAVertsNum ( const MR_SortIntersectionsData * _this)

Returns a pointer to a member variable of class MR::SortIntersectionsData named meshAVertsNum. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_SortIntersectionsData_Get_otherMesh()

MRC_API const MR_Mesh * MR_SortIntersectionsData_Get_otherMesh ( const MR_SortIntersectionsData * _this)

Returns a pointer to a member variable of class MR::SortIntersectionsData named otherMesh. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_SortIntersectionsData_Get_rigidB2A()

MRC_API const MR_AffineXf3f *const * MR_SortIntersectionsData_Get_rigidB2A ( const MR_SortIntersectionsData * _this)

Returns a pointer to a member variable of class MR::SortIntersectionsData named rigidB2A. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_SortIntersectionsData_GetMutable_converter()

MRC_API MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref * MR_SortIntersectionsData_GetMutable_converter ( MR_SortIntersectionsData * _this)

Returns a mutable pointer to a member variable of class MR::SortIntersectionsData named converter. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_SortIntersectionsData_GetMutable_isOtherA()

MRC_API bool * MR_SortIntersectionsData_GetMutable_isOtherA ( MR_SortIntersectionsData * _this)

Returns a mutable pointer to a member variable of class MR::SortIntersectionsData named isOtherA. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_SortIntersectionsData_GetMutable_meshAVertsNum()

MRC_API MR_uint64_t * MR_SortIntersectionsData_GetMutable_meshAVertsNum ( MR_SortIntersectionsData * _this)

Returns a mutable pointer to a member variable of class MR::SortIntersectionsData named meshAVertsNum. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_SortIntersectionsData_GetMutable_rigidB2A()

MRC_API const MR_AffineXf3f ** MR_SortIntersectionsData_GetMutable_rigidB2A ( MR_SortIntersectionsData * _this)

Returns a mutable pointer to a member variable of class MR::SortIntersectionsData named rigidB2A. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_SortIntersectionsData_OffsetMutablePtr()

MRC_API MR_SortIntersectionsData * MR_SortIntersectionsData_OffsetMutablePtr ( MR_SortIntersectionsData * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.

◆ MR_SortIntersectionsData_OffsetPtr()

MRC_API const MR_SortIntersectionsData * MR_SortIntersectionsData_OffsetPtr ( const MR_SortIntersectionsData * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.

◆ MR_SortIntersectionsData_Set_converter()

MRC_API void MR_SortIntersectionsData_Set_converter ( MR_SortIntersectionsData * _this,
MR_PassBy value_pass_by,
MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref * value )

Modifies a member variable of class MR::SortIntersectionsData named converter. Parameter _this can not be null. It is a single object.

◆ MR_SortIntersectionsData_Set_isOtherA()

MRC_API void MR_SortIntersectionsData_Set_isOtherA ( MR_SortIntersectionsData * _this,
bool value )

Modifies a member variable of class MR::SortIntersectionsData named isOtherA. Parameter _this can not be null. It is a single object.

◆ MR_SortIntersectionsData_Set_meshAVertsNum()

MRC_API void MR_SortIntersectionsData_Set_meshAVertsNum ( MR_SortIntersectionsData * _this,
MR_uint64_t value )

Modifies a member variable of class MR::SortIntersectionsData named meshAVertsNum. Parameter _this can not be null. It is a single object.

◆ MR_SortIntersectionsData_Set_rigidB2A()

MRC_API void MR_SortIntersectionsData_Set_rigidB2A ( MR_SortIntersectionsData * _this,
const MR_AffineXf3f * value )

Modifies a member variable of class MR::SortIntersectionsData named rigidB2A. Parameter _this can not be null. It is a single object.

◆ MR_subdivideLoneContours()

MRC_API void MR_subdivideLoneContours ( MR_Mesh * mesh,
const MR_std_vector_MR_OneMeshContour * contours,
MR_phmap_flat_hash_map_MR_FaceId_MR_FaceId * new2oldMap )

Generated from function MR::subdivideLoneContours. Parameter mesh can not be null. It is a single object. Parameter contours can not be null. It is a single object. Parameter new2oldMap defaults to a null pointer in C++.