MeshLib C++ Docs
Loading...
Searching...
No Matches
MR Namespace Reference

Namespaces

namespace  AsyncObjectLoad
 
namespace  BitSetParallel
 
namespace  ColorMapAggregator_MRFaceTag
 
namespace  ColorMapAggregator_MRUndirectedEdgeTag
 
namespace  ColorMapAggregator_MRVertTag
 
namespace  Const_AABBTreePoints
 
namespace  Const_BasicUiRenderTask
 
namespace  Const_BooleanResultMapper
 
namespace  Const_EdgePathsBuilderT_MRMetricToAStarPenalty
 
namespace  Const_EdgePathsBuilderT_MRTrivialMetricToPenalty
 
namespace  Const_FlowAggregator
 
namespace  Const_GcodeProcessor
 
namespace  Const_Graph
 
namespace  Const_Heap_Float_MRGraphVertId_StdGreaterFloat
 
namespace  Const_Matrix3_UnsignedChar
 
namespace  Const_MeshOrPoints
 
namespace  Const_MultiwayAligningTransform
 
namespace  Const_NormalsToPoints
 
namespace  Const_ObjectComparableWithReference
 
namespace  Const_ObjectVoxels
 
namespace  Const_Pdf
 
namespace  Const_PrecipitationSimulator
 
namespace  Const_SeparationPointStorage
 
namespace  Const_TeethMaskToDirectionVolumeConvertor
 
namespace  Const_VarEdgeTri
 
namespace  Const_WatershedGraph
 
namespace  Cuda
 
namespace  detail
 
namespace  DistanceMapLoad
 
namespace  DistanceMapSave
 
namespace  Features
 
namespace  FileDialog
 
namespace  FillingSurface
 
namespace  FixUndercuts
 
namespace  FloatGridComponents
 
namespace  GcodeLoad
 
namespace  ImageLoad
 
namespace  ImageSave
 
namespace  ImageTransform
 
namespace  ImGuiMath
 
namespace  ImGuiMeasurementIndicators
 
namespace  ImGuiMV
 
namespace  LinesLoad
 
namespace  LinesSave
 
namespace  Matrix3_Bool
 
namespace  Matrix3_Double
 
namespace  Matrix3_Float
 
namespace  Matrix3_Int
 
namespace  Matrix3_MRInt64T
 
namespace  MeshBuilder
 Building topologies by triangles.
 
namespace  MeshComponents
 
namespace  MeshLoad
 
namespace  MeshSave
 
namespace  Meta
 
namespace  Misc
 
namespace  ObjectLoad
 
namespace  ObjectSave
 
namespace  Parallel
 
namespace  Phmap
 
namespace  PlanarTriangulation
 
namespace  PointCloudComponents
 
namespace  PointsLoad
 
namespace  PointsSave
 
namespace  PolylineComponents
 
namespace  ProgressBar
 
namespace  QualityControl
 
namespace  RenderDimensions
 
namespace  RenderFeatures
 
namespace  RenderWrapObject
 
namespace  SceneLoad
 
namespace  SceneSave
 
namespace  SelfIntersections
 
namespace  SpaceMouse
 
namespace  Std
 
namespace  StyleConsts
 
namespace  TriangulationHelpers
 
namespace  UI
 
namespace  UnitSettings
 
namespace  Unsigned
 
namespace  VoxelsLoad
 
namespace  VoxelsSave
 
namespace  WeightedShell
 

Classes

class  _ByValue_AABBTree
 
class  _ByValue_AABBTreeBase_MRAABBTreeTraitsMRFaceTagMRBox3f
 
class  _ByValue_AABBTreeBase_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox2f
 
class  _ByValue_AABBTreeBase_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox3f
 
class  _ByValue_AABBTreeBase_MRObjTreeTraits
 
class  _ByValue_AABBTreeObjects
 
class  _ByValue_AABBTreePoints
 
class  _ByValue_AABBTreePolyline2
 
class  _ByValue_AABBTreePolyline3
 
class  _ByValue_AllLocalTriangulations
 
class  _ByValue_AngleMeasurementObject
 
class  _ByValue_ArcInterpolationParams
 
class  _ByValue_BaseShellParameters
 
class  _ByValue_BendTextAlongCurveParams
 
class  _ByValue_BitSet
 
class  _ByValue_BMap_MRFaceId_MRUint64T
 
class  _ByValue_BMap_MRGraphEdgeId_MRGraphEdgeId
 
class  _ByValue_BMap_MRGraphVertId_MRGraphVertId
 
class  _ByValue_BMap_MRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  _ByValue_BMap_MRNodeId_MRNodeId
 
class  _ByValue_BMap_MRObjId_MRObjId
 
class  _ByValue_BMap_MRPixelId_MRPixelId
 
class  _ByValue_BMap_MRRegionId_MRRegionId
 
class  _ByValue_BMap_MRTextureId_MRTextureId
 
class  _ByValue_BMap_MRUndirectedEdgeId_MRUint64T
 
class  _ByValue_BMap_MRVertId_MRUint64T
 
class  _ByValue_BMap_MRVoxelId_MRVoxelId
 
class  _ByValue_BooleanParameters
 
class  _ByValue_BooleanPreCutResult
 
class  _ByValue_BooleanResult
 
class  _ByValue_BooleanResultMapper
 
class  _ByValue_BooleanResultPoints
 
class  _ByValue_Buffer_Char
 
class  _ByValue_Buffer_MREdgeId_MREdgeId
 
class  _ByValue_Buffer_MREdgeId_MRUndirectedEdgeId
 
class  _ByValue_Buffer_MRFaceId
 
class  _ByValue_Buffer_MRFaceId_MRFaceId
 
class  _ByValue_Buffer_MRGraphEdgeId_MRGraphEdgeId
 
class  _ByValue_Buffer_MRGraphVertId_MRGraphVertId
 
class  _ByValue_Buffer_MRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  _ByValue_Buffer_MRNodeId_MRNodeId
 
class  _ByValue_Buffer_MRObjId_MRObjId
 
class  _ByValue_Buffer_MRPixelId_MRPixelId
 
class  _ByValue_Buffer_MRRegionId_MRRegionId
 
class  _ByValue_Buffer_MRTextureId_MRTextureId
 
class  _ByValue_Buffer_MRUndirectedEdgeId
 
class  _ByValue_Buffer_MRUndirectedEdgeId_MRUndirectedEdgeId
 
class  _ByValue_Buffer_MRVertId
 
class  _ByValue_Buffer_MRVertId_MRVertId
 
class  _ByValue_Buffer_MRVoxelId_MRVoxelId
 
class  _ByValue_Buffer_UnsignedChar
 
class  _ByValue_ChangeActiveBoxAction
 
class  _ByValue_ChangeColoringType
 
class  _ByValue_ChangeDualMarchingCubesAction
 
class  _ByValue_ChangeFacesColorMapAction
 
class  _ByValue_ChangeGridAction
 
class  _ByValue_ChangeIsoAction
 
class  _ByValue_ChangeLabelAction
 
class  _ByValue_ChangeLinesColorMapAction
 
class  _ByValue_ChangeMeshAction
 
class  _ByValue_ChangeMeshCreasesAction
 
class  _ByValue_ChangeMeshDataAction
 
class  _ByValue_ChangeMeshEdgeSelectionAction
 
class  _ByValue_ChangeMeshFaceSelectionAction
 
class  _ByValue_ChangeMeshPointsAction
 
class  _ByValue_ChangeMeshTexturePerFaceAction
 
class  _ByValue_ChangeMeshTopologyAction
 
class  _ByValue_ChangeMeshUVCoordsAction
 
class  _ByValue_ChangeNameAction
 
class  _ByValue_ChangeObjectAction
 
class  _ByValue_ChangeObjectColorAction
 
class  _ByValue_ChangeObjectSelectedAction
 
class  _ByValue_ChangeObjectVisibilityAction
 
class  _ByValue_ChangeOneNormalInCloudAction
 
class  _ByValue_ChangeOnePointInCloudAction
 
class  _ByValue_ChangeOnePointInPolylineAction
 
class  _ByValue_ChangePointCloudAction
 
class  _ByValue_ChangePointCloudNormalsAction
 
class  _ByValue_ChangePointCloudPointsAction
 
class  _ByValue_ChangePointPointSelectionAction
 
class  _ByValue_ChangePolylineAction
 
class  _ByValue_ChangePolylinePointsAction
 
class  _ByValue_ChangePolylineTopologyAction
 
class  _ByValue_ChangeScaleAction
 
class  _ByValue_ChangeSceneAction
 
class  _ByValue_ChangeSceneObjectsOrder
 
class  _ByValue_ChangeSurfaceAction
 
class  _ByValue_ChangeTextureAction
 
class  _ByValue_ChangeVisualizePropertyAction
 
class  _ByValue_ChangeXfAction
 
class  _ByValue_ChangVoxelSelectionAction
 
class  _ByValue_CircleObject
 
class  _ByValue_CloseToMeshVolumeParams
 
class  _ByValue_CNCMachineSettings
 
class  _ByValue_CombinedHistoryAction
 
class  _ByValue_CompensateRadiusParams
 
class  _ByValue_ComputeSweptVolumeParameters
 
class  _ByValue_ConeObject
 
class  _ByValue_ConstantCuspParams
 
class  _ByValue_CoordinateConverters
 
class  _ByValue_CoordinateConverters2
 
class  _ByValue_CutMeshResult
 
class  _ByValue_CylinderObject
 
class  _ByValue_DecimatePolylineSettings_MRVector2f
 
class  _ByValue_DecimatePolylineSettings_MRVector3f
 
class  _ByValue_DecimateSettings
 
class  _ByValue_DenoiseViaNormalsSettings
 
class  _ByValue_DetectTunnelSettings
 
class  _ByValue_Dipoles
 
class  _ByValue_DistanceFromWeightedPointsComputeParams
 
class  _ByValue_DistanceFromWeightedPointsParams
 
class  _ByValue_DistanceMap
 
class  _ByValue_DistanceMapLoadSettings
 
class  _ByValue_DistanceMapSaveSettings
 
class  _ByValue_DistanceMeasurementObject
 
class  _ByValue_DistanceVolumeParams
 
class  _ByValue_DividePolylineParameters
 
class  _ByValue_DoubleOffsetSettings
 
class  _ByValue_EdgeBitSet
 
class  _ByValue_EdgeBMap
 
class  _ByValue_EdgeColors
 
class  _ByValue_EdgeLengthMesh
 
class  _ByValue_EdgeMap
 
class  _ByValue_EdgePathsAStarBuilder
 
class  _ByValue_EdgePathsBuilderT_MRMetricToAStarPenalty
 
class  _ByValue_EdgePathsBuilderT_MRTrivialMetricToPenalty
 
class  _ByValue_Edges
 
class  _ByValue_EdgeScalars
 
class  _ByValue_EnumNeihbourFaces
 
class  _ByValue_EnumNeihbourVertices
 
class  _ByValue_Expected_Bool_StdString
 
class  _ByValue_Expected_MRAffineXf3f_StdString
 
class  _ByValue_Expected_MRBooleanResultPoints_StdString
 
class  _ByValue_Expected_MRDistanceMap_StdString
 
class  _ByValue_Expected_MRFaceBitSet_StdString
 
class  _ByValue_Expected_MRFloatGrid_StdString
 
class  _ByValue_Expected_MRFunctionVolume_StdString
 
class  _ByValue_Expected_MRImage_StdString
 
class  _ByValue_Expected_MRLoadedObjects_StdString
 
class  _ByValue_Expected_MRLoadedObjectT_StdString
 
class  _ByValue_Expected_MRLoadedObjectTMRObjectMesh_StdString
 
class  _ByValue_Expected_MRMesh_StdString
 
class  _ByValue_Expected_MRObjectDistanceMap_StdString
 
class  _ByValue_Expected_MRObjectGcode_StdString
 
class  _ByValue_Expected_MRObjectLines_StdString
 
class  _ByValue_Expected_MRObjectPoints_StdString
 
class  _ByValue_Expected_MROneMeshContour_StdString
 
class  _ByValue_Expected_MRPackMapping_StdString
 
class  _ByValue_Expected_MRPointCloud_StdString
 
class  _ByValue_Expected_MRPolyline3_StdString
 
class  _ByValue_Expected_MRSimpleBinaryVolume_StdString
 
class  _ByValue_Expected_MRSimpleVolume_StdString
 
class  _ByValue_Expected_MRSimpleVolumeMinMax_StdString
 
class  _ByValue_Expected_MRSimpleVolumeMinMaxU16_StdString
 
class  _ByValue_Expected_MRTeethMaskToDirectionVolumeConvertor_StdString
 
class  _ByValue_Expected_MRTeethMaskToDirectionVolumeConvertorProcessResult_StdString
 
class  _ByValue_Expected_MRTiffParameters_StdString
 
class  _ByValue_Expected_MRToolPathResult_StdString
 
class  _ByValue_Expected_MRTriMesh_StdString
 
class  _ByValue_Expected_MRUndirectedEdgeBitSet_StdString
 
class  _ByValue_Expected_MRUnionFindMRVertId_StdString
 
class  _ByValue_Expected_MRVdbVolume_StdString
 
class  _ByValue_Expected_MRVector3i_StdString
 
class  _ByValue_Expected_MRVertBitSet_StdString
 
class  _ByValue_Expected_MRVertColors_StdString
 
class  _ByValue_Expected_MRVertCoords_StdString
 
class  _ByValue_Expected_MRVoxelBitSet_StdString
 
class  _ByValue_Expected_MRVoxelsLoadDicomVolume_StdString
 
class  _ByValue_Expected_MRVoxelsLoadDicomVolumeAsVdb_StdString
 
class  _ByValue_Expected_MRVoxelsLoadRawParameters_StdString
 
class  _ByValue_Expected_StdArrayMRSimpleVolumeMinMax3_StdString
 
class  _ByValue_Expected_StdFunctionMRCurvePointFuncFromFloat_StdString
 
class  _ByValue_Expected_StdPairStdVectorMRVertBitSetInt_StdString
 
class  _ByValue_Expected_StdSharedPtrMRMesh_StdString
 
class  _ByValue_Expected_StdSharedPtrMRObject_StdString
 
class  _ByValue_Expected_StdSharedPtrMRObjectVoxels_StdString
 
class  _ByValue_Expected_StdVectorFloat_StdString
 
class  _ByValue_Expected_StdVectorMREdgeId_StdString
 
class  _ByValue_Expected_StdVectorMREdgePoint_MRPathError
 
class  _ByValue_Expected_StdVectorMREdgePoint_StdString
 
class  _ByValue_Expected_StdVectorMRFaceBitSet_StdString
 
class  _ByValue_Expected_StdVectorMRFaceFace_StdString
 
class  _ByValue_Expected_StdVectorMRFloatGrid_StdString
 
class  _ByValue_Expected_StdVectorMRMesh_StdString
 
class  _ByValue_Expected_StdVectorMRMeshLoadNamedMesh_StdString
 
class  _ByValue_Expected_StdVectorMROneMeshContour_StdString
 
class  _ByValue_Expected_StdVectorMRPointsLoadNamedCloud_StdString
 
class  _ByValue_Expected_StdVectorMRVdbVolume_StdString
 
class  _ByValue_Expected_StdVectorMRVertBitSet_StdString
 
class  _ByValue_Expected_StdVectorStdPairMRVertIdMRVertId_StdString
 
class  _ByValue_Expected_StdVectorStdSharedPtrMRObjectVoxels_StdString
 
class  _ByValue_Expected_StdVectorStdString_StdString
 
class  _ByValue_Expected_StdVectorStdVectorMREdgeId_StdString
 
class  _ByValue_Expected_StdVectorStdVectorMRVector2f_StdString
 
class  _ByValue_Expected_StdVectorStdVectorMRVector3f_StdString
 
class  _ByValue_Expected_Void_StdString
 
class  _ByValue_Face2RegionMap
 
class  _ByValue_FaceBitSet
 
class  _ByValue_FaceBMap
 
class  _ByValue_FaceColorMapAggregator
 
class  _ByValue_FaceColors
 
class  _ByValue_FaceDistancesSettings
 
class  _ByValue_FaceMap
 
class  _ByValue_FaceNormals
 
class  _ByValue_FaceScalars
 
class  _ByValue_FastWindingNumber
 
class  _ByValue_FeatureObjectSharedProperty
 
class  _ByValue_FewSmallest_MRPointsProjectionResult
 
class  _ByValue_FillHoleMetric
 
class  _ByValue_FillHoleNicelySettings
 
class  _ByValue_FillHoleParams
 
class  _ByValue_FindDisorientationParams
 
class  _ByValue_FindOutliersParams
 
class  _ByValue_FindOverhangsSettings
 
class  _ByValue_FindOverlappingSettings
 
class  _ByValue_FindProjectionOnPointsSettings
 
class  _ByValue_FixMeshDegeneraciesParams
 
class  _ByValue_FloatGrid
 
class  _ByValue_FlowAggregator
 
class  _ByValue_FreeFormBestFit
 
class  _ByValue_FreeFormDeformer
 
class  _ByValue_FunctionVolume
 
class  _ByValue_FunctionVolumeU8
 
class  _ByValue_GcodeProcessor
 
class  _ByValue_GeneralOffsetParameters
 
class  _ByValue_Graph
 
class  _ByValue_GraphEdgeBitSet
 
class  _ByValue_GraphVertBitSet
 
class  _ByValue_GridSettings
 
class  _ByValue_GridToMeshSettings
 
class  _ByValue_Heap_Float_MRGraphVertId_StdGreaterFloat
 
class  _ByValue_Histogram
 
class  _ByValue_HoleFillPlan
 
class  _ByValue_ICP
 
class  _ByValue_ICPGroupPairs
 
class  _ByValue_Image
 
class  _ByValue_ImproveSamplingSettings
 
class  _ByValue_InTreePathBuilder
 
class  _ByValue_IOFilter
 
class  _ByValue_Laplacian
 
class  _ByValue_LineInterpolationParams
 
class  _ByValue_LineObject
 
class  _ByValue_LinesLoadSettings
 
class  _ByValue_LoadedObjects
 
class  _ByValue_LoadedObjectT
 
class  _ByValue_LoadedObjectT_MRObjectLines
 
class  _ByValue_LoadedObjectT_MRObjectMesh
 
class  _ByValue_LoadedObjectT_MRObjectPoints
 
class  _ByValue_LoadedObjectT_MRObjectVoxels
 
class  _ByValue_MakeSignedByWindingNumberSettings
 
class  _ByValue_MapOrHashMap_MREdgeId_MREdgeId
 
class  _ByValue_MapOrHashMap_MRFaceId_MRFaceId
 
class  _ByValue_MapOrHashMap_MRUndirectedEdgeId_MREdgeId
 
class  _ByValue_MapOrHashMap_MRUndirectedEdgeId_MRUndirectedEdgeId
 
class  _ByValue_MapOrHashMap_MRVertId_MRVertId
 
class  _ByValue_MarchingCubesByParts
 
class  _ByValue_MarchingCubesParams
 
class  _ByValue_MarkedContour3f
 
class  _ByValue_Matrix_Float
 
class  _ByValue_MeasurementObject
 
class  _ByValue_MergeVolumePartSettings
 
class  _ByValue_Mesh
 
class  _ByValue_MeshDiff
 
class  _ByValue_MeshLoadSettings
 
class  _ByValue_MeshNormals
 
class  _ByValue_MeshOnVoxelsT_ConstMRMesh_MRFunctionVolume
 
class  _ByValue_MeshOnVoxelsT_ConstMRMesh_MRSimpleVolumeMinMax
 
class  _ByValue_MeshOnVoxelsT_ConstMRMesh_MRVdbVolume
 
class  _ByValue_MeshOnVoxelsT_MRMesh_MRFunctionVolume
 
class  _ByValue_MeshOnVoxelsT_MRMesh_MRSimpleVolumeMinMax
 
class  _ByValue_MeshOnVoxelsT_MRMesh_MRVdbVolume
 
class  _ByValue_MeshOrPointsObject
 
class  _ByValue_MeshPoint
 
class  _ByValue_MeshTexture
 
class  _ByValue_MeshToDirectionVolumeParams
 
class  _ByValue_MeshToDistanceVolumeParams
 
class  _ByValue_MeshTopology
 
class  _ByValue_MeshTopologyDiff
 
class  _ByValue_MeshToVolumeParams
 
class  _ByValue_MeshVoxelsConverter
 
class  _ByValue_MultiwayAligningTransform
 
class  _ByValue_MultiwayICP
 
class  _ByValue_MultiwayICPSamplingParameters
 
class  _ByValue_MutexOwner
 
class  _ByValue_NewEdgesMap
 
class  _ByValue_NodeBitSet
 
class  _ByValue_NoiseSettings
 
class  _ByValue_NormalsToPoints
 
class  _ByValue_ObjBitSet
 
class  _ByValue_Object
 
class  _ByValue_ObjectChildrenHolder
 
class  _ByValue_ObjectDistanceMap
 
class  _ByValue_ObjectFactoryBase
 
class  _ByValue_ObjectGcode
 
class  _ByValue_ObjectLabel
 
class  _ByValue_ObjectLines
 
class  _ByValue_ObjectLinesHolder
 
class  _ByValue_ObjectMesh
 
class  _ByValue_ObjectMeshData
 
class  _ByValue_ObjectMeshHolder
 
class  _ByValue_ObjectPoints
 
class  _ByValue_ObjectPointsHolder
 
class  _ByValue_ObjectTagEventDispatcher
 
class  _ByValue_ObjectVoxels
 
class  _ByValue_ObjMap
 
class  _ByValue_OffsetContoursRestoreZParams
 
class  _ByValue_OffsetParameters
 
class  _ByValue_OneMeshContour
 
class  _ByValue_OpenVdbFloatGrid
 
class  _ByValue_OutliersDetector
 
class  _ByValue_PackMapping
 
class  _ByValue_PartialChangeMeshAction
 
class  _ByValue_PartialChangeMeshDataAction
 
class  _ByValue_PartialChangeMeshPointsAction
 
class  _ByValue_PartialChangeMeshTopologyAction
 
class  _ByValue_Pdf
 
class  _ByValue_PdfParameters
 
class  _ByValue_PixelBitSet
 
class  _ByValue_PlaneObject
 
class  _ByValue_PlyLoadParams
 
class  _ByValue_PointCloud
 
class  _ByValue_PointMeasurementObject
 
class  _ByValue_PointObject
 
class  _ByValue_PointPairs
 
class  _ByValue_PointsLoadSettings
 
class  _ByValue_PointsProjector
 
class  _ByValue_PointsToDistanceVolumeParams
 
class  _ByValue_PointsToMeshParameters
 
class  _ByValue_PointsToMeshProjector
 
class  _ByValue_PointToPlaneAligningTransform
 
class  _ByValue_Polyline2
 
class  _ByValue_Polyline3
 
class  _ByValue_PolylineSubdivideSettings
 
class  _ByValue_PolylineToDistanceVolumeParams
 
class  _ByValue_PolylineTopology
 
class  _ByValue_PolylineToVolumeParams
 
class  _ByValue_Polynomial_Double_0
 
class  _ByValue_Polynomial_Double_1
 
class  _ByValue_Polynomial_Double_2
 
class  _ByValue_Polynomial_Double_3
 
class  _ByValue_Polynomial_Double_4
 
class  _ByValue_Polynomial_Double_5
 
class  _ByValue_Polynomial_Double_6
 
class  _ByValue_Polynomial_Float_0
 
class  _ByValue_Polynomial_Float_1
 
class  _ByValue_Polynomial_Float_2
 
class  _ByValue_Polynomial_Float_3
 
class  _ByValue_Polynomial_Float_4
 
class  _ByValue_Polynomial_Float_5
 
class  _ByValue_Polynomial_Float_6
 
class  _ByValue_PolynomialWrapper_Double
 
class  _ByValue_PolynomialWrapper_Float
 
class  _ByValue_PositionedText
 
class  _ByValue_PositionVertsSmoothlyParams
 
class  _ByValue_PrecipitationSimulator
 
class  _ByValue_ProjectAttributeParams
 
class  _ByValue_QuadricApprox
 
class  _ByValue_RadiusMeasurementObject
 
class  _ByValue_RebuildMeshSettings
 
class  _ByValue_RefineParameters
 
class  _ByValue_RegionBitSet
 
class  _ByValue_RegularMapMesher
 
class  _ByValue_RemeshSettings
 
class  _ByValue_SaveSettings
 
class  _ByValue_SceneRoot
 
class  _ByValue_SceneRootObject
 
class  _ByValue_SceneSettings
 
class  _ByValue_SeparationPointStorage
 
class  _ByValue_SharpOffsetParameters
 
class  _ByValue_SimpleBinaryVolume
 
class  _ByValue_SimpleVolume
 
class  _ByValue_SimpleVolumeMinMax
 
class  _ByValue_SimpleVolumeMinMaxU16
 
class  _ByValue_SimpleVolumeU16
 
class  _ByValue_SomeLocalTriangulations
 
class  _ByValue_SortIntersectionsData
 
class  _ByValue_SpacingSettings
 
class  _ByValue_SphereObject
 
class  _ByValue_Src2TgtMaps
 
class  _ByValue_StitchHolesParams
 
class  _ByValue_SubdivideSettings
 
class  _ByValue_SurfaceDistanceBuilder
 
class  _ByValue_SymbolMeshParams
 
class  _ByValue_TeethMaskToDirectionVolumeConvertor
 
class  _ByValue_TextMeshAlignParams
 
class  _ByValue_TextureBitSet
 
class  _ByValue_TexturePerFace
 
class  _ByValue_Tgt2SrcMaps
 
class  _ByValue_ToolPathParams
 
class  _ByValue_ToolPathResult
 
class  _ByValue_TransformedMesh
 
class  _ByValue_TransformVdbVolumeResult
 
class  _ByValue_Triangulation
 
class  _ByValue_TriCornerUVCoords
 
class  _ByValue_TriMesh
 
class  _ByValue_TrimWithPlaneParams
 
class  _ByValue_TypedBitSet_MRIdMRICPElemtTag
 
class  _ByValue_UiRenderManager
 
class  _ByValue_UndirectedEdge2RegionMap
 
class  _ByValue_UndirectedEdgeBitSet
 
class  _ByValue_UndirectedEdgeBMap
 
class  _ByValue_UndirectedEdgeColors
 
class  _ByValue_UndirectedEdgeMap
 
class  _ByValue_UndirectedEdgeScalars
 
class  _ByValue_UndirEdgeColorMapAggregator
 
class  _ByValue_UniformSamplingSettings
 
class  _ByValue_UnionFind_MRFaceId
 
class  _ByValue_UnionFind_MRUndirectedEdgeId
 
class  _ByValue_UnionFind_MRVertId
 
class  _ByValue_UniqueTemporaryFolder
 
class  _ByValue_UniqueThreadSafeOwner_MRAABBTree
 
class  _ByValue_UniqueThreadSafeOwner_MRAABBTreePoints
 
class  _ByValue_UniteManyMeshesParams
 
class  _ByValue_VdbVolume
 
class  _ByValue_Vector_Char_MRVertId
 
class  _ByValue_Vector_Double_MRRegionId
 
class  _ByValue_Vector_Float_MRVoxelId
 
class  _ByValue_Vector_Int_MRFaceId
 
class  _ByValue_Vector_Int_MRUndirectedEdgeId
 
class  _ByValue_Vector_Int_MRVertId
 
class  _ByValue_Vector_MRAABBTreeNodeMRAABBTreeTraitsMRFaceTagMRBox3f_MRNodeId
 
class  _ByValue_Vector_MRAABBTreeNodeMRAABBTreeTraitsMRUndirectedEdgeTagMRBox2f_MRNodeId
 
class  _ByValue_Vector_MRAABBTreeNodeMRAABBTreeTraitsMRUndirectedEdgeTagMRBox3f_MRNodeId
 
class  _ByValue_Vector_MRAABBTreeNodeMRObjTreeTraits_MRNodeId
 
class  _ByValue_Vector_MRAABBTreePointsNode_MRNodeId
 
class  _ByValue_Vector_MRAffineXf3f_MRObjId
 
class  _ByValue_Vector_MREdgeId_MRFaceId
 
class  _ByValue_Vector_MREdgeId_MRVertId
 
class  _ByValue_Vector_MRFaceBitSet_MRGraphVertId
 
class  _ByValue_Vector_MRFanRecord_MRVertId
 
class  _ByValue_Vector_MRGraphEdgeId_MRGraphEdgeId
 
class  _ByValue_Vector_MRGraphEndVertices_MRGraphEdgeId
 
class  _ByValue_Vector_MRGraphVertId_MRGraphVertId
 
class  _ByValue_Vector_MRICPGroupPairs_MRIdMRICPElemtTag
 
class  _ByValue_Vector_MRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  _ByValue_Vector_MRMeshBuilderVertSpan_MRFaceId
 
class  _ByValue_Vector_MRMeshOrPointsXf_MRObjId
 
class  _ByValue_Vector_MRMeshTexture_MRTextureId
 
class  _ByValue_Vector_MRModelPointsData_MRObjId
 
class  _ByValue_Vector_MRNodeId_MRNodeId
 
class  _ByValue_Vector_MRPixelId_MRPixelId
 
class  _ByValue_Vector_MRQuadraticForm2f_MRVertId
 
class  _ByValue_Vector_MRQuadraticForm3f_MRVertId
 
class  _ByValue_Vector_MRRegionId_MRRegionId
 
class  _ByValue_Vector_MRTextureId_MRTextureId
 
class  _ByValue_Vector_MRUint64T_MRGraphVertId
 
class  _ByValue_Vector_MRVectorMRICPGroupPairsMRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  _ByValue_Vector_MRVectorMRVectorMRICPGroupPairsMRIdMRICPElemtTagMRIdMRICPElemtTag_Int
 
class  _ByValue_Vector_MRVectorStdVectorMRObjVertIdMRIdMRICPElemtTag_Int
 
class  _ByValue_Vector_MRVertBitSet_MRObjId
 
class  _ByValue_Vector_MRVertId_MREdgeId
 
class  _ByValue_Vector_MRVoxelId_MRFaceId
 
class  _ByValue_Vector_MRVoxelId_MRVoxelId
 
class  _ByValue_Vector_MRWatershedGraphBasinInfo_MRGraphVertId
 
class  _ByValue_Vector_MRWatershedGraphBdInfo_MRGraphEdgeId
 
class  _ByValue_Vector_StdArrayMRVector3f3_MRFaceId
 
class  _ByValue_Vector_StdFilesystemPath_MRTextureId
 
class  _ByValue_Vector_StdVectorMREdgePoint_MRVertId
 
class  _ByValue_Vector_StdVectorMRGraphEdgeId_MRGraphVertId
 
class  _ByValue_Vector_StdVectorMRObjVertId_MRIdMRICPElemtTag
 
class  _ByValue_Vector_UnsignedShort_MRVoxelId
 
class  _ByValue_Vert2RegionMap
 
class  _ByValue_VertBitSet
 
class  _ByValue_VertBMap
 
class  _ByValue_VertColorMapAggregator
 
class  _ByValue_VertColors
 
class  _ByValue_VertCoords
 
class  _ByValue_VertCoords2
 
class  _ByValue_VertCoordsDiff
 
class  _ByValue_VertMap
 
class  _ByValue_VertRenumber
 
class  _ByValue_VertScalars
 
class  _ByValue_ViewportProperty_MRAffineXf3f
 
class  _ByValue_ViewportProperty_MRColor
 
class  _ByValue_ViewportProperty_MRMatrix3f
 
class  _ByValue_ViewportProperty_MRVector4UnsignedChar
 
class  _ByValue_ViewportProperty_MRXfBasedCacheMRBox3f
 
class  _ByValue_ViewportProperty_UnsignedChar
 
class  _ByValue_VisualObject
 
class  _ByValue_VolumeSegmenter
 
class  _ByValue_VoxelBitSet
 
class  _ByValue_VoxelsVolume_MRFloatGrid
 
class  _ByValue_VoxelsVolumeAccessor_MRVdbVolume
 
class  _ByValue_WatershedGraph
 
class  _ByValue_WholeEdgeBMap
 
class  _ByValue_WholeEdgeMap
 
class  _ByValue_WriteRawTiffParams
 
class  _ByValue_ZCompensateParams
 
class  _ByValue_ZeroOnMove_MRUint64T
 
class  _ByValueOptOpt_AllLocalTriangulations
 
class  _ByValueOptOpt_Edges
 
class  _ByValueOptOpt_FaceScalars
 
class  _ByValueOptOpt_IOFilter
 
class  _ByValueOptOpt_Mesh
 
class  _ByValueOptOpt_ObjectMeshData
 
class  _ByValueOptOpt_PointCloud
 
class  _ByValueOptOpt_Triangulation
 
class  _ByValueOptOpt_VertBitSet
 
class  _ByValueOptOpt_VertCoords
 
class  _ByValueOptOpt_VertCoords2
 
class  _ByValueOptOpt_VertMap
 
class  _ByValueOptOpt_VertScalars
 
class  _ByValueShared_AddVisualProperties_MRFeatureObject_MRDimensionsVisualizePropertyTypeDiameter
 
class  _ByValueShared_AddVisualProperties_MRFeatureObject_MRDimensionsVisualizePropertyTypeDiameter_MRDimensionsVisualizePropertyTypeAngle_MRDimensionsVisualizePropertyTypeLength
 
class  _ByValueShared_AddVisualProperties_MRFeatureObject_MRDimensionsVisualizePropertyTypeDiameter_MRDimensionsVisualizePropertyTypeLength
 
class  _ByValueShared_AngleMeasurementObject
 
class  _ByValueShared_BasicUiRenderTask
 
class  _ByValueShared_ChangeActiveBoxAction
 
class  _ByValueShared_ChangeColoringType
 
class  _ByValueShared_ChangeDualMarchingCubesAction
 
class  _ByValueShared_ChangeFacesColorMapAction
 
class  _ByValueShared_ChangeGridAction
 
class  _ByValueShared_ChangeIsoAction
 
class  _ByValueShared_ChangeLabelAction
 
class  _ByValueShared_ChangeLinesColorMapAction
 
class  _ByValueShared_ChangeMeshAction
 
class  _ByValueShared_ChangeMeshCreasesAction
 
class  _ByValueShared_ChangeMeshDataAction
 
class  _ByValueShared_ChangeMeshEdgeSelectionAction
 
class  _ByValueShared_ChangeMeshFaceSelectionAction
 
class  _ByValueShared_ChangeMeshPointsAction
 
class  _ByValueShared_ChangeMeshTexturePerFaceAction
 
class  _ByValueShared_ChangeMeshTopologyAction
 
class  _ByValueShared_ChangeMeshUVCoordsAction
 
class  _ByValueShared_ChangeNameAction
 
class  _ByValueShared_ChangeObjectAction
 
class  _ByValueShared_ChangeObjectColorAction
 
class  _ByValueShared_ChangeObjectSelectedAction
 
class  _ByValueShared_ChangeObjectVisibilityAction
 
class  _ByValueShared_ChangeOneNormalInCloudAction
 
class  _ByValueShared_ChangeOnePointInCloudAction
 
class  _ByValueShared_ChangeOnePointInPolylineAction
 
class  _ByValueShared_ChangePointCloudAction
 
class  _ByValueShared_ChangePointCloudNormalsAction
 
class  _ByValueShared_ChangePointCloudPointsAction
 
class  _ByValueShared_ChangePointPointSelectionAction
 
class  _ByValueShared_ChangePolylineAction
 
class  _ByValueShared_ChangePolylinePointsAction
 
class  _ByValueShared_ChangePolylineTopologyAction
 
class  _ByValueShared_ChangeScaleAction
 
class  _ByValueShared_ChangeSceneAction
 
class  _ByValueShared_ChangeSceneObjectsOrder
 
class  _ByValueShared_ChangeSurfaceAction
 
class  _ByValueShared_ChangeTextureAction
 
class  _ByValueShared_ChangeVisualizePropertyAction
 
class  _ByValueShared_ChangeXfAction
 
class  _ByValueShared_ChangVoxelSelectionAction
 
class  _ByValueShared_CircleObject
 
class  _ByValueShared_CombinedHistoryAction
 
class  _ByValueShared_ConeObject
 
class  _ByValueShared_CylinderObject
 
class  _ByValueShared_DistanceMap
 
class  _ByValueShared_DistanceMeasurementObject
 
class  _ByValueShared_FastWindingNumber
 
class  _ByValueShared_FeatureObject
 
class  _ByValueShared_HistoryAction
 
class  _ByValueShared_IFastWindingNumber
 
class  _ByValueShared_IPointsToMeshProjector
 
class  _ByValueShared_LineObject
 
class  _ByValueShared_Matrix_Float
 
class  _ByValueShared_MeasurementObject
 
class  _ByValueShared_Mesh
 
class  _ByValueShared_Object
 
class  _ByValueShared_ObjectChildrenHolder
 
class  _ByValueShared_ObjectComparableWithReference
 
class  _ByValueShared_ObjectDistanceMap
 
class  _ByValueShared_ObjectGcode
 
class  _ByValueShared_ObjectLabel
 
class  _ByValueShared_ObjectLines
 
class  _ByValueShared_ObjectLinesHolder
 
class  _ByValueShared_ObjectMesh
 
class  _ByValueShared_ObjectMeshHolder
 
class  _ByValueShared_ObjectPoints
 
class  _ByValueShared_ObjectPointsHolder
 
class  _ByValueShared_ObjectVoxels
 
class  _ByValueShared_OpenVdbFloatGrid
 
class  _ByValueShared_PartialChangeMeshAction
 
class  _ByValueShared_PartialChangeMeshDataAction
 
class  _ByValueShared_PartialChangeMeshPointsAction
 
class  _ByValueShared_PartialChangeMeshTopologyAction
 
class  _ByValueShared_PlaneObject
 
class  _ByValueShared_PointCloud
 
class  _ByValueShared_PointMeasurementObject
 
class  _ByValueShared_PointObject
 
class  _ByValueShared_PointsToMeshProjector
 
class  _ByValueShared_Polyline3
 
class  _ByValueShared_RadiusMeasurementObject
 
class  _ByValueShared_RectIndexer
 
class  _ByValueShared_SceneRootObject
 
class  _ByValueShared_SphereObject
 
class  _ByValueShared_VisualObject
 
struct  _InOpt_AffineXf2d
 
struct  _InOpt_AffineXf2f
 
struct  _InOpt_AffineXf3d
 
struct  _InOpt_AffineXf3f
 
struct  _InOpt_Box1d
 
struct  _InOpt_Box1f
 
struct  _InOpt_Box1i
 
struct  _InOpt_Box1i64
 
struct  _InOpt_Box2d
 
struct  _InOpt_Box2f
 
struct  _InOpt_Box2i
 
struct  _InOpt_Box2i64
 
struct  _InOpt_Box3d
 
struct  _InOpt_Box3f
 
struct  _InOpt_Box3i
 
struct  _InOpt_Box3i64
 
struct  _InOpt_Color
 
struct  _InOpt_EdgeId
 
struct  _InOpt_FaceId
 
struct  _InOpt_GraphEdgeId
 
struct  _InOpt_GraphVertId
 
struct  _InOpt_Matrix2b
 
struct  _InOpt_Matrix2d
 
struct  _InOpt_Matrix2f
 
struct  _InOpt_Matrix2i
 
struct  _InOpt_Matrix2i64
 
struct  _InOpt_Matrix3b
 
struct  _InOpt_Matrix3d
 
struct  _InOpt_Matrix3f
 
struct  _InOpt_Matrix3i
 
struct  _InOpt_Matrix3i64
 
struct  _InOpt_Matrix4b
 
struct  _InOpt_Matrix4d
 
struct  _InOpt_Matrix4f
 
struct  _InOpt_Matrix4i
 
struct  _InOpt_Matrix4i64
 
struct  _InOpt_NodeId
 
struct  _InOpt_ObjId
 
struct  _InOpt_ObjVertId
 
struct  _InOpt_PixelId
 
struct  _InOpt_RegionId
 
struct  _InOpt_TextureId
 
struct  _InOpt_UndirectedEdgeId
 
struct  _InOpt_Vector2b
 
struct  _InOpt_Vector2d
 
struct  _InOpt_Vector2f
 
struct  _InOpt_Vector2i
 
struct  _InOpt_Vector2i64
 
struct  _InOpt_Vector3b
 
struct  _InOpt_Vector3d
 
struct  _InOpt_Vector3f
 
struct  _InOpt_Vector3i
 
struct  _InOpt_Vector3i64
 
struct  _InOpt_Vector4b
 
struct  _InOpt_Vector4d
 
struct  _InOpt_Vector4f
 
struct  _InOpt_Vector4i
 
struct  _InOpt_Vector4i64
 
struct  _InOpt_VertId
 
struct  _InOpt_ViewportId
 
struct  _InOpt_VoxelId
 
class  _InOptConst_AABBTree
 
class  _InOptConst_AABBTreeBase_MRAABBTreeTraitsMRFaceTagMRBox3f
 
class  _InOptConst_AABBTreeBase_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox2f
 
class  _InOptConst_AABBTreeBase_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox3f
 
class  _InOptConst_AABBTreeBase_MRObjTreeTraits
 
class  _InOptConst_AABBTreeNode_MRAABBTreeTraitsMRFaceTagMRBox3f
 
class  _InOptConst_AABBTreeNode_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox2f
 
class  _InOptConst_AABBTreeNode_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox3f
 
class  _InOptConst_AABBTreeNode_MRObjTreeTraits
 
class  _InOptConst_AABBTreeObjects
 
class  _InOptConst_AABBTreePoints
 
class  _InOptConst_AABBTreePolyline2
 
class  _InOptConst_AABBTreePolyline3
 
class  _InOptConst_AABBTreeTraits_MRFaceTag_MRBox3f
 
class  _InOptConst_AABBTreeTraits_MRUndirectedEdgeTag_MRBox2f
 
class  _InOptConst_AABBTreeTraits_MRUndirectedEdgeTag_MRBox3f
 
class  _InOptConst_AddVisualProperties_MRFeatureObject_MRDimensionsVisualizePropertyTypeDiameter
 
class  _InOptConst_AddVisualProperties_MRFeatureObject_MRDimensionsVisualizePropertyTypeDiameter_MRDimensionsVisualizePropertyTypeAngle_MRDimensionsVisualizePropertyTypeLength
 
class  _InOptConst_AddVisualProperties_MRFeatureObject_MRDimensionsVisualizePropertyTypeDiameter_MRDimensionsVisualizePropertyTypeLength
 
class  _InOptConst_AffineXf2d
 
class  _InOptConst_AffineXf2f
 
class  _InOptConst_AffineXf3d
 
class  _InOptConst_AffineXf3f
 
class  _InOptConst_AllLocalTriangulations
 
class  _InOptConst_AngleMeasurementObject
 
class  _InOptConst_AnyVisualizeMaskEnum
 
class  _InOptConst_ArcInterpolationParams
 
class  _InOptConst_Ball1d
 
class  _InOptConst_Ball1f
 
class  _InOptConst_Ball2d
 
class  _InOptConst_Ball2f
 
class  _InOptConst_Ball3d
 
class  _InOptConst_Ball3f
 
class  _InOptConst_BaseRenderParams
 
class  _InOptConst_BaseShellParameters
 
class  _InOptConst_BaseTiffParameters
 
class  _InOptConst_BasicUiRenderTask
 
class  _InOptConst_BasinVolumeCalculator
 
class  _InOptConst_BendContoursAlongCurveParams
 
class  _InOptConst_BendTextAlongCurveParams
 
class  _InOptConst_BestFitParabolad
 
class  _InOptConst_BestFitParabolaf
 
class  _InOptConst_BitSet
 
class  _InOptConst_BMap_MRFaceId_MRUint64T
 
class  _InOptConst_BMap_MRGraphEdgeId_MRGraphEdgeId
 
class  _InOptConst_BMap_MRGraphVertId_MRGraphVertId
 
class  _InOptConst_BMap_MRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  _InOptConst_BMap_MRNodeId_MRNodeId
 
class  _InOptConst_BMap_MRObjId_MRObjId
 
class  _InOptConst_BMap_MRPixelId_MRPixelId
 
class  _InOptConst_BMap_MRRegionId_MRRegionId
 
class  _InOptConst_BMap_MRTextureId_MRTextureId
 
class  _InOptConst_BMap_MRUndirectedEdgeId_MRUint64T
 
class  _InOptConst_BMap_MRVertId_MRUint64T
 
class  _InOptConst_BMap_MRVoxelId_MRVoxelId
 
class  _InOptConst_BooleanInternalParameters
 
class  _InOptConst_BooleanParameters
 
class  _InOptConst_BooleanPreCutResult
 
class  _InOptConst_BooleanResult
 
class  _InOptConst_BooleanResultMapper
 
class  _InOptConst_BooleanResultPoints
 
class  _InOptConst_Box1d
 
class  _InOptConst_Box1f
 
class  _InOptConst_Box1i
 
class  _InOptConst_Box1i64
 
class  _InOptConst_Box2d
 
class  _InOptConst_Box2f
 
class  _InOptConst_Box2i
 
class  _InOptConst_Box2i64
 
class  _InOptConst_Box3d
 
class  _InOptConst_Box3f
 
class  _InOptConst_Box3i
 
class  _InOptConst_Box3i64
 
class  _InOptConst_Box_UnsignedShort
 
class  _InOptConst_Buffer_Char
 
class  _InOptConst_Buffer_MREdgeId_MREdgeId
 
class  _InOptConst_Buffer_MREdgeId_MRUndirectedEdgeId
 
class  _InOptConst_Buffer_MRFaceId
 
class  _InOptConst_Buffer_MRFaceId_MRFaceId
 
class  _InOptConst_Buffer_MRGraphEdgeId_MRGraphEdgeId
 
class  _InOptConst_Buffer_MRGraphVertId_MRGraphVertId
 
class  _InOptConst_Buffer_MRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  _InOptConst_Buffer_MRNodeId_MRNodeId
 
class  _InOptConst_Buffer_MRObjId_MRObjId
 
class  _InOptConst_Buffer_MRPixelId_MRPixelId
 
class  _InOptConst_Buffer_MRRegionId_MRRegionId
 
class  _InOptConst_Buffer_MRTextureId_MRTextureId
 
class  _InOptConst_Buffer_MRUndirectedEdgeId
 
class  _InOptConst_Buffer_MRUndirectedEdgeId_MRUndirectedEdgeId
 
class  _InOptConst_Buffer_MRVertId
 
class  _InOptConst_Buffer_MRVertId_MRVertId
 
class  _InOptConst_Buffer_MRVoxelId_MRVoxelId
 
class  _InOptConst_Buffer_UnsignedChar
 
class  _InOptConst_ChangeActiveBoxAction
 
class  _InOptConst_ChangeColoringType
 
class  _InOptConst_ChangeDualMarchingCubesAction
 
class  _InOptConst_ChangeFacesColorMapAction
 
class  _InOptConst_ChangeGridAction
 
class  _InOptConst_ChangeIsoAction
 
class  _InOptConst_ChangeLabelAction
 
class  _InOptConst_ChangeLinesColorMapAction
 
class  _InOptConst_ChangeMeshAction
 
class  _InOptConst_ChangeMeshCreasesAction
 
class  _InOptConst_ChangeMeshDataAction
 
class  _InOptConst_ChangeMeshEdgeSelectionAction
 
class  _InOptConst_ChangeMeshFaceSelectionAction
 
class  _InOptConst_ChangeMeshPointsAction
 
class  _InOptConst_ChangeMeshTexturePerFaceAction
 
class  _InOptConst_ChangeMeshTopologyAction
 
class  _InOptConst_ChangeMeshUVCoordsAction
 
class  _InOptConst_ChangeNameAction
 
class  _InOptConst_ChangeObjectAction
 
class  _InOptConst_ChangeObjectColorAction
 
class  _InOptConst_ChangeObjectSelectedAction
 
class  _InOptConst_ChangeObjectVisibilityAction
 
class  _InOptConst_ChangeOneNormalInCloudAction
 
class  _InOptConst_ChangeOnePointInCloudAction
 
class  _InOptConst_ChangeOnePointInPolylineAction
 
class  _InOptConst_ChangePointCloudAction
 
class  _InOptConst_ChangePointCloudNormalsAction
 
class  _InOptConst_ChangePointCloudPointsAction
 
class  _InOptConst_ChangePointPointSelectionAction
 
class  _InOptConst_ChangePolylineAction
 
class  _InOptConst_ChangePolylinePointsAction
 
class  _InOptConst_ChangePolylineTopologyAction
 
class  _InOptConst_ChangeScaleAction
 
class  _InOptConst_ChangeSceneAction
 
class  _InOptConst_ChangeSceneObjectsOrder
 
class  _InOptConst_ChangeSurfaceAction
 
class  _InOptConst_ChangeTextureAction
 
class  _InOptConst_ChangeVisualizePropertyAction
 
class  _InOptConst_ChangeXfAction
 
class  _InOptConst_ChangVoxelSelectionAction
 
class  _InOptConst_Chunk
 
class  _InOptConst_ChunkIterator
 
class  _InOptConst_CircleObject
 
class  _InOptConst_CloseToMeshVolumeParams
 
class  _InOptConst_CloudPartMapping
 
class  _InOptConst_CmpOld
 
class  _InOptConst_CNCMachineSettings
 
class  _InOptConst_Color
 
class  _InOptConst_CombinedHistoryAction
 
class  _InOptConst_CompensateRadiusParams
 
class  _InOptConst_ComputeSteepestDescentPathSettings
 
class  _InOptConst_ComputeSweptVolumeParameters
 
class  _InOptConst_Cone3ApproximationParams
 
class  _InOptConst_Cone3d
 
class  _InOptConst_Cone3f
 
class  _InOptConst_ConeObject
 
class  _InOptConst_ConstantCuspParams
 
class  _InOptConst_ContoursDistanceMapOffset
 
class  _InOptConst_ContoursDistanceMapOptions
 
class  _InOptConst_ContoursMeshAlignParams
 
class  _InOptConst_ContourToDistanceMapParams
 
class  _InOptConst_CoordinateConverters
 
class  _InOptConst_CoordinateConverters2
 
class  _InOptConst_CubicBezierCurve2d
 
class  _InOptConst_CubicBezierCurve2f
 
class  _InOptConst_CubicBezierCurve3d
 
class  _InOptConst_CubicBezierCurve3f
 
class  _InOptConst_CurvePoint
 
class  _InOptConst_CutByProjectionSettings
 
class  _InOptConst_CutMeshParameters
 
class  _InOptConst_CutMeshResult
 
class  _InOptConst_Cylinder3d
 
class  _InOptConst_Cylinder3f
 
class  _InOptConst_CylinderObject
 
class  _InOptConst_DecimatePolylineResult
 
class  _InOptConst_DecimatePolylineSettings_MRVector2f
 
class  _InOptConst_DecimatePolylineSettings_MRVector3f
 
class  _InOptConst_DecimateResult
 
class  _InOptConst_DecimateSettings
 
class  _InOptConst_DeloneSettings
 
class  _InOptConst_DenoiseViaNormalsSettings
 
class  _InOptConst_DenseBox
 
class  _InOptConst_DentalId
 
class  _InOptConst_DetectTunnelSettings
 
class  _InOptConst_Dipole
 
class  _InOptConst_Dipoles
 
class  _InOptConst_Dirty
 
class  _InOptConst_DistanceFromWeightedPointsComputeParams
 
class  _InOptConst_DistanceFromWeightedPointsParams
 
class  _InOptConst_DistanceMap
 
class  _InOptConst_DistanceMapLoadSettings
 
class  _InOptConst_DistanceMapSaveSettings
 
class  _InOptConst_DistanceMapToWorld
 
class  _InOptConst_DistanceMeasurementObject
 
class  _InOptConst_DistanceToMeshOptions
 
class  _InOptConst_DistanceVolumeParams
 
class  _InOptConst_DividePointCloudOptionalOutput
 
class  _InOptConst_DividePolylineParameters
 
class  _InOptConst_DoubleOffsetSettings
 
class  _InOptConst_EdgeBitSet
 
class  _InOptConst_EdgeBMap
 
class  _InOptConst_EdgeColors
 
class  _InOptConst_EdgeId
 
class  _InOptConst_EdgeLengthMesh
 
class  _InOptConst_EdgeMap
 
class  _InOptConst_EdgePathsAStarBuilder
 
class  _InOptConst_EdgePathsBuilderT_MRMetricToAStarPenalty
 
class  _InOptConst_EdgePathsBuilderT_MRTrivialMetricToPenalty
 
class  _InOptConst_EdgePoint
 
class  _InOptConst_EdgePointPair
 
class  _InOptConst_Edges
 
class  _InOptConst_EdgeScalars
 
class  _InOptConst_EdgeSegment
 
class  _InOptConst_EdgeTri
 
class  _InOptConst_EmbeddedStructureParameters
 
class  _InOptConst_EndMillCutter
 
class  _InOptConst_EndMillTool
 
class  _InOptConst_EnumNeihbourFaces
 
class  _InOptConst_EnumNeihbourVertices
 
class  _InOptConst_Expected_Bool_StdString
 
class  _InOptConst_Expected_MRAffineXf3f_StdString
 
class  _InOptConst_Expected_MRBooleanResultPoints_StdString
 
class  _InOptConst_Expected_MRDistanceMap_StdString
 
class  _InOptConst_Expected_MRFaceBitSet_StdString
 
class  _InOptConst_Expected_MRFloatGrid_StdString
 
class  _InOptConst_Expected_MRFunctionVolume_StdString
 
class  _InOptConst_Expected_MRImage_StdString
 
class  _InOptConst_Expected_MRLoadedObjects_StdString
 
class  _InOptConst_Expected_MRLoadedObjectT_StdString
 
class  _InOptConst_Expected_MRLoadedObjectTMRObjectMesh_StdString
 
class  _InOptConst_Expected_MRMesh_StdString
 
class  _InOptConst_Expected_MRObjectDistanceMap_StdString
 
class  _InOptConst_Expected_MRObjectGcode_StdString
 
class  _InOptConst_Expected_MRObjectLines_StdString
 
class  _InOptConst_Expected_MRObjectPoints_StdString
 
class  _InOptConst_Expected_MROneMeshContour_StdString
 
class  _InOptConst_Expected_MRPackMapping_StdString
 
class  _InOptConst_Expected_MRPointCloud_StdString
 
class  _InOptConst_Expected_MRPolyline3_StdString
 
class  _InOptConst_Expected_MRSimpleBinaryVolume_StdString
 
class  _InOptConst_Expected_MRSimpleVolume_StdString
 
class  _InOptConst_Expected_MRSimpleVolumeMinMax_StdString
 
class  _InOptConst_Expected_MRSimpleVolumeMinMaxU16_StdString
 
class  _InOptConst_Expected_MRTeethMaskToDirectionVolumeConvertor_StdString
 
class  _InOptConst_Expected_MRTeethMaskToDirectionVolumeConvertorProcessResult_StdString
 
class  _InOptConst_Expected_MRTiffParameters_StdString
 
class  _InOptConst_Expected_MRToolPathResult_StdString
 
class  _InOptConst_Expected_MRTriMesh_StdString
 
class  _InOptConst_Expected_MRUndirectedEdgeBitSet_StdString
 
class  _InOptConst_Expected_MRUnionFindMRVertId_StdString
 
class  _InOptConst_Expected_MRVdbVolume_StdString
 
class  _InOptConst_Expected_MRVector3i_StdString
 
class  _InOptConst_Expected_MRVertBitSet_StdString
 
class  _InOptConst_Expected_MRVertColors_StdString
 
class  _InOptConst_Expected_MRVertCoords_StdString
 
class  _InOptConst_Expected_MRVoxelBitSet_StdString
 
class  _InOptConst_Expected_MRVoxelsLoadDicomVolume_StdString
 
class  _InOptConst_Expected_MRVoxelsLoadDicomVolumeAsVdb_StdString
 
class  _InOptConst_Expected_MRVoxelsLoadRawParameters_StdString
 
class  _InOptConst_Expected_StdArrayMRSimpleVolumeMinMax3_StdString
 
class  _InOptConst_Expected_StdFunctionMRCurvePointFuncFromFloat_StdString
 
class  _InOptConst_Expected_StdPairStdVectorMRVertBitSetInt_StdString
 
class  _InOptConst_Expected_StdSharedPtrMRMesh_StdString
 
class  _InOptConst_Expected_StdSharedPtrMRObject_StdString
 
class  _InOptConst_Expected_StdSharedPtrMRObjectVoxels_StdString
 
class  _InOptConst_Expected_StdVectorFloat_StdString
 
class  _InOptConst_Expected_StdVectorMREdgeId_StdString
 
class  _InOptConst_Expected_StdVectorMREdgePoint_MRPathError
 
class  _InOptConst_Expected_StdVectorMREdgePoint_StdString
 
class  _InOptConst_Expected_StdVectorMRFaceBitSet_StdString
 
class  _InOptConst_Expected_StdVectorMRFaceFace_StdString
 
class  _InOptConst_Expected_StdVectorMRFloatGrid_StdString
 
class  _InOptConst_Expected_StdVectorMRMesh_StdString
 
class  _InOptConst_Expected_StdVectorMRMeshLoadNamedMesh_StdString
 
class  _InOptConst_Expected_StdVectorMROneMeshContour_StdString
 
class  _InOptConst_Expected_StdVectorMRPointsLoadNamedCloud_StdString
 
class  _InOptConst_Expected_StdVectorMRVdbVolume_StdString
 
class  _InOptConst_Expected_StdVectorMRVertBitSet_StdString
 
class  _InOptConst_Expected_StdVectorStdPairMRVertIdMRVertId_StdString
 
class  _InOptConst_Expected_StdVectorStdSharedPtrMRObjectVoxels_StdString
 
class  _InOptConst_Expected_StdVectorStdString_StdString
 
class  _InOptConst_Expected_StdVectorStdVectorMREdgeId_StdString
 
class  _InOptConst_Expected_StdVectorStdVectorMRVector2f_StdString
 
class  _InOptConst_Expected_StdVectorStdVectorMRVector3f_StdString
 
class  _InOptConst_Expected_Void_StdString
 
class  _InOptConst_Face2RegionMap
 
class  _InOptConst_FaceBitSet
 
class  _InOptConst_FaceBMap
 
class  _InOptConst_FaceColorMapAggregator
 
class  _InOptConst_FaceColors
 
class  _InOptConst_FaceDistancesSettings
 
class  _InOptConst_FaceFace
 
class  _InOptConst_FaceFaceFace
 
class  _InOptConst_FaceId
 
class  _InOptConst_FaceMap
 
class  _InOptConst_FaceNormals
 
class  _InOptConst_FaceScalars
 
class  _InOptConst_FanRecord
 
class  _InOptConst_FanRecordWithCenter
 
class  _InOptConst_FastWindingNumber
 
class  _InOptConst_FeatureObject
 
class  _InOptConst_FeatureObjectProjectPointResult
 
class  _InOptConst_FeatureObjectSharedProperty
 
class  _InOptConst_FewSmallest_MRPointsProjectionResult
 
class  _InOptConst_FillHoleItem
 
class  _InOptConst_FillHoleMetric
 
class  _InOptConst_FillHoleNicelySettings
 
class  _InOptConst_FillHoleParams
 
class  _InOptConst_FillHolesWithExtraPointsParams
 
class  _InOptConst_FindDisorientationParams
 
class  _InOptConst_FindInnerShellSettings
 
class  _InOptConst_FindOutliersParams
 
class  _InOptConst_FindOverhangsSettings
 
class  _InOptConst_FindOverlappingSettings
 
class  _InOptConst_FindProjectionOnPointsSettings
 
class  _InOptConst_FixCreasesParams
 
class  _InOptConst_FixMeshDegeneraciesParams
 
class  _InOptConst_FloatGrid
 
class  _InOptConst_FlowAggregator
 
class  _InOptConst_FlowOrigin
 
class  _InOptConst_FreeFormBestFit
 
class  _InOptConst_FreeFormDeformer
 
class  _InOptConst_FunctionVolume
 
class  _InOptConst_FunctionVolumeU8
 
class  _InOptConst_GcodeProcessor
 
class  _InOptConst_GCommand
 
class  _InOptConst_GeneralOffsetParameters
 
class  _InOptConst_Graph
 
class  _InOptConst_GraphEdgeBitSet
 
class  _InOptConst_GraphEdgeId
 
class  _InOptConst_GraphVertBitSet
 
class  _InOptConst_GraphVertId
 
class  _InOptConst_GridSettings
 
class  _InOptConst_GridToMeshSettings
 
class  _InOptConst_Heap_Float_MRGraphVertId_StdGreaterFloat
 
class  _InOptConst_Histogram
 
class  _InOptConst_HistoryAction
 
class  _InOptConst_HoleFillPlan
 
class  _InOptConst_IComputeToolDistance
 
class  _InOptConst_ICP
 
class  _InOptConst_ICPGroupPair
 
class  _InOptConst_ICPGroupPairs
 
class  _InOptConst_ICPPairData
 
class  _InOptConst_ICPProperties
 
class  _InOptConst_Id_MRICPElemtTag
 
class  _InOptConst_IFastWindingNumber
 
class  _InOptConst_IFastWindingNumberByParts
 
class  _InOptConst_IICPTreeIndexer
 
class  _InOptConst_Image
 
class  _InOptConst_ImproveSamplingSettings
 
class  _InOptConst_InflateSettings
 
class  _InOptConst_InSphere
 
class  _InOptConst_InSphereSearchSettings
 
class  _InOptConst_IntersectionPrecomputes2_Double
 
class  _InOptConst_IntersectionPrecomputes2_Float
 
class  _InOptConst_IntersectionPrecomputes_Double
 
class  _InOptConst_IntersectionPrecomputes_Float
 
class  _InOptConst_InTreePathBuilder
 
class  _InOptConst_IntrinsicDeloneSettings
 
class  _InOptConst_IOFilter
 
class  _InOptConst_IPointPairs
 
class  _InOptConst_IPointsProjector
 
class  _InOptConst_IPointsToMeshProjector
 
class  _InOptConst_IRenderObject
 
class  _InOptConst_IsVisualizeMaskEnum_MRAnyVisualizeMaskEnum
 
class  _InOptConst_IsVisualizeMaskEnum_MRDimensionsVisualizePropertyType
 
class  _InOptConst_IsVisualizeMaskEnum_MRFeatureVisualizePropertyType
 
class  _InOptConst_IsVisualizeMaskEnum_MRLabelVisualizePropertyType
 
class  _InOptConst_IsVisualizeMaskEnum_MRLinesVisualizePropertyType
 
class  _InOptConst_IsVisualizeMaskEnum_MRMeshVisualizePropertyType
 
class  _InOptConst_IsVisualizeMaskEnum_MRPointMeasurementVisualizePropertyType
 
class  _InOptConst_IsVisualizeMaskEnum_MRPointsVisualizePropertyType
 
class  _InOptConst_IsVisualizeMaskEnum_MRVisualizeMaskType
 
class  _InOptConst_IteratorRange_MRChunkIterator
 
class  _InOptConst_IteratorRange_MRPolylineUndirectedEdgeIterator
 
class  _InOptConst_IteratorRange_MRRingIteratorMRNextEdgeSameLeft
 
class  _InOptConst_IteratorRange_MRRingIteratorMRNextEdgeSameOrigin
 
class  _InOptConst_IteratorRange_MRUndirectedEdgeIterator
 
class  _InOptConst_Laplacian
 
class  _InOptConst_Line2d
 
class  _InOptConst_Line2f
 
class  _InOptConst_Line3d
 
class  _InOptConst_Line3f
 
class  _InOptConst_Line3Mesh_Double
 
class  _InOptConst_Line3Mesh_Float
 
class  _InOptConst_LineInterpolationParams
 
class  _InOptConst_LineObject
 
class  _InOptConst_LineSegm2d
 
class  _InOptConst_LineSegm2f
 
class  _InOptConst_LineSegm3d
 
class  _InOptConst_LineSegm3f
 
class  _InOptConst_LinesLoadSettings
 
class  _InOptConst_LoadedObjects
 
class  _InOptConst_LoadedObjectT
 
class  _InOptConst_LoadedObjectT_MRObjectLines
 
class  _InOptConst_LoadedObjectT_MRObjectMesh
 
class  _InOptConst_LoadedObjectT_MRObjectPoints
 
class  _InOptConst_LoadedObjectT_MRObjectVoxels
 
class  _InOptConst_MakeBridgeResult
 
class  _InOptConst_MakeDegenerateBandAroundRegionParams
 
class  _InOptConst_MakeSignedByWindingNumberSettings
 
class  _InOptConst_MapOrHashMap_MREdgeId_MREdgeId
 
class  _InOptConst_MapOrHashMap_MRFaceId_MRFaceId
 
class  _InOptConst_MapOrHashMap_MRUndirectedEdgeId_MREdgeId
 
class  _InOptConst_MapOrHashMap_MRUndirectedEdgeId_MRUndirectedEdgeId
 
class  _InOptConst_MapOrHashMap_MRVertId_MRVertId
 
class  _InOptConst_MarchingCubesByParts
 
class  _InOptConst_MarchingCubesParams
 
class  _InOptConst_MarkedContour3f
 
class  _InOptConst_Matrix2b
 
class  _InOptConst_Matrix2d
 
class  _InOptConst_Matrix2f
 
class  _InOptConst_Matrix2i
 
class  _InOptConst_Matrix2i64
 
class  _InOptConst_Matrix3_UnsignedChar
 
class  _InOptConst_Matrix3b
 
class  _InOptConst_Matrix3d
 
class  _InOptConst_Matrix3f
 
class  _InOptConst_Matrix3i
 
class  _InOptConst_Matrix3i64
 
class  _InOptConst_Matrix4_UnsignedChar
 
class  _InOptConst_Matrix4b
 
class  _InOptConst_Matrix4d
 
class  _InOptConst_Matrix4f
 
class  _InOptConst_Matrix4i
 
class  _InOptConst_Matrix4i64
 
class  _InOptConst_Matrix_Float
 
class  _InOptConst_MeasurementObject
 
class  _InOptConst_MergeVolumePartSettings
 
class  _InOptConst_Mesh
 
class  _InOptConst_MeshApproxRelaxParams
 
class  _InOptConst_MeshAttributesToUpdate
 
class  _InOptConst_MeshDiff
 
class  _InOptConst_MeshEqualizeTriAreasParams
 
class  _InOptConst_MeshIntersectionResult
 
class  _InOptConst_MeshLoadSettings
 
class  _InOptConst_MeshMeshConverter
 
class  _InOptConst_MeshMeshDistanceResult
 
class  _InOptConst_MeshMeshSignedDistanceResult
 
class  _InOptConst_MeshNormals
 
class  _InOptConst_MeshOnVoxelsT_ConstMRMesh_MRFunctionVolume
 
class  _InOptConst_MeshOnVoxelsT_ConstMRMesh_MRSimpleVolumeMinMax
 
class  _InOptConst_MeshOnVoxelsT_ConstMRMesh_MRVdbVolume
 
class  _InOptConst_MeshOnVoxelsT_MRMesh_MRFunctionVolume
 
class  _InOptConst_MeshOnVoxelsT_MRMesh_MRSimpleVolumeMinMax
 
class  _InOptConst_MeshOnVoxelsT_MRMesh_MRVdbVolume
 
class  _InOptConst_MeshOrPoints
 
class  _InOptConst_MeshOrPointsObject
 
class  _InOptConst_MeshOrPointsXf
 
class  _InOptConst_MeshPart
 
class  _InOptConst_MeshPoint
 
class  _InOptConst_MeshPointAndDistance
 
class  _InOptConst_MeshProjectionParameters
 
class  _InOptConst_MeshProjectionResult
 
class  _InOptConst_MeshProjectionTransforms
 
class  _InOptConst_MeshRelaxParams
 
class  _InOptConst_MeshTexture
 
class  _InOptConst_MeshToDirectionVolumeParams
 
class  _InOptConst_MeshToDistanceMapParams
 
class  _InOptConst_MeshToDistanceVolumeParams
 
class  _InOptConst_MeshTopology
 
class  _InOptConst_MeshTopologyDiff
 
class  _InOptConst_MeshToVolumeParams
 
class  _InOptConst_MeshTriPoint
 
class  _InOptConst_MeshVertPart
 
class  _InOptConst_MeshVoxelsConverter
 
class  _InOptConst_MetricToAStarPenalty
 
class  _InOptConst_MinMaxArg_Float_MRVertId
 
class  _InOptConst_ModelBaseRenderParams
 
class  _InOptConst_ModelPointsData
 
class  _InOptConst_ModelRenderParams
 
class  _InOptConst_MovementBuildBodyParams
 
class  _InOptConst_MoveMeshToVoxelMaxDerivSettings
 
class  _InOptConst_MultiMeshIntersectionResult
 
class  _InOptConst_MultiRayMeshIntersectResult
 
class  _InOptConst_MultiwayAligningTransform
 
class  _InOptConst_MultiwayICP
 
class  _InOptConst_MultiwayICPSamplingParameters
 
class  _InOptConst_MutexOwner
 
class  _InOptConst_NewEdgesMap
 
class  _InOptConst_NextEdgeSameLeft
 
class  _InOptConst_NextEdgeSameOrigin
 
class  _InOptConst_NoCtor_Char
 
class  _InOptConst_NoCtor_MREdgeId
 
class  _InOptConst_NoCtor_MRFaceId
 
class  _InOptConst_NoCtor_MRGraphEdgeId
 
class  _InOptConst_NoCtor_MRGraphVertId
 
class  _InOptConst_NoCtor_MRIdMRICPElemtTag
 
class  _InOptConst_NoCtor_MRNodeId
 
class  _InOptConst_NoCtor_MRObjId
 
class  _InOptConst_NoCtor_MRPixelId
 
class  _InOptConst_NoCtor_MRRegionId
 
class  _InOptConst_NoCtor_MRTextureId
 
class  _InOptConst_NoCtor_MRUndirectedEdgeId
 
class  _InOptConst_NoCtor_MRVertId
 
class  _InOptConst_NoCtor_MRVoxelId
 
class  _InOptConst_NoCtor_UnsignedChar
 
class  _InOptConst_NodeBitSet
 
class  _InOptConst_NoDefInit_MREdgeId
 
class  _InOptConst_NoDefInit_MRFaceId
 
class  _InOptConst_NoDefInit_MRGraphEdgeId
 
class  _InOptConst_NoDefInit_MRGraphVertId
 
class  _InOptConst_NoDefInit_MRIdMRICPElemtTag
 
class  _InOptConst_NoDefInit_MRNodeId
 
class  _InOptConst_NoDefInit_MRObjId
 
class  _InOptConst_NoDefInit_MRPixelId
 
class  _InOptConst_NoDefInit_MRRegionId
 
class  _InOptConst_NoDefInit_MRTextureId
 
class  _InOptConst_NoDefInit_MRUndirectedEdgeId
 
class  _InOptConst_NoDefInit_MRVertId
 
class  _InOptConst_NoDefInit_MRVoxelId
 
class  _InOptConst_NodeId
 
class  _InOptConst_NodeNode
 
class  _InOptConst_NoInit
 
class  _InOptConst_NoInitNodeId
 
class  _InOptConst_NoiseSettings
 
class  _InOptConst_NormalsToPoints
 
class  _InOptConst_NumSum
 
class  _InOptConst_ObjBitSet
 
class  _InOptConst_Object
 
class  _InOptConst_ObjectChildrenHolder
 
class  _InOptConst_ObjectComparableWithReference
 
class  _InOptConst_ObjectDistanceMap
 
class  _InOptConst_ObjectFactoryBase
 
class  _InOptConst_ObjectGcode
 
class  _InOptConst_ObjectLabel
 
class  _InOptConst_ObjectLines
 
class  _InOptConst_ObjectLinesHolder
 
class  _InOptConst_ObjectMesh
 
class  _InOptConst_ObjectMeshData
 
class  _InOptConst_ObjectMeshHolder
 
class  _InOptConst_ObjectMeshMergeOptions
 
class  _InOptConst_ObjectPoints
 
class  _InOptConst_ObjectPointsHolder
 
class  _InOptConst_ObjectTagEventDispatcher
 
class  _InOptConst_ObjectVoxels
 
class  _InOptConst_ObjId
 
class  _InOptConst_ObjKindTraits_MRFeaturesObjectKindCircle
 
class  _InOptConst_ObjKindTraits_MRFeaturesObjectKindCone
 
class  _InOptConst_ObjKindTraits_MRFeaturesObjectKindCylinder
 
class  _InOptConst_ObjKindTraits_MRFeaturesObjectKindLine
 
class  _InOptConst_ObjKindTraits_MRFeaturesObjectKindPlane
 
class  _InOptConst_ObjKindTraits_MRFeaturesObjectKindPoint
 
class  _InOptConst_ObjKindTraits_MRFeaturesObjectKindSphere
 
class  _InOptConst_ObjMap
 
class  _InOptConst_ObjTreeTraits
 
class  _InOptConst_ObjVertId
 
class  _InOptConst_OffsetContourIndex
 
class  _InOptConst_OffsetContoursOrigins
 
class  _InOptConst_OffsetContoursParams
 
class  _InOptConst_OffsetContoursRestoreZParams
 
class  _InOptConst_OffsetParameters
 
class  _InOptConst_OneMeshContour
 
class  _InOptConst_OneMeshIntersection
 
class  _InOptConst_OpenVdbFloatGrid
 
class  _InOptConst_OriginAndDimensions
 
class  _InOptConst_OutlierParams
 
class  _InOptConst_OutliersDetector
 
class  _InOptConst_OutputFlows
 
class  _InOptConst_PackMapping
 
class  _InOptConst_Parabolad
 
class  _InOptConst_Parabolaf
 
class  _InOptConst_PartialChangeMeshAction
 
class  _InOptConst_PartialChangeMeshDataAction
 
class  _InOptConst_PartialChangeMeshPointsAction
 
class  _InOptConst_PartialChangeMeshTopologyAction
 
class  _InOptConst_PartMapping
 
class  _InOptConst_Pdf
 
class  _InOptConst_PdfParameters
 
class  _InOptConst_PixelBitSet
 
class  _InOptConst_PixelId
 
class  _InOptConst_Plane3d
 
class  _InOptConst_Plane3f
 
class  _InOptConst_PlaneAccumulator
 
class  _InOptConst_PlaneObject
 
class  _InOptConst_PlyLoadParams
 
class  _InOptConst_PointAccumulator
 
class  _InOptConst_PointAndDistance
 
class  _InOptConst_PointCloud
 
class  _InOptConst_PointCloudApproxRelaxParams
 
class  _InOptConst_PointCloudPart
 
class  _InOptConst_PointCloudRelaxParams
 
class  _InOptConst_PointMeasurementObject
 
class  _InOptConst_PointObject
 
class  _InOptConst_PointOnFace
 
class  _InOptConst_PointOnObject
 
class  _InOptConst_PointPair
 
class  _InOptConst_PointPairs
 
class  _InOptConst_PointsLoadSettings
 
class  _InOptConst_PointsProjectionResult
 
class  _InOptConst_PointsProjector
 
class  _InOptConst_PointsToDistanceVolumeParams
 
class  _InOptConst_PointsToMeshParameters
 
class  _InOptConst_PointsToMeshProjector
 
class  _InOptConst_PointToPlaneAligningTransform
 
class  _InOptConst_PointToPointAligningTransform
 
class  _InOptConst_Polyline2
 
class  _InOptConst_Polyline2ProjectionWithOffsetResult
 
class  _InOptConst_Polyline3
 
class  _InOptConst_PolylineIntersectionResult2
 
class  _InOptConst_PolylineMaker
 
class  _InOptConst_PolylineProjectionResult2
 
class  _InOptConst_PolylineProjectionResult3
 
class  _InOptConst_PolylineProjectionResult3Arg
 
class  _InOptConst_PolylineProjectionWithOffsetResult3
 
class  _InOptConst_PolylineSubdivideSettings
 
class  _InOptConst_PolylineToDistanceVolumeParams
 
class  _InOptConst_PolylineTopology
 
class  _InOptConst_PolylineToVolumeParams
 
class  _InOptConst_PolylineTraits_MRVector2f
 
class  _InOptConst_PolylineTraits_MRVector3f
 
class  _InOptConst_PolylineUndirectedEdgeIterator
 
class  _InOptConst_Polynomial_Double_0
 
class  _InOptConst_Polynomial_Double_1
 
class  _InOptConst_Polynomial_Double_2
 
class  _InOptConst_Polynomial_Double_3
 
class  _InOptConst_Polynomial_Double_4
 
class  _InOptConst_Polynomial_Double_5
 
class  _InOptConst_Polynomial_Double_6
 
class  _InOptConst_Polynomial_Float_0
 
class  _InOptConst_Polynomial_Float_1
 
class  _InOptConst_Polynomial_Float_2
 
class  _InOptConst_Polynomial_Float_3
 
class  _InOptConst_Polynomial_Float_4
 
class  _InOptConst_Polynomial_Float_5
 
class  _InOptConst_Polynomial_Float_6
 
class  _InOptConst_PolynomialWrapper_Double
 
class  _InOptConst_PolynomialWrapper_Float
 
class  _InOptConst_PositionedText
 
class  _InOptConst_PositionVertsSmoothlyParams
 
class  _InOptConst_PrecipitationSimulator
 
class  _InOptConst_PreciseVertCoord
 
class  _InOptConst_PreciseVertCoords
 
class  _InOptConst_PreciseVertCoords2
 
class  _InOptConst_ProjectAttributeParams
 
class  _InOptConst_QuadraticForm2d
 
class  _InOptConst_QuadraticForm2f
 
class  _InOptConst_QuadraticForm3d
 
class  _InOptConst_QuadraticForm3f
 
class  _InOptConst_QuadricApprox
 
class  _InOptConst_Quaterniond
 
class  _InOptConst_Quaternionf
 
class  _InOptConst_RadiusMeasurementObject
 
class  _InOptConst_RawTiffOutput
 
class  _InOptConst_RayOrigin_Float
 
class  _InOptConst_RebuildMeshSettings
 
class  _InOptConst_RectIndexer
 
class  _InOptConst_RefineParameters
 
class  _InOptConst_RegionBitSet
 
class  _InOptConst_RegionId
 
class  _InOptConst_RegularMapMesher
 
class  _InOptConst_RelaxParams
 
class  _InOptConst_RemeshSettings
 
class  _InOptConst_ResolveMeshDegenSettings
 
class  _InOptConst_RigidScaleXf3d
 
class  _InOptConst_RigidScaleXf3f
 
class  _InOptConst_RigidXf3d
 
class  _InOptConst_RigidXf3f
 
class  _InOptConst_RingIterator_MRNextEdgeSameLeft
 
class  _InOptConst_RingIterator_MRNextEdgeSameOrigin
 
class  _InOptConst_SaveSettings
 
class  _InOptConst_SceneColors
 
class  _InOptConst_SceneRoot
 
class  _InOptConst_SceneRootObject
 
class  _InOptConst_SceneSettings
 
class  _InOptConst_SearchPathSettings
 
class  _InOptConst_SegmentSegmentIntersectResult
 
class  _InOptConst_SegmPointd
 
class  _InOptConst_SegmPointf
 
class  _InOptConst_SeparationPointStorage
 
class  _InOptConst_SetNew
 
class  _InOptConst_SharpenMarchingCubesMeshSettings
 
class  _InOptConst_SharpOffsetParameters
 
class  _InOptConst_ShellVertexInfo
 
class  _InOptConst_SignedDistanceToMeshOptions
 
class  _InOptConst_SignedDistanceToMeshResult
 
class  _InOptConst_SimpleBinaryVolume
 
class  _InOptConst_SimpleVolume
 
class  _InOptConst_SimpleVolumeMinMax
 
class  _InOptConst_SimpleVolumeMinMaxU16
 
class  _InOptConst_SimpleVolumeU16
 
class  _InOptConst_SkyPatch
 
class  _InOptConst_SliceInfo
 
class  _InOptConst_SliceInfoBase
 
class  _InOptConst_SomeLocalTriangulations
 
class  _InOptConst_SortIntersectionsData
 
class  _InOptConst_SpacingSettings
 
class  _InOptConst_Sphere2d
 
class  _InOptConst_Sphere2f
 
class  _InOptConst_Sphere3d
 
class  _InOptConst_Sphere3f
 
class  _InOptConst_SphereObject
 
class  _InOptConst_SphereParams
 
class  _InOptConst_SplineSettings
 
class  _InOptConst_Src2TgtMaps
 
class  _InOptConst_StitchHolesParams
 
class  _InOptConst_SubdivideSettings
 
class  _InOptConst_SurfaceDistanceBuilder
 
class  _InOptConst_SymbolMeshParams
 
class  _InOptConst_SymMatrix2b
 
class  _InOptConst_SymMatrix2d
 
class  _InOptConst_SymMatrix2f
 
class  _InOptConst_SymMatrix2i
 
class  _InOptConst_SymMatrix2i64
 
class  _InOptConst_SymMatrix3_UnsignedChar
 
class  _InOptConst_SymMatrix3b
 
class  _InOptConst_SymMatrix3d
 
class  _InOptConst_SymMatrix3f
 
class  _InOptConst_SymMatrix3i
 
class  _InOptConst_SymMatrix3i64
 
class  _InOptConst_SymMatrix4_UnsignedChar
 
class  _InOptConst_SymMatrix4b
 
class  _InOptConst_SymMatrix4d
 
class  _InOptConst_SymMatrix4f
 
class  _InOptConst_SymMatrix4i
 
class  _InOptConst_SymMatrix4i64
 
class  _InOptConst_SystemMemory
 
class  _InOptConst_SystemPath
 
class  _InOptConst_TeethMaskToDirectionVolumeConvertor
 
class  _InOptConst_TerminalVertex
 
class  _InOptConst_TextMeshAlignParams
 
class  _InOptConst_TextureBitSet
 
class  _InOptConst_TextureId
 
class  _InOptConst_TexturePerFace
 
class  _InOptConst_Tgt2SrcMaps
 
class  _InOptConst_ThickenParams
 
class  _InOptConst_TiffParameters
 
class  _InOptConst_ToolPathParams
 
class  _InOptConst_ToolPathResult
 
class  _InOptConst_TransformedMesh
 
class  _InOptConst_TransformVdbVolumeResult
 
class  _InOptConst_TransparencyMode
 
class  _InOptConst_TriangleSegmentIntersectResult
 
class  _InOptConst_Triangulation
 
class  _InOptConst_TriangulationParameters
 
class  _InOptConst_TriCornerUVCoords
 
class  _InOptConst_TriIntersectResult
 
class  _InOptConst_TriMesh
 
class  _InOptConst_TrimOptionalOutput
 
class  _InOptConst_TrimWithPlaneParams
 
class  _InOptConst_TriPointd
 
class  _InOptConst_TriPointf
 
class  _InOptConst_TrivialMetricToPenalty
 
class  _InOptConst_TypedBitSet_MRIdMRICPElemtTag
 
class  _InOptConst_UiRenderManager
 
class  _InOptConst_UiRenderParams
 
class  _InOptConst_UndirectedEdge2RegionMap
 
class  _InOptConst_UndirectedEdgeBitSet
 
class  _InOptConst_UndirectedEdgeBMap
 
class  _InOptConst_UndirectedEdgeColors
 
class  _InOptConst_UndirectedEdgeId
 
class  _InOptConst_UndirectedEdgeIterator
 
class  _InOptConst_UndirectedEdgeMap
 
class  _InOptConst_UndirectedEdgeScalars
 
class  _InOptConst_UndirectedEdgeUndirectedEdge
 
class  _InOptConst_UndirEdgeColorMapAggregator
 
class  _InOptConst_UniformSamplingSettings
 
class  _InOptConst_UnionFind_MRFaceId
 
class  _InOptConst_UnionFind_MRUndirectedEdgeId
 
class  _InOptConst_UnionFind_MRVertId
 
class  _InOptConst_UniqueTemporaryFolder
 
class  _InOptConst_UniqueThreadSafeOwner_MRAABBTree
 
class  _InOptConst_UniqueThreadSafeOwner_MRAABBTreePoints
 
class  _InOptConst_UniteManyMeshesParams
 
class  _InOptConst_UnitInfo
 
class  _InOptConst_UnorientedTriangle
 
class  _InOptConst_VarEdgeTri
 
class  _InOptConst_VdbVolume
 
class  _InOptConst_Vector2b
 
class  _InOptConst_Vector2d
 
class  _InOptConst_Vector2f
 
class  _InOptConst_Vector2i
 
class  _InOptConst_Vector2i64
 
class  _InOptConst_Vector3_UnsignedChar
 
class  _InOptConst_Vector3b
 
class  _InOptConst_Vector3d
 
class  _InOptConst_Vector3f
 
class  _InOptConst_Vector3i
 
class  _InOptConst_Vector3i64
 
class  _InOptConst_Vector4_UnsignedChar
 
class  _InOptConst_Vector4b
 
class  _InOptConst_Vector4d
 
class  _InOptConst_Vector4f
 
class  _InOptConst_Vector4i
 
class  _InOptConst_Vector4i64
 
class  _InOptConst_Vector_Char_MRVertId
 
class  _InOptConst_Vector_Double_MRRegionId
 
class  _InOptConst_Vector_Float_MRVoxelId
 
class  _InOptConst_Vector_Int_MRFaceId
 
class  _InOptConst_Vector_Int_MRUndirectedEdgeId
 
class  _InOptConst_Vector_Int_MRVertId
 
class  _InOptConst_Vector_MRAABBTreeNodeMRAABBTreeTraitsMRFaceTagMRBox3f_MRNodeId
 
class  _InOptConst_Vector_MRAABBTreeNodeMRAABBTreeTraitsMRUndirectedEdgeTagMRBox2f_MRNodeId
 
class  _InOptConst_Vector_MRAABBTreeNodeMRAABBTreeTraitsMRUndirectedEdgeTagMRBox3f_MRNodeId
 
class  _InOptConst_Vector_MRAABBTreeNodeMRObjTreeTraits_MRNodeId
 
class  _InOptConst_Vector_MRAABBTreePointsNode_MRNodeId
 
class  _InOptConst_Vector_MRAffineXf3f_MRObjId
 
class  _InOptConst_Vector_MREdgeId_MRFaceId
 
class  _InOptConst_Vector_MREdgeId_MRVertId
 
class  _InOptConst_Vector_MRFaceBitSet_MRGraphVertId
 
class  _InOptConst_Vector_MRFanRecord_MRVertId
 
class  _InOptConst_Vector_MRGraphEdgeId_MRGraphEdgeId
 
class  _InOptConst_Vector_MRGraphEndVertices_MRGraphEdgeId
 
class  _InOptConst_Vector_MRGraphVertId_MRGraphVertId
 
class  _InOptConst_Vector_MRICPGroupPairs_MRIdMRICPElemtTag
 
class  _InOptConst_Vector_MRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  _InOptConst_Vector_MRMeshBuilderVertSpan_MRFaceId
 
class  _InOptConst_Vector_MRMeshOrPointsXf_MRObjId
 
class  _InOptConst_Vector_MRMeshTexture_MRTextureId
 
class  _InOptConst_Vector_MRModelPointsData_MRObjId
 
class  _InOptConst_Vector_MRNodeId_MRNodeId
 
class  _InOptConst_Vector_MRPixelId_MRPixelId
 
class  _InOptConst_Vector_MRQuadraticForm2f_MRVertId
 
class  _InOptConst_Vector_MRQuadraticForm3f_MRVertId
 
class  _InOptConst_Vector_MRRegionId_MRRegionId
 
class  _InOptConst_Vector_MRTextureId_MRTextureId
 
class  _InOptConst_Vector_MRUint64T_MRGraphVertId
 
class  _InOptConst_Vector_MRVectorMRICPGroupPairsMRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  _InOptConst_Vector_MRVectorMRVectorMRICPGroupPairsMRIdMRICPElemtTagMRIdMRICPElemtTag_Int
 
class  _InOptConst_Vector_MRVectorStdVectorMRObjVertIdMRIdMRICPElemtTag_Int
 
class  _InOptConst_Vector_MRVertBitSet_MRObjId
 
class  _InOptConst_Vector_MRVertId_MREdgeId
 
class  _InOptConst_Vector_MRVoxelId_MRFaceId
 
class  _InOptConst_Vector_MRVoxelId_MRVoxelId
 
class  _InOptConst_Vector_MRWatershedGraphBasinInfo_MRGraphVertId
 
class  _InOptConst_Vector_MRWatershedGraphBdInfo_MRGraphEdgeId
 
class  _InOptConst_Vector_StdArrayMRVector3f3_MRFaceId
 
class  _InOptConst_Vector_StdFilesystemPath_MRTextureId
 
class  _InOptConst_Vector_StdVectorMREdgePoint_MRVertId
 
class  _InOptConst_Vector_StdVectorMRGraphEdgeId_MRGraphVertId
 
class  _InOptConst_Vector_StdVectorMRObjVertId_MRIdMRICPElemtTag
 
class  _InOptConst_Vector_UnsignedShort_MRVoxelId
 
class  _InOptConst_Vert2RegionMap
 
class  _InOptConst_VertBitSet
 
class  _InOptConst_VertBMap
 
class  _InOptConst_VertColorMapAggregator
 
class  _InOptConst_VertColors
 
class  _InOptConst_VertCoords
 
class  _InOptConst_VertCoords2
 
class  _InOptConst_VertCoordsDiff
 
class  _InOptConst_VertDistance
 
class  _InOptConst_VertId
 
class  _InOptConst_VertMap
 
class  _InOptConst_VertPathInfo
 
class  _InOptConst_VertRenumber
 
class  _InOptConst_VertScalars
 
class  _InOptConst_ViewportId
 
class  _InOptConst_ViewportIterator
 
class  _InOptConst_ViewportMask
 
class  _InOptConst_ViewportProperty_MRAffineXf3f
 
class  _InOptConst_ViewportProperty_MRColor
 
class  _InOptConst_ViewportProperty_MRMatrix3f
 
class  _InOptConst_ViewportProperty_MRVector4UnsignedChar
 
class  _InOptConst_ViewportProperty_MRXfBasedCacheMRBox3f
 
class  _InOptConst_ViewportProperty_UnsignedChar
 
class  _InOptConst_VisualObject
 
class  _InOptConst_VolumeIndexer
 
class  _InOptConst_VolumeSegmentationParameters
 
class  _InOptConst_VolumeSegmenter
 
class  _InOptConst_VolumeToMeshByPartsSettings
 
class  _InOptConst_VoxelBitSet
 
class  _InOptConst_VoxelId
 
class  _InOptConst_VoxelLocation
 
class  _InOptConst_VoxelMetricParameters
 
class  _InOptConst_VoxelsVolume_MRFloatGrid
 
class  _InOptConst_VoxelsVolumeAccessor_MRFunctionVolume
 
class  _InOptConst_VoxelsVolumeAccessor_MRSimpleVolume
 
class  _InOptConst_VoxelsVolumeAccessor_MRSimpleVolumeMinMax
 
class  _InOptConst_VoxelsVolumeAccessor_MRVdbVolume
 
class  _InOptConst_VoxelsVolumeInterpolatedAccessor_MRVoxelsVolumeAccessorMRFunctionVolume
 
class  _InOptConst_VoxelsVolumeInterpolatedAccessor_MRVoxelsVolumeAccessorMRSimpleVolumeMinMax
 
class  _InOptConst_VoxelsVolumeInterpolatedAccessor_MRVoxelsVolumeAccessorMRVdbVolume
 
class  _InOptConst_VoxelTraits_MRFloatGrid
 
class  _InOptConst_VoxelTraits_MRVectorFloatMRVoxelId
 
class  _InOptConst_VoxelTraits_MRVectorUnsignedShortMRVoxelId
 
class  _InOptConst_VoxelTraits_MRVoxelBitSet
 
class  _InOptConst_VoxelTraits_StdFunctionFloatFuncFromConstMRVector3iRef
 
class  _InOptConst_VoxelTraits_StdFunctionUnsignedCharFuncFromConstMRVector3iRef
 
class  _InOptConst_WatershedGraph
 
class  _InOptConst_WeightedVertex
 
class  _InOptConst_WholeEdgeBMap
 
class  _InOptConst_WholeEdgeMap
 
class  _InOptConst_WriteRawTiffParams
 
class  _InOptConst_XfBasedCache_MRBox3f
 
class  _InOptConst_ZCompensateParams
 
class  _InOptConst_ZeroOnMove_MRUint64T
 
class  _InOptMut_AABBTree
 
class  _InOptMut_AABBTreeBase_MRAABBTreeTraitsMRFaceTagMRBox3f
 
class  _InOptMut_AABBTreeBase_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox2f
 
class  _InOptMut_AABBTreeBase_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox3f
 
class  _InOptMut_AABBTreeBase_MRObjTreeTraits
 
class  _InOptMut_AABBTreeNode_MRAABBTreeTraitsMRFaceTagMRBox3f
 
class  _InOptMut_AABBTreeNode_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox2f
 
class  _InOptMut_AABBTreeNode_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox3f
 
class  _InOptMut_AABBTreeNode_MRObjTreeTraits
 
class  _InOptMut_AABBTreeObjects
 
class  _InOptMut_AABBTreePoints
 
class  _InOptMut_AABBTreePolyline2
 
class  _InOptMut_AABBTreePolyline3
 
class  _InOptMut_AABBTreeTraits_MRFaceTag_MRBox3f
 
class  _InOptMut_AABBTreeTraits_MRUndirectedEdgeTag_MRBox2f
 
class  _InOptMut_AABBTreeTraits_MRUndirectedEdgeTag_MRBox3f
 
class  _InOptMut_AddVisualProperties_MRFeatureObject_MRDimensionsVisualizePropertyTypeDiameter
 
class  _InOptMut_AddVisualProperties_MRFeatureObject_MRDimensionsVisualizePropertyTypeDiameter_MRDimensionsVisualizePropertyTypeAngle_MRDimensionsVisualizePropertyTypeLength
 
class  _InOptMut_AddVisualProperties_MRFeatureObject_MRDimensionsVisualizePropertyTypeDiameter_MRDimensionsVisualizePropertyTypeLength
 
class  _InOptMut_AffineXf2d
 
class  _InOptMut_AffineXf2f
 
class  _InOptMut_AffineXf3d
 
class  _InOptMut_AffineXf3f
 
class  _InOptMut_AllLocalTriangulations
 
class  _InOptMut_AngleMeasurementObject
 
class  _InOptMut_AnyVisualizeMaskEnum
 
class  _InOptMut_ArcInterpolationParams
 
class  _InOptMut_Ball1d
 
class  _InOptMut_Ball1f
 
class  _InOptMut_Ball2d
 
class  _InOptMut_Ball2f
 
class  _InOptMut_Ball3d
 
class  _InOptMut_Ball3f
 
class  _InOptMut_BaseRenderParams
 
class  _InOptMut_BaseShellParameters
 
class  _InOptMut_BaseTiffParameters
 
class  _InOptMut_BasicUiRenderTask
 
class  _InOptMut_BasinVolumeCalculator
 
class  _InOptMut_BendContoursAlongCurveParams
 
class  _InOptMut_BendTextAlongCurveParams
 
class  _InOptMut_BestFitParabolad
 
class  _InOptMut_BestFitParabolaf
 
class  _InOptMut_BitSet
 
class  _InOptMut_BMap_MRFaceId_MRUint64T
 
class  _InOptMut_BMap_MRGraphEdgeId_MRGraphEdgeId
 
class  _InOptMut_BMap_MRGraphVertId_MRGraphVertId
 
class  _InOptMut_BMap_MRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  _InOptMut_BMap_MRNodeId_MRNodeId
 
class  _InOptMut_BMap_MRObjId_MRObjId
 
class  _InOptMut_BMap_MRPixelId_MRPixelId
 
class  _InOptMut_BMap_MRRegionId_MRRegionId
 
class  _InOptMut_BMap_MRTextureId_MRTextureId
 
class  _InOptMut_BMap_MRUndirectedEdgeId_MRUint64T
 
class  _InOptMut_BMap_MRVertId_MRUint64T
 
class  _InOptMut_BMap_MRVoxelId_MRVoxelId
 
class  _InOptMut_BooleanInternalParameters
 
class  _InOptMut_BooleanParameters
 
class  _InOptMut_BooleanPreCutResult
 
class  _InOptMut_BooleanResult
 
class  _InOptMut_BooleanResultMapper
 
class  _InOptMut_BooleanResultPoints
 
class  _InOptMut_Box1d
 
class  _InOptMut_Box1f
 
class  _InOptMut_Box1i
 
class  _InOptMut_Box1i64
 
class  _InOptMut_Box2d
 
class  _InOptMut_Box2f
 
class  _InOptMut_Box2i
 
class  _InOptMut_Box2i64
 
class  _InOptMut_Box3d
 
class  _InOptMut_Box3f
 
class  _InOptMut_Box3i
 
class  _InOptMut_Box3i64
 
class  _InOptMut_Box_UnsignedShort
 
class  _InOptMut_Buffer_Char
 
class  _InOptMut_Buffer_MREdgeId_MREdgeId
 
class  _InOptMut_Buffer_MREdgeId_MRUndirectedEdgeId
 
class  _InOptMut_Buffer_MRFaceId
 
class  _InOptMut_Buffer_MRFaceId_MRFaceId
 
class  _InOptMut_Buffer_MRGraphEdgeId_MRGraphEdgeId
 
class  _InOptMut_Buffer_MRGraphVertId_MRGraphVertId
 
class  _InOptMut_Buffer_MRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  _InOptMut_Buffer_MRNodeId_MRNodeId
 
class  _InOptMut_Buffer_MRObjId_MRObjId
 
class  _InOptMut_Buffer_MRPixelId_MRPixelId
 
class  _InOptMut_Buffer_MRRegionId_MRRegionId
 
class  _InOptMut_Buffer_MRTextureId_MRTextureId
 
class  _InOptMut_Buffer_MRUndirectedEdgeId
 
class  _InOptMut_Buffer_MRUndirectedEdgeId_MRUndirectedEdgeId
 
class  _InOptMut_Buffer_MRVertId
 
class  _InOptMut_Buffer_MRVertId_MRVertId
 
class  _InOptMut_Buffer_MRVoxelId_MRVoxelId
 
class  _InOptMut_Buffer_UnsignedChar
 
class  _InOptMut_ChangeActiveBoxAction
 
class  _InOptMut_ChangeColoringType
 
class  _InOptMut_ChangeDualMarchingCubesAction
 
class  _InOptMut_ChangeFacesColorMapAction
 
class  _InOptMut_ChangeGridAction
 
class  _InOptMut_ChangeIsoAction
 
class  _InOptMut_ChangeLabelAction
 
class  _InOptMut_ChangeLinesColorMapAction
 
class  _InOptMut_ChangeMeshAction
 
class  _InOptMut_ChangeMeshCreasesAction
 
class  _InOptMut_ChangeMeshDataAction
 
class  _InOptMut_ChangeMeshEdgeSelectionAction
 
class  _InOptMut_ChangeMeshFaceSelectionAction
 
class  _InOptMut_ChangeMeshPointsAction
 
class  _InOptMut_ChangeMeshTexturePerFaceAction
 
class  _InOptMut_ChangeMeshTopologyAction
 
class  _InOptMut_ChangeMeshUVCoordsAction
 
class  _InOptMut_ChangeNameAction
 
class  _InOptMut_ChangeObjectAction
 
class  _InOptMut_ChangeObjectColorAction
 
class  _InOptMut_ChangeObjectSelectedAction
 
class  _InOptMut_ChangeObjectVisibilityAction
 
class  _InOptMut_ChangeOneNormalInCloudAction
 
class  _InOptMut_ChangeOnePointInCloudAction
 
class  _InOptMut_ChangeOnePointInPolylineAction
 
class  _InOptMut_ChangePointCloudAction
 
class  _InOptMut_ChangePointCloudNormalsAction
 
class  _InOptMut_ChangePointCloudPointsAction
 
class  _InOptMut_ChangePointPointSelectionAction
 
class  _InOptMut_ChangePolylineAction
 
class  _InOptMut_ChangePolylinePointsAction
 
class  _InOptMut_ChangePolylineTopologyAction
 
class  _InOptMut_ChangeScaleAction
 
class  _InOptMut_ChangeSceneAction
 
class  _InOptMut_ChangeSceneObjectsOrder
 
class  _InOptMut_ChangeSurfaceAction
 
class  _InOptMut_ChangeTextureAction
 
class  _InOptMut_ChangeVisualizePropertyAction
 
class  _InOptMut_ChangeXfAction
 
class  _InOptMut_ChangVoxelSelectionAction
 
class  _InOptMut_Chunk
 
class  _InOptMut_ChunkIterator
 
class  _InOptMut_CircleObject
 
class  _InOptMut_CloseToMeshVolumeParams
 
class  _InOptMut_CloudPartMapping
 
class  _InOptMut_CmpOld
 
class  _InOptMut_CNCMachineSettings
 
class  _InOptMut_Color
 
class  _InOptMut_CombinedHistoryAction
 
class  _InOptMut_CompensateRadiusParams
 
class  _InOptMut_ComputeSteepestDescentPathSettings
 
class  _InOptMut_ComputeSweptVolumeParameters
 
class  _InOptMut_Cone3ApproximationParams
 
class  _InOptMut_Cone3d
 
class  _InOptMut_Cone3f
 
class  _InOptMut_ConeObject
 
class  _InOptMut_ConstantCuspParams
 
class  _InOptMut_ContoursDistanceMapOffset
 
class  _InOptMut_ContoursDistanceMapOptions
 
class  _InOptMut_ContoursMeshAlignParams
 
class  _InOptMut_ContourToDistanceMapParams
 
class  _InOptMut_CoordinateConverters
 
class  _InOptMut_CoordinateConverters2
 
class  _InOptMut_CubicBezierCurve2d
 
class  _InOptMut_CubicBezierCurve2f
 
class  _InOptMut_CubicBezierCurve3d
 
class  _InOptMut_CubicBezierCurve3f
 
class  _InOptMut_CurvePoint
 
class  _InOptMut_CutByProjectionSettings
 
class  _InOptMut_CutMeshParameters
 
class  _InOptMut_CutMeshResult
 
class  _InOptMut_Cylinder3d
 
class  _InOptMut_Cylinder3f
 
class  _InOptMut_CylinderObject
 
class  _InOptMut_DecimatePolylineResult
 
class  _InOptMut_DecimatePolylineSettings_MRVector2f
 
class  _InOptMut_DecimatePolylineSettings_MRVector3f
 
class  _InOptMut_DecimateResult
 
class  _InOptMut_DecimateSettings
 
class  _InOptMut_DeloneSettings
 
class  _InOptMut_DenoiseViaNormalsSettings
 
class  _InOptMut_DenseBox
 
class  _InOptMut_DentalId
 
class  _InOptMut_DetectTunnelSettings
 
class  _InOptMut_Dipole
 
class  _InOptMut_Dipoles
 
class  _InOptMut_Dirty
 
class  _InOptMut_DistanceFromWeightedPointsComputeParams
 
class  _InOptMut_DistanceFromWeightedPointsParams
 
class  _InOptMut_DistanceMap
 
class  _InOptMut_DistanceMapLoadSettings
 
class  _InOptMut_DistanceMapSaveSettings
 
class  _InOptMut_DistanceMapToWorld
 
class  _InOptMut_DistanceMeasurementObject
 
class  _InOptMut_DistanceToMeshOptions
 
class  _InOptMut_DistanceVolumeParams
 
class  _InOptMut_DividePointCloudOptionalOutput
 
class  _InOptMut_DividePolylineParameters
 
class  _InOptMut_DoubleOffsetSettings
 
class  _InOptMut_EdgeBitSet
 
class  _InOptMut_EdgeBMap
 
class  _InOptMut_EdgeColors
 
class  _InOptMut_EdgeId
 
class  _InOptMut_EdgeLengthMesh
 
class  _InOptMut_EdgeMap
 
class  _InOptMut_EdgePathsAStarBuilder
 
class  _InOptMut_EdgePathsBuilderT_MRMetricToAStarPenalty
 
class  _InOptMut_EdgePathsBuilderT_MRTrivialMetricToPenalty
 
class  _InOptMut_EdgePoint
 
class  _InOptMut_EdgePointPair
 
class  _InOptMut_Edges
 
class  _InOptMut_EdgeScalars
 
class  _InOptMut_EdgeSegment
 
class  _InOptMut_EdgeTri
 
class  _InOptMut_EmbeddedStructureParameters
 
class  _InOptMut_EndMillCutter
 
class  _InOptMut_EndMillTool
 
class  _InOptMut_EnumNeihbourFaces
 
class  _InOptMut_EnumNeihbourVertices
 
class  _InOptMut_Expected_Bool_StdString
 
class  _InOptMut_Expected_MRAffineXf3f_StdString
 
class  _InOptMut_Expected_MRBooleanResultPoints_StdString
 
class  _InOptMut_Expected_MRDistanceMap_StdString
 
class  _InOptMut_Expected_MRFaceBitSet_StdString
 
class  _InOptMut_Expected_MRFloatGrid_StdString
 
class  _InOptMut_Expected_MRFunctionVolume_StdString
 
class  _InOptMut_Expected_MRImage_StdString
 
class  _InOptMut_Expected_MRLoadedObjects_StdString
 
class  _InOptMut_Expected_MRLoadedObjectT_StdString
 
class  _InOptMut_Expected_MRLoadedObjectTMRObjectMesh_StdString
 
class  _InOptMut_Expected_MRMesh_StdString
 
class  _InOptMut_Expected_MRObjectDistanceMap_StdString
 
class  _InOptMut_Expected_MRObjectGcode_StdString
 
class  _InOptMut_Expected_MRObjectLines_StdString
 
class  _InOptMut_Expected_MRObjectPoints_StdString
 
class  _InOptMut_Expected_MROneMeshContour_StdString
 
class  _InOptMut_Expected_MRPackMapping_StdString
 
class  _InOptMut_Expected_MRPointCloud_StdString
 
class  _InOptMut_Expected_MRPolyline3_StdString
 
class  _InOptMut_Expected_MRSimpleBinaryVolume_StdString
 
class  _InOptMut_Expected_MRSimpleVolume_StdString
 
class  _InOptMut_Expected_MRSimpleVolumeMinMax_StdString
 
class  _InOptMut_Expected_MRSimpleVolumeMinMaxU16_StdString
 
class  _InOptMut_Expected_MRTeethMaskToDirectionVolumeConvertor_StdString
 
class  _InOptMut_Expected_MRTeethMaskToDirectionVolumeConvertorProcessResult_StdString
 
class  _InOptMut_Expected_MRTiffParameters_StdString
 
class  _InOptMut_Expected_MRToolPathResult_StdString
 
class  _InOptMut_Expected_MRTriMesh_StdString
 
class  _InOptMut_Expected_MRUndirectedEdgeBitSet_StdString
 
class  _InOptMut_Expected_MRUnionFindMRVertId_StdString
 
class  _InOptMut_Expected_MRVdbVolume_StdString
 
class  _InOptMut_Expected_MRVector3i_StdString
 
class  _InOptMut_Expected_MRVertBitSet_StdString
 
class  _InOptMut_Expected_MRVertColors_StdString
 
class  _InOptMut_Expected_MRVertCoords_StdString
 
class  _InOptMut_Expected_MRVoxelBitSet_StdString
 
class  _InOptMut_Expected_MRVoxelsLoadDicomVolume_StdString
 
class  _InOptMut_Expected_MRVoxelsLoadDicomVolumeAsVdb_StdString
 
class  _InOptMut_Expected_MRVoxelsLoadRawParameters_StdString
 
class  _InOptMut_Expected_StdArrayMRSimpleVolumeMinMax3_StdString
 
class  _InOptMut_Expected_StdFunctionMRCurvePointFuncFromFloat_StdString
 
class  _InOptMut_Expected_StdPairStdVectorMRVertBitSetInt_StdString
 
class  _InOptMut_Expected_StdSharedPtrMRMesh_StdString
 
class  _InOptMut_Expected_StdSharedPtrMRObject_StdString
 
class  _InOptMut_Expected_StdSharedPtrMRObjectVoxels_StdString
 
class  _InOptMut_Expected_StdVectorFloat_StdString
 
class  _InOptMut_Expected_StdVectorMREdgeId_StdString
 
class  _InOptMut_Expected_StdVectorMREdgePoint_MRPathError
 
class  _InOptMut_Expected_StdVectorMREdgePoint_StdString
 
class  _InOptMut_Expected_StdVectorMRFaceBitSet_StdString
 
class  _InOptMut_Expected_StdVectorMRFaceFace_StdString
 
class  _InOptMut_Expected_StdVectorMRFloatGrid_StdString
 
class  _InOptMut_Expected_StdVectorMRMesh_StdString
 
class  _InOptMut_Expected_StdVectorMRMeshLoadNamedMesh_StdString
 
class  _InOptMut_Expected_StdVectorMROneMeshContour_StdString
 
class  _InOptMut_Expected_StdVectorMRPointsLoadNamedCloud_StdString
 
class  _InOptMut_Expected_StdVectorMRVdbVolume_StdString
 
class  _InOptMut_Expected_StdVectorMRVertBitSet_StdString
 
class  _InOptMut_Expected_StdVectorStdPairMRVertIdMRVertId_StdString
 
class  _InOptMut_Expected_StdVectorStdSharedPtrMRObjectVoxels_StdString
 
class  _InOptMut_Expected_StdVectorStdString_StdString
 
class  _InOptMut_Expected_StdVectorStdVectorMREdgeId_StdString
 
class  _InOptMut_Expected_StdVectorStdVectorMRVector2f_StdString
 
class  _InOptMut_Expected_StdVectorStdVectorMRVector3f_StdString
 
class  _InOptMut_Expected_Void_StdString
 
class  _InOptMut_Face2RegionMap
 
class  _InOptMut_FaceBitSet
 
class  _InOptMut_FaceBMap
 
class  _InOptMut_FaceColorMapAggregator
 
class  _InOptMut_FaceColors
 
class  _InOptMut_FaceDistancesSettings
 
class  _InOptMut_FaceFace
 
class  _InOptMut_FaceFaceFace
 
class  _InOptMut_FaceId
 
class  _InOptMut_FaceMap
 
class  _InOptMut_FaceNormals
 
class  _InOptMut_FaceScalars
 
class  _InOptMut_FanRecord
 
class  _InOptMut_FanRecordWithCenter
 
class  _InOptMut_FastWindingNumber
 
class  _InOptMut_FeatureObject
 
class  _InOptMut_FeatureObjectProjectPointResult
 
class  _InOptMut_FeatureObjectSharedProperty
 
class  _InOptMut_FewSmallest_MRPointsProjectionResult
 
class  _InOptMut_FillHoleItem
 
class  _InOptMut_FillHoleMetric
 
class  _InOptMut_FillHoleNicelySettings
 
class  _InOptMut_FillHoleParams
 
class  _InOptMut_FillHolesWithExtraPointsParams
 
class  _InOptMut_FindDisorientationParams
 
class  _InOptMut_FindInnerShellSettings
 
class  _InOptMut_FindOutliersParams
 
class  _InOptMut_FindOverhangsSettings
 
class  _InOptMut_FindOverlappingSettings
 
class  _InOptMut_FindProjectionOnPointsSettings
 
class  _InOptMut_FixCreasesParams
 
class  _InOptMut_FixMeshDegeneraciesParams
 
class  _InOptMut_FloatGrid
 
class  _InOptMut_FlowAggregator
 
class  _InOptMut_FlowOrigin
 
class  _InOptMut_FreeFormBestFit
 
class  _InOptMut_FreeFormDeformer
 
class  _InOptMut_FunctionVolume
 
class  _InOptMut_FunctionVolumeU8
 
class  _InOptMut_GcodeProcessor
 
class  _InOptMut_GCommand
 
class  _InOptMut_GeneralOffsetParameters
 
class  _InOptMut_Graph
 
class  _InOptMut_GraphEdgeBitSet
 
class  _InOptMut_GraphEdgeId
 
class  _InOptMut_GraphVertBitSet
 
class  _InOptMut_GraphVertId
 
class  _InOptMut_GridSettings
 
class  _InOptMut_GridToMeshSettings
 
class  _InOptMut_Heap_Float_MRGraphVertId_StdGreaterFloat
 
class  _InOptMut_Histogram
 
class  _InOptMut_HistoryAction
 
class  _InOptMut_HoleFillPlan
 
class  _InOptMut_IComputeToolDistance
 
class  _InOptMut_ICP
 
class  _InOptMut_ICPGroupPair
 
class  _InOptMut_ICPGroupPairs
 
class  _InOptMut_ICPPairData
 
class  _InOptMut_ICPProperties
 
class  _InOptMut_Id_MRICPElemtTag
 
class  _InOptMut_IFastWindingNumber
 
class  _InOptMut_IFastWindingNumberByParts
 
class  _InOptMut_IICPTreeIndexer
 
class  _InOptMut_Image
 
class  _InOptMut_ImproveSamplingSettings
 
class  _InOptMut_InflateSettings
 
class  _InOptMut_InSphere
 
class  _InOptMut_InSphereSearchSettings
 
class  _InOptMut_IntersectionPrecomputes2_Double
 
class  _InOptMut_IntersectionPrecomputes2_Float
 
class  _InOptMut_IntersectionPrecomputes_Double
 
class  _InOptMut_IntersectionPrecomputes_Float
 
class  _InOptMut_InTreePathBuilder
 
class  _InOptMut_IntrinsicDeloneSettings
 
class  _InOptMut_IOFilter
 
class  _InOptMut_IPointPairs
 
class  _InOptMut_IPointsProjector
 
class  _InOptMut_IPointsToMeshProjector
 
class  _InOptMut_IRenderObject
 
class  _InOptMut_IsVisualizeMaskEnum_MRAnyVisualizeMaskEnum
 
class  _InOptMut_IsVisualizeMaskEnum_MRDimensionsVisualizePropertyType
 
class  _InOptMut_IsVisualizeMaskEnum_MRFeatureVisualizePropertyType
 
class  _InOptMut_IsVisualizeMaskEnum_MRLabelVisualizePropertyType
 
class  _InOptMut_IsVisualizeMaskEnum_MRLinesVisualizePropertyType
 
class  _InOptMut_IsVisualizeMaskEnum_MRMeshVisualizePropertyType
 
class  _InOptMut_IsVisualizeMaskEnum_MRPointMeasurementVisualizePropertyType
 
class  _InOptMut_IsVisualizeMaskEnum_MRPointsVisualizePropertyType
 
class  _InOptMut_IsVisualizeMaskEnum_MRVisualizeMaskType
 
class  _InOptMut_IteratorRange_MRChunkIterator
 
class  _InOptMut_IteratorRange_MRPolylineUndirectedEdgeIterator
 
class  _InOptMut_IteratorRange_MRRingIteratorMRNextEdgeSameLeft
 
class  _InOptMut_IteratorRange_MRRingIteratorMRNextEdgeSameOrigin
 
class  _InOptMut_IteratorRange_MRUndirectedEdgeIterator
 
class  _InOptMut_Laplacian
 
class  _InOptMut_Line2d
 
class  _InOptMut_Line2f
 
class  _InOptMut_Line3d
 
class  _InOptMut_Line3f
 
class  _InOptMut_Line3Mesh_Double
 
class  _InOptMut_Line3Mesh_Float
 
class  _InOptMut_LineInterpolationParams
 
class  _InOptMut_LineObject
 
class  _InOptMut_LineSegm2d
 
class  _InOptMut_LineSegm2f
 
class  _InOptMut_LineSegm3d
 
class  _InOptMut_LineSegm3f
 
class  _InOptMut_LinesLoadSettings
 
class  _InOptMut_LoadedObjects
 
class  _InOptMut_LoadedObjectT
 
class  _InOptMut_LoadedObjectT_MRObjectLines
 
class  _InOptMut_LoadedObjectT_MRObjectMesh
 
class  _InOptMut_LoadedObjectT_MRObjectPoints
 
class  _InOptMut_LoadedObjectT_MRObjectVoxels
 
class  _InOptMut_MakeBridgeResult
 
class  _InOptMut_MakeDegenerateBandAroundRegionParams
 
class  _InOptMut_MakeSignedByWindingNumberSettings
 
class  _InOptMut_MapOrHashMap_MREdgeId_MREdgeId
 
class  _InOptMut_MapOrHashMap_MRFaceId_MRFaceId
 
class  _InOptMut_MapOrHashMap_MRUndirectedEdgeId_MREdgeId
 
class  _InOptMut_MapOrHashMap_MRUndirectedEdgeId_MRUndirectedEdgeId
 
class  _InOptMut_MapOrHashMap_MRVertId_MRVertId
 
class  _InOptMut_MarchingCubesByParts
 
class  _InOptMut_MarchingCubesParams
 
class  _InOptMut_MarkedContour3f
 
class  _InOptMut_Matrix2b
 
class  _InOptMut_Matrix2d
 
class  _InOptMut_Matrix2f
 
class  _InOptMut_Matrix2i
 
class  _InOptMut_Matrix2i64
 
class  _InOptMut_Matrix3_UnsignedChar
 
class  _InOptMut_Matrix3b
 
class  _InOptMut_Matrix3d
 
class  _InOptMut_Matrix3f
 
class  _InOptMut_Matrix3i
 
class  _InOptMut_Matrix3i64
 
class  _InOptMut_Matrix4_UnsignedChar
 
class  _InOptMut_Matrix4b
 
class  _InOptMut_Matrix4d
 
class  _InOptMut_Matrix4f
 
class  _InOptMut_Matrix4i
 
class  _InOptMut_Matrix4i64
 
class  _InOptMut_Matrix_Float
 
class  _InOptMut_MeasurementObject
 
class  _InOptMut_MergeVolumePartSettings
 
class  _InOptMut_Mesh
 
class  _InOptMut_MeshApproxRelaxParams
 
class  _InOptMut_MeshAttributesToUpdate
 
class  _InOptMut_MeshDiff
 
class  _InOptMut_MeshEqualizeTriAreasParams
 
class  _InOptMut_MeshIntersectionResult
 
class  _InOptMut_MeshLoadSettings
 
class  _InOptMut_MeshMeshConverter
 
class  _InOptMut_MeshMeshDistanceResult
 
class  _InOptMut_MeshMeshSignedDistanceResult
 
class  _InOptMut_MeshNormals
 
class  _InOptMut_MeshOnVoxelsT_ConstMRMesh_MRFunctionVolume
 
class  _InOptMut_MeshOnVoxelsT_ConstMRMesh_MRSimpleVolumeMinMax
 
class  _InOptMut_MeshOnVoxelsT_ConstMRMesh_MRVdbVolume
 
class  _InOptMut_MeshOnVoxelsT_MRMesh_MRFunctionVolume
 
class  _InOptMut_MeshOnVoxelsT_MRMesh_MRSimpleVolumeMinMax
 
class  _InOptMut_MeshOnVoxelsT_MRMesh_MRVdbVolume
 
class  _InOptMut_MeshOrPoints
 
class  _InOptMut_MeshOrPointsObject
 
class  _InOptMut_MeshOrPointsXf
 
class  _InOptMut_MeshPart
 
class  _InOptMut_MeshPoint
 
class  _InOptMut_MeshPointAndDistance
 
class  _InOptMut_MeshProjectionParameters
 
class  _InOptMut_MeshProjectionResult
 
class  _InOptMut_MeshProjectionTransforms
 
class  _InOptMut_MeshRelaxParams
 
class  _InOptMut_MeshTexture
 
class  _InOptMut_MeshToDirectionVolumeParams
 
class  _InOptMut_MeshToDistanceMapParams
 
class  _InOptMut_MeshToDistanceVolumeParams
 
class  _InOptMut_MeshTopology
 
class  _InOptMut_MeshTopologyDiff
 
class  _InOptMut_MeshToVolumeParams
 
class  _InOptMut_MeshTriPoint
 
class  _InOptMut_MeshVertPart
 
class  _InOptMut_MeshVoxelsConverter
 
class  _InOptMut_MetricToAStarPenalty
 
class  _InOptMut_MinMaxArg_Float_MRVertId
 
class  _InOptMut_ModelBaseRenderParams
 
class  _InOptMut_ModelPointsData
 
class  _InOptMut_ModelRenderParams
 
class  _InOptMut_MovementBuildBodyParams
 
class  _InOptMut_MoveMeshToVoxelMaxDerivSettings
 
class  _InOptMut_MultiMeshIntersectionResult
 
class  _InOptMut_MultiRayMeshIntersectResult
 
class  _InOptMut_MultiwayAligningTransform
 
class  _InOptMut_MultiwayICP
 
class  _InOptMut_MultiwayICPSamplingParameters
 
class  _InOptMut_MutexOwner
 
class  _InOptMut_NewEdgesMap
 
class  _InOptMut_NextEdgeSameLeft
 
class  _InOptMut_NextEdgeSameOrigin
 
class  _InOptMut_NoCtor_Char
 
class  _InOptMut_NoCtor_MREdgeId
 
class  _InOptMut_NoCtor_MRFaceId
 
class  _InOptMut_NoCtor_MRGraphEdgeId
 
class  _InOptMut_NoCtor_MRGraphVertId
 
class  _InOptMut_NoCtor_MRIdMRICPElemtTag
 
class  _InOptMut_NoCtor_MRNodeId
 
class  _InOptMut_NoCtor_MRObjId
 
class  _InOptMut_NoCtor_MRPixelId
 
class  _InOptMut_NoCtor_MRRegionId
 
class  _InOptMut_NoCtor_MRTextureId
 
class  _InOptMut_NoCtor_MRUndirectedEdgeId
 
class  _InOptMut_NoCtor_MRVertId
 
class  _InOptMut_NoCtor_MRVoxelId
 
class  _InOptMut_NoCtor_UnsignedChar
 
class  _InOptMut_NodeBitSet
 
class  _InOptMut_NoDefInit_MREdgeId
 
class  _InOptMut_NoDefInit_MRFaceId
 
class  _InOptMut_NoDefInit_MRGraphEdgeId
 
class  _InOptMut_NoDefInit_MRGraphVertId
 
class  _InOptMut_NoDefInit_MRIdMRICPElemtTag
 
class  _InOptMut_NoDefInit_MRNodeId
 
class  _InOptMut_NoDefInit_MRObjId
 
class  _InOptMut_NoDefInit_MRPixelId
 
class  _InOptMut_NoDefInit_MRRegionId
 
class  _InOptMut_NoDefInit_MRTextureId
 
class  _InOptMut_NoDefInit_MRUndirectedEdgeId
 
class  _InOptMut_NoDefInit_MRVertId
 
class  _InOptMut_NoDefInit_MRVoxelId
 
class  _InOptMut_NodeId
 
class  _InOptMut_NodeNode
 
class  _InOptMut_NoInit
 
class  _InOptMut_NoInitNodeId
 
class  _InOptMut_NoiseSettings
 
class  _InOptMut_NormalsToPoints
 
class  _InOptMut_NumSum
 
class  _InOptMut_ObjBitSet
 
class  _InOptMut_Object
 
class  _InOptMut_ObjectChildrenHolder
 
class  _InOptMut_ObjectComparableWithReference
 
class  _InOptMut_ObjectDistanceMap
 
class  _InOptMut_ObjectFactoryBase
 
class  _InOptMut_ObjectGcode
 
class  _InOptMut_ObjectLabel
 
class  _InOptMut_ObjectLines
 
class  _InOptMut_ObjectLinesHolder
 
class  _InOptMut_ObjectMesh
 
class  _InOptMut_ObjectMeshData
 
class  _InOptMut_ObjectMeshHolder
 
class  _InOptMut_ObjectMeshMergeOptions
 
class  _InOptMut_ObjectPoints
 
class  _InOptMut_ObjectPointsHolder
 
class  _InOptMut_ObjectTagEventDispatcher
 
class  _InOptMut_ObjectVoxels
 
class  _InOptMut_ObjId
 
class  _InOptMut_ObjKindTraits_MRFeaturesObjectKindCircle
 
class  _InOptMut_ObjKindTraits_MRFeaturesObjectKindCone
 
class  _InOptMut_ObjKindTraits_MRFeaturesObjectKindCylinder
 
class  _InOptMut_ObjKindTraits_MRFeaturesObjectKindLine
 
class  _InOptMut_ObjKindTraits_MRFeaturesObjectKindPlane
 
class  _InOptMut_ObjKindTraits_MRFeaturesObjectKindPoint
 
class  _InOptMut_ObjKindTraits_MRFeaturesObjectKindSphere
 
class  _InOptMut_ObjMap
 
class  _InOptMut_ObjTreeTraits
 
class  _InOptMut_ObjVertId
 
class  _InOptMut_OffsetContourIndex
 
class  _InOptMut_OffsetContoursOrigins
 
class  _InOptMut_OffsetContoursParams
 
class  _InOptMut_OffsetContoursRestoreZParams
 
class  _InOptMut_OffsetParameters
 
class  _InOptMut_OneMeshContour
 
class  _InOptMut_OneMeshIntersection
 
class  _InOptMut_OpenVdbFloatGrid
 
class  _InOptMut_OriginAndDimensions
 
class  _InOptMut_OutlierParams
 
class  _InOptMut_OutliersDetector
 
class  _InOptMut_OutputFlows
 
class  _InOptMut_PackMapping
 
class  _InOptMut_Parabolad
 
class  _InOptMut_Parabolaf
 
class  _InOptMut_PartialChangeMeshAction
 
class  _InOptMut_PartialChangeMeshDataAction
 
class  _InOptMut_PartialChangeMeshPointsAction
 
class  _InOptMut_PartialChangeMeshTopologyAction
 
class  _InOptMut_PartMapping
 
class  _InOptMut_Pdf
 
class  _InOptMut_PdfParameters
 
class  _InOptMut_PixelBitSet
 
class  _InOptMut_PixelId
 
class  _InOptMut_Plane3d
 
class  _InOptMut_Plane3f
 
class  _InOptMut_PlaneAccumulator
 
class  _InOptMut_PlaneObject
 
class  _InOptMut_PlyLoadParams
 
class  _InOptMut_PointAccumulator
 
class  _InOptMut_PointAndDistance
 
class  _InOptMut_PointCloud
 
class  _InOptMut_PointCloudApproxRelaxParams
 
class  _InOptMut_PointCloudPart
 
class  _InOptMut_PointCloudRelaxParams
 
class  _InOptMut_PointMeasurementObject
 
class  _InOptMut_PointObject
 
class  _InOptMut_PointOnFace
 
class  _InOptMut_PointOnObject
 
class  _InOptMut_PointPair
 
class  _InOptMut_PointPairs
 
class  _InOptMut_PointsLoadSettings
 
class  _InOptMut_PointsProjectionResult
 
class  _InOptMut_PointsProjector
 
class  _InOptMut_PointsToDistanceVolumeParams
 
class  _InOptMut_PointsToMeshParameters
 
class  _InOptMut_PointsToMeshProjector
 
class  _InOptMut_PointToPlaneAligningTransform
 
class  _InOptMut_PointToPointAligningTransform
 
class  _InOptMut_Polyline2
 
class  _InOptMut_Polyline2ProjectionWithOffsetResult
 
class  _InOptMut_Polyline3
 
class  _InOptMut_PolylineIntersectionResult2
 
class  _InOptMut_PolylineMaker
 
class  _InOptMut_PolylineProjectionResult2
 
class  _InOptMut_PolylineProjectionResult3
 
class  _InOptMut_PolylineProjectionResult3Arg
 
class  _InOptMut_PolylineProjectionWithOffsetResult3
 
class  _InOptMut_PolylineSubdivideSettings
 
class  _InOptMut_PolylineToDistanceVolumeParams
 
class  _InOptMut_PolylineTopology
 
class  _InOptMut_PolylineToVolumeParams
 
class  _InOptMut_PolylineTraits_MRVector2f
 
class  _InOptMut_PolylineTraits_MRVector3f
 
class  _InOptMut_PolylineUndirectedEdgeIterator
 
class  _InOptMut_Polynomial_Double_0
 
class  _InOptMut_Polynomial_Double_1
 
class  _InOptMut_Polynomial_Double_2
 
class  _InOptMut_Polynomial_Double_3
 
class  _InOptMut_Polynomial_Double_4
 
class  _InOptMut_Polynomial_Double_5
 
class  _InOptMut_Polynomial_Double_6
 
class  _InOptMut_Polynomial_Float_0
 
class  _InOptMut_Polynomial_Float_1
 
class  _InOptMut_Polynomial_Float_2
 
class  _InOptMut_Polynomial_Float_3
 
class  _InOptMut_Polynomial_Float_4
 
class  _InOptMut_Polynomial_Float_5
 
class  _InOptMut_Polynomial_Float_6
 
class  _InOptMut_PolynomialWrapper_Double
 
class  _InOptMut_PolynomialWrapper_Float
 
class  _InOptMut_PositionedText
 
class  _InOptMut_PositionVertsSmoothlyParams
 
class  _InOptMut_PrecipitationSimulator
 
class  _InOptMut_PreciseVertCoord
 
class  _InOptMut_PreciseVertCoords
 
class  _InOptMut_PreciseVertCoords2
 
class  _InOptMut_ProjectAttributeParams
 
class  _InOptMut_QuadraticForm2d
 
class  _InOptMut_QuadraticForm2f
 
class  _InOptMut_QuadraticForm3d
 
class  _InOptMut_QuadraticForm3f
 
class  _InOptMut_QuadricApprox
 
class  _InOptMut_Quaterniond
 
class  _InOptMut_Quaternionf
 
class  _InOptMut_RadiusMeasurementObject
 
class  _InOptMut_RawTiffOutput
 
class  _InOptMut_RayOrigin_Float
 
class  _InOptMut_RebuildMeshSettings
 
class  _InOptMut_RectIndexer
 
class  _InOptMut_RefineParameters
 
class  _InOptMut_RegionBitSet
 
class  _InOptMut_RegionId
 
class  _InOptMut_RegularMapMesher
 
class  _InOptMut_RelaxParams
 
class  _InOptMut_RemeshSettings
 
class  _InOptMut_ResolveMeshDegenSettings
 
class  _InOptMut_RigidScaleXf3d
 
class  _InOptMut_RigidScaleXf3f
 
class  _InOptMut_RigidXf3d
 
class  _InOptMut_RigidXf3f
 
class  _InOptMut_RingIterator_MRNextEdgeSameLeft
 
class  _InOptMut_RingIterator_MRNextEdgeSameOrigin
 
class  _InOptMut_SaveSettings
 
class  _InOptMut_SceneColors
 
class  _InOptMut_SceneRoot
 
class  _InOptMut_SceneRootObject
 
class  _InOptMut_SceneSettings
 
class  _InOptMut_SearchPathSettings
 
class  _InOptMut_SegmentSegmentIntersectResult
 
class  _InOptMut_SegmPointd
 
class  _InOptMut_SegmPointf
 
class  _InOptMut_SeparationPointStorage
 
class  _InOptMut_SetNew
 
class  _InOptMut_SharpenMarchingCubesMeshSettings
 
class  _InOptMut_SharpOffsetParameters
 
class  _InOptMut_ShellVertexInfo
 
class  _InOptMut_SignedDistanceToMeshOptions
 
class  _InOptMut_SignedDistanceToMeshResult
 
class  _InOptMut_SimpleBinaryVolume
 
class  _InOptMut_SimpleVolume
 
class  _InOptMut_SimpleVolumeMinMax
 
class  _InOptMut_SimpleVolumeMinMaxU16
 
class  _InOptMut_SimpleVolumeU16
 
class  _InOptMut_SkyPatch
 
class  _InOptMut_SliceInfo
 
class  _InOptMut_SliceInfoBase
 
class  _InOptMut_SomeLocalTriangulations
 
class  _InOptMut_SortIntersectionsData
 
class  _InOptMut_SpacingSettings
 
class  _InOptMut_Sphere2d
 
class  _InOptMut_Sphere2f
 
class  _InOptMut_Sphere3d
 
class  _InOptMut_Sphere3f
 
class  _InOptMut_SphereObject
 
class  _InOptMut_SphereParams
 
class  _InOptMut_SplineSettings
 
class  _InOptMut_Src2TgtMaps
 
class  _InOptMut_StitchHolesParams
 
class  _InOptMut_SubdivideSettings
 
class  _InOptMut_SurfaceDistanceBuilder
 
class  _InOptMut_SymbolMeshParams
 
class  _InOptMut_SymMatrix2b
 
class  _InOptMut_SymMatrix2d
 
class  _InOptMut_SymMatrix2f
 
class  _InOptMut_SymMatrix2i
 
class  _InOptMut_SymMatrix2i64
 
class  _InOptMut_SymMatrix3_UnsignedChar
 
class  _InOptMut_SymMatrix3b
 
class  _InOptMut_SymMatrix3d
 
class  _InOptMut_SymMatrix3f
 
class  _InOptMut_SymMatrix3i
 
class  _InOptMut_SymMatrix3i64
 
class  _InOptMut_SymMatrix4_UnsignedChar
 
class  _InOptMut_SymMatrix4b
 
class  _InOptMut_SymMatrix4d
 
class  _InOptMut_SymMatrix4f
 
class  _InOptMut_SymMatrix4i
 
class  _InOptMut_SymMatrix4i64
 
class  _InOptMut_SystemMemory
 
class  _InOptMut_SystemPath
 
class  _InOptMut_TeethMaskToDirectionVolumeConvertor
 
class  _InOptMut_TerminalVertex
 
class  _InOptMut_TextMeshAlignParams
 
class  _InOptMut_TextureBitSet
 
class  _InOptMut_TextureId
 
class  _InOptMut_TexturePerFace
 
class  _InOptMut_Tgt2SrcMaps
 
class  _InOptMut_ThickenParams
 
class  _InOptMut_TiffParameters
 
class  _InOptMut_ToolPathParams
 
class  _InOptMut_ToolPathResult
 
class  _InOptMut_TransformedMesh
 
class  _InOptMut_TransformVdbVolumeResult
 
class  _InOptMut_TransparencyMode
 
class  _InOptMut_TriangleSegmentIntersectResult
 
class  _InOptMut_Triangulation
 
class  _InOptMut_TriangulationParameters
 
class  _InOptMut_TriCornerUVCoords
 
class  _InOptMut_TriIntersectResult
 
class  _InOptMut_TriMesh
 
class  _InOptMut_TrimOptionalOutput
 
class  _InOptMut_TrimWithPlaneParams
 
class  _InOptMut_TriPointd
 
class  _InOptMut_TriPointf
 
class  _InOptMut_TrivialMetricToPenalty
 
class  _InOptMut_TypedBitSet_MRIdMRICPElemtTag
 
class  _InOptMut_UiRenderManager
 
class  _InOptMut_UiRenderParams
 
class  _InOptMut_UndirectedEdge2RegionMap
 
class  _InOptMut_UndirectedEdgeBitSet
 
class  _InOptMut_UndirectedEdgeBMap
 
class  _InOptMut_UndirectedEdgeColors
 
class  _InOptMut_UndirectedEdgeId
 
class  _InOptMut_UndirectedEdgeIterator
 
class  _InOptMut_UndirectedEdgeMap
 
class  _InOptMut_UndirectedEdgeScalars
 
class  _InOptMut_UndirectedEdgeUndirectedEdge
 
class  _InOptMut_UndirEdgeColorMapAggregator
 
class  _InOptMut_UniformSamplingSettings
 
class  _InOptMut_UnionFind_MRFaceId
 
class  _InOptMut_UnionFind_MRUndirectedEdgeId
 
class  _InOptMut_UnionFind_MRVertId
 
class  _InOptMut_UniqueTemporaryFolder
 
class  _InOptMut_UniqueThreadSafeOwner_MRAABBTree
 
class  _InOptMut_UniqueThreadSafeOwner_MRAABBTreePoints
 
class  _InOptMut_UniteManyMeshesParams
 
class  _InOptMut_UnitInfo
 
class  _InOptMut_UnorientedTriangle
 
class  _InOptMut_VarEdgeTri
 
class  _InOptMut_VdbVolume
 
class  _InOptMut_Vector2b
 
class  _InOptMut_Vector2d
 
class  _InOptMut_Vector2f
 
class  _InOptMut_Vector2i
 
class  _InOptMut_Vector2i64
 
class  _InOptMut_Vector3_UnsignedChar
 
class  _InOptMut_Vector3b
 
class  _InOptMut_Vector3d
 
class  _InOptMut_Vector3f
 
class  _InOptMut_Vector3i
 
class  _InOptMut_Vector3i64
 
class  _InOptMut_Vector4_UnsignedChar
 
class  _InOptMut_Vector4b
 
class  _InOptMut_Vector4d
 
class  _InOptMut_Vector4f
 
class  _InOptMut_Vector4i
 
class  _InOptMut_Vector4i64
 
class  _InOptMut_Vector_Char_MRVertId
 
class  _InOptMut_Vector_Double_MRRegionId
 
class  _InOptMut_Vector_Float_MRVoxelId
 
class  _InOptMut_Vector_Int_MRFaceId
 
class  _InOptMut_Vector_Int_MRUndirectedEdgeId
 
class  _InOptMut_Vector_Int_MRVertId
 
class  _InOptMut_Vector_MRAABBTreeNodeMRAABBTreeTraitsMRFaceTagMRBox3f_MRNodeId
 
class  _InOptMut_Vector_MRAABBTreeNodeMRAABBTreeTraitsMRUndirectedEdgeTagMRBox2f_MRNodeId
 
class  _InOptMut_Vector_MRAABBTreeNodeMRAABBTreeTraitsMRUndirectedEdgeTagMRBox3f_MRNodeId
 
class  _InOptMut_Vector_MRAABBTreeNodeMRObjTreeTraits_MRNodeId
 
class  _InOptMut_Vector_MRAABBTreePointsNode_MRNodeId
 
class  _InOptMut_Vector_MRAffineXf3f_MRObjId
 
class  _InOptMut_Vector_MREdgeId_MRFaceId
 
class  _InOptMut_Vector_MREdgeId_MRVertId
 
class  _InOptMut_Vector_MRFaceBitSet_MRGraphVertId
 
class  _InOptMut_Vector_MRFanRecord_MRVertId
 
class  _InOptMut_Vector_MRGraphEdgeId_MRGraphEdgeId
 
class  _InOptMut_Vector_MRGraphEndVertices_MRGraphEdgeId
 
class  _InOptMut_Vector_MRGraphVertId_MRGraphVertId
 
class  _InOptMut_Vector_MRICPGroupPairs_MRIdMRICPElemtTag
 
class  _InOptMut_Vector_MRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  _InOptMut_Vector_MRMeshBuilderVertSpan_MRFaceId
 
class  _InOptMut_Vector_MRMeshOrPointsXf_MRObjId
 
class  _InOptMut_Vector_MRMeshTexture_MRTextureId
 
class  _InOptMut_Vector_MRModelPointsData_MRObjId
 
class  _InOptMut_Vector_MRNodeId_MRNodeId
 
class  _InOptMut_Vector_MRPixelId_MRPixelId
 
class  _InOptMut_Vector_MRQuadraticForm2f_MRVertId
 
class  _InOptMut_Vector_MRQuadraticForm3f_MRVertId
 
class  _InOptMut_Vector_MRRegionId_MRRegionId
 
class  _InOptMut_Vector_MRTextureId_MRTextureId
 
class  _InOptMut_Vector_MRUint64T_MRGraphVertId
 
class  _InOptMut_Vector_MRVectorMRICPGroupPairsMRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  _InOptMut_Vector_MRVectorMRVectorMRICPGroupPairsMRIdMRICPElemtTagMRIdMRICPElemtTag_Int
 
class  _InOptMut_Vector_MRVectorStdVectorMRObjVertIdMRIdMRICPElemtTag_Int
 
class  _InOptMut_Vector_MRVertBitSet_MRObjId
 
class  _InOptMut_Vector_MRVertId_MREdgeId
 
class  _InOptMut_Vector_MRVoxelId_MRFaceId
 
class  _InOptMut_Vector_MRVoxelId_MRVoxelId
 
class  _InOptMut_Vector_MRWatershedGraphBasinInfo_MRGraphVertId
 
class  _InOptMut_Vector_MRWatershedGraphBdInfo_MRGraphEdgeId
 
class  _InOptMut_Vector_StdArrayMRVector3f3_MRFaceId
 
class  _InOptMut_Vector_StdFilesystemPath_MRTextureId
 
class  _InOptMut_Vector_StdVectorMREdgePoint_MRVertId
 
class  _InOptMut_Vector_StdVectorMRGraphEdgeId_MRGraphVertId
 
class  _InOptMut_Vector_StdVectorMRObjVertId_MRIdMRICPElemtTag
 
class  _InOptMut_Vector_UnsignedShort_MRVoxelId
 
class  _InOptMut_Vert2RegionMap
 
class  _InOptMut_VertBitSet
 
class  _InOptMut_VertBMap
 
class  _InOptMut_VertColorMapAggregator
 
class  _InOptMut_VertColors
 
class  _InOptMut_VertCoords
 
class  _InOptMut_VertCoords2
 
class  _InOptMut_VertCoordsDiff
 
class  _InOptMut_VertDistance
 
class  _InOptMut_VertId
 
class  _InOptMut_VertMap
 
class  _InOptMut_VertPathInfo
 
class  _InOptMut_VertRenumber
 
class  _InOptMut_VertScalars
 
class  _InOptMut_ViewportId
 
class  _InOptMut_ViewportIterator
 
class  _InOptMut_ViewportMask
 
class  _InOptMut_ViewportProperty_MRAffineXf3f
 
class  _InOptMut_ViewportProperty_MRColor
 
class  _InOptMut_ViewportProperty_MRMatrix3f
 
class  _InOptMut_ViewportProperty_MRVector4UnsignedChar
 
class  _InOptMut_ViewportProperty_MRXfBasedCacheMRBox3f
 
class  _InOptMut_ViewportProperty_UnsignedChar
 
class  _InOptMut_VisualObject
 
class  _InOptMut_VolumeIndexer
 
class  _InOptMut_VolumeSegmentationParameters
 
class  _InOptMut_VolumeSegmenter
 
class  _InOptMut_VolumeToMeshByPartsSettings
 
class  _InOptMut_VoxelBitSet
 
class  _InOptMut_VoxelId
 
class  _InOptMut_VoxelLocation
 
class  _InOptMut_VoxelMetricParameters
 
class  _InOptMut_VoxelsVolume_MRFloatGrid
 
class  _InOptMut_VoxelsVolumeAccessor_MRFunctionVolume
 
class  _InOptMut_VoxelsVolumeAccessor_MRSimpleVolume
 
class  _InOptMut_VoxelsVolumeAccessor_MRSimpleVolumeMinMax
 
class  _InOptMut_VoxelsVolumeAccessor_MRVdbVolume
 
class  _InOptMut_VoxelsVolumeInterpolatedAccessor_MRVoxelsVolumeAccessorMRFunctionVolume
 
class  _InOptMut_VoxelsVolumeInterpolatedAccessor_MRVoxelsVolumeAccessorMRSimpleVolumeMinMax
 
class  _InOptMut_VoxelsVolumeInterpolatedAccessor_MRVoxelsVolumeAccessorMRVdbVolume
 
class  _InOptMut_VoxelTraits_MRFloatGrid
 
class  _InOptMut_VoxelTraits_MRVectorFloatMRVoxelId
 
class  _InOptMut_VoxelTraits_MRVectorUnsignedShortMRVoxelId
 
class  _InOptMut_VoxelTraits_MRVoxelBitSet
 
class  _InOptMut_VoxelTraits_StdFunctionFloatFuncFromConstMRVector3iRef
 
class  _InOptMut_VoxelTraits_StdFunctionUnsignedCharFuncFromConstMRVector3iRef
 
class  _InOptMut_WatershedGraph
 
class  _InOptMut_WeightedVertex
 
class  _InOptMut_WholeEdgeBMap
 
class  _InOptMut_WholeEdgeMap
 
class  _InOptMut_WriteRawTiffParams
 
class  _InOptMut_XfBasedCache_MRBox3f
 
class  _InOptMut_ZCompensateParams
 
class  _InOptMut_ZeroOnMove_MRUint64T
 
class  AABBTree
 
class  AABBTreeBase
 base class for most AABB-trees (except for AABBTreePoints) More...
 
class  AABBTreeBase_MRAABBTreeTraitsMRFaceTagMRBox3f
 
class  AABBTreeBase_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox2f
 
class  AABBTreeBase_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox3f
 
class  AABBTreeBase_MRObjTreeTraits
 
struct  AABBTreeNode
 
class  AABBTreeNode_MRAABBTreeTraitsMRFaceTagMRBox3f
 
class  AABBTreeNode_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox2f
 
class  AABBTreeNode_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox3f
 
class  AABBTreeNode_MRObjTreeTraits
 
class  AABBTreeObjects
 
class  AABBTreePoints
 bounding volume hierarchy for point cloud structure
 
class  AABBTreePolyline
 bounding volume hierarchy for line segments More...
 
class  AABBTreePolyline2
 
class  AABBTreePolyline3
 
struct  AABBTreeTraits
 
class  AABBTreeTraits_MRFaceTag_MRBox3f
 
class  AABBTreeTraits_MRUndirectedEdgeTag_MRBox2f
 
class  AABBTreeTraits_MRUndirectedEdgeTag_MRBox3f
 
class  AddCustomThemePlugin
 
class  AddVisualProperties
 
class  AddVisualProperties_MRFeatureObject_MRDimensionsVisualizePropertyTypeDiameter
 
class  AddVisualProperties_MRFeatureObject_MRDimensionsVisualizePropertyTypeDiameter_MRDimensionsVisualizePropertyTypeAngle_MRDimensionsVisualizePropertyTypeLength
 
class  AddVisualProperties_MRFeatureObject_MRDimensionsVisualizePropertyTypeDiameter_MRDimensionsVisualizePropertyTypeLength
 
struct  AffineXf
 
struct  AffineXf2d
 
struct  AffineXf2f
 
struct  AffineXf3d
 
struct  AffineXf3f
 
class  AllLocalTriangulations
 triangulations for all points, with easy access by VertId
 
class  AlphaSortGL
 
class  AncillaryImGuiLabel
 Helper class that draws ImGui label. More...
 
struct  AncillaryLabel
 Helper class to manage ancillary labels used by plugins. More...
 
struct  AncillaryLines
 Helper class to manage ancillary visual lines used by plugins. More...
 
struct  AncillaryMesh
 Helper class to manage ancillary visual mesh used by plugins. More...
 
struct  AncillaryPlane
 small struct to simplify creating and clearing ancillary plane object in tools More...
 
struct  AncillaryPoints
 Helper class to manage ancillary visual points used by plugins. More...
 
class  AngleMeasurementObject
 
class  AnyVisualizeMaskEnum
 
class  ArcInterpolationParams
 
struct  ArrayAffineXf3d4
 
struct  ArrayAffineXf3f4
 
struct  ArrayDouble4
 
struct  ArrayFloat4
 
struct  ArrayInt4
 
struct  ArrayVector2d4
 
struct  ArrayVector2f3
 
struct  ArrayVector2f4
 
struct  ArrayVector3d4
 
struct  ArrayVector3f3
 
struct  ArrayVector3f4
 
struct  ArrayVertId2
 
struct  ArrayVertId3
 
class  AsyncRequest
 
class  AsyncTimer
 
struct  Ball
 a ball = points surrounded by a sphere in arbitrary space with vector type V More...
 
class  Ball1d
 
class  Ball1f
 
class  Ball2d
 
class  Ball2f
 
class  Ball3d
 
class  Ball3f
 
struct  BaseFitParams
 
class  BaseRenderParams
 Common rendering parameters for meshes and UI.
 
class  BaseShellParameters
 
class  BaseTiffParameters
 
class  BasicClickableRectUiRenderTask
 
class  BasicUiRenderTask
 IRenderObject::renderUi() can emit zero or more or more of those tasks. They are sorted by depth every frame.
 
class  BasinVolumeCalculator
 
class  BendContoursAlongCurveParams
 Parameters for aligning 2d contours along given curve.
 
class  BendTextAlongCurveParams
 
class  BestFitParabola
 accumulates a number of (x,y) points to find the best-least-squares parabola approximating them More...
 
class  BestFitParabolad
 
class  BestFitParabolaf
 
class  BestFitPolynomial
 
class  BinaryOperations
 
struct  BindVertexAttribArraySettings
 
class  BitSet
 
struct  BMap
 flat map: I -> T More...
 
class  BMap_MRFaceId_MRUint64T
 
class  BMap_MRGraphEdgeId_MRGraphEdgeId
 
class  BMap_MRGraphVertId_MRGraphVertId
 
class  BMap_MRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  BMap_MRNodeId_MRNodeId
 
class  BMap_MRObjId_MRObjId
 
class  BMap_MRPixelId_MRPixelId
 
class  BMap_MRRegionId_MRRegionId
 
class  BMap_MRTextureId_MRTextureId
 
class  BMap_MRUndirectedEdgeId_MRUint64T
 
class  BMap_MRVertId_MRUint64T
 
class  BMap_MRVoxelId_MRVoxelId
 
class  BooleanInternalParameters
 Parameters will be useful if specified.
 
class  BooleanParameters
 
class  BooleanPreCutResult
 
struct  BooleanResult
 Structure contain boolean result. More...
 
struct  BooleanResultMapper
 Structure to map old mesh BitSets to new. More...
 
class  BooleanResultPoints
 vertices and points representing mesh intersection result
 
class  BoundarySelectionWidget
 
struct  Box
 Box given by its min- and max- corners. More...
 
struct  Box1d
 
struct  Box1f
 
struct  Box1i
 
struct  Box1i64
 
struct  Box2d
 
struct  Box2f
 
struct  Box2i
 
struct  Box2i64
 
struct  Box3d
 
struct  Box3f
 
struct  Box3i
 
struct  Box3i64
 
class  Box_AffineXf2d
 
class  Box_AffineXf2f
 
class  Box_AffineXf3d
 
class  Box_AffineXf3f
 
class  Box_Box1d
 
class  Box_Box1f
 
class  Box_Box1i
 
class  Box_Box1i64
 
class  Box_Box2d
 
class  Box_Box2f
 
class  Box_Box2i
 
class  Box_Box2i64
 
class  Box_Box3d
 
class  Box_Box3f
 
class  Box_Box3i
 
class  Box_Box3i64
 
class  Box_Color
 
class  Box_EdgeId
 
class  Box_FaceId
 
class  Box_GraphEdgeId
 
class  Box_GraphVertId
 
class  Box_Matrix2b
 
class  Box_Matrix2d
 
class  Box_Matrix2f
 
class  Box_Matrix2i
 
class  Box_Matrix2i64
 
class  Box_Matrix3b
 
class  Box_Matrix3d
 
class  Box_Matrix3f
 
class  Box_Matrix3i
 
class  Box_Matrix3i64
 
class  Box_Matrix4b
 
class  Box_Matrix4d
 
class  Box_Matrix4f
 
class  Box_Matrix4i
 
class  Box_Matrix4i64
 
class  Box_NodeId
 
class  Box_ObjId
 
class  Box_ObjVertId
 
class  Box_PixelId
 
class  Box_RegionId
 
class  Box_TextureId
 
class  Box_UndirectedEdgeId
 
class  Box_UnsignedShort
 
class  Box_Vector2b
 
class  Box_Vector2d
 
class  Box_Vector2f
 
class  Box_Vector2i
 
class  Box_Vector2i64
 
class  Box_Vector3b
 
class  Box_Vector3d
 
class  Box_Vector3f
 
class  Box_Vector3i
 
class  Box_Vector3i64
 
class  Box_Vector4b
 
class  Box_Vector4d
 
class  Box_Vector4f
 
class  Box_Vector4i
 
class  Box_Vector4i64
 
class  Box_VertId
 
class  Box_ViewportId
 
class  Box_VoxelId
 
struct  BoxedLeaf
 
class  Buffer
 std::vector<V>-like container that is 1) resized without initialization of its elements, 2) much simplified: no push_back and many other methods More...
 
class  Buffer_Char
 
class  Buffer_MREdgeId_MREdgeId
 
class  Buffer_MREdgeId_MRUndirectedEdgeId
 
class  Buffer_MRFaceId
 
class  Buffer_MRFaceId_MRFaceId
 
class  Buffer_MRGraphEdgeId_MRGraphEdgeId
 
class  Buffer_MRGraphVertId_MRGraphVertId
 
class  Buffer_MRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  Buffer_MRNodeId_MRNodeId
 
class  Buffer_MRObjId_MRObjId
 
class  Buffer_MRPixelId_MRPixelId
 
class  Buffer_MRRegionId_MRRegionId
 
class  Buffer_MRTextureId_MRTextureId
 
class  Buffer_MRUndirectedEdgeId
 
class  Buffer_MRUndirectedEdgeId_MRUndirectedEdgeId
 
class  Buffer_MRVertId
 
class  Buffer_MRVertId_MRVertId
 
class  Buffer_MRVoxelId_MRVoxelId
 
class  Buffer_UnsignedChar
 
class  CameraOrientation
 
class  CaptureScreenshotMenuItem
 
class  CaptureScreenshotToClipBoardMenuItem
 
class  CaptureUIScreenshotMenuItem
 
class  ChangeActiveBoxAction
 
class  ChangeBoundarySelectionHistoryAction
 
class  ChangeColoringType
 
class  ChangeDualMarchingCubesAction
 Undo action for ObjectVoxels dual/standard marching cubes change.
 
class  ChangeFacesColorMapAction
 
class  ChangeGridAction
 
class  ChangeIsoAction
 Undo action for ObjectVoxels iso-value change.
 
class  ChangeLabelAction
 
class  ChangeLinesColorMapAction
 
class  ChangeMeshAction
 Undo action for ObjectMesh mesh change.
 
class  ChangeMeshCreasesAction
 Undo action for ObjectMesh creases.
 
class  ChangeMeshDataAction
 Undo action for ObjectMeshData change.
 
class  ChangeMeshEdgeSelectionAction
 Undo action for ObjectMesh edge selection.
 
class  ChangeMeshFaceSelectionAction
 Undo action for ObjectMesh face selection.
 
class  ChangeMeshPointsAction
 Undo action for ObjectMesh points only (not topology) change.
 
class  ChangeMeshTexturePerFaceAction
 Undo action for ObjectMeshHolder texturePerFace change.
 
class  ChangeMeshTopologyAction
 Undo action for ObjectMesh topology only (not points) change.
 
class  ChangeMeshUVCoordsAction
 Undo action for ObjectMeshHolder uvCoords change.
 
class  ChangeNameAction
 
class  ChangeObjectAction
 
class  ChangeObjectColorAction
 
class  ChangeObjectSelectedAction
 
class  ChangeObjectVisibilityAction
 
class  ChangeOneNormalInCloudAction
 
class  ChangeOnePointInCloudAction
 
class  ChangeOnePointInPolylineAction
 
class  ChangePointCloudAction
 
class  ChangePointCloudNormalsAction
 
class  ChangePointCloudPointsAction
 
class  ChangePointPointSelectionAction
 Undo action for ObjectPoints point selection.
 
class  ChangePolylineAction
 Undo action for ObjectLines polyline change.
 
class  ChangePolylinePointsAction
 Undo action for ObjectLines points only (not topology) change.
 
class  ChangePolylineTopologyAction
 Undo action for ObjectLines topology only (not points) change.
 
class  ChangeScaleAction
 
class  ChangeSceneAction
 
class  ChangeSceneObjectsOrder
 
class  ChangeSurfaceAction
 
class  ChangeTextureAction
 
class  ChangeValue
 
class  ChangeVertsColorMapAction
 
class  ChangeVisualizePropertyAction
 
class  ChangeXfAction
 
class  ChangVoxelSelectionAction
 Undo action for ObjectVoxels face selection.
 
struct  CharPressedListener
 
class  Chunk
 array chunk representation
 
class  ChunkIterator
 iterator class for array chunks
 
class  CircleObject
 
class  CloseToMeshVolumeParams
 
class  CloudPartMapping
 
class  CmpOld
 argument of this type indicates that the object is already in new state, and the following argument is old state
 
class  CNCMachineSettings
 class with CNC machine emulation settings
 
struct  Color
 
class  ColorMapAggregator
 Class for aggregate several color map in one Color maps are aggregated according order. More...
 
class  ColorMapAggregator_MRFaceTag
 
class  ColorMapAggregator_MRUndirectedEdgeTag
 
class  ColorMapAggregator_MRVertTag
 
class  ColorTheme
 
class  CombinedHistoryAction
 
class  CommandLoop
 
class  CompensateRadiusParams
 structure with parameters for compensateRadius function
 
class  ComputeSteepestDescentPathSettings
 
class  ComputeSweptVolumeParameters
 Parameters for computeSweptVolume* functions.
 
class  Cone3
 
class  Cone3Approximation
 
class  Cone3ApproximationParams
 
class  Cone3d
 
class  Cone3f
 
struct  ConeFittingFunctor
 
class  ConeObject
 
class  Config
 
struct  ConnectionHolder
 
class  Const_AABBTree
 
class  Const_AABBTreeBase_MRAABBTreeTraitsMRFaceTagMRBox3f
 
class  Const_AABBTreeBase_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox2f
 
class  Const_AABBTreeBase_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox3f
 
class  Const_AABBTreeBase_MRObjTreeTraits
 
class  Const_AABBTreeNode_MRAABBTreeTraitsMRFaceTagMRBox3f
 
class  Const_AABBTreeNode_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox2f
 
class  Const_AABBTreeNode_MRAABBTreeTraitsMRUndirectedEdgeTagMRBox3f
 
class  Const_AABBTreeNode_MRObjTreeTraits
 
class  Const_AABBTreeObjects
 
class  Const_AABBTreePoints
 
class  Const_AABBTreePolyline2
 
class  Const_AABBTreePolyline3
 
class  Const_AABBTreeTraits_MRFaceTag_MRBox3f
 
class  Const_AABBTreeTraits_MRUndirectedEdgeTag_MRBox2f
 
class  Const_AABBTreeTraits_MRUndirectedEdgeTag_MRBox3f
 
class  Const_AddVisualProperties_MRFeatureObject_MRDimensionsVisualizePropertyTypeDiameter
 
class  Const_AddVisualProperties_MRFeatureObject_MRDimensionsVisualizePropertyTypeDiameter_MRDimensionsVisualizePropertyTypeAngle_MRDimensionsVisualizePropertyTypeLength
 
class  Const_AddVisualProperties_MRFeatureObject_MRDimensionsVisualizePropertyTypeDiameter_MRDimensionsVisualizePropertyTypeLength
 
class  Const_AllLocalTriangulations
 
class  Const_AngleMeasurementObject
 
class  Const_AnyVisualizeMaskEnum
 
class  Const_ArcInterpolationParams
 
class  Const_Ball1d
 
class  Const_Ball1f
 
class  Const_Ball2d
 
class  Const_Ball2f
 
class  Const_Ball3d
 
class  Const_Ball3f
 
class  Const_BaseRenderParams
 
class  Const_BaseShellParameters
 
class  Const_BaseTiffParameters
 
class  Const_BasicUiRenderTask
 
class  Const_BasinVolumeCalculator
 
class  Const_BendContoursAlongCurveParams
 
class  Const_BendTextAlongCurveParams
 
class  Const_BestFitParabolad
 
class  Const_BestFitParabolaf
 
class  Const_BitSet
 
class  Const_BMap_MRFaceId_MRUint64T
 
class  Const_BMap_MRGraphEdgeId_MRGraphEdgeId
 
class  Const_BMap_MRGraphVertId_MRGraphVertId
 
class  Const_BMap_MRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  Const_BMap_MRNodeId_MRNodeId
 
class  Const_BMap_MRObjId_MRObjId
 
class  Const_BMap_MRPixelId_MRPixelId
 
class  Const_BMap_MRRegionId_MRRegionId
 
class  Const_BMap_MRTextureId_MRTextureId
 
class  Const_BMap_MRUndirectedEdgeId_MRUint64T
 
class  Const_BMap_MRVertId_MRUint64T
 
class  Const_BMap_MRVoxelId_MRVoxelId
 
class  Const_BooleanInternalParameters
 
class  Const_BooleanParameters
 
class  Const_BooleanPreCutResult
 
class  Const_BooleanResult
 
class  Const_BooleanResultMapper
 
class  Const_BooleanResultPoints
 
class  Const_Box_UnsignedShort
 
class  Const_Buffer_Char
 
class  Const_Buffer_MREdgeId_MREdgeId
 
class  Const_Buffer_MREdgeId_MRUndirectedEdgeId
 
class  Const_Buffer_MRFaceId
 
class  Const_Buffer_MRFaceId_MRFaceId
 
class  Const_Buffer_MRGraphEdgeId_MRGraphEdgeId
 
class  Const_Buffer_MRGraphVertId_MRGraphVertId
 
class  Const_Buffer_MRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  Const_Buffer_MRNodeId_MRNodeId
 
class  Const_Buffer_MRObjId_MRObjId
 
class  Const_Buffer_MRPixelId_MRPixelId
 
class  Const_Buffer_MRRegionId_MRRegionId
 
class  Const_Buffer_MRTextureId_MRTextureId
 
class  Const_Buffer_MRUndirectedEdgeId
 
class  Const_Buffer_MRUndirectedEdgeId_MRUndirectedEdgeId
 
class  Const_Buffer_MRVertId
 
class  Const_Buffer_MRVertId_MRVertId
 
class  Const_Buffer_MRVoxelId_MRVoxelId
 
class  Const_Buffer_UnsignedChar
 
class  Const_ChangeActiveBoxAction
 
class  Const_ChangeColoringType
 
class  Const_ChangeDualMarchingCubesAction
 
class  Const_ChangeFacesColorMapAction
 
class  Const_ChangeGridAction
 
class  Const_ChangeIsoAction
 
class  Const_ChangeLabelAction
 
class  Const_ChangeLinesColorMapAction
 
class  Const_ChangeMeshAction
 
class  Const_ChangeMeshCreasesAction
 
class  Const_ChangeMeshDataAction
 
class  Const_ChangeMeshEdgeSelectionAction
 
class  Const_ChangeMeshFaceSelectionAction
 
class  Const_ChangeMeshPointsAction
 
class  Const_ChangeMeshTexturePerFaceAction
 
class  Const_ChangeMeshTopologyAction
 
class  Const_ChangeMeshUVCoordsAction
 
class  Const_ChangeNameAction
 
class  Const_ChangeObjectAction
 
class  Const_ChangeObjectColorAction
 
class  Const_ChangeObjectSelectedAction
 
class  Const_ChangeObjectVisibilityAction
 
class  Const_ChangeOneNormalInCloudAction
 
class  Const_ChangeOnePointInCloudAction
 
class  Const_ChangeOnePointInPolylineAction
 
class  Const_ChangePointCloudAction
 
class  Const_ChangePointCloudNormalsAction
 
class  Const_ChangePointCloudPointsAction
 
class  Const_ChangePointPointSelectionAction
 
class  Const_ChangePolylineAction
 
class  Const_ChangePolylinePointsAction
 
class  Const_ChangePolylineTopologyAction
 
class  Const_ChangeScaleAction
 
class  Const_ChangeSceneAction
 
class  Const_ChangeSceneObjectsOrder
 
class  Const_ChangeSurfaceAction
 
class  Const_ChangeTextureAction
 
class  Const_ChangeVisualizePropertyAction
 
class  Const_ChangeXfAction
 
class  Const_ChangVoxelSelectionAction
 
class  Const_Chunk
 
class  Const_ChunkIterator
 
class  Const_CircleObject
 
class  Const_CloseToMeshVolumeParams
 
class  Const_CloudPartMapping
 
class  Const_CmpOld
 
class  Const_CNCMachineSettings
 
class  Const_CombinedHistoryAction
 
class  Const_CompensateRadiusParams
 
class  Const_ComputeSteepestDescentPathSettings
 
class  Const_ComputeSweptVolumeParameters
 
class  Const_Cone3ApproximationParams
 
class  Const_Cone3d
 
class  Const_Cone3f
 
class  Const_ConeObject
 
class  Const_ConstantCuspParams
 
class  Const_ContoursDistanceMapOffset
 
class  Const_ContoursDistanceMapOptions
 
class  Const_ContoursMeshAlignParams
 
class  Const_ContourToDistanceMapParams
 
class  Const_CoordinateConverters
 
class  Const_CoordinateConverters2
 
class  Const_CubicBezierCurve2d
 
class  Const_CubicBezierCurve2f
 
class  Const_CubicBezierCurve3d
 
class  Const_CubicBezierCurve3f
 
class  Const_CurvePoint
 
class  Const_CutByProjectionSettings
 
class  Const_CutMeshParameters
 
class  Const_CutMeshResult
 
class  Const_Cylinder3d
 
class  Const_Cylinder3f
 
class  Const_CylinderObject
 
class  Const_DecimatePolylineResult
 
class  Const_DecimatePolylineSettings_MRVector2f
 
class  Const_DecimatePolylineSettings_MRVector3f
 
class  Const_DecimateResult
 
class  Const_DecimateSettings
 
class  Const_DeloneSettings
 
class  Const_DenoiseViaNormalsSettings
 
class  Const_DenseBox
 
class  Const_DentalId
 
class  Const_DetectTunnelSettings
 
class  Const_Dipole
 
class  Const_Dipoles
 
class  Const_Dirty
 
class  Const_DistanceFromWeightedPointsComputeParams
 
class  Const_DistanceFromWeightedPointsParams
 
class  Const_DistanceMap
 
class  Const_DistanceMapLoadSettings
 
class  Const_DistanceMapSaveSettings
 
class  Const_DistanceMapToWorld
 
class  Const_DistanceMeasurementObject
 
class  Const_DistanceToMeshOptions
 
class  Const_DistanceVolumeParams
 
class  Const_DividePointCloudOptionalOutput
 
class  Const_DividePolylineParameters
 
class  Const_DoubleOffsetSettings
 
class  Const_EdgeBitSet
 
class  Const_EdgeBMap
 
class  Const_EdgeColors
 
class  Const_EdgeLengthMesh
 
class  Const_EdgeMap
 
class  Const_EdgePathsAStarBuilder
 
class  Const_EdgePathsBuilderT_MRMetricToAStarPenalty
 
class  Const_EdgePathsBuilderT_MRTrivialMetricToPenalty
 
class  Const_EdgePoint
 
class  Const_EdgePointPair
 
class  Const_Edges
 
class  Const_EdgeScalars
 
class  Const_EdgeSegment
 
class  Const_EdgeTri
 
class  Const_EmbeddedStructureParameters
 
class  Const_EndMillCutter
 
class  Const_EndMillTool
 
class  Const_EnumNeihbourFaces
 
class  Const_EnumNeihbourVertices
 
class  Const_Expected_Bool_StdString
 
class  Const_Expected_MRAffineXf3f_StdString
 
class  Const_Expected_MRBooleanResultPoints_StdString
 
class  Const_Expected_MRDistanceMap_StdString
 
class  Const_Expected_MRFaceBitSet_StdString
 
class  Const_Expected_MRFloatGrid_StdString
 
class  Const_Expected_MRFunctionVolume_StdString
 
class  Const_Expected_MRImage_StdString
 
class  Const_Expected_MRLoadedObjects_StdString
 
class  Const_Expected_MRLoadedObjectT_StdString
 
class  Const_Expected_MRLoadedObjectTMRObjectMesh_StdString
 
class  Const_Expected_MRMesh_StdString
 
class  Const_Expected_MRObjectDistanceMap_StdString
 
class  Const_Expected_MRObjectGcode_StdString
 
class  Const_Expected_MRObjectLines_StdString
 
class  Const_Expected_MRObjectPoints_StdString
 
class  Const_Expected_MROneMeshContour_StdString
 
class  Const_Expected_MRPackMapping_StdString
 
class  Const_Expected_MRPointCloud_StdString
 
class  Const_Expected_MRPolyline3_StdString
 
class  Const_Expected_MRSimpleBinaryVolume_StdString
 
class  Const_Expected_MRSimpleVolume_StdString
 
class  Const_Expected_MRSimpleVolumeMinMax_StdString
 
class  Const_Expected_MRSimpleVolumeMinMaxU16_StdString
 
class  Const_Expected_MRTeethMaskToDirectionVolumeConvertor_StdString
 
class  Const_Expected_MRTeethMaskToDirectionVolumeConvertorProcessResult_StdString
 
class  Const_Expected_MRTiffParameters_StdString
 
class  Const_Expected_MRToolPathResult_StdString
 
class  Const_Expected_MRTriMesh_StdString
 
class  Const_Expected_MRUndirectedEdgeBitSet_StdString
 
class  Const_Expected_MRUnionFindMRVertId_StdString
 
class  Const_Expected_MRVdbVolume_StdString
 
class  Const_Expected_MRVector3i_StdString
 
class  Const_Expected_MRVertBitSet_StdString
 
class  Const_Expected_MRVertColors_StdString
 
class  Const_Expected_MRVertCoords_StdString
 
class  Const_Expected_MRVoxelBitSet_StdString
 
class  Const_Expected_MRVoxelsLoadDicomVolume_StdString
 
class  Const_Expected_MRVoxelsLoadDicomVolumeAsVdb_StdString
 
class  Const_Expected_MRVoxelsLoadRawParameters_StdString
 
class  Const_Expected_StdArrayMRSimpleVolumeMinMax3_StdString
 
class  Const_Expected_StdFunctionMRCurvePointFuncFromFloat_StdString
 
class  Const_Expected_StdPairStdVectorMRVertBitSetInt_StdString
 
class  Const_Expected_StdSharedPtrMRMesh_StdString
 
class  Const_Expected_StdSharedPtrMRObject_StdString
 
class  Const_Expected_StdSharedPtrMRObjectVoxels_StdString
 
class  Const_Expected_StdVectorFloat_StdString
 
class  Const_Expected_StdVectorMREdgeId_StdString
 
class  Const_Expected_StdVectorMREdgePoint_MRPathError
 
class  Const_Expected_StdVectorMREdgePoint_StdString
 
class  Const_Expected_StdVectorMRFaceBitSet_StdString
 
class  Const_Expected_StdVectorMRFaceFace_StdString
 
class  Const_Expected_StdVectorMRFloatGrid_StdString
 
class  Const_Expected_StdVectorMRMesh_StdString
 
class  Const_Expected_StdVectorMRMeshLoadNamedMesh_StdString
 
class  Const_Expected_StdVectorMROneMeshContour_StdString
 
class  Const_Expected_StdVectorMRPointsLoadNamedCloud_StdString
 
class  Const_Expected_StdVectorMRVdbVolume_StdString
 
class  Const_Expected_StdVectorMRVertBitSet_StdString
 
class  Const_Expected_StdVectorStdPairMRVertIdMRVertId_StdString
 
class  Const_Expected_StdVectorStdSharedPtrMRObjectVoxels_StdString
 
class  Const_Expected_StdVectorStdString_StdString
 
class  Const_Expected_StdVectorStdVectorMREdgeId_StdString
 
class  Const_Expected_StdVectorStdVectorMRVector2f_StdString
 
class  Const_Expected_StdVectorStdVectorMRVector3f_StdString
 
class  Const_Expected_Void_StdString
 
class  Const_Face2RegionMap
 
class  Const_FaceBitSet
 
class  Const_FaceBMap
 
class  Const_FaceColorMapAggregator
 
class  Const_FaceColors
 
class  Const_FaceDistancesSettings
 
class  Const_FaceFace
 
class  Const_FaceFaceFace
 
class  Const_FaceMap
 
class  Const_FaceNormals
 
class  Const_FaceScalars
 
class  Const_FanRecord
 
class  Const_FanRecordWithCenter
 
class  Const_FastWindingNumber
 
class  Const_FeatureObject
 
class  Const_FeatureObjectProjectPointResult
 
class  Const_FeatureObjectSharedProperty
 
class  Const_FewSmallest_MRPointsProjectionResult
 
class  Const_FillHoleItem
 
class  Const_FillHoleMetric
 
class  Const_FillHoleNicelySettings
 
class  Const_FillHoleParams
 
class  Const_FillHolesWithExtraPointsParams
 
class  Const_FindDisorientationParams
 
class  Const_FindInnerShellSettings
 
class  Const_FindOutliersParams
 
class  Const_FindOverhangsSettings
 
class  Const_FindOverlappingSettings
 
class  Const_FindProjectionOnPointsSettings
 
class  Const_FixCreasesParams
 
class  Const_FixMeshDegeneraciesParams
 
class  Const_FloatGrid
 
class  Const_FlowAggregator
 
class  Const_FlowOrigin
 
class  Const_FreeFormBestFit
 
class  Const_FreeFormDeformer
 
class  Const_FunctionVolume
 
class  Const_FunctionVolumeU8
 
class  Const_GcodeProcessor
 
class  Const_GCommand
 
class  Const_GeneralOffsetParameters
 
class  Const_Graph
 
class  Const_GraphEdgeBitSet
 
class  Const_GraphVertBitSet
 
class  Const_GridSettings
 
class  Const_GridToMeshSettings
 
class  Const_Heap_Float_MRGraphVertId_StdGreaterFloat
 
class  Const_Histogram
 
class  Const_HistoryAction
 
class  Const_HoleFillPlan
 
class  Const_IComputeToolDistance
 
class  Const_ICP
 
class  Const_ICPGroupPair
 
class  Const_ICPGroupPairs
 
class  Const_ICPPairData
 
class  Const_ICPProperties
 
class  Const_Id_MRICPElemtTag
 
class  Const_IFastWindingNumber
 
class  Const_IFastWindingNumberByParts
 
class  Const_IICPTreeIndexer
 
class  Const_Image
 
class  Const_ImproveSamplingSettings
 
class  Const_InflateSettings
 
class  Const_InSphere
 
class  Const_InSphereSearchSettings
 
class  Const_IntersectionPrecomputes2_Double
 
class  Const_IntersectionPrecomputes2_Float
 
class  Const_IntersectionPrecomputes_Double
 
class  Const_IntersectionPrecomputes_Float
 
class  Const_InTreePathBuilder
 
class  Const_IntrinsicDeloneSettings
 
class  Const_IOFilter
 
class  Const_IPointPairs
 
class  Const_IPointsProjector
 
class  Const_IPointsToMeshProjector
 
class  Const_IRenderObject
 
class  Const_IsVisualizeMaskEnum_MRAnyVisualizeMaskEnum
 
class  Const_IsVisualizeMaskEnum_MRDimensionsVisualizePropertyType
 
class  Const_IsVisualizeMaskEnum_MRFeatureVisualizePropertyType
 
class  Const_IsVisualizeMaskEnum_MRLabelVisualizePropertyType
 
class  Const_IsVisualizeMaskEnum_MRLinesVisualizePropertyType
 
class  Const_IsVisualizeMaskEnum_MRMeshVisualizePropertyType
 
class  Const_IsVisualizeMaskEnum_MRPointMeasurementVisualizePropertyType
 
class  Const_IsVisualizeMaskEnum_MRPointsVisualizePropertyType
 
class  Const_IsVisualizeMaskEnum_MRVisualizeMaskType
 
class  Const_IteratorRange_MRChunkIterator
 
class  Const_IteratorRange_MRPolylineUndirectedEdgeIterator
 
class  Const_IteratorRange_MRRingIteratorMRNextEdgeSameLeft
 
class  Const_IteratorRange_MRRingIteratorMRNextEdgeSameOrigin
 
class  Const_IteratorRange_MRUndirectedEdgeIterator
 
class  Const_Laplacian
 
class  Const_Line2d
 
class  Const_Line2f
 
class  Const_Line3d
 
class  Const_Line3f
 
class  Const_Line3Mesh_Double
 
class  Const_Line3Mesh_Float
 
class  Const_LineInterpolationParams
 
class  Const_LineObject
 
class  Const_LineSegm2d
 
class  Const_LineSegm2f
 
class  Const_LineSegm3d
 
class  Const_LineSegm3f
 
class  Const_LinesLoadSettings
 
class  Const_LoadedObjects
 
class  Const_LoadedObjectT
 
class  Const_LoadedObjectT_MRObjectLines
 
class  Const_LoadedObjectT_MRObjectMesh
 
class  Const_LoadedObjectT_MRObjectPoints
 
class  Const_LoadedObjectT_MRObjectVoxels
 
class  Const_MakeBridgeResult
 
class  Const_MakeDegenerateBandAroundRegionParams
 
class  Const_MakeSignedByWindingNumberSettings
 
class  Const_MapOrHashMap_MREdgeId_MREdgeId
 
class  Const_MapOrHashMap_MRFaceId_MRFaceId
 
class  Const_MapOrHashMap_MRUndirectedEdgeId_MREdgeId
 
class  Const_MapOrHashMap_MRUndirectedEdgeId_MRUndirectedEdgeId
 
class  Const_MapOrHashMap_MRVertId_MRVertId
 
class  Const_MarchingCubesByParts
 
class  Const_MarchingCubesParams
 
class  Const_MarkedContour3f
 
class  Const_Matrix3_UnsignedChar
 
class  Const_Matrix4_UnsignedChar
 
class  Const_Matrix_Float
 
class  Const_MeasurementObject
 
class  Const_MergeVolumePartSettings
 
class  Const_Mesh
 
class  Const_MeshApproxRelaxParams
 
class  Const_MeshAttributesToUpdate
 
class  Const_MeshDiff
 
class  Const_MeshEqualizeTriAreasParams
 
class  Const_MeshIntersectionResult
 
class  Const_MeshLoadSettings
 
class  Const_MeshMeshConverter
 
class  Const_MeshMeshDistanceResult
 
class  Const_MeshMeshSignedDistanceResult
 
class  Const_MeshNormals
 
class  Const_MeshOnVoxelsT_ConstMRMesh_MRFunctionVolume
 
class  Const_MeshOnVoxelsT_ConstMRMesh_MRSimpleVolumeMinMax
 
class  Const_MeshOnVoxelsT_ConstMRMesh_MRVdbVolume
 
class  Const_MeshOnVoxelsT_MRMesh_MRFunctionVolume
 
class  Const_MeshOnVoxelsT_MRMesh_MRSimpleVolumeMinMax
 
class  Const_MeshOnVoxelsT_MRMesh_MRVdbVolume
 
class  Const_MeshOrPoints
 
class  Const_MeshOrPointsObject
 
class  Const_MeshOrPointsXf
 
class  Const_MeshPart
 
class  Const_MeshPoint
 
class  Const_MeshPointAndDistance
 
class  Const_MeshProjectionParameters
 
class  Const_MeshProjectionResult
 
class  Const_MeshProjectionTransforms
 
class  Const_MeshRelaxParams
 
class  Const_MeshTexture
 
class  Const_MeshToDirectionVolumeParams
 
class  Const_MeshToDistanceMapParams
 
class  Const_MeshToDistanceVolumeParams
 
class  Const_MeshTopology
 
class  Const_MeshTopologyDiff
 
class  Const_MeshToVolumeParams
 
class  Const_MeshTriPoint
 
class  Const_MeshVertPart
 
class  Const_MeshVoxelsConverter
 
class  Const_MetricToAStarPenalty
 
class  Const_MinMaxArg_Float_MRVertId
 
class  Const_ModelBaseRenderParams
 
class  Const_ModelPointsData
 
class  Const_ModelRenderParams
 
class  Const_MovementBuildBodyParams
 
class  Const_MoveMeshToVoxelMaxDerivSettings
 
class  Const_MultiMeshIntersectionResult
 
class  Const_MultiRayMeshIntersectResult
 
class  Const_MultiwayAligningTransform
 
class  Const_MultiwayICP
 
class  Const_MultiwayICPSamplingParameters
 
class  Const_MutexOwner
 
class  Const_NewEdgesMap
 
class  Const_NextEdgeSameLeft
 
class  Const_NextEdgeSameOrigin
 
class  Const_NoCtor_Char
 
class  Const_NoCtor_MREdgeId
 
class  Const_NoCtor_MRFaceId
 
class  Const_NoCtor_MRGraphEdgeId
 
class  Const_NoCtor_MRGraphVertId
 
class  Const_NoCtor_MRIdMRICPElemtTag
 
class  Const_NoCtor_MRNodeId
 
class  Const_NoCtor_MRObjId
 
class  Const_NoCtor_MRPixelId
 
class  Const_NoCtor_MRRegionId
 
class  Const_NoCtor_MRTextureId
 
class  Const_NoCtor_MRUndirectedEdgeId
 
class  Const_NoCtor_MRVertId
 
class  Const_NoCtor_MRVoxelId
 
class  Const_NoCtor_UnsignedChar
 
class  Const_NodeBitSet
 
class  Const_NoDefInit_MREdgeId
 
class  Const_NoDefInit_MRFaceId
 
class  Const_NoDefInit_MRGraphEdgeId
 
class  Const_NoDefInit_MRGraphVertId
 
class  Const_NoDefInit_MRIdMRICPElemtTag
 
class  Const_NoDefInit_MRNodeId
 
class  Const_NoDefInit_MRObjId
 
class  Const_NoDefInit_MRPixelId
 
class  Const_NoDefInit_MRRegionId
 
class  Const_NoDefInit_MRTextureId
 
class  Const_NoDefInit_MRUndirectedEdgeId
 
class  Const_NoDefInit_MRVertId
 
class  Const_NoDefInit_MRVoxelId
 
class  Const_NodeNode
 
class  Const_NoInit
 
class  Const_NoInitNodeId
 
class  Const_NoiseSettings
 
class  Const_NormalsToPoints
 
class  Const_NumSum
 
class  Const_ObjBitSet
 
class  Const_Object
 
class  Const_ObjectChildrenHolder
 
class  Const_ObjectComparableWithReference
 
class  Const_ObjectDistanceMap
 
class  Const_ObjectFactoryBase
 
class  Const_ObjectGcode
 
class  Const_ObjectLabel
 
class  Const_ObjectLines
 
class  Const_ObjectLinesHolder
 
class  Const_ObjectMesh
 
class  Const_ObjectMeshData
 
class  Const_ObjectMeshHolder
 
class  Const_ObjectMeshMergeOptions
 
class  Const_ObjectPoints
 
class  Const_ObjectPointsHolder
 
class  Const_ObjectTagEventDispatcher
 
class  Const_ObjectVoxels
 
class  Const_ObjKindTraits_MRFeaturesObjectKindCircle
 
class  Const_ObjKindTraits_MRFeaturesObjectKindCone
 
class  Const_ObjKindTraits_MRFeaturesObjectKindCylinder
 
class  Const_ObjKindTraits_MRFeaturesObjectKindLine
 
class  Const_ObjKindTraits_MRFeaturesObjectKindPlane
 
class  Const_ObjKindTraits_MRFeaturesObjectKindPoint
 
class  Const_ObjKindTraits_MRFeaturesObjectKindSphere
 
class  Const_ObjMap
 
class  Const_ObjTreeTraits
 
class  Const_OffsetContourIndex
 
class  Const_OffsetContoursOrigins
 
class  Const_OffsetContoursParams
 
class  Const_OffsetContoursRestoreZParams
 
class  Const_OffsetParameters
 
class  Const_OneMeshContour
 
class  Const_OneMeshIntersection
 
class  Const_OpenVdbFloatGrid
 
class  Const_OriginAndDimensions
 
class  Const_OutlierParams
 
class  Const_OutliersDetector
 
class  Const_OutputFlows
 
class  Const_PackMapping
 
class  Const_Parabolad
 
class  Const_Parabolaf
 
class  Const_PartialChangeMeshAction
 
class  Const_PartialChangeMeshDataAction
 
class  Const_PartialChangeMeshPointsAction
 
class  Const_PartialChangeMeshTopologyAction
 
class  Const_PartMapping
 
class  Const_Pdf
 
class  Const_PdfParameters
 
class  Const_PixelBitSet
 
class  Const_Plane3d
 
class  Const_Plane3f
 
class  Const_PlaneAccumulator
 
class  Const_PlaneObject
 
class  Const_PlyLoadParams
 
class  Const_PointAccumulator
 
class  Const_PointAndDistance
 
class  Const_PointCloud
 
class  Const_PointCloudApproxRelaxParams
 
class  Const_PointCloudPart
 
class  Const_PointCloudRelaxParams
 
class  Const_PointMeasurementObject
 
class  Const_PointObject
 
class  Const_PointOnFace
 
class  Const_PointOnObject
 
class  Const_PointPair
 
class  Const_PointPairs
 
class  Const_PointsLoadSettings
 
class  Const_PointsProjectionResult
 
class  Const_PointsProjector
 
class  Const_PointsToDistanceVolumeParams
 
class  Const_PointsToMeshParameters
 
class  Const_PointsToMeshProjector
 
class  Const_PointToPlaneAligningTransform
 
class  Const_PointToPointAligningTransform
 
class  Const_Polyline2
 
class  Const_Polyline2ProjectionWithOffsetResult
 
class  Const_Polyline3
 
class  Const_PolylineIntersectionResult2
 
class  Const_PolylineMaker
 
class  Const_PolylineProjectionResult2
 
class  Const_PolylineProjectionResult3
 
class  Const_PolylineProjectionResult3Arg
 
class  Const_PolylineProjectionWithOffsetResult3
 
class  Const_PolylineSubdivideSettings
 
class  Const_PolylineToDistanceVolumeParams
 
class  Const_PolylineTopology
 
class  Const_PolylineToVolumeParams
 
class  Const_PolylineTraits_MRVector2f
 
class  Const_PolylineTraits_MRVector3f
 
class  Const_PolylineUndirectedEdgeIterator
 
class  Const_Polynomial_Double_0
 
class  Const_Polynomial_Double_1
 
class  Const_Polynomial_Double_2
 
class  Const_Polynomial_Double_3
 
class  Const_Polynomial_Double_4
 
class  Const_Polynomial_Double_5
 
class  Const_Polynomial_Double_6
 
class  Const_Polynomial_Float_0
 
class  Const_Polynomial_Float_1
 
class  Const_Polynomial_Float_2
 
class  Const_Polynomial_Float_3
 
class  Const_Polynomial_Float_4
 
class  Const_Polynomial_Float_5
 
class  Const_Polynomial_Float_6
 
class  Const_PolynomialWrapper_Double
 
class  Const_PolynomialWrapper_Float
 
class  Const_PositionedText
 
class  Const_PositionVertsSmoothlyParams
 
class  Const_PrecipitationSimulator
 
class  Const_PreciseVertCoord
 
class  Const_PreciseVertCoords
 
class  Const_PreciseVertCoords2
 
class  Const_ProjectAttributeParams
 
class  Const_QuadraticForm2d
 
class  Const_QuadraticForm2f
 
class  Const_QuadraticForm3d
 
class  Const_QuadraticForm3f
 
class  Const_QuadricApprox
 
class  Const_Quaterniond
 
class  Const_Quaternionf
 
class  Const_RadiusMeasurementObject
 
class  Const_RawTiffOutput
 
class  Const_RayOrigin_Float
 
class  Const_RebuildMeshSettings
 
class  Const_RectIndexer
 
class  Const_RefineParameters
 
class  Const_RegionBitSet
 
class  Const_RegularMapMesher
 
class  Const_RelaxParams
 
class  Const_RemeshSettings
 
class  Const_ResolveMeshDegenSettings
 
class  Const_RigidScaleXf3d
 
class  Const_RigidScaleXf3f
 
class  Const_RigidXf3d
 
class  Const_RigidXf3f
 
class  Const_RingIterator_MRNextEdgeSameLeft
 
class  Const_RingIterator_MRNextEdgeSameOrigin
 
class  Const_SaveSettings
 
class  Const_SceneColors
 
class  Const_SceneRoot
 
class  Const_SceneRootObject
 
class  Const_SceneSettings
 
class  Const_SearchPathSettings
 
class  Const_SegmentSegmentIntersectResult
 
class  Const_SegmPointd
 
class  Const_SegmPointf
 
class  Const_SeparationPointStorage
 
class  Const_SetNew
 
class  Const_SharpenMarchingCubesMeshSettings
 
class  Const_SharpOffsetParameters
 
class  Const_ShellVertexInfo
 
class  Const_SignedDistanceToMeshOptions
 
class  Const_SignedDistanceToMeshResult
 
class  Const_SimpleBinaryVolume
 
class  Const_SimpleVolume
 
class  Const_SimpleVolumeMinMax
 
class  Const_SimpleVolumeMinMaxU16
 
class  Const_SimpleVolumeU16
 
class  Const_SkyPatch
 
class  Const_SliceInfo
 
class  Const_SliceInfoBase
 
class  Const_SomeLocalTriangulations
 
class  Const_SortIntersectionsData
 
class  Const_SpacingSettings
 
class  Const_Sphere2d
 
class  Const_Sphere2f
 
class  Const_Sphere3d
 
class  Const_Sphere3f
 
class  Const_SphereObject
 
class  Const_SphereParams
 
class  Const_SplineSettings
 
class  Const_Src2TgtMaps
 
class  Const_StitchHolesParams
 
class  Const_SubdivideSettings
 
class  Const_SurfaceDistanceBuilder
 
class  Const_SymbolMeshParams
 
class  Const_SymMatrix2b
 
class  Const_SymMatrix2d
 
class  Const_SymMatrix2f
 
class  Const_SymMatrix2i
 
class  Const_SymMatrix2i64
 
class  Const_SymMatrix3_UnsignedChar
 
class  Const_SymMatrix3b
 
class  Const_SymMatrix3d
 
class  Const_SymMatrix3f
 
class  Const_SymMatrix3i
 
class  Const_SymMatrix3i64
 
class  Const_SymMatrix4_UnsignedChar
 
class  Const_SymMatrix4b
 
class  Const_SymMatrix4d
 
class  Const_SymMatrix4f
 
class  Const_SymMatrix4i
 
class  Const_SymMatrix4i64
 
class  Const_SystemMemory
 
class  Const_SystemPath
 
class  Const_TeethMaskToDirectionVolumeConvertor
 
class  Const_TerminalVertex
 
class  Const_TextMeshAlignParams
 
class  Const_TextureBitSet
 
class  Const_TexturePerFace
 
class  Const_Tgt2SrcMaps
 
class  Const_ThickenParams
 
class  Const_TiffParameters
 
class  Const_ToolPathParams
 
class  Const_ToolPathResult
 
class  Const_TransformedMesh
 
class  Const_TransformVdbVolumeResult
 
class  Const_TransparencyMode
 
class  Const_TriangleSegmentIntersectResult
 
class  Const_Triangulation
 
class  Const_TriangulationParameters
 
class  Const_TriCornerUVCoords
 
class  Const_TriIntersectResult
 
class  Const_TriMesh
 
class  Const_TrimOptionalOutput
 
class  Const_TrimWithPlaneParams
 
class  Const_TriPointd
 
class  Const_TriPointf
 
class  Const_TrivialMetricToPenalty
 
class  Const_TypedBitSet_MRIdMRICPElemtTag
 
class  Const_UiRenderManager
 
class  Const_UiRenderParams
 
class  Const_UndirectedEdge2RegionMap
 
class  Const_UndirectedEdgeBitSet
 
class  Const_UndirectedEdgeBMap
 
class  Const_UndirectedEdgeColors
 
class  Const_UndirectedEdgeIterator
 
class  Const_UndirectedEdgeMap
 
class  Const_UndirectedEdgeScalars
 
class  Const_UndirectedEdgeUndirectedEdge
 
class  Const_UndirEdgeColorMapAggregator
 
class  Const_UniformSamplingSettings
 
class  Const_UnionFind_MRFaceId
 
class  Const_UnionFind_MRUndirectedEdgeId
 
class  Const_UnionFind_MRVertId
 
class  Const_UniqueTemporaryFolder
 
class  Const_UniqueThreadSafeOwner_MRAABBTree
 
class  Const_UniqueThreadSafeOwner_MRAABBTreePoints
 
class  Const_UniteManyMeshesParams
 
class  Const_UnitInfo
 
class  Const_UnorientedTriangle
 
class  Const_VarEdgeTri
 
class  Const_VdbVolume
 
class  Const_Vector3_UnsignedChar
 
class  Const_Vector4_UnsignedChar
 
class  Const_Vector_Char_MRVertId
 
class  Const_Vector_Double_MRRegionId
 
class  Const_Vector_Float_MRVoxelId
 
class  Const_Vector_Int_MRFaceId
 
class  Const_Vector_Int_MRUndirectedEdgeId
 
class  Const_Vector_Int_MRVertId
 
class  Const_Vector_MRAABBTreeNodeMRAABBTreeTraitsMRFaceTagMRBox3f_MRNodeId
 
class  Const_Vector_MRAABBTreeNodeMRAABBTreeTraitsMRUndirectedEdgeTagMRBox2f_MRNodeId
 
class  Const_Vector_MRAABBTreeNodeMRAABBTreeTraitsMRUndirectedEdgeTagMRBox3f_MRNodeId
 
class  Const_Vector_MRAABBTreeNodeMRObjTreeTraits_MRNodeId
 
class  Const_Vector_MRAABBTreePointsNode_MRNodeId
 
class  Const_Vector_MRAffineXf3f_MRObjId
 
class  Const_Vector_MREdgeId_MRFaceId
 
class  Const_Vector_MREdgeId_MRVertId
 
class  Const_Vector_MRFaceBitSet_MRGraphVertId
 
class  Const_Vector_MRFanRecord_MRVertId
 
class  Const_Vector_MRGraphEdgeId_MRGraphEdgeId
 
class  Const_Vector_MRGraphEndVertices_MRGraphEdgeId
 
class  Const_Vector_MRGraphVertId_MRGraphVertId
 
class  Const_Vector_MRICPGroupPairs_MRIdMRICPElemtTag
 
class  Const_Vector_MRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  Const_Vector_MRMeshBuilderVertSpan_MRFaceId
 
class  Const_Vector_MRMeshOrPointsXf_MRObjId
 
class  Const_Vector_MRMeshTexture_MRTextureId
 
class  Const_Vector_MRModelPointsData_MRObjId
 
class  Const_Vector_MRNodeId_MRNodeId
 
class  Const_Vector_MRPixelId_MRPixelId
 
class  Const_Vector_MRQuadraticForm2f_MRVertId
 
class  Const_Vector_MRQuadraticForm3f_MRVertId
 
class  Const_Vector_MRRegionId_MRRegionId
 
class  Const_Vector_MRTextureId_MRTextureId
 
class  Const_Vector_MRUint64T_MRGraphVertId
 
class  Const_Vector_MRVectorMRICPGroupPairsMRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  Const_Vector_MRVectorMRVectorMRICPGroupPairsMRIdMRICPElemtTagMRIdMRICPElemtTag_Int
 
class  Const_Vector_MRVectorStdVectorMRObjVertIdMRIdMRICPElemtTag_Int
 
class  Const_Vector_MRVertBitSet_MRObjId
 
class  Const_Vector_MRVertId_MREdgeId
 
class  Const_Vector_MRVoxelId_MRFaceId
 
class  Const_Vector_MRVoxelId_MRVoxelId
 
class  Const_Vector_MRWatershedGraphBasinInfo_MRGraphVertId
 
class  Const_Vector_MRWatershedGraphBdInfo_MRGraphEdgeId
 
class  Const_Vector_StdArrayMRVector3f3_MRFaceId
 
class  Const_Vector_StdFilesystemPath_MRTextureId
 
class  Const_Vector_StdVectorMREdgePoint_MRVertId
 
class  Const_Vector_StdVectorMRGraphEdgeId_MRGraphVertId
 
class  Const_Vector_StdVectorMRObjVertId_MRIdMRICPElemtTag
 
class  Const_Vector_UnsignedShort_MRVoxelId
 
class  Const_Vert2RegionMap
 
class  Const_VertBitSet
 
class  Const_VertBMap
 
class  Const_VertColorMapAggregator
 
class  Const_VertColors
 
class  Const_VertCoords
 
class  Const_VertCoords2
 
class  Const_VertCoordsDiff
 
class  Const_VertDistance
 
class  Const_VertMap
 
class  Const_VertPathInfo
 
class  Const_VertRenumber
 
class  Const_VertScalars
 
class  Const_ViewportIterator
 
class  Const_ViewportMask
 
class  Const_ViewportProperty_MRAffineXf3f
 
class  Const_ViewportProperty_MRColor
 
class  Const_ViewportProperty_MRMatrix3f
 
class  Const_ViewportProperty_MRVector4UnsignedChar
 
class  Const_ViewportProperty_MRXfBasedCacheMRBox3f
 
class  Const_ViewportProperty_UnsignedChar
 
class  Const_VisualObject
 
class  Const_VolumeIndexer
 
class  Const_VolumeSegmentationParameters
 
class  Const_VolumeSegmenter
 
class  Const_VolumeToMeshByPartsSettings
 
class  Const_VoxelBitSet
 
class  Const_VoxelLocation
 
class  Const_VoxelMetricParameters
 
class  Const_VoxelsVolume_MRFloatGrid
 
class  Const_VoxelsVolumeAccessor_MRFunctionVolume
 
class  Const_VoxelsVolumeAccessor_MRSimpleVolume
 
class  Const_VoxelsVolumeAccessor_MRSimpleVolumeMinMax
 
class  Const_VoxelsVolumeAccessor_MRVdbVolume
 
class  Const_VoxelsVolumeInterpolatedAccessor_MRVoxelsVolumeAccessorMRFunctionVolume
 
class  Const_VoxelsVolumeInterpolatedAccessor_MRVoxelsVolumeAccessorMRSimpleVolumeMinMax
 
class  Const_VoxelsVolumeInterpolatedAccessor_MRVoxelsVolumeAccessorMRVdbVolume
 
class  Const_VoxelTraits_MRFloatGrid
 
class  Const_VoxelTraits_MRVectorFloatMRVoxelId
 
class  Const_VoxelTraits_MRVectorUnsignedShortMRVoxelId
 
class  Const_VoxelTraits_MRVoxelBitSet
 
class  Const_VoxelTraits_StdFunctionFloatFuncFromConstMRVector3iRef
 
class  Const_VoxelTraits_StdFunctionUnsignedCharFuncFromConstMRVector3iRef
 
class  Const_WatershedGraph
 
class  Const_WeightedVertex
 
class  Const_WholeEdgeBMap
 
class  Const_WholeEdgeMap
 
class  Const_WriteRawTiffParams
 
class  Const_XfBasedCache_MRBox3f
 
class  Const_ZCompensateParams
 
class  Const_ZeroOnMove_MRUint64T
 
class  ConstantCuspParams
 
class  ConstBox_AffineXf2d
 
class  ConstBox_AffineXf2f
 
class  ConstBox_AffineXf3d
 
class  ConstBox_AffineXf3f
 
class  ConstBox_Box1d
 
class  ConstBox_Box1f
 
class  ConstBox_Box1i
 
class  ConstBox_Box1i64
 
class  ConstBox_Box2d
 
class  ConstBox_Box2f
 
class  ConstBox_Box2i
 
class  ConstBox_Box2i64
 
class  ConstBox_Box3d
 
class  ConstBox_Box3f
 
class  ConstBox_Box3i
 
class  ConstBox_Box3i64
 
class  ConstBox_Color
 
class  ConstBox_EdgeId
 
class  ConstBox_FaceId
 
class  ConstBox_GraphEdgeId
 
class  ConstBox_GraphVertId
 
class  ConstBox_Matrix2b
 
class  ConstBox_Matrix2d
 
class  ConstBox_Matrix2f
 
class  ConstBox_Matrix2i
 
class  ConstBox_Matrix2i64
 
class  ConstBox_Matrix3b
 
class  ConstBox_Matrix3d
 
class  ConstBox_Matrix3f
 
class  ConstBox_Matrix3i
 
class  ConstBox_Matrix3i64
 
class  ConstBox_Matrix4b
 
class  ConstBox_Matrix4d
 
class  ConstBox_Matrix4f
 
class  ConstBox_Matrix4i
 
class  ConstBox_Matrix4i64
 
class  ConstBox_NodeId
 
class  ConstBox_ObjId
 
class  ConstBox_ObjVertId
 
class  ConstBox_PixelId
 
class  ConstBox_RegionId
 
class  ConstBox_TextureId
 
class  ConstBox_UndirectedEdgeId
 
class  ConstBox_Vector2b
 
class  ConstBox_Vector2d
 
class  ConstBox_Vector2f
 
class  ConstBox_Vector2i
 
class  ConstBox_Vector2i64
 
class  ConstBox_Vector3b
 
class  ConstBox_Vector3d
 
class  ConstBox_Vector3f
 
class  ConstBox_Vector3i
 
class  ConstBox_Vector3i64
 
class  ConstBox_Vector4b
 
class  ConstBox_Vector4d
 
class  ConstBox_Vector4f
 
class  ConstBox_Vector4i
 
class  ConstBox_Vector4i64
 
class  ConstBox_VertId
 
class  ConstBox_ViewportId
 
class  ConstBox_VoxelId
 
struct  ConstPtrAffineXf3f
 
struct  ConstPtrBooleanResultMapperMaps
 
struct  ConstPtrColor
 
struct  ConstPtrEdgeId
 
struct  ConstPtrFaceId
 
struct  ConstPtrGraphEdgeId
 
struct  ConstPtrGraphVertId
 
struct  ConstPtrNodeId
 
struct  ConstPtrObjId
 
struct  ConstPtrObjVertId
 
struct  ConstPtrPixelId
 
struct  ConstPtrPreciseVertCoords
 
struct  ConstPtrPreciseVertCoords2
 
struct  ConstPtrRegionId
 
struct  ConstPtrSimpleVolumeMinMax
 
struct  ConstPtrTextureId
 
struct  ConstPtrUndirectedEdgeId
 
struct  ConstPtrVector2d
 
struct  ConstPtrVector2f
 
struct  ConstPtrVector3d
 
struct  ConstPtrVector3f
 
struct  ConstPtrVector3i
 
struct  ConstPtrVertId
 
struct  ConstPtrVoxelId
 
struct  ConstPtrWeightedVertex
 
class  ContoursDistanceMapOffset
 Structure with parameters for optional offset in distanceMapFromContours function.
 
class  ContoursDistanceMapOptions
 
class  ContoursMeshAlignParams
 Parameters for aligning 2d contours onto mesh surface.
 
class  ContourToDistanceMapParams
 Structure with parameters to generate DistanceMap by Contours.
 
class  CoordinateConverters
 this struct contains coordinate converters float-int-float
 
class  CoordinateConverters2
 this struct contains coordinate converters float-int-float
 
class  CornerControllerObject
 class that holds and manages corner controller object More...
 
struct  CubicBezierCurve
 Cubic Bezier curve. More...
 
class  CubicBezierCurve2d
 
class  CubicBezierCurve2f
 
class  CubicBezierCurve3d
 
class  CubicBezierCurve3f
 
class  CudaAccessor
 The purpose of this class is to access CUDA algorithms without explicit dependency on MRCuda. More...
 
struct  CursorEntranceListener
 class to subscribe on CursorEntranceSingal More...
 
class  CurvePoint
 
struct  CustomButtonParameters
 
class  CutByProjectionSettings
 Settings structurer for cutMeshByProjection function.
 
struct  CutMeshParameters
 Parameters of MR::cutMesh. More...
 
struct  CutMeshResult
 
class  Cylinder3
 
class  Cylinder3Approximation
 
class  Cylinder3d
 
class  Cylinder3f
 
class  CylinderObject
 
struct  DecimatePolylineResult
 Results of MR::decimateContour. More...
 
struct  DecimatePolylineSettings
 Parameters structure for MR::decimatePolyline. More...
 
class  DecimatePolylineSettings_MRVector2f
 
class  DecimatePolylineSettings_MRVector3f
 
struct  DecimateResult
 Results of MR::decimateMesh. More...
 
struct  DecimateSettings
 Parameters structure for MR::decimateMesh. More...
 
class  DefaultSplashWindow
 
class  DeloneSettings
 
class  DemoPlugin
 
class  DenoiseViaNormalsSettings
 
class  DenseBox
 
class  DentalId
 This class represents tooth id.
 
class  DepthPeelingGL
 class to encapsulate depth peeling rendering passes as fall back if alpha sort is not available More...
 
class  DetectTunnelSettings
 
class  Dipole
 
class  Dipoles
 
class  DirectionWidget
 Widget for visualizing the direction. More...
 
struct  Directory
 
struct  DirectoryIterator
 iterator of directory items that will save any errors in (ec) instead of throwing exceptions More...
 
struct  DirectoryRecursive
 
struct  DirectoryRecursiveIterator
 recursive iterator of directory items that will save any errors in (ec) instead of throwing exceptions More...
 
class  Dirty
 
class  DistanceFromWeightedPointsComputeParams
 
class  DistanceFromWeightedPointsParams
 
class  DistanceMap
 
class  DistanceMapLoad
 
class  DistanceMapLoadSettings
 settings for loading distance maps from external formats
 
class  DistanceMapSave
 
class  DistanceMapSaveSettings
 determines how to save distance maps
 
class  DistanceMapToWorld
 This structure store data to transform distance map to world coordinates.
 
class  DistanceMeasurementObject
 
class  DistanceToMeshOptions
 options determining computation of distance from a point to a mesh
 
class  DistanceVolumeParams
 
class  DividePointCloudOptionalOutput
 
class  DividePolylineParameters
 
class  DoubleOffsetSettings
 
struct  DragDropListener
 
struct  DragEndListener
 
struct  DragEntranceListener
 
struct  DragListener
 
struct  DragOverListener
 
struct  DragStartListener
 
struct  DrawButtonParams
 
struct  DrawListener
 
struct  DrawSceneUiListener
 
class  DrawViewportWidgetsItem
 
class  EdgeBitSet
 
class  EdgeBMap
 
class  EdgeColors
 
struct  EdgeId
 
class  EdgeLengthMesh
 
class  EdgeMap
 
class  EdgePathsAStarBuilder
 
class  EdgePathsBuilderT
 the class is responsible for finding smallest metric edge paths on a mesh More...
 
class  EdgePathsBuilderT_MRMetricToAStarPenalty
 
class  EdgePathsBuilderT_MRTrivialMetricToPenalty
 
class  EdgePoint
 encodes a point on an edge of mesh or of polyline
 
class  EdgePointPair
 two edge-points (e.g. representing collision point of two edges)
 
class  Edges
 
class  EdgeScalars
 
class  EdgeSegment
 Represents a segment on one edge.
 
class  EdgeTri
 edge from one mesh and triangle from another mesh
 
class  EmbeddedPython
 
class  EmbeddedStructureParameters
 
class  EndMillCutter
 end mill cutter specifications
 
class  EndMillTool
 end mill tool specifications
 
class  EnumNeihbourFaces
 
class  EnumNeihbourVertices
 
class  Expected_Bool_StdString
 
class  Expected_MRAffineXf3f_StdString
 
class  Expected_MRBooleanResultPoints_StdString
 
class  Expected_MRDistanceMap_StdString
 
class  Expected_MRFaceBitSet_StdString
 
class  Expected_MRFloatGrid_StdString
 
class  Expected_MRFunctionVolume_StdString
 
class  Expected_MRImage_StdString
 
class  Expected_MRLoadedObjects_StdString
 
class  Expected_MRLoadedObjectT_StdString
 
class  Expected_MRLoadedObjectTMRObjectMesh_StdString
 
class  Expected_MRMesh_StdString
 
class  Expected_MRObjectDistanceMap_StdString
 
class  Expected_MRObjectGcode_StdString
 
class  Expected_MRObjectLines_StdString
 
class  Expected_MRObjectPoints_StdString
 
class  Expected_MROneMeshContour_StdString
 
class  Expected_MRPackMapping_StdString
 
class  Expected_MRPointCloud_StdString
 
class  Expected_MRPolyline3_StdString
 
class  Expected_MRSimpleBinaryVolume_StdString
 
class  Expected_MRSimpleVolume_StdString
 
class  Expected_MRSimpleVolumeMinMax_StdString
 
class  Expected_MRSimpleVolumeMinMaxU16_StdString
 
class  Expected_MRTeethMaskToDirectionVolumeConvertor_StdString
 
class  Expected_MRTeethMaskToDirectionVolumeConvertorProcessResult_StdString
 
class  Expected_MRTiffParameters_StdString
 
class  Expected_MRToolPathResult_StdString
 
class  Expected_MRTriMesh_StdString
 
class  Expected_MRUndirectedEdgeBitSet_StdString
 
class  Expected_MRUnionFindMRVertId_StdString
 
class  Expected_MRVdbVolume_StdString
 
class  Expected_MRVector3i_StdString
 
class  Expected_MRVertBitSet_StdString
 
class  Expected_MRVertColors_StdString
 
class  Expected_MRVertCoords_StdString
 
class  Expected_MRVoxelBitSet_StdString
 
class  Expected_MRVoxelsLoadDicomVolume_StdString
 
class  Expected_MRVoxelsLoadDicomVolumeAsVdb_StdString
 
class  Expected_MRVoxelsLoadRawParameters_StdString
 
class  Expected_StdArrayMRSimpleVolumeMinMax3_StdString
 
class  Expected_StdFunctionMRCurvePointFuncFromFloat_StdString
 
class  Expected_StdPairStdVectorMRVertBitSetInt_StdString
 
class  Expected_StdSharedPtrMRMesh_StdString
 
class  Expected_StdSharedPtrMRObject_StdString
 
class  Expected_StdSharedPtrMRObjectVoxels_StdString
 
class  Expected_StdVectorFloat_StdString
 
class  Expected_StdVectorMREdgeId_StdString
 
class  Expected_StdVectorMREdgePoint_MRPathError
 
class  Expected_StdVectorMREdgePoint_StdString
 
class  Expected_StdVectorMRFaceBitSet_StdString
 
class  Expected_StdVectorMRFaceFace_StdString
 
class  Expected_StdVectorMRFloatGrid_StdString
 
class  Expected_StdVectorMRMesh_StdString
 
class  Expected_StdVectorMRMeshLoadNamedMesh_StdString
 
class  Expected_StdVectorMROneMeshContour_StdString
 
class  Expected_StdVectorMRPointsLoadNamedCloud_StdString
 
class  Expected_StdVectorMRVdbVolume_StdString
 
class  Expected_StdVectorMRVertBitSet_StdString
 
class  Expected_StdVectorStdPairMRVertIdMRVertId_StdString
 
class  Expected_StdVectorStdSharedPtrMRObjectVoxels_StdString
 
class  Expected_StdVectorStdString_StdString
 
class  Expected_StdVectorStdVectorMREdgeId_StdString
 
class  Expected_StdVectorStdVectorMRVector2f_StdString
 
class  Expected_StdVectorStdVectorMRVector3f_StdString
 
class  Expected_Void_StdString
 
class  Face2RegionMap
 
class  FaceBitSet
 
class  FaceBMap
 
class  FaceColorMapAggregator
 
class  FaceColors
 
class  FaceDistancesSettings
 
class  FaceFace
 a pair of faces
 
class  FaceFaceFace
 a triple of faces
 
struct  FaceId
 
class  FaceMap
 
class  FaceNormals
 
class  FaceScalars
 
class  FanRecord
 describes one fan of triangles around a point excluding the point
 
class  FanRecordWithCenter
 describes one fan of triangles around a point including the point
 
class  FastWindingNumber
 
class  FeatureObject
 An interface class which allows feature objects to share setters and getters on their main properties, for convenient presentation in the UI.
 
class  FeatureObjectProjectPointResult
 
class  FeatureObjectSharedProperty
 
class  Features
 
class  FewSmallest
 the class stores some number of smallest elements from a larger number of candidates More...
 
class  FewSmallest_MRPointsProjectionResult
 
class  File
 the class to open C FILE handle and automatically close it in the destructor More...
 
struct  FileDialogSignals
 This structure contains global signals for file dialogs, that are called on valid selection of file or folder. More...
 
struct  FileLoadOptions
 
struct  FileParameters
 
class  FillHoleItem
 
struct  FillHoleMetric
 Holds metrics for fillHole and buildCylinderBetweenTwoHoles triangulation
. More...
 
class  FillHoleNicelySettings
 
struct  FillHoleParams
 Parameters structure for MR::fillHole
Structure has some options to control MR::fillHole. More...
 
class  FillHolesWithExtraPointsParams
 
class  FillingSurface
 
class  FindDisorientationParams
 Parameters for findDisorientedFaces function.
 
class  FindInnerShellSettings
 
class  FindOutliersParams
 Outlier point search parameters.
 
class  FindOverhangsSettings
 parameters for MR::findOverhangs
 
class  FindOverlappingSettings
 
class  FindProjectionOnPointsSettings
 settings for IPointsProjector::findProjections
 
struct  FitBoxParams
 
class  FitDataMenuItem
 
struct  FitDataParams
 
class  FitSelectedObjectsMenuItem
 
class  FitSelectedPrimitivesMenuItem
 
class  FixCreasesParams
 Parameters structure for fixMeshCreases function.
 
class  FixMeshDegeneraciesParams
 
class  FixUndercuts
 
struct  FlatTree
 
class  FloatGrid
 wrapper class that helps mrbind to avoid excess MRVDBFloatGrid.h includes
 
class  FloatGridComponents
 
class  FlowAggregator
 this class can track multiple flows and find in each mesh vertex the amount of water reached it
 
class  FlowOrigin
 
class  FormatRegistry
 
class  FramebufferData
 
class  FrameCounter
 
class  FrameRedrawRequest
 class for requesting frame redraw in some time More...
 
class  FreeFormBestFit
 
class  FreeFormDeformer
 Class for deforming mesh using Bernstein interpolation.
 
class  FunctionVolume
 
class  FunctionVolumeU8
 
class  GcodeLoad
 
class  GcodeProcessor
 
class  GcodeToolsLibrary
 
class  GCommand
 
class  GeneralOffsetParameters
 allows the user to select in the parameters which offset algorithm to call
 
class  GlBuffer
 
class  GLStaticHolder
 
class  GlTexture
 
class  GlTexture2
 
class  GlTexture2DArray
 
class  GlTexture3
 
class  Graph
 mathematical graph consisting from vertices and undirected edges
 
class  GraphEdgeBitSet
 
struct  GraphEdgeId
 
class  GraphVertBitSet
 
struct  GraphVertId
 
class  GridSettings
 settings defining regular grid, where each quadrangular cell is split on two triangles in one of two ways
 
class  GridToMeshSettings
 parameters of OpenVDB Grid to Mesh conversion using Dual Marching Cubes algorithm
 
class  Heap
 stores map from element id in[0, size) to T; More...
 
class  Heap_Float_MRGraphVertId_StdGreaterFloat
 
class  Histogram
 
class  Historian
 
class  HistoryAction
 
class  HistoryStore
 This class stores history stack for undo/redo. More...
 
struct  HoleEdgePoint
 
class  HoleFillPlan
 concise representation of proposed hole triangulation
 
class  IComputeToolDistance
 Interface for custom tool distance computation implementations.
 
struct  IConnectable
 
class  ICP
 
class  ICPGroupPair
 
class  ICPGroupPairs
 
class  ICPPairData
 
class  ICPProperties
 parameters of ICP algorithm
 
class  Id
 
class  Id< EdgeTag >
 
class  Id< VoxelTag >
 
class  Id_MRICPElemtTag
 
class  IDragDropHandler
 
struct  IdRange
 range of indices [beg, end) More...
 
class  IFastWindingNumber
 Abstract class for fast approximate computation of generalized winding number for a mesh (using its AABB tree)
 
class  IFastWindingNumberByParts
 Abstract class that complements IFastWindingNumber with chunked processing variants of its methods.
 
class  IICPTreeIndexer
 structure to find leafs and groups of each in cascade mode
 
class  Image
 
class  ImageLoad
 
class  ImageSave
 
class  ImageTransform
 
class  ImGuiImage
 
class  ImGuiMenu
 
class  ImproveSamplingSettings
 
class  InflateSettings
 
class  InplaceStack
 Container class implementing in-place static sized stack. More...
 
class  InSphere
 found maximal inscribed sphere touching input point with center along given direction
 
class  InSphereSearchSettings
 controls the finding of maximal inscribed sphere in mesh
 
struct  InterruptCloseListener
 
struct  IntersectionPrecomputes
 
struct  IntersectionPrecomputes2
 
class  IntersectionPrecomputes2_Double
 
class  IntersectionPrecomputes2_Float
 
class  IntersectionPrecomputes_Double
 
class  IntersectionPrecomputes_Float
 
class  InTreePathBuilder
 
class  IntrinsicDeloneSettings
 
class  IOFilter
 
class  IPluginUpdate
 
class  IPointPairs
 Simple interface for pairs holder.
 
class  IPointsProjector
 abstract class for computing the closest points of point clouds
 
class  IPointsToMeshProjector
 Abstract class, computes the closest point on mesh to each of given points. Pure virtual functions must be implemented.
 
class  IRenderObject
 
class  ISceneSelectionChange
 
class  ISceneStateCheck
 
struct  IsVisualizeMaskEnum
 
struct  IsVisualizeMaskEnum< DimensionsVisualizePropertyType >
 
struct  IsVisualizeMaskEnum< FeatureVisualizePropertyType >
 
struct  IsVisualizeMaskEnum< LabelVisualizePropertyType >
 
struct  IsVisualizeMaskEnum< LinesVisualizePropertyType >
 
struct  IsVisualizeMaskEnum< MeshVisualizePropertyType >
 
struct  IsVisualizeMaskEnum< PointMeasurementVisualizePropertyType >
 
struct  IsVisualizeMaskEnum< PointsVisualizePropertyType >
 
struct  IsVisualizeMaskEnum< VisualizeMaskType >
 
class  IsVisualizeMaskEnum_MRAnyVisualizeMaskEnum
 
class  IsVisualizeMaskEnum_MRDimensionsVisualizePropertyType
 
class  IsVisualizeMaskEnum_MRFeatureVisualizePropertyType
 
class  IsVisualizeMaskEnum_MRLabelVisualizePropertyType
 
class  IsVisualizeMaskEnum_MRLinesVisualizePropertyType
 
class  IsVisualizeMaskEnum_MRMeshVisualizePropertyType
 
class  IsVisualizeMaskEnum_MRPointMeasurementVisualizePropertyType
 
class  IsVisualizeMaskEnum_MRPointsVisualizePropertyType
 
class  IsVisualizeMaskEnum_MRVisualizeMaskType
 
class  ItemEnabledPerViewport
 
struct  IteratorRange
 
class  IteratorRange_MRChunkIterator
 
class  IteratorRange_MRPolylineUndirectedEdgeIterator
 
class  IteratorRange_MRRingIteratorMRNextEdgeSameLeft
 
class  IteratorRange_MRRingIteratorMRNextEdgeSameOrigin
 
class  IteratorRange_MRUndirectedEdgeIterator
 
class  ITransformControls
 
class  IViewerSettingsManager
 
struct  KeyDownListener
 
struct  KeyRepeatListener
 
struct  KeyUpListener
 
class  LambdaRibbonItem
 
class  Laplacian
 
struct  LaunchParams
 
struct  Line
 
class  Line2d
 
class  Line2f
 
class  Line3d
 
class  Line3f
 
struct  Line3Mesh
 
class  Line3Mesh_Double
 
class  Line3Mesh_Float
 
class  LineInterpolationParams
 
class  LineObject
 
struct  LineSegm
 
class  LineSegm2d
 
class  LineSegm2f
 
class  LineSegm3d
 
class  LineSegm3f
 
class  LinesLoad
 
class  LinesLoadSettings
 setting for polyline loading from external format, and locations of optional output data
 
class  LinesSave
 
class  LoadedObjects
 result of loading (e.g. from a file) as a number of objects
 
class  LoadedObjectT
 result of loading (e.g. from a file) as one object (with possible subobjects)
 
class  LoadedObjectT_MRObjectLines
 
class  LoadedObjectT_MRObjectMesh
 
class  LoadedObjectT_MRObjectPoints
 
class  LoadedObjectT_MRObjectVoxels
 
class  Logger
 Make default spd logger. More...
 
class  LoggingStreambuf
 A custom streambuf that outputs things directly to the default spdlog logger. More...
 
class  MakeBridgeResult
 
class  MakeDegenerateBandAroundRegionParams
 
class  MakeSignedByWindingNumberSettings
 
struct  MapOrHashMap
 
class  MapOrHashMap_MREdgeId_MREdgeId
 
class  MapOrHashMap_MRFaceId_MRFaceId
 
class  MapOrHashMap_MRUndirectedEdgeId_MREdgeId
 
class  MapOrHashMap_MRUndirectedEdgeId_MRUndirectedEdgeId
 
class  MapOrHashMap_MRVertId_MRVertId
 
class  MarchingCubesByParts
 
class  MarchingCubesParams
 
class  MarkedContour3f
 
class  MarkedVoxelSlice
 ImGui visualization of a slice from voxel object and seed marks on it. More...
 
struct  Matrix
 
struct  Matrix2
 
struct  Matrix2b
 
struct  Matrix2d
 
struct  Matrix2f
 
struct  Matrix2i
 
struct  Matrix2i64
 
struct  Matrix3
 
class  Matrix3_Bool
 
class  Matrix3_Double
 
class  Matrix3_Float
 
class  Matrix3_Int
 
class  Matrix3_MRInt64T
 
class  Matrix3_UnsignedChar
 
struct  Matrix3b
 
struct  Matrix3d
 
struct  Matrix3f
 
struct  Matrix3i
 
struct  Matrix3i64
 
struct  Matrix4
 
class  Matrix4_UnsignedChar
 
struct  Matrix4b
 
struct  Matrix4d
 
struct  Matrix4f
 
struct  Matrix4i
 
struct  Matrix4i64
 
class  Matrix_Float
 
struct  MaxArg
 
class  MeasurementObject
 
struct  MenuItemCaptionSize
 
struct  MenuItemInfo
 
struct  MergeVolumePartSettings
 Parameters' structure for MR::mergeVolumePart. More...
 
class  Mesh
 
class  MeshApproxRelaxParams
 
class  MeshAttributesToUpdate
 
class  MeshBuilder
 
class  MeshComponents
 
class  MeshDiff
 
class  MeshEqualizeTriAreasParams
 
class  MeshIntersectionResult
 
class  MeshLoad
 
class  MeshLoadSettings
 setting for mesh loading from external format, and locations of optional output data
 
class  MeshMeshConverter
 
class  MeshMeshDistanceResult
 
class  MeshMeshSignedDistanceResult
 
class  MeshModifier
 
class  MeshNormals
 
class  MeshOnVoxelsT
 
class  MeshOnVoxelsT_ConstMRMesh_MRFunctionVolume
 
class  MeshOnVoxelsT_ConstMRMesh_MRSimpleVolumeMinMax
 
class  MeshOnVoxelsT_ConstMRMesh_MRVdbVolume
 
class  MeshOnVoxelsT_MRMesh_MRFunctionVolume
 
class  MeshOnVoxelsT_MRMesh_MRSimpleVolumeMinMax
 
class  MeshOnVoxelsT_MRMesh_MRVdbVolume
 
class  MeshOrPoints
 
class  MeshOrPointsObject
 
class  MeshOrPointsXf
 an object and its transformation to global space with other objects
 
class  MeshPart
 
class  MeshPoint
 describes the point of measurement on mesh
 
class  MeshPointAndDistance
 
class  MeshProjectionParameters
 
class  MeshProjectionResult
 
class  MeshProjectionTransforms
 
struct  MeshRegion
 
class  MeshRelaxParams
 
class  MeshSave
 
class  MeshTexture
 
class  MeshToDirectionVolumeParams
 
class  MeshToDistanceMapParams
 
class  MeshToDistanceVolumeParams
 
class  MeshTopology
 
class  MeshTopologyDiff
 
class  MeshToVolumeParams
 
class  MeshTriPoint
 
class  MeshVertPart
 
class  MeshVoxelsConverter
 
class  MetricToAStarPenalty
 
struct  MinArg
 
struct  MinMaxArg
 
class  MinMaxArg_Float_MRVertId
 
class  Misc
 
class  ModalDialog
 Helper class to display modal dialogs. ModalDialogSettings. More...
 
struct  ModalDialogSettings
 Settings for ModalDialog. More...
 
class  ModelBaseRenderParams
 
class  ModelPointsData
 structure to contain pointers to model data
 
class  ModelRenderParams
 Mesh rendering parameters for primary rendering (as opposed to the picker).
 
struct  MouseClickListener
 
class  MouseController
 
struct  MouseDownListener
 
struct  MouseMoveListener
 
struct  MouseScrollListener
 
struct  MouseUpListener
 
class  MovementBuildBodyParams
 
class  MoveMeshToVoxelMaxDerivSettings
 
class  MoveObjectByMouse
 
class  MoveObjectByMouseImpl
 
struct  MruFormatParameters
 
struct  MultiListener
 
class  MultiMeshIntersectionResult
 
class  MultiRayMeshIntersectResult
 
class  MultiwayAligningTransform
 
class  MultiwayICP
 
class  MultiwayICPSamplingParameters
 Parameters that are used for sampling of the MultiwayICP objects.
 
class  MutexOwner
 
struct  NameTagClickListener
 
class  NewEdgesMap
 
class  NextEdgeSameLeft
 
class  NextEdgeSameOrigin
 
struct  NoCtor
 
struct  NoCtor< T >
 
class  NoCtor_Char
 
class  NoCtor_MREdgeId
 
class  NoCtor_MRFaceId
 
class  NoCtor_MRGraphEdgeId
 
class  NoCtor_MRGraphVertId
 
class  NoCtor_MRIdMRICPElemtTag
 
class  NoCtor_MRNodeId
 
class  NoCtor_MRObjId
 
class  NoCtor_MRPixelId
 
class  NoCtor_MRRegionId
 
class  NoCtor_MRTextureId
 
class  NoCtor_MRUndirectedEdgeId
 
class  NoCtor_MRVertId
 
class  NoCtor_MRVoxelId
 
class  NoCtor_UnsignedChar
 
class  NodeBitSet
 
struct  NoDefInit
 
class  NoDefInit_MREdgeId
 
class  NoDefInit_MRFaceId
 
class  NoDefInit_MRGraphEdgeId
 
class  NoDefInit_MRGraphVertId
 
class  NoDefInit_MRIdMRICPElemtTag
 
class  NoDefInit_MRNodeId
 
class  NoDefInit_MRObjId
 
class  NoDefInit_MRPixelId
 
class  NoDefInit_MRRegionId
 
class  NoDefInit_MRTextureId
 
class  NoDefInit_MRUndirectedEdgeId
 
class  NoDefInit_MRVertId
 
class  NoDefInit_MRVoxelId
 
struct  NodeId
 
class  NodeNode
 
class  NoInit
 
class  NoInitId
 
class  NoInitNodeId
 
class  NoiseSettings
 
struct  NoModelCheck
 
class  NormalsToPoints
 
struct  NotificationTags
 
struct  NoVisualRepresentationCheck
 
class  NumSum
 
class  ObjBitSet
 
class  Object
 named object in the data model
 
class  ObjectChildrenHolder
 
class  ObjectComparableWithReference
 
class  ObjectDistanceMap
 
class  ObjectFactory
 
class  ObjectFactoryBase
 
class  ObjectGcode
 
class  ObjectImGuiLabel
 
class  ObjectLabel
 
class  ObjectLines
 
class  ObjectLinesHolder
 
class  ObjectMesh
 
class  ObjectMeshData
 mesh and its per-element attributes for ObjectMeshHolder
 
class  ObjectMeshHolder
 
class  ObjectMeshMergeOptions
 options to better control MR::merge function
 
class  ObjectPoints
 
class  ObjectPointsHolder
 
class  ObjectSave
 
class  ObjectTagEventDispatcher
 class for dispatching object tag addition/removal events
 
class  ObjectTransformWidget
 
class  ObjectVoxels
 
struct  ObjId
 
struct  ObjKindTraits
 Various information about different types of objects. More...
 
struct  ObjKindTraits< FeaturesObjectKind::Circle >
 
struct  ObjKindTraits< FeaturesObjectKind::Cone >
 
struct  ObjKindTraits< FeaturesObjectKind::Cylinder >
 
struct  ObjKindTraits< FeaturesObjectKind::Line >
 
struct  ObjKindTraits< FeaturesObjectKind::Plane >
 
struct  ObjKindTraits< FeaturesObjectKind::Point >
 
struct  ObjKindTraits< FeaturesObjectKind::Sphere >
 
class  ObjKindTraits_MRFeaturesObjectKindCircle
 
class  ObjKindTraits_MRFeaturesObjectKindCone
 
class  ObjKindTraits_MRFeaturesObjectKindCylinder
 
class  ObjKindTraits_MRFeaturesObjectKindLine
 
class  ObjKindTraits_MRFeaturesObjectKindPlane
 
class  ObjKindTraits_MRFeaturesObjectKindPoint
 
class  ObjKindTraits_MRFeaturesObjectKindSphere
 
class  ObjMap
 
class  ObjTreeTraits
 
struct  ObjVertId
 
class  OffsetContourIndex
 
class  OffsetContoursOrigins
 
class  OffsetContoursParams
 
class  OffsetContoursRestoreZParams
 Parameters of restoring Z coordinate of XY offset 3d contours.
 
class  OffsetParameters
 
class  OneMeshContour
 
class  OneMeshIntersection
 
class  OpenDICOMsMenuItem
 
class  OpenDirectoryMenuItem
 
class  OpenFilesMenuItem
 
class  OpenRawVoxelsPlugin
 
class  OpenVdbFloatGrid
 this class just hides very complex type of typedef openvdb::FloatGrid
 
class  OriginAndDimensions
 shift of zero voxel in 3D space and dimensions of voxel-grid
 
class  OutlierParams
 Parameters of various criteria for detecting outlier points.
 
class  OutliersDetector
 
class  OutputFlows
 
struct  overloaded
 
class  PackMapping
 
class  Palette
 Class to hold one dimension texture with value to UV mapping. More...
 
class  PalettePresets
 Class to save and load user palette presets. More...
 
struct  Parabola
 Represents quadratic function f(x) = a*x*x + b*x + c. More...
 
class  Parabolad
 
class  Parabolaf
 
class  Parallel
 
class  ParallelProgressReporter
 
class  PartialChangeMeshAction
 Undo action for efficiently storage of partial change in mesh (e.g. a modification of small region)
 
class  PartialChangeMeshDataAction
 Undo action for ObjectMeshData change partially.
 
class  PartialChangeMeshPointsAction
 Undo action for efficiently storage of partial change in mesh points (e.g. a modification of small region)
 
class  PartialChangeMeshTopologyAction
 Undo action for efficiently storage of partial change in mesh topology (e.g. a modification of small region)
 
class  PartMapping
 mapping among elements of source mesh, from which a part is taken, and target mesh
 
class  Pdf
 
class  PdfParameters
 Parameters of document style.
 
class  Phmap
 
class  PickPointManager
 
class  PixelBitSet
 
struct  PixelId
 
class  PlanarTriangulation
 
struct  Plane3
 
class  Plane3d
 
class  Plane3f
 
class  PlaneAccumulator
 Class to accumulate planes to find then their crossing point.
 
class  PlaneObject
 
class  PlaneWidget
 
class  PluginCloseOnChangeMesh
 
class  PluginCloseOnChangePointCloud
 
class  PluginCloseOnEscPressed
 
class  PluginCloseOnSelectedObjectRemove
 
class  PluginUpdateOnChangeMeshPart
 
class  PluginUpdateOr
 
class  PlyLoadParams
 optional load artifacts and other setting for PLY file loading
 
class  PointAccumulator
 Class to accumulate points and make best line / plane approximation.
 
class  PointAndDistance
 
class  PointCloud
 
class  PointCloudApproxRelaxParams
 
class  PointCloudComponents
 
class  PointCloudPart
 represents full point cloud (if region is nullptr) or some portion of point cloud (if region pointer is valid)
 
class  PointCloudRelaxParams
 
struct  PointInAllSpaces
 
class  PointMeasurementObject
 
class  PointObject
 
class  PointOnFace
 a point located on some mesh's face
 
class  PointOnObject
 
class  PointPair
 Stores a pair of points: one samples on the source and the closest to it on the target.
 
class  PointPairs
 
class  PointsLoad
 
class  PointsLoadSettings
 
class  PointsProjectionResult
 
class  PointsProjector
 default implementation of IPointsProjector
 
class  PointsSave
 
class  PointsToDistanceVolumeParams
 
class  PointsToMeshParameters
 
class  PointsToMeshProjector
 Computes the closest point on mesh to each of given points on CPU.
 
class  PointToPlaneAligningTransform
 
class  PointToPointAligningTransform
 
struct  Polyline
 
class  Polyline2
 
class  Polyline2ProjectionWithOffsetResult
 
class  Polyline3
 
class  PolylineComponents
 
class  PolylineIntersectionResult2
 
class  PolylineMaker
 simplifies construction of connected polyline in the topology
 
struct  PolylineProjectionResult
 
class  PolylineProjectionResult2
 
class  PolylineProjectionResult3
 
class  PolylineProjectionResult3Arg
 
struct  PolylineProjectionWithOffsetResult
 
class  PolylineProjectionWithOffsetResult3
 
class  PolylineSubdivideSettings
 
class  PolylineToDistanceVolumeParams
 
class  PolylineTopology
 
class  PolylineToVolumeParams
 Settings to conversion polyline to volume.
 
struct  PolylineTraits
 
struct  PolylineTraits< Vector2f >
 
struct  PolylineTraits< Vector3f >
 
class  PolylineTraits_MRVector2f
 
class  PolylineTraits_MRVector3f
 
class  PolylineUndirectedEdgeIterator
 
struct  Polynomial
 
class  Polynomial_Double_0
 
class  Polynomial_Double_1
 
class  Polynomial_Double_2
 
class  Polynomial_Double_3
 
class  Polynomial_Double_4
 
class  Polynomial_Double_5
 
class  Polynomial_Double_6
 
class  Polynomial_Float_0
 
class  Polynomial_Float_1
 
class  Polynomial_Float_2
 
class  Polynomial_Float_3
 
class  Polynomial_Float_4
 
class  Polynomial_Float_5
 
class  Polynomial_Float_6
 
struct  PolynomialWrapper
 This is a unifying interface for a polynomial of some degree, known only in runtime. More...
 
class  PolynomialWrapper_Double
 
class  PolynomialWrapper_Float
 
class  PositionedText
 
class  PositionVertsSmoothlyParams
 
struct  PostDrawListener
 
struct  PostFocusListener
 class to subscribe on PostFocusSingal More...
 
struct  PostRescaleListener
 
struct  PostResizeListener
 
class  PrecipitationSimulator
 the class models water increase in the terrain under the rain with constant precipitation
 
class  PreciseVertCoord
 
class  PreciseVertCoords
 
class  PreciseVertCoords2
 
struct  PreDrawListener
 
struct  PreSetupViewListener
 
class  PriorityQueue
 similar to std::priority_queue, but with ability to access underlying vector to custom modify its elements More...
 
struct  ProgressInterrupter
 
class  ProjectAttributeParams
 this structure contains transformation for projection from one mesh to another and progress callback
 
class  ProvidesViewportWidget
 
struct  PtrAffineXf3f
 
struct  PtrBooleanResultMapperMaps
 
struct  PtrColor
 
struct  PtrEdgeId
 
struct  PtrFaceId
 
struct  PtrGraphEdgeId
 
struct  PtrGraphVertId
 
struct  PtrNodeId
 
struct  PtrObjId
 
struct  PtrObjVertId
 
struct  PtrPixelId
 
struct  PtrPreciseVertCoords
 
struct  PtrPreciseVertCoords2
 
struct  PtrRegionId
 
struct  PtrSimpleVolumeMinMax
 
struct  PtrTextureId
 
struct  PtrUndirectedEdgeId
 
struct  PtrVector2d
 
struct  PtrVector2f
 
struct  PtrVector3d
 
struct  PtrVector3f
 
struct  PtrVector3i
 
struct  PtrVertId
 
struct  PtrVoxelId
 
struct  PtrWeightedVertex
 
class  PythonExport
 
struct  PythonFunctionAdder
 
struct  QuadraticForm
 
class  QuadraticForm2d
 
class  QuadraticForm2f
 
class  QuadraticForm3d
 
class  QuadraticForm3f
 
class  QuadricApprox
 
class  QuadTextureVertexObject
 
struct  Quaternion
 
class  Quaterniond
 
class  Quaternionf
 
class  RadiusMeasurementObject
 
class  RangeCounter
 functor to calculate tile and leaf valid nodes count More...
 
class  RangeProcessor
 Class to use in tbb::parallel_reduce for openvdb::tree transformation. More...
 
class  RangeProcessorSingle
 Class to use in tbb::parallel_reduce for tree operations that do not require an output tree. More...
 
class  RangeProgress
 
struct  RangeSize
 
class  RawTiffOutput
 
struct  RayOrigin
 
class  RayOrigin_Float
 
class  RebuildMeshSettings
 
class  RecentFilesStore
 
class  RectIndexer
 a class for converting 2D integer coordinates into 1D linear coordinates and backward
 
class  RedoMenuItem
 
class  RefineParameters
 Optional parameters for refineFeatureObject.
 
class  RegionBitSet
 
struct  RegionId
 
class  RegisterRenderObjectConstructor
 
class  RegularMapMesher
 Class for making mesh from regular distance map.
 
class  RelaxParams
 
class  RemeshSettings
 
class  RenderAngleObject
 
class  RenderBufferRef
 
class  RenderDistanceObject
 
class  RenderImGuiLabelObject
 
class  RenderLabelObject
 
class  RenderLinesObject
 
class  RenderMeshObject
 
class  RenderNameObject
 
class  RenderObjectBuffer
 
class  RenderObjectCombinator
 
class  RenderPointObject
 
class  RenderPointsObject
 
class  RenderRadiusObject
 
class  RenderResetDirtyComponent
 
class  RenderVolumeObject
 
class  ResetSceneMenuItem
 
class  ResolveMeshDegenSettings
 
class  RestoringStreamsSink
 
class  RibbonButtonDrawer
 class for drawing ribbon menu buttons More...
 
struct  RibbonConfig
 
class  RibbonFontHolder
 
class  RibbonFontManager
 
class  RibbonIcons
 
class  RibbonMenu
 
class  RibbonMenuItem
 
class  RibbonMenuItemAdder
 
class  RibbonMenuItemAdderT
 
class  RibbonMenuItemCall
 
class  RibbonMenuSearch
 
struct  RibbonMenuUIConfig
 
struct  RibbonNotification
 
class  RibbonNotifier
 
class  RibbonSceneHideAll
 
class  RibbonSceneObjectsListDrawer
 class for drawing a list of scene objects in RibbonMenu style More...
 
class  RibbonSceneRemoveSelected
 
class  RibbonSceneRename
 
class  RibbonSceneSelectAll
 
class  RibbonSceneShowAll
 
class  RibbonSceneShowOnlyNext
 
class  RibbonSceneShowOnlyPrev
 
class  RibbonSceneSortByName
 
class  RibbonSceneUnselectAll
 
struct  RibbonSchema
 
class  RibbonSchemaHolder
 
class  RibbonSchemaLoader
 
class  RibbonSchemaLoadListener
 
struct  RibbonTab
 
struct  RigidScaleXf3
 
class  RigidScaleXf3d
 
class  RigidScaleXf3f
 
struct  RigidXf3
 
class  RigidXf3d
 
class  RigidXf3f
 
class  RingIterator
 
class  RingIterator_MRNextEdgeSameLeft
 
class  RingIterator_MRNextEdgeSameOrigin
 
class  SaveObjectMenuItem
 
struct  SaveObjectSettings
 
class  SaveOnClosePlugin
 
class  SaveSceneAsMenuItem
 
class  SaveSceneMenuItem
 
class  SaveSelectedMenuItem
 
class  SaveSettings
 determines how to save points/lines/mesh
 
class  SceneCache
 
class  SceneColors
 
class  SceneLoad
 
class  SceneObjectsListDrawer
 class for drawing a list of scene objects (and handling interaction with it) More...
 
struct  SceneReorder
 
class  SceneRoot
 
class  SceneRootObject
 Object that is parent of all scene.
 
class  SceneSelectionChangeClose
 
class  SceneSelectionChangeRestart
 
class  SceneSettings
 
class  SceneStateAndCheck
 
class  SceneStateAtLeastCheck
 
class  SceneStateAtLeastCheck< N, ObjectT, NoModelCheck >
 
class  SceneStateAtLeastCheck< N, ObjectT, NoVisualRepresentationCheck >
 
class  SceneStateExactCheck
 
class  SceneStateExactCheck< N, ObjectT, NoModelCheck >
 
class  SceneStateExactCheck< N, ObjectT, NoVisualRepresentationCheck >
 
class  SceneStateOrCheck
 
class  SceneTextureGL
 
class  ScopeHistory
 The purpose of this class is to combine all actions appended to global history store in one big action to undo/redo them all at once. More...
 
class  SearchPathSettings
 Geo path search settings.
 
struct  SegmEndColors
 
class  SegmentSegmentIntersectResult
 
struct  SegmPoint
 encodes a point inside a line segment using relative distance in [0,1] More...
 
class  SegmPointd
 
class  SegmPointf
 
class  SelectObjectByClick
 
class  SelfIntersections
 
class  SeparationPointStorage
 storage for points on voxel edges used in Marching Cubes algorithms
 
class  SetBitIteratorT
 iterator to enumerate all indices with set bits in BitSet class or its derivatives More...
 
class  SetNew
 argument of this type indicates that the object is in old state, and the following argument is new state to be set
 
class  SetViewportConfigPresetMenuItem
 
class  SetViewPresetMenuItem
 
struct  ShaderWarning
 
class  ShadowsGL
 
class  SharedThreadSafeOwner
 
class  SharpenMarchingCubesMeshSettings
 
class  SharpOffsetParameters
 
class  ShellVertexInfo
 information about shell vertex
 
class  ShiftTransformer
 functor for shifting voxels More...
 
struct  ShortcutKey
 
class  ShortcutManager
 
struct  Signal
 
class  SignedDistanceToMeshOptions
 options determining computation of signed distance from a point to a mesh
 
class  SignedDistanceToMeshResult
 
class  SimpleBinaryVolume
 
struct  SimpleTimeRecord
 
class  SimpleVolume
 
class  SimpleVolumeMinMax
 
class  SimpleVolumeMinMaxU16
 
class  SimpleVolumeU16
 
class  SkyPatch
 this class represents a portion of the sky, and its radiation
 
class  SliceInfo
 
class  SliceInfoBase
 
class  SomeLocalTriangulations
 describes a number of local triangulations of some points (e.g. assigned to a thread)
 
class  SortIntersectionsData
 
struct  SpaceMouseDownListener
 class to subscribe on SpaceMouseDownSgnal More...
 
struct  SpaceMouseMoveListener
 class to subscribe on SpaceMouseMoveSignal More...
 
struct  SpaceMouseUpListener
 class to subscribe on SpaceMouseUpSignal More...
 
class  SpacingSettings
 
class  SparsePolynomial
 
struct  Sphere
 
class  Sphere2d
 
class  Sphere2f
 
class  Sphere3d
 
class  Sphere3f
 
class  SphereObject
 
class  SphereParams
 
class  SplashWindow
 
class  SplineSettings
 
class  Src2TgtMaps
 use this adapter to call functions expecting PartMapping parameter to receive src2tgt dense maps
 
class  StateBasePlugin
 
class  StateListenerPlugin
 
class  Std
 
struct  StitchHolesParams
 Parameters structure for MR::buildCylinderBetweenTwoHoles
Structure has some options to control MR::buildCylinderBetweenTwoHoles. More...
 
struct  StopOnTrueCombiner
 
class  SubdivideSettings
 
class  SurfaceDistanceBuilder
 this class is responsible for iterative construction of distance map along the surface
 
class  SurfaceManipulationWidget
 widget for surface modifying @detail available 3 modes: add (move surface region in direction of normal) remove (move surface region in opposite direction to normal) relax (relax surface region) More...
 
class  SurfacePointWidget
 
class  SwapRootAction
 
class  SymbolMeshParams
 
struct  SymMatrix2
 
class  SymMatrix2b
 
class  SymMatrix2d
 
class  SymMatrix2f
 
class  SymMatrix2i
 
class  SymMatrix2i64
 
struct  SymMatrix3
 
class  SymMatrix3_UnsignedChar
 
class  SymMatrix3b
 
class  SymMatrix3d
 
class  SymMatrix3f
 
class  SymMatrix3i
 
class  SymMatrix3i64
 
struct  SymMatrix4
 
class  SymMatrix4_UnsignedChar
 
class  SymMatrix4b
 
class  SymMatrix4d
 
class  SymMatrix4f
 
class  SymMatrix4i
 
class  SymMatrix4i64
 
class  SystemMemory
 
class  SystemPath
 system directory path manager
 
struct  TbbTaskArenaAndGroup
 
class  TbbThreadMutex
 
class  TeethMaskToDirectionVolumeConvertor
 
class  TerminalVertex
 
class  TextMeshAlignParams
 
class  TextureBitSet
 
struct  TextureId
 
class  TexturePerFace
 
class  Tgt2SrcMaps
 use this adapter to call functions expecting PartMapping parameter to receive tgt2src dense maps
 
class  ThickenParams
 
struct  ThreadRootTimeRecord
 
class  TiffParameters
 
class  Timer
 
struct  TimeRecord
 
class  Toolbar
 class to draw toolbar and toolbar customize windows More...
 
class  ToolPathParams
 
class  ToolPathResult
 
struct  TouchEndListener
 
class  TouchesController
 
struct  TouchMoveListener
 
class  TouchpadController
 
struct  TouchpadParameters
 
struct  TouchpadRotateGestureBeginListener
 class to subscribe on TouchpadRotateGestureBeginEvent More...
 
struct  TouchpadRotateGestureEndListener
 class to subscribe on TouchpadRotateGestureEndEvent More...
 
struct  TouchpadRotateGestureUpdateListener
 class to subscribe on TouchpadRotateGestureUpdateEvent More...
 
struct  TouchpadSwipeGestureBeginListener
 class to subscribe on TouchpadSwipeGestureBeginEvent More...
 
struct  TouchpadSwipeGestureEndListener
 class to subscribe on TouchpadSwipeGestureEndEvent More...
 
struct  TouchpadSwipeGestureUpdateListener
 class to subscribe on TouchpadSwipeGestureUpdateEvent More...
 
struct  TouchpadZoomGestureBeginListener
 class to subscribe on TouchpadZoomGestureBeginEvent More...
 
struct  TouchpadZoomGestureEndListener
 class to subscribe on TouchpadZoomGestureEndEvent More...
 
struct  TouchpadZoomGestureUpdateListener
 class to subscribe on TouchpadZoomGestureUpdateEvent More...
 
struct  TouchStartListener
 
class  TransformControls
 
class  TransformedMesh
 just stores a mesh and its transformation to some fixed reference frame
 
class  TransformVdbVolumeResult
 
class  TransparencyMode
 struct to determine transparent rendering mode
 
class  TriangleSegmentIntersectResult
 
class  Triangulation
 
class  TriangulationHelpers
 
class  TriangulationParameters
 Parameters of point cloud triangulation.
 
class  TriCornerUVCoords
 
class  TriIntersectResult
 
class  TriMesh
 
class  TrimOptionalOutput
 
class  TrimWithPlaneParams
 
struct  TriPoint
 encodes a point inside a triangle using barycentric coordinates More...
 
class  TriPointd
 
class  TriPointf
 
class  TrivialMetricToPenalty
 the vertices in the queue are ordered by their metric from a start location
 
class  TypedBitSet
 
class  TypedBitSet_MRIdMRICPElemtTag
 
struct  TypedFlatTree
 
class  UiRenderManager
 
class  UiRenderParams
 
class  UndirectedEdge2RegionMap
 
class  UndirectedEdgeBitSet
 
class  UndirectedEdgeBMap
 
class  UndirectedEdgeColors
 
struct  UndirectedEdgeId
 
class  UndirectedEdgeIterator
 
class  UndirectedEdgeMap
 
class  UndirectedEdgeScalars
 
class  UndirectedEdgeUndirectedEdge
 a pair of undirected edges
 
class  UndirEdgeColorMapAggregator
 
class  UndoMenuItem
 
class  UnifiedPythonStream
 
class  UniformSamplingSettings
 
class  UnionFind
 Union-find data structure for representing disjoin sets of elements with few very quick operations: 1) union of two sets in one, 2) checking whether two elements pertain to the same set, 3) finding representative element (root) of each set by any set's element. More...
 
class  UnionFind_MRFaceId
 
class  UnionFind_MRUndirectedEdgeId
 
class  UnionFind_MRVertId
 
struct  UniquePtr
 
class  UniqueTemporaryFolder
 helper class to create a temporary folder; the folder will be removed on the object's destruction
 
class  UniqueThreadSafeOwner
 
class  UniqueThreadSafeOwner_MRAABBTree
 
class  UniqueThreadSafeOwner_MRAABBTreePoints
 
class  UniteManyMeshesParams
 Parameters structure for uniteManyMeshes function.
 
class  UnitInfo
 
struct  UnitToStringParams
 
class  UnorientedTriangle
 
class  VarEdgeTri
 
class  VdbVolume
 
class  Vector
 std::vector<T>-like container that requires specific indexing type, More...
 
struct  Vector2
 
struct  Vector2b
 
struct  Vector2d
 
struct  Vector2f
 
struct  Vector2i
 
struct  Vector2i64
 
struct  Vector3
 
class  Vector3_UnsignedChar
 
struct  Vector3b
 
struct  Vector3d
 
struct  Vector3f
 
struct  Vector3i
 
struct  Vector3i64
 
struct  Vector4
 
class  Vector4_UnsignedChar
 
struct  Vector4b
 
struct  Vector4d
 
struct  Vector4f
 
struct  Vector4i
 
struct  Vector4i64
 
class  Vector_Char_MRVertId
 
class  Vector_Double_MRRegionId
 
class  Vector_Float_MRVoxelId
 
class  Vector_Int_MRFaceId
 
class  Vector_Int_MRUndirectedEdgeId
 
class  Vector_Int_MRVertId
 
class  Vector_MRAABBTreeNodeMRAABBTreeTraitsMRFaceTagMRBox3f_MRNodeId
 
class  Vector_MRAABBTreeNodeMRAABBTreeTraitsMRUndirectedEdgeTagMRBox2f_MRNodeId
 
class  Vector_MRAABBTreeNodeMRAABBTreeTraitsMRUndirectedEdgeTagMRBox3f_MRNodeId
 
class  Vector_MRAABBTreeNodeMRObjTreeTraits_MRNodeId
 
class  Vector_MRAABBTreePointsNode_MRNodeId
 
class  Vector_MRAffineXf3f_MRObjId
 
class  Vector_MREdgeId_MRFaceId
 
class  Vector_MREdgeId_MRVertId
 
class  Vector_MRFaceBitSet_MRGraphVertId
 
class  Vector_MRFanRecord_MRVertId
 
class  Vector_MRGraphEdgeId_MRGraphEdgeId
 
class  Vector_MRGraphEndVertices_MRGraphEdgeId
 
class  Vector_MRGraphVertId_MRGraphVertId
 
class  Vector_MRICPGroupPairs_MRIdMRICPElemtTag
 
class  Vector_MRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  Vector_MRMeshBuilderVertSpan_MRFaceId
 
class  Vector_MRMeshOrPointsXf_MRObjId
 
class  Vector_MRMeshTexture_MRTextureId
 
class  Vector_MRModelPointsData_MRObjId
 
class  Vector_MRNodeId_MRNodeId
 
class  Vector_MRPixelId_MRPixelId
 
class  Vector_MRQuadraticForm2f_MRVertId
 
class  Vector_MRQuadraticForm3f_MRVertId
 
class  Vector_MRRegionId_MRRegionId
 
class  Vector_MRTextureId_MRTextureId
 
class  Vector_MRUint64T_MRGraphVertId
 
class  Vector_MRVectorMRICPGroupPairsMRIdMRICPElemtTag_MRIdMRICPElemtTag
 
class  Vector_MRVectorMRVectorMRICPGroupPairsMRIdMRICPElemtTagMRIdMRICPElemtTag_Int
 
class  Vector_MRVectorStdVectorMRObjVertIdMRIdMRICPElemtTag_Int
 
class  Vector_MRVertBitSet_MRObjId
 
class  Vector_MRVertId_MREdgeId
 
class  Vector_MRVoxelId_MRFaceId
 
class  Vector_MRVoxelId_MRVoxelId
 
class  Vector_MRWatershedGraphBasinInfo_MRGraphVertId
 
class  Vector_MRWatershedGraphBdInfo_MRGraphEdgeId
 
class  Vector_StdArrayMRVector3f3_MRFaceId
 
class  Vector_StdFilesystemPath_MRTextureId
 
class  Vector_StdVectorMREdgePoint_MRVertId
 
class  Vector_StdVectorMRGraphEdgeId_MRGraphVertId
 
class  Vector_StdVectorMRObjVertId_MRIdMRICPElemtTag
 
class  Vector_UnsignedShort_MRVoxelId
 
struct  VectorTraits
 
struct  VectorTraits< ImVec2 >
 
struct  VectorTraits< ImVec4 >
 
struct  VectorTraits< Vector2< T > >
 
struct  VectorTraits< Vector3< T > >
 
struct  VectorTraits< Vector4< T > >
 
class  Vert2RegionMap
 
class  VertBitSet
 
class  VertBMap
 
class  VertColorMapAggregator
 
class  VertColors
 
class  VertCoords
 
class  VertCoords2
 
class  VertCoordsDiff
 
class  VertDistance
 
struct  VertId
 
class  VertMap
 
class  VertPathInfo
 information associated with each vertex by the paths builder
 
class  VertRenumber
 maps valid points to packed sequential indices
 
class  VertScalars
 
class  Viewer
 
class  ViewerEventQueue
 queue to ignore multiple mouse moves in one frame More...
 
class  ViewerPlugin
 
class  ViewerSettingsManager
 
class  ViewerSettingsPlugin
 
class  ViewerSetup
 
struct  ViewerSignals
 
class  ViewerTitle
 
class  Viewport
 
class  ViewportGL
 
class  ViewportGlobalBasis
 Class to unify Global Basis control. More...
 
struct  ViewportId
 
class  ViewportIterator
 iterates over all ViewportIds in given ViewportMask
 
class  ViewportMask
 stores mask of viewport unique identifiers
 
class  ViewportParametersAction
 
struct  ViewportPointsWithColors
 
class  ViewportProperty
 
class  ViewportProperty_MRAffineXf3f
 
class  ViewportProperty_MRColor
 
class  ViewportProperty_MRMatrix3f
 
class  ViewportProperty_MRVector4UnsignedChar
 
class  ViewportProperty_MRXfBasedCacheMRBox3f
 
class  ViewportProperty_UnsignedChar
 
class  VisualObject
 Visual Object.
 
struct  VisualObjectTag
 modified color set for visual objects More...
 
class  VisualObjectTagManager
 class for storing and changing visual object properties based on the object tags More...
 
class  VolumeIndexer
 
class  VolumeSegmentationParameters
 Parameters for volume segmentation.
 
class  VolumeSegmenter
 Class for voxels segmentation.
 
struct  VolumeToMeshByPartsSettings
 Parameters' structure for MR::volumeToMeshByParts. More...
 
class  VoxelBitSet
 
struct  VoxelId
 
class  VoxelLocation
 contains both linear Id and 3D coordinates of the same voxel
 
class  VoxelMetricParameters
 Parameters for building metric function.
 
class  VoxelsLoad
 
class  VoxelsSave
 
struct  VoxelsVolume
 represents a box in 3D space subdivided on voxels stored in T More...
 
class  VoxelsVolume_MRFloatGrid
 
class  VoxelsVolumeAccessor
 helper class for generalized voxel volume data access More...
 
class  VoxelsVolumeAccessor< VdbVolume >
 VoxelsVolumeAccessor specialization for VDB volume. More...
 
class  VoxelsVolumeAccessor< VoxelsVolume< Vector< T, VoxelId > > >
 VoxelsVolumeAccessor specialization for simple volumes. More...
 
class  VoxelsVolumeAccessor< VoxelsVolume< VoxelValueGetter< T > > >
 VoxelsVolumeAccessor specialization for value getters. More...
 
class  VoxelsVolumeAccessor< VoxelsVolumeMinMax< Vector< T, VoxelId > > >
 VoxelsVolumeAccessor specialization for simple volumes with min/max. More...
 
class  VoxelsVolumeAccessor_MRFunctionVolume
 
class  VoxelsVolumeAccessor_MRSimpleVolume
 
class  VoxelsVolumeAccessor_MRSimpleVolumeMinMax
 
class  VoxelsVolumeAccessor_MRVdbVolume
 
class  VoxelsVolumeCachingAccessor
 
class  VoxelsVolumeInterpolatedAccessor
 
class  VoxelsVolumeInterpolatedAccessor_MRVoxelsVolumeAccessorMRFunctionVolume
 
class  VoxelsVolumeInterpolatedAccessor_MRVoxelsVolumeAccessorMRSimpleVolumeMinMax
 
class  VoxelsVolumeInterpolatedAccessor_MRVoxelsVolumeAccessorMRVdbVolume
 
struct  VoxelsVolumeMinMax
 
struct  VoxelTraits
 
struct  VoxelTraits< FloatGrid >
 
struct  VoxelTraits< Vector< T, VoxelId > >
 
struct  VoxelTraits< VoxelBitSet >
 
struct  VoxelTraits< VoxelValueGetter< T > >
 
class  VoxelTraits_MRFloatGrid
 
class  VoxelTraits_MRVectorFloatMRVoxelId
 
class  VoxelTraits_MRVectorUnsignedShortMRVoxelId
 
class  VoxelTraits_MRVoxelBitSet
 
class  VoxelTraits_StdFunctionFloatFuncFromConstMRVector3iRef
 
class  VoxelTraits_StdFunctionUnsignedCharFuncFromConstMRVector3iRef
 
class  WatershedGraph
 graphs representing rain basins on the mesh
 
class  WebRequest
 
class  WeightedShell
 
class  WeightedVertex
 
class  WholeEdgeBMap
 
class  WholeEdgeMap
 
struct  Writer
 
class  WriteRawTiffParams
 
class  XfBasedCache
 
class  XfBasedCache_MRBox3f
 
class  ZCompensateParams
 
struct  ZeroOnMove
 
class  ZeroOnMove_MRUint64T
 

Concepts

concept  Trivial
 
concept  HasGetNormalMethod
 
concept  HasGetDirectionMethod
 
concept  UnitEnum
 
concept  AnyVisualizeMaskEnumType
 

Functions

MRIOEXTRAS_API Expected< LoadedObject > deserializeObjectTreeFrom3mf (const std::filesystem::path &file, const ProgressCallback &callback={})
 
MRIOEXTRAS_API Expected< LoadedObject > deserializeObjectTreeFromModel (const std::filesystem::path &file, const ProgressCallback &callback={})
 
MRIOEXTRAS_API Expected< std::shared_ptr< Object > > deserializeObjectTreeFromGltf (const std::filesystem::path &file, ProgressCallback callback={})
 
MRIOEXTRAS_API Expected< void > serializeObjectTreeToGltf (const Object &root, const std::filesystem::path &file, const ObjectSave::Settings &settings)
 
MRIOEXTRAS_API void loadIOExtras ()
 
MRIOEXTRAS_API Expected< void > zlibCompressStream (std::istream &in, std::ostream &out, int level=-1)
 compress the input data using the Deflate algorithm
 
MRIOEXTRAS_API Expected< void > zlibDecompressStream (std::istream &in, std::ostream &out)
 
template<typename T >
Vector3< T > to3dim (const Vector2< T > &v)
 
template<typename T >
Vector2< T > to2dim (const Vector3< T > &v)
 
template<typename T >
Matrix3< T > to3dim (const Matrix2< T > &m)
 
template<typename T >
Matrix2< T > to2dim (const Matrix3< T > &m)
 
template<typename T >
AffineXf3< T > to3dim (const AffineXf2< T > &xf)
 
template<typename T >
AffineXf2< T > to2dim (const AffineXf3< T > &xf)
 
int getNumNodes (int numLeaves)
 returns the number of nodes in the binary tree with given number of leaves
 
template<typename T >
AABBTreeNodeVec< T > makeAABBTreeNodeVec (Buffer< BoxedLeaf< T > > boxedLeaves)
 
int getNumNodesPoints (int numPoints)
 
MRMESH_API Expected< void > addNoise (VertCoords &points, const VertBitSet &validVerts, NoiseSettings settings)
 
MRMESH_API Expected< void > addNoise (Mesh &mesh, const VertBitSet *region=nullptr, const NoiseSettings &settings={})
 
template<typename T >
AffineXf3< T > lookAt (const Vector3< T > &center, const Vector3< T > &eye, const Vector3< T > &up)
 computes rigid transformation xf
 
MRMESH_API Expected< MeshalignContoursToMesh (const Mesh &mesh, const Contours2f &contours, const ContoursMeshAlignParams &params)
 Creates planar mesh out of given contour and aligns it to given surface.
 
MRMESH_API Expected< MeshbendContoursAlongCurve (const Contours2f &contours, const CurveFunc &curve, const BendContoursAlongCurveParams &params)
 Converts contours in thick mesh, and deforms it along given path.
 
MRMESH_API Expected< MeshbendContoursAlongSurfacePath (const Contours2f &contours, const Mesh &mesh, const MeshTriPoint &start, const SurfacePath &path, const MeshTriPoint &end, const BendContoursAlongCurveParams &params)
 Converts contours in thick mesh, and deforms it along given surface path: start->path->end.
 
MRMESH_API Expected< MeshbendContoursAlongSurfacePath (const Contours2f &contours, const Mesh &mesh, const SurfacePath &path, const BendContoursAlongCurveParams &params)
 Converts contours in thick mesh, and deforms it along given surface path.
 
MRMESH_API Expected< std::vector< float > > findPartialLens (const CurvePoints &cp, bool unitLength=true, float *outCurveLen=nullptr)
 
MRMESH_API CurvePoint getCurvePoint (const CurvePoints &cp, const std::vector< float > &lens, float p)
 
MRMESH_API Expected< CurveFunc > curveFromPoints (const CurvePoints &cp, bool unitLength=true, float *outCurveLen=nullptr)
 
MRMESH_API Expected< CurveFunc > curveFromPoints (CurvePoints &&cp, bool unitLength=true, float *outCurveLen=nullptr)
 
MRMESH_API CurvePoints meshPathCurvePoints (const Mesh &mesh, const MeshTriPoint &start, const SurfacePath &path, const MeshTriPoint &end)
 converts polyline given as a number of MeshTriPoint/MeshEdgePoint into CurvePoints
 
MRMESH_API CurvePoints meshPathCurvePoints (const Mesh &mesh, const SurfacePath &path)
 
MRMESH_API void addBaseToPlanarMesh (Mesh &mesh, float zOffset)
 
MRMESH_API Mesh makeArrow (const Vector3f &base, const Vector3f &vert, const float &thickness=0.05f, const float &coneRadius=0.1f, const float coneSize=0.2f, const int qual=32)
 
MRMESH_API Mesh makeBasisAxes (const float &size=1.0f, const float &thickness=0.05f, const float &coneRadius=0.1f, const float coneSize=0.2f, const int qual=32)
 
MRMESH_API std::string encode64 (const std::uint8_t *data, size_t size)
 encodes binary data into textual Base64 format
 
MRMESH_API std::vector< std::uint8_t > decode64 (const std::string &val)
 decodes Base64 format into binary data
 
MRMESH_API double computeBasinVolume (const Mesh &mesh, const FaceBitSet &faces, float level)
 
MRMESH_API void accumulatePoints (PointAccumulator &accum, const std::vector< Vector3f > &points, const AffineXf3f *xf=nullptr)
 Adds in existing PointAccumulator all given points.
 
MRMESH_API void accumulateWeighedPoints (PointAccumulator &accum, const std::vector< Vector3f > &points, const std::vector< float > &weights, const AffineXf3f *xf=nullptr)
 Adds in existing PointAccumulator all given weighed points.
 
MRMESH_API void accumulateFaceCenters (PointAccumulator &accum, const MeshPart &mp, const AffineXf3f *xf=nullptr)
 Adds in existing PointAccumulator all mesh face centers with the weight equal to face area.
 
MRMESH_API void accumulateLineCenters (PointAccumulator &accum, const Polyline3 &pl, const AffineXf3f *xf=nullptr)
 Adds in existing PointAccumulator all line centers with the weight equal to the length line.
 
MRMESH_API void accumulatePoints (PointAccumulator &accum, const PointCloudPart &pcp, const AffineXf3f *xf=nullptr)
 Adds in existing PointAccumulator all points from the cloud (region) with weight 1.
 
constexpr bool canSolvePolynomial (auto degree)
 
constexpr bool canMinimizePolynomial (auto degree)
 
size_t heapBytes (const BitSet &bs)
 returns the amount of memory given BitSet occupies on heap
 
MRMESH_API bool operator== (const BitSet &a, const BitSet &b)
 compare that two bit sets have the same set bits (they can be equal even if sizes are distinct but last bits are off)
 
template<typename I >
bool operator== (const TypedBitSet< I > &a, const TypedBitSet< I > &b)
 
template<typename T , typename U >
void operator== (const TypedBitSet< T > &a, const TypedBitSet< U > &b)=delete
 prohibit comparison of unrelated sets
 
template<typename I >
std::function< bool(I)> makePredicate (const TypedBitSet< I > *bitset)
 
template<typename I >
std::function< bool(I)> makePredicate (const TypedBitSet< I > &bitset)
 
template<typename I >
bool contains (const TypedBitSet< I > *bitset, I id)
 
template<typename I >
bool contains (const TypedBitSet< I > &bitset, I id)
 
MR_BIND_IGNORE auto begin (const BitSet &a)
 
MR_BIND_IGNORE auto end (const BitSet &)
 
template<typename I >
MR_BIND_IGNORE auto begin (const TypedBitSet< I > &a)
 
template<typename I >
MR_BIND_IGNORE auto end (const TypedBitSet< I > &)
 
template<typename I >
Vector< int, I > makeVectorWithSeqNums (const TypedBitSet< I > &bs)
 creates a Vector where for each set bit of input bitset its sequential number starting from 0 is returned; and -1 for reset bits
 
template<typename I >
HashMap< I, int > makeHashMapWithSeqNums (const TypedBitSet< I > &bs)
 creates a HashMap where for each set bit of input bitset its sequential number starting from 0 is returned
 
BitSet operator& (const BitSet &a, const BitSet &b)
 
BitSet operator| (const BitSet &a, const BitSet &b)
 
BitSet operator^ (const BitSet &a, const BitSet &b)
 
BitSet operator- (const BitSet &a, const BitSet &b)
 
template<typename BS , typename ... F>
auto BitSetParallelForAllRanged (const BS &bs, F &&... f)
 
template<typename BS , typename L , typename ... F>
auto BitSetParallelForAllRanged (const BS &bs, tbb::enumerable_thread_specific< L > &e, F &&... f)
 
template<typename BS , typename F , typename ... Cb>
auto BitSetParallelForAll (const BS &bs, F &&f, Cb &&... cb)
 
template<typename BS , typename L , typename F , typename ... Cb>
auto BitSetParallelForAll (const BS &bs, tbb::enumerable_thread_specific< L > &e, F &&f, Cb &&... cb)
 
template<typename BS , typename F , typename ... Cb>
auto BitSetParallelFor (const BS &bs, F &&f, Cb &&... cb)
 
template<typename BS , typename L , typename F , typename ... Cb>
auto BitSetParallelFor (const BS &bs, tbb::enumerable_thread_specific< L > &e, F &&f, Cb &&... cb)
 
MRMESH_API Expected< MeshdoBooleanOperation (Mesh &&meshACut, Mesh &&meshBCut, const std::vector< EdgePath > &cutEdgesA, const std::vector< EdgePath > &cutEdgesB, BooleanOperation operation, const AffineXf3f *rigidB2A=nullptr, BooleanResultMapper *mapper=nullptr, bool mergeAllNonIntersectingComponents=false, const BooleanInternalParameters &intParams={})
 
template<typename T >
std::array< Vector3< T >, 8 > getCorners (const Box< Vector3< T > > &box)
 returns all corners of given box
 
template<typename T >
std::array< Vector2< T >, 4 > getCorners (const Box< Vector2< T > > &box)
 
template<typename V >
MinMax< typename Box< V >::T > getTouchPlanes (const Box< V > &box, const V &n)
 
template<typename V >
Box< V > transformed (const Box< V > &box, const AffineXf< V > &xf)
 find the tightest box enclosing this one after transformation
 
template<typename V >
Box< V > transformed (const Box< V > &box, const AffineXf< V > *xf)
 this version returns input box as is if pointer to transformation is null
 
template<typename V >
auto width (const Box< V > &box)
 returns size along x axis
 
template<typename V >
auto height (const Box< V > &box)
 returns size along y axis
 
template<typename V >
auto depth (const Box< V > &box)
 returns size along z axis
 
template<typename V >
auto findSortedBoxDims (const Box< V > &box) -> typename VectorTraits< V >::template ChangeBaseType< int >
 
template<size_t I, typename V >
constexpr const V & get (const Box< V > &box) noexcept
 get<0> returns min, get<1> returns max
 
template<size_t I, typename V >
constexpr V & get (Box< V > &box) noexcept
 
template<typename T , typename I >
getAt (const Buffer< T, I > &bmap, I key, T def={})
 given some buffer map and a key, returns the value associated with the key, or default value if key is invalid
 
template<typename T , typename I >
auto begin (const Buffer< T, I > &a)
 
template<typename T , typename I >
auto begin (Buffer< T, I > &a)
 
template<typename T , typename I >
auto end (const Buffer< T, I > &a)
 
template<typename T , typename I >
auto end (Buffer< T, I > &a)
 
template<typename T >
BMap< T, T > compose (const BMap< T, T > &a, const BMap< T, T > &b)
 computes the composition of two mappings x -> a(b(x))
 
MRMESH_API MR_BIND_IGNORE std::optional< std::tm > Localtime (std::time_t time)
 
MRMESH_API MR_BIND_IGNORE std::tm LocaltimeOrZero (std::time_t time)
 
MRMESH_API size_t chunkCount (size_t totalSize, size_t chunkSize, size_t overlap=0)
 returns the amount of chunks of given size required to cover the full array
 
MRMESH_API IteratorRange< ChunkIteratorsplitByChunks (size_t totalSize, size_t chunkSize, size_t overlap=0)
 returns a pair of iterators for chunks covering the array of given size
 
MRMESH_API PointAndDistance findClosestWeightedPoint (const Vector3f &loc, const AABBTreePoints &tree, const DistanceFromWeightedPointsComputeParams &params)
 
MRMESH_API MeshPointAndDistance findClosestWeightedMeshPoint (const Vector3f &loc, const Mesh &mesh, const DistanceFromWeightedPointsComputeParams &params)
 
MRMESH_API std::optional< VertMapfindSmallestCloseVertices (const Mesh &mesh, float closeDist, const ProgressCallback &cb={})
 
MRMESH_API std::optional< VertMapfindSmallestCloseVertices (const PointCloud &cloud, float closeDist, const ProgressCallback &cb={})
 
MRMESH_API std::optional< VertMapfindSmallestCloseVertices (const VertCoords &points, float closeDist, const VertBitSet *valid=nullptr, const ProgressCallback &cb={})
 
MRMESH_API std::optional< VertMapfindSmallestCloseVerticesUsingTree (const VertCoords &points, float closeDist, const AABBTreePoints &tree, const VertBitSet *valid, const ProgressCallback &cb={})
 
MRMESH_API std::optional< VertBitSetfindCloseVertices (const Mesh &mesh, float closeDist, const ProgressCallback &cb={})
 finds all close vertices, where for each vertex there is another one located within given distance
 
MRMESH_API std::optional< VertBitSetfindCloseVertices (const PointCloud &cloud, float closeDist, const ProgressCallback &cb={})
 finds all close vertices, where for each vertex there is another one located within given distance
 
MRMESH_API std::optional< VertBitSetfindCloseVertices (const VertCoords &points, float closeDist, const VertBitSet *valid=nullptr, const ProgressCallback &cb={})
 finds all close vertices, where for each vertex there is another one located within given distance
 
MRMESH_API VertBitSet findCloseVertices (const VertMap &smallestMap)
 finds all close vertices, where for each vertex there is another one located within given distance; smallestMap is the result of findSmallestCloseVertices function call
 
MRMESH_API std::vector< EdgePair > findTwinEdgePairs (const Mesh &mesh, float closeDist)
 finds pairs of twin edges (each twin edge will be present at least in one of pairs)
 
MRMESH_API EdgeBitSet findTwinEdges (const Mesh &mesh, float closeDist)
 finds all directed twin edges
 
MRMESH_API EdgeBitSet findTwinEdges (const std::vector< EdgePair > &pairs)
 
MRMESH_API UndirectedEdgeBitSet findTwinUndirectedEdges (const Mesh &mesh, float closeDist)
 finds all undirected twin edges
 
MRMESH_API UndirectedEdgeBitSet findTwinUndirectedEdges (const std::vector< EdgePair > &pairs)
 
MRMESH_API UndirectedEdgeHashMap findTwinUndirectedEdgeHashMap (const Mesh &mesh, float closeDist)
 provided that each edge has at most one twin, composes bidirectional mapping between twins
 
MRMESH_API UndirectedEdgeHashMap findTwinUndirectedEdgeHashMap (const std::vector< EdgePair > &pairs)
 
bool operator== (const Color &a, const Color &b)
 
bool operator!= (const Color &a, const Color &b)
 
Color operator+ (const Color &a, const Color &b)
 
Color operator- (const Color &a, const Color &b)
 
Color operator* (float a, const Color &b)
 
Color operator* (const Color &b, float a)
 
Color operator/ (const Color &b, float a)
 
MRMESH_API Color blend (const Color &front, const Color &back)
 
template<typename V >
Box< V > computeBoundingBox (const Vector< V, VertId > &points, VertId firstVert, VertId lastVert, const VertBitSet *region=nullptr, const AffineXf< V > *toWorld=nullptr)
 
template<typename V >
Box< V > computeBoundingBox (const Vector< V, VertId > &points, const VertBitSet *region=nullptr, const AffineXf< V > *toWorld=nullptr)
 
template<typename V >
Box< V > computeBoundingBox (const Vector< V, VertId > &points, const VertBitSet &region, const AffineXf< V > *toWorld=nullptr)
 
template<typename T , typename R = T>
calcOrientedArea (const Contour2< T > &contour)
 
template<typename T , typename R = T>
Vector3< R > calcOrientedArea (const Contour3< T > &contour)
 
template<typename V , typename R = typename V::ValueType>
calcLength (const Contour< V > &contour)
 
template<typename To , typename From >
MR_BIND_IGNORE To convertContour (const From &from)
 
template<typename To , typename From >
MR_BIND_IGNORE To convertContours (const From &from)
 
template<typename From >
Contour2f convertContourTo2f (const From &from)
 
template<typename From >
Contour3f convertContourTo3f (const From &from)
 
template<typename From >
Contour2d convertContourTo2d (const From &from)
 
template<typename From >
Contour3d convertContourTo3d (const From &from)
 
template<typename From >
Contours2f convertContoursTo2f (const From &from)
 
template<typename From >
Contours3f convertContoursTo3f (const From &from)
 
template<typename From >
Contours2d convertContoursTo2d (const From &from)
 
template<typename From >
Contours3d convertContoursTo3d (const From &from)
 
MRMESH_API CutMeshResult cutMesh (Mesh &mesh, const OneMeshContours &contours, const CutMeshParameters &params={})
 Cuts mesh by given contours.
 
MRMESH_API Expected< FaceBitSetcutMeshByContour (Mesh &mesh, const Contour3f &contour, const AffineXf3f &xf={})
 
MRMESH_API Expected< FaceBitSetcutMeshByContours (Mesh &mesh, const Contours3f &contours, const AffineXf3f &xf={})
 
MRMESH_API Expected< std::vector< EdgePath > > cutMeshByProjection (Mesh &mesh, const Contours3f &contours, const CutByProjectionSettings &settings)
 Performs orthographic projection with of given contours to mesh and cut result lines, fails if any point of contours has missed mesh on projection stage or cut contours contains self-intersections.
 
MRMESH_API Expected< OneMeshContours > convertMeshTriPointsSurfaceOffsetToMeshContours (const Mesh &mesh, const std::vector< MeshTriPoint > &surfaceLine, float offset, SearchPathSettings searchSettings={})
 Makes continuous contour by iso-line from mesh tri points, if first and last meshTriPoint is the same, makes closed contour.
 
MRMESH_API Expected< OneMeshContours > convertMeshTriPointsSurfaceOffsetToMeshContours (const Mesh &mesh, const std::vector< MeshTriPoint > &surfaceLine, const std::function< float(int)> &offsetAtPoint, SearchPathSettings searchSettings={})
 Makes continuous contour by iso-line from mesh tri points, if first and last meshTriPoint is the same, makes closed contour.
 
MRMESH_API std::vector< FaceBitSetseparateClosedContour (const Mesh &mesh, const std::vector< Vector3f > &contour, const PathMeshEdgePointCallback &cb={})
 
MRMESH_API void stitchContours (MeshTopology &topology, const EdgePath &c0, const EdgePath &c1)
 
MRMESH_API EdgeLoop cutAlongEdgeLoop (MeshTopology &topology, const EdgeLoop &c0)
 
MRMESH_API EdgeLoop cutAlongEdgeLoop (Mesh &mesh, const EdgeLoop &c0)
 
MRMESH_API Mesh makeConvexHull (const VertCoords &points, const VertBitSet &validPoints)
 
MRMESH_API Mesh makeConvexHull (const Mesh &in)
 
MRMESH_API Mesh makeConvexHull (const PointCloud &in)
 
MRMESH_API Contour2f makeConvexHull (Contour2f points)
 
MRMESH_API MeshTopology makeCubeTopology ()
 
MRMESH_API Mesh makeCube (const Vector3f &size=Vector3f::diagonal(1.0f), const Vector3f &base=Vector3f::diagonal(-0.5f))
 
MRMESH_API Mesh makeParallelepiped (const Vector3f side[3], const Vector3f &base)
 creates parallelepiped mesh with given min-corner base and given directional vectors size
 
MRMESH_API Mesh makeBoxMesh (const Box3f &box)
 creates mesh visualizing a box
 
MRMESH_API Mesh makeCylinder (float radius=0.1f, float length=1.0f, int resolution=16)
 
MRMESH_API Mesh makeOpenCylinder (float radius=1, float z1=-1, float z2=1, int numCircleSegments=16)
 
MRMESH_API Mesh makeOpenCone (float radius=1, float zApex=0, float zBase=1, int numCircleSegments=16)
 
MRMESH_API Mesh makeCylinderAdvanced (float radius0=0.1f, float radius1=0.1f, float start_angle=0.0f, float arc_size=2.0f *PI_F, float length=1.0f, int resolution=16)
 
MRMESH_API Mesh makeCone (float radius0=0.1f, float length=1.0f, int resolution=32)
 
MRMESH_API void calcDipoles (Dipoles &dipoles, const AABBTree &tree, const Mesh &mesh)
 calculates dipoles for given mesh and AABB-tree
 
MRMESH_API Dipoles calcDipoles (const AABBTree &tree, const Mesh &mesh)
 
MRMESH_API float calcFastWindingNumber (const Dipoles &dipoles, const AABBTree &tree, const Mesh &mesh, const Vector3f &q, float beta, FaceId skipFace)
 
MRMESH_API std::filesystem::path findPathWithExtension (const std::filesystem::path &pathWithoutExtension)
 given file name without final extension, finds in the same folder an existing file with same stem and any extension
 
DirectoryIterator begin (const Directory &sd)
 
std::filesystem::directory_iterator end (const Directory &)
 
bool operator!= (const DirectoryIterator &a, const std::filesystem::directory_iterator &b)
 
DirectoryRecursiveIterator begin (const DirectoryRecursive &sd)
 
std::filesystem::recursive_directory_iterator end (const DirectoryRecursive &)
 
bool operator!= (const DirectoryRecursiveIterator &a, const std::filesystem::recursive_directory_iterator &b)
 
MRMESH_API VertId findDirMax (const Vector3f &dir, const Mesh &m, UseAABBTree u=UseAABBTree::Yes)
 
MRMESH_API VertId findDirMax (const Vector3f &dir, const MeshPart &mp, UseAABBTree u=UseAABBTree::Yes)
 
MRMESH_API VertId findDirMax (const Vector3f &dir, const MeshVertPart &mp, UseAABBTree u=UseAABBTree::Yes)
 
MRMESH_API VertId findDirMax (const Vector3f &dir, const Polyline3 &polyline, UseAABBTree u=UseAABBTree::Yes)
 
MRMESH_API VertId findDirMax (const Vector2f &dir, const Polyline2 &polyline, UseAABBTree u=UseAABBTree::Yes)
 
MRMESH_API VertId findDirMax (const Vector3f &dir, const PointCloud &cloud, const VertBitSet *region=nullptr, UseAABBTree u=UseAABBTree::Yes)
 
MRMESH_API VertId findDirMax (const Vector3f &dir, const AABBTreePoints &tree, const VertBitSet *region=nullptr)
 
MRMESH_API VertId findDirMaxBruteForce (const Vector3f &dir, const VertCoords &points, const VertBitSet *region=nullptr)
 finds the point having the largest projection on given direction by traversing all region points
 
MRMESH_API VertId findDirMaxBruteForce (const Vector2f &dir, const VertCoords2 &points, const VertBitSet *region=nullptr)
 finds the point having the largest projection on given direction by traversing all region points
 
MRMESH_API VertId findDirMaxBruteForce (const Vector3f &dir, const PointCloud &cloud, const VertBitSet *region=nullptr)
 finds the point in the cloud having the largest projection on given direction by traversing all valid points
 
MRMESH_API VertId findDirMaxBruteForce (const Vector3f &dir, const Polyline3 &polyline)
 finds the vertex in the polyline having the largest projection on given direction by traversing all valid vertices
 
MRMESH_API VertId findDirMaxBruteForce (const Vector2f &dir, const Polyline2 &polyline)
 finds the vertex in the polyline having the largest projection on given direction by traversing all valid vertices
 
MRMESH_API VertId findDirMaxBruteForce (const Vector3f &dir, const MeshPart &mp)
 finds the vertex in the mesh part having the largest projection on given direction by traversing all (region) faces
 
MRMESH_API VertId findDirMaxBruteForce (const Vector3f &dir, const MeshVertPart &mp)
 finds the vertex in the mesh part having the largest projection on given direction by traversing all (region) vertices
 
MRMESH_API MinMaxArg< float, VertIdfindDirMinMaxBruteForce (const Vector3f &dir, const VertCoords &points, const VertBitSet *region=nullptr)
 finds the points having the smallest and the largest projections on given direction by traversing all region points
 
MRMESH_API MinMaxArg< float, VertIdfindDirMinMaxBruteForce (const Vector2f &dir, const VertCoords2 &points, const VertBitSet *region=nullptr)
 finds the points having the smallest and the largest projections on given direction by traversing all region points
 
MRMESH_API MinMaxArg< float, VertIdfindDirMinMaxBruteForce (const Vector3f &dir, const PointCloud &cloud, const VertBitSet *region=nullptr)
 finds the points in the cloud having the smallest and the largest projections on given direction by traversing all valid points
 
MRMESH_API MinMaxArg< float, VertIdfindDirMinMaxBruteForce (const Vector3f &dir, const Polyline3 &polyline)
 finds the vertex in the polyline having the smallest and the largest projections on given direction by traversing all valid vertices
 
MRMESH_API MinMaxArg< float, VertIdfindDirMinMaxBruteForce (const Vector2f &dir, const Polyline2 &polyline)
 finds the vertex in the polyline having the smallest and the largest projections on given direction by traversing all valid vertices
 
MRMESH_API MinMaxArg< float, VertIdfindDirMinMaxBruteForce (const Vector3f &dir, const MeshPart &mp)
 finds the vertices in the mesh part having the smallest and the largest projections on given direction by traversing all (region) faces
 
MRMESH_API MinMaxArg< float, VertIdfindDirMinMaxBruteForce (const Vector3f &dir, const MeshVertPart &mp)
 finds the vertices in the mesh part having the smallest and the largest projections on given direction by traversing all (region) vertices
 
MRMESH_API DistanceMap combineXYderivativeMaps (std::pair< DistanceMap, DistanceMap > XYderivativeMaps)
 fill another distance map pair with gradients across X and Y axes of the argument map
 
MRMESH_API DistanceMap computeDistanceMap (const MeshPart &mp, const MeshToDistanceMapParams &params, ProgressCallback cb={}, std::vector< MeshTriPoint > *outSamples=nullptr)
 
MRMESH_API DistanceMap computeDistanceMapD (const MeshPart &mp, const MeshToDistanceMapParams &params, ProgressCallback cb={}, std::vector< MeshTriPoint > *outSamples=nullptr)
 
MRMESH_API DistanceMap distanceMapFromContours (const Polyline2 &contours, const ContourToDistanceMapParams &params, const ContoursDistanceMapOptions &options={})
 Computes distance of 2d contours according ContourToDistanceMapParams.
 
MRMESH_API void distanceMapFromContours (DistanceMap &distMap, const Polyline2 &polyline, const ContourToDistanceMapParams &params, const ContoursDistanceMapOptions &options={})
 Computes distance of 2d contours according ContourToDistanceMapParams.
 
MRMESH_API std::vector< Vector3fedgePointsFromContours (const Polyline2 &polyline, float pixelSize, float threshold)
 
MRMESH_API Polyline2 distanceMapTo2DIsoPolyline (const DistanceMap &distMap, float isoValue)
 
MRMESH_API Polyline2 distanceMapTo2DIsoPolyline (const DistanceMap &distMap, const ContourToDistanceMapParams &params, float isoValue)
 iso-lines are created in real space ( plane OXY with parameters according ContourToDistanceMapParams )
 
MRMESH_API std::pair< Polyline2, AffineXf3fdistanceMapTo2DIsoPolyline (const DistanceMap &distMap, const AffineXf3f &xf, float isoValue, bool useDepth=false)
 
MRMESH_API Polyline2 distanceMapTo2DIsoPolyline (const DistanceMap &distMap, float pixelSize, float isoValue)
 
MRMESH_API Polyline2 polylineOffset (const Polyline2 &polyline, float pixelSize, float offset)
 constructs an offset contour for given polyline
 
MRMESH_API Polyline2 contourUnion (const Polyline2 &contoursA, const Polyline2 &contoursB, const ContourToDistanceMapParams &params, float offsetInside=0)
 computes the union of the shapes bounded by input 2d contours
 
MRMESH_API Polyline2 contourIntersection (const Polyline2 &contoursA, const Polyline2 &contoursB, const ContourToDistanceMapParams &params, float offsetInside=0.f)
 computes the intersection of the shapes bounded by input 2d contours
 
MRMESH_API Polyline2 contourSubtract (const Polyline2 &contoursA, const Polyline2 &contoursB, const ContourToDistanceMapParams &params, float offsetInside=0.f)
 computes the difference between the shapes bounded by contoursA and the shapes bounded by contoursB
 
MRMESH_API Expected< MeshdistanceMapToMesh (const DistanceMap &distMap, const AffineXf3f &toWorld, ProgressCallback cb={})
 converts distance map into mesh and applies a transformation to all points
 
MRMESH_API Image convertDistanceMapToImage (const DistanceMap &distMap, float threshold=1.f/255)
 
MRMESH_API Expected< DistanceMapconvertImageToDistanceMap (const Image &image, float threshold=1.f/255, bool invert=true)
 
template<class T >
divRound (T n, T d)
 
template<class T >
Vector2< T > divRound (const Vector2< T > &n, T d)
 computes division n/d with rounding of each components to the nearest integer, all signs of n and d are supported
 
template<class T >
Vector3< T > divRound (const Vector3< T > &n, T d)
 computes division n/d with rounding of each components to the nearest integer, all signs of n and d are supported
 
template<class T >
Vector4< T > divRound (const Vector4< T > &n, T d)
 computes division n/d with rounding of each components to the nearest integer, all signs of n and d are supported
 
bool operator== (const UndirectedEdgeIterator &a, const UndirectedEdgeIterator &b)
 
bool operator!= (const UndirectedEdgeIterator &a, const UndirectedEdgeIterator &b)
 
IteratorRange< UndirectedEdgeIteratorundirectedEdges (const MeshTopology &topology)
 
MRMESH_API bool same (const MeshTopology &topology, const EdgePoint &lhs, const EdgePoint &rhs)
 returns true if two edge-points are equal considering different representations
 
MRMESH_API Expected< MeshembedStructureToTerrain (const Mesh &terrain, const Mesh &structure, const EmbeddedStructureParameters &params)
 
MRMESH_API void serializeToJson (const EndMillCutter &cutter, Json::Value &root)
 
MRMESH_API void serializeToJson (const EndMillTool &tool, Json::Value &root)
 
MRMESH_API Expected< void > deserializeFromJson (const Json::Value &root, EndMillCutter &cutter)
 
MRMESH_API Expected< void > deserializeFromJson (const Json::Value &root, EndMillTool &tool)
 
MRMESH_API VertScalars computeSpaceDistances (const Mesh &mesh, const PointOnFace &start, float range)
 
MRMESH_API VertBitSet findNeighborVerts (const Mesh &mesh, const PointOnFace &start, float rangeSq)
 
MRMESH_API const char * asString (ColoringType ct)
 returns string representation of enum values
 
MRMESH_API void expand (const MeshTopology &topology, FaceBitSet &region, int hops=1)
 adds to the region all faces within given number of hops (stars) from the initial region boundary
 
MRMESH_API FaceBitSet expand (const MeshTopology &topology, FaceId f, int hops)
 returns the region of all faces within given number of hops (stars) from the initial face
 
MRMESH_API void expand (const MeshTopology &topology, VertBitSet &region, int hops=1)
 
MRMESH_API VertBitSet expand (const MeshTopology &topology, VertId v, int hops)
 returns the region of all vertices within given number of hops (stars) from the initial vertex
 
MRMESH_API void shrink (const MeshTopology &topology, FaceBitSet &region, int hops=1)
 removes from the region all faces within given number of hops (stars) from the initial region boundary
 
MRMESH_API void shrink (const MeshTopology &topology, VertBitSet &region, int hops=1)
 removes from the region all vertices within given number of hops (stars) from the initial region boundary
 
MRMESH_API FaceBitSet expandFaces (const MeshTopology &topology, const FaceBitSet &region, const UndirectedEdgeBitSet *stopEdges=nullptr)
 
MRMESH_API FaceBitSet shrinkFaces (const MeshTopology &topology, const FaceBitSet &region, const UndirectedEdgeBitSet *stopEdges=nullptr)
 
MRMESH_API FaceBitSet getBoundaryFaces (const MeshTopology &topology, const FaceBitSet &region)
 returns faces from given region that have at least one neighbor face with shared edge not from the region
 
template<class E >
MR_BIND_IGNORE auto unexpected (E &&e)
 
MR_BIND_IGNORE std::string stringOperationCanceled ()
 common message about user termination of an operation
 
MR_BIND_IGNORE auto unexpectedOperationCanceled ()
 returns Expected error with stringOperationCanceled()
 
MR_BIND_IGNORE std::string stringUnsupportedFileExtension ()
 common message about unknown file extension
 
MR_BIND_IGNORE auto unexpectedUnsupportedFileExtension ()
 returns Expected error with stringUnsupportedFileExtension()
 
MR_BIND_IGNORE std::string stringUnsupportedFileFormat ()
 common message prefix about unsupported file format
 
MR_BIND_IGNORE auto unexpectedUnsupportedFileFormat ()
 returns Expected error with stringUnsupportedFileFormat()
 
MRMESH_API IsoLines extractIsolines (const MeshTopology &topology, const VertMetric &vertValues, const FaceBitSet *region=nullptr)
 extracts all iso-lines from given scalar field and iso-value=0
 
MRMESH_API bool hasAnyIsoline (const MeshTopology &topology, const VertMetric &vertValues, const FaceBitSet *region=nullptr)
 quickly returns true if extractIsolines produce not-empty set for the same arguments
 
MRMESH_API IsoLines extractIsolines (const MeshTopology &topology, const VertScalars &vertValues, float isoValue, const FaceBitSet *region=nullptr)
 extracts all iso-lines from given scalar field and iso-value
 
MRMESH_API bool hasAnyIsoline (const MeshTopology &topology, const VertScalars &vertValues, float isoValue, const FaceBitSet *region=nullptr)
 quickly returns true if extractIsolines produce not-empty set for the same arguments
 
MRMESH_API PlaneSections extractPlaneSections (const MeshPart &mp, const Plane3f &plane, UseAABBTree u=UseAABBTree::Yes)
 extracts all plane sections of given mesh
 
MRMESH_API bool hasAnyPlaneSection (const MeshPart &mp, const Plane3f &plane, UseAABBTree u=UseAABBTree::Yes)
 quickly returns true if extractPlaneSections produce not-empty set for the same arguments
 
MRMESH_API PlaneSections extractXYPlaneSections (const MeshPart &mp, float zLevel, UseAABBTree u=UseAABBTree::Yes)
 extracts all sections of given mesh with the plane z=zLevel
 
MRMESH_API bool hasAnyXYPlaneSection (const MeshPart &mp, float zLevel, UseAABBTree u=UseAABBTree::Yes)
 quickly returns true if extractXYPlaneSections produce not-empty set for the same arguments
 
MRMESH_API std::vector< LineSegm3ffindTriangleSectionsByXYPlane (const MeshPart &mp, float zLevel, std::vector< FaceId > *faces=nullptr, UseAABBTree u=UseAABBTree::Yes)
 
MRMESH_API PlaneSection trackSection (const MeshPart &mp, const MeshTriPoint &start, MeshTriPoint &end, const Vector3f &direction, float distance)
 
MRMESH_API Expected< PlaneSection > trackSection (const MeshPart &mp, const MeshTriPoint &start, const MeshTriPoint &end, const Vector3f &planePoint, bool ccw)
 
MRMESH_API bool isConsistentlyOriented (const MeshTopology &topology, const IsoLine &isoline)
 
MRMESH_API FaceBitSet getCrossedFaces (const MeshTopology &topology, const IsoLine &isoline)
 for a consistently oriented isoline, returns all faces it goes inside
 
MRMESH_API Contour2f planeSectionToContour2f (const Mesh &mesh, const PlaneSection &section, const AffineXf3f &meshToPlane)
 converts PlaneSections in 2D contours by computing coordinate of each point, applying given xf to it, and retaining only x and y
 
MRMESH_API Contours2f planeSectionsToContours2f (const Mesh &mesh, const PlaneSections &sections, const AffineXf3f &meshToPlane)
 
MRMESH_API std::optional< FaceScalarscalcFaceDistances (const MeshTopology &topology, const EdgeMetric &metric, const FaceBitSet &starts, const FaceDistancesSettings &settings={})
 
template<typename F >
bool forEachObjectKind (F &&func)
 Calls func, which is ( auto kind ) -> bool, for each known object kind. If it returns true, stops immediately and also returns true.
 
template<typename ... P>
std::shared_ptr< VisualObjectmakeObjectFromEnum (FeaturesObjectKind kind, P &&... params)
 Allocates an object of type kind, passing params... to its constructor.
 
template<typename ... P>
std::shared_ptr< VisualObjectmakeObjectFromClassName (std::string className, P &&... params)
 Allocates an object of type kind, passing params... to its constructor.
 
MRMESH_API std::optional< Vector3fgetFeatureNormal (FeatureObject *feature)
 
MRMESH_API std::optional< Vector3fgetFeatureDirection (FeatureObject *feature)
 
MRMESH_API std::unordered_set< std::string > getFeaturesTypeWithNormals ()
 
MRMESH_API std::unordered_set< std::string > getFeaturesTypeWithDirections ()
 
MRMESH_API Expected< AffineXf3frefineFeatureObject (const FeatureObject &featObj, const Mesh &mesh, const RefineParameters &params={})
 Recalculate the feature object's position so it would better fit with the given mesh.
 
MRMESH_API Expected< AffineXf3frefineFeatureObject (const FeatureObject &featObj, const PointCloud &pointCloud, const RefineParameters &params={})
 Recalculate the feature object's position so it would better fit with the given point cloud.
 
MR_BIND_IGNORE MRMESH_API FILE * fopen (const std::filesystem::path &filename, const char *mode)
 this version of fopen unlike std::fopen supports unicode file names on Windows
 
MRMESH_API FaceBitSet fillContourLeft (const MeshTopology &topology, const EdgePath &contour)
 
MRMESH_API FaceBitSet fillContourLeft (const MeshTopology &topology, const std::vector< EdgePath > &contours)
 
MRMESH_API FaceBitSet fillContourLeftByGraphCut (const MeshTopology &topology, const EdgePath &contour, const EdgeMetric &metric, const ProgressCallback &progress={})
 Fills region located to the left from given contour, by minimizing the sum of metric over the boundary If the computations are terminated by progress, then returns the best approximation found by the moment of termination.
 
MRMESH_API FaceBitSet fillContourLeftByGraphCut (const MeshTopology &topology, const std::vector< EdgePath > &contours, const EdgeMetric &metric, const ProgressCallback &progress={})
 Fills region located to the left from given contours, by minimizing the sum of metric over the boundary If the computations are terminated by progress, then returns the best approximation found by the moment of termination.
 
MRMESH_API FaceBitSet segmentByGraphCut (const MeshTopology &topology, const FaceBitSet &source, const FaceBitSet &sink, const EdgeMetric &metric, const ProgressCallback &progress={})
 Finds segment that divide mesh on source and sink (source included, sink excluded), by minimizing the sum of metric over the boundary If the computations are terminated by progress, then returns the best approximation found by the moment of termination.
 
MRMESH_API Expected< void > fillContours2D (Mesh &mesh, const std::vector< EdgeId > &holeRepresentativeEdges)
 fill holes with border in same plane (i.e. after cut by plane)
 
MRMESH_API AffineXf3f getXfFromOxyPlane (const Contours3f &contours)
 
MRMESH_API AffineXf3f getXfFromOxyPlane (const Mesh &mesh, const std::vector< EdgePath > &paths)
 
MRMESH_API Expected< void > fillPlanarHole (ObjectMeshData &data, std::vector< EdgeLoop > &holeContours)
 
MRMESH_API FaceBitSet fillHoleNicely (Mesh &mesh, EdgeId holeEdge, const FillHoleNicelySettings &settings)
 
MRMESH_API void filterCreaseEdges (const Mesh &mesh, UndirectedEdgeBitSet &creaseEdges, float critLength, bool filterComponents=true, bool filterBranches=false)
 
MRMESH_API std::vector< Vector3fmakeFreeFormOriginGrid (const Box3f &box, const Vector3i &resolution)
 Returns positions of grid points in given box with given resolution.
 
MRMESH_API std::vector< Vector3ffindBestFreeformDeformation (const Box3f &box, const std::vector< Vector3f > &source, const std::vector< Vector3f > &target, const Vector3i &resolution=Vector3i::diagonal(2), const AffineXf3f *samplesToBox=nullptr)
 
template<typename T >
Vector2< T > unfoldOnPlane (const Vector3< T > &b, const Vector3< T > &c, const Vector2< T > &d, bool toLeftFrom0d)
 
template<typename T >
shortestPathInQuadrangle (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c, const Vector3< T > &d)
 
template<typename T >
bool isUnfoldQuadrangleConvex (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c, const Vector3< T > &d)
 
MRMESH_API bool reducePathViaVertex (const Mesh &mesh, const MeshTriPoint &start, VertId v, const MeshTriPoint &end, SurfacePath &outPath, std::vector< Vector2f > &tmp, SurfacePath &cachePath)
 
MRMESH_API int reducePath (const Mesh &mesh, const MeshTriPoint &start, SurfacePath &path, const MeshTriPoint &end, int maxIter=5)
 
MRMESH_API std::optional< VertBitSetverticesGridSampling (const MeshPart &mp, float voxelSize, const ProgressCallback &cb={})
 
MRMESH_API std::optional< VertBitSetpointGridSampling (const PointCloudPart &pcp, float voxelSize, const ProgressCallback &cb={})
 
MRMESH_API std::optional< MultiObjsSamples > multiModelGridSampling (const Vector< ModelPointsData, ObjId > &models, float voxelSize, const ProgressCallback &cb={})
 
template<typename T >
size_t heapBytes (const std::vector< T > &vec)
 returns the amount of memory given vector occupies on heap
 
template<typename T , typename U >
size_t heapBytes (const Vector< T, U > &vec)
 
template<typename T >
size_t heapBytes (const std::unique_ptr< T > &ptr)
 returns the amount of memory this smart pointer and its pointed object own together on heap
 
template<typename T >
size_t heapBytes (const std::shared_ptr< T > &ptr)
 returns the amount of memory this smart pointer and its pointed object own together on heap
 
template<typename T >
 MR_REQUIRES_IF_SUPPORTED (std::is_function_v< T >) inline size_t heapBytes(const std
 
template<typename ... Ts>
size_t heapBytes (const phmap::flat_hash_map< Ts... > &hashMap)
 returns the amount of memory given HashMap occupies on heap
 
MRMESH_API std::pair< bool, int > filterHistoryActionsVector (HistoryActionsVector &historyVector, HistoryStackFilter filteringCondition, size_t firstRedoIndex=0, bool deepFiltering=true)
 Remove actions from history actions vector that match the condition.
 
size_t getNumSamples (const IPointPairs &pairs)
 returns the number of samples able to form pairs
 
MRMESH_API size_t getNumActivePairs (const IPointPairs &pairs)
 computes the number of active pairs
 
MRMESH_API NumSum getSumSqDistToPoint (const IPointPairs &pairs, std::optional< double > inaccuracy={})
 
MRMESH_API NumSum getSumSqDistToPlane (const IPointPairs &pairs, std::optional< double > inaccuracy={})
 
float getMeanSqDistToPoint (const IPointPairs &pairs)
 computes root-mean-square deviation between points
 
float getMeanSqDistToPlane (const IPointPairs &pairs)
 computes root-mean-square deviation from points to target planes
 
MRMESH_API std::string getICPStatusInfo (int iterations, ICPExitType exitType)
 returns status info string
 
MRMESH_API AffineXf3d getAligningXf (const PointToPlaneAligningTransform &p2pl, ICPMode mode, float angleLimit, float scaleLimit, const Vector3f &fixedRotationAxis)
 given prepared (p2pl) object, finds the best transformation from it of given type with given limitations on rotation angle and global scale
 
MRMESH_API size_t deactivateFarPairs (IPointPairs &pairs, float maxDistSq)
 reset active bit if pair distance is further than maxDistSq
 
MRMESH_API void updatePointPairs (PointPairs &pairs, const MeshOrPointsXf &src, const MeshOrPointsXf &tgt, float cosThreshold, float distThresholdSq, bool mutualClosest)
 in each pair updates the target data and performs basic filtering (activation)
 
template<typename T >
constexpr Id< T > operator+ (Id< T > id, int a)
 
template<typename T >
constexpr Id< T > operator+ (Id< T > id, unsigned int a)
 
template<typename T >
constexpr Id< T > operator+ (Id< T > id, size_t a)
 
template<typename T >
constexpr Id< T > operator- (Id< T > id, int a)
 
template<typename T >
constexpr Id< T > operator- (Id< T > id, unsigned int a)
 
template<typename T >
constexpr Id< T > operator- (Id< T > id, size_t a)
 
constexpr FaceId operator""_f (unsigned long long i) noexcept
 
constexpr VertId operator""_v (unsigned long long i) noexcept
 
constexpr EdgeId operator""_e (unsigned long long i) noexcept
 
constexpr UndirectedEdgeId operator""_ue (unsigned long long i) noexcept
 
constexpr VoxelId operator""_vox (unsigned long long i) noexcept
 
MRMESH_API bool improveSampling (const PointCloud &cloud, VertBitSet &samples, const ImproveSamplingSettings &settings)
 
MRMESH_API ShellVertexInfo classifyShellVert (const MeshPart &mp, const Vector3f &shellPoint, const FindInnerShellSettings &settings={})
 
MRMESH_API VertBitSet findInnerShellVerts (const MeshPart &mp, const Mesh &shell, const FindInnerShellSettings &settings={})
 
MRMESH_API FaceBitSet findInnerShellFacesWithSplits (const MeshPart &mp, Mesh &shell, const FindInnerShellSettings &settings={})
 
template<typename T >
std::optional< Line3< T > > intersection (const Plane3< T > &plane1, const Plane3< T > &plane2, T errorLimit=std::numeric_limits< T >::epsilon() *T(20))
 
template<typename T >
std::optional< Vector3< T > > intersection (const Plane3< T > &plane, const Line3< T > &line, T errorLimit=std::numeric_limits< T >::epsilon() *T(20))
 
template<typename T >
std::optional< Vector3< T > > intersection (const Line3< T > &line1, const Line3< T > &line2, T errorLimit=std::numeric_limits< T >::epsilon() *T(20))
 
std::optional< Vector2fintersection (const LineSegm2f &segm1, const LineSegm2f &segm2)
 
template<typename T >
std::optional< T > distanceSq (const Plane3< T > &plane1, const Plane3< T > &plane2, T errorLimit=std::numeric_limits< T >::epsilon() *T(20))
 
template<typename T >
std::optional< T > distance (const Plane3< T > &plane1, const Plane3< T > &plane2, T errorLimit=std::numeric_limits< T >::epsilon() *T(20))
 
template<typename T >
std::optional< T > distance (const Plane3< T > &plane, const Line3< T > &line, T errorLimit=std::numeric_limits< T >::epsilon() *T(20))
 
template<typename T >
LineSegm3< T > closestPoints (const Line3< T > &line1, const Line3< T > &line2)
 
template<typename T >
LineSegm3< T > closestPoints (const Line3< T > &ln, const LineSegm3< T > &ls)
 
template<typename T >
LineSegm3< T > closestPoints (const Line3< T > &line, const Box3< T > &box)
 finds the closest points between a line and a box wireframe (not solid) in 3D
 
template<typename V >
auto intersection (const Line< V > &line, const Sphere< V > &sphere)
 
MRMESH_API ContinuousContours orderIntersectionContours (const MeshTopology &topologyA, const MeshTopology &topologyB, const PreciseCollisionResult &intersections)
 
MRMESH_API ContinuousContours orderSelfIntersectionContours (const MeshTopology &topology, const std::vector< EdgeTri > &intersections)
 
MRMESH_API MR_BIND_IGNORE Contours3f extractIntersectionContours (const Mesh &meshA, const Mesh &meshB, const ContinuousContours &orientedContours, const CoordinateConverters &converters, const AffineXf3f *rigidB2A=nullptr)
 extracts coordinates from two meshes intersection contours
 
MRMESH_API bool isClosed (const ContinuousContour &contour)
 returns true if contour is closed
 
MRMESH_API std::vector< int > detectLoneContours (const ContinuousContours &contours, bool ignoreOpen=false)
 
MRMESH_API void removeLoneDegeneratedContours (const MeshTopology &edgesTopology, OneMeshContours &faceContours, OneMeshContours &edgeContours)
 
MRMESH_API void removeLoneContours (ContinuousContours &contours, bool ignoreOpen=false)
 
template<typename T >
void findMaxVectorDim (int &dimX, int &dimY, int &dimZ, const Vector3< T > &dir)
 finds index of maximum axis and stores it into dimZ
 
template<typename T >
void findMaxVectorDim (int &dimX, int &dimY, const Vector2< T > &dir)
 finds index of maximum axis and stores it into dimY
 
MRMESH_API IOFilters operator| (const IOFilters &a, const IOFilters &b)
 returns union of input filters
 
MRMESH_API std::optional< IOFilterfindFilter (const IOFilters &filters, const std::string &extension)
 find a corresponding filter for a given extension
 
MRMESH_API std::vector< size_t > splitByLines (const char *data, size_t size)
 
MRMESH_API MR_BIND_IGNORE std::streamoff getStreamSize (std::istream &in)
 
MRMESH_API MR_BIND_IGNORE Expected< std::string > readString (std::istream &in)
 
MRMESH_API MR_BIND_IGNORE Expected< Buffer< char > > readCharBuffer (std::istream &in)
 
template<typename T >
Expected< void > parseTextCoordinate (const std::string_view &str, Vector3< T > &v, Vector3< T > *n=nullptr, Color *c=nullptr)
 
template<typename T >
Expected< void > parseObjCoordinate (const std::string_view &str, Vector3< T > &v, Vector3< T > *c=nullptr)
 
template<typename T >
Expected< void > parsePtsCoordinate (const std::string_view &str, Vector3< T > &v, Color &c)
 
MRMESH_API Expected< void > parseFirstNum (const std::string_view &str, int &num)
 
MRMESH_API Expected< void > parsePolygon (const std::string_view &str, VertId *vertId, int *numPoints)
 
template<typename T >
Expected< void > parseAscCoordinate (const std::string_view &str, Vector3< T > &v, Vector3< T > *n=nullptr, Color *c=nullptr)
 
template<typename T >
Expected< void > parseSingleNumber (const std::string_view &str, T &num)
 
MR_BIND_IGNORE MRMESH_API std::unique_ptr< IRenderObjectcreateRenderObject (const VisualObject &visObj, const std::type_index &type)
 
template<typename ObjectType >
MR_BIND_IGNORE std::unique_ptr< IRenderObjectcreateRenderObject (const VisualObject &visObj)
 
template<typename RenderObjType >
MR_BIND_IGNORE IRenderObjectConstructorLambda makeRenderObjectConstructor ()
 
bool isNanFast (float f)
 quickly tests whether given float is not-a-number
 
MRMESH_API std::optional< VertBitSetpointIterativeSampling (const PointCloud &cloud, int numSamples, const ProgressCallback &cb={})
 
MRMESH_API std::shared_ptr< ObjectmakeLevelOfDetails (Mesh &&mesh, int maxDepth)
 
template<typename V >
bool operator== (const LineSegm< V > &a, const LineSegm< V > &b)
 
template<typename V >
closestPointOnLineSegm (const V &pt, const LineSegm< V > &l)
 
template<typename V >
bool doSegmentsIntersect (const LineSegm< V > &x, const LineSegm< V > &y, typename V::ValueType *xPos=nullptr, typename V::ValueType *yPos=nullptr)
 
template<typename V >
bool doSegmentLineIntersect (const LineSegm< V > &x, const Line< V > &y, typename V::ValueType *xPos=nullptr, typename V::ValueType *yPos=nullptr)
 
MRMESH_API std::optional< AllLocalTriangulationsuniteLocalTriangulations (const std::vector< SomeLocalTriangulations > &in, const ProgressCallback &progress={})
 
MRMESH_API Vector3f computeNormal (const AllLocalTriangulations &triangs, const VertCoords &points, VertId v)
 compute normal at point by averaging neighbor triangle normals weighted by triangle's angle at the point
 
MRMESH_API void orientLocalTriangulations (AllLocalTriangulations &triangs, const VertCoords &coords, const VertBitSet &region, const VertNormals &targetDir)
 orient neighbors around each point in
 
MRMESH_API void orientLocalTriangulations (AllLocalTriangulations &triangs, const VertCoords &coords, const VertBitSet &region, const std::function< Vector3f(VertId)> &targetDir)
 
MRMESH_API bool autoOrientLocalTriangulations (const PointCloud &pointCloud, AllLocalTriangulations &triangs, const VertBitSet &region, ProgressCallback progress={}, Triangulation *outRep3=nullptr, Triangulation *outRep2=nullptr)
 orient neighbors around each point in
 
MRMESH_API TrianglesRepetitions computeTrianglesRepetitions (const AllLocalTriangulations &triangs)
 computes statistics about the number of triangle repetitions in local triangulations
 
MRMESH_API std::vector< UnorientedTrianglefindRepeatedUnorientedTriangles (const AllLocalTriangulations &triangs, int repetitions)
 from local triangulations returns all unoriented triangles with given number of repetitions each in [1,3]
 
MRMESH_API Triangulation findRepeatedOrientedTriangles (const AllLocalTriangulations &triangs, int repetitions)
 from local triangulations returns all oriented triangles with given number of repetitions each in [1,3]
 
MRMESH_API void findRepeatedOrientedTriangles (const AllLocalTriangulations &triangs, Triangulation *outRep3, Triangulation *outRep2)
 optional output with all oriented triangles that appear in exactly two local triangulations
 
MRMESH_API Mesh makePlane ()
 
MRMESH_API AffineXf3d makeRigidXf (const MeshPart &mp, const AffineXf3d &meshXf)
 
MRMESH_API AffineXf3f makeRigidXf (const MeshPart &mp, const AffineXf3f &meshXf)
 
MRMESH_API Mesh makeSphere (const SphereParams &params)
 creates a mesh of sphere with irregular triangulation
 
MRMESH_API Mesh makeUVSphere (float radius=1.0, int horisontalResolution=16, int verticalResolution=16)
 creates a mesh of sphere with regular triangulation (parallels and meridians)
 
EdgeId mapEdge (const WholeEdgeMap &map, EdgeId src)
 given input edge (src), converts its id using given map
 
UndirectedEdgeId mapEdge (const WholeEdgeMap &map, UndirectedEdgeId src)
 given input edge (src), converts its id using given map
 
EdgeId mapEdge (const WholeEdgeHashMap &map, EdgeId src)
 given input edge (src), converts its id using given map
 
UndirectedEdgeId mapEdge (const WholeEdgeHashMap &map, UndirectedEdgeId src)
 given input edge (src), converts its id using given map
 
EdgeId mapEdge (const WholeEdgeMapOrHashMap &m, EdgeId src)
 given input edge (src), converts its id using given map
 
UndirectedEdgeId mapEdge (const WholeEdgeMapOrHashMap &m, UndirectedEdgeId src)
 given input edge (src), converts its id using given map
 
UndirectedEdgeId mapEdge (const UndirectedEdgeBMap &map, UndirectedEdgeId src)
 given input edge (src), converts its id using given map
 
MRMESH_API UndirectedEdgeBitSet mapEdges (const WholeEdgeMap &map, const UndirectedEdgeBitSet &src)
 given input bit-set (src), converts each id corresponding to set bit using given map, and sets its bit in the resulting bit set
 
MRMESH_API UndirectedEdgeBitSet mapEdges (const WholeEdgeHashMap &map, const UndirectedEdgeBitSet &src)
 given input bit-set (src), converts each id corresponding to set bit using given map, and sets its bit in the resulting bit set
 
MRMESH_API UndirectedEdgeBitSet mapEdges (const UndirectedEdgeBMap &map, const UndirectedEdgeBitSet &src)
 given input bit-set (src), converts each id corresponding to set bit using given map, and sets its bit in the resulting bit set
 
template<typename K , typename V >
getAt (const MapOrHashMap< K, V > &m, K key, V def={})
 
template<typename K , typename V >
void setAt (MapOrHashMap< K, V > &m, K key, V val)
 
template<typename ValueT , typename IndexT >
void mapNewToOldVector (const Vector< ValueT, Id< IndexT > > &oldData, const Vector< Id< IndexT >, Id< IndexT > > &newToOld, Vector< ValueT, Id< IndexT > > &newData)
 
template<typename ValueT , typename IndexT >
void mapOldToNewVector (const Vector< ValueT, Id< IndexT > > &oldData, const Vector< Id< IndexT >, Id< IndexT > > &newToOld, Vector< ValueT, Id< IndexT > > &newData)
 
bool isClosed (const Contour3f &c)
 
MarkedContour3f markedContour (Contour3f in)
 
MarkedContour3f markedFirstLast (Contour3f in)
 
MRMESH_API MarkedContour3f resample (const MarkedContour3f &in, float minStep, Contour3f *normals=nullptr)
 
MRMESH_API MarkedContour3f makeSpline (MarkedContour3f in, float markStability=1, const Contour3f *normals=nullptr)
 
MRMESH_API MarkedContour3f makeSpline (MarkedContour3f in, const Contour3f &normals, float markStability=1)
 
MRMESH_API MarkedContour3f makeSpline (const Contour3f &controlPoints, const SplineSettings &settings)
 
template<typename T >
void decomposeMatrix3 (const Matrix3< T > &m, Matrix3< T > &rotation, Matrix3< T > &scaling)
 Decomposes matrix into rotation and scaling matrices.
 
template<typename T >
bool isRigid (const Matrix3< T > &m)
 Returns true if matrix scale is identity.
 
MRMESH_API BooleanResult boolean (const Mesh &meshA, const Mesh &meshB, BooleanOperation operation, const AffineXf3f *rigidB2A, BooleanResultMapper *mapper=nullptr, ProgressCallback cb={})
 Performs CSG operation on two meshes.
 
MRMESH_API BooleanResult boolean (Mesh &&meshA, Mesh &&meshB, BooleanOperation operation, const AffineXf3f *rigidB2A, BooleanResultMapper *mapper=nullptr, ProgressCallback cb={})
 
MRMESH_API BooleanResult boolean (const Mesh &meshA, const Mesh &meshB, BooleanOperation operation, const BooleanParameters &params={})
 
MRMESH_API BooleanResult boolean (Mesh &&meshA, Mesh &&meshB, BooleanOperation operation, const BooleanParameters &params={})
 
MRMESH_API Expected< MeshselfBoolean (const Mesh &mesh)
 
MRMESH_API Contours3f findIntersectionContours (const Mesh &meshA, const Mesh &meshB, const AffineXf3f *rigidB2A=nullptr)
 returns intersection contours of given meshes
 
MRMESH_API Expected< BooleanResultPoints, std::string > getBooleanPoints (const Mesh &meshA, const Mesh &meshB, BooleanOperation operation, const AffineXf3f *rigidB2A=nullptr)
 Returns the points of mesh boolean's result mesh.
 
MRMESH_API void convertIntFloatAllVerts (Mesh &mesh, const CoordinateConverters &conv)
 
MRMESH_API TransformedMeshoperator+= (TransformedMesh &a, const TransformedMesh &b)
 union operation on two meshes
 
MRMESH_API TransformedMeshoperator-= (TransformedMesh &a, const TransformedMesh &b)
 difference operation on two meshes
 
MRMESH_API TransformedMeshoperator*= (TransformedMesh &a, const TransformedMesh &b)
 intersection operation on two meshes
 
MRMESH_API void straightenBoundary (Mesh &mesh, EdgeId bd, float minNeiNormalsDot, float maxTriAspectRatio, FaceBitSet *newFaces=nullptr)
 
MRMESH_API std::vector< FaceFacefindCollidingTriangles (const MeshPart &a, const MeshPart &b, const AffineXf3f *rigidB2A=nullptr, bool firstIntersectionOnly=false)
 finds all pairs of colliding triangles from two meshes or two mesh regions
 
MRMESH_API std::pair< FaceBitSet, FaceBitSetfindCollidingTriangleBitsets (const MeshPart &a, const MeshPart &b, const AffineXf3f *rigidB2A=nullptr)
 the same as findCollidingTriangles, but returns one bite set per mesh with colliding triangles
 
MRMESH_API Expected< bool > findSelfCollidingTriangles (const MeshPart &mp, std::vector< FaceFace > *outCollidingPairs, ProgressCallback cb={}, const Face2RegionMap *regionMap=nullptr, bool touchIsIntersection=false)
 finds all pairs (or the fact of any self-collision) of colliding triangles from one mesh or a region
 
MRMESH_API Expected< std::vector< FaceFace > > findSelfCollidingTriangles (const MeshPart &mp, ProgressCallback cb={}, const Face2RegionMap *regionMap=nullptr, bool touchIsIntersection=false)
 finds all pairs of colliding triangles from one mesh or a region
 
MRMESH_API Expected< FaceBitSetfindSelfCollidingTrianglesBS (const MeshPart &mp, ProgressCallback cb={}, const Face2RegionMap *regionMap=nullptr, bool touchIsIntersection=false)
 the same findSelfCollidingTriangles but returns the union of all self-intersecting faces
 
MRMESH_API bool isInside (const MeshPart &a, const MeshPart &b, const AffineXf3f *rigidB2A=nullptr)
 checks that arbitrary mesh part A is inside of closed mesh part B
 
MRMESH_API bool isNonIntersectingInside (const MeshPart &a, const MeshPart &b, const AffineXf3f *rigidB2A=nullptr)
 checks that arbitrary mesh part A is inside of closed mesh part B The version of isInside without collision check; it is user's responsibility to guarantee that the meshes don't collide
 
MRMESH_API bool isNonIntersectingInside (const Mesh &a, FaceId partFace, const MeshPart &b, const AffineXf3f *rigidB2A=nullptr)
 checks that arbitrary mesh A part (whole part is represented by one face partFace) is inside of closed mesh part B The version of isInside without collision check; it is user's responsibility to guarantee that the meshes don't collide
 
bool operator== (const EdgeTri &a, const EdgeTri &b)
 
MRMESH_API PreciseCollisionResult findCollidingEdgeTrisPrecise (const MeshPart &a, const MeshPart &b, ConvertToIntVector conv, const AffineXf3f *rigidB2A=nullptr, bool anyIntersection=false)
 finds all pairs of colliding edges from one mesh and triangle from another mesh
 
MRMESH_API std::vector< EdgeTrifindSelfCollidingEdgeTrisPrecise (const MeshPart &mp, ConvertToIntVector conv, bool anyIntersection=false, const AffineXf3f *rigidB2A=nullptr, int aVertSizes=0)
 finds all pairs of colliding edges and triangle within one mesh
 
MRMESH_API std::vector< EdgeTrifindCollidingEdgeTrisPrecise (const Mesh &a, const std::vector< EdgeId > &edgesA, const Mesh &b, const std::vector< FaceId > &facesB, ConvertToIntVector conv, const AffineXf3f *rigidB2A=nullptr)
 finds all intersections between every given edge from A and given triangles from B
 
MRMESH_API std::vector< EdgeTrifindCollidingEdgeTrisPrecise (const Mesh &a, const std::vector< FaceId > &facesA, const Mesh &b, const std::vector< EdgeId > &edgesB, ConvertToIntVector conv, const AffineXf3f *rigidB2A=nullptr)
 finds all intersections between every given triangle from A and given edge from B
 
MRMESH_API CoordinateConverters getVectorConverters (const MeshPart &a)
 creates simple converters from Vector3f to Vector3i and back in mesh part area range
 
MRMESH_API CoordinateConverters getVectorConverters (const MeshPart &a, const MeshPart &b, const AffineXf3f *rigidB2A=nullptr)
 creates simple converters from Vector3f to Vector3i and back in mesh parts area range
 
MRMESH_API DecimateResult decimateMesh (Mesh &mesh, const DecimateSettings &settings={})
 Performs mesh simplification in mesh region according to the settings.
 
MRMESH_API DecimateResult decimateObjectMeshData (ObjectMeshData &data, const DecimateSettings &settings)
 
MRMESH_API std::optional< ObjectMeshDatamakeDecimatedObjectMeshData (const ObjectMesh &obj, const DecimateSettings &settings, DecimateResult *outRes=nullptr)
 returns the data of decimated mesh given ObjectMesh (which remains unchanged) and decimation parameters
 
MRMESH_API QuadraticForm3f computeFormAtVertex (const MeshPart &mp, VertId v, float stabilizer, bool angleWeigted, const UndirectedEdgeBitSet *creases=nullptr)
 Computes quadratic form at given vertex of the initial surface before decimation.
 
MRMESH_API Vector< QuadraticForm3f, VertIdcomputeFormsAtVertices (const MeshPart &mp, float stabilizer, bool angleWeigted, const UndirectedEdgeBitSet *creases=nullptr)
 Computes quadratic forms at every vertex of mesh part before decimation.
 
MRMESH_API FaceBitSet getSubdividePart (const FaceBitSet &valids, size_t subdivideParts, size_t myPart)
 returns given subdivision part of all valid faces; parallel threads shall be able to safely modify these bits because they do not share any block with other parts
 
MRMESH_API bool resolveMeshDegenerations (Mesh &mesh, const ResolveMeshDegenSettings &settings={})
 Removes degenerate triangles in a mesh by calling decimateMesh function with appropriate settings.
 
MRMESH_API bool remesh (Mesh &mesh, const RemeshSettings &settings)
 
template<typename T >
auto preCollapseVertAttribute (const Mesh &mesh, Vector< T, VertId > &data)
 
MRMESH_API PreCollapseCallback meshPreCollapseVertAttribute (const Mesh &mesh, const MeshAttributesToUpdate &params)
 
MRMESH_API void deleteTargetFaces (Mesh &obj, const Vector3f &targetCenter)
 deletes object faces with normals pointed to the target geometry center
 
MRMESH_API void deleteTargetFaces (Mesh &obj, const Mesh &target)
 
MRMESH_API bool checkDeloneQuadrangle (const Vector3d &a, const Vector3d &b, const Vector3d &c, const Vector3d &d, double maxAngleChange=DBL_MAX)
 
MRMESH_API bool checkDeloneQuadrangle (const Vector3f &a, const Vector3f &b, const Vector3f &c, const Vector3f &d, float maxAngleChange=FLT_MAX)
 converts arguments in double and calls above function
 
MRMESH_API FlipEdge canFlipEdge (const MeshTopology &topology, EdgeId edge, const FaceBitSet *region=nullptr, const UndirectedEdgeBitSet *notFlippable=nullptr, const VertBitSet *vertRegion=nullptr)
 consider topology and constraints to decide about flip possibility
 
MRMESH_API bool checkDeloneQuadrangleInMesh (const Mesh &mesh, EdgeId edge, const DeloneSettings &settings={}, float *deviationSqAfterFlip=nullptr)
 squared surface deviation after flip is written here (at least when the function returns false)
 
MRMESH_API bool checkDeloneQuadrangleInMesh (const MeshTopology &topology, const VertCoords &points, EdgeId edge, const DeloneSettings &settings={}, float *deviationSqAfterFlip=nullptr)
 squared surface deviation after flip is written here (at least when the function returns false)
 
MRMESH_API bool bestQuadrangleDiagonal (const Vector3f &a, const Vector3f &b, const Vector3f &c, const Vector3f &d)
 
MRMESH_API void makeDeloneOriginRing (Mesh &mesh, EdgeId e, const DeloneSettings &settings={})
 improves mesh triangulation in a ring of vertices with common origin and represented by edge e
 
MRMESH_API void makeDeloneOriginRing (MeshTopology &topology, const VertCoords &points, EdgeId e, const DeloneSettings &settings={})
 
MRMESH_API int makeDeloneEdgeFlips (Mesh &mesh, const DeloneSettings &settings={}, int numIters=1, const ProgressCallback &progressCallback={})
 
MRMESH_API int makeDeloneEdgeFlips (MeshTopology &topology, const VertCoords &points, const DeloneSettings &settings={}, int numIters=1, const ProgressCallback &progressCallback={})
 
MRMESH_API int makeDeloneEdgeFlips (EdgeLengthMesh &mesh, const IntrinsicDeloneSettings &settings={}, int numIters=1, const ProgressCallback &progressCallback={})
 
MRMESH_API void processCloseTriangles (const MeshPart &mp, const Triangle3f &t, float rangeSq, const TriangleCallback &call)
 
MRMESH_API std::optional< float > signedDistanceToMesh (const MeshPart &mp, const Vector3f &p, const SignedDistanceToMeshOptions &op)
 
MRMESH_API FaceBitSet findOuterLayer (const Mesh &mesh)
 
MR_BIND_IGNORE MRMESH_API MeshTopology topologyFromEigen (const Eigen::MatrixXi &F)
 constructs mesh topology from N*3 matrix of vertex indices
 
MR_BIND_IGNORE MRMESH_API Mesh meshFromEigen (const Eigen::MatrixXd &V, const Eigen::MatrixXi &F)
 constructs mesh from M*3 matrix of coordinates and N*3 matrix of vertex indices
 
MR_BIND_IGNORE MRMESH_API void pointsFromEigen (const Eigen::MatrixXd &V, const VertBitSet &selection, VertCoords &points)
 replace selected points with the values from V
 
MR_BIND_IGNORE MRMESH_API void topologyToEigen (const MeshTopology &topology, Eigen::MatrixXi &F)
 converts valid faces from mesh topology into N*3 matrix of vertex indices
 
MR_BIND_IGNORE MRMESH_API void meshToEigen (const Mesh &mesh, Eigen::MatrixXd &V, Eigen::MatrixXi &F)
 converts mesh into M*3 matrix of coordinates and N*3 matrix of vertex indices
 
MRMESH_API void makeDegenerateBandAroundRegion (Mesh &mesh, const FaceBitSet &region, const MakeDegenerateBandAroundRegionParams &params={})
 Create a band of degenerate faces along the border of the specified region and the rest of the mesh.
 
MRMESH_API void buildCylinderBetweenTwoHoles (Mesh &mesh, EdgeId a, EdgeId b, const StitchHolesParams &params={})
 Stitches two holes in Mesh
.
 
MRMESH_API bool buildCylinderBetweenTwoHoles (Mesh &mesh, const StitchHolesParams &params={})
 this version finds holes in the mesh by itself and returns false if they are not found
 
MRMESH_API void fillHole (Mesh &mesh, EdgeId a, const FillHoleParams &params={})
 Fills hole in mesh
.
 
MRMESH_API void fillHoles (Mesh &mesh, const std::vector< EdgeId > &as, const FillHoleParams &params={})
 fill all holes given by their representative edges in
 
MRMESH_API bool isHoleBd (const MeshTopology &topology, const EdgeLoop &loop)
 
MRMESH_API HoleFillPlan getHoleFillPlan (const Mesh &mesh, EdgeId e, const FillHoleParams &params={})
 
MRMESH_API std::vector< HoleFillPlangetHoleFillPlans (const Mesh &mesh, const std::vector< EdgeId > &holeRepresentativeEdges, const FillHoleParams &params={})
 
MRMESH_API HoleFillPlan getPlanarHoleFillPlan (const Mesh &mesh, EdgeId e)
 
MRMESH_API std::vector< HoleFillPlangetPlanarHoleFillPlans (const Mesh &mesh, const std::vector< EdgeId > &holeRepresentativeEdges)
 
MRMESH_API void executeHoleFillPlan (Mesh &mesh, EdgeId a0, HoleFillPlan &plan, FaceBitSet *outNewFaces=nullptr)
 quickly triangulates the face or hole to the left of (e) given the plan (quickly compared to fillHole function)
 
MRMESH_API VertId fillHoleTrivially (Mesh &mesh, EdgeId a, FaceBitSet *outNewFaces=nullptr)
 Triangulates face of hole in mesh trivially
.
 
MRMESH_API EdgeId extendHole (Mesh &mesh, EdgeId a, const Plane3f &plane, FaceBitSet *outNewFaces=nullptr)
 
MRMESH_API std::vector< EdgeIdextendAllHoles (Mesh &mesh, const Plane3f &plane, FaceBitSet *outNewFaces=nullptr)
 
MRMESH_API EdgeId extendHole (Mesh &mesh, EdgeId a, std::function< Vector3f(const Vector3f &)> getVertPos, FaceBitSet *outNewFaces=nullptr)
 
MRMESH_API EdgeId buildBottom (Mesh &mesh, EdgeId a, Vector3f dir, float holeExtension, FaceBitSet *outNewFaces=nullptr)
 
MRMESH_API EdgeId makeDegenerateBandAroundHole (Mesh &mesh, EdgeId a, FaceBitSet *outNewFaces=nullptr)
 
MRMESH_API MakeBridgeResult makeQuadBridge (MeshTopology &topology, EdgeId a, EdgeId b, FaceBitSet *outNewFaces=nullptr)
 
MRMESH_API MakeBridgeResult makeBridge (MeshTopology &topology, EdgeId a, EdgeId b, FaceBitSet *outNewFaces=nullptr)
 
MRMESH_API MakeBridgeResult makeSmoothBridge (Mesh &mesh, EdgeId a, EdgeId b, float samplingStep, FaceBitSet *outNewFaces=nullptr)
 
MRMESH_API EdgeId makeBridgeEdge (MeshTopology &topology, EdgeId a, EdgeId b)
 
MRMESH_API void splitQuad (MeshTopology &topology, EdgeId a, FaceBitSet *outNewFaces=nullptr)
 given quadrangle face to the left of a, splits it in two triangles with new diagonal edge via dest(a)
 
MRMESH_API int duplicateMultiHoleVertices (Mesh &mesh)
 Duplicates all vertices having more than two boundary edges (and returns the number of duplications);.
 
MRMESH_API Expected< std::vector< MultipleEdge > > findMultipleEdges (const MeshTopology &topology, ProgressCallback cb={})
 
bool hasMultipleEdges (const MeshTopology &topology)
 
MRMESH_API void fixMultipleEdges (Mesh &mesh, const std::vector< MultipleEdge > &multipleEdges)
 resolves given multiple edges, but splitting all but one edge in each group
 
MRMESH_API void fixMultipleEdges (Mesh &mesh)
 finds and resolves multiple edges
 
MRMESH_API Expected< FaceBitSetfindDegenerateFaces (const MeshPart &mp, float criticalAspectRatio=FLT_MAX, ProgressCallback cb={})
 finds faces having aspect ratio >= criticalAspectRatio
 
MRMESH_API Expected< FaceBitSetfindNotSmoothFaces (const MeshPart &mp, float minAngle=0.3f, ProgressCallback cb={})
 
MRMESH_API Expected< UndirectedEdgeBitSetfindShortEdges (const MeshPart &mp, float criticalLength, ProgressCallback cb={})
 finds edges having length <= criticalLength
 
MRMESH_API Expected< void > fixMeshDegeneracies (Mesh &mesh, const FixMeshDegeneraciesParams &params)
 Fixes degenerate faces and short edges in mesh (changes topology)
 
MRMESH_API VertBitSet findNRingVerts (const MeshTopology &topology, int n, const VertBitSet *region=nullptr)
 finds vertices in region with complete ring of N edges
 
MRMESH_API bool isEdgeBetweenDoubleTris (const MeshTopology &topology, EdgeId e)
 returns true if the edge e has both left and right triangular faces and the degree of dest( e ) is 2
 
MRMESH_API EdgeId eliminateDoubleTris (MeshTopology &topology, EdgeId e, FaceBitSet *region=nullptr)
 
MRMESH_API void eliminateDoubleTrisAround (MeshTopology &topology, VertId v, FaceBitSet *region=nullptr)
 
MRMESH_API bool isDegree3Dest (const MeshTopology &topology, EdgeId e)
 returns true if the destination of given edge has degree 3 and 3 incident triangles
 
MRMESH_API EdgeId eliminateDegree3Dest (MeshTopology &topology, EdgeId e, FaceBitSet *region=nullptr)
 
MRMESH_API int eliminateDegree3Vertices (MeshTopology &topology, VertBitSet &region, FaceBitSet *fs=nullptr)
 
MRMESH_API EdgeId isVertexRepeatedOnHoleBd (const MeshTopology &topology, VertId v)
 
MRMESH_API VertBitSet findRepeatedVertsOnHoleBd (const MeshTopology &topology)
 returns set bits for all vertices present on the boundary of a hole several times;
 
MRMESH_API FaceBitSet findHoleComplicatingFaces (const Mesh &mesh)
 
MRMESH_API void fixMeshCreases (Mesh &mesh, const FixCreasesParams &params={})
 Finds creases edges and re-triangulates planar areas around them, useful to fix double faces.
 
MRMESH_API Expected< FaceBitSetfindDisorientedFaces (const Mesh &mesh, const FindDisorientationParams &params={})
 returns all faces that are oriented inconsistently, based on number of ray intersections
 
template<>
MR_CANONICAL_TYPEDEFS((template< typename T > class MRMESH_CLASS), Id,(EdgeId, Id< EdgeTag >)(UndirectedEdgeId, Id< UndirectedEdgeTag >)(FaceId, Id< FaceTag >)(VertId, Id< VertTag >)(PixelId, Id< PixelTag >)(VoxelId, Id< VoxelTag >)(RegionId, Id< RegionTag >)(NodeId, Id< NodeTag >)(ObjId, Id< ObjTag >)(TextureId, Id< TextureTag >)(GraphVertId, Id< GraphVertTag >)(GraphEdgeId, Id< GraphEdgeTag >)) template<> class MR_BIND_PREFERRED_NAME(MR class MR_BIND_PREFERRED_NAME (MR::VoxelId) Id< VoxelTag >
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > class MRMESH_CLASS), NoInitId,(NoInitNodeId, NoInitId< NodeTag >)) template< typename T
 
 MR_CANONICAL_TYPEDEFS ((template< typename I > class MRMESH_CLASS), TypedBitSet,(FaceBitSet, TypedBitSet< FaceId >)(VertBitSet, TypedBitSet< VertId >)(EdgeBitSet, TypedBitSet< EdgeId >)(UndirectedEdgeBitSet, TypedBitSet< UndirectedEdgeId >)(PixelBitSet, TypedBitSet< PixelId >)(VoxelBitSet, TypedBitSet< VoxelId >)(RegionBitSet, TypedBitSet< RegionId >)(NodeBitSet, TypedBitSet< NodeId >)(ObjBitSet, TypedBitSet< ObjId >)(TextureBitSet, TypedBitSet< TextureId >)(GraphVertBitSet, TypedBitSet< GraphVertId >)(GraphEdgeBitSet, TypedBitSet< GraphEdgeId >)) template< typename T > using TaggedBitSet
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > class MRMESH_CLASS), SetBitIteratorT,(SetBitIterator, SetBitIteratorT< BitSet >)(FaceSetBitIterator, SetBitIteratorT< FaceBitSet >)(VertSetBitIterator, SetBitIteratorT< VertBitSet >)(EdgeSetBitIterator, SetBitIteratorT< EdgeBitSet >)(UndirectedEdgeSetBitIterator, SetBitIteratorT< UndirectedEdgeBitSet >)) struct Color
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), MRMESH_CLASS Vector2,(Vector2b, Vector2< bool >)(Vector2i, Vector2< int >)(Vector2i64, Vector2< Int64 >)(Vector2f, Vector2< float >)(Vector2d, Vector2< double >)) using Vector2ll
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), MRMESH_CLASS Vector3,(Vector3b, Vector3< bool >)(Vector3i, Vector3< int >)(Vector3i64, Vector3< Int64 >)(Vector3f, Vector3< float >)(Vector3d, Vector3< double >)) using Vector3ll
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), Vector4,(Vector4b, Vector4< bool >)(Vector4i, Vector4< int >)(Vector4i64, Vector4< Int64 >)(Vector4f, Vector4< float >)(Vector4d, Vector4< double >)) using Vector4ll
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), Matrix2,(Matrix2b, Matrix2< bool >)(Matrix2i, Matrix2< int >)(Matrix2i64, Matrix2< Int64 >)(Matrix2f, Matrix2< float >)(Matrix2d, Matrix2< double >)) using Matrix2ll
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), Matrix3,(Matrix3b, Matrix3< bool >)(Matrix3i, Matrix3< int >)(Matrix3i64, Matrix3< Int64 >)(Matrix3f, Matrix3< float >)(Matrix3d, Matrix3< double >)) using Matrix3ll
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), Matrix4,(Matrix4b, Matrix4< bool >)(Matrix4i, Matrix4< int >)(Matrix4i64, Matrix4< Int64 >)(Matrix4f, Matrix4< float >)(Matrix4d, Matrix4< double >)) using Matrix4ll
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), SymMatrix2,(SymMatrix2b, SymMatrix2< bool >)(SymMatrix2i, SymMatrix2< int >)(SymMatrix2i64, SymMatrix2< Int64 >)(SymMatrix2f, SymMatrix2< float >)(SymMatrix2d, SymMatrix2< double >)) using SymMatrix2ll
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), SymMatrix3,(SymMatrix3b, SymMatrix3< bool >)(SymMatrix3i, SymMatrix3< int >)(SymMatrix3i64, SymMatrix3< Int64 >)(SymMatrix3f, SymMatrix3< float >)(SymMatrix3d, SymMatrix3< double >)) using SymMatrix3ll
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), SymMatrix4,(SymMatrix4b, SymMatrix4< bool >)(SymMatrix4i, SymMatrix4< int >)(SymMatrix4i64, SymMatrix4< Int64 >)(SymMatrix4f, SymMatrix4< float >)(SymMatrix4d, SymMatrix4< double >)) using SymMatrix4ll
 
 MR_CANONICAL_TYPEDEFS ((template< typename V > struct), AffineXf,(AffineXf2f, AffineXf< Vector2< float > >)(AffineXf2d, AffineXf< Vector2< double > >)(AffineXf3f, AffineXf< Vector3< float > >)(AffineXf3d, AffineXf< Vector3< double > >)) template< typename T > using AffineXf2
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), RigidXf3,(RigidXf3f, RigidXf3< float >)(RigidXf3d, RigidXf3< double >)) MR_CANONICAL_TYPEDEFS((template< typename T > struct)
 
 RigidScaleXf3< float > (RigidScaleXf3d, RigidScaleXf3< double >)) class PointToPointAligningTransform
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), Sphere,(Sphere2f, Sphere< Vector2< float > >)(Sphere2d, Sphere< Vector2< double > >)(Sphere3f, Sphere< Vector3< float > >)(Sphere3d, Sphere< Vector3< double > >)) template< typename T > using Sphere2
 
 MR_CANONICAL_TYPEDEFS ((template< typename V > struct), Line,(Line2f, Line< Vector2< float > >)(Line2d, Line< Vector2< double > >)(Line3f, Line< Vector3< float > >)(Line3d, Line< Vector3< double > >)) template< typename T > using Line2
 
 MR_CANONICAL_TYPEDEFS ((template< typename V > struct), LineSegm,(LineSegm2f, LineSegm< Vector2< float > >)(LineSegm2d, LineSegm< Vector2< double > >)(LineSegm3f, LineSegm< Vector3< float > >)(LineSegm3d, LineSegm< Vector3< double > >)) template< typename T > using LineSegm2
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), Parabola,(Parabolaf, Parabola< float >)(Parabolad, Parabola< double >)) MR_CANONICAL_TYPEDEFS((template< typename T > class)
 
 BestFitParabola< float > (BestFitParabolad, BestFitParabola< double >)) MR_CANONICAL_TYPEDEFS((template< typename T > class)
 
 Cylinder3< float > (Cylinder3d, Cylinder3< double >)) MR_CANONICAL_TYPEDEFS((template< typename T > class)
 
 Cone3< float > (Cone3d, Cone3< double >)) template< typename V > using Contour
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), Plane3,(Plane3f, Plane3< float >)(Plane3d, Plane3< double >)) MR_CANONICAL_TYPEDEFS((template< typename V > struct MRMESH_CLASS)
 
 Box< int > (Box1i64, Box< Int64 >)(Box1f
 
 Box< float > (Box1d, Box< double >)(Box2i
 
 Box< Vector2< int > > (Box2i64, Box< Vector2< Int64 > >)(Box2f
 
 Box< Vector2< float > > (Box2d, Box< Vector2< double > >)(Box3i
 
 Box< Vector3< int > > (Box3i64, Box< Vector3< Int64 > >)(Box3f
 
 Box< Vector3< float > > (Box3d, Box< Vector3< double > >)) using Box1ll
 
 MR_CANONICAL_TYPEDEFS ((template< typename V > struct MRMESH_CLASS), Ball,(Ball1f, Ball< float >)(Ball1d, Ball< double >)(Ball2f, Ball< Vector2< float > >)(Ball2d, Ball< Vector2< double > >)(Ball3f, Ball< Vector3< float > >)(Ball3d, Ball< Vector3< double > >)) template< typename T > using Ball1
 
 MR_CANONICAL_TYPEDEFS ((template< typename V > struct MRMESH_CLASS), CubicBezierCurve,(CubicBezierCurve2f, CubicBezierCurve< Vector2< float > >)(CubicBezierCurve2d, CubicBezierCurve< Vector2< double > >)(CubicBezierCurve3f, CubicBezierCurve< Vector3< float > >)(CubicBezierCurve3d, CubicBezierCurve< Vector3< double > >)) template< typename T > using CubicBezierCurve2
 
 MR_CANONICAL_TYPEDEFS ((template< typename V > struct), QuadraticForm,(QuadraticForm2f, QuadraticForm< Vector2< float > >)(QuadraticForm2d, QuadraticForm< Vector2< double > >)(QuadraticForm3f, QuadraticForm< Vector3< float > >)(QuadraticForm3d, QuadraticForm< Vector3< double > >)) template< typename T > using QuadraticForm2
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), Quaternion,(Quaternionf, Quaternion< float >)(Quaterniond, Quaternion< double >)) template< typename T > using Triangle3
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), SegmPoint,(SegmPointf, SegmPoint< float >)(SegmPointd, SegmPoint< double >)) struct EdgePoint
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), TriPoint,(TriPointf, TriPoint< float >)(TriPointd, TriPoint< double >)) struct PointOnFace
 
 MR_CANONICAL_TYPEDEFS ((template< typename T, typename I > class MRMESH_CLASS), Vector,(Edges, Vector< TwoVertIds, UndirectedEdgeId >)(Triangulation, Vector< ThreeVertIds, FaceId >)(TriCornerUVCoords, Vector< ThreeUVCoords, FaceId >)(Dipoles, Vector< Dipole, NodeId >)(FaceMap, Vector< FaceId, FaceId >)(VertMap, Vector< VertId, VertId >)(EdgeMap, Vector< EdgeId, EdgeId >)(UndirectedEdgeMap, Vector< UndirectedEdgeId, UndirectedEdgeId >)(ObjMap, Vector< ObjId, ObjId >)(WholeEdgeMap, Vector< EdgeId, UndirectedEdgeId >)(UndirectedEdge2RegionMap, Vector< RegionId, UndirectedEdgeId >)(Face2RegionMap, Vector< RegionId, FaceId >)(Vert2RegionMap, Vector< RegionId, VertId >)(VertCoords, Vector< Vector3f, VertId >)(VertCoords2, Vector< Vector2f, VertId >)(VertNormals, Vector< Vector3f, VertId >)(VertUVCoords, Vector< UVCoord, VertId >)(FaceNormals, Vector< Vector3f, FaceId >)(TexturePerFace, Vector< TextureId, FaceId >)(VertColors, Vector< Color, VertId >)(FaceColors, Vector< Color, FaceId >)(EdgeColors, Vector< Color, EdgeId >)(UndirectedEdgeColors, Vector< Color, UndirectedEdgeId >)(VertScalars, Vector< float, VertId >)(FaceScalars, Vector< float, FaceId >)(EdgeScalars, Vector< float, EdgeId >)(UndirectedEdgeScalars, Vector< float, UndirectedEdgeId >)) using VertPredicate
 
template<typename T >
bool contains (const std::function< bool(Id< T >)> &pred, Id< T > id)
 
 MR_CANONICAL_TYPEDEFS ((template< typename T, typename I > struct MRMESH_CLASS), BMap,(FaceBMap, BMap< FaceId, FaceId >)(VertBMap, BMap< VertId, VertId >)(EdgeBMap, BMap< EdgeId, EdgeId >)(UndirectedEdgeBMap, BMap< UndirectedEdgeId, UndirectedEdgeId >)(WholeEdgeBMap, BMap< EdgeId, UndirectedEdgeId >)) template< typename T
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), MRMESH_CLASS MeshRegion,(MeshPart, MeshRegion< FaceTag >)(MeshVertPart, MeshRegion< VertTag >)) template< typename T > class UniqueThreadSafeOwner
 
 MR_CANONICAL_TYPEDEFS ((template< typename V > struct), Polyline,(Polyline2, Polyline< Vector2f >)(Polyline3, Polyline< Vector3f >)) MR_CANONICAL_TYPEDEFS((template< typename V > class MRMESH_CLASS)
 
 AABBTreePolyline< Vector2f > (AABBTreePolyline3, AABBTreePolyline< Vector3f >)) template< typename T > struct IntersectionPrecomputes
 
 MR_CANONICAL_TYPEDEFS ((template< typename V > struct[[nodiscard]]), PolylineProjectionResult,(PolylineProjectionResult2, PolylineProjectionResult< Vector2f >)(PolylineProjectionResult3, PolylineProjectionResult< Vector3f >)) MR_CANONICAL_TYPEDEFS((template< typename V > struct)
 
 PolylineProjectionWithOffsetResult< Vector2f > (PolylineProjectionWithOffsetResult3, PolylineProjectionWithOffsetResult< Vector3f >)) class DistanceMap
 
 MR_CANONICAL_TYPEDEFS ((template< typename Tag > class MRMESH_CLASS), ColorMapAggregator,(VertColorMapAggregator, ColorMapAggregator< VertTag >)(UndirEdgeColorMapAggregator, ColorMapAggregator< UndirectedEdgeTag >)(FaceColorMapAggregator, ColorMapAggregator< FaceTag >)) template< typename T > class FewSmallest
 
template<typename T >
constexpr T sqr (T x) noexcept
 squared value
 
template<typename T >
constexpr int sgn (T x) noexcept
 sign of given value in { -1, 0, 1 }
 
template<typename T >
constexpr T distance (T x, T y) noexcept
 absolute difference between two value
 
template<typename T >
constexpr T distanceSq (T x, T y) noexcept
 squared difference between two value
 
template<typename V , typename T >
constexpr auto lerp (V v0, V v1, T t) noexcept
 Linear interpolation: returns v0 when t==0 and v1 when t==1.
 
template<class... Ts>
 overloaded (Ts...) -> overloaded< Ts... >
 
MRMESH_API MeshIntersectionResult rayMeshIntersect (const MeshPart &meshPart, const Line3f &line, float rayStart=0.0f, float rayEnd=FLT_MAX, const IntersectionPrecomputes< float > *prec=nullptr, bool closestIntersect=true, const FacePredicate &validFaces={})
 
MRMESH_API MeshIntersectionResult rayMeshIntersect (const MeshPart &meshPart, const Line3d &line, double rayStart=0.0, double rayEnd=DBL_MAX, const IntersectionPrecomputes< double > *prec=nullptr, bool closestIntersect=true, const FacePredicate &validFaces={})
 
MRMESH_API void multiRayMeshIntersect (const MeshPart &meshPart, const std::vector< Vector3f > &origins, const std::vector< Vector3f > &dirs, const MultiRayMeshIntersectResult &result, float rayStart=0.0f, float rayEnd=FLT_MAX, bool closestIntersect=true, const FacePredicate &validFaces={})
 
MRMESH_API MultiMeshIntersectionResult rayMultiMeshAnyIntersect (const std::vector< Line3fMesh > &lineMeshes, float rayStart=0.0f, float rayEnd=FLT_MAX)
 
MRMESH_API MultiMeshIntersectionResult rayMultiMeshAnyIntersect (const std::vector< Line3dMesh > &lineMeshes, double rayStart=0.0, double rayEnd=DBL_MAX)
 Same as rayMultiMeshAnyIntersectF, but use double precision.
 
MRMESH_API void rayMeshIntersectAll (const MeshPart &meshPart, const Line3f &line, MeshIntersectionCallback callback, float rayStart=0.0f, float rayEnd=FLT_MAX, const IntersectionPrecomputes< float > *prec=nullptr)
 
MRMESH_API void rayMeshIntersectAll (const MeshPart &meshPart, const Line3d &line, MeshIntersectionCallback callback, double rayStart=0.0, double rayEnd=DBL_MAX, const IntersectionPrecomputes< double > *prec=nullptr)
 Same as rayMeshIntersectAllF, but use double precision.
 
MRMESH_API void planeMeshIntersect (const MeshPart &meshPart, const Plane3f &plane, FaceBitSet *fs, UndirectedEdgeBitSet *ues, VertBitSet *vs, std::vector< FaceId > *fsVec=nullptr)
 
MRMESH_API void xyPlaneMeshIntersect (const MeshPart &meshPart, float zLevel, FaceBitSet *fs, UndirectedEdgeBitSet *ues, VertBitSet *vs, std::vector< FaceId > *fsVec=nullptr)
 
MRMESH_API Expected< MeshloadMrmesh (const std::filesystem::path &file, const MeshLoadSettings &settings={})
 loads mesh from file in internal MeshLib format
 
MRMESH_API Expected< MeshloadMrmesh (std::istream &in, const MeshLoadSettings &settings={})
 
MRMESH_API Expected< MeshloadOff (const std::filesystem::path &file, const MeshLoadSettings &settings={})
 loads mesh from file in .OFF format
 
MRMESH_API Expected< MeshloadOff (std::istream &in, const MeshLoadSettings &settings={})
 loads mesh from stream in .OFF format
 
MRMESH_API Expected< MeshloadObj (const std::filesystem::path &file, const MeshLoadSettings &settings={})
 loads mesh from file in .OBJ format
 
MRMESH_API Expected< MeshloadObj (std::istream &in, const MeshLoadSettings &settings={})
 
MRMESH_API Expected< MeshloadStl (const std::filesystem::path &file, const MeshLoadSettings &settings={})
 loads mesh from file in any .STL format: both binary and ASCII
 
MRMESH_API Expected< MeshloadStl (std::istream &in, const MeshLoadSettings &settings={})
 
MRMESH_API Expected< MeshloadBinaryStl (const std::filesystem::path &file, const MeshLoadSettings &settings={})
 loads mesh from file in binary .STL format
 
MRMESH_API Expected< MeshloadBinaryStl (std::istream &in, const MeshLoadSettings &settings={})
 
MRMESH_API Expected< MeshloadASCIIStl (const std::filesystem::path &file, const MeshLoadSettings &settings={})
 loads mesh from file in textual .STL format
 
MRMESH_API Expected< MeshloadASCIIStl (std::istream &in, const MeshLoadSettings &settings={})
 loads mesh from stream in textual .STL format
 
MRMESH_API Expected< MeshloadPly (const std::filesystem::path &file, const MeshLoadSettings &settings={})
 loads mesh from file in .PLY format;
 
MRMESH_API Expected< MeshloadPly (std::istream &in, const MeshLoadSettings &settings={})
 
MRMESH_API Expected< MeshloadDxf (const std::filesystem::path &path, const MeshLoadSettings &settings={})
 loads mesh from file in .DXF format;
 
MRMESH_API Expected< MeshloadDxf (std::istream &in, const MeshLoadSettings &settings={})
 loads mesh from stream in .DXF format;
 
MRMESH_API Expected< MeshloadMesh (const std::filesystem::path &file, const MeshLoadSettings &settings={})
 loads mesh from file in the format detected from file extension
 
MRMESH_API Expected< MeshloadMesh (std::istream &in, const std::string &extension, const MeshLoadSettings &settings={})
 
Vector3f orgPnt (const MeshTopology &topology, const VertCoords &points, EdgeId e)
 returns coordinates of the edge origin
 
Vector3f destPnt (const MeshTopology &topology, const VertCoords &points, EdgeId e)
 returns coordinates of the edge destination
 
Vector3f edgeVector (const MeshTopology &topology, const VertCoords &points, EdgeId e)
 returns vector equal to edge destination point minus edge origin point
 
MRMESH_API LineSegm3f edgeSegment (const MeshTopology &topology, const VertCoords &points, EdgeId e)
 returns line segment of given edge
 
Vector3f edgePoint (const MeshTopology &topology, const VertCoords &points, EdgeId e, float f)
 returns a point on the edge: origin point for f=0 and destination point for f=1
 
Vector3f edgePoint (const MeshTopology &topology, const VertCoords &points, const MeshEdgePoint &ep)
 computes coordinates of point given as edge and relative position on it
 
Vector3f edgeCenter (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeId e)
 computes the center of given edge
 
MRMESH_API void getLeftTriPoints (const MeshTopology &topology, const VertCoords &points, EdgeId e, Vector3f &v0, Vector3f &v1, Vector3f &v2)
 returns three points of left face of e: v0 = orgPnt( e ), v1 = destPnt( e )
 
MR_BIND_IGNORE void getLeftTriPoints (const MeshTopology &topology, const VertCoords &points, EdgeId e, Vector3f(&v)[3])
 
Triangle3f getLeftTriPoints (const MeshTopology &topology, const VertCoords &points, EdgeId e)
 returns three points of left face of e: res[0] = orgPnt( e ), res[1] = destPnt( e )
 
void getTriPoints (const MeshTopology &topology, const VertCoords &points, FaceId f, Vector3f &v0, Vector3f &v1, Vector3f &v2)
 returns three points of given face
 
MR_BIND_IGNORE void getTriPoints (const MeshTopology &topology, const VertCoords &points, FaceId f, Vector3f(&v)[3])
 
Triangle3f getTriPoints (const MeshTopology &topology, const VertCoords &points, FaceId f)
 returns three points of given face
 
MRMESH_API Vector3f triPoint (const MeshTopology &topology, const VertCoords &points, const MeshTriPoint &p)
 computes coordinates of point given as face and barycentric representation
 
MRMESH_API Vector3f triCenter (const MeshTopology &topology, const VertCoords &points, FaceId f)
 returns the centroid of given triangle
 
MRMESH_API float triangleAspectRatio (const MeshTopology &topology, const VertCoords &points, FaceId f)
 returns aspect ratio of given mesh triangle equal to the ratio of the circum-radius to twice its in-radius
 
MRMESH_API float circumcircleDiameterSq (const MeshTopology &topology, const VertCoords &points, FaceId f)
 returns squared circumcircle diameter of given mesh triangle
 
MRMESH_API float circumcircleDiameter (const MeshTopology &topology, const VertCoords &points, FaceId f)
 returns circumcircle diameter of given mesh triangle
 
MRMESH_API MeshTriPoint toTriPoint (const MeshTopology &topology, const VertCoords &points, FaceId f, const Vector3f &p)
 converts face id and 3d point into barycentric representation
 
MRMESH_API MeshTriPoint toTriPoint (const MeshTopology &topology, const VertCoords &points, const PointOnFace &p)
 converts face id and 3d point into barycentric representation
 
MRMESH_API MeshEdgePoint toEdgePoint (const MeshTopology &topology, const VertCoords &points, EdgeId e, const Vector3f &p)
 converts edge and 3d point into edge-point representation
 
MRMESH_API VertId getClosestVertex (const MeshTopology &topology, const VertCoords &points, const PointOnFace &p)
 returns one of three face vertices, closest to given point
 
VertId getClosestVertex (const MeshTopology &topology, const VertCoords &points, const MeshTriPoint &p)
 returns one of three face vertices, closest to given point
 
MRMESH_API UndirectedEdgeId getClosestEdge (const MeshTopology &topology, const VertCoords &points, const PointOnFace &p)
 returns one of three face edges, closest to given point
 
UndirectedEdgeId getClosestEdge (const MeshTopology &topology, const VertCoords &points, const MeshTriPoint &p)
 returns one of three face edges, closest to given point
 
float edgeLength (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeId e)
 returns Euclidean length of the edge
 
MRMESH_API UndirectedEdgeScalars edgeLengths (const MeshTopology &topology, const VertCoords &points)
 computes and returns the lengths of all edges in the mesh
 
float edgeLengthSq (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeId e)
 returns squared Euclidean length of the edge (faster to compute than length)
 
MRMESH_API Vector3f leftDirDblArea (const MeshTopology &topology, const VertCoords &points, EdgeId e)
 computes directed double area of left triangular face of given edge
 
Vector3f dirDblArea (const MeshTopology &topology, const VertCoords &points, FaceId f)
 computes directed double area for a triangular face from its vertices
 
MRMESH_API Vector< Vector3f, VertIddirDblAreas (const MeshTopology &topology, const VertCoords &points, const VertBitSet *region=nullptr)
 computes and returns the directed double area for every (region) vertex in the mesh
 
float dblArea (const MeshTopology &topology, const VertCoords &points, FaceId f)
 returns twice the area of given face
 
float area (const MeshTopology &topology, const VertCoords &points, FaceId f)
 returns the area of given face
 
MRMESH_API MR_BIND_IGNORE double area (const MeshTopology &topology, const VertCoords &points, const FaceBitSet &fs)
 
double area (const MeshTopology &topology, const VertCoords &points, const FaceBitSet *fs=nullptr)
 computes the area of given face-region (or whole mesh)
 
MRMESH_API MR_BIND_IGNORE Vector3d dirArea (const MeshTopology &topology, const VertCoords &points, const FaceBitSet &fs)
 
Vector3d dirArea (const MeshTopology &topology, const VertCoords &points, const FaceBitSet *fs=nullptr)
 computes the sum of directed areas for faces from given region (or whole mesh)
 
MRMESH_API MR_BIND_IGNORE double projArea (const MeshTopology &topology, const VertCoords &points, const Vector3f &dir, const FaceBitSet &fs)
 
double projArea (const MeshTopology &topology, const VertCoords &points, const Vector3f &dir, const FaceBitSet *fs=nullptr)
 computes the sum of absolute projected area of faces from given region (or whole mesh) as visible if look from given direction
 
MRMESH_API double volume (const MeshTopology &topology, const VertCoords &points, const FaceBitSet *region=nullptr)
 
MRMESH_API double holePerimeter (const MeshTopology &topology, const VertCoords &points, EdgeId e)
 computes the perimeter of the hole specified by one of its edges with no valid left face (left is hole)
 
MRMESH_API Vector3d holeDirArea (const MeshTopology &topology, const VertCoords &points, EdgeId e)
 
MRMESH_API Vector3f leftTangent (const MeshTopology &topology, const VertCoords &points, EdgeId e)
 computes unit vector that is both orthogonal to given edge and to the normal of its left triangle, the vector is directed inside left triangle
 
Vector3f leftNormal (const MeshTopology &topology, const VertCoords &points, EdgeId e)
 computes triangular face normal from its vertices
 
Vector3f normal (const MeshTopology &topology, const VertCoords &points, FaceId f)
 computes triangular face normal from its vertices
 
MRMESH_API Plane3f getPlane3f (const MeshTopology &topology, const VertCoords &points, FaceId f)
 returns the plane containing given triangular face with normal looking outwards
 
MRMESH_API Plane3d getPlane3d (const MeshTopology &topology, const VertCoords &points, FaceId f)
 
MRMESH_API Vector3f dirDblArea (const MeshTopology &topology, const VertCoords &points, VertId v)
 computes sum of directed double areas of all triangles around given vertex
 
float dblArea (const MeshTopology &topology, const VertCoords &points, VertId v)
 computes the length of summed directed double areas of all triangles around given vertex
 
Vector3f normal (const MeshTopology &topology, const VertCoords &points, VertId v)
 computes normal in a vertex using sum of directed areas of neighboring triangles
 
MRMESH_API Vector3f normal (const MeshTopology &topology, const VertCoords &points, const MeshTriPoint &p)
 
MRMESH_API Vector3f pseudonormal (const MeshTopology &topology, const VertCoords &points, VertId v, const FaceBitSet *region=nullptr)
 
MRMESH_API Vector3f pseudonormal (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeId e, const FaceBitSet *region=nullptr)
 computes normalized half sum of face normals sharing given edge (only (region) faces will be considered);
 
MRMESH_API Vector3f pseudonormal (const MeshTopology &topology, const VertCoords &points, const MeshTriPoint &p, const FaceBitSet *region=nullptr)
 
MRMESH_API float sumAngles (const MeshTopology &topology, const VertCoords &points, VertId v, bool *outBoundaryVert=nullptr)
 computes the sum of triangle angles at given vertex; optionally returns whether the vertex is on boundary
 
MRMESH_API Expected< VertBitSetfindSpikeVertices (const MeshTopology &topology, const VertCoords &points, float minSumAngle, const VertBitSet *region=nullptr, const ProgressCallback &cb={})
 returns vertices where the sum of triangle angles is below given threshold
 
MRMESH_API float dihedralAngleSin (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeId e)
 
MRMESH_API float dihedralAngleCos (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeId e)
 
MRMESH_API float dihedralAngle (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeId e)
 
MRMESH_API float discreteMeanCurvature (const MeshTopology &topology, const VertCoords &points, VertId v)
 
MRMESH_API float discreteMeanCurvature (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeId e)
 
float discreteGaussianCurvature (const MeshTopology &topology, const VertCoords &points, VertId v, bool *outBoundaryVert=nullptr)
 
MRMESH_API UndirectedEdgeBitSet findCreaseEdges (const MeshTopology &topology, const VertCoords &points, float angleFromPlanar)
 finds all mesh edges where dihedral angle is distinct from planar PI angle on at least given value
 
MRMESH_API float leftCotan (const MeshTopology &topology, const VertCoords &points, EdgeId e)
 
float cotan (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeId ue)
 
MRMESH_API QuadraticForm3f quadraticForm (const MeshTopology &topology, const VertCoords &points, VertId v, bool angleWeigted, const FaceBitSet *region=nullptr, const UndirectedEdgeBitSet *creases=nullptr)
 
MRMESH_API Box3f computeBoundingBox (const MeshTopology &topology, const VertCoords &points, const FaceBitSet *region, const AffineXf3f *toWorld=nullptr)
 
MRMESH_API float averageEdgeLength (const MeshTopology &topology, const VertCoords &points)
 computes average length of an edge in the mesh given by (topology, points)
 
MRMESH_API Vector3f findCenterFromPoints (const MeshTopology &topology, const VertCoords &points)
 computes average position of all valid mesh vertices
 
MRMESH_API Vector3f findCenterFromFaces (const MeshTopology &topology, const VertCoords &points)
 computes center of mass considering that density of all triangles is the same
 
MRMESH_API Vector3f findCenterFromBBox (const MeshTopology &topology, const VertCoords &points)
 computes bounding box and returns its center
 
MRMESH_API MeshMeshDistanceResult findDistance (const MeshPart &a, const MeshPart &b, const AffineXf3f *rigidB2A=nullptr, float upDistLimitSq=FLT_MAX)
 computes minimal distance between two meshes or two mesh regions
 
MRMESH_API MeshMeshSignedDistanceResult findSignedDistance (const MeshPart &a, const MeshPart &b, const AffineXf3f *rigidB2A=nullptr, float upDistLimitSq=FLT_MAX)
 computes minimal distance between two meshes
 
MRMESH_API float findMaxDistanceSqOneWay (const MeshPart &a, const MeshPart &b, const AffineXf3f *rigidB2A=nullptr, float maxDistanceSq=FLT_MAX)
 returns the maximum of the squared distances from each B-mesh vertex to A-mesh
 
MRMESH_API float findMaxDistanceSq (const MeshPart &a, const MeshPart &b, const AffineXf3f *rigidB2A=nullptr, float maxDistanceSq=FLT_MAX)
 returns the squared Hausdorff distance between two meshes, that is the maximum of squared distances from each mesh vertex to the other mesh (in both directions)
 
MRMESH_API double calcCombinedFillMetric (const Mesh &mesh, const FaceBitSet &filledRegion, const FillHoleMetric &metric)
 Computes combined metric after filling a hole.
 
MRMESH_API FillHoleMetric getCircumscribedMetric (const Mesh &mesh)
 
MRMESH_API FillHoleMetric getPlaneFillMetric (const Mesh &mesh, EdgeId e)
 
MRMESH_API FillHoleMetric getPlaneNormalizedFillMetric (const Mesh &mesh, EdgeId e)
 
MRMESH_API FillHoleMetric getComplexStitchMetric (const Mesh &mesh)
 
MRMESH_API FillHoleMetric getEdgeLengthFillMetric (const Mesh &mesh)
 Simple metric minimizing the sum of all edge lengths.
 
MRMESH_API FillHoleMetric getEdgeLengthStitchMetric (const Mesh &mesh)
 
MRMESH_API FillHoleMetric getVerticalStitchMetric (const Mesh &mesh, const Vector3f &upDir)
 
MRMESH_API FillHoleMetric getVerticalStitchMetricEdgeBased (const Mesh &mesh, const Vector3f &upDir)
 
MRMESH_API FillHoleMetric getComplexFillMetric (const Mesh &mesh, EdgeId e)
 
MRMESH_API FillHoleMetric getParallelPlaneFillMetric (const Mesh &mesh, EdgeId e, const Plane3f *plane=nullptr)
 This metric minimizes summary projection of new edges to plane normal, (try do produce edges parallel to plane)
 
MRMESH_API FillHoleMetric getMaxDihedralAngleMetric (const Mesh &mesh)
 
MRMESH_API FillHoleMetric getUniversalMetric (const Mesh &mesh)
 
MRMESH_API FillHoleMetric getMinTriAngleMetric (const Mesh &mesh)
 This metric maximizes the minimal angle among all faces in the triangulation.
 
MRMESH_API FillHoleMetric getMinAreaMetric (const Mesh &mesh)
 
MRMESH_API FaceNormals computePerFaceNormals (const Mesh &mesh)
 returns a vector with face-normal in every element for valid mesh faces
 
MRMESH_API void computePerFaceNormals4 (const Mesh &mesh, Vector4f *faceNormals, size_t size)
 fills buffer with face-normals as Vector4f for valid mesh faces
 
MRMESH_API VertNormals computePerVertNormals (const Mesh &mesh)
 returns a vector with vertex normals in every element for valid mesh vertices
 
MRMESH_API VertNormals computePerVertPseudoNormals (const Mesh &mesh)
 
MRMESH_API MeshNormals computeMeshNormals (const Mesh &mesh)
 computes both per-face and per-vertex normals more efficiently then just calling both previous functions
 
MRMESH_API Vector< TriangleCornerNormals, FaceIdcomputePerCornerNormals (const Mesh &mesh, const UndirectedEdgeBitSet *creases)
 
MRMESH_API std::optional< MeshOrPointsgetMeshOrPoints (const Object *obj)
 constructs MeshOrPoints from ObjectMesh or ObjectPoints, otherwise returns nullopt
 
MRMESH_API std::optional< MeshOrPointsXfgetMeshOrPointsXf (const Object *obj)
 
MRMESH_API void projectOnAll (const Vector3f &pt, const AABBTreeObjects &tree, float upDistLimitSq, const ProjectOnAllCallback &callback, ObjId skipObjId={})
 finds closest point on every object within given distance
 
MeshOrPoints::ProjectionResult projectWorldPointOntoObject (const Vector3f &p, const Object &obj)
 Projects a point onto an object, in world space. Returns .valid() == false if this object type isn't projectable onto.
 
MRMESH_API MeshOrPoints::ProjectionResult projectWorldPointOntoObjectsRecursive (const Vector3f &p, const Object *root=nullptr, std::function< bool(const Object &)> projectPred=nullptr, std::function< bool(const Object &)> recursePred=nullptr)
 
MRMESH_API Expected< std::vector< FaceBitSet > > findOverhangs (const Mesh &mesh, const FindOverhangsSettings &settings)
 Find face regions that might create overhangs.
 
MRMESH_API MeshProjectionTransforms createProjectionTransforms (AffineXf3f &storageXf, const AffineXf3f *pointXf, const AffineXf3f *treeXf)
 Creates structure with simplified transforms for projection functions, with rigidXfPoint applied to point, and nonRigidXfTree applied to tree.
 
MRMESH_API MeshProjectionResult findProjection (const Vector3f &pt, const MeshPart &mp, float upDistLimitSq=FLT_MAX, const AffineXf3f *xf=nullptr, float loDistLimitSq=0, const FacePredicate &validFaces={}, const std::function< bool(const MeshProjectionResult &)> &validProjections={})
 computes the closest point on mesh (or its region) to given point
 
MRMESH_API MeshProjectionResult findProjectionSubtree (const Vector3f &pt, const MeshPart &mp, const AABBTree &tree, float upDistLimitSq=FLT_MAX, const AffineXf3f *xf=nullptr, float loDistLimitSq=0, const FacePredicate &validFaces={}, const std::function< bool(const MeshProjectionResult &)> &validProjections={})
 computes the closest point on mesh (or its region) to given point
 
MRMESH_API void findBoxedTrisInBall (const MeshPart &mp, Ball3f ball, const FoundBoxedTriCallback &foundCallback)
 
MRMESH_API void findTrisInBall (const MeshPart &mp, const Ball3f &ball, const FoundTriCallback &foundCallback, const FacePredicate &validFaces={})
 
MRMESH_API std::optional< SignedDistanceToMeshResultfindSignedDistance (const Vector3f &pt, const MeshPart &mp, float upDistLimitSq=FLT_MAX, float loDistLimitSq=0)
 computes the closest point on mesh (or its region) to given point, and finds the distance with sign to it (positive - outside, negative - inside the mesh)
 
MRMESH_API bool relax (Mesh &mesh, const MeshRelaxParams &params={}, const ProgressCallback &cb={})
 
MRMESH_API bool relax (const MeshTopology &topology, VertCoords &points, const MeshRelaxParams &params={}, const ProgressCallback &cb={})
 
MRMESH_API Vector3f vertexPosEqualNeiAreas (const Mesh &mesh, VertId v, bool noShrinkage)
 
MRMESH_API Vector3f vertexPosEqualNeiAreas (const MeshTopology &topology, const VertCoords &points, VertId v, bool noShrinkage)
 
MRMESH_API bool equalizeTriAreas (Mesh &mesh, const MeshEqualizeTriAreasParams &params={}, const ProgressCallback &cb={})
 
MRMESH_API bool equalizeTriAreas (const MeshTopology &topology, VertCoords &points, const MeshEqualizeTriAreasParams &params={}, const ProgressCallback &cb={})
 
MRMESH_API bool relaxKeepVolume (Mesh &mesh, const MeshRelaxParams &params={}, const ProgressCallback &cb={})
 
MRMESH_API bool relaxKeepVolume (const MeshTopology &topology, VertCoords &points, const MeshRelaxParams &params={}, const ProgressCallback &cb={})
 
MRMESH_API bool relaxApprox (Mesh &mesh, const MeshApproxRelaxParams &params={}, const ProgressCallback &cb={})
 
MRMESH_API bool relaxApprox (const MeshTopology &topology, VertCoords &points, const MeshApproxRelaxParams &params={}, const ProgressCallback &cb={})
 
MRMESH_API void removeSpikes (Mesh &mesh, int maxIterations, float minSumAngle, const VertBitSet *region=nullptr)
 applies at most given number of relaxation iterations the spikes detected by given threshold
 
MRMESH_API void removeSpikes (const MeshTopology &topology, VertCoords &points, int maxIterations, float minSumAngle, const VertBitSet *region=nullptr)
 
MRMESH_API void smoothRegionBoundary (Mesh &mesh, const FaceBitSet &regionFaces, int numIters=4)
 
MRMESH_API void hardSmoothTetrahedrons (Mesh &mesh, const VertBitSet *region=nullptr)
 move all region vertices with exactly three neighbor vertices in the center of the neighbors
 
MRMESH_API void hardSmoothTetrahedrons (const MeshTopology &topology, VertCoords &points, const VertBitSet *region=nullptr)
 
MRMESH_API void replicateZ (Mesh &m, const Mesh &target)
 adjusts z-coordinates of (m) vertices to make adjusted (m) similar to (target)
 
MRMESH_API int subdivideMesh (Mesh &mesh, const SubdivideSettings &settings={})
 
MRMESH_API int subdivideMesh (ObjectMeshData &data, const SubdivideSettings &settings)
 
MRMESH_API Expected< MeshcopySubdividePackMesh (const MeshPart &mp, float voxelSize, const ProgressCallback &cb={})
 
MRMESH_API ObjectMeshData makeSubdividedObjectMeshData (const ObjectMesh &obj, const SubdivideSettings &settings)
 returns the data of subdivided mesh given ObjectMesh (which remains unchanged) and subdivision parameters
 
template<typename T >
auto onEdgeSplitVertAttribute (const Mesh &mesh, Vector< T, VertId > &data)
 
template<typename T >
auto onEdgeSplitFaceAttribute (const Mesh &mesh, Vector< T, FaceId > &data)
 
MRMESH_API OnEdgeSplit meshOnEdgeSplitAttribute (const Mesh &mesh, const MeshAttributesToUpdate &params)
 
MRMESH_API OnEdgeSplit meshOnEdgeSplitVertAttribute (const Mesh &mesh, const MeshAttributesToUpdate &params)
 
MRMESH_API OnEdgeSplit meshOnEdgeSplitFaceAttribute (const Mesh &mesh, const MeshAttributesToUpdate &params)
 
MRMESH_API std::optional< VertScalarscomputeRayThicknessAtVertices (const Mesh &mesh, const ProgressCallback &progress={})
 returns the distance from each vertex along minus normal to the nearest mesh intersection (or FLT_MAX if no intersection found)
 
MRMESH_API MR_BIND_IGNORE VertScalars computeThicknessAtVertices (const Mesh &mesh)
 
MRMESH_API MeshIntersectionResult rayInsideIntersect (const Mesh &mesh, const MeshPoint &m, float rayEnd=FLT_MAX)
 returns the nearest intersection between the mesh and the ray from given point along minus normal (inside the mesh)
 
MRMESH_API MeshIntersectionResult rayInsideIntersect (const Mesh &mesh, VertId v, float rayEnd=FLT_MAX)
 
MRMESH_API InSphere findInSphere (const Mesh &mesh, const MeshPoint &m, const InSphereSearchSettings &settings)
 finds maximal sphere inscribed in the mesh touching point (p) with center along the normal at (p)
 
MRMESH_API InSphere findInSphere (const Mesh &mesh, VertId v, const InSphereSearchSettings &settings)
 
MRMESH_API std::optional< VertScalarscomputeInSphereThicknessAtVertices (const Mesh &mesh, const InSphereSearchSettings &settings, const ProgressCallback &progress={})
 returns the thickness at each vertex as the diameter of the maximal inscribed sphere
 
MRMESH_API PointCloud meshToPointCloud (const Mesh &mesh, bool saveNormals=true, const VertBitSet *verts=nullptr)
 
template<typename T , typename I >
Vector< T, I > rearrangeVectorByMap (const Vector< T, I > &oldVector, const BMap< I, I > &map)
 
MRMESH_API FaceBitSet subdivideWithPlane (Mesh &mesh, const Plane3f &plane, FaceHashMap *new2Old=nullptr, float eps=0, std::function< void(EdgeId, EdgeId, float)> onEdgeSplitCallback=nullptr)
 
MRMESH_API MR_BIND_IGNORE void trimWithPlane (Mesh &mesh, const Plane3f &plane, UndirectedEdgeBitSet *outCutEdges=nullptr, FaceHashMap *new2Old=nullptr, float eps=0, std::function< void(EdgeId, EdgeId, float)> onEdgeSplitCallback=nullptr)
 trim mesh by plane
 
MRMESH_API MR_BIND_IGNORE void trimWithPlane (Mesh &mesh, const Plane3f &plane, std::vector< EdgeLoop > *outCutContours, FaceHashMap *new2Old=nullptr, float eps=0, std::function< void(EdgeId, EdgeId, float)> onEdgeSplitCallback=nullptr)
 trim mesh by plane
 
MRMESH_API void trimWithPlane (Mesh &mesh, const TrimWithPlaneParams &params, const TrimOptionalOutput &optOut={})
 trim mesh by plane
 
MRMESH_API Expected< LoadedObject > fromSceneMison (const std::filesystem::path &path, const ProgressCallback &callback={})
 
MRMESH_API Expected< LoadedObject > fromSceneMison (std::istream &in, const ProgressCallback &callback={})
 
MRMESH_API Mesh makeMovementBuildBody (const Contours3f &body, const Contours3f &trajectory, const MovementBuildBodyParams &params={})
 
MRMESH_API void updateGroupPairs (ICPGroupPairs &pairs, const ICPObjects &objs, ICPGroupProjector srcProjector, ICPGroupProjector tgtProjector, float cosThreshold, float distThresholdSq, bool mutualClosest)
 in each pair updates the target data and performs basic filtering (activation)
 
MRMESH_API void denoiseNormals (const Mesh &mesh, FaceNormals &normals, const Vector< float, UndirectedEdgeId > &v, float gamma)
 
MRMESH_API void updateIndicator (const Mesh &mesh, Vector< float, UndirectedEdgeId > &v, const FaceNormals &normals, float beta, float gamma)
 
MRMESH_API void updateIndicatorFast (const MeshTopology &topology, Vector< float, UndirectedEdgeId > &v, const FaceNormals &normals, float beta, float gamma)
 
MRMESH_API Expected< void > meshDenoiseViaNormals (Mesh &mesh, const DenoiseViaNormalsSettings &settings={})
 
MRMESH_API std::string_view toString (DimensionsVisualizePropertyType value)
 
MRMESH_API std::shared_ptr< ObjectLinesmerge (const std::vector< std::shared_ptr< ObjectLines > > &objsLines)
 constructs new ObjectLines containing the union of valid data from all input objects
 
MRMESH_API std::shared_ptr< ObjectLinescloneRegion (const std::shared_ptr< ObjectLines > &objLines, const UndirectedEdgeBitSet &region)
 constructs new ObjectLines containing the region of data from input object
 
MRMESH_API std::shared_ptr< ObjectMeshmerge (const std::vector< std::shared_ptr< ObjectMesh > > &objsMesh, const ObjectMeshMergeOptions &options={})
 constructs new ObjectMesh containing the union of valid data from all input objects
 
MRMESH_API std::shared_ptr< ObjectMeshcloneRegion (const std::shared_ptr< ObjectMesh > &objMesh, const FaceBitSet &region, bool copyTexture=true)
 
MRMESH_API UndirectedEdgeBitSet edgesBetweenDifferentColors (const MeshTopology &topology, const FaceColors &colors)
 return all edges separating faces with different colors
 
MRMESH_API const std::string & defaultSerializeMeshFormat ()
 
MRMESH_API void setDefaultSerializeMeshFormat (std::string newFormat)
 
MRMESH_API std::shared_ptr< ObjectPointsmerge (const std::vector< std::shared_ptr< ObjectPoints > > &objsPoints)
 constructs new ObjectPoints containing the union of valid points from all input objects
 
MRMESH_API std::shared_ptr< ObjectPointscloneRegion (const std::shared_ptr< ObjectPoints > &objPoints, const VertBitSet &region)
 
MRMESH_API std::shared_ptr< ObjectPointspack (const ObjectPoints &pts, Reorder reorder, VertBitSet *newValidVerts=nullptr, const ProgressCallback &cb={})
 
MRMESH_API const std::string & defaultSerializePointsFormat ()
 
MRMESH_API void setDefaultSerializePointsFormat (std::string newFormat)
 
bool objectHasSelectableChildren (const MR::Object &object, bool recurse=false)
 
MRMESH_API Expected< void > serializeObjectTree (const Object &object, const std::filesystem::path &path, FolderCallback preCompress, const ObjectSave::Settings &settings={})
 saves object subtree in given scene file (zip/mru)
 
MRMESH_API Expected< void > serializeObjectTree (const Object &object, const std::filesystem::path &path, const ObjectSave::Settings &settings={})
 
MRMESH_API Contours2f offsetContours (const Contours2f &contours, float offset, const OffsetContoursParams &params={})
 offsets 2d contours in plane
 
MRMESH_API Contours2f offsetContours (const Contours2f &contours, ContoursVariableOffset offset, const OffsetContoursParams &params={})
 offsets 2d contours in plane
 
MRMESH_API Contours3f offsetContours (const Contours3f &contours, float offset, const OffsetContoursParams &params={}, const OffsetContoursRestoreZParams &zParmas={})
 offsets 3d contours in XY plane
 
MRMESH_API Contours3f offsetContours (const Contours3f &contours, ContoursVariableOffset offset, const OffsetContoursParams &params={}, const OffsetContoursRestoreZParams &zParmas={})
 offsets 3d contours in XY plane
 
MRMESH_API bool offsetVerts (Mesh &mesh, const VertMetric &offset, const ProgressCallback &cb={})
 
MRMESH_API Mesh makeThickMesh (const Mesh &m, const ThickenParams &params)
 
MRMESH_API bool zCompensate (Mesh &mesh, const ZCompensateParams &params)
 
MRMESH_API std::optional< VertScalarsfindZcompensationShifts (const Mesh &mesh, const ZCompensateParams &params)
 finds the shift along z-axis for each vertex without modifying the mesh
 
MRMESH_API std::optional< VertCoordsfindZcompensatedPositions (const Mesh &mesh, const ZCompensateParams &params)
 finds vertices positions of the mesh after z-compensation without modifying the mesh
 
MRMESH_API void subdivideLoneContours (Mesh &mesh, const OneMeshContours &contours, FaceHashMap *new2oldMap=nullptr)
 
MRMESH_API void getOneMeshIntersectionContours (const Mesh &meshA, const Mesh &meshB, const ContinuousContours &contours, OneMeshContours *outA, OneMeshContours *outB, const CoordinateConverters &converters, const AffineXf3f *rigidB2A=nullptr, Contours3f *outPtsA=nullptr, bool addSelfyTerminalVerts=false)
 if true, then open self-intersection contours will be prolonged to terminal vertices
 
MRMESH_API OneMeshContours getOneMeshSelfIntersectionContours (const Mesh &mesh, const ContinuousContours &contours, const CoordinateConverters &converters, const AffineXf3f *rigidB2A=nullptr)
 
MRMESH_API Contours3f extractMeshContours (const OneMeshContours &meshContours)
 
MR_BIND_IGNORE MRMESH_API Expected< OneMeshContourconvertMeshTriPointsToMeshContour (const Mesh &mesh, const std::vector< MeshTriPoint > &surfaceLine, MeshTriPointsConnector connectorFn, std::vector< int > *pivotIndices=nullptr)
 Makes continuous contour by mesh tri points, if first and last meshTriPoint is the same, makes closed contour.
 
MRMESH_API Expected< OneMeshContourconvertMeshTriPointsToMeshContour (const Mesh &mesh, const std::vector< MeshTriPoint > &surfaceLine, SearchPathSettings searchSettings={}, std::vector< int > *pivotIndices=nullptr)
 Makes continuous contour by mesh tri points, if first and last meshTriPoint is the same, makes closed contour.
 
MRMESH_API Expected< OneMeshContourconvertMeshTriPointsToClosedContour (const Mesh &mesh, const std::vector< MeshTriPoint > &surfaceLine, SearchPathSettings searchSettings={}, std::vector< int > *pivotIndices=nullptr)
 Makes closed continuous contour by mesh tri points, note that first and last meshTriPoint should not be same.
 
MRMESH_API OneMeshContour convertSurfacePathWithEndsToMeshContour (const Mesh &mesh, const MeshTriPoint &start, const SurfacePath &surfacePath, const MeshTriPoint &end)
 Converts SurfacePath to OneMeshContours.
 
MRMESH_API OneMeshContours convertSurfacePathsToMeshContours (const Mesh &mesh, const std::vector< SurfacePath > &surfacePaths)
 Converts SurfacePaths to OneMeshContours.
 
MRMESH_API FaceBMap getOptimalFaceOrdering (const Mesh &mesh)
 
MRMESH_API VertBMap getVertexOrdering (const FaceBMap &faceMap, const MeshTopology &topology)
 
MRMESH_API UndirectedEdgeBMap getEdgeOrdering (const FaceBMap &faceMap, const MeshTopology &topology)
 
MRMESH_API Expected< VertBitSetfindOutliers (const PointCloud &pc, const FindOutliersParams &params)
 Finding outlier points.
 
MRMESH_API Expected< FaceBitSetfindOverlappingTris (const MeshPart &mp, const FindOverlappingSettings &settings)
 finds all triangles that have oppositely oriented close triangle in the mesh
 
template<typename I , typename ... F>
auto ParallelFor (I begin, I end, F &&... f)
 
template<typename I , typename L , typename ... F>
auto ParallelFor (I begin, I end, tbb::enumerable_thread_specific< L > &e, F &&... f)
 
template<typename T , typename ... F>
auto ParallelFor (const std::vector< T > &v, F &&... f)
 
template<typename T , typename I , typename ... F>
auto ParallelFor (const Vector< T, I > &v, F &&... f)
 
template<typename T >
MinMaxArg< T, size_t > parallelMinMaxArg (const T *data, size_t size, const BitSet *region=nullptr, const T *topExcluding=nullptr)
 
template<typename T , typename Itag >
MinMaxArg< T, Id< Itag > > parallelMinMaxArg (const Vector< T, Id< Itag > > &vec, const TaggedBitSet< Itag > *region=nullptr, const T *topExcluding=nullptr)
 
template<typename T >
std::pair< T, T > parallelMinMax (const T *data, size_t size, const BitSet *region=nullptr, const T *topExcluding=nullptr)
 
template<typename T >
std::pair< T, T > parallelMinMax (const std::vector< T > &vec, const BitSet *region=nullptr, const T *topExcluding=nullptr)
 
template<typename T , typename Itag >
std::pair< T, T > parallelMinMax (const Vector< T, Id< Itag > > &vec, const TaggedBitSet< Itag > *region=nullptr, const T *topExcluding=nullptr)
 
MRMESH_API Expected< VertCoordsloadPly (std::istream &in, const PlyLoadParams &params)
 
MRMESH_API float findMaxDistanceSqOneWay (const PointCloud &a, const PointCloud &b, const AffineXf3f *rigidB2A=nullptr, float maxDistanceSq=FLT_MAX)
 returns the maximum of the squared distances from each B-point to A-cloud
 
MRMESH_API float findMaxDistanceSq (const PointCloud &a, const PointCloud &b, const AffineXf3f *rigidB2A=nullptr, float maxDistanceSq=FLT_MAX)
 returns the squared Hausdorff distance between two point clouds, that is the maximum of squared distances from each point to the other cloud (in both directions)
 
MRMESH_API VertBitSet findHalfSpacePoints (const PointCloud &pc, const Plane3f &plane)
 
MRMESH_API PointCloud divideWithPlane (const PointCloud &points, const Plane3f &plane, const DividePointCloudOptionalOutput &optOut={})
 
MRMESH_API std::optional< VertNormals > makeUnorientedNormals (const PointCloud &pointCloud, float radius, const ProgressCallback &progress={}, OrientNormals orient=OrientNormals::Smart)
 Makes normals for valid points of given point cloud by directing them along the normal of best plane through the neighbours.
 
MRMESH_API std::optional< VertNormals > makeUnorientedNormals (const PointCloud &pointCloud, const AllLocalTriangulations &triangs, const ProgressCallback &progress={}, OrientNormals orient=OrientNormals::Smart)
 Makes normals for valid points of given point cloud by averaging neighbor triangle normals weighted by triangle's angle \triangs triangulation neighbours of each point.
 
MRMESH_API std::optional< VertNormals > makeUnorientedNormals (const PointCloud &pointCloud, const Buffer< VertId > &closeVerts, int numNei, const ProgressCallback &progress={}, OrientNormals orient=OrientNormals::Smart)
 Makes normals for valid points of given point cloud by directing them along the normal of best plane through the neighbours.
 
MRMESH_API bool orientNormals (const PointCloud &pointCloud, VertNormals &normals, float radius, const ProgressCallback &progress={})
 Select orientation of given normals to make directions of close points consistent;.
 
MRMESH_API bool orientNormals (const PointCloud &pointCloud, VertNormals &normals, const AllLocalTriangulations &triangs, const ProgressCallback &progress={})
 Select orientation of given normals to make directions of close points consistent;.
 
MRMESH_API bool orientNormals (const PointCloud &pointCloud, VertNormals &normals, const Buffer< VertId > &closeVerts, int numNei, const ProgressCallback &progress={})
 Select orientation of given normals to make directions of close points consistent;.
 
MRMESH_API std::optional< VertNormals > makeOrientedNormals (const PointCloud &pointCloud, float radius, const ProgressCallback &progress={})
 Makes normals for valid points of given point cloud; directions of close points are selected to be consistent;.
 
MRMESH_API std::optional< VertNormals > makeOrientedNormals (const PointCloud &pointCloud, AllLocalTriangulations &triangs, const ProgressCallback &progress={})
 Makes normals for valid points of given point cloud; directions of close points are selected to be consistent; \triangs triangulation neighbours of each point, which are oriented during the call as well.
 
MRMESH_API VertNormals makeNormals (const PointCloud &pointCloud, int avgNeighborhoodSize=48)
 Makes consistent normals for valid points of given point cloud.
 
MRMESH_API float findAvgPointsRadius (const PointCloud &pointCloud, int avgPoints, int samples=1024)
 Finds the radius of ball, so on average that ball contained avgPoints excluding the central point.
 
MRMESH_API bool dilateRegion (const PointCloud &pointCloud, VertBitSet &region, float dilation, ProgressCallback cb={}, const AffineXf3f *xf=nullptr)
 expands the region on given euclidian distance. returns false if callback also returns false
 
MRMESH_API bool erodeRegion (const PointCloud &pointCloud, VertBitSet &region, float erosion, ProgressCallback cb={}, const AffineXf3f *xf=nullptr)
 shrinks the region on given euclidian distance. returns false if callback also returns false
 
MRMESH_API bool relax (PointCloud &pointCloud, const PointCloudRelaxParams &params={}, ProgressCallback cb={})
 
MRMESH_API bool relaxKeepVolume (PointCloud &pointCloud, const PointCloudRelaxParams &params={}, ProgressCallback cb={})
 
MRMESH_API bool relaxApprox (PointCloud &pointCloud, const PointCloudApproxRelaxParams &params={}, ProgressCallback cb={})
 
MRMESH_API std::optional< MeshtriangulatePointCloud (const PointCloud &pointCloud, const TriangulationParameters &params={}, const ProgressCallback &progressCb={})
 Creates mesh from given point cloud according params Returns empty optional if was interrupted by progress bar.
 
MRMESH_API bool fillHolesWithExtraPoints (Mesh &mesh, PointCloud &extraPoints, const FillHolesWithExtraPointsParams &params={}, const ProgressCallback &progressCb={})
 
MRMESH_API PickedPoint pointOnObjectToPickedPoint (const VisualObject *object, const PointOnObject &pos)
 Converts PointOnObject coordinates depending on the object type to the PickedPoint variant.
 
MRMESH_API std::optional< Vector3fgetPickedPointPosition (const VisualObject &object, const PickedPoint &point)
 
MRMESH_API MR_BIND_IGNORE Vector3f pickedPointToVector3 (const VisualObject *object, const PickedPoint &point)
 Converts pickedPoint into local coordinates of its object.
 
MRMESH_API MR_BIND_IGNORE bool isPickedPointValid (const VisualObject *object, const PickedPoint &point)
 Checks that the picked point presents in the object's topology.
 
MRMESH_API std::optional< Vector3fgetPickedPointNormal (const VisualObject &object, const PickedPoint &point, bool interpolated=true)
 
MRMESH_API void findPointsInBall (const PointCloud &pointCloud, const Ball3f &ball, const OnPointInBallFound &foundCallback, const AffineXf3f *xf=nullptr)
 
MRMESH_API MR_BIND_IGNORE void findPointsInBall (const PointCloud &pointCloud, const Ball3f &ball, const FoundPointCallback &foundCallback, const AffineXf3f *xf=nullptr)
 
MRMESH_API void findPointsInBall (const Mesh &mesh, const Ball3f &ball, const OnPointInBallFound &foundCallback, const AffineXf3f *xf=nullptr)
 
MRMESH_API MR_BIND_IGNORE void findPointsInBall (const Mesh &mesh, const Ball3f &ball, const FoundPointCallback &foundCallback, const AffineXf3f *xf=nullptr)
 
MRMESH_API void findPointsInBall (const AABBTreePoints &tree, Ball3f ball, const OnPointInBallFound &foundCallback, const AffineXf3f *xf=nullptr)
 
MRMESH_API MR_BIND_IGNORE void findPointsInBall (const AABBTreePoints &tree, const Ball3f &ball, const FoundPointCallback &foundCallback, const AffineXf3f *xf=nullptr)
 
MRMESH_API void findPointsInBox (const PointCloud &pointCloud, const Box3f &box, const FoundPointCallback &foundCallback, const AffineXf3f *xf=nullptr)
 
MRMESH_API void findPointsInBox (const Mesh &mesh, const Box3f &box, const FoundPointCallback &foundCallback, const AffineXf3f *xf=nullptr)
 
MRMESH_API void findPointsInBox (const AABBTreePoints &tree, const Box3f &box, const FoundPointCallback &foundCallback, const AffineXf3f *xf=nullptr)
 
MRMESH_API PointsProjectionResult findProjectionOnPoints (const Vector3f &pt, const PointCloudPart &pcp, float upDistLimitSq=FLT_MAX, const AffineXf3f *xf=nullptr, float loDistLimitSq=0, VertPredicate skipCb={})
 computes the closest point on point cloud to given point
 
MRMESH_API PointsProjectionResult findProjectionOnPoints (const Vector3f &pt, const AABBTreePoints &tree, float upDistLimitSq=FLT_MAX, const AffineXf3f *xf=nullptr, float loDistLimitSq=0, const VertBitSet *region=nullptr, VertPredicate skipCb={})
 computes the closest point on AABBTreePoints to given point
 
MRMESH_API void findFewClosestPoints (const Vector3f &pt, const PointCloud &pc, FewSmallest< PointsProjectionResult > &res, float upDistLimitSq=FLT_MAX, const AffineXf3f *xf=nullptr, float loDistLimitSq=0)
 finds a number of the closest points in the cloud (as configured in
 
MRMESH_API Buffer< VertIdfindNClosestPointsPerPoint (const PointCloud &pc, int numNei, const ProgressCallback &progress={})
 finds given number of closest points (excluding itself) to each valid point in the cloud;
 
MRMESH_API VertPair findTwoClosestPoints (const PointCloud &pc, const ProgressCallback &progress={})
 finds two closest points (first id < second id) in whole point cloud
 
MRMESH_API VertScalars findSignedDistances (const Mesh &refMesh, const VertCoords &testPoints, const VertBitSet *validTestPoints={}, const MeshProjectionParameters &params={}, IPointsToMeshProjector *projector={})
 if projector is not given then CPU's computations will be used
 
MRMESH_API VertScalars findSignedDistances (const Mesh &refMesh, const Mesh &mesh, const MeshProjectionParameters &params={}, IPointsToMeshProjector *projector={})
 if projector is not given then CPU's computations will be used
 
MRMESH_API std::vector< EdgePointPairfindCollidingEdgePairs (const Polyline2 &a, const Polyline2 &b, const AffineXf2f *rigidB2A=nullptr, bool firstIntersectionOnly=false)
 finds all pairs of colliding edges from two 2d polylines
 
MRMESH_API std::vector< UndirectedEdgeUndirectedEdgefindCollidingEdges (const Polyline2 &a, const Polyline2 &b, const AffineXf2f *rigidB2A=nullptr, bool firstIntersectionOnly=false)
 finds all pairs of colliding edges from two 2d polylines
 
MRMESH_API std::pair< UndirectedEdgeBitSet, UndirectedEdgeBitSetfindCollidingEdgesBitsets (const Polyline2 &a, const Polyline2 &b, const AffineXf2f *rigidB2A=nullptr)
 finds bitset per polyline with colliding edges
 
MRMESH_API std::vector< EdgePointPairfindSelfCollidingEdgePairs (const Polyline2 &polyline)
 finds all pairs of colliding edges from 2d polyline
 
MRMESH_API std::vector< UndirectedEdgeUndirectedEdgefindSelfCollidingEdges (const Polyline2 &polyline)
 finds all pairs of colliding edges from 2d polyline
 
MRMESH_API UndirectedEdgeBitSet findSelfCollidingEdgesBS (const Polyline2 &polyline)
 finds the union of all self-intersecting edges
 
MRMESH_API bool isInside (const Polyline2 &a, const Polyline2 &b, const AffineXf2f *rigidB2A=nullptr)
 checks that arbitrary 2d polyline A is inside of closed 2d polyline B
 
MRMESH_API bool isPointInsidePolyline (const Polyline2 &polyline, const Vector2f &point)
 detect if given point is inside polyline, by counting ray intersections
 
MRMESH_API std::optional< PolylineIntersectionResult2rayPolylineIntersect (const Polyline2 &polyline, const Line2f &line, float rayStart=0, float rayEnd=FLT_MAX, const IntersectionPrecomputes2< float > *prec=nullptr, bool closestIntersect=true)
 
MRMESH_API std::optional< PolylineIntersectionResult2rayPolylineIntersect (const Polyline2 &polyline, const Line2d &line, double rayStart=0, double rayEnd=DBL_MAX, const IntersectionPrecomputes2< double > *prec=nullptr, bool closestIntersect=true)
 
MRMESH_API void rayPolylineIntersectAll (const Polyline2 &polyline, const Line2f &line, const PolylineIntersectionCallback2f &callback, float rayStart=0.0f, float rayEnd=FLT_MAX, const IntersectionPrecomputes2< float > *prec=nullptr)
 
MRMESH_API void rayPolylineIntersectAll (const Polyline2 &polyline, const Line2d &line, const PolylineIntersectionCallback2d &callback, double rayStart=0.0, double rayEnd=DBL_MAX, const IntersectionPrecomputes2< double > *prec=nullptr)
 
MRMESH_API DecimatePolylineResult decimatePolyline (Polyline2 &polyline, const DecimatePolylineSettings2 &settings={})
 Collapse edges in the polyline according to the settings.
 
MRMESH_API DecimatePolylineResult decimatePolyline (Polyline3 &polyline, const DecimatePolylineSettings3 &settings={})
 
MRMESH_API DecimatePolylineResult decimateContour (Contour2f &contour, const DecimatePolylineSettings2 &settings={})
 Collapse edges in the contour according to the settings.
 
MRMESH_API DecimatePolylineResult decimateContour (Contour3f &contour, const DecimatePolylineSettings3 &settings={})
 
MRMESH_API PolylineProjectionResult2 findProjectionOnPolyline2 (const Vector2f &pt, const Polyline2 &polyline, float upDistLimitSq=FLT_MAX, AffineXf2f *xf=nullptr, float loDistLimitSq=0)
 computes the closest point on polyline to given point
 
MRMESH_API PolylineProjectionResult3 findProjectionOnPolyline (const Vector3f &pt, const Polyline3 &polyline, float upDistLimitSq=FLT_MAX, AffineXf3f *xf=nullptr, float loDistLimitSq=0)
 computes the closest point on polyline to given point
 
MRMESH_API PolylineProjectionResult3Arg findMaxProjectionOnPolyline (const VertCoords &points, const Polyline3 &polyline, const VertBitSet *pointsRegion=nullptr, AffineXf3f *xf=nullptr, float loDistLimitSq=0)
 for each of points (pointsRegion) computes the closest point on polyline and returns the point for which maximum distance is reached,
 
MRMESH_API PolylineProjectionResult3 findProjectionOnPolyline (const Line3f &ln, const Polyline3 &polyline, float upDistLimitSq=FLT_MAX, AffineXf3f *xf=nullptr, float loDistLimitSq=0)
 computes the closest point on polyline to given straight line
 
MRMESH_API Polyline2ProjectionWithOffsetResult findProjectionOnPolyline2WithOffset (const Vector2f &pt, const Polyline2 &polyline, const Vector< float, UndirectedEdgeId > &offsetPerEdge, float upDistLimit=FLT_MAX, AffineXf2f *xf=nullptr, float loDistLimit=0)
 computes the closest point on polyline to given point, respecting each edge offset
 
MRMESH_API PolylineProjectionWithOffsetResult3 findProjectionOnPolylineWithOffset (const Vector3f &pt, const Polyline3 &polyline, const Vector< float, UndirectedEdgeId > &offsetPerEdge, float upDistLimit=FLT_MAX, AffineXf3f *xf=nullptr, float loDistLimit=0)
 computes the closest point on polyline to given point, respecting each edge offset
 
MRMESH_API void findEdgesInBall (const Polyline2 &polyline, const Vector2f &center, float radius, const FoundEdgeCallback2 &foundCallback, AffineXf2f *xf=nullptr)
 Finds all edges of given polyline that cross or touch given ball (center, radius)
 
MRMESH_API void findEdgesInBall (const Polyline3 &polyline, const Vector3f &center, float radius, const FoundEdgeCallback3 &foundCallback, AffineXf3f *xf=nullptr)
 Finds all edges of given polyline that cross or touch given ball (center, radius)
 
MRMESH_API void findMeshEdgesInBall (const Mesh &mesh, const AABBTreePolyline3 &tree, const Vector3f &center, float radius, const FoundEdgeCallback3 &foundCallback, AffineXf3f *xf=nullptr)
 Finds all edges of given mesh edges (specified by the tree) that cross or touch given ball (center, radius)
 
MRMESH_API PolylineProjectionResult3 findProjectionOnMeshEdges (const Vector3f &pt, const Mesh &mesh, const AABBTreePolyline3 &tree, float upDistLimitSq=FLT_MAX, AffineXf3f *xf=nullptr, float loDistLimitSq=0)
 computes the closest point on the mesh edges (specified by the tree) to given point
 
MRMESH_API PolylineProjectionResult3 findProjectionOnMeshEdges (const Line3f &ln, const Mesh &mesh, const AABBTreePolyline3 &tree, float upDistLimitSq=FLT_MAX, AffineXf3f *xf=nullptr, float loDistLimitSq=0)
 computes the closest point on the mesh edges (specified by the tree) to given straight line
 
template<typename V >
bool relax (Polyline< V > &polyline, const RelaxParams &params={}, ProgressCallback cb={})
 
template<typename V >
bool relaxKeepArea (Polyline< V > &polyline, const RelaxParams &params={}, ProgressCallback cb={})
 
MRMESH_API int subdividePolyline (Polyline2 &polyline, const PolylineSubdivideSettings &settings={})
 
MRMESH_API int subdividePolyline (Polyline3 &polyline, const PolylineSubdivideSettings &settings={})
 
MRMESH_API UndirectedEdgeBitSet subdivideWithPlane (Polyline3 &polyline, const Plane3f &plane, EdgeBitSet *newPositiveEdges={}, std::function< void(EdgeId, EdgeId, float)> onEdgeSplitCallback={})
 
MRMESH_API MR_BIND_IGNORE UndirectedEdgeBitSet subdividePolylineWithPlane (Polyline3 &polyline, const Plane3f &plane, std::function< void(EdgeId, EdgeId, float)> onEdgeSplitCallback={})
 
MRMESH_API void trimWithPlane (Polyline3 &polyline, const Plane3f &plane, const DividePolylineParameters &params={})
 
MRMESH_API MR_BIND_IGNORE void dividePolylineWithPlane (Polyline3 &polyline, const Plane3f &plane, const DividePolylineParameters &params={})
 
MRMESH_API std::vector< EdgeSegmentextractSectionsFromPolyline (const Polyline3 &polyline, const Plane3f &plane, float eps, UndirectedEdgeBitSet *positiveEdges={})
 
MRMESH_API void positionVertsSmoothly (Mesh &mesh, const VertBitSet &verts, EdgeWeights edgeWeights=EdgeWeights::Cotan, VertexMass vmass=VertexMass::Unit, const VertBitSet *fixedSharpVertices=nullptr)
 
MRMESH_API void positionVertsSmoothly (const MeshTopology &topology, VertCoords &points, const VertBitSet &verts, EdgeWeights edgeWeights=EdgeWeights::Cotan, VertexMass vmass=VertexMass::Unit, const VertBitSet *fixedSharpVertices=nullptr)
 
MRMESH_API void positionVertsSmoothlySharpBd (Mesh &mesh, const PositionVertsSmoothlyParams &params)
 Puts given vertices in such positions to make smooth surface inside verts-region, but sharp on its boundary;.
 
MRMESH_API void positionVertsSmoothlySharpBd (const MeshTopology &topology, VertCoords &points, const PositionVertsSmoothlyParams &params)
 
MRMESH_API void positionVertsSmoothlySharpBd (Mesh &mesh, const VertBitSet &verts)
 
MRMESH_API void positionVertsWithSpacing (Mesh &mesh, const SpacingSettings &settings)
 Moves given vertices to make the distances between them as specified.
 
MRMESH_API void positionVertsWithSpacing (const MeshTopology &topology, VertCoords &points, const SpacingSettings &settings)
 
MRMESH_API void inflate (Mesh &mesh, const VertBitSet &verts, const InflateSettings &settings)
 
MRMESH_API void inflate (const MeshTopology &topology, VertCoords &points, const VertBitSet &verts, const InflateSettings &settings)
 
MRMESH_API void inflate1 (const MeshTopology &topology, VertCoords &points, const VertBitSet &verts, float pressure)
 
MRMESH_API void vertMapsComposition (VertMap &a2b, const VertMap &b2c)
 updates a2b map to a2c map using b2c map
 
MRMESH_API VertMap vertMapsComposition (const VertMap &a2b, const VertMap &b2c)
 returns map a2c from a2b and b2c maps
 
MRMESH_API void edgeMapsComposition (EdgeMap &a2b, const EdgeMap &b2c)
 updates a2b map to a2c map using b2c map
 
MRMESH_API EdgeMap edgeMapsComposition (const EdgeMap &a2b, const EdgeMap &b2c)
 returns map a2c from a2b and b2c maps
 
MRMESH_API void faceMapsComposition (FaceMap &a2b, const FaceMap &b2c)
 updates a2b map to a2c map using b2c map
 
MRMESH_API FaceMap faceMapsComposition (const FaceMap &a2b, const FaceMap &b2c)
 returns map a2c from a2b and b2c maps
 
MRMESH_API Mesh makePrism (float baseLength, float leftAngle, float rightAngle, float height=1.0f)
 
MR_BIND_IGNORE void processSelfSubtasks (const AABBTree &tree, std::vector< NodeNode > &subtasks, std::vector< NodeNode > &nextSubtasks, std::function< Processing(const NodeNode &)> processLeaf, std::function< Processing(const Box3f &lBox, const Box3f &rBox)> processNodes)
 This function process all subtasks in one tree
left/right == right/left in this case, so on same non-leaf nodes it only adds 3 next subtasks,
same leafs are skipped and different leafs area processed with processLeaf callback.
 
bool reportProgress (ProgressCallback cb, float v)
 safely invokes
 
bool reportProgress (ProgressCallback cb, float v, size_t counter, int divider)
 
template<typename F >
bool reportProgress (ProgressCallback cb, F &&f)
 
template<typename F >
bool reportProgress (ProgressCallback cb, F &&f, size_t counter, int divider)
 
ProgressCallback subprogress (ProgressCallback cb, float from, float to)
 returns a callback that maps [0,1] linearly into [from,to] in the call to
 
template<typename F >
ProgressCallback subprogress (ProgressCallback cb, F &&f)
 returns a callback that maps the value with given function
 
ProgressCallback subprogress (ProgressCallback cb, size_t index, size_t count)
 returns a callback that maps [0,1] linearly into [(index+0)/count,(index+1)/count] in the call to
 
MRMESH_API bool writeByBlocks (std::ostream &out, const char *data, size_t dataSize, ProgressCallback callback={}, size_t blockSize=(size_t(1)<< 16))
 write dataSize bytes from data to out stream by blocks blockSize bytes
 
MRMESH_API bool readByBlocks (std::istream &in, char *data, size_t dataSize, ProgressCallback callback={}, size_t blockSize=(size_t(1)<< 16))
 read dataSize bytes from in stream to data by blocks blockSize bytes
 
template<typename F >
bool projectVertAttribute (const MeshVertPart &mp, const Mesh &oldMesh, F &&func, const ProjectAttributeParams &params={})
 
template<typename F >
bool projectFaceAttribute (const MeshPart &mp, const Mesh &oldMesh, F &&func, const ProjectAttributeParams &params={})
 
MRMESH_API Expected< void > projectObjectMeshData (const ObjectMeshData &oldMeshData, ObjectMeshData &newMeshData, const FaceBitSet *region=nullptr, const ProjectAttributeParams &params={})
 finds attributes of new mesh by projecting faces/vertices on old mesh
 
MRMESH_API Expected< void > compensateRadius (Mesh &mesh, const CompensateRadiusParams &params)
 
template<typename T = float>
bool rayBoxIntersect (const Box3< T > &box, const RayOrigin< T > &rayOrigin, T &t0, T &t1, const IntersectionPrecomputes< T > &prec)
 
template<typename T = float>
bool rayBoxIntersect (const Box3< T > &box, const Line3< T > &line, T t0, T t1)
 
template<typename T >
bool rayBoxIntersect (const Box2< T > &box, const Vector2< T > &rayOrigin, T &t0, T &t1, const IntersectionPrecomputes2< T > &prec)
 
template<typename T = float>
bool rayBoxIntersect (const Box2< T > &box, const Line2< T > &line, T t0, T t1)
 
OutEdge2 opposite (OutEdge2 e)
 
MRMESH_API void expandPixelMask (PixelBitSet &mask, const RectIndexer &indexer, int expansion=1)
 expands PixelBitSet with given number of steps
 
MRMESH_API void shrinkPixelMask (PixelBitSet &mask, const RectIndexer &indexer, int shrinkage=1)
 shrinks PixelBitSet with given number of steps
 
MRMESH_API EdgeLoop trackLeftBoundaryLoop (const MeshTopology &topology, EdgeId e0, const FaceBitSet *region=nullptr)
 
EdgeLoop trackLeftBoundaryLoop (const MeshTopology &topology, const FaceBitSet &region, EdgeId e0)
 
MRMESH_API EdgeLoop trackRightBoundaryLoop (const MeshTopology &topology, EdgeId e0, const FaceBitSet *region=nullptr)
 
EdgeLoop trackRightBoundaryLoop (const MeshTopology &topology, const FaceBitSet &region, EdgeId e0)
 
MRMESH_API std::vector< EdgeLoop > findLeftBoundary (const MeshTopology &topology, const FaceBitSet *region=nullptr)
 
MR_BIND_IGNORE std::vector< EdgeLoop > findLeftBoundary (const MeshTopology &topology, const FaceBitSet &region)
 This is skipped in the bindings because it conflicts with the overload taking a pointer in C#. Since that overload is strictly more useful, we're keeping that one.
 
MRMESH_API std::vector< EdgeLoop > findRightBoundary (const MeshTopology &topology, const FaceBitSet *region=nullptr)
 
MR_BIND_IGNORE std::vector< EdgeLoop > findRightBoundary (const MeshTopology &topology, const FaceBitSet &region)
 This is skipped in the bindings because it conflicts with the overload taking a pointer in C#. Since that overload is strictly more useful, we're keeping that one.
 
MRMESH_API std::vector< EdgeLoop > delRegionKeepBd (Mesh &mesh, const FaceBitSet *region=nullptr, bool keepLoneHoles=false)
 
MR_BIND_IGNORE std::vector< EdgeLoop > delRegionKeepBd (Mesh &mesh, const FaceBitSet &region, bool keepLoneHoles=false)
 This is skipped in the bindings because it conflicts with the overload taking a pointer in C#. Since that overload is strictly more useful, we're keeping that one.
 
MRMESH_API std::vector< EdgePath > findLeftBoundaryInsideMesh (const MeshTopology &topology, const FaceBitSet &region)
 
MRMESH_API UndirectedEdgeBitSet findRegionBoundaryUndirectedEdgesInsideMesh (const MeshTopology &topology, const FaceBitSet &region)
 returns all region boundary edges, where each edge has a region face on one side, and a valid not-region face on another side
 
MRMESH_API FaceBitSet findRegionOuterFaces (const MeshTopology &topology, const FaceBitSet &region)
 
MRMESH_API VertBitSet getIncidentVerts (const MeshTopology &topology, const FaceBitSet &faces)
 composes the set of all vertices incident to given faces
 
MRMESH_API const VertBitSetgetIncidentVerts (const MeshTopology &topology, const FaceBitSet *faces, VertBitSet &store)
 
MRMESH_API VertBitSet getInnerVerts (const MeshTopology &topology, const FaceBitSet *region=nullptr)
 composes the set of all vertices not on the boundary of a hole and with all their adjacent faces in given set
 
MRMESH_API MR_BIND_IGNORE VertBitSet getInnerVerts (const MeshTopology &topology, const FaceBitSet &region)
 
MRMESH_API VertBitSet getBoundaryVerts (const MeshTopology &topology, const FaceBitSet *region=nullptr)
 composes the set of all boundary vertices for given region (or whole mesh if !region)
 
MRMESH_API VertBitSet getRegionBoundaryVerts (const MeshTopology &topology, const FaceBitSet &region)
 
MRMESH_API FaceBitSet getIncidentFaces (const MeshTopology &topology, const VertBitSet &verts)
 composes the set of all faces incident to given vertices
 
MRMESH_API FaceBitSet getInnerFaces (const MeshTopology &topology, const VertBitSet &verts)
 composes the set of all faces with all their vertices in given set
 
MRMESH_API EdgeBitSet getRegionEdges (const MeshTopology &topology, const FaceBitSet &faces)
 composes the set of all edges, having a face from given set at the left
 
MRMESH_API UndirectedEdgeBitSet getIncidentEdges (const MeshTopology &topology, const FaceBitSet &faces)
 composes the set of all undirected edges, having a face from given set from one of two sides
 
MRMESH_API UndirectedEdgeBitSet getIncidentEdges (const MeshTopology &topology, const UndirectedEdgeBitSet &edges)
 composes the set of all undirected edges, having at least one common vertex with an edge from given set
 
MRMESH_API VertBitSet getIncidentVerts (const MeshTopology &topology, const UndirectedEdgeBitSet &edges)
 composes the set of all vertices incident to given edges
 
MRMESH_API FaceBitSet getIncidentFaces (const MeshTopology &topology, const UndirectedEdgeBitSet &edges)
 composes the set of all faces incident to given edges
 
MRMESH_API FaceBitSet getNeighborFaces (const MeshTopology &topology, const UndirectedEdgeBitSet &edges)
 composes the set of all left and right faces of given edges
 
MRMESH_API UndirectedEdgeBitSet getInnerEdges (const MeshTopology &topology, const VertBitSet &verts)
 composes the set of all edges with all their vertices in given set
 
MRMESH_API UndirectedEdgeBitSet getInnerEdges (const MeshTopology &topology, const FaceBitSet &region)
 composes the set of all edges having both left and right in given region
 
MRMESH_API const VertBitSetgetIncidentVerts (const MeshTopology &topology, const UndirectedEdgeBitSet *edges, VertBitSet &store)
 
MRMESH_API VertBitSet getInnerVerts (const MeshTopology &topology, const UndirectedEdgeBitSet &edges)
 composes the set of all vertices with all their edges in given set
 
MRMESH_API Expected< MeshmakeRegularGridMesh (size_t width, size_t height, const RegularGridLatticeValidator &validator, const RegularGridLatticePositioner &positioner, const RegularGridMeshFaceValidator &faceValidator={}, ProgressCallback cb={})
 
MRMESH_API Expected< MeshmakeRegularGridMesh (VertCoords pc, ProgressCallback cb={})
 
template<typename V >
getLimitedPos (const V &pos, const V &guidePos, typename VectorTraits< V >::BaseType maxGuideDistSq)
 
template<typename T >
void resizeNoInit (std::vector< T > &vec, size_t targetSize) MR_REQUIRES_IF_SUPPORTED(sizeof(T) > 0 &&std
 
MRMESH_API void redirectSTDStreamsToLogger ()
 
template<typename N >
bool operator== (const RingIterator< N > &a, const RingIterator< N > &b)
 
template<typename N >
bool operator!= (const RingIterator< N > &a, const RingIterator< N > &b)
 
IteratorRange< OrgRingIterator > orgRing (const MeshTopology &topology, EdgeId edge)
 
IteratorRange< OrgRingIterator > orgRing (const MeshTopology &topology, VertId v)
 
IteratorRange< OrgRingIterator > orgRing0 (const MeshTopology &topology, EdgeId edge)
 
IteratorRange< LeftRingIterator > leftRing (const MeshTopology &topology, EdgeId edge)
 
IteratorRange< LeftRingIterator > leftRing (const MeshTopology &topology, FaceId f)
 
IteratorRange< LeftRingIterator > leftRing0 (const MeshTopology &topology, EdgeId edge)
 
Vector3f applyFloat (const AffineXf3d *xf, const Vector3f &p)
 returns the point as is or after application of given transform to it in double precision
 
Vector3f applyFloat (const Matrix3d *m, const Vector3f &n)
 returns the normal as is or after application of given matrix to it in double precision
 
Vector3d applyDouble (const AffineXf3d *xf, const Vector3f &p)
 converts given point in double precision and applies given transformation to it
 
Vector3d applyDouble (const Matrix3d *m, const Vector3f &n)
 converts given normal in double precision and applies given matrix to it
 
MRMESH_API const VertCoordstransformPoints (const VertCoords &verts, const VertBitSet &validVerts, const AffineXf3d *xf, VertCoords &buf, const VertRenumber *vertRenumber=nullptr)
 
MRMESH_API const VertNormals & transformNormals (const VertNormals &normals, const VertBitSet &validVerts, const Matrix3d *m, VertNormals &buf)
 
MRMESH_API std::shared_ptr< SceneRootObjectcreateRootFormObject (std::shared_ptr< Object > obj)
 
MRMESH_API Expected< std::string > serializeJsonValue (const Json::Value &root)
 
MRMESH_API Expected< void > serializeJsonValue (const Json::Value &root, std::ostream &out)
 
MRMESH_API Expected< void > serializeJsonValue (const Json::Value &root, const std::filesystem::path &path)
 
MRMESH_API Expected< Json::Value > deserializeJsonValue (std::istream &in)
 
MRMESH_API Expected< Json::Value > deserializeJsonValue (const char *data, size_t size)
 
MRMESH_API Expected< Json::Value > deserializeJsonValue (const std::string &str)
 
MRMESH_API Expected< Json::Value > deserializeJsonValue (const std::filesystem::path &path)
 
MRMESH_API Expected< void > serializeMesh (const Mesh &mesh, const std::filesystem::path &path, const FaceBitSet *selection=nullptr, const char *serializeFormat=".mrmesh")
 
MRMESH_API void serializeToJson (const Vector2i &vec, Json::Value &root)
 saves an object into json value
 
MRMESH_API void serializeToJson (const Vector2f &vec, Json::Value &root)
 
MRMESH_API void serializeToJson (const Vector3i &vec, Json::Value &root)
 
MRMESH_API void serializeToJson (const Vector3f &vec, Json::Value &root)
 
MRMESH_API void serializeToJson (const Vector4f &vec, Json::Value &root)
 
MRMESH_API void serializeToJson (const Box3i &box, Json::Value &root)
 
MRMESH_API void serializeToJson (const Box3f &box, Json::Value &root)
 
MRMESH_API void serializeToJson (const Color &col, Json::Value &root)
 
MRMESH_API void serializeToJson (const Matrix2f &matrix, Json::Value &root, bool skipIdentity=true)
 
MRMESH_API void serializeToJson (const Matrix3f &matrix, Json::Value &root, bool skipIdentity=true)
 
MRMESH_API void serializeToJson (const AffineXf2f &xf, Json::Value &root, bool skipIdentity=true)
 
MRMESH_API void serializeToJson (const AffineXf3f &xf, Json::Value &root, bool skipIdentity=true)
 
MRMESH_API void serializeToJson (const BitSet &bitset, Json::Value &root)
 
MRMESH_API Expected< void > serializeToJson (const Mesh &mesh, Json::Value &root)
 
MRMESH_API void serializeToJson (const Plane3f &plane, Json::Value &root)
 
MRMESH_API void serializeToJson (const TriPointf &tp, Json::Value &root)
 
MRMESH_API void serializeToJson (const MeshTexture &texture, Json::Value &root)
 
MRMESH_API void serializeToJson (const std::vector< TextureId > &texturePerFace, Json::Value &root)
 
MRMESH_API void serializeToJson (const std::vector< UVCoord > &uvCoords, Json::Value &root)
 
MRMESH_API void serializeToJson (const std::vector< Color > &colors, Json::Value &root)
 
MRMESH_API void serializeToJson (const MeshTriPoint &mtp, const MeshTopology &topology, Json::Value &root)
 
MRMESH_API void serializeToJson (const PointOnFace &pf, Json::Value &root)
 
MRMESH_API void serializeViaVerticesToJson (const UndirectedEdgeBitSet &edges, const MeshTopology &topology, Json::Value &root)
 
MRMESH_API void deserializeViaVerticesFromJson (const Json::Value &root, UndirectedEdgeBitSet &edges, const MeshTopology &topology)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, Vector2i &vec)
 loads an object from json value
 
MRMESH_API void deserializeFromJson (const Json::Value &root, Vector2f &vec)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, Vector3i &vec)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, Vector3f &vec)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, Vector4f &vec)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, Color &col)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, Matrix2f &matrix)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, Matrix3f &matrix)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, AffineXf2f &xf)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, AffineXf3f &xf)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, BitSet &bitset)
 
MRMESH_API Expected< MeshdeserializeFromJson (const Json::Value &root, VertColors *colors=nullptr)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, Plane3f &plane)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, TriPointf &tp)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, MeshTexture &texture)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, std::vector< TextureId > &texturePerFace)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, std::vector< UVCoord > &uvCoords)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, std::vector< Color > &colors)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, MeshTriPoint &mtp, const MeshTopology &topology)
 
MRMESH_API void deserializeFromJson (const Json::Value &root, PointOnFace &pf)
 
MRMESH_API void sharpenMarchingCubesMesh (const MeshPart &ref, Mesh &vox, Vector< VoxelId, FaceId > &face2voxel, const SharpenMarchingCubesMeshSettings &settings)
 
MRMESH_API const char * asString (SignDetectionMode m)
 returns string representation of enum values
 
MRMESH_API std::vector< Vector3fsampleHalfSphere ()
 returns quasi-uniform 145 samples on unit half-sphere z>0
 
MRMESH_API VertScalars computeSkyViewFactor (const Mesh &terrain, const VertCoords &samples, const VertBitSet &validSamples, const std::vector< SkyPatch > &skyPatches, BitSet *outSkyRays=nullptr, std::vector< MeshIntersectionResult > *outIntersections=nullptr)
 
MRMESH_API BitSet findSkyRays (const Mesh &terrain, const VertCoords &samples, const VertBitSet &validSamples, const std::vector< SkyPatch > &skyPatches, std::vector< MeshIntersectionResult > *outIntersections=nullptr)
 
MRMESH_API Mesh makeSolidOfRevolution (const Contour2f &profile, int resolution=16)
 
template<typename C , typename D , D M>
SparsePolynomial< C, D, Moperator* (const SparsePolynomial< C, D, M > &a, const SparsePolynomial< C, D, M > &b)
 
std::string getCurrentStacktraceInline ()
 
MRMESH_API void printStacktraceOnCrash ()
 Print stacktrace on application crash.
 
MRMESH_API size_t findSubstringCaseInsensitive (const std::string &string, const std::string &substring)
 
MRMESH_API int calcDamerauLevenshteinDistance (const std::string &stringA, const std::string &stringB, bool caseSensitive=true, int *outLeftRightAddition=nullptr)
 
MRMESH_API std::vector< std::string > split (const std::string &string, const std::string &delimiter)
 
template<typename F >
bool split (std::string_view str, std::string_view sep, F &&func)
 
MRMESH_API std::string replace (std::string target, std::string_view from, std::string_view to)
 Returns.
 
MRMESH_API void replaceInplace (std::string &target, std::string_view from, std::string_view to)
 Replaces.
 
MRMESH_API std::string_view trim (std::string_view str)
 Removes all whitespace character (detected by std::isspace) at the beginning and the end of string view.
 
MRMESH_API std::string_view trimLeft (std::string_view str)
 Removes all whitespace character (detected by std::isspace) at the beginning of string view.
 
MRMESH_API std::string_view trimRight (std::string_view str)
 Removes all whitespace character (detected by std::isspace) at the end of string view.
 
MRMESH_API bool hasFormatPlaceholders (std::string_view str)
 Returns true if str has at least one {...} formatting placeholder.
 
MR_BIND_IGNORE MRMESH_API std::wstring utf8ToWide (const char *utf8)
 converts UTF8-encoded string into UTF16-encoded string
 
MRMESH_API std::string systemToUtf8 (const std::string &system)
 converts system encoded string to UTF8-encoded string
 
MRMESH_API std::string utf8ToSystem (const std::string &utf8)
 
MR_BIND_IGNORE MRMESH_API std::string wideToUtf8 (const wchar_t *wide)
 converts wide null terminating string to UTF8-encoded string
 
MR_BIND_IGNORE const std::string & asString (const std::string &s)
 
MR_BIND_IGNORE const std::string & asU8String (const std::string &s)
 
MR_BIND_IGNORE std::string asString (std::string &&s)
 
MR_BIND_IGNORE std::string asU8String (std::string &&s)
 
MR_BIND_IGNORE std::filesystem::path pathFromUtf8 (const std::string &s)
 
MR_BIND_IGNORE std::filesystem::path pathFromUtf8 (const char *s)
 
std::string utf8string (const std::filesystem::path &path)
 returns filename as UTF8-encoded string
 
std::string utf8string (const std::string &)=delete
 it is a mistake to call the function with implicit construction of path from string
 
MRMESH_API std::string utf8substr (const char *s, size_t pos, size_t count)
 
MRMESH_API std::string bytesString (size_t size)
 
bool isProhibitedChar (char c)
 
MRMESH_API bool hasProhibitedChars (const std::string &line)
 returns true if line contains at least one character (c) for which isProhibitedChar(c)==true
 
MRMESH_API std::string replaceProhibitedChars (const std::string &line, char replacement='_')
 replace all characters (c), where isProhibitedChar(c)==true, with replacement char
 
template<typename T >
Expected< T > addFileNameInError (Expected< T > v, const std::filesystem::path &file)
 if (v) contains an error, then appends given file name to that error
 
MRMESH_API std::string commonFilesName (const std::vector< std::filesystem::path > &files)
 
MRMESH_API MR_BIND_IGNORE char * formatNoTrailingZeros (char *fmt, double v, int digitsAfterPoint, int precision=6)
 
MRMESH_API double roundToPrecision (double v, int precision)
 returns given value rounded to given number of decimal digits
 
float roundToPrecision (float v, int precision)
 returns given value rounded to given number of decimal digits
 
std::string getCancelMessage (const std::filesystem::path &path)
 
MRMESH_API std::string toLower (std::string str)
 return a copy of the string with all alphabetic ASCII characters replaced with upper-case variants
 
MRMESH_API VertScalars computeSurfaceDistances (const Mesh &mesh, const VertBitSet &startVertices, float maxDist=FLT_MAX, const VertBitSet *region=nullptr, int maxVertUpdates=3)
 
MRMESH_API VertScalars computeSurfaceDistances (const Mesh &mesh, const VertBitSet &startVertices, const VertBitSet &targetVertices, float maxDist=FLT_MAX, const VertBitSet *region=nullptr, int maxVertUpdates=3)
 
MRMESH_API VertScalars computeSurfaceDistances (const Mesh &mesh, const HashMap< VertId, float > &startVertices, float maxDist=FLT_MAX, const VertBitSet *region=nullptr, int maxVertUpdates=3)
 
MRMESH_API VertScalars computeSurfaceDistances (const Mesh &mesh, const MeshTriPoint &start, const MeshTriPoint &end, const VertBitSet *region=nullptr, bool *endReached=nullptr, int maxVertUpdates=3)
 
MRMESH_API VertScalars computeSurfaceDistances (const Mesh &mesh, const MeshTriPoint &start, float maxDist=FLT_MAX, const VertBitSet *region=nullptr, int maxVertUpdates=3)
 
MRMESH_API VertScalars computeSurfaceDistances (const Mesh &mesh, const std::vector< MeshTriPoint > &starts, float maxDist=FLT_MAX, const VertBitSet *region=nullptr, int maxVertUpdates=3)
 
bool operator< (const VertDistance &a, const VertDistance &b)
 smaller distance to be the first
 
MRMESH_API Expected< Contours3f > offsetSurfaceLine (const Mesh &mesh, const std::vector< MeshTriPoint > &surfaceLine, float offset)
 Returns contours in mesh space that are offset from surfaceLine on offset amount in all directions.
 
MRMESH_API Expected< Contours3f > offsetSurfaceLine (const Mesh &mesh, const std::vector< MeshTriPoint > &surfaceLine, const std::function< float(int)> &offsetAtPoint)
 Returns contours in mesh space that are offset from surfaceLine on offsetAtPoint amount in all directions.
 
std::string toString (PathError error)
 
MRMESH_API Expected< SurfacePath, PathError > computeSurfacePath (const MeshPart &mp, const MeshTriPoint &start, const MeshTriPoint &end, int maxGeodesicIters=5, const VertBitSet *vertRegion=nullptr, VertScalars *outSurfaceDistances=nullptr)
 
MRMESH_API Expected< SurfacePath, PathError > computeGeodesicPath (const Mesh &mesh, const MeshTriPoint &start, const MeshTriPoint &end, GeodesicPathApprox atype=GeodesicPathApprox::FastMarching, int maxGeodesicIters=100)
 the maximum number of iterations to reduce approximate path length and convert it in geodesic path
 
MRMESH_API Expected< SurfacePath, PathError > computeGeodesicPathApprox (const Mesh &mesh, const MeshTriPoint &start, const MeshTriPoint &end, GeodesicPathApprox atype)
 
MRMESH_API Expected< SurfacePath, PathError > computeFastMarchingPath (const MeshPart &mp, const MeshTriPoint &start, const MeshTriPoint &end, const VertBitSet *vertRegion=nullptr, VertScalars *outSurfaceDistances=nullptr)
 
MRMESH_API SurfacePath computeSteepestDescentPath (const MeshPart &mp, const VertScalars &field, const MeshTriPoint &start, const ComputeSteepestDescentPathSettings &settings={})
 
MRMESH_API void computeSteepestDescentPath (const MeshPart &mp, const VertScalars &field, const MeshTriPoint &start, SurfacePath *outPath, const ComputeSteepestDescentPathSettings &settings={})
 
MRMESH_API MeshEdgePoint findSteepestDescentPoint (const MeshPart &mp, const VertScalars &field, VertId v)
 finds the point along minus maximal gradient on the boundary of first ring boundary around given vertex
 
MRMESH_API MeshEdgePoint findSteepestDescentPoint (const MeshPart &mp, const VertScalars &field, const MeshEdgePoint &ep)
 finds the point along minus maximal gradient on the boundary of triangles around given point (the boundary of left and right edge triangles' union in case (ep) is inner edge point)
 
MRMESH_API MeshEdgePoint findSteepestDescentPoint (const MeshPart &mp, const VertScalars &field, const MeshTriPoint &tp)
 finds the point along minus maximal gradient on the boundary of triangles around given point (the boundary of the triangle itself in case (tp) is inner triangle point)
 
MRMESH_API UndirectedEdgeBitSet findExtremeEdges (const Mesh &mesh, const VertScalars &field, ExtremeEdgeType type)
 computes all edges in the mesh, where the field not-increases both in left and right triangles
 
MRMESH_API HashMap< VertId, VertIdcomputeClosestSurfacePathTargets (const Mesh &mesh, const VertBitSet &starts, const VertBitSet &ends, const VertBitSet *vertRegion=nullptr, VertScalars *outSurfaceDistances=nullptr)
 
MRMESH_API SurfacePaths getSurfacePathsViaVertices (const Mesh &mesh, const VertBitSet &vs)
 
MRMESH_API float surfacePathLength (const Mesh &mesh, const SurfacePath &surfacePath)
 computes the length of surface path
 
MRMESH_API Contour3f surfacePathToContour3f (const Mesh &mesh, const SurfacePath &line)
 converts lines on mesh in 3D contours by computing coordinate of each point
 
MRMESH_API Contours3f surfacePathsToContours3f (const Mesh &mesh, const SurfacePaths &lines)
 
MRMESH_API Expected< EdgeLoop > surroundingContour (const Mesh &mesh, std::vector< EdgeId > includeEdges, const EdgeMetric &edgeMetric, const Vector3f &dir)
 Find the best closed edge loop passing through given edges, which minimizes the sum of given edge metric. The algorithm assumes that input edges can be projected on the plane orthogonal to given direction, then the center point of all input edges is found, and each segment of the searched loop is within infinite pie sector with this center and the borders passing via two sorted input edges.
 
MRMESH_API Expected< EdgeLoop > surroundingContour (const Mesh &mesh, std::vector< VertId > keyVertices, const EdgeMetric &edgeMetric, const Vector3f &dir)
 Find the best closed edge loop passing through given vertices, which minimizes the sum of given edge metric. The algorithm assumes that input vertices can be projected on the plane orthogonal to given direction, then the center point of all input vertices is found, and each segment of the searched loop is within infinite pie sector with this center and the borders passing via two sorted input vertices.
 
MRMESH_API void SetCurrentThreadName (const char *name)
 
MRMESH_API MR_BIND_IGNORE std::filesystem::path GetExeDirectory ()
 
MRMESH_API MR_BIND_IGNORE std::filesystem::path GetResourcesDirectory ()
 
MRMESH_API MR_BIND_IGNORE std::filesystem::path GetFontsDirectory ()
 
MRMESH_API MR_BIND_IGNORE std::filesystem::path GetLibsDirectory ()
 
MRMESH_API MR_BIND_IGNORE std::filesystem::path GetEmbeddedPythonDirectory ()
 
MRMESH_API std::filesystem::path getUserConfigDir ()
 
MRMESH_API std::filesystem::path getUserConfigFilePath ()
 
MRMESH_API std::filesystem::path GetTempDirectory ()
 
MRMESH_API std::filesystem::path GetHomeDirectory ()
 
MRMESH_API const char * GetMRVersionString ()
 
MRMESH_API void OpenLink (const std::string &url)
 
MRMESH_API bool OpenDocument (const std::filesystem::path &path)
 
MRMESH_API std::string GetCpuId ()
 
MRMESH_API std::string GetDetailedOSName ()
 
MRMESH_API std::string getOSNoSpaces ()
 
MRMESH_API void setNewHandlerIfNeeded ()
 
MRMESH_API std::string getCurrentStacktrace ()
 returns string representation of the current stacktrace
 
MRMESH_API SystemMemory getSystemMemory ()
 return information about memory available in the system
 
MRMESH_API void setupLoggerByDefault (const std::function< void()> &customLogSinkAdder={})
 
MRMESH_API Expected< MeshterrainTriangulation (std::vector< Vector3f > points, ProgressCallback cb={})
 
MRMESH_API std::optional< UVCoord > findVertexUV (const MeshTopology &topology, VertId v, const TriCornerUVCoords &triCornerUvCoords)
 
MRMESH_API std::optional< VertUVCoords > findVertexUVs (const MeshTopology &topology, const TriCornerUVCoords &triCornerUvCoords)
 
MRMESH_API Color sampleVertexColor (const Mesh &mesh, VertId v, const MeshTexture &tex, const TriCornerUVCoords &triCornerUvCoords)
 
MRMESH_API VertColors sampleVertexColors (const Mesh &mesh, const MeshTexture &tex, const TriCornerUVCoords &triCornerUvCoords)
 
MRMESH_API bool isTIFFFile (const std::filesystem::path &path)
 
MRMESH_API Expected< TiffParametersreadTiffParameters (const std::filesystem::path &path)
 
MRMESH_API Expected< void > readRawTiff (const std::filesystem::path &path, RawTiffOutput &output)
 
MRMESH_API Expected< void > writeRawTiff (const uint8_t *bytes, const std::filesystem::path &path, const WriteRawTiffParams &params)
 
Expected< void > writeRawTiff (const uint8_t *bytes, const std::filesystem::path &path, const BaseTiffParameters &params, const AffineXf3f *xf)
 
MRMESH_API void printTimingTreeAtEnd (bool on, double minTimeSec=0.1)
 
MRMESH_API void printCurrentTimerBranch ()
 prints current timer branch
 
MRMESH_API void printTimingTree (double minTimeSec=0.1)
 
MR_BIND_IGNORE MRMESH_API void registerThreadRootTimeRecord (ThreadRootTimeRecord &root)
 installs given record in the current thread (no record must be installed before)
 
MR_BIND_IGNORE MRMESH_API void unregisterThreadRootTimeRecord (ThreadRootTimeRecord &root)
 un-installs given record in the current thread
 
MRMESH_API Mesh makeTorus (float primaryRadius=1.0f, float secondaryRadius=0.1f, int primaryResolution=16, int secondaryResolution=16, std::vector< Vector3f > *points=nullptr)
 
MRMESH_API Mesh makeOuterHalfTorus (float primaryRadius=1.0f, float secondaryRadius=0.1f, int primaryResolution=16, int secondaryResolution=16, std::vector< Vector3f > *points=nullptr)
 
MRMESH_API Mesh makeTorusWithUndercut (float primaryRadius=1.0f, float secondaryRadiusInner=0.1f, float secondaryRadiusOuter=0.2f, int primaryResolution=16, int secondaryResolution=16, std::vector< Vector3f > *points=nullptr)
 
MRMESH_API Mesh makeTorusWithSpikes (float primaryRadius=1.0f, float secondaryRadiusInner=0.1f, float secondaryRadiusOuter=0.5f, int primaryResolution=16, int secondaryResolution=16, std::vector< Vector3f > *points=nullptr)
 
MRMESH_API Mesh makeTorusWithComponents (float primaryRadius=1.0f, float secondaryRadius=0.1f, int primaryResolution=16, int secondaryResolution=16, std::vector< Vector3f > *points=nullptr)
 
MRMESH_API Mesh makeTorusWithSelfIntersections (float primaryRadius=1.0f, float secondaryRadius=0.1f, int primaryResolution=16, int secondaryResolution=16, std::vector< Vector3f > *points=nullptr)
 
template<typename T >
bool doTrianglesIntersect (Vector3< T > a, Vector3< T > b, Vector3< T > c, Vector3< T > d, Vector3< T > e, Vector3< T > f)
 
template<typename T >
bool isPointInPlane (const Vector3< T > &p, const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c)
 returns true if ABC plane contains point P
 
template<typename T >
bool isPointInLine (const Vector3< T > &p, const Vector3< T > &a, const Vector3< T > &b)
 returns true if AB line contains point P
 
template<typename T >
bool isPointInLine (const Vector2< T > &p, const Vector2< T > &a, const Vector2< T > &b)
 returns true if AB line contains point P
 
template<typename T >
bool isPointInSegm (const Vector3< T > &p, const Vector3< T > &a, const Vector3< T > &b)
 returns true if AB segment contains point P
 
template<typename T >
bool isPointInSegm (const Vector2< T > &p, const Vector2< T > &a, const Vector2< T > &b)
 returns true if AB segment contains point P
 
template<typename T >
bool isPointInTriangle (const Vector3< T > &p, const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c)
 returns true if ABC triangle contains point P
 
template<typename T >
bool isPointInTriangle (const Vector2< T > &p, const Vector2< T > &a, const Vector2< T > &b, const Vector2< T > &c)
 returns true if ABC triangle contains point P
 
template<typename T >
bool doesEdgeXySeparate (const Vector3< T > &x, const Vector3< T > &y, const Vector3< T > &z, const Vector3< T > &u, const Vector3< T > &v, const Vector3< T > &w, Vector3< T > d)
 returns true if a plane containing edge XY separates point Z from triangle UVW
 
template<typename T >
bool doTrianglesIntersectExt (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c, const Vector3< T > &d, const Vector3< T > &e, const Vector3< T > &f)
 
template<typename T >
bool doTriangleLineIntersect (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c, const Vector3< T > &d, const Vector3< T > &e)
 checks whether triangle ABC and infinite line DE intersect
 
template<typename T >
bool doTriangleSegmentIntersect (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c, const Vector3< T > &d, const Vector3< T > &e)
 checks whether triangle ABC and segment DE intersect
 
template<typename T >
Vector3< T > findTriangleSegmentIntersection (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c, const Vector3< T > &d, const Vector3< T > &e)
 this function input should have intersection
 
template<typename T >
std::optional< Vector3< T > > findTriangleTriangleIntersection (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c, const Vector3< T > &d, const Vector3< T > &e, const Vector3< T > &f)
 
template<typename T >
std::optional< TriIntersectResultrayTriangleIntersect (const Vector3< T > &oriA, const Vector3< T > &oriB, const Vector3< T > &oriC, const IntersectionPrecomputes< T > &prec)
 
template<typename T >
std::optional< TriIntersectResultrayTriangleIntersect (const Vector3< T > &oriA, const Vector3< T > &oriB, const Vector3< T > &oriC, const Vector3< T > &dir)
 
template<typename T >
bool doTrianglesOverlap (const Vector2< T > &a, const Vector2< T > &b, const Vector2< T > &c, const Vector2< T > &d, const Vector2< T > &e, const Vector2< T > &f)
 returns true if ABC and DEF overlaps or touches
 
MRMESH_API MR_BIND_IGNORE float triDist (Vector3f &p, Vector3f &q, const Vector3f s[3], const Vector3f t[3])
 
float triDist (Vector3f &p, Vector3f &q, const std::array< Vector3f, 3 > &s, const std::array< Vector3f, 3 > &t)
 computes the closest points on two triangles, and returns the squared distance between them.
 
MRMESH_API void segPoints (Vector3f &VEC, Vector3f &X, Vector3f &Y, const Vector3f &P, const Vector3f &A, const Vector3f &Q, const Vector3f &B)
 Returns closest points between an segment pair.
 
template<typename T >
circumcircleDiameterSq (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c)
 
template<typename T >
circumcircleDiameter (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c)
 
template<typename T >
Vector3< T > circumcircleCenter (const Vector3< T > &a, const Vector3< T > &b)
 Computes the center of the the triangle's 0AB circumcircle.
 
template<typename T >
Vector3< T > circumcircleCenter (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c)
 Computes the center of the the triangle's ABC circumcircle.
 
template<typename T >
bool circumballCenters (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c, T radius, Vector3< T > &centerPos, Vector3< T > &centerNeg)
 
template<typename T >
minTriangleAngleSin (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c)
 
template<typename T >
minTriangleAngle (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c)
 
template<typename T >
triangleAspectRatio (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c)
 
template<typename T >
Vector3< T > dirDblArea (const Triangle3< T > &t)
 computes directed double area of given triangle
 
template<typename T >
Vector3< T > dirDblArea (const Vector3< T > &q, const Vector3< T > &r)
 computes directed double area of triangle 0QR
 
template<typename T >
Vector3< T > dirDblArea (const Vector3< T > &p, const Vector3< T > &q, const Vector3< T > &r)
 computes directed double area of triangle PQR
 
template<typename T >
Vector3< T > normal (const Vector3< T > &q, const Vector3< T > &r)
 computes unit normal of triangle 0QR
 
template<typename T >
Vector3< T > normal (const Vector3< T > &p, const Vector3< T > &q, const Vector3< T > &r)
 computes unit normal of triangle PQR
 
template<typename T >
Vector3< T > normal (const Triangle3< T > &t)
 computes unit normal of the given triangle
 
template<typename T >
dblAreaSq (const Vector3< T > &p, const Vector3< T > &q, const Vector3< T > &r)
 computes the square of double area of given triangle
 
template<typename T >
dblArea (const Triangle3< T > &t)
 computes twice the area of given triangle
 
template<typename T >
dblArea (const Vector3< T > &p, const Vector3< T > &q, const Vector3< T > &r)
 computes twice the area of given triangle
 
template<typename T >
area (const Vector3< T > &p, const Vector3< T > &q, const Vector3< T > &r)
 computes twice the area of given triangle
 
template<typename T >
dblArea (const Vector2< T > &p, const Vector2< T > &q, const Vector2< T > &r)
 computes twice the area of given triangle
 
template<typename T >
area (const Vector2< T > &p, const Vector2< T > &q, const Vector2< T > &r)
 computes twice the area of given triangle
 
template<typename T >
Triangle3< T > makeDegenerate (const Triangle3< T > &t)
 make degenerate triangle (all 3 points on a line) that maximally resembles the input one and has the same centroid
 
template<typename T >
Triangle3< T > triangleWithNormal (const Triangle3< T > &t, const Vector3< T > &n)
 
template<typename T >
dihedralAngleSin (const Vector3< T > &leftNorm, const Vector3< T > &rightNorm, const Vector3< T > &edgeVec)
 
template<typename T >
dihedralAngleCos (const Vector3< T > &leftNorm, const Vector3< T > &rightNorm)
 
template<typename T >
dihedralAngle (const Vector3< T > &leftNorm, const Vector3< T > &rightNorm, const Vector3< T > &edgeVec)
 
template<typename T >
std::optional< Vector2< T > > posFromTriEdgeLengths (T a, T b, T c)
 
template<typename T >
std::optional< T > quadrangleOtherDiagonal (T a, T b, T c, T a1, T b1)
 
template<typename T >
tanSqOfHalfAngle (T a, T b, T c)
 
template<typename T >
cotan (const Triangle3< T > &t, T absMaxVal=std::numeric_limits< T >::max())
 
template<typename T >
cotan (T a, T b, T c)
 
template<typename T >
std::optional< Vector3< T > > gradientInTri (const Vector3< T > &b, const Vector3< T > &c, T vb, T vc)
 
template<typename T >
std::optional< Vector3< T > > gradientInTri (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c, T va, T vb, T vc)
 
template<typename T >
std::optional< T > findTriExitPos (const Vector3< T > &b, const Vector3< T > &c, const Vector3< T > &grad)
 
template<typename T >
std::optional< Vector3< T > > tangentPlaneNormalToSpheres (const Vector3< T > &b, const Vector3< T > &c, T rb, T rc)
 
template<typename T >
std::optional< Plane3< T > > tangentPlaneToSpheres (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c, T ra, T rb, T rc)
 
MRMESH_API std::vector< FaceFaceFacefindTripleFaceIntersections (const MeshTopology &topology, const ContinuousContours &selfContours)
 
MRMESH_API Expected< std::vector< EdgeLoop > > detectBasisTunnels (const MeshPart &mp, EdgeMetric metric={}, ProgressCallback progressCallback={})
 
MRMESH_API Expected< EdgeLoop > findSmallestMetricCoLoop (const MeshTopology &topology, const EdgeLoop &loop, const EdgeMetric &metric, const FaceBitSet *region=nullptr)
 
MRMESH_API Expected< EdgeLoop > findShortestCoLoop (const MeshPart &mp, const EdgeLoop &loop)
 same as findMinimalCoLoop with euclidean edge length metric
 
MRMESH_API Expected< FaceBitSetdetectTunnelFaces (const MeshPart &mp, const DetectTunnelSettings &settings={})
 
template<size_t I, typename T >
constexpr const T & get (const Vector2< T > &v) noexcept
 
template<size_t I, typename T >
constexpr T & get (Vector2< T > &v) noexcept
 
template<size_t I, typename T >
constexpr const T & get (const Vector3< T > &v) noexcept
 
template<size_t I, typename T >
constexpr T & get (Vector3< T > &v) noexcept
 
template<size_t I, typename T >
constexpr const T & get (const Vector4< T > &v) noexcept
 
template<size_t I, typename T >
constexpr T & get (Vector4< T > &v) noexcept
 
template<size_t I, typename T >
constexpr const Matrix2< T >::VectorType & get (const Matrix2< T > &m) noexcept
 
template<size_t I, typename T >
constexpr Matrix2< T >::VectorType & get (Matrix2< T > &m) noexcept
 
template<size_t I, typename T >
constexpr const Matrix3< T >::VectorType & get (const Matrix3< T > &m) noexcept
 
template<size_t I, typename T >
constexpr Matrix3< T >::VectorType & get (Matrix3< T > &m) noexcept
 
template<size_t I, typename T >
constexpr const Matrix4< T >::VectorType & get (const Matrix4< T > &m) noexcept
 
template<size_t I, typename T >
constexpr Matrix4< T >::VectorType & get (Matrix4< T > &m) noexcept
 
template<size_t I, typename V >
constexpr const std::tuple_element< I, AffineXf< V > >::type & get (const AffineXf< V > &m) noexcept
 
template<size_t I, typename V >
constexpr std::tuple_element< I, AffineXf< V > >::type & get (AffineXf< V > &m) noexcept
 
template<size_t I, typename T >
constexpr int get (const MR::Id< T > &id) noexcept
 
template<size_t I, typename T >
constexpr int & get (MR::Id< T > &id) noexcept
 
template<size_t I>
constexpr const uint8_t & get (const Color &c) noexcept
 
template<size_t I>
constexpr uint8_t & get (Color &c) noexcept
 
MRMESH_API std::optional< VertBitSetpointUniformSampling (const PointCloud &pointCloud, const UniformSamplingSettings &settings)
 
MRMESH_API std::optional< PointCloudmakeUniformSampledCloud (const PointCloud &pointCloud, const UniformSamplingSettings &settings)
 
template<typename I >
TypedBitSet< I > findRootsBitSet (const UnionFind< I > &uf, const TypedBitSet< I > *region=nullptr)
 
template<typename I >
TypedBitSet< I > findComponentBitSet (UnionFind< I > &uf, I a, const TypedBitSet< I > *region=nullptr)
 
MRMESH_API Expected< MeshuniteManyMeshes (const std::vector< const Mesh * > &meshes, const UniteManyMeshesParams &params={})
 
template<UnitEnum E>
const UnitInfogetUnitInfo (E unit)=delete
 
template<UnitEnum E>
bool unitsAreEquivalent (E a, E b)
 
template<UnitEnum E>
bool unitsAreEquivalent (const std::optional< E > &a, const std::optional< E > &b)
 
template<UnitEnum E, typename T >
detail::Units::MakeFloatingPoint< T > convertUnits (E from, E to, const T &value)
 
template<UnitEnum E, typename T >
detail::Units::MakeFloatingPoint< T > convertUnits (const std::optional< E > &from, const std::optional< E > &to, const T &value)
 
template<typename T , typename I >
MR_BIND_IGNORE auto begin (const Vector< T, I > &a)
 
template<typename T , typename I >
MR_BIND_IGNORE auto begin (Vector< T, I > &a)
 
template<typename T , typename I >
MR_BIND_IGNORE auto end (const Vector< T, I > &a)
 
template<typename T , typename I >
MR_BIND_IGNORE auto end (Vector< T, I > &a)
 
template<typename T >
getAt (const std::vector< T > &a, size_t id, T def={})
 given some std::vector and a key, returns the value associated with the key, or default value if key is invalid or outside the std::vector
 
template<typename T , typename I >
getAt (const Vector< T, I > &a, I id, T def={})
 given some Vector and a key, returns the value associated with the key, or default value if key is invalid or outside the Vector
 
ViewportMask operator& (ViewportMask a, ViewportMask b)
 
ViewportMask operator| (ViewportMask a, ViewportMask b)
 
ViewportMask operator^ (ViewportMask a, ViewportMask b)
 
bool operator== (const ViewportIterator &a, const ViewportIterator &b)
 
auto begin (ViewportMask mask)
 
auto end (ViewportMask)
 
OutEdge opposite (OutEdge e)
 
MRMESH_API void expandVoxelsMask (VoxelBitSet &mask, const VolumeIndexer &indexer, int expansion=1)
 expands VoxelBitSet with given number of steps
 
MRMESH_API void shrinkVoxelsMask (VoxelBitSet &mask, const VolumeIndexer &indexer, int shrinkage=1)
 shrinks VoxelBitSet with given number of steps
 
MRMESH_API Expected< void > decompressZip (const std::filesystem::path &zipFile, const std::filesystem::path &targetFolder, const char *password=nullptr)
 decompresses given zip-file into given folder
 
MRMESH_API Expected< void > decompressZip (std::istream &zipStream, const std::filesystem::path &targetFolder, const char *password=nullptr)
 decompresses given binary stream (containing the data of a zip file only) into given folder
 
MRMESH_API Expected< void > compressZip (const std::filesystem::path &zipFile, const std::filesystem::path &sourceFolder, const std::vector< std::filesystem::path > &excludeFiles={}, const char *password=nullptr, ProgressCallback cb={})
 compresses given folder in given zip-file
 
template<typename E >
void throwExceptionFromExpected (const E &err)
 
template<typename T >
decltype(auto) expectedValueOrThrow (T &&e)
 
template<typename R , typename E , typename... Args>
auto decorateExpected (std::function< Expected< R, E >(Args...)> &&f) -> std::function< R(Args...)>
 
template<typename F >
auto decorateExpected (F &&f)
 
template<typename R , typename T , typename... Args>
auto decorateExpected (R(T::*memFunction)(Args...))
 
MRSYMBOLMESH_API Expected< MeshalignTextToMesh (const Mesh &mesh, const TextMeshAlignParams &params)
 Creates symbol mesh and aligns it to given surface.
 
MRSYMBOLMESH_API Expected< MeshbendTextAlongCurve (const CurveFunc &curve, const BendTextAlongCurveParams &params)
 
MRSYMBOLMESH_API Expected< MeshbendTextAlongCurve (const CurvePoints &curve, const BendTextAlongCurveParams &params)
 Creates symbol mesh and deforms it along given curve.
 
MRSYMBOLMESH_API Expected< MeshbendTextAlongSurfacePath (const Mesh &mesh, const MeshTriPoint &start, const SurfacePath &path, const MeshTriPoint &end, const BendTextAlongCurveParams &params)
 Creates symbol mesh and deforms it along given surface path: start->path->end.
 
MRSYMBOLMESH_API Expected< MeshbendTextAlongSurfacePath (const Mesh &mesh, const SurfacePath &path, const BendTextAlongCurveParams &params)
 Creates symbol mesh and deforms it along given surface path.
 
MRSYMBOLMESH_API Expected< Contours2f > createSymbolContours (const SymbolMeshParams &params)
 
MRSYMBOLMESH_API Expected< MeshcreateSymbolsMesh (const SymbolMeshParams &params)
 
MRVIEWER_API void reserveKeyEvent (ImGuiKey key)
 
void AppendHistory (std::shared_ptr< HistoryAction > action)
 Appends given history action to viewer's global history store.
 
template<class HistoryActionType , typename... Args>
void AppendHistory (Args &&... args)
 Constructs history action from given arguments, than appends it to viewer's global history store.
 
MRVIEWER_API void FilterHistoryByCondition (HistoryStackFilter filteringCondition, bool deepFiltering=true)
 
MRVIEWER_API Expected< std::string > GetClipboardText ()
 
MRVIEWER_API Expected< void > SetClipboardText (const std::string &text)
 
MRVIEWER_API void createShader (const std::string &shader_name, const std::string &vert_source, const std::string &frag_source, GLuint &prog_id, const DisabledWarnings &suppressedWarns={})
 
MRVIEWER_API void destroyShader (GLuint id)
 
std::unique_ptr< IDragDropHandlergetDragDropHandler (GLFWwindow *window)
 
MRVIEWER_API std::filesystem::path openFileDialog (const FileParameters &params={})
 
MRVIEWER_API void openFileDialogAsync (std::function< void(const std::filesystem::path &)> callback, const FileParameters &params={})
 
MRVIEWER_API std::vector< std::filesystem::path > openFilesDialog (const FileParameters &params={})
 
MRVIEWER_API void openFilesDialogAsync (std::function< void(const std::vector< std::filesystem::path > &)> callback, const FileParameters &params={})
 
MRVIEWER_API std::filesystem::path openFolderDialog (std::filesystem::path baseFolder={})
 
MRVIEWER_API void openFolderDialogAsync (std::function< void(const std::filesystem::path &)> callback, std::filesystem::path baseFolder={})
 
MRVIEWER_API std::vector< std::filesystem::path > openFoldersDialog (std::filesystem::path baseFolder={})
 
MRVIEWER_API std::filesystem::path saveFileDialog (const FileParameters &params={})
 
MRVIEWER_API void saveFileDialogAsync (std::function< void(const std::filesystem::path &)> callback, const FileParameters &params={})
 
MRVIEWER_API Json::Value GetSystemInfoJson ()
 
MRVIEWER_API int getGlfwModPrimaryCtrl ()
 
MRVIEWER_API const char * getSuperModName ()
 
MRVIEWER_API const char * getAltModName ()
 
int loadGL ()
 
int getMSAAPow (int msaa)
 
MRVIEWER_API void setTextureWrapType (WrapType wrapType, GLenum type=GL_TEXTURE_2D)
 
MRVIEWER_API void setTextureFilterType (FilterType filterType, GLenum type=GL_TEXTURE_2D)
 
MRVIEWER_API std::string getLinesVertexShader ()
 
MRVIEWER_API std::string getLinesFragmentShader (ShaderTransparencyMode mode)
 
MRVIEWER_API std::string getLinesJointVertexShader ()
 
MRVIEWER_API std::string getLinesJointFragmentShader ()
 
MRVIEWER_API std::string getLinesPickerVertexShader ()
 
MRVIEWER_API std::string getLinesJointPickerVertexShader ()
 
MRVIEWER_API std::string getMeshVerticesShader ()
 
MRVIEWER_API std::string getMeshFragmentShader (bool gl4, ShaderTransparencyMode mode, bool msaaEnabled)
 
MRVIEWER_API std::string getMeshFragmentShaderArgumetsBlock ()
 
MRVIEWER_API std::string getMeshFragmentShaderColoringBlock ()
 
std::string getMouseModeString (MouseMode mode)
 
MRVIEWER_API void excludeLoneEdgesWithHistory (const std::shared_ptr< ObjectMesh > &objMesh)
 
MRVIEWER_API void excludeAllEdgesWithHistory (const std::shared_ptr< ObjectMesh > &objMesh)
 
MRVIEWER_API void mapEdgesWithHistory (const std::shared_ptr< ObjectMesh > &objMesh, const WholeEdgeMap &emap)
 
MRVIEWER_API void mapEdgesWithHistory (const std::shared_ptr< ObjectMesh > &objMesh, const WholeEdgeHashMap &emap)
 
MRVIEWER_API void mapEdgesWithHistory (const std::shared_ptr< ObjectMesh > &objMesh, const UndirectedEdgeBMap &emap)
 
MRVIEWER_API void packPointsWithHistory (const std::shared_ptr< ObjectPoints > &objPoints, Reorder reoder)
 
MRVIEWER_API void packPointsWithHistory (const std::shared_ptr< ObjectPoints > &objPoints, Reorder reoder, VertBitSet newValidVerts)
 
MRVIEWER_API Expected< LoadedObject > makeObjectTreeFromFolder (const std::filesystem::path &folder, bool dicomOnly, const ProgressCallback &callback={})
 load all supported files from given folder in new container object
 
MRVIEWER_API Expected< LoadedObject > makeObjectTreeFromZip (const std::filesystem::path &zipPath, const ProgressCallback &callback={})
 load all supported files from given zip-archive in new container object
 
MRVIEWER_API HoleEdgePoint findClosestToMouseHoleEdge (const Vector2i &mousePos, const std::shared_ptr< ObjectMeshHolder > &objMesh, const std::vector< EdgeId > &holeRepresentativeEdges, float accuracy=5.5f, bool attractToVert=false, float cornerAccuracy=10.5f)
 
MRVIEWER_API HoleEdgePoint findClosestToMouseEdge (const Vector2i &mousePos, const std::vector< std::shared_ptr< ObjectLinesHolder > > &objsLines, float accuracy=5.5f)
 
HoleEdgePoint findClosestToMouseEdge (const Vector2i &mousePos, const std::vector< std::shared_ptr< ObjectLines > > &objsLines, float accuracy=5.5f)
 
MRVIEWER_API std::string getPointsVertexShader ()
 
MRVIEWER_API std::string getPointsFragmentShader (ShaderTransparencyMode mode)
 
template<typename F , typename... Args>
void pythonAppendOrRun (F func, Args &&... args)
 
template<typename R , typename... Args>
auto pythonRunFromGUIThread (std::function< R(Args...)> &&f) -> std::function< void(Args...)>
 
template<typename F >
auto pythonRunFromGUIThread (F &&f)
 
template<typename R , typename T , typename... Args>
auto pythonRunFromGUIThread (R(T::*memFunction)(Args...))
 
MRVIEWER_API GLint bindVertexAttribArray (const BindVertexAttribArraySettings &settings)
 
template<typename T , template< typename, typename... > class C, typename... args>
GLint bindVertexAttribArray (const GLuint program_shader, const char *name, GlBuffer &buf, const C< T, args... > &V, int baseTypeElementsNumber, bool refresh, bool forceUse=false)
 
template<typename T , std::size_t N>
GLint bindVertexAttribArray (const GLuint program_shader, const char *name, GlBuffer &buf, const std::array< T, N > &V, int baseTypeElementsNumber, bool refresh, bool forceUse=false)
 
int getDepthFunctionLess (DepthFunction funcType)
 
int getDepthFunctionLEqual (DepthFunction funcType)
 
MRVIEWER_API void bindDepthPeelingTextures (GLuint shaderId, const TransparencyMode &tMode, GLenum startGLTextureIndex)
 
MRVIEWER_API void objectPreRenderSetup (const TransparencyMode &tMode, RenderModelPassMask desiredPass, bool deptTesting)
 
MRVIEWER_API void objectPostRenderSetup (const TransparencyMode &tMode, RenderModelPassMask desiredPass, bool deptTesting)
 
MRVIEWER_API Vector2i calcTextureRes (int bufferSize, int maxTextWidth)
 
MRVIEWER_API void renderImGui (const Vector2i &resolution, const std::function< void()> &configureFunc, const std::function< void()> &drawFunc)
 
MRVIEWER_API const Vector2fGetAvailableLineWidthRange ()
 
MRVIEWER_API Image renderToImage (const Vector2i &resolution, const std::optional< Color > &backgroundColor, const std::function< void(FramebufferData *framebuffer)> &drawFunc)
 
MRVIEWER_API RibbonConfig createRibbonConfigFromJson (const Json::Value &root)
 
MRVIEWER_API void applyRibbonConfig (const RibbonConfig &config)
 
MRVIEWER_API void pushNotification (const RibbonNotification &notification)
 
MRVIEWER_API Expected< void > saveObjectToFile (const Object &obj, const std::filesystem::path &filename, const SaveObjectSettings &settings={})
 save visual object (mesh, lines, points or voxels) to file
 
MRVIEWER_API std::vector< FlatTreegetFlatSubtrees (const std::vector< std::shared_ptr< Object > > &objs)
 
MRVIEWER_API void mergeSubtree (TypedFlatTree subtree)
 merge objects of same type in the object tree
 
MRVIEWER_API void mergeSubtree (std::shared_ptr< Object > rootObj)
 
MRVIEWER_API bool sceneReorderWithUndo (const SceneReorder &task)
 
MRVIEWER_API bool moveAllChildrenWithUndo (Object &oldParent, Object &newParent, const std::string &historyName="Move Children")
 
template<typename ObjectT >
std::string getNObjectsLine (unsigned n)
 
template<typename ObjectT , bool visualRepresentationCheck, bool modelCheck>
std::string sceneSelectedExactly (const std::vector< std::shared_ptr< const Object > > &objs, unsigned n)
 
template<typename ObjectT , bool visualRepresentationCheck, bool modelCheck>
std::string sceneSelectedAtLeast (const std::vector< std::shared_ptr< const Object > > &objs, unsigned n)
 
float MRVIEWER_API SelectCurvaturePreference (PathPreference *pp)
 
MRVIEWER_API BitSet calculateSelectedPixelsInsidePolygon (const Contour2f &screenPoints)
 
MRVIEWER_API BitSet calculateSelectedPixelsNearPolygon (const Contour2f &screenPoints, float radiusPix)
 
MRVIEWER_API FaceBitSet findIncidentFaces (const Viewport &viewport, const BitSet &pixBs, const ObjectMesh &obj, bool onlyVisible=false, bool includeBackfaces=true, const std::vector< ObjectMesh * > *occludingMeshes=nullptr)
 
MRVIEWER_API void appendGPUVisibleFaces (const Viewport &viewport, const BitSet &pixBs, const std::vector< std::shared_ptr< ObjectMesh > > &objects, std::vector< FaceBitSet > &visibleFaces, bool includeBackfaces=true)
 
MRVIEWER_API VertBitSet findVertsInViewportArea (const Viewport &viewport, const BitSet &bsVec, const ObjectPoints &obj, bool includeBackfaces=true, bool onlyVisible=false)
 
MRVIEWER_API std::string getPickerFragmentShader (bool points, bool cornerMode=true)
 
MRVIEWER_API std::string getFragmentShaderClippingBlock ()
 
MRVIEWER_API std::string getFragmentShaderPointSizeBlock ()
 
MRVIEWER_API std::string getFragmentShaderOnlyOddBlock (bool sampleMask)
 
MRVIEWER_API std::string getFragmentShaderHeaderBlock (bool gl4, bool alphaSort)
 
MRVIEWER_API std::string getFragmentShaderEndBlock (ShaderTransparencyMode transparencyMode)
 
MRVIEWER_API std::string getShaderMainBeginBlock (bool addDepthPeelSamplers)
 
MRVIEWER_API void showModal (const std::string &error, NotificationType type)
 Check if menu is available and if it is, shows modal window.
 
void showError (const std::string &error)
 
template<UnitEnum E>
const UnitToStringParams< E > & getDefaultUnitParams ()
 
template<UnitEnum E>
void setDefaultUnitParams (const UnitToStringParams< E > &newParams)
 
MRVIEWER_API std::string_view toString (DegreesMode mode)
 
template<UnitEnum E, detail::Units::Scalar T>
MRVIEWER_API std::string valueToString (T value, const UnitToStringParams< E > &params=getDefaultUnitParams< E >())
 
template<detail::Units::Scalar T>
MRVIEWER_API std::string valueToString (T value, const VarUnitToStringParams &params)
 
template<detail::Units::Scalar T>
MRVIEWER_API int guessPrecision (T value)
 
template<detail::Units::Scalar T>
MRVIEWER_API int guessPrecision (T min, T max)
 
template<typename T >
requires (VectorTraits<T>::size > 1 && detail::Units::Scalar<typename VectorTraits<T>::BaseType>)
int guessPrecision (T value)
 
template<typename T >
requires (VectorTraits<T>::size > 1 && detail::Units::Scalar<typename VectorTraits<T>::BaseType>)
int guessPrecision (T min, T max)
 
template<UnitEnum E, detail::Units::Scalar T>
MRVIEWER_API std::string valueToImGuiFormatString (T value, const UnitToStringParams< E > &params=getDefaultUnitParams< E >())
 
template<detail::Units::Scalar T>
MRVIEWER_API std::string valueToImGuiFormatString (T value, const VarUnitToStringParams &params)
 
MRVIEWER_API int launchDefaultViewer (const Viewer::LaunchParams &params, const ViewerSetup &setup)
 
MRVIEWER_API ViewergetViewerInstance ()
 returns global instance of Viewer class
 
MRVIEWER_API void incrementForceRedrawFrames (int i=1, bool swapOnLastOnly=false)
 
ImVec2 position (const ViewportRectangle &rect)
 
ImVec2 size (const ViewportRectangle &rect)
 
template<typename T >
Vector4< T > toVec4 (const ViewportRectangle &rect)
 
MRVIEWER_API Mesh makeCornerControllerMesh (float size, float cornerRatio=0.2f)
 Makes cube mesh with specified face structure for each 3-rank corner, each 2-rank corner and each side:
.
 
MRVIEWER_API Mesh makeCornerControllerRotationArrowMesh (float size, const Vector2f &shift, bool ccw)
 Makes planar arrow mesh that will be used for controlling in plane rotation in corner near cube controller.
 
MRVIEWER_API VertUVCoords makeCornerControllerUVCoords (float cornerRatio=0.2f)
 Creates UV coordinates for makeCornerControllerMesh output mesh for texture like:
"Right"" Left "
" Top ""Bottom"
"Front"" Back ".
 
MRVIEWER_API Vector< MeshTexture, TextureIdloadCornerControllerTextures ()
 Loads 3 textures for corner controller: default, side hovered, corner hovered.
 
MRVIEWER_API const TexturePerFacegetCornerControllerTexureMap ()
 
MRVIEWER_API RegionId getCornerControllerRegionByFace (FaceId face)
 returns region id of corner controller by its face
 
MRVIEWER_API TexturePerFace getCornerControllerHoveredTextureMap (RegionId rId)
 returns textures map with region faces hovered
 
MRVIEWER_API void updateCurrentViewByControllerRegion (CornerControllerObject::PickedIds pickedId)
 setup camera for selected viewport by corner controller region
 
bool operator== (const SegmEndColors &a, const SegmEndColors &b)
 
bool operator== (const ViewportPointsWithColors &a, const ViewportPointsWithColors &b)
 
MRVIEWER_API void deserializeFromJson (const Json::Value &root, VisualObjectTagManager &manager)
 
MRVIEWER_API void serializeToJson (const VisualObjectTagManager &manager, Json::Value &root)
 
MRVIEWER_API std::string getTrivialVertexShader ()
 
MRVIEWER_API std::string getVolumeFragmentShader ()
 
MRVIEWER_API std::string getVolumePickerFragmentShader ()
 
MRVIEWER_API Expected< Json::Value > parseResponse (const Json::Value &response)
 
OriginAndDimensions calcOriginAndDimensions (const Box3f &box, float voxelSize)
 computes origin and dimensions of voxel-grid to cover given 3D box with given spacing (voxelSize)
 
MRVOXELS_API float voxelizeAndComputeVolume (const std::vector< std::shared_ptr< Mesh > > &meshes, const AffineXf3f &xf, const Vector3f &voxelSize)
 
MRVOXELS_API size_t heapBytes (const FloatGrid &grid)
 returns the amount of heap memory occupied by grid
 
MRVOXELS_API FloatGrid resampled (const FloatGrid &grid, float voxelScale, ProgressCallback cb={})
 resample this grid to fit voxelScale
 
MRVOXELS_API FloatGrid resampled (const FloatGrid &grid, const Vector3f &voxelScale, ProgressCallback cb={})
 resample this grid to fit voxelScale
 
MRVOXELS_API FloatGrid cropped (const FloatGrid &grid, const Box3i &box, ProgressCallback cb={})
 returns cropped grid
 
MRVOXELS_API size_t countVoxelsWithValuePred (const FloatGrid &grid, const std::function< bool(float)> &pred)
 returns number of velxes in the grid with pred(value) == true
 
MRVOXELS_API size_t countVoxelsWithValueLess (const FloatGrid &grid, float value)
 returns number of voxels in the grid with value less than given
 
MRVOXELS_API size_t countVoxelsWithValueGreater (const FloatGrid &grid, float value)
 returns number of voxels in the grid with value greater than given
 
MRVOXELS_API void gaussianFilter (FloatGrid &grid, int width, int iters, ProgressCallback cb={})
 returns grid with gaussian filter applied
 
MRVOXELS_API FloatGrid gaussianFiltered (const FloatGrid &grid, int width, int iters, ProgressCallback cb={})
 
MRVOXELS_API float getValue (const FloatGrid &grid, const Vector3i &p)
 returns the value at given voxel
 
MRVOXELS_API void setValue (FloatGrid &grid, const Vector3i &p, float value)
 
MRVOXELS_API void setValue (FloatGrid &grid, const VoxelBitSet &region, float value)
 
MRVOXELS_API Box3i findActiveBounds (const FloatGrid &grid)
 
MRVOXELS_API void setValues (FloatGrid &grid, const VoxelBitSet &region, const std::vector< float > &values)
 
MRVOXELS_API void setLevelSetType (FloatGrid &grid)
 sets type of this grid as LEVEL SET (for normal flipping)
 
MRVOXELS_API FloatGrid operator+= (FloatGrid &a, FloatGrid &&b)
 
MRVOXELS_API FloatGrid operator-= (FloatGrid &a, FloatGrid &&b)
 
MRVOXELS_API FloatGrid operator*= (FloatGrid &a, FloatGrid &&b)
 
MRVOXELS_API FloatGrid operator+ (const FloatGrid &a, const FloatGrid &b)
 
MRVOXELS_API FloatGrid operator- (const FloatGrid &a, const FloatGrid &b)
 
MRVOXELS_API FloatGrid operator* (const FloatGrid &a, const FloatGrid &b)
 
MRVOXELS_API Expected< MeshmarchingCubes (const SimpleVolume &volume, const MarchingCubesParams &params={})
 
MRVOXELS_API Expected< TriMeshmarchingCubesAsTriMesh (const SimpleVolume &volume, const MarchingCubesParams &params={})
 
MRVOXELS_API Expected< MeshmarchingCubes (const SimpleVolumeMinMax &volume, const MarchingCubesParams &params={})
 
MRVOXELS_API Expected< TriMeshmarchingCubesAsTriMesh (const SimpleVolumeMinMax &volume, const MarchingCubesParams &params={})
 
MRVOXELS_API Expected< MeshmarchingCubes (const VdbVolume &volume, const MarchingCubesParams &params={})
 
MRVOXELS_API Expected< TriMeshmarchingCubesAsTriMesh (const VdbVolume &volume, const MarchingCubesParams &params={})
 
MRVOXELS_API Expected< MeshmarchingCubes (const FunctionVolume &volume, const MarchingCubesParams &params={})
 
MRVOXELS_API Expected< TriMeshmarchingCubesAsTriMesh (const FunctionVolume &volume, const MarchingCubesParams &params={})
 
MRVOXELS_API Expected< MeshmarchingCubes (const SimpleBinaryVolume &volume, const MarchingCubesParams &params={})
 
MRVOXELS_API Expected< TriMeshmarchingCubesAsTriMesh (const SimpleBinaryVolume &volume, const MarchingCubesParams &params={})
 
MRVOXELS_API Expected< SimpleVolumeMinMaxmeshToDistanceVolume (const MeshPart &mp, const MeshToDistanceVolumeParams &params)
 makes SimpleVolume filled with (signed or unsigned) distances from Mesh with given settings
 
MRVOXELS_API FunctionVolume meshToDistanceFunctionVolume (const MeshPart &mp, const MeshToDistanceVolumeParams &params)
 makes FunctionVolume representing (signed or unsigned) distances from Mesh with given settings
 
MRVOXELS_API Expected< SimpleBinaryVolumemakeCloseToMeshVolume (const MeshPart &mp, const CloseToMeshVolumeParams &params)
 makes a binary volume with close-to-surface predicate values according to the given parameters
 
MRVOXELS_API Expected< SimpleVolumeMinMaxmeshRegionToIndicatorVolume (const Mesh &mesh, const FaceBitSet &region, float offset, const DistanceVolumeParams &params)
 
MRVOXELS_API Expected< std::array< SimpleVolumeMinMax, 3 > > meshToDirectionVolume (const MeshToDirectionVolumeParams &params)
 
template<typename VolumeType = VdbVolume>
MRVOXELS_API Expected< VertBitSetmoveMeshToVoxelMaxDeriv (Mesh &mesh, const AffineXf3f &meshXf, const VolumeType &volume, const AffineXf3f &volumeXf, const MoveMeshToVoxelMaxDerivSettings &settings, ProgressCallback callback={})
 
template MRVOXELS_API Expected< VertBitSetmoveMeshToVoxelMaxDeriv< VdbVolume > (Mesh &mesh, const AffineXf3f &meshXf, const VdbVolume &volume, const AffineXf3f &volumeXf, const MoveMeshToVoxelMaxDerivSettings &settings, ProgressCallback callback)
 
template MRVOXELS_API Expected< VertBitSetmoveMeshToVoxelMaxDeriv< SimpleVolumeMinMax > (Mesh &mesh, const AffineXf3f &meshXf, const SimpleVolumeMinMax &volume, const AffineXf3f &volumeXf, const MoveMeshToVoxelMaxDerivSettings &settings, ProgressCallback callback)
 
template MRVOXELS_API Expected< VertBitSetmoveMeshToVoxelMaxDeriv< FunctionVolume > (Mesh &mesh, const AffineXf3f &meshXf, const FunctionVolume &volume, const AffineXf3f &volumeXf, const MoveMeshToVoxelMaxDerivSettings &settings, ProgressCallback callback)
 
MRVOXELS_API const std::string & defaultSerializeVoxelsFormat ()
 
MRVOXELS_API void setDefaultSerializeVoxelsFormat (std::string newFormat)
 
MRVOXELS_API float suggestVoxelSize (const MeshPart &mp, float approxNumVoxels)
 computes size of a cubical voxel to get approximately given number of voxels during rasterization
 
MRVOXELS_API Expected< MeshoffsetMesh (const MeshPart &mp, float offset, const OffsetParameters &params={})
 
MRVOXELS_API Expected< MeshdoubleOffsetMesh (const MeshPart &mp, float offsetA, float offsetB, const OffsetParameters &params={})
 
MRVOXELS_API Expected< MeshmcOffsetMesh (const MeshPart &mp, float offset, const OffsetParameters &params={}, Vector< VoxelId, FaceId > *outMap=nullptr)
 
MRVOXELS_API Expected< MeshmcShellMeshRegion (const Mesh &mesh, const FaceBitSet &region, float offset, const BaseShellParameters &params, Vector< VoxelId, FaceId > *outMap=nullptr)
 
MRVOXELS_API Expected< MeshsharpOffsetMesh (const MeshPart &mp, float offset, const SharpOffsetParameters &params={})
 
MRVOXELS_API Expected< MeshgeneralOffsetMesh (const MeshPart &mp, float offset, const GeneralOffsetParameters &params)
 
MRVOXELS_API Expected< MeshthickenMesh (const Mesh &mesh, float offset, const GeneralOffsetParameters &params={}, const PartMapping &map={})
 mapping between original mesh and thicken result
 
MRVOXELS_API Expected< MeshoffsetOneDirection (const MeshPart &mp, float offset, const GeneralOffsetParameters &params={})
 
MRVOXELS_API Expected< MeshoffsetPolyline (const Polyline3 &polyline, float offset, const OffsetParameters &params={})
 
MRVOXELS_API void translateToZero (openvdb::FloatGrid &grid)
 
template<typename GridT >
RangeSize calculateRangeSize (const GridT &grid)
 
MRVOXELS_API Expected< MeshpartialOffsetMesh (const MeshPart &mp, float offset, const GeneralOffsetParameters &params={})
 
MRVOXELS_API Expected< SimpleVolumepointsToDistanceVolume (const PointCloud &cloud, const PointsToDistanceVolumeParams &params)
 makes SimpleVolume filled with signed distances to points with normals
 
MRVOXELS_API FunctionVolume pointsToDistanceFunctionVolume (const PointCloud &cloud, const PointsToDistanceVolumeParams &params)
 makes FunctionVolume representing signed distances to points with normals
 
MRVOXELS_API Expected< VertColorscalcAvgColors (const PointCloud &cloud, const VertColors &colors, const VertCoords &tgtPoints, const VertBitSet &tgtVerts, float sigma, const ProgressCallback &cb={})
 
MRVOXELS_API Expected< MeshpointsToMeshFusion (const PointCloud &cloud, const PointsToMeshParameters &params)
 
MRVOXELS_API Expected< FloatGridpolylineToDistanceField (const Polyline3 &polyline, const PolylineToDistanceVolumeParams &params)
 convert polyline to voxels distance field
 
MRVOXELS_API Expected< VdbVolumepolylineToVdbVolume (const Polyline3 &polyline, const PolylineToDistanceVolumeParams &params)
 convert polyline to VDB volume
 
MRVOXELS_API Expected< SimpleVolumepolylineToSimpleVolume (const Polyline3 &polyline, const PolylineToVolumeParams &params)
 convert polyline to simple volume
 
MRVOXELS_API Expected< FunctionVolumepolylineToFunctionVolume (const Polyline3 &polyline, const PolylineToVolumeParams &params)
 convert polyline to function volume
 
MRVOXELS_API Expected< MeshrebuildMesh (const MeshPart &mp, const RebuildMeshSettings &settings)
 
MRVOXELS_API std::function< float(const char *)> getTypeConverter (ScalarType scalarType, Uint64 range, Int64 min)
 
template<typename F >
std::invoke_result_t< F, int > visitScalarType (F &&f, ScalarType scalarType, const char *c)
 More general template to pass a single value of specified format scalarType to a generic function f.
 
MRVOXELS_API void sortScansByOrder (std::vector< std::filesystem::path > &scans, std::vector< SliceInfo > &zOrder)
 Sort scan files in given vector by given slice information.
 
MRVOXELS_API void putScanFileNameInZ (const std::vector< std::filesystem::path > &scans, std::vector< SliceInfo > &zOrder)
 Read layer heights from given scan file names.
 
MRVOXELS_API void sortScanFilesByName (std::vector< std::filesystem::path > &scans)
 Sort scan files in given vector by names (respect numbers in it)
 
MRVOXELS_API Box3f computeWorkArea (const Polyline3 &toolpath, const MeshPart &tool)
 Compute bounding box for swept volume for given tool and toolpath.
 
MRVOXELS_API Box3i computeGridBox (const Box3f &workArea, float voxelSize)
 Compute required voxel volume's dimensions for given work area.
 
MRVOXELS_API Expected< MeshcomputeSweptVolumeWithMeshMovement (const ComputeSweptVolumeParameters &params)
 
MRVOXELS_API Expected< MeshcomputeSweptVolumeWithDistanceVolume (const ComputeSweptVolumeParameters &params)
 
MRVOXELS_API Expected< MeshcomputeSweptVolumeWithCustomToolDistance (IComputeToolDistance &comp, const ComputeSweptVolumeParameters &params)
 
MRVOXELS_API Expected< std::array< SimpleVolumeMinMax, 3 > > teethMaskToDirectionVolume (const VdbVolume &volume, const std::vector< int > &additionalIds={})
 A shortcut for TeethMaskToDirectionVolumeConvertor::create and TeethMaskToDirectionVolumeConvertor::convertAll.
 
MRVOXELS_API Expected< ToolPathResultconstantZToolPath (const MeshPart &mp, const ToolPathParams &params)
 
MRVOXELS_API Expected< ToolPathResultlacingToolPath (const MeshPart &mp, const ToolPathParams &params, Axis cutDirection)
 
MRVOXELS_API Expected< ToolPathResultconstantCuspToolPath (const MeshPart &mp, const ConstantCuspParams &params)
 
MRVOXELS_API std::shared_ptr< ObjectGcodeexportToolPathToGCode (const std::vector< GCommand > &commands)
 
MRVOXELS_API Expected< void > interpolateLines (std::vector< GCommand > &commands, const LineInterpolationParams &params, Axis axis)
 
MRVOXELS_API Expected< void > interpolateArcs (std::vector< GCommand > &commands, const ArcInterpolationParams &params, Axis axis)
 
MRVOXELS_API FaceBitSet smoothSelection (Mesh &mesh, const FaceBitSet &region, float expandOffset, float shrinkOffset)
 
MRVOXELS_API FloatGrid meshToLevelSet (const MeshPart &mp, const AffineXf3f &xf, const Vector3f &voxelSize, float surfaceOffset=3, ProgressCallback cb={})
 
MRVOXELS_API FloatGrid meshToDistanceField (const MeshPart &mp, const AffineXf3f &xf, const Vector3f &voxelSize, float surfaceOffset=3, ProgressCallback cb={})
 
MRVOXELS_API void evalGridMinMax (const FloatGrid &grid, float &min, float &max)
 
MRVOXELS_API Expected< VdbVolumemeshToDistanceVdbVolume (const MeshPart &mp, const MeshToVolumeParams &params={})
 
MRVOXELS_API Expected< VdbVolumemeshToVolume (const MeshPart &mp, const MeshToVolumeParams &params={})
 
MRVOXELS_API VdbVolume floatGridToVdbVolume (FloatGrid grid)
 
MRVOXELS_API FloatGrid simpleVolumeToDenseGrid (const SimpleVolume &simpleVolume, float background=0.0f, ProgressCallback cb={})
 
MRVOXELS_API VdbVolume simpleVolumeToVdbVolume (const SimpleVolumeMinMax &simpleVolume, ProgressCallback cb={})
 
MRVOXELS_API VdbVolume functionVolumeToVdbVolume (const FunctionVolume &functoinVolume, ProgressCallback cb={})
 
template<typename AccessorOrGrid >
MRVOXELS_API void putSimpleVolumeInDenseGrid (AccessorOrGrid &gridAccessor, const Vector3i &minCoord, const SimpleVolume &simpleVolume, ProgressCallback cb={})
 Copy given simpleVolume into the grid, starting at minCoord Instantiated for AccessorOrGrid in { openvdb::FloatGrid::Accessor, FloatGrid, openvdb::FloatGrid }. The template is used to not include openvdb's mess into this header (forward declaring classes in openvdb is also non-trivial). When used with a Grid, multithreaded implementation of copying is used (so the function is not thread safe). When used with an Accessor, this function could be called from different threads on the same volume (provided that accessors are different, of course).
 
MRVOXELS_API Expected< SimpleVolumeMinMaxvdbVolumeToSimpleVolume (const VdbVolume &vdbVolume, const Box3i &activeBox=Box3i(), ProgressCallback cb={})
 
MRVOXELS_API Expected< SimpleVolumeMinMaxvdbVolumeToSimpleVolumeNorm (const VdbVolume &vdbVolume, const Box3i &activeBox=Box3i(), std::optional< MinMaxf > sourceScale={}, ProgressCallback cb={})
 
MRVOXELS_API Expected< SimpleVolumeMinMaxU16vdbVolumeToSimpleVolumeU16 (const VdbVolume &vdbVolume, const Box3i &activeBox=Box3i(), std::optional< MinMaxf > sourceScale={}, ProgressCallback cb={})
 
MRVOXELS_API Expected< MeshgridToMesh (const FloatGrid &grid, const GridToMeshSettings &settings)
 converts OpenVDB Grid into mesh using Dual Marching Cubes algorithm
 
MRVOXELS_API Expected< MeshgridToMesh (FloatGrid &&grid, const GridToMeshSettings &settings)
 
MRVOXELS_API Expected< void > makeSignedByWindingNumber (FloatGrid &grid, const Vector3f &voxelSize, const Mesh &refMesh, const MakeSignedByWindingNumberSettings &settings)
 set signs for unsigned distance field grid using generalized winding number computed at voxel grid point from refMesh
 
MRVOXELS_API Expected< MeshdoubleOffsetVdb (const MeshPart &mp, const DoubleOffsetSettings &settings)
 
MR_BIND_IGNORE openvdb::FloatGrid & ovdb (OpenVdbFloatGrid &v)
 
MR_BIND_IGNORE const openvdb::FloatGrid & ovdb (const OpenVdbFloatGrid &v)
 
MR_BIND_IGNORE FloatGrid MakeFloatGrid (const FloatGrid &)=delete
 prohibit unnecessary conversion
 
MR_BIND_IGNORE FloatGrid MakeFloatGrid (openvdb::FloatGrid::Ptr &&p)
 makes MR::FloatGrid shared pointer taking the contents of the input pointer
 
MR_BIND_IGNORE Vector3i fromVdb (const openvdb::Coord &v)
 
MR_BIND_IGNORE openvdb::Coord toVdb (const Vector3i &v)
 
MR_BIND_IGNORE Box3i fromVdbBox (const openvdb::CoordBBox &box)
 
MR_BIND_IGNORE openvdb::CoordBBox toVdbBox (const Box3i &box)
 
MR_BIND_IGNORE openvdb::CoordBBox toVdbBox (const Vector3i &dims)
 
template<typename Accessor >
SimpleVolumeMinMax resampleVolumeByInterpolation (const typename Accessor::VolumeType &volume, const Accessor &accessor, const Vector3f &newVoxelSize)
 sample function that resamples the voxel volume using interpolating accessor
 
MRVOXELS_API Expected< MR::MeshmeshFromVoxelsMask (const VdbVolume &volume, const VoxelBitSet &mask)
 Creates mesh from voxels mask.
 
MRVOXELS_API Expected< MR::MeshsegmentVolume (const VdbVolume &volume, const std::vector< std::pair< Vector3f, Vector3f > > &pairs, const VolumeSegmentationParameters &params=VolumeSegmentationParameters())
 Simple segment volume.
 
MRVOXELS_API Expected< std::vector< Mesh > > segmentVoxelMaskToInstances (const VdbVolume &mask, size_t minSize=100, ProgressCallback cb={})
 
MRVOXELS_API VdbVolume voxelFilter (const VdbVolume &volume, VoxelFilterType type, int width)
 
MRVOXELS_API Expected< VoxelBitSetsegmentVolumeByGraphCut (const SimpleVolume &densityVolume, float k, const VoxelBitSet &sourceSeeds, const VoxelBitSet &sinkSeeds, ProgressCallback cb={})
 Segment voxels of given volume on two sets using graph-cut, returning source set.
 
MRVOXELS_API VoxelsMetric voxelsExponentMetric (const VdbVolume &voxels, const VoxelMetricParameters &parameters, float modifier=-1.0f)
 e^(modifier*(dens1+dens2))
 
MRVOXELS_API VoxelsMetric voxelsSumDiffsMetric (const VdbVolume &voxels, const VoxelMetricParameters &parameters)
 sum of dense differences with start and stop voxels
 
MRVOXELS_API std::vector< size_t > buildSmallestMetricPath (const VdbVolume &voxels, const VoxelsMetric &metric, size_t start, size_t finish, ProgressCallback cb={})
 builds shortest path in given metric from start to finish voxels; if no path can be found then empty path is returned
 
MRVOXELS_API TransformVdbVolumeResult transformVdbVolume (const VdbVolume &volume, const AffineXf3f &xf, bool fixBox=false, const Box3f &box={})
 
MRVOXELS_API bool voxelsApplyTransform (ObjectVoxels &obj, const AffineXf3f &xf, bool fixBox)
 
template<typename Volume >
Expected< void > mergeVolumePart (Mesh &mesh, std::vector< EdgePath > &cutContours, Volume &&volume, float leftCutPosition, float rightCutPosition, const MergeVolumePartSettings &settings={})
 Merge one mesh with another generated from a voxel volume part.
 
template<typename Volume >
Expected< MeshvolumeToMeshByParts (const VolumePartBuilder< Volume > &builder, const Vector3i &dimensions, const Vector3f &voxelSize, const VolumeToMeshByPartsSettings &settings={}, const MergeVolumePartSettings &mergeSettings={})
 converts a voxel volume into a mesh without full memory loading
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), MRVOXELS_CLASS VoxelsVolumeMinMax,(SimpleVolumeMinMax, VoxelsVolumeMinMax< Vector< float, VoxelId > >)(SimpleVolumeMinMaxU16, VoxelsVolumeMinMax< Vector< uint16_t, VoxelId > >)(VdbVolume, VoxelsVolumeMinMax< FloatGrid >)) using VdbVolumes
 
 MR_CANONICAL_TYPEDEFS ((template< typename T > struct), MRVOXELS_CLASS VoxelsVolume,(FunctionVolume, VoxelsVolume< VoxelValueGetter< float > >)(FunctionVolumeU8, VoxelsVolume< VoxelValueGetter< uint8_t > >)(SimpleVolume, VoxelsVolume< Vector< float, VoxelId > >)(SimpleVolumeU16, VoxelsVolume< Vector< uint16_t, VoxelId > >)(SimpleBinaryVolume, VoxelsVolume< VoxelBitSet >)) namespace VoxelsLoad
 
MRVOXELS_API Expected< std::vector< std::shared_ptr< ObjectVoxels > > > makeObjectVoxelsFromFile (const std::filesystem::path &file, ProgressCallback callback={})
 loads voxels from given file in new object
 
MRVOXELS_API Expected< LoadedObjectsmakeObjectFromVoxelsFile (const std::filesystem::path &file, const ProgressCallback &callback={})
 
MRVOXELS_API Expected< void > saveObjectVoxelsToFile (const Object &object, const std::filesystem::path &path, const ObjectSave::Settings &settings)
 
MRVOXELS_API Expected< SimpleVolumeMinMaxfunctionVolumeToSimpleVolume (const FunctionVolume &volume, const ProgressCallback &callback={})
 converts function volume into simple volume
 
MRMESH_API EdgeMetric identityMetric ()
 metric returning 1 for every edge
 
MRMESH_API EdgeMetric edgeLengthMetric (const Mesh &mesh)
 
MRMESH_API EdgeMetric edgeLengthMetric (const MeshTopology &topology, const VertCoords &points)
 
MRMESH_API EdgeMetric discreteAbsMeanCurvatureMetric (const Mesh &mesh)
 
MRMESH_API EdgeMetric discreteAbsMeanCurvatureMetric (const MeshTopology &topology, const VertCoords &points)
 
MRMESH_API EdgeMetric discreteMinusAbsMeanCurvatureMetric (const Mesh &mesh)
 
MRMESH_API EdgeMetric discreteMinusAbsMeanCurvatureMetric (const MeshTopology &topology, const VertCoords &points)
 
MRMESH_API EdgeMetric edgeCurvMetric (const Mesh &mesh, float angleSinFactor=2, float angleSinForBoundary=0)
 
MRMESH_API EdgeMetric edgeCurvMetric (const MeshTopology &topology, const VertCoords &points, float angleSinFactor=2, float angleSinForBoundary=0)
 
MRMESH_API EdgeMetric edgeTableSymMetric (const MeshTopology &topology, const EdgeMetric &metric)
 
MR_BIND_IGNORE EdgeMetric edgeTableMetric (const MeshTopology &topology, const EdgeMetric &metric)
 
MRMESH_API bool isEdgePath (const MeshTopology &topology, const std::vector< EdgeId > &edges)
 returns true if every next edge starts where previous edge ends
 
MRMESH_API bool isEdgeLoop (const MeshTopology &topology, const std::vector< EdgeId > &edges)
 returns true if every next edge starts where previous edge ends, and start vertex coincides with finish vertex
 
MRMESH_API std::vector< EdgeLoop > splitOnSimpleLoops (const MeshTopology &topology, std::vector< EdgeLoop > &&loops)
 given a number of edge loops, splits every loop that passes via a vertex more than once on smaller loops without self-intersections
 
MRMESH_API void reverse (EdgePath &path)
 
MRMESH_API void reverse (std::vector< EdgePath > &paths)
 reverse every path in the vector
 
MRMESH_API double calcPathMetric (const EdgePath &path, EdgeMetric metric)
 computes summed metric of all edges in the path
 
double calcPathLength (const EdgePath &path, const Mesh &mesh)
 
MRMESH_API Vector3d calcOrientedArea (const EdgeLoop &loop, const Mesh &mesh)
 
MRMESH_API void sortPathsByMetric (std::vector< EdgePath > &paths, EdgeMetric metric)
 sorts given paths in ascending order of their metrics
 
void sortPathsByLength (std::vector< EdgePath > &paths, const Mesh &mesh)
 
MRMESH_API void addLeftBand (const MeshTopology &topology, const EdgeLoop &loop, FaceBitSet &addHere)
 adds all faces incident to loop vertices and located to the left from the loop to given FaceBitSet
 
MRMESH_API EdgePath buildShortestPath (const Mesh &mesh, VertId start, VertId finish, float maxPathLen=FLT_MAX)
 
MRMESH_API EdgePath buildShortestPathBiDir (const Mesh &mesh, VertId start, VertId finish, float maxPathLen=FLT_MAX)
 
MRMESH_API EdgePath buildShortestPathBiDir (const Mesh &mesh, const MeshTriPoint &start, const MeshTriPoint &finish, VertId *outPathStart=nullptr, VertId *outPathFinish=nullptr, float maxPathLen=FLT_MAX)
 
MRMESH_API EdgePath buildShortestPathAStar (const Mesh &mesh, VertId start, VertId finish, float maxPathLen=FLT_MAX)
 
MRMESH_API EdgePath buildShortestPathAStar (const Mesh &mesh, const MeshTriPoint &start, const MeshTriPoint &finish, VertId *outPathStart=nullptr, VertId *outPathFinish=nullptr, float maxPathLen=FLT_MAX)
 
MRMESH_API EdgePath buildShortestPath (const Mesh &mesh, VertId start, const VertBitSet &finish, float maxPathLen=FLT_MAX)
 builds shortest path in euclidean metric from start to finish vertices; if no path can be found then empty path is returned
 
MRMESH_API EdgePath buildSmallestMetricPath (const MeshTopology &topology, const EdgeMetric &metric, VertId start, VertId finish, float maxPathMetric=FLT_MAX)
 builds shortest path in given metric from start to finish vertices; if no path can be found then empty path is returned
 
MRMESH_API EdgePath buildSmallestMetricPathBiDir (const MeshTopology &topology, const EdgeMetric &metric, VertId start, VertId finish, float maxPathMetric=FLT_MAX)
 
MRMESH_API EdgePath buildSmallestMetricPathBiDir (const MeshTopology &topology, const EdgeMetric &metric, const TerminalVertex *starts, int numStarts, const TerminalVertex *finishes, int numFinishes, VertId *outPathStart=nullptr, VertId *outPathFinish=nullptr, float maxPathMetric=FLT_MAX)
 
MRMESH_API EdgePath buildSmallestMetricPath (const MeshTopology &topology, const EdgeMetric &metric, VertId start, const VertBitSet &finish, float maxPathMetric=FLT_MAX)
 builds shortest path in given metric from start to finish vertices; if no path can be found then empty path is returned
 
MRMESH_API std::vector< VertIdgetVertexOrdering (const MeshTopology &topology, VertBitSet region)
 returns all vertices from given region ordered in each connected component in breadth-first way
 
MRMESH_API std::vector< EdgeLoop > extractClosedLoops (const MeshTopology &topology, EdgeBitSet &edges)
 finds all closed loops from given edges and removes them from edges
 
MRMESH_API std::vector< EdgeLoop > extractClosedLoops (const MeshTopology &topology, const std::vector< EdgeId > &inEdges, EdgeBitSet *outNotLoopEdges=nullptr)
 
MRMESH_API EdgeLoop extractLongestClosedLoop (const Mesh &mesh, const std::vector< EdgeId > &inEdges)
 
MRMESH_API bool dilateRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, FaceBitSet &region, float dilation, ProgressCallback callback={})
 expands the region (of faces or vertices) on given metric value. returns false if callback also returns false
 
MRMESH_API bool dilateRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, VertBitSet &region, float dilation, ProgressCallback callback={})
 
MRMESH_API bool dilateRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, UndirectedEdgeBitSet &region, float dilation, ProgressCallback callback={})
 
MRMESH_API bool erodeRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, FaceBitSet &region, float dilation, ProgressCallback callback={})
 shrinks the region (of faces or vertices) on given metric value. returns false if callback also returns false
 
MRMESH_API bool erodeRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, VertBitSet &region, float dilation, ProgressCallback callback={})
 
MRMESH_API bool erodeRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, UndirectedEdgeBitSet &region, float dilation, ProgressCallback callback={})
 
MRMESH_API bool dilateRegion (const Mesh &mesh, FaceBitSet &region, float dilation, ProgressCallback callback={})
 expands the region (of faces or vertices) on given value (in meters). returns false if callback also returns false
 
MRMESH_API bool dilateRegion (const Mesh &mesh, VertBitSet &region, float dilation, ProgressCallback callback={})
 
MRMESH_API bool dilateRegion (const Mesh &mesh, UndirectedEdgeBitSet &region, float dilation, ProgressCallback callback={})
 
MRMESH_API bool dilateRegion (const MeshTopology &topology, const VertCoords &points, FaceBitSet &region, float dilation, ProgressCallback callback={})
 
MRMESH_API bool dilateRegion (const MeshTopology &topology, const VertCoords &points, VertBitSet &region, float dilation, ProgressCallback callback={})
 
MRMESH_API bool dilateRegion (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeBitSet &region, float dilation, ProgressCallback callback={})
 
MRMESH_API bool erodeRegion (const Mesh &mesh, FaceBitSet &region, float dilation, ProgressCallback callback={})
 shrinks the region (of faces or vertices) on given value (in meters). returns false if callback also returns false
 
MRMESH_API bool erodeRegion (const Mesh &mesh, VertBitSet &region, float dilation, ProgressCallback callback={})
 
MRMESH_API bool erodeRegion (const Mesh &mesh, UndirectedEdgeBitSet &region, float dilation, ProgressCallback callback={})
 
MRMESH_API bool erodeRegion (const MeshTopology &topology, const VertCoords &points, FaceBitSet &region, float dilation, ProgressCallback callback={})
 
MRMESH_API bool erodeRegion (const MeshTopology &topology, const VertCoords &points, VertBitSet &region, float dilation, ProgressCallback callback={})
 
MRMESH_API bool erodeRegion (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeBitSet &region, float dilation, ProgressCallback callback={})
 
MRMESH_API int getPathPlaneIntersections (const Mesh &mesh, const EdgePath &path, const Plane3f &plane, std::vector< MeshEdgePoint > *outIntersections=nullptr)
 finds all intersection points between given path and plane, adds them in outIntersections and returns their number
 
MRMESH_API int getContourPlaneIntersections (const Contour3f &path, const Plane3f &plane, std::vector< Vector3f > *outIntersections=nullptr)
 finds all intersection points between given contour and plane, adds them in outIntersections and returns their number
 
MRMESH_API int getPathEdgesInPlane (const Mesh &mesh, const EdgePath &path, const Plane3f &plane, float tolerance=0.0f, std::vector< EdgeId > *outInPlaneEdges=nullptr)
 finds all path edges located in given plane with given tolerance, adds them in outInPlaneEdges and returns their number
 
MRMESH_API std::shared_ptr< ObjectcreateObject (const std::string &className)
 the function to create new object instance by registered class name
 
MRMESH_API Expected< LoadedObjectMesh > makeObjectMeshFromFile (const std::filesystem::path &file, const ProgressCallback &cb={})
 loads mesh from given file in new object
 
MRMESH_API Expected< LoadedObject > makeObjectFromMeshFile (const std::filesystem::path &file, const ProgressCallback &cb={}, bool returnOnlyMesh=false)
 loads data from given file and makes either ObjectMesh, ObjectLines or ObjectPoints (if the file has points or edges but not faces)
 
MRMESH_API Expected< ObjectLinesmakeObjectLinesFromFile (const std::filesystem::path &file, ProgressCallback callback={})
 loads lines from given file in new object
 
MRMESH_API Expected< ObjectPointsmakeObjectPointsFromFile (const std::filesystem::path &file, ProgressCallback callback={})
 loads points from given file in new object
 
MRMESH_API Expected< ObjectDistanceMapmakeObjectDistanceMapFromFile (const std::filesystem::path &file, ProgressCallback callback={})
 loads distance map from given file in new object
 
MRMESH_API Expected< ObjectGcodemakeObjectGcodeFromFile (const std::filesystem::path &file, ProgressCallback callback={})
 loads gcode from given file in new object
 
MRMESH_API Expected< LoadedObjectsloadObjectFromFile (const std::filesystem::path &filename, const ProgressCallback &callback={})
 load all objects (or any type: mesh, lines, points, voxels or scene) from file
 
MRMESH_API bool isSupportedFileInSubfolders (const std::filesystem::path &folder)
 
MRMESH_API Expected< LoadedObject > loadSceneFromAnySupportedFormat (const std::filesystem::path &path, const ProgressCallback &callback={})
 
MRMESH_API Expected< LoadedObject > deserializeObjectTree (const std::filesystem::path &path, const FolderCallback &postDecompress={}, const ProgressCallback &progressCb={})
 loads objects tree from given scene file (zip/mru)
 
MRMESH_API Expected< LoadedObject > deserializeObjectTreeFromFolder (const std::filesystem::path &folder, const ProgressCallback &progressCb={})
 loads objects tree from given scene folder
 
MRMESH_API IOFilters getAllFilters ()
 returns filters for all supported file formats for all types of objects
 
template<typename ObjectT = Object>
std::shared_ptr< ObjectT > asSelectivityType (std::shared_ptr< Object > obj, const ObjectSelectivityType &type)
 if input object is of given type then returns another pointer on it
 
template<typename ObjectT = Object>
std::vector< std::shared_ptr< ObjectT > > getAllObjectsInTree (Object *root, const ObjectSelectivityType &type=ObjectSelectivityType::Selectable)
 
template<typename ObjectT = Object>
MR_BIND_IGNORE std::vector< std::shared_ptr< ObjectT > > getAllObjectsInTree (Object &root, const ObjectSelectivityType &type=ObjectSelectivityType::Selectable)
 
template<typename ObjectT = Object>
std::vector< std::shared_ptr< ObjectT > > getTopmostVisibleObjects (Object *root, const ObjectSelectivityType &type=ObjectSelectivityType::Selectable)
 Returns all topmost visible objects of given type (if an object is returned, its children are not) excluding root.
 
template<typename ObjectT = Object>
MR_BIND_IGNORE std::vector< std::shared_ptr< ObjectT > > getTopmostVisibleObjects (Object &root, const ObjectSelectivityType &type=ObjectSelectivityType::Selectable)
 
template<typename ObjectT = Object>
std::vector< std::shared_ptr< ObjectT > > getTopmostObjects (Object *root, const ObjectSelectivityType &type=ObjectSelectivityType::Selectable, bool visibilityCheck=false)
 Returns all topmost objects of given type (if an object is returned, its children are not) excluding root.
 
template<typename ObjectT = Object>
MR_BIND_IGNORE std::vector< std::shared_ptr< ObjectT > > getTopmostObjects (Object &root, const ObjectSelectivityType &type=ObjectSelectivityType::Selectable, bool visibilityCheck=false)
 
template<typename ObjectT = Object>
std::shared_ptr< ObjectT > getDepthFirstObject (Object *root, const ObjectSelectivityType &type)
 return first object of given type in depth-first traverse order excluding root
 
template<typename ObjectT = Object>
MR_BIND_IGNORE std::shared_ptr< ObjectT > getDepthFirstObject (Object &root, const ObjectSelectivityType &type)
 
bool smaller (const PreciseVertCoord &l, const PreciseVertCoord &r)
 
MRMESH_API bool ccw (const Vector2i &a, const Vector2i &b)
 
bool ccw (const Vector2i &a, const Vector2i &b, const Vector2i &c)
 
MRMESH_API bool ccw (const std::array< PreciseVertCoords2, 3 > &vs)
 
MRMESH_API bool ccw (const PreciseVertCoords2 *vs)
 
MRMESH_API bool smaller2 (const std::array< PreciseVertCoords2, 4 > &vs)
 
MRMESH_API bool orientParaboloid3d (const Vector2i &a, const Vector2i &b, const Vector2i &c)
 
bool orientParaboloid3d (const Vector2i &a, const Vector2i &b, const Vector2i &c, const Vector2i &d)
 
MRMESH_API bool inCircle (const std::array< PreciseVertCoords2, 4 > &vs)
 return true if 4th point in array lays inside circumcircle of first 3 points based triangle
 
MRMESH_API bool inCircle (const PreciseVertCoords2 *vs)
 
MRMESH_API SegmentSegmentIntersectResult doSegmentSegmentIntersect (const std::array< PreciseVertCoords2, 4 > &vs)
 
MRMESH_API bool segmentIntersectionOrder (const std::array< PreciseVertCoords2, 6 > &vs)
 
MRMESH_API Vector2i findSegmentSegmentIntersectionPrecise (const Vector2i &a, const Vector2i &b, const Vector2i &c, const Vector2i &d)
 
MRMESH_API Vector2f findSegmentSegmentIntersectionPrecise (const Vector2f &a, const Vector2f &b, const Vector2f &c, const Vector2f &d, CoordinateConverters2 converters)
 
MRMESH_API bool orient3d (const Vector3i &a, const Vector3i &b, const Vector3i &c)
 
bool orient3d (const Vector3i &a, const Vector3i &b, const Vector3i &c, const Vector3i &d)
 
MRMESH_API bool orient3d (const std::array< PreciseVertCoords, 4 > &vs)
 first sorts the indices in ascending order, then calls the predicate for sorted points
 
MRMESH_API bool orient3d (const PreciseVertCoords *vs)
 
MRMESH_API TriangleSegmentIntersectResult doTriangleSegmentIntersect (const std::array< PreciseVertCoords, 5 > &vs)
 
MRMESH_API bool segmentIntersectionOrder (const std::array< PreciseVertCoords, 8 > &vs)
 
MRMESH_API ConvertToIntVector getToIntConverter (const Box3d &box)
 creates converter from Vector3f to Vector3i in Box range (int diapason is mapped to box range)
 
MRMESH_API ConvertToFloatVector getToFloatConverter (const Box3d &box)
 creates converter from Vector3i to Vector3f in Box range (int diapason is mapped to box range)
 
MRMESH_API std::optional< Vector3ifindTwoSegmentsIntersection (const Vector3i &ai, const Vector3i &bi, const Vector3i &ci, const Vector3i &di)
 
MRMESH_API Vector3f findTriangleSegmentIntersectionPrecise (const Vector3f &a, const Vector3f &b, const Vector3f &c, const Vector3f &d, const Vector3f &e, CoordinateConverters converters)
 
template<typename T >
Vector2< T > fromEigen (const Eigen::Matrix< T, 2, 1 > &ev)
 
template<typename T >
Eigen::Matrix< T, 2, 1 > toEigen (const Vector2< T > &v)
 
template<typename T >
Eigen::Matrix< T, 2, 2 > toEigen (const SymMatrix2< T > &m)
 
template<typename T >
Eigen::Matrix< T, 2, 2 > toEigen (const Matrix2< T > &m)
 
template<typename T >
Matrix2< T > fromEigen (const Eigen::Matrix< T, 2, 2 > &m)
 
template<typename T >
Vector3< T > fromEigen (const Eigen::Matrix< T, 3, 1 > &ev)
 
template<typename T >
Eigen::Matrix< T, 3, 1 > toEigen (const Vector3< T > &v)
 
template<typename T >
Eigen::Matrix< T, 3, 3 > toEigen (const SymMatrix3< T > &m)
 
template<typename T >
Eigen::Matrix< T, 3, 3 > toEigen (const Matrix3< T > &m)
 
template<typename T >
Matrix3< T > fromEigen (const Eigen::Matrix< T, 3, 3 > &m)
 
template<typename T >
Eigen::Matrix< T, 4, 4 > toEigen (const SymMatrix4< T > &m)
 
template<typename T >
Eigen::Matrix< T, 4, 4 > toEigen (const Matrix4< T > &m)
 
template<typename T >
Matrix4< T > fromEigen (const Eigen::Matrix< T, 4, 4 > &m)
 
template<typename T >
Vector4< T > fromEigen (const Eigen::Matrix< T, 4, 1 > &ev)
 
template<typename T >
Eigen::Matrix< T, 4, 1 > toEigen (const Vector4< T > &v)
 
template<typename T >
Eigen::Matrix< T, 4, 1 > toEigen (const Vector3< T > &v, T w)
 
template<typename T >
Quaternion< T > fromEigen (const Eigen::Quaternion< T > &eq)
 
template<typename T >
Eigen::Quaternion< T > toEigen (const Quaternion< T > &q)
 

Function Documentation

◆ AABBTreePolyline< Vector2f >()

◆ addBaseToPlanarMesh()

MRMESH_API void MR::addBaseToPlanarMesh ( Mesh & mesh,
float zOffset )

given a planar mesh with boundary on input located in plane XY, packs and extends it along Z on zOffset (along -Z if zOffset is negative) to make a volumetric closed mesh note that this function also packs the mesh

◆ addFileNameInError()

template<typename T >
Expected< T > MR::addFileNameInError ( Expected< T > v,
const std::filesystem::path & file )
inlinenodiscard

if (v) contains an error, then appends given file name to that error

◆ addNoise() [1/2]

MRMESH_API Expected< void > MR::addNoise ( Mesh & mesh,
const VertBitSet * region = nullptr,
const NoiseSettings & settings = {} )

◆ addNoise() [2/2]

MRMESH_API Expected< void > MR::addNoise ( VertCoords & points,
const VertBitSet & validVerts,
NoiseSettings settings )

◆ alignContoursToMesh()

MRMESH_API Expected< Mesh > MR::alignContoursToMesh ( const Mesh & mesh,
const Contours2f & contours,
const ContoursMeshAlignParams & params )

Creates planar mesh out of given contour and aligns it to given surface.

◆ alignTextToMesh()

MRSYMBOLMESH_API Expected< Mesh > MR::alignTextToMesh ( const Mesh & mesh,
const TextMeshAlignParams & params )

Creates symbol mesh and aligns it to given surface.

◆ appendGPUVisibleFaces()

MRVIEWER_API void MR::appendGPUVisibleFaces ( const Viewport & viewport,
const BitSet & pixBs,
const std::vector< std::shared_ptr< ObjectMesh > > & objects,
std::vector< FaceBitSet > & visibleFaces,
bool includeBackfaces = true )

appends viewport visible faces (in pixBs) to visibleFaces

Parameters
pixBsthe matrix of pixels (in local space of viewport) belonging selected area
objectsof interest
visibleFacesvector that correspond to objects and will be updated in this function
includeBackfacesget also faces from back side of object

◆ AppendHistory() [1/2]

template<class HistoryActionType , typename... Args>
void MR::AppendHistory ( Args &&... args)

Constructs history action from given arguments, than appends it to viewer's global history store.

◆ AppendHistory() [2/2]

void MR::AppendHistory ( std::shared_ptr< HistoryAction > action)
inline

Appends given history action to viewer's global history store.

◆ applyDouble() [1/2]

Vector3d MR::applyDouble ( const AffineXf3d * xf,
const Vector3f & p )
inline

converts given point in double precision and applies given transformation to it

◆ applyDouble() [2/2]

Vector3d MR::applyDouble ( const Matrix3d * m,
const Vector3f & n )
inline

converts given normal in double precision and applies given matrix to it

◆ applyFloat() [1/2]

Vector3f MR::applyFloat ( const AffineXf3d * xf,
const Vector3f & p )
inline

returns the point as is or after application of given transform to it in double precision

◆ applyFloat() [2/2]

Vector3f MR::applyFloat ( const Matrix3d * m,
const Vector3f & n )
inline

returns the normal as is or after application of given matrix to it in double precision

◆ applyRibbonConfig()

MRVIEWER_API void MR::applyRibbonConfig ( const RibbonConfig & config)

◆ area() [1/5]

MRMESH_API MR_BIND_IGNORE double MR::area ( const MeshTopology & topology,
const VertCoords & points,
const FaceBitSet & fs )
nodiscard

computes the area of given face-region This is skipped in the bindings because it conflicts with the overload taking a pointer in C#. Since that overload is strictly more useful, we're keeping that one.

◆ area() [2/5]

double MR::area ( const MeshTopology & topology,
const VertCoords & points,
const FaceBitSet * fs = nullptr )
inlinenodiscard

computes the area of given face-region (or whole mesh)

◆ area() [3/5]

float MR::area ( const MeshTopology & topology,
const VertCoords & points,
FaceId f )
inlinenodiscard

returns the area of given face

◆ area() [4/5]

template<typename T >
T MR::area ( const Vector2< T > & p,
const Vector2< T > & q,
const Vector2< T > & r )
inlinenodiscard

computes twice the area of given triangle

◆ area() [5/5]

template<typename T >
T MR::area ( const Vector3< T > & p,
const Vector3< T > & q,
const Vector3< T > & r )
inlinenodiscard

computes twice the area of given triangle

◆ asSelectivityType()

template<typename ObjectT = Object>
std::shared_ptr< ObjectT > MR::asSelectivityType ( std::shared_ptr< Object > obj,
const ObjectSelectivityType & type )

if input object is of given type then returns another pointer on it

◆ asString() [1/2]

MRMESH_API const char * MR::asString ( ColoringType ct)
nodiscard

returns string representation of enum values

◆ asString() [2/2]

MRMESH_API const char * MR::asString ( SignDetectionMode m)
nodiscard

returns string representation of enum values

◆ autoOrientLocalTriangulations()

MRMESH_API bool MR::autoOrientLocalTriangulations ( const PointCloud & pointCloud,
AllLocalTriangulations & triangs,
const VertBitSet & region,
ProgressCallback progress = {},
Triangulation * outRep3 = nullptr,
Triangulation * outRep2 = nullptr )

orient neighbors around each point in

Parameters
regionso there will be as many triangles with same (and not opposite) orientation as possible optional output with all oriented triangles that appear in exactly two local triangulations
Parameters
outRep3optional output with all oriented triangles that appear in three local triangulations

◆ averageEdgeLength()

MRMESH_API float MR::averageEdgeLength ( const MeshTopology & topology,
const VertCoords & points )
nodiscard

computes average length of an edge in the mesh given by (topology, points)

◆ begin() [1/6]

template<typename T , typename I >
auto MR::begin ( Buffer< T, I > & a)
inlinenodiscard

◆ begin() [2/6]

template<typename T , typename I >
auto MR::begin ( const Buffer< T, I > & a)
inlinenodiscard

◆ begin() [3/6]

DirectoryIterator MR::begin ( const Directory & sd)
inlinenodiscard

◆ begin() [4/6]

DirectoryRecursiveIterator MR::begin ( const DirectoryRecursive & sd)
inlinenodiscard

◆ begin() [5/6]

template<typename T , typename I >
MR_BIND_IGNORE auto MR::begin ( const Vector< T, I > & a)
inlinenodiscard

◆ begin() [6/6]

template<typename T , typename I >
MR_BIND_IGNORE auto MR::begin ( Vector< T, I > & a)
inlinenodiscard

◆ bendContoursAlongCurve()

MRMESH_API Expected< Mesh > MR::bendContoursAlongCurve ( const Contours2f & contours,
const CurveFunc & curve,
const BendContoursAlongCurveParams & params )

Converts contours in thick mesh, and deforms it along given path.

◆ bendContoursAlongSurfacePath() [1/2]

MRMESH_API Expected< Mesh > MR::bendContoursAlongSurfacePath ( const Contours2f & contours,
const Mesh & mesh,
const MeshTriPoint & start,
const SurfacePath & path,
const MeshTriPoint & end,
const BendContoursAlongCurveParams & params )

Converts contours in thick mesh, and deforms it along given surface path: start->path->end.

◆ bendContoursAlongSurfacePath() [2/2]

MRMESH_API Expected< Mesh > MR::bendContoursAlongSurfacePath ( const Contours2f & contours,
const Mesh & mesh,
const SurfacePath & path,
const BendContoursAlongCurveParams & params )

Converts contours in thick mesh, and deforms it along given surface path.

◆ bendTextAlongCurve() [1/2]

MRSYMBOLMESH_API Expected< Mesh > MR::bendTextAlongCurve ( const CurveFunc & curve,
const BendTextAlongCurveParams & params )

Creates symbol mesh and deforms it along given curve

Parameters
curveconverts (x in [0,1], pivotY) into position on curve

◆ bendTextAlongCurve() [2/2]

MRSYMBOLMESH_API Expected< Mesh > MR::bendTextAlongCurve ( const CurvePoints & curve,
const BendTextAlongCurveParams & params )

Creates symbol mesh and deforms it along given curve.

◆ bendTextAlongSurfacePath() [1/2]

MRSYMBOLMESH_API Expected< Mesh > MR::bendTextAlongSurfacePath ( const Mesh & mesh,
const MeshTriPoint & start,
const SurfacePath & path,
const MeshTriPoint & end,
const BendTextAlongCurveParams & params )

Creates symbol mesh and deforms it along given surface path: start->path->end.

◆ bendTextAlongSurfacePath() [2/2]

MRSYMBOLMESH_API Expected< Mesh > MR::bendTextAlongSurfacePath ( const Mesh & mesh,
const SurfacePath & path,
const BendTextAlongCurveParams & params )

Creates symbol mesh and deforms it along given surface path.

◆ BestFitParabola< float >()

◆ bindDepthPeelingTextures()

MRVIEWER_API void MR::bindDepthPeelingTextures ( GLuint shaderId,
const TransparencyMode & tMode,
GLenum startGLTextureIndex )

◆ bindVertexAttribArray() [1/3]

MRVIEWER_API GLint MR::bindVertexAttribArray ( const BindVertexAttribArraySettings & settings)

◆ bindVertexAttribArray() [2/3]

template<typename T , template< typename, typename... > class C, typename... args>
GLint MR::bindVertexAttribArray ( const GLuint program_shader,
const char * name,
GlBuffer & buf,
const C< T, args... > & V,
int baseTypeElementsNumber,
bool refresh,
bool forceUse = false )
inline

◆ bindVertexAttribArray() [3/3]

template<typename T , std::size_t N>
GLint MR::bindVertexAttribArray ( const GLuint program_shader,
const char * name,
GlBuffer & buf,
const std::array< T, N > & V,
int baseTypeElementsNumber,
bool refresh,
bool forceUse = false )
inline

◆ blend()

MRMESH_API Color MR::blend ( const Color & front,
const Color & back )

Blend two colors together

Note
This operation is not commutative

◆ boolean() [1/3]

MRMESH_API BooleanResult MR::boolean ( const Mesh & meshA,
const Mesh & meshB,
BooleanOperation operation,
const BooleanParameters & params = {} )

◆ boolean() [2/3]

MRMESH_API BooleanResult MR::boolean ( Mesh && meshA,
Mesh && meshB,
BooleanOperation operation,
const AffineXf3f * rigidB2A,
BooleanResultMapper * mapper = nullptr,
ProgressCallback cb = {} )

◆ boolean() [3/3]

MRMESH_API BooleanResult MR::boolean ( Mesh && meshA,
Mesh && meshB,
BooleanOperation operation,
const BooleanParameters & params = {} )

◆ Box< float >()

MR::Box< float > ( Box1d ,
Box< double >  )

◆ Box< int >()

MR::Box< int > ( Box1i64 ,
Box< Int64 >  )

◆ Box< Vector2< float > >()

MR::Box< Vector2< float > > ( Box2d ,
Box< Vector2< double > >  )

◆ Box< Vector2< int > >()

MR::Box< Vector2< int > > ( Box2i64 ,
Box< Vector2< Int64 > >  )

◆ Box< Vector3< float > >()

MR::Box< Vector3< float > > ( Box3d ,
Box< Vector3< double > >  )

◆ Box< Vector3< int > >()

MR::Box< Vector3< int > > ( Box3i64 ,
Box< Vector3< Int64 > >  )

◆ bytesString()

MRMESH_API std::string MR::bytesString ( size_t size)
nodiscard

converts given size in string: [0,1024) -> nnn bytes [1024,1024*1024) -> nnn.nn Kb [1024*1024,1024*1024*1024) -> nnn.nn Mb ...

◆ calcAvgColors()

MRVOXELS_API Expected< VertColors > MR::calcAvgColors ( const PointCloud & cloud,
const VertColors & colors,
const VertCoords & tgtPoints,
const VertBitSet & tgtVerts,
float sigma,
const ProgressCallback & cb = {} )
nodiscard

given

Parameters
clouda point cloud
colorscolors of each point in the cloud
tgtPointssome target points
tgtVertsmask of valid target points
sigmathe distance of highest influence of a point
cbprogress callback computes the colors in valid target points by averaging the colors from the point cloud

◆ calcDipoles() [1/2]

MRMESH_API Dipoles MR::calcDipoles ( const AABBTree & tree,
const Mesh & mesh )
nodiscard

◆ calcDipoles() [2/2]

MRMESH_API void MR::calcDipoles ( Dipoles & dipoles,
const AABBTree & tree,
const Mesh & mesh )

calculates dipoles for given mesh and AABB-tree

◆ calcFaceDistances()

MRMESH_API std::optional< FaceScalars > MR::calcFaceDistances ( const MeshTopology & topology,
const EdgeMetric & metric,
const FaceBitSet & starts,
const FaceDistancesSettings & settings = {} )
nodiscard

computes and returns the distance of traveling from one of start faces to all other reachable faces on the mesh; all unreachable faces will get FLT_MAX value;

Parameters
startsall start faces will get value 0 in the result;
metricmetric(e) says the distance of traveling from left(e) to right(e)

◆ calcFastWindingNumber()

MRMESH_API float MR::calcFastWindingNumber ( const Dipoles & dipoles,
const AABBTree & tree,
const Mesh & mesh,
const Vector3f & q,
float beta,
FaceId skipFace )
nodiscard

compute approximate winding number at

Parameters
q;
betadetermines the precision of the approximation: the more the better, recommended value 2 or more; if distance from q to the center of some triangle group is more than beta times the distance from the center to most distance triangle in the group then we use approximate formula
skipFacethis triangle (if it is close to
q)will be skipped from summation

◆ calcOriginAndDimensions()

OriginAndDimensions MR::calcOriginAndDimensions ( const Box3f & box,
float voxelSize )
inline

computes origin and dimensions of voxel-grid to cover given 3D box with given spacing (voxelSize)

◆ calcTextureRes()

MRVIEWER_API Vector2i MR::calcTextureRes ( int bufferSize,
int maxTextWidth )

◆ calculateRangeSize()

template<typename GridT >
RangeSize MR::calculateRangeSize ( const GridT & grid)

◆ calculateSelectedPixelsInsidePolygon()

MRVIEWER_API BitSet MR::calculateSelectedPixelsInsidePolygon ( const Contour2f & screenPoints)

calculate area on screen that is inside of closed contour given by screen points.

return the matrix of pixels (in local space of active viewport) belonging selected area

◆ calculateSelectedPixelsNearPolygon()

MRVIEWER_API BitSet MR::calculateSelectedPixelsNearPolygon ( const Contour2f & screenPoints,
float radiusPix )

calculate area on screen that is near to open contour given by screen points.

return the matrix of pixels (in local space of active viewport) belonging selected area

◆ canMinimizePolynomial()

bool MR::canMinimizePolynomial ( auto degree)
constexpr

◆ canSolvePolynomial()

bool MR::canSolvePolynomial ( auto degree)
constexpr

◆ ccw() [1/4]

MRMESH_API bool MR::ccw ( const PreciseVertCoords2 * vs)
nodiscard

◆ ccw() [2/4]

MRMESH_API bool MR::ccw ( const std::array< PreciseVertCoords2, 3 > & vs)
nodiscard

return true if the smallest rotation from vector (vs[0]-vs[2]) to vector (vs[1]-vs[2]) is in counter-clock-wise direction; uses simulation-of-simplicity (assuming larger perturbations of points with smaller id) to avoid "vectors are collinear"

◆ ccw() [3/4]

MRMESH_API bool MR::ccw ( const Vector2i & a,
const Vector2i & b )
nodiscard

return true if the smallest rotation from vector (a) to vector (b) is in counter-clock-wise direction; uses simulation-of-simplicity (assuming perturbations a >> b) to avoid "vectors are collinear"

◆ ccw() [4/4]

bool MR::ccw ( const Vector2i & a,
const Vector2i & b,
const Vector2i & c )
inlinenodiscard

return true if the smallest rotation from vector (a-c) to vector (b-c) is in counter-clock-wise direction; uses simulation-of-simplicity (assuming perturbations a >> b >> c) to avoid "vectors are collinear"

◆ chunkCount()

MRMESH_API size_t MR::chunkCount ( size_t totalSize,
size_t chunkSize,
size_t overlap = 0 )

returns the amount of chunks of given size required to cover the full array

◆ circumballCenters()

template<typename T >
bool MR::circumballCenters ( const Vector3< T > & a,
const Vector3< T > & b,
const Vector3< T > & c,
T radius,
Vector3< T > & centerPos,
Vector3< T > & centerNeg )
nodiscard

Given triangle ABC and ball radius, finds two centers of balls each touching all 3 triangle's vertices;

Returns
false if such balls do not exist (radius is smaller that circumcircle radius)

◆ circumcircleCenter() [1/2]

template<typename T >
Vector3< T > MR::circumcircleCenter ( const Vector3< T > & a,
const Vector3< T > & b )
nodiscard

Computes the center of the the triangle's 0AB circumcircle.

◆ circumcircleCenter() [2/2]

template<typename T >
Vector3< T > MR::circumcircleCenter ( const Vector3< T > & a,
const Vector3< T > & b,
const Vector3< T > & c )
inlinenodiscard

Computes the center of the the triangle's ABC circumcircle.

◆ circumcircleDiameter()

MRMESH_API float MR::circumcircleDiameter ( const MeshTopology & topology,
const VertCoords & points,
FaceId f )
nodiscard

returns circumcircle diameter of given mesh triangle

◆ circumcircleDiameterSq()

MRMESH_API float MR::circumcircleDiameterSq ( const MeshTopology & topology,
const VertCoords & points,
FaceId f )
nodiscard

returns squared circumcircle diameter of given mesh triangle

◆ classifyShellVert()

MRMESH_API ShellVertexInfo MR::classifyShellVert ( const MeshPart & mp,
const Vector3f & shellPoint,
const FindInnerShellSettings & settings = {} )
nodiscard

Tests

Parameters
shellPointfrom bidirectional shell constructed for an open
mp;
Returns
whether the distance from given point to given mesh part is of same sign as settings.side, if useWindingNumber = false, returns false for all points projecting on mesh boundary

◆ cloneRegion() [1/3]

MRMESH_API std::shared_ptr< ObjectLines > MR::cloneRegion ( const std::shared_ptr< ObjectLines > & objLines,
const UndirectedEdgeBitSet & region )
nodiscard

constructs new ObjectLines containing the region of data from input object

◆ cloneRegion() [2/3]

MRMESH_API std::shared_ptr< ObjectMesh > MR::cloneRegion ( const std::shared_ptr< ObjectMesh > & objMesh,
const FaceBitSet & region,
bool copyTexture = true )
nodiscard

constructs new ObjectMesh containing the region of data from input object does not copy selection

◆ cloneRegion() [3/3]

MRMESH_API std::shared_ptr< ObjectPoints > MR::cloneRegion ( const std::shared_ptr< ObjectPoints > & objPoints,
const VertBitSet & region )
nodiscard

constructs new ObjectPoints containing the region of data from input object does not copy selection

◆ closestPointOnLineSegm()

template<typename V >
V MR::closestPointOnLineSegm ( const V & pt,
const LineSegm< V > & l )
nodiscard

◆ commonFilesName()

MRMESH_API std::string MR::commonFilesName ( const std::vector< std::filesystem::path > & files)
nodiscard

in case of empty vector, returns "Empty" in case of single input file.ext, returns ".EXT" in case of multiple files with same extension, returns ".EXTs" otherwise returns "Files"

◆ compensateRadius()

MRMESH_API Expected< void > MR::compensateRadius ( Mesh & mesh,
const CompensateRadiusParams & params )
nodiscard

compensate spherical milling tool radius in given mesh region making it possible to mill it note that tool milling outer surface of the mesh also please note that boundaries of the region are fixed

◆ compose()

template<typename T >
BMap< T, T > MR::compose ( const BMap< T, T > & a,
const BMap< T, T > & b )

computes the composition of two mappings x -> a(b(x))

◆ computeBasinVolume()

MRMESH_API double MR::computeBasinVolume ( const Mesh & mesh,
const FaceBitSet & faces,
float level )
nodiscard

computes the volume of given mesh basin below given water level;

Parameters
facesshall include all basin faces at least partially below the water level

◆ computeBoundingBox()

MRMESH_API Box3f MR::computeBoundingBox ( const MeshTopology & topology,
const VertCoords & points,
const FaceBitSet * region,
const AffineXf3f * toWorld = nullptr )
nodiscard

passes through all given faces (or whole mesh if region == null) and finds the minimal bounding box containing all of them if toWorld transformation is given then returns minimal bounding box in world space

◆ computeGridBox()

MRVOXELS_API Box3i MR::computeGridBox ( const Box3f & workArea,
float voxelSize )

Compute required voxel volume's dimensions for given work area.

◆ computeInSphereThicknessAtVertices()

MRMESH_API std::optional< VertScalars > MR::computeInSphereThicknessAtVertices ( const Mesh & mesh,
const InSphereSearchSettings & settings,
const ProgressCallback & progress = {} )
nodiscard

returns the thickness at each vertex as the diameter of the maximal inscribed sphere

◆ computeNormal()

MRMESH_API Vector3f MR::computeNormal ( const AllLocalTriangulations & triangs,
const VertCoords & points,
VertId v )
nodiscard

compute normal at point by averaging neighbor triangle normals weighted by triangle's angle at the point

◆ computeRayThicknessAtVertices()

MRMESH_API std::optional< VertScalars > MR::computeRayThicknessAtVertices ( const Mesh & mesh,
const ProgressCallback & progress = {} )
nodiscard

returns the distance from each vertex along minus normal to the nearest mesh intersection (or FLT_MAX if no intersection found)

◆ computeSkyViewFactor()

MRMESH_API VertScalars MR::computeSkyViewFactor ( const Mesh & terrain,
const VertCoords & samples,
const VertBitSet & validSamples,
const std::vector< SkyPatch > & skyPatches,
BitSet * outSkyRays = nullptr,
std::vector< MeshIntersectionResult > * outIntersections = nullptr )
nodiscard

computes relative radiation in each valid sample point by emitting rays from that point in the sky: the radiation is 1.0f if all rays reach the sky not hitting the terrain; the radiation is 0.0f if all rays do not reach the sky because they are intercepted by the terrain;

Parameters
outSkyRays- optional output bitset where for every valid sample #i its rays are stored at indices [i*numPatches; (i+1)*numPatches), 0s for occluded rays (hitting the terrain) and 1s for the ones which don't hit anything and reach the sky
outIntersections- optional output vector of MeshIntersectionResult for every valid sample point

◆ computeSpaceDistances()

MRMESH_API VertScalars MR::computeSpaceDistances ( const Mesh & mesh,
const PointOnFace & start,
float range )
nodiscard

computes Euclidean 3D distances from given start point to all neighbor vertices within given

Parameters
rangeand to first vertices with the distance more than range

◆ computeSweptVolumeWithCustomToolDistance()

MRVOXELS_API Expected< Mesh > MR::computeSweptVolumeWithCustomToolDistance ( IComputeToolDistance & comp,
const ComputeSweptVolumeParameters & params )

Compute swept volume for given toolpath and tool Creates a distance-to-tool volume using custom tool distance computation object and converts it to mesh using the marching cubes algorithm

◆ computeSweptVolumeWithDistanceVolume()

MRVOXELS_API Expected< Mesh > MR::computeSweptVolumeWithDistanceVolume ( const ComputeSweptVolumeParameters & params)

Compute swept volume for given toolpath and tool Creates a distance-to-tool volume and converts it to mesh using the marching cubes algorithm

◆ computeSweptVolumeWithMeshMovement()

MRVOXELS_API Expected< Mesh > MR::computeSweptVolumeWithMeshMovement ( const ComputeSweptVolumeParameters & params)

Compute swept volume for given toolpath and tool Builds mesh for each tool movement and joins them using voxel boolean

◆ computeThicknessAtVertices()

MRMESH_API MR_BIND_IGNORE VertScalars MR::computeThicknessAtVertices ( const Mesh & mesh)

◆ computeTrianglesRepetitions()

MRMESH_API TrianglesRepetitions MR::computeTrianglesRepetitions ( const AllLocalTriangulations & triangs)
nodiscard

computes statistics about the number of triangle repetitions in local triangulations

◆ computeWorkArea()

MRVOXELS_API Box3f MR::computeWorkArea ( const Polyline3 & toolpath,
const MeshPart & tool )

Compute bounding box for swept volume for given tool and toolpath.

◆ Cone3< float >()

MR::Cone3< float > ( Cone3d ,
Cone3< double >  )

◆ constantCuspToolPath()

MRVOXELS_API Expected< ToolPathResult > MR::constantCuspToolPath ( const MeshPart & mp,
const ConstantCuspParams & params )

◆ constantZToolPath()

MRVOXELS_API Expected< ToolPathResult > MR::constantZToolPath ( const MeshPart & mp,
const ToolPathParams & params )

◆ contains()

template<typename T >
bool MR::contains ( const std::function< bool(Id< T >)> & pred,
Id< T > id )
inlinenodiscard

◆ convertContoursTo2d()

template<typename From >
Contours2d MR::convertContoursTo2d ( const From & from)
nodiscard

◆ convertContoursTo2f()

template<typename From >
Contours2f MR::convertContoursTo2f ( const From & from)
nodiscard

◆ convertContoursTo3d()

template<typename From >
Contours3d MR::convertContoursTo3d ( const From & from)
nodiscard

◆ convertContoursTo3f()

template<typename From >
Contours3f MR::convertContoursTo3f ( const From & from)
nodiscard

◆ convertContourTo2d()

template<typename From >
Contour2d MR::convertContourTo2d ( const From & from)
nodiscard

◆ convertContourTo2f()

template<typename From >
Contour2f MR::convertContourTo2f ( const From & from)
nodiscard

◆ convertContourTo3d()

template<typename From >
Contour3d MR::convertContourTo3d ( const From & from)
nodiscard

◆ convertContourTo3f()

template<typename From >
Contour3f MR::convertContourTo3f ( const From & from)
nodiscard

◆ convertIntFloatAllVerts()

MRMESH_API void MR::convertIntFloatAllVerts ( Mesh & mesh,
const CoordinateConverters & conv )

converts all vertices of the mesh first in integer-coordinates, and then back in float-coordinates; this is necessary to avoid small self-intersections near newly introduced vertices on cut-contours; this actually sligntly moves only small perentage of vertices near x=0 or y=0 or z=0 planes, where float-precision is higher than int-precision; newly introduced vertices on cut-contours are also converted, but we expected that they remain unchanged due to idempotent property of the conversion

◆ convertUnits() [1/2]

template<UnitEnum E, typename T >
detail::Units::MakeFloatingPoint< T > MR::convertUnits ( const std::optional< E > & from,
const std::optional< E > & to,
const T & value )
nodiscard

◆ convertUnits() [2/2]

template<UnitEnum E, typename T >
detail::Units::MakeFloatingPoint< T > MR::convertUnits ( E from,
E to,
const T & value )
nodiscard

◆ cotan() [1/3]

float MR::cotan ( const MeshTopology & topology,
const VertCoords & points,
UndirectedEdgeId ue )
inlinenodiscard

computes sum of cotangents of the angle in the left and right triangles opposite to given edge, consider cotangents zero for not existing triangles

◆ cotan() [2/3]

template<typename T >
T MR::cotan ( const Triangle3< T > & t,
T absMaxVal = std::numeric_limits<T>::max() )
inlinenodiscard

given triangle by its three vertices: t[0], t[1], t[2], returns the cotangent of the angle at t[2], but not larger by magnitude than absMaxVal

◆ cotan() [3/3]

template<typename T >
T MR::cotan ( T a,
T b,
T c )
inlinenodiscard

given (a, b, c) - the side lengths of a triangle, returns the cotangent of the angle opposite the side with length a see "An Algorithm for the Construction of Intrinsic Delaunay Triangulations with Applications to Digital Geometry Processing". https://page.math.tu-berlin.de/~bobenko/papers/InDel.pdf

◆ createRenderObject() [1/2]

template<typename ObjectType >
MR_BIND_IGNORE std::unique_ptr< IRenderObject > MR::createRenderObject ( const VisualObject & visObj)

◆ createRenderObject() [2/2]

MR_BIND_IGNORE MRMESH_API std::unique_ptr< IRenderObject > MR::createRenderObject ( const VisualObject & visObj,
const std::type_index & type )

◆ createRibbonConfigFromJson()

MRVIEWER_API RibbonConfig MR::createRibbonConfigFromJson ( const Json::Value & root)

◆ createRootFormObject()

MRMESH_API std::shared_ptr< SceneRootObject > MR::createRootFormObject ( std::shared_ptr< Object > obj)

Removes all obj children and attaches it to newly created SceneRootObject note that it does not respect obj xf

◆ createShader()

MRVIEWER_API void MR::createShader ( const std::string & shader_name,
const std::string & vert_source,
const std::string & frag_source,
GLuint & prog_id,
const DisabledWarnings & suppressedWarns = {} )

◆ createSymbolContours()

MRSYMBOLMESH_API Expected< Contours2f > MR::createSymbolContours ( const SymbolMeshParams & params)

◆ createSymbolsMesh()

MRSYMBOLMESH_API Expected< Mesh > MR::createSymbolsMesh ( const SymbolMeshParams & params)

◆ curveFromPoints() [1/2]

MRMESH_API Expected< CurveFunc > MR::curveFromPoints ( const CurvePoints & cp,
bool unitLength = true,
float * outCurveLen = nullptr )

given a polyline by its vertices, returns curve function representing it; return an error if the polyline is less than 2 points or all points have exactly the same location

Parameters
unitLengthif true, then the lengths are normalized for the last point to have unit length
outCurveLenoptional output of the total polyline length (before possible normalization)

◆ curveFromPoints() [2/2]

MRMESH_API Expected< CurveFunc > MR::curveFromPoints ( CurvePoints && cp,
bool unitLength = true,
float * outCurveLen = nullptr )

◆ cutAlongEdgeLoop() [1/2]

MRMESH_API EdgeLoop MR::cutAlongEdgeLoop ( Mesh & mesh,
const EdgeLoop & c0 )

given a closed loop of edges, splits the surface along that loop so that after return: 1) returned loop has the same size as input, with corresponding edges in same indexed elements of both; 2) all edges of c0 have no left faces; 3) all returned edges have no right faces; 4) vertices of the given mesh are updated

◆ cutAlongEdgeLoop() [2/2]

MRMESH_API EdgeLoop MR::cutAlongEdgeLoop ( MeshTopology & topology,
const EdgeLoop & c0 )

given a closed loop of edges, splits the surface along that loop so that after return: 1) returned loop has the same size as input, with corresponding edges in same indexed elements of both; 2) all edges of c0 have no left faces; 3) all returned edges have no right faces;

◆ cutMeshByContour()

MRMESH_API Expected< FaceBitSet > MR::cutMeshByContour ( Mesh & mesh,
const Contour3f & contour,
const AffineXf3f & xf = {} )
nodiscard

Cuts mesh by contour by projecting all the points

Parameters
xftransformation from the CSYS of contour to the CSYS of mesh
Note
mesh is modified, see cutMesh for info
it might be useful to subdivide mesh before cut, to avoid issues related to lone contours
Returns
Faces to the left of the polyline

◆ cutMeshByContours()

MRMESH_API Expected< FaceBitSet > MR::cutMeshByContours ( Mesh & mesh,
const Contours3f & contours,
const AffineXf3f & xf = {} )
nodiscard

Cuts mesh by contours by projecting all the points

Parameters
xftransformation from the CSYS of contour to the CSYS of mesh
Note
mesh is modified, see cutMesh for info
it might be useful to subdivide mesh before cut, to avoid issues related to lone contours
Returns
Faces to the left of the polyline

◆ cutMeshByProjection()

MRMESH_API Expected< std::vector< EdgePath > > MR::cutMeshByProjection ( Mesh & mesh,
const Contours3f & contours,
const CutByProjectionSettings & settings )
nodiscard

Performs orthographic projection with of given contours to mesh and cut result lines, fails if any point of contours has missed mesh on projection stage or cut contours contains self-intersections.

Note
it might be useful to subdivide mesh before cut, to avoid issues related to lone contours
Parameters
meshfor cutting, it will be changed
contoursfor projection onto mesh
settingsto specify direction and contours to mesh space transformation
Returns
newly appeared edges on the mesh after cut or error

◆ Cylinder3< float >()

MR::Cylinder3< float > ( Cylinder3d ,
Cylinder3< double >  )

◆ dblArea() [1/5]

float MR::dblArea ( const MeshTopology & topology,
const VertCoords & points,
FaceId f )
inlinenodiscard

returns twice the area of given face

◆ dblArea() [2/5]

float MR::dblArea ( const MeshTopology & topology,
const VertCoords & points,
VertId v )
inlinenodiscard

computes the length of summed directed double areas of all triangles around given vertex

◆ dblArea() [3/5]

template<typename T >
T MR::dblArea ( const Triangle3< T > & t)
inlinenodiscard

computes twice the area of given triangle

◆ dblArea() [4/5]

template<typename T >
T MR::dblArea ( const Vector2< T > & p,
const Vector2< T > & q,
const Vector2< T > & r )
inlinenodiscard

computes twice the area of given triangle

◆ dblArea() [5/5]

template<typename T >
T MR::dblArea ( const Vector3< T > & p,
const Vector3< T > & q,
const Vector3< T > & r )
inlinenodiscard

computes twice the area of given triangle

◆ dblAreaSq()

template<typename T >
T MR::dblAreaSq ( const Vector3< T > & p,
const Vector3< T > & q,
const Vector3< T > & r )
inlinenodiscard

computes the square of double area of given triangle

◆ deactivateFarPairs()

MRMESH_API size_t MR::deactivateFarPairs ( IPointPairs & pairs,
float maxDistSq )

reset active bit if pair distance is further than maxDistSq

◆ decimateContour()

MRMESH_API DecimatePolylineResult MR::decimateContour ( Contour3f & contour,
const DecimatePolylineSettings3 & settings = {} )

◆ decimateObjectMeshData()

MRMESH_API DecimateResult MR::decimateObjectMeshData ( ObjectMeshData & data,
const DecimateSettings & settings )

Performs mesh simplification with per-element attributes according to given settings; \detail settings.region must be null, and real simplification region will be data face selection (or whole mesh if no face selection)

◆ decimatePolyline()

MRMESH_API DecimatePolylineResult MR::decimatePolyline ( Polyline3 & polyline,
const DecimatePolylineSettings3 & settings = {} )

◆ decomposeMatrix3()

template<typename T >
void MR::decomposeMatrix3 ( const Matrix3< T > & m,
Matrix3< T > & rotation,
Matrix3< T > & scaling )

Decomposes matrix into rotation and scaling matrices.

◆ decorateExpected() [1/3]

template<typename F >
auto MR::decorateExpected ( F && f)

◆ decorateExpected() [2/3]

template<typename R , typename T , typename... Args>
auto MR::decorateExpected ( R(T::* memFunction )(Args...))

◆ decorateExpected() [3/3]

template<typename R , typename E , typename... Args>
auto MR::decorateExpected ( std::function< Expected< R, E >(Args...)> && f) -> std::function<R( Args... )>

◆ defaultSerializeMeshFormat()

MRMESH_API const std::string & MR::defaultSerializeMeshFormat ( )
nodiscard

returns file extension used to serialize ObjectMeshHolder by default (if not overridden in specific object), the string starts with '.'

◆ defaultSerializePointsFormat()

MRMESH_API const std::string & MR::defaultSerializePointsFormat ( )
nodiscard

returns file extension used to serialize ObjectPointsHolder by default (if not overridden in specific object), the string starts with '.'

◆ defaultSerializeVoxelsFormat()

MRVOXELS_API const std::string & MR::defaultSerializeVoxelsFormat ( )
nodiscard

returns file extension used to serialize ObjectVoxels by default (if not overridden in specific object), the string starts with '.'

◆ delRegionKeepBd() [1/2]

MR_BIND_IGNORE std::vector< EdgeLoop > MR::delRegionKeepBd ( Mesh & mesh,
const FaceBitSet & region,
bool keepLoneHoles = false )
inline

This is skipped in the bindings because it conflicts with the overload taking a pointer in C#. Since that overload is strictly more useful, we're keeping that one.

◆ delRegionKeepBd() [2/2]

MRMESH_API std::vector< EdgeLoop > MR::delRegionKeepBd ( Mesh & mesh,
const FaceBitSet * region = nullptr,
bool keepLoneHoles = false )

deletes all region faces, inner edges and vertices, but keeps boundary edges and vertices of the region (or whole mesh if region is null); if keepLoneHoles is set - keeps boundary even if it has no valid faces on other side returns edge loops, each having deleted region faces on the left, and not-region faces or holes on the right

◆ denoiseNormals()

MRMESH_API void MR::denoiseNormals ( const Mesh & mesh,
FaceNormals & normals,
const Vector< float, UndirectedEdgeId > & v,
float gamma )

Smooth face normals, given

Parameters
meshcontains topology information and coordinates for equation weights
normalsinput noisy normals and output smooth normals
vedge indicator function (1 - smooth edge, 0 - crease edge)
gammathe amount of smoothing: 0 - no smoothing, 1 - average smoothing, ... see the article "Mesh Denoising via a Novel Mumford-Shah Framework", equation (19)

◆ deserializeFromJson() [1/3]

MRMESH_API Expected< void > MR::deserializeFromJson ( const Json::Value & root,
EndMillCutter & cutter )

◆ deserializeFromJson() [2/3]

MRMESH_API Expected< void > MR::deserializeFromJson ( const Json::Value & root,
EndMillTool & tool )

◆ deserializeFromJson() [3/3]

MRVIEWER_API void MR::deserializeFromJson ( const Json::Value & root,
VisualObjectTagManager & manager )

◆ deserializeObjectTreeFrom3mf()

MRIOEXTRAS_API Expected< LoadedObject > MR::deserializeObjectTreeFrom3mf ( const std::filesystem::path & file,
const ProgressCallback & callback = {} )

◆ deserializeObjectTreeFromGltf()

MRIOEXTRAS_API Expected< std::shared_ptr< Object > > MR::deserializeObjectTreeFromGltf ( const std::filesystem::path & file,
ProgressCallback callback = {} )

◆ deserializeObjectTreeFromModel()

MRIOEXTRAS_API Expected< LoadedObject > MR::deserializeObjectTreeFromModel ( const std::filesystem::path & file,
const ProgressCallback & callback = {} )

◆ destPnt()

Vector3f MR::destPnt ( const MeshTopology & topology,
const VertCoords & points,
EdgeId e )
inlinenodiscard

returns coordinates of the edge destination

◆ destroyShader()

MRVIEWER_API void MR::destroyShader ( GLuint id)

◆ detectLoneContours()

MRMESH_API std::vector< int > MR::detectLoneContours ( const ContinuousContours & contours,
bool ignoreOpen = false )

Detects contours that fully lay inside one triangle if ignoreOpen then do not mark non-closed contours as lone, even if they really are returns they indices in contours

◆ dihedralAngle()

MRMESH_API float MR::dihedralAngle ( const MeshTopology & topology,
const VertCoords & points,
UndirectedEdgeId e )
nodiscard

given an edge between two triangular faces, computes the dihedral angle between them: 0 if both faces are in the same plane, positive if the faces form convex surface, negative if the faces form concave surface; please consider the usage of faster dihedralAngleSin(e) and dihedralAngleCos(e)

◆ dihedralAngleCos()

MRMESH_API float MR::dihedralAngleCos ( const MeshTopology & topology,
const VertCoords & points,
UndirectedEdgeId e )
nodiscard

given an edge between two triangular faces, computes cosine of dihedral angle between them: 1 if both faces are in the same plane, 0 if the surface makes right angle turn at the edge, -1 if the faces overlap one another

◆ dihedralAngleSin()

MRMESH_API float MR::dihedralAngleSin ( const MeshTopology & topology,
const VertCoords & points,
UndirectedEdgeId e )
nodiscard

given an edge between two triangular faces, computes sine of dihedral angle between them: 0 if both faces are in the same plane, positive if the faces form convex surface, negative if the faces form concave surface

◆ dilateRegion()

MRMESH_API bool MR::dilateRegion ( const PointCloud & pointCloud,
VertBitSet & region,
float dilation,
ProgressCallback cb = {},
const AffineXf3f * xf = nullptr )

expands the region on given euclidian distance. returns false if callback also returns false

◆ dirArea() [1/2]

MRMESH_API MR_BIND_IGNORE Vector3d MR::dirArea ( const MeshTopology & topology,
const VertCoords & points,
const FaceBitSet & fs )
nodiscard

computes the sum of directed areas for faces from given region This is skipped in the bindings because it conflicts with the overload taking a pointer in C#. Since that overload is strictly more useful, we're keeping that one.

◆ dirArea() [2/2]

Vector3d MR::dirArea ( const MeshTopology & topology,
const VertCoords & points,
const FaceBitSet * fs = nullptr )
inlinenodiscard

computes the sum of directed areas for faces from given region (or whole mesh)

◆ dirDblArea() [1/5]

Vector3f MR::dirDblArea ( const MeshTopology & topology,
const VertCoords & points,
FaceId f )
inlinenodiscard

computes directed double area for a triangular face from its vertices

◆ dirDblArea() [2/5]

MRMESH_API Vector3f MR::dirDblArea ( const MeshTopology & topology,
const VertCoords & points,
VertId v )
nodiscard

computes sum of directed double areas of all triangles around given vertex

◆ dirDblArea() [3/5]

template<typename T >
Vector3< T > MR::dirDblArea ( const Triangle3< T > & t)
inlinenodiscard

computes directed double area of given triangle

◆ dirDblArea() [4/5]

template<typename T >
Vector3< T > MR::dirDblArea ( const Vector3< T > & p,
const Vector3< T > & q,
const Vector3< T > & r )
inlinenodiscard

computes directed double area of triangle PQR

◆ dirDblArea() [5/5]

template<typename T >
Vector3< T > MR::dirDblArea ( const Vector3< T > & q,
const Vector3< T > & r )
inlinenodiscard

computes directed double area of triangle 0QR

◆ dirDblAreas()

MRMESH_API Vector< Vector3f, VertId > MR::dirDblAreas ( const MeshTopology & topology,
const VertCoords & points,
const VertBitSet * region = nullptr )
nodiscard

computes and returns the directed double area for every (region) vertex in the mesh

◆ discreteGaussianCurvature()

float MR::discreteGaussianCurvature ( const MeshTopology & topology,
const VertCoords & points,
VertId v,
bool * outBoundaryVert = nullptr )
inlinenodiscard

computes discrete Gaussian curvature (or angle defect) at given vertex, which 0 in inner vertices on planar mesh parts and reaches 2*pi on needle's tip, see http://math.uchicago.edu/~may/REU2015/REUPapers/Upadhyay.pdf optionally returns whether the vertex is on boundary

◆ discreteMeanCurvature() [1/2]

MRMESH_API float MR::discreteMeanCurvature ( const MeshTopology & topology,
const VertCoords & points,
UndirectedEdgeId e )
nodiscard

computes discrete mean curvature in given edge, measures in length^-1; 0 for planar regions, positive for convex surface, negative for concave surface

◆ discreteMeanCurvature() [2/2]

MRMESH_API float MR::discreteMeanCurvature ( const MeshTopology & topology,
const VertCoords & points,
VertId v )
nodiscard

computes discrete mean curvature in given vertex, measures in length^-1; 0 for planar regions, positive for convex surface, negative for concave surface

◆ distance()

template<typename T >
T MR::distance ( T x,
T y )
inlineconstexprnoexcept

absolute difference between two value

◆ distanceSq()

template<typename T >
T MR::distanceSq ( T x,
T y )
inlineconstexprnoexcept

squared difference between two value

◆ dividePolylineWithPlane()

MRMESH_API MR_BIND_IGNORE void MR::dividePolylineWithPlane ( Polyline3 & polyline,
const Plane3f & plane,
const DividePolylineParameters & params = {} )

◆ divideWithPlane()

MRMESH_API PointCloud MR::divideWithPlane ( const PointCloud & points,
const Plane3f & plane,
const DividePointCloudOptionalOutput & optOut = {} )

This function cuts a point cloud with a plane, leaving only the part of mesh that lay in positive direction of normal

Returns
Point cloud object with vertices on the positive side of the plane
Parameters
pcInput point cloud that will be cut by the plane
planeInput plane to cut point cloud with
optOutoptional output of the function

◆ divRound() [1/4]

template<class T >
Vector2< T > MR::divRound ( const Vector2< T > & n,
T d )

computes division n/d with rounding of each components to the nearest integer, all signs of n and d are supported

◆ divRound() [2/4]

template<class T >
Vector3< T > MR::divRound ( const Vector3< T > & n,
T d )

computes division n/d with rounding of each components to the nearest integer, all signs of n and d are supported

◆ divRound() [3/4]

template<class T >
Vector4< T > MR::divRound ( const Vector4< T > & n,
T d )

computes division n/d with rounding of each components to the nearest integer, all signs of n and d are supported

◆ divRound() [4/4]

template<class T >
T MR::divRound ( T n,
T d )
inline

computes division n/d with rounding of the result to the nearest integer, all signs of n and d are supported https://stackoverflow.com/a/18067292/7325599

◆ doSegmentLineIntersect()

template<typename V >
bool MR::doSegmentLineIntersect ( const LineSegm< V > & x,
const Line< V > & y,
typename V::ValueType * xPos = nullptr,
typename V::ValueType * yPos = nullptr )
nodiscard

returns true if 2D line segment and 2D line intersect, optionally outputs intersection point as a parameter on both

◆ doSegmentSegmentIntersect()

MRMESH_API SegmentSegmentIntersectResult MR::doSegmentSegmentIntersect ( const std::array< PreciseVertCoords2, 4 > & vs)
nodiscard

checks whether the segments AB (indices 01) and segments CD (indices 23) intersect; uses simulation-of-simplicity to avoid edge-segment intersections and co-planarity

◆ doSegmentsIntersect()

template<typename V >
bool MR::doSegmentsIntersect ( const LineSegm< V > & x,
const LineSegm< V > & y,
typename V::ValueType * xPos = nullptr,
typename V::ValueType * yPos = nullptr )
nodiscard

returns true if two 2D segments intersect, optionally outputs intersection point as a parameter on both segments

◆ doubleOffsetMesh()

MRVOXELS_API Expected< Mesh > MR::doubleOffsetMesh ( const MeshPart & mp,
float offsetA,
float offsetB,
const OffsetParameters & params = {} )
nodiscard

Offsets mesh by converting it to voxels and back two times only closed meshes allowed (only Offset mode) typically offsetA and offsetB have distinct signs

◆ doubleOffsetVdb()

MRVOXELS_API Expected< Mesh > MR::doubleOffsetVdb ( const MeshPart & mp,
const DoubleOffsetSettings & settings )

performs convention from mesh to voxel grid and back with offsetA, and than same with offsetB; if input mesh is not closed then the sign of distance field will be obtained using generalized winding number computation

◆ edgeCenter()

Vector3f MR::edgeCenter ( const MeshTopology & topology,
const VertCoords & points,
UndirectedEdgeId e )
inlinenodiscard

computes the center of given edge

◆ edgeLength()

float MR::edgeLength ( const MeshTopology & topology,
const VertCoords & points,
UndirectedEdgeId e )
inlinenodiscard

returns Euclidean length of the edge

◆ edgeLengths()

MRMESH_API UndirectedEdgeScalars MR::edgeLengths ( const MeshTopology & topology,
const VertCoords & points )
nodiscard

computes and returns the lengths of all edges in the mesh

◆ edgeLengthSq()

float MR::edgeLengthSq ( const MeshTopology & topology,
const VertCoords & points,
UndirectedEdgeId e )
inlinenodiscard

returns squared Euclidean length of the edge (faster to compute than length)

◆ edgePoint() [1/2]

Vector3f MR::edgePoint ( const MeshTopology & topology,
const VertCoords & points,
const MeshEdgePoint & ep )
inlinenodiscard

computes coordinates of point given as edge and relative position on it

◆ edgePoint() [2/2]

Vector3f MR::edgePoint ( const MeshTopology & topology,
const VertCoords & points,
EdgeId e,
float f )
inlinenodiscard

returns a point on the edge: origin point for f=0 and destination point for f=1

◆ edgesBetweenDifferentColors()

MRMESH_API UndirectedEdgeBitSet MR::edgesBetweenDifferentColors ( const MeshTopology & topology,
const FaceColors & colors )
nodiscard

return all edges separating faces with different colors

◆ edgeSegment()

MRMESH_API LineSegm3f MR::edgeSegment ( const MeshTopology & topology,
const VertCoords & points,
EdgeId e )

returns line segment of given edge

◆ edgeVector()

Vector3f MR::edgeVector ( const MeshTopology & topology,
const VertCoords & points,
EdgeId e )
inlinenodiscard

returns vector equal to edge destination point minus edge origin point

◆ embedStructureToTerrain()

MRMESH_API Expected< Mesh > MR::embedStructureToTerrain ( const Mesh & terrain,
const Mesh & structure,
const EmbeddedStructureParameters & params )
nodiscard

◆ end() [1/6]

template<typename T , typename I >
auto MR::end ( Buffer< T, I > & a)
inlinenodiscard

◆ end() [2/6]

template<typename T , typename I >
auto MR::end ( const Buffer< T, I > & a)
inlinenodiscard

◆ end() [3/6]

std::filesystem::directory_iterator MR::end ( const Directory & )
inlinenodiscard

◆ end() [4/6]

std::filesystem::recursive_directory_iterator MR::end ( const DirectoryRecursive & )
inlinenodiscard

◆ end() [5/6]

template<typename T , typename I >
MR_BIND_IGNORE auto MR::end ( const Vector< T, I > & a)
inlinenodiscard

◆ end() [6/6]

template<typename T , typename I >
MR_BIND_IGNORE auto MR::end ( Vector< T, I > & a)
inlinenodiscard

◆ erodeRegion()

MRMESH_API bool MR::erodeRegion ( const PointCloud & pointCloud,
VertBitSet & region,
float erosion,
ProgressCallback cb = {},
const AffineXf3f * xf = nullptr )

shrinks the region on given euclidian distance. returns false if callback also returns false

◆ evalGridMinMax()

MRVOXELS_API void MR::evalGridMinMax ( const FloatGrid & grid,
float & min,
float & max )

◆ excludeAllEdgesWithHistory()

MRVIEWER_API void MR::excludeAllEdgesWithHistory ( const std::shared_ptr< ObjectMesh > & objMesh)

removes all edges from edge selection and from creases and adds history records for that; it is a good idea to make SCOPED_HISTORY before calling this function

◆ excludeLoneEdgesWithHistory()

MRVIEWER_API void MR::excludeLoneEdgesWithHistory ( const std::shared_ptr< ObjectMesh > & objMesh)

removes deleted edges from edge selection and from creases and adds history records for that; it is a good idea to make SCOPED_HISTORY before calling this function

◆ expand() [1/4]

MRMESH_API void MR::expand ( const MeshTopology & topology,
FaceBitSet & region,
int hops = 1 )

adds to the region all faces within given number of hops (stars) from the initial region boundary

◆ expand() [2/4]

MRMESH_API FaceBitSet MR::expand ( const MeshTopology & topology,
FaceId f,
int hops )
nodiscard

returns the region of all faces within given number of hops (stars) from the initial face

◆ expand() [3/4]

MRMESH_API void MR::expand ( const MeshTopology & topology,
VertBitSet & region,
int hops = 1 )

◆ expand() [4/4]

MRMESH_API VertBitSet MR::expand ( const MeshTopology & topology,
VertId v,
int hops )
nodiscard

returns the region of all vertices within given number of hops (stars) from the initial vertex

◆ expandFaces()

MRMESH_API FaceBitSet MR::expandFaces ( const MeshTopology & topology,
const FaceBitSet & region,
const UndirectedEdgeBitSet * stopEdges = nullptr )
nodiscard

returns given region with all faces sharing an edge with a region face;

Parameters
stopEdges- neighborhood via this edges will be ignored

◆ expectedValueOrThrow()

template<typename T >
decltype(auto) MR::expectedValueOrThrow ( T && e)
nodiscard

◆ exportToolPathToGCode()

MRVOXELS_API std::shared_ptr< ObjectGcode > MR::exportToolPathToGCode ( const std::vector< GCommand > & commands)

◆ extractIntersectionContours()

MRMESH_API MR_BIND_IGNORE Contours3f MR::extractIntersectionContours ( const Mesh & meshA,
const Mesh & meshB,
const ContinuousContours & orientedContours,
const CoordinateConverters & converters,
const AffineXf3f * rigidB2A = nullptr )

extracts coordinates from two meshes intersection contours

◆ extractIsolines() [1/2]

MRMESH_API IsoLines MR::extractIsolines ( const MeshTopology & topology,
const VertMetric & vertValues,
const FaceBitSet * region = nullptr )
nodiscard

extracts all iso-lines from given scalar field and iso-value=0

◆ extractIsolines() [2/2]

MRMESH_API IsoLines MR::extractIsolines ( const MeshTopology & topology,
const VertScalars & vertValues,
float isoValue,
const FaceBitSet * region = nullptr )
nodiscard

extracts all iso-lines from given scalar field and iso-value

◆ extractMeshContours()

MRMESH_API Contours3f MR::extractMeshContours ( const OneMeshContours & meshContours)
nodiscard

◆ extractPlaneSections()

MRMESH_API PlaneSections MR::extractPlaneSections ( const MeshPart & mp,
const Plane3f & plane,
UseAABBTree u = UseAABBTree::Yes )
nodiscard

extracts all plane sections of given mesh

◆ extractSectionsFromPolyline()

MRMESH_API std::vector< EdgeSegment > MR::extractSectionsFromPolyline ( const Polyline3 & polyline,
const Plane3f & plane,
float eps,
UndirectedEdgeBitSet * positiveEdges = {} )

This function cuts polyline with a plane

plane cuts an edge if one end of the edge is below the plane and the other is not

Returns
Edge segments that are closer to the plane than
Parameters
eps.Segments are oriented according by plane normal ( segment.a <= segment.b)
polylineInput polyline that will be cut by the plane
planeInput plane to cut polyline with
epsMaximal distance from the plane
positiveEdgesEdges in a positive half-space relative to the plane or on the plane itself (only adds bits to the existing ones)

◆ extractXYPlaneSections()

MRMESH_API PlaneSections MR::extractXYPlaneSections ( const MeshPart & mp,
float zLevel,
UseAABBTree u = UseAABBTree::Yes )
nodiscard

extracts all sections of given mesh with the plane z=zLevel

◆ fillContourLeft() [1/2]

MRMESH_API FaceBitSet MR::fillContourLeft ( const MeshTopology & topology,
const EdgePath & contour )

◆ fillContourLeft() [2/2]

MRMESH_API FaceBitSet MR::fillContourLeft ( const MeshTopology & topology,
const std::vector< EdgePath > & contours )

◆ fillContours2D()

MRMESH_API Expected< void > MR::fillContours2D ( Mesh & mesh,
const std::vector< EdgeId > & holeRepresentativeEdges )

fill holes with border in same plane (i.e. after cut by plane)

Parameters
mesh- mesh with holes
holeRepresentativeEdges- each edge here represents a hole borders that should be filled should be not empty edges should have invalid left face (FaceId == -1)
Returns
Expected with has_value()=true if holes filled, otherwise - string error

◆ fillHoleNicely()

MRMESH_API FaceBitSet MR::fillHoleNicely ( Mesh & mesh,
EdgeId holeEdge,
const FillHoleNicelySettings & settings )

fills a hole in mesh specified by one of its edge, optionally subdivides new patch on smaller triangles, optionally make smooth connection with existing triangles outside the hole

Returns
triangles of the patch
Parameters
holeEdgeleft of this edge must not have a face and it will be filled

◆ fillHolesWithExtraPoints()

MRMESH_API bool MR::fillHolesWithExtraPoints ( Mesh & mesh,
PointCloud & extraPoints,
const FillHolesWithExtraPointsParams & params = {},
const ProgressCallback & progressCb = {} )
nodiscard

fills the holes in the mesh by adding triangles to it with the vertices in existing boundary vertices or given extra points (in any combination)

Parameters
extraPointsmust have either properly oriented normals or no normals, and it will be temporary modified during the call
Returns
false if the operation was canceled or incorrect input

◆ fillPlanarHole()

MRMESH_API Expected< void > MR::fillPlanarHole ( ObjectMeshData & data,
std::vector< EdgeLoop > & holeContours )

given an ObjectMeshData and the contours of a planar hole in it, fills the hole using fillContours2D function and updates all per-element attributes; if some contours were not closed on input, then it closes them by adding a bridge edge in each

◆ filterCreaseEdges()

MRMESH_API void MR::filterCreaseEdges ( const Mesh & mesh,
UndirectedEdgeBitSet & creaseEdges,
float critLength,
bool filterComponents = true,
bool filterBranches = false )

filters given edges using the following criteria: if

Parameters
filterComponentsis true then connected components with summary length of their edges less than
critLengthwill be excluded if
filterBranchesis true then branches shorter than
critLengthwill be excluded

◆ filterHistoryActionsVector()

MRMESH_API std::pair< bool, int > MR::filterHistoryActionsVector ( HistoryActionsVector & historyVector,
HistoryStackFilter filteringCondition,
size_t firstRedoIndex = 0,
bool deepFiltering = true )

Remove actions from history actions vector that match the condition.

Parameters
firstRedoIndex- set redo index for calculate how many actions removed before it
deepFiltering- filter actions into combined actions
Returns
pair (anything removed, how many removed before firstRedoIndex)

◆ FilterHistoryByCondition()

MRVIEWER_API void MR::FilterHistoryByCondition ( HistoryStackFilter filteringCondition,
bool deepFiltering = true )

Remove actions from global history (if it is enabled) that match the condition

Parameters
deepFiltering- filter actions into combined actions

◆ findBestFreeformDeformation()

MRMESH_API std::vector< Vector3f > MR::findBestFreeformDeformation ( const Box3f & box,
const std::vector< Vector3f > & source,
const std::vector< Vector3f > & target,
const Vector3i & resolution = Vector3i::diagonal(2),
const AffineXf3f * samplesToBox = nullptr )

◆ findCenterFromBBox()

MRMESH_API Vector3f MR::findCenterFromBBox ( const MeshTopology & topology,
const VertCoords & points )
nodiscard

computes bounding box and returns its center

◆ findCenterFromFaces()

MRMESH_API Vector3f MR::findCenterFromFaces ( const MeshTopology & topology,
const VertCoords & points )
nodiscard

computes center of mass considering that density of all triangles is the same

◆ findCenterFromPoints()

MRMESH_API Vector3f MR::findCenterFromPoints ( const MeshTopology & topology,
const VertCoords & points )
nodiscard

computes average position of all valid mesh vertices

◆ findClosestToMouseEdge() [1/2]

HoleEdgePoint MR::findClosestToMouseEdge ( const Vector2i & mousePos,
const std::vector< std::shared_ptr< ObjectLines > > & objsLines,
float accuracy = 5.5f )
inline

◆ findClosestToMouseEdge() [2/2]

MRVIEWER_API HoleEdgePoint MR::findClosestToMouseEdge ( const Vector2i & mousePos,
const std::vector< std::shared_ptr< ObjectLinesHolder > > & objsLines,
float accuracy = 5.5f )

find closest to mouse edge from polylines

Parameters
mousePosmouse position in screen
accuracymaximum distances from mouse position to line in viewport (screen) space
Returns
pair closest edge and according index of polyline

◆ findClosestToMouseHoleEdge()

MRVIEWER_API HoleEdgePoint MR::findClosestToMouseHoleEdge ( const Vector2i & mousePos,
const std::shared_ptr< ObjectMeshHolder > & objMesh,
const std::vector< EdgeId > & holeRepresentativeEdges,
float accuracy = 5.5f,
bool attractToVert = false,
float cornerAccuracy = 10.5f )

find closest to mouse edge from hole borders

Parameters
mousePosmouse position in screen
accuracy,cornerAccuracymaximum distances from mouse position to line / corner in viewport (screen) space
Returns
pair closest edge and according index of hole in holeRepresentativeEdges

◆ findClosestWeightedMeshPoint()

MRMESH_API MeshPointAndDistance MR::findClosestWeightedMeshPoint ( const Vector3f & loc,
const Mesh & mesh,
const DistanceFromWeightedPointsComputeParams & params )
nodiscard

consider a mesh where each vertex has additive weight, and this weight is linearly interpolated in mesh triangles, and the distance to a point is considered equal to (euclidean distance - weight), finds the point on given mesh with minimal distance to given 3D location

◆ findClosestWeightedPoint()

MRMESH_API PointAndDistance MR::findClosestWeightedPoint ( const Vector3f & loc,
const AABBTreePoints & tree,
const DistanceFromWeightedPointsComputeParams & params )
nodiscard

consider a point cloud where each point has additive weight, and the distance to a point is considered equal to (euclidean distance - weight), finds the point with minimal distance to given 3D location

◆ findCloseVertices() [1/4]

MRMESH_API std::optional< VertBitSet > MR::findCloseVertices ( const Mesh & mesh,
float closeDist,
const ProgressCallback & cb = {} )
nodiscard

finds all close vertices, where for each vertex there is another one located within given distance

◆ findCloseVertices() [2/4]

MRMESH_API std::optional< VertBitSet > MR::findCloseVertices ( const PointCloud & cloud,
float closeDist,
const ProgressCallback & cb = {} )
nodiscard

finds all close vertices, where for each vertex there is another one located within given distance

◆ findCloseVertices() [3/4]

MRMESH_API std::optional< VertBitSet > MR::findCloseVertices ( const VertCoords & points,
float closeDist,
const VertBitSet * valid = nullptr,
const ProgressCallback & cb = {} )
nodiscard

finds all close vertices, where for each vertex there is another one located within given distance

◆ findCloseVertices() [4/4]

MRMESH_API VertBitSet MR::findCloseVertices ( const VertMap & smallestMap)
nodiscard

finds all close vertices, where for each vertex there is another one located within given distance; smallestMap is the result of findSmallestCloseVertices function call

◆ findComponentBitSet()

template<typename I >
TypedBitSet< I > MR::findComponentBitSet ( UnionFind< I > & uf,
I a,
const TypedBitSet< I > * region = nullptr )

constructs in parallel the bitset with 1-bits corresponding to the elements from same set as (a); if region is provided then only its elements will be checked

◆ findCreaseEdges()

MRMESH_API UndirectedEdgeBitSet MR::findCreaseEdges ( const MeshTopology & topology,
const VertCoords & points,
float angleFromPlanar )
nodiscard

finds all mesh edges where dihedral angle is distinct from planar PI angle on at least given value

◆ findDirMaxBruteForce() [1/7]

MRMESH_API VertId MR::findDirMaxBruteForce ( const Vector2f & dir,
const Polyline2 & polyline )
nodiscard

finds the vertex in the polyline having the largest projection on given direction by traversing all valid vertices

◆ findDirMaxBruteForce() [2/7]

MRMESH_API VertId MR::findDirMaxBruteForce ( const Vector2f & dir,
const VertCoords2 & points,
const VertBitSet * region = nullptr )
nodiscard

finds the point having the largest projection on given direction by traversing all region points

◆ findDirMaxBruteForce() [3/7]

MRMESH_API VertId MR::findDirMaxBruteForce ( const Vector3f & dir,
const MeshPart & mp )
nodiscard

finds the vertex in the mesh part having the largest projection on given direction by traversing all (region) faces

◆ findDirMaxBruteForce() [4/7]

MRMESH_API VertId MR::findDirMaxBruteForce ( const Vector3f & dir,
const MeshVertPart & mp )
nodiscard

finds the vertex in the mesh part having the largest projection on given direction by traversing all (region) vertices

◆ findDirMaxBruteForce() [5/7]

MRMESH_API VertId MR::findDirMaxBruteForce ( const Vector3f & dir,
const PointCloud & cloud,
const VertBitSet * region = nullptr )
nodiscard

finds the point in the cloud having the largest projection on given direction by traversing all valid points

◆ findDirMaxBruteForce() [6/7]

MRMESH_API VertId MR::findDirMaxBruteForce ( const Vector3f & dir,
const Polyline3 & polyline )
nodiscard

finds the vertex in the polyline having the largest projection on given direction by traversing all valid vertices

◆ findDirMaxBruteForce() [7/7]

MRMESH_API VertId MR::findDirMaxBruteForce ( const Vector3f & dir,
const VertCoords & points,
const VertBitSet * region = nullptr )
nodiscard

finds the point having the largest projection on given direction by traversing all region points

◆ findDirMinMaxBruteForce() [1/7]

MRMESH_API MinMaxArg< float, VertId > MR::findDirMinMaxBruteForce ( const Vector2f & dir,
const Polyline2 & polyline )
nodiscard

finds the vertex in the polyline having the smallest and the largest projections on given direction by traversing all valid vertices

◆ findDirMinMaxBruteForce() [2/7]

MRMESH_API MinMaxArg< float, VertId > MR::findDirMinMaxBruteForce ( const Vector2f & dir,
const VertCoords2 & points,
const VertBitSet * region = nullptr )
nodiscard

finds the points having the smallest and the largest projections on given direction by traversing all region points

◆ findDirMinMaxBruteForce() [3/7]

MRMESH_API MinMaxArg< float, VertId > MR::findDirMinMaxBruteForce ( const Vector3f & dir,
const MeshPart & mp )
nodiscard

finds the vertices in the mesh part having the smallest and the largest projections on given direction by traversing all (region) faces

◆ findDirMinMaxBruteForce() [4/7]

MRMESH_API MinMaxArg< float, VertId > MR::findDirMinMaxBruteForce ( const Vector3f & dir,
const MeshVertPart & mp )
nodiscard

finds the vertices in the mesh part having the smallest and the largest projections on given direction by traversing all (region) vertices

◆ findDirMinMaxBruteForce() [5/7]

MRMESH_API MinMaxArg< float, VertId > MR::findDirMinMaxBruteForce ( const Vector3f & dir,
const PointCloud & cloud,
const VertBitSet * region = nullptr )
nodiscard

finds the points in the cloud having the smallest and the largest projections on given direction by traversing all valid points

◆ findDirMinMaxBruteForce() [6/7]

MRMESH_API MinMaxArg< float, VertId > MR::findDirMinMaxBruteForce ( const Vector3f & dir,
const Polyline3 & polyline )
nodiscard

finds the vertex in the polyline having the smallest and the largest projections on given direction by traversing all valid vertices

◆ findDirMinMaxBruteForce() [7/7]

MRMESH_API MinMaxArg< float, VertId > MR::findDirMinMaxBruteForce ( const Vector3f & dir,
const VertCoords & points,
const VertBitSet * region = nullptr )
nodiscard

finds the points having the smallest and the largest projections on given direction by traversing all region points

◆ findHalfSpacePoints()

MRMESH_API VertBitSet MR::findHalfSpacePoints ( const PointCloud & pc,
const Plane3f & plane )
Returns
All vertices on the positive side of the plane
Parameters
pcInput point cloud that will be cut by the plane
planeInput plane to cut point cloud with

◆ findIncidentFaces()

MRVIEWER_API FaceBitSet MR::findIncidentFaces ( const Viewport & viewport,
const BitSet & pixBs,
const ObjectMesh & obj,
bool onlyVisible = false,
bool includeBackfaces = true,
const std::vector< ObjectMesh * > * occludingMeshes = nullptr )

get faces ids of object located in selected area on viewport

Parameters
pixBsthe matrix of pixels (in local space of viewport) belonging selected area
onlyVisibleget only visible faces (that no covered another faces)
includeBackfacesget also faces from back side of object

◆ findInnerShellFacesWithSplits()

MRMESH_API FaceBitSet MR::findInnerShellFacesWithSplits ( const MeshPart & mp,
Mesh & shell,
const FindInnerShellSettings & settings = {} )
nodiscard

Finds inner-shell faces on bidirectional

Parameters
shellconstructed for an open
mp;The function will return all shell faces (after some subdivision) that have distance to mesh of same sign as settings.side

◆ findInnerShellVerts()

MRMESH_API VertBitSet MR::findInnerShellVerts ( const MeshPart & mp,
const Mesh & shell,
const FindInnerShellSettings & settings = {} )
nodiscard

Finds inner-shell vertices on bidirectional

Parameters
shellconstructed for an open
mp;The function will return all shell vertices that have distance to mesh of same sign as settings.side

◆ findInSphere() [1/2]

MRMESH_API InSphere MR::findInSphere ( const Mesh & mesh,
const MeshPoint & m,
const InSphereSearchSettings & settings )
nodiscard

finds maximal sphere inscribed in the mesh touching point (p) with center along the normal at (p)

◆ findInSphere() [2/2]

MRMESH_API InSphere MR::findInSphere ( const Mesh & mesh,
VertId v,
const InSphereSearchSettings & settings )
nodiscard

◆ findIntersectionContours()

MRMESH_API Contours3f MR::findIntersectionContours ( const Mesh & meshA,
const Mesh & meshB,
const AffineXf3f * rigidB2A = nullptr )

returns intersection contours of given meshes

◆ findLeftBoundary() [1/2]

MR_BIND_IGNORE std::vector< EdgeLoop > MR::findLeftBoundary ( const MeshTopology & topology,
const FaceBitSet & region )
inlinenodiscard

This is skipped in the bindings because it conflicts with the overload taking a pointer in C#. Since that overload is strictly more useful, we're keeping that one.

◆ findLeftBoundary() [2/2]

MRMESH_API std::vector< EdgeLoop > MR::findLeftBoundary ( const MeshTopology & topology,
const FaceBitSet * region = nullptr )
nodiscard

returns all region boundary loops; every loop has region faces on the left, and not-region faces or holes on the right

◆ findLeftBoundaryInsideMesh()

MRMESH_API std::vector< EdgePath > MR::findLeftBoundaryInsideMesh ( const MeshTopology & topology,
const FaceBitSet & region )
nodiscard

returns all region boundary paths; every path has region faces on the left, and valid not-region faces on the right

◆ findMaxDistanceSq()

MRMESH_API float MR::findMaxDistanceSq ( const PointCloud & a,
const PointCloud & b,
const AffineXf3f * rigidB2A = nullptr,
float maxDistanceSq = FLT_MAX )
nodiscard

returns the squared Hausdorff distance between two point clouds, that is the maximum of squared distances from each point to the other cloud (in both directions)

Parameters
rigidB2Arigid transformation from B-cloud space to A-cloud space, nullptr considered as identity transformation
maxDistanceSqupper limit on the positive distance in question, if the real distance is larger than the function exists returning maxDistanceSq

◆ findMaxDistanceSqOneWay()

MRMESH_API float MR::findMaxDistanceSqOneWay ( const PointCloud & a,
const PointCloud & b,
const AffineXf3f * rigidB2A = nullptr,
float maxDistanceSq = FLT_MAX )
nodiscard

returns the maximum of the squared distances from each B-point to A-cloud

Parameters
rigidB2Arigid transformation from B-cloud space to A-cloud space, nullptr considered as identity transformation
maxDistanceSqupper limit on the positive distance in question, if the real distance is larger than the function exists returning maxDistanceSq

◆ findNeighborVerts()

MRMESH_API VertBitSet MR::findNeighborVerts ( const Mesh & mesh,
const PointOnFace & start,
float rangeSq )
nodiscard

calculates all neighbor vertices within a given

Parameters
rangeand to first vertices with the distance more than range
rangeSqsquare of range

◆ findOuterLayer()

MRMESH_API FaceBitSet MR::findOuterLayer ( const Mesh & mesh)
nodiscard

given a double-layer mesh with one layer having normals outside and the other layer - inside, finds all faces of the outer layer; the algorithm first detects some seed faces of each layer by casting a ray from triangle's center in both directions along the normal; then remaining faces are redistributed toward the closest seed face

◆ findOutliers()

MRMESH_API Expected< VertBitSet > MR::findOutliers ( const PointCloud & pc,
const FindOutliersParams & params )

Finding outlier points.

◆ findOverhangs()

MRMESH_API Expected< std::vector< FaceBitSet > > MR::findOverhangs ( const Mesh & mesh,
const FindOverhangsSettings & settings )

Find face regions that might create overhangs.

Parameters
mesh- source mesh
settings- parameters
Returns
face regions

◆ findOverlappingTris()

MRMESH_API Expected< FaceBitSet > MR::findOverlappingTris ( const MeshPart & mp,
const FindOverlappingSettings & settings )
nodiscard

finds all triangles that have oppositely oriented close triangle in the mesh

◆ findPartialLens()

MRMESH_API Expected< std::vector< float > > MR::findPartialLens ( const CurvePoints & cp,
bool unitLength = true,
float * outCurveLen = nullptr )

given a polyline by its vertices, computes partial lengths along the polyline from the initial point; return an error if the polyline is less than 2 points or all points have exactly the same location

Parameters
unitLengthif true, then the lengths are normalized for the last point to have unit length
outCurveLenoptional output of the total polyline length (before possible normalization)

◆ findPathWithExtension()

MRMESH_API std::filesystem::path MR::findPathWithExtension ( const std::filesystem::path & pathWithoutExtension)
nodiscard

given file name without final extension, finds in the same folder an existing file with same stem and any extension

◆ findRegionBoundaryUndirectedEdgesInsideMesh()

MRMESH_API UndirectedEdgeBitSet MR::findRegionBoundaryUndirectedEdgesInsideMesh ( const MeshTopology & topology,
const FaceBitSet & region )
nodiscard

returns all region boundary edges, where each edge has a region face on one side, and a valid not-region face on another side

◆ findRegionOuterFaces()

MRMESH_API FaceBitSet MR::findRegionOuterFaces ( const MeshTopology & topology,
const FaceBitSet & region )
nodiscard
Returns
All out of region faces that have a common edge with at least one region face

◆ findRepeatedOrientedTriangles() [1/2]

MRMESH_API Triangulation MR::findRepeatedOrientedTriangles ( const AllLocalTriangulations & triangs,
int repetitions )
nodiscard

from local triangulations returns all oriented triangles with given number of repetitions each in [1,3]

◆ findRepeatedOrientedTriangles() [2/2]

MRMESH_API void MR::findRepeatedOrientedTriangles ( const AllLocalTriangulations & triangs,
Triangulation * outRep3,
Triangulation * outRep2 )

optional output with all oriented triangles that appear in exactly two local triangulations

from local triangulations returns all oriented triangles with 3 or 2 repetitions each; if both outRep3 and outRep2 are necessary then it is faster to call this function than above one

Parameters
outRep3optional output with all oriented triangles that appear in three local triangulations

◆ findRepeatedUnorientedTriangles()

MRMESH_API std::vector< UnorientedTriangle > MR::findRepeatedUnorientedTriangles ( const AllLocalTriangulations & triangs,
int repetitions )
nodiscard

from local triangulations returns all unoriented triangles with given number of repetitions each in [1,3]

◆ findRightBoundary() [1/2]

MR_BIND_IGNORE std::vector< EdgeLoop > MR::findRightBoundary ( const MeshTopology & topology,
const FaceBitSet & region )
inlinenodiscard

This is skipped in the bindings because it conflicts with the overload taking a pointer in C#. Since that overload is strictly more useful, we're keeping that one.

◆ findRightBoundary() [2/2]

MRMESH_API std::vector< EdgeLoop > MR::findRightBoundary ( const MeshTopology & topology,
const FaceBitSet * region = nullptr )
nodiscard

returns all region boundary loops; every loop has region faces on the right, and not-region faces or holes on the left

◆ findRootsBitSet()

template<typename I >
TypedBitSet< I > MR::findRootsBitSet ( const UnionFind< I > & uf,
const TypedBitSet< I > * region = nullptr )

constructs in parallel the bitset with 1-bits corresponding to root elements; if region is provided then only its elements will be checked

◆ findSegmentSegmentIntersectionPrecise() [1/2]

MRMESH_API Vector2f MR::findSegmentSegmentIntersectionPrecise ( const Vector2f & a,
const Vector2f & b,
const Vector2f & c,
const Vector2f & d,
CoordinateConverters2 converters )
nodiscard

finds intersection precise, using high precision int inside this function input should have intersection

◆ findSegmentSegmentIntersectionPrecise() [2/2]

MRMESH_API Vector2i MR::findSegmentSegmentIntersectionPrecise ( const Vector2i & a,
const Vector2i & b,
const Vector2i & c,
const Vector2i & d )
nodiscard

finds intersection precise, using high precision int inside this function input should have intersection

◆ findSignedDistances() [1/2]

MRMESH_API VertScalars MR::findSignedDistances ( const Mesh & refMesh,
const Mesh & mesh,
const MeshProjectionParameters & params = {},
IPointsToMeshProjector * projector = {} )
nodiscard

if projector is not given then CPU's computations will be used

Computes signed distances from valid vertices of test mesh to the closest point on the reference mesh: positive value - outside reference mesh, negative - inside reference mesh; this method can return wrong sign if the closest point is located on self-intersecting part of the mesh

Parameters
refMeshthe distances to this mesh will be returned
meshthe distances from valid vertices of this mesh will be returned

◆ findSignedDistances() [2/2]

MRMESH_API VertScalars MR::findSignedDistances ( const Mesh & refMesh,
const VertCoords & testPoints,
const VertBitSet * validTestPoints = {},
const MeshProjectionParameters & params = {},
IPointsToMeshProjector * projector = {} )
nodiscard

if projector is not given then CPU's computations will be used

Computes signed distances from given test points to the closest point on the reference mesh: positive value - outside reference mesh, negative - inside reference mesh; this method can return wrong sign if the closest point is located on self-intersecting part of the mesh

Parameters
refMeshthe distances to this mesh will be returned
validTestPointsthe distances from these points will be returned

◆ findSkyRays()

MRMESH_API BitSet MR::findSkyRays ( const Mesh & terrain,
const VertCoords & samples,
const VertBitSet & validSamples,
const std::vector< SkyPatch > & skyPatches,
std::vector< MeshIntersectionResult > * outIntersections = nullptr )
nodiscard

In each valid sample point tests the rays from that point in the sky;

Returns
bitset where for every valid sample #i its rays are stored at indices [i*numPatches; (i+1)*numPatches), 0s for occluded rays (hitting the terrain) and 1s for the ones which don't hit anything and reach the sky
Parameters
outIntersections- optional output vector of MeshIntersectionResult for every valid sample point

◆ findSmallestCloseVertices() [1/3]

MRMESH_API std::optional< VertMap > MR::findSmallestCloseVertices ( const Mesh & mesh,
float closeDist,
const ProgressCallback & cb = {} )
nodiscard

returns a map where each valid vertex is mapped to the smallest valid vertex Id located within given distance (including itself), and this smallest vertex is mapped to itself, each vertex not from valid set is mapped to itself

◆ findSmallestCloseVertices() [2/3]

MRMESH_API std::optional< VertMap > MR::findSmallestCloseVertices ( const PointCloud & cloud,
float closeDist,
const ProgressCallback & cb = {} )
nodiscard

returns a map where each valid vertex is mapped to the smallest valid vertex Id located within given distance (including itself), and this smallest vertex is mapped to itself, each vertex not from valid set is mapped to itself

◆ findSmallestCloseVertices() [3/3]

MRMESH_API std::optional< VertMap > MR::findSmallestCloseVertices ( const VertCoords & points,
float closeDist,
const VertBitSet * valid = nullptr,
const ProgressCallback & cb = {} )
nodiscard

returns a map where each valid vertex is mapped to the smallest valid vertex Id located within given distance (including itself), and this smallest vertex is mapped to itself, each vertex not from valid set is mapped to itself; the search tree is constructe inside

◆ findSmallestCloseVerticesUsingTree()

MRMESH_API std::optional< VertMap > MR::findSmallestCloseVerticesUsingTree ( const VertCoords & points,
float closeDist,
const AABBTreePoints & tree,
const VertBitSet * valid,
const ProgressCallback & cb = {} )
nodiscard

returns a map where each valid vertex is mapped to the smallest valid vertex Id located within given distance (including itself), and this smallest vertex is mapped to itself, each vertex not from valid set is mapped to itself; given tree is used as is

◆ findSpikeVertices()

MRMESH_API Expected< VertBitSet > MR::findSpikeVertices ( const MeshTopology & topology,
const VertCoords & points,
float minSumAngle,
const VertBitSet * region = nullptr,
const ProgressCallback & cb = {} )
nodiscard

returns vertices where the sum of triangle angles is below given threshold

◆ findTriangleSectionsByXYPlane()

MRMESH_API std::vector< LineSegm3f > MR::findTriangleSectionsByXYPlane ( const MeshPart & mp,
float zLevel,
std::vector< FaceId > * faces = nullptr,
UseAABBTree u = UseAABBTree::Yes )
nodiscard

finds all intersected triangles by the plane z=zLevel

Returns
the section's line segment within each such triangle;
Parameters
facesoptional output of the same size as return, where for each line segment one can find its triangle's id

this function must be faster than extractXYPlaneSections function when connecting continuous contours take most of the time

◆ findTriExitPos()

template<typename T >
std::optional< T > MR::findTriExitPos ( const Vector3< T > & b,
const Vector3< T > & c,
const Vector3< T > & grad )
nodiscard

◆ findTripleFaceIntersections()

MRMESH_API std::vector< FaceFaceFace > MR::findTripleFaceIntersections ( const MeshTopology & topology,
const ContinuousContours & selfContours )
nodiscard

given all self-intersection contours on a mesh, finds all intersecting triangle triples (every two triangles from a triple intersect); please note that not all such triples will have a common point

◆ findTwinEdgePairs()

MRMESH_API std::vector< EdgePair > MR::findTwinEdgePairs ( const Mesh & mesh,
float closeDist )
nodiscard

finds pairs of twin edges (each twin edge will be present at least in one of pairs)

◆ findTwinEdges() [1/2]

MRMESH_API EdgeBitSet MR::findTwinEdges ( const Mesh & mesh,
float closeDist )
nodiscard

finds all directed twin edges

◆ findTwinEdges() [2/2]

MRMESH_API EdgeBitSet MR::findTwinEdges ( const std::vector< EdgePair > & pairs)
nodiscard

◆ findTwinUndirectedEdgeHashMap() [1/2]

MRMESH_API UndirectedEdgeHashMap MR::findTwinUndirectedEdgeHashMap ( const Mesh & mesh,
float closeDist )
nodiscard

provided that each edge has at most one twin, composes bidirectional mapping between twins

◆ findTwinUndirectedEdgeHashMap() [2/2]

MRMESH_API UndirectedEdgeHashMap MR::findTwinUndirectedEdgeHashMap ( const std::vector< EdgePair > & pairs)
nodiscard

◆ findTwinUndirectedEdges() [1/2]

MRMESH_API UndirectedEdgeBitSet MR::findTwinUndirectedEdges ( const Mesh & mesh,
float closeDist )
nodiscard

finds all undirected twin edges

◆ findTwinUndirectedEdges() [2/2]

MRMESH_API UndirectedEdgeBitSet MR::findTwinUndirectedEdges ( const std::vector< EdgePair > & pairs)
nodiscard

◆ findVertexUV()

MRMESH_API std::optional< UVCoord > MR::findVertexUV ( const MeshTopology & topology,
VertId v,
const TriCornerUVCoords & triCornerUvCoords )
nodiscard

returns UV-coordinates at the given vertex if they are the same in all surrounding triangles; otherwise returns std::nullopt

◆ findVertexUVs()

MRMESH_API std::optional< VertUVCoords > MR::findVertexUVs ( const MeshTopology & topology,
const TriCornerUVCoords & triCornerUvCoords )
nodiscard

if all mesh vertices have unique UV-coordinates in all triangles, then returns them; otherwise returns std::nullopt

◆ findVertsInViewportArea()

MRVIEWER_API VertBitSet MR::findVertsInViewportArea ( const Viewport & viewport,
const BitSet & bsVec,
const ObjectPoints & obj,
bool includeBackfaces = true,
bool onlyVisible = false )

get vertex ids of object located in selected area on viewport

Parameters
bsVecthe matrix of pixels (in local space of viewport) belonging to selected area
includeBackfacesget also vertices with normals not toward the camera
onlyVisibleget only visible vertices (that no covered with clipping plane)

◆ findZcompensatedPositions()

MRMESH_API std::optional< VertCoords > MR::findZcompensatedPositions ( const Mesh & mesh,
const ZCompensateParams & params )
nodiscard

finds vertices positions of the mesh after z-compensation without modifying the mesh

◆ findZcompensationShifts()

MRMESH_API std::optional< VertScalars > MR::findZcompensationShifts ( const Mesh & mesh,
const ZCompensateParams & params )
nodiscard

finds the shift along z-axis for each vertex without modifying the mesh

◆ floatGridToVdbVolume()

MRVOXELS_API VdbVolume MR::floatGridToVdbVolume ( FloatGrid grid)

◆ fopen()

MR_BIND_IGNORE MRMESH_API FILE * MR::fopen ( const std::filesystem::path & filename,
const char * mode )

this version of fopen unlike std::fopen supports unicode file names on Windows

◆ forEachObjectKind()

template<typename F >
bool MR::forEachObjectKind ( F && func)

Calls func, which is ( auto kind ) -> bool, for each known object kind. If it returns true, stops immediately and also returns true.

◆ formatNoTrailingZeros()

MRMESH_API MR_BIND_IGNORE char * MR::formatNoTrailingZeros ( char * fmt,
double v,
int digitsAfterPoint,
int precision = 6 )

returns printf-format for floating-point value in decimal notation with given precision in digits and without trailing zeros after the decimal point

Parameters
fmtpreallocated buffer of 5 bytes
vvalue to print
digitsAfterPointmaximal number of digits after decimal point
precisionmaximal number of not-zero decimal digits

◆ fromSceneMison() [1/2]

MRMESH_API Expected< LoadedObject > MR::fromSceneMison ( const std::filesystem::path & path,
const ProgressCallback & callback = {} )

load scene from MISON file
JSON file with array named "Objects" or root array:
element fields:
"Filename" : required full path to file for loading object "XF": optional xf for loaded object "Name": optional name for loaded object

◆ fromSceneMison() [2/2]

MRMESH_API Expected< LoadedObject > MR::fromSceneMison ( std::istream & in,
const ProgressCallback & callback = {} )

◆ functionVolumeToSimpleVolume()

MRVOXELS_API Expected< SimpleVolumeMinMax > MR::functionVolumeToSimpleVolume ( const FunctionVolume & volume,
const ProgressCallback & callback = {} )

converts function volume into simple volume

◆ functionVolumeToVdbVolume()

MRVOXELS_API VdbVolume MR::functionVolumeToVdbVolume ( const FunctionVolume & functoinVolume,
ProgressCallback cb = {} )

◆ generalOffsetMesh()

MRVOXELS_API Expected< Mesh > MR::generalOffsetMesh ( const MeshPart & mp,
float offset,
const GeneralOffsetParameters & params )
nodiscard

Offsets mesh by converting it to voxels and back using one of three modes specified in the parameters

◆ get() [1/18]

template<size_t I, typename V >
std::tuple_element< I, AffineXf< V > >::type & MR::get ( AffineXf< V > & m)
constexprnoexcept

◆ get() [2/18]

template<size_t I>
uint8_t & MR::get ( Color & c)
constexprnoexcept

◆ get() [3/18]

template<size_t I, typename V >
const std::tuple_element< I, AffineXf< V > >::type & MR::get ( const AffineXf< V > & m)
constexprnoexcept

◆ get() [4/18]

template<size_t I>
const uint8_t & MR::get ( const Color & c)
constexprnoexcept

◆ get() [5/18]

template<size_t I, typename T >
const Matrix2< T >::VectorType & MR::get ( const Matrix2< T > & m)
constexprnoexcept

◆ get() [6/18]

template<size_t I, typename T >
const Matrix3< T >::VectorType & MR::get ( const Matrix3< T > & m)
constexprnoexcept

◆ get() [7/18]

template<size_t I, typename T >
const Matrix4< T >::VectorType & MR::get ( const Matrix4< T > & m)
constexprnoexcept

◆ get() [8/18]

template<size_t I, typename T >
int MR::get ( const MR::Id< T > & id)
constexprnoexcept

◆ get() [9/18]

template<size_t I, typename T >
const T & MR::get ( const Vector2< T > & v)
constexprnoexcept

◆ get() [10/18]

template<size_t I, typename T >
const T & MR::get ( const Vector3< T > & v)
constexprnoexcept

◆ get() [11/18]

template<size_t I, typename T >
const T & MR::get ( const Vector4< T > & v)
constexprnoexcept

◆ get() [12/18]

template<size_t I, typename T >
Matrix2< T >::VectorType & MR::get ( Matrix2< T > & m)
constexprnoexcept

◆ get() [13/18]

template<size_t I, typename T >
Matrix3< T >::VectorType & MR::get ( Matrix3< T > & m)
constexprnoexcept

◆ get() [14/18]

template<size_t I, typename T >
Matrix4< T >::VectorType & MR::get ( Matrix4< T > & m)
constexprnoexcept

◆ get() [15/18]

template<size_t I, typename T >
int & MR::get ( MR::Id< T > & id)
constexprnoexcept

◆ get() [16/18]

template<size_t I, typename T >
T & MR::get ( Vector2< T > & v)
constexprnoexcept

◆ get() [17/18]

template<size_t I, typename T >
T & MR::get ( Vector3< T > & v)
constexprnoexcept

◆ get() [18/18]

template<size_t I, typename T >
T & MR::get ( Vector4< T > & v)
constexprnoexcept

◆ getAligningXf()

MRMESH_API AffineXf3d MR::getAligningXf ( const PointToPlaneAligningTransform & p2pl,
ICPMode mode,
float angleLimit,
float scaleLimit,
const Vector3f & fixedRotationAxis )
nodiscard

given prepared (p2pl) object, finds the best transformation from it of given type with given limitations on rotation angle and global scale

◆ getAllObjectsInTree() [1/2]

template<typename ObjectT = Object>
MR_BIND_IGNORE std::vector< std::shared_ptr< ObjectT > > MR::getAllObjectsInTree ( Object & root,
const ObjectSelectivityType & type = ObjectSelectivityType::Selectable )
inline

◆ getAllObjectsInTree() [2/2]

template<typename ObjectT = Object>
std::vector< std::shared_ptr< ObjectT > > MR::getAllObjectsInTree ( Object * root,
const ObjectSelectivityType & type = ObjectSelectivityType::Selectable )

Traverses tree and collect objects of given type excluding root returns vector

◆ getAltModName()

MRVIEWER_API const char * MR::getAltModName ( )

◆ getAt() [1/4]

template<typename T , typename I >
T MR::getAt ( const Buffer< T, I > & bmap,
I key,
T def = {} )
inline

given some buffer map and a key, returns the value associated with the key, or default value if key is invalid

◆ getAt() [2/4]

template<typename K , typename V >
V MR::getAt ( const MapOrHashMap< K, V > & m,
K key,
V def = {} )
inlinenodiscard

◆ getAt() [3/4]

template<typename T >
T MR::getAt ( const std::vector< T > & a,
size_t id,
T def = {} )
inlinenodiscard

given some std::vector and a key, returns the value associated with the key, or default value if key is invalid or outside the std::vector

◆ getAt() [4/4]

template<typename T , typename I >
T MR::getAt ( const Vector< T, I > & a,
I id,
T def = {} )
inlinenodiscard

given some Vector and a key, returns the value associated with the key, or default value if key is invalid or outside the Vector

◆ GetAvailableLineWidthRange()

MRVIEWER_API const Vector2f & MR::GetAvailableLineWidthRange ( )

◆ getBoundaryFaces()

MRMESH_API FaceBitSet MR::getBoundaryFaces ( const MeshTopology & topology,
const FaceBitSet & region )
nodiscard

returns faces from given region that have at least one neighbor face with shared edge not from the region

◆ getBoundaryVerts()

MRMESH_API VertBitSet MR::getBoundaryVerts ( const MeshTopology & topology,
const FaceBitSet * region = nullptr )
nodiscard

composes the set of all boundary vertices for given region (or whole mesh if !region)

◆ getCancelMessage()

std::string MR::getCancelMessage ( const std::filesystem::path & path)
inlinenodiscard

◆ GetClipboardText()

MRVIEWER_API Expected< std::string > MR::GetClipboardText ( )
nodiscard

◆ getClosestEdge() [1/2]

UndirectedEdgeId MR::getClosestEdge ( const MeshTopology & topology,
const VertCoords & points,
const MeshTriPoint & p )
inlinenodiscard

returns one of three face edges, closest to given point

◆ getClosestEdge() [2/2]

MRMESH_API UndirectedEdgeId MR::getClosestEdge ( const MeshTopology & topology,
const VertCoords & points,
const PointOnFace & p )
nodiscard

returns one of three face edges, closest to given point

◆ getClosestVertex() [1/2]

VertId MR::getClosestVertex ( const MeshTopology & topology,
const VertCoords & points,
const MeshTriPoint & p )
inlinenodiscard

returns one of three face vertices, closest to given point

◆ getClosestVertex() [2/2]

MRMESH_API VertId MR::getClosestVertex ( const MeshTopology & topology,
const VertCoords & points,
const PointOnFace & p )
nodiscard

returns one of three face vertices, closest to given point

◆ getCornerControllerHoveredTextureMap()

MRVIEWER_API TexturePerFace MR::getCornerControllerHoveredTextureMap ( RegionId rId)

returns textures map with region faces hovered

◆ getCornerControllerRegionByFace()

MRVIEWER_API RegionId MR::getCornerControllerRegionByFace ( FaceId face)

returns region id of corner controller by its face

◆ getCornerControllerTexureMap()

MRVIEWER_API const TexturePerFace & MR::getCornerControllerTexureMap ( )

returns textures map for each part
actually all zeros

◆ GetCpuId()

MRMESH_API std::string MR::GetCpuId ( )
nodiscard

◆ getCrossedFaces()

MRMESH_API FaceBitSet MR::getCrossedFaces ( const MeshTopology & topology,
const IsoLine & isoline )
nodiscard

for a consistently oriented isoline, returns all faces it goes inside

◆ getCurrentStacktrace()

MRMESH_API std::string MR::getCurrentStacktrace ( )
nodiscard

returns string representation of the current stacktrace

◆ getCurrentStacktraceInline()

std::string MR::getCurrentStacktraceInline ( )
inlinenodiscard

returns string representation of the current stacktrace; the function is inlined, to put the code in any shared library; if std::stacktrace is first called from MRMesh.dll then it is not unloaded propely

◆ getCurvePoint()

MRMESH_API CurvePoint MR::getCurvePoint ( const CurvePoints & cp,
const std::vector< float > & lens,
float p )
nodiscard

given a polyline by its vertices, and partial lengths as computed by findPartialLens, finds the location of curve point at the given parameter with extrapolation if p outside [0, lens.back()], execution time is logarithmic relative to the number of points

◆ getDefaultUnitParams()

template<UnitEnum E>
const UnitToStringParams< E > & MR::getDefaultUnitParams ( )
nodiscard

◆ getDepthFirstObject() [1/2]

template<typename ObjectT = Object>
MR_BIND_IGNORE std::shared_ptr< ObjectT > MR::getDepthFirstObject ( Object & root,
const ObjectSelectivityType & type )
inline

◆ getDepthFirstObject() [2/2]

template<typename ObjectT = Object>
std::shared_ptr< ObjectT > MR::getDepthFirstObject ( Object * root,
const ObjectSelectivityType & type )

return first object of given type in depth-first traverse order excluding root

◆ getDepthFunctionLEqual()

int MR::getDepthFunctionLEqual ( DepthFunction funcType)
inline

◆ getDepthFunctionLess()

int MR::getDepthFunctionLess ( DepthFunction funcType)
inline

◆ GetDetailedOSName()

MRMESH_API std::string MR::GetDetailedOSName ( )
nodiscard

◆ getDragDropHandler()

std::unique_ptr< IDragDropHandler > MR::getDragDropHandler ( GLFWwindow * window)

◆ getEdgeOrdering()

MRMESH_API UndirectedEdgeBMap MR::getEdgeOrdering ( const FaceBMap & faceMap,
const MeshTopology & topology )
nodiscard

compute the order of edges given the order of faces: edges near first faces also appear first;

Parameters
faceMapold face id -> new face id

◆ GetEmbeddedPythonDirectory()

MRMESH_API MR_BIND_IGNORE std::filesystem::path MR::GetEmbeddedPythonDirectory ( )
nodiscard

◆ GetExeDirectory()

MRMESH_API MR_BIND_IGNORE std::filesystem::path MR::GetExeDirectory ( )
nodiscard

◆ getFeatureDirection()

MRMESH_API std::optional< Vector3f > MR::getFeatureDirection ( FeatureObject * feature)

◆ getFeatureNormal()

MRMESH_API std::optional< Vector3f > MR::getFeatureNormal ( FeatureObject * feature)

◆ getFeaturesTypeWithDirections()

MRMESH_API std::unordered_set< std::string > MR::getFeaturesTypeWithDirections ( )

◆ getFeaturesTypeWithNormals()

MRMESH_API std::unordered_set< std::string > MR::getFeaturesTypeWithNormals ( )

◆ getFlatSubtrees()

MRVIEWER_API std::vector< FlatTree > MR::getFlatSubtrees ( const std::vector< std::shared_ptr< Object > > & objs)

get list of subtrees satisfying any of the following rules:

  • all the subtree elements are present in the given object list
  • only the subtree's root element is present in the given object list TODO: optional predicate to ignore insignificant objects (non-visual objects, ancillary objects, etc.)

◆ GetFontsDirectory()

MRMESH_API MR_BIND_IGNORE std::filesystem::path MR::GetFontsDirectory ( )
nodiscard

◆ getFragmentShaderClippingBlock()

MRVIEWER_API std::string MR::getFragmentShaderClippingBlock ( )

◆ getFragmentShaderEndBlock()

MRVIEWER_API std::string MR::getFragmentShaderEndBlock ( ShaderTransparencyMode transparencyMode)

◆ getFragmentShaderHeaderBlock()

MRVIEWER_API std::string MR::getFragmentShaderHeaderBlock ( bool gl4,
bool alphaSort )

◆ getFragmentShaderOnlyOddBlock()

MRVIEWER_API std::string MR::getFragmentShaderOnlyOddBlock ( bool sampleMask)

◆ getFragmentShaderPointSizeBlock()

MRVIEWER_API std::string MR::getFragmentShaderPointSizeBlock ( )

◆ getGlfwModPrimaryCtrl()

MRVIEWER_API int MR::getGlfwModPrimaryCtrl ( )

◆ GetHomeDirectory()

MRMESH_API std::filesystem::path MR::GetHomeDirectory ( )
nodiscard

◆ getICPStatusInfo()

MRMESH_API std::string MR::getICPStatusInfo ( int iterations,
ICPExitType exitType )
nodiscard

returns status info string

◆ getIncidentEdges() [1/2]

MRMESH_API UndirectedEdgeBitSet MR::getIncidentEdges ( const MeshTopology & topology,
const FaceBitSet & faces )
nodiscard

composes the set of all undirected edges, having a face from given set from one of two sides

◆ getIncidentEdges() [2/2]

MRMESH_API UndirectedEdgeBitSet MR::getIncidentEdges ( const MeshTopology & topology,
const UndirectedEdgeBitSet & edges )
nodiscard

composes the set of all undirected edges, having at least one common vertex with an edge from given set

◆ getIncidentFaces() [1/2]

MRMESH_API FaceBitSet MR::getIncidentFaces ( const MeshTopology & topology,
const UndirectedEdgeBitSet & edges )
nodiscard

composes the set of all faces incident to given edges

◆ getIncidentFaces() [2/2]

MRMESH_API FaceBitSet MR::getIncidentFaces ( const MeshTopology & topology,
const VertBitSet & verts )
nodiscard

composes the set of all faces incident to given vertices

◆ getIncidentVerts() [1/4]

MRMESH_API VertBitSet MR::getIncidentVerts ( const MeshTopology & topology,
const FaceBitSet & faces )
nodiscard

composes the set of all vertices incident to given faces

◆ getIncidentVerts() [2/4]

MRMESH_API const VertBitSet & MR::getIncidentVerts ( const MeshTopology & topology,
const FaceBitSet * faces,
VertBitSet & store )
nodiscard

if faces-parameter is null pointer then simply returns the reference on all valid vertices; otherwise performs store = getIncidentVerts( topology, *faces ) and returns reference on store

◆ getIncidentVerts() [3/4]

MRMESH_API VertBitSet MR::getIncidentVerts ( const MeshTopology & topology,
const UndirectedEdgeBitSet & edges )
nodiscard

composes the set of all vertices incident to given edges

◆ getIncidentVerts() [4/4]

MRMESH_API const VertBitSet & MR::getIncidentVerts ( const MeshTopology & topology,
const UndirectedEdgeBitSet * edges,
VertBitSet & store )
nodiscard

if edges-parameter is null pointer then simply returns the reference on all valid vertices; otherwise performs store = getIncidentVerts( topology, *edges ) and returns reference on store

◆ getInnerEdges() [1/2]

MRMESH_API UndirectedEdgeBitSet MR::getInnerEdges ( const MeshTopology & topology,
const FaceBitSet & region )
nodiscard

composes the set of all edges having both left and right in given region

◆ getInnerEdges() [2/2]

MRMESH_API UndirectedEdgeBitSet MR::getInnerEdges ( const MeshTopology & topology,
const VertBitSet & verts )
nodiscard

composes the set of all edges with all their vertices in given set

◆ getInnerFaces()

MRMESH_API FaceBitSet MR::getInnerFaces ( const MeshTopology & topology,
const VertBitSet & verts )
nodiscard

composes the set of all faces with all their vertices in given set

◆ getInnerVerts() [1/3]

MRMESH_API MR_BIND_IGNORE VertBitSet MR::getInnerVerts ( const MeshTopology & topology,
const FaceBitSet & region )
nodiscard

composes the set of all vertices not on the boundary of a hole and with all their adjacent faces in given set This is skipped in the bindings because it conflicts with the overload taking a pointer in C#. Since that overload is strictly more useful, we're keeping that one.

◆ getInnerVerts() [2/3]

MRMESH_API VertBitSet MR::getInnerVerts ( const MeshTopology & topology,
const FaceBitSet * region = nullptr )
nodiscard

composes the set of all vertices not on the boundary of a hole and with all their adjacent faces in given set

◆ getInnerVerts() [3/3]

MRMESH_API VertBitSet MR::getInnerVerts ( const MeshTopology & topology,
const UndirectedEdgeBitSet & edges )
nodiscard

composes the set of all vertices with all their edges in given set

◆ getLeftTriPoints() [1/3]

Triangle3f MR::getLeftTriPoints ( const MeshTopology & topology,
const VertCoords & points,
EdgeId e )
inlinenodiscard

returns three points of left face of e: res[0] = orgPnt( e ), res[1] = destPnt( e )

◆ getLeftTriPoints() [2/3]

MRMESH_API void MR::getLeftTriPoints ( const MeshTopology & topology,
const VertCoords & points,
EdgeId e,
Vector3f & v0,
Vector3f & v1,
Vector3f & v2 )

returns three points of left face of e: v0 = orgPnt( e ), v1 = destPnt( e )

◆ getLeftTriPoints() [3/3]

MR_BIND_IGNORE void MR::getLeftTriPoints ( const MeshTopology & topology,
const VertCoords & points,
EdgeId e,
Vector3f(&) v[3] )
inline

returns three points of left face of e: v[0] = orgPnt( e ), v[1] = destPnt( e ) This one is not in the bindings because of the reference-to-array parameter.

◆ GetLibsDirectory()

MRMESH_API MR_BIND_IGNORE std::filesystem::path MR::GetLibsDirectory ( )
nodiscard

◆ getLimitedPos()

template<typename V >
V MR::getLimitedPos ( const V & pos,
const V & guidePos,
typename VectorTraits< V >::BaseType maxGuideDistSq )
inlinenodiscard

if (pos) is within the ball with the center at (guidePos) and squared radius (maxGuideDistSq), then returns (pos); otherwise returns the point on the ball's border closest to (pos)

◆ getLinesFragmentShader()

MRVIEWER_API std::string MR::getLinesFragmentShader ( ShaderTransparencyMode mode)

◆ getLinesJointFragmentShader()

MRVIEWER_API std::string MR::getLinesJointFragmentShader ( )

◆ getLinesJointPickerVertexShader()

MRVIEWER_API std::string MR::getLinesJointPickerVertexShader ( )

◆ getLinesJointVertexShader()

MRVIEWER_API std::string MR::getLinesJointVertexShader ( )

◆ getLinesPickerVertexShader()

MRVIEWER_API std::string MR::getLinesPickerVertexShader ( )

◆ getLinesVertexShader()

MRVIEWER_API std::string MR::getLinesVertexShader ( )

◆ getMeanSqDistToPlane()

float MR::getMeanSqDistToPlane ( const IPointPairs & pairs)
inlinenodiscard

computes root-mean-square deviation from points to target planes

◆ getMeanSqDistToPoint()

float MR::getMeanSqDistToPoint ( const IPointPairs & pairs)
inlinenodiscard

computes root-mean-square deviation between points

◆ getMeshFragmentShader()

MRVIEWER_API std::string MR::getMeshFragmentShader ( bool gl4,
ShaderTransparencyMode mode,
bool msaaEnabled )

◆ getMeshFragmentShaderArgumetsBlock()

MRVIEWER_API std::string MR::getMeshFragmentShaderArgumetsBlock ( )

◆ getMeshFragmentShaderColoringBlock()

MRVIEWER_API std::string MR::getMeshFragmentShaderColoringBlock ( )

◆ getMeshOrPoints()

MRMESH_API std::optional< MeshOrPoints > MR::getMeshOrPoints ( const Object * obj)
nodiscard

constructs MeshOrPoints from ObjectMesh or ObjectPoints, otherwise returns nullopt

◆ getMeshOrPointsXf()

MRMESH_API std::optional< MeshOrPointsXf > MR::getMeshOrPointsXf ( const Object * obj)
nodiscard

◆ getMeshVerticesShader()

MRVIEWER_API std::string MR::getMeshVerticesShader ( )

◆ getMouseModeString()

std::string MR::getMouseModeString ( MouseMode mode)
inline

◆ GetMRVersionString()

MRMESH_API const char * MR::GetMRVersionString ( )
nodiscard

◆ getMSAAPow()

int MR::getMSAAPow ( int msaa)
inline

◆ getNeighborFaces()

MRMESH_API FaceBitSet MR::getNeighborFaces ( const MeshTopology & topology,
const UndirectedEdgeBitSet & edges )
nodiscard

composes the set of all left and right faces of given edges

◆ getNObjectsLine()

template<typename ObjectT >
std::string MR::getNObjectsLine ( unsigned n)

◆ getNumActivePairs()

MRMESH_API size_t MR::getNumActivePairs ( const IPointPairs & pairs)
nodiscard

computes the number of active pairs

◆ getNumSamples()

size_t MR::getNumSamples ( const IPointPairs & pairs)
inlinenodiscard

returns the number of samples able to form pairs

◆ getOneMeshIntersectionContours()

MRMESH_API void MR::getOneMeshIntersectionContours ( const Mesh & meshA,
const Mesh & meshB,
const ContinuousContours & contours,
OneMeshContours * outA,
OneMeshContours * outB,
const CoordinateConverters & converters,
const AffineXf3f * rigidB2A = nullptr,
Contours3f * outPtsA = nullptr,
bool addSelfyTerminalVerts = false )

if true, then open self-intersection contours will be prolonged to terminal vertices

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

◆ getOneMeshSelfIntersectionContours()

MRMESH_API OneMeshContours MR::getOneMeshSelfIntersectionContours ( const Mesh & mesh,
const ContinuousContours & contours,
const CoordinateConverters & converters,
const AffineXf3f * rigidB2A = nullptr )
nodiscard

◆ getOptimalFaceOrdering()

MRMESH_API FaceBMap MR::getOptimalFaceOrdering ( const Mesh & mesh)
nodiscard

computes optimal order of faces: old face id -> new face id, the order is similar as in AABB tree, but faster to compute

◆ getOSNoSpaces()

MRMESH_API std::string MR::getOSNoSpaces ( )
nodiscard

◆ getPickedPointNormal()

MRMESH_API std::optional< Vector3f > MR::getPickedPointNormal ( const VisualObject & object,
const PickedPoint & point,
bool interpolated = true )

Returns object normal in local coordinates at given point,

Parameters
interpolatedif true returns interpolated normal for mesh object, otherwise returns flat normal returns std::nullopt if object or point is invalid, or if it is ObjectLines or ObjectPoints without normals

◆ getPickedPointPosition()

MRMESH_API std::optional< Vector3f > MR::getPickedPointPosition ( const VisualObject & object,
const PickedPoint & point )

Converts given point into local coordinates of its object, returns std::nullopt if object or point is invalid, or if it does not present in the object's topology

◆ getPickerFragmentShader()

MRVIEWER_API std::string MR::getPickerFragmentShader ( bool points,
bool cornerMode = true )

◆ getPlane3d()

MRMESH_API Plane3d MR::getPlane3d ( const MeshTopology & topology,
const VertCoords & points,
FaceId f )
nodiscard

◆ getPlane3f()

MRMESH_API Plane3f MR::getPlane3f ( const MeshTopology & topology,
const VertCoords & points,
FaceId f )
nodiscard

returns the plane containing given triangular face with normal looking outwards

◆ getPointsFragmentShader()

MRVIEWER_API std::string MR::getPointsFragmentShader ( ShaderTransparencyMode mode)

◆ getPointsVertexShader()

MRVIEWER_API std::string MR::getPointsVertexShader ( )

◆ getRegionBoundaryVerts()

MRMESH_API VertBitSet MR::getRegionBoundaryVerts ( const MeshTopology & topology,
const FaceBitSet & region )
nodiscard

composes the set of all boundary vertices for given region, unlike getBoundaryVerts the vertices of mesh boundary having no incident not-region faces are not returned

◆ getRegionEdges()

MRMESH_API EdgeBitSet MR::getRegionEdges ( const MeshTopology & topology,
const FaceBitSet & faces )
nodiscard

composes the set of all edges, having a face from given set at the left

◆ GetResourcesDirectory()

MRMESH_API MR_BIND_IGNORE std::filesystem::path MR::GetResourcesDirectory ( )
nodiscard

◆ getShaderMainBeginBlock()

MRVIEWER_API std::string MR::getShaderMainBeginBlock ( bool addDepthPeelSamplers)

◆ getStreamSize()

MRMESH_API MR_BIND_IGNORE std::streamoff MR::getStreamSize ( std::istream & in)

◆ getSumSqDistToPlane()

MRMESH_API NumSum MR::getSumSqDistToPlane ( const IPointPairs & pairs,
std::optional< double > inaccuracy = {} )
nodiscard

computes the number of active pairs and the sum of squared deviation from points to target planes or the difference between the squared distances between points to target planes and inaccuracy

◆ getSumSqDistToPoint()

MRMESH_API NumSum MR::getSumSqDistToPoint ( const IPointPairs & pairs,
std::optional< double > inaccuracy = {} )
nodiscard

computes the number of active pairs and the sum of squared distances between points or the difference between the squared distances between points and inaccuracy

◆ getSuperModName()

MRVIEWER_API const char * MR::getSuperModName ( )

◆ GetSystemInfoJson()

MRVIEWER_API Json::Value MR::GetSystemInfoJson ( )

◆ getSystemMemory()

MRMESH_API SystemMemory MR::getSystemMemory ( )
nodiscard

return information about memory available in the system

◆ GetTempDirectory()

MRMESH_API std::filesystem::path MR::GetTempDirectory ( )
nodiscard

◆ getTopmostObjects() [1/2]

template<typename ObjectT = Object>
MR_BIND_IGNORE std::vector< std::shared_ptr< ObjectT > > MR::getTopmostObjects ( Object & root,
const ObjectSelectivityType & type = ObjectSelectivityType::Selectable,
bool visibilityCheck = false )
inline

◆ getTopmostObjects() [2/2]

template<typename ObjectT = Object>
std::vector< std::shared_ptr< ObjectT > > MR::getTopmostObjects ( Object * root,
const ObjectSelectivityType & type = ObjectSelectivityType::Selectable,
bool visibilityCheck = false )

Returns all topmost objects of given type (if an object is returned, its children are not) excluding root.

◆ getTopmostVisibleObjects() [1/2]

template<typename ObjectT = Object>
MR_BIND_IGNORE std::vector< std::shared_ptr< ObjectT > > MR::getTopmostVisibleObjects ( Object & root,
const ObjectSelectivityType & type = ObjectSelectivityType::Selectable )
inline

◆ getTopmostVisibleObjects() [2/2]

template<typename ObjectT = Object>
std::vector< std::shared_ptr< ObjectT > > MR::getTopmostVisibleObjects ( Object * root,
const ObjectSelectivityType & type = ObjectSelectivityType::Selectable )

Returns all topmost visible objects of given type (if an object is returned, its children are not) excluding root.

◆ getTriPoints() [1/3]

Triangle3f MR::getTriPoints ( const MeshTopology & topology,
const VertCoords & points,
FaceId f )
inlinenodiscard

returns three points of given face

◆ getTriPoints() [2/3]

void MR::getTriPoints ( const MeshTopology & topology,
const VertCoords & points,
FaceId f,
Vector3f & v0,
Vector3f & v1,
Vector3f & v2 )
inline

returns three points of given face

◆ getTriPoints() [3/3]

MR_BIND_IGNORE void MR::getTriPoints ( const MeshTopology & topology,
const VertCoords & points,
FaceId f,
Vector3f(&) v[3] )
inline

returns three points of given face This one is not in the bindings because of the reference-to-array parameter.

◆ getTrivialVertexShader()

MRVIEWER_API std::string MR::getTrivialVertexShader ( )

◆ getTypeConverter()

MRVOXELS_API std::function< float(const char *)> MR::getTypeConverter ( ScalarType scalarType,
Uint64 range,
Int64 min )

get a function to convert binary data of specified format type to a scalar value

Parameters
scalarType- binary format type
range- (for integer types only) the range of possible values
min- (for integer types only) the minimal value

◆ getUnitInfo()

template<UnitEnum E>
const UnitInfo & MR::getUnitInfo ( E unit)
nodiscarddelete

◆ getUserConfigDir()

MRMESH_API std::filesystem::path MR::getUserConfigDir ( )
nodiscard

◆ getUserConfigFilePath()

MRMESH_API std::filesystem::path MR::getUserConfigFilePath ( )
nodiscard

◆ getVertexOrdering()

MRMESH_API VertBMap MR::getVertexOrdering ( const FaceBMap & faceMap,
const MeshTopology & topology )
nodiscard

compute the order of vertices given the order of faces: vertices near first faces also appear first;

Parameters
faceMapold face id -> new face id

◆ getViewerInstance()

MRVIEWER_API Viewer & MR::getViewerInstance ( )
nodiscard

returns global instance of Viewer class

◆ getVolumeFragmentShader()

MRVIEWER_API std::string MR::getVolumeFragmentShader ( )

◆ getVolumePickerFragmentShader()

MRVIEWER_API std::string MR::getVolumePickerFragmentShader ( )

◆ getXfFromOxyPlane() [1/2]

MRMESH_API AffineXf3f MR::getXfFromOxyPlane ( const Contours3f & contours)

computes the transformation that maps O into center mass of contours' points OXY into best plane containing the points

◆ getXfFromOxyPlane() [2/2]

MRMESH_API AffineXf3f MR::getXfFromOxyPlane ( const Mesh & mesh,
const std::vector< EdgePath > & paths )

◆ gradientInTri() [1/2]

template<typename T >
std::optional< Vector3< T > > MR::gradientInTri ( const Vector3< T > & a,
const Vector3< T > & b,
const Vector3< T > & c,
T va,
T vb,
T vc )
nodiscard

Consider triangle ABC, where a linear scalar field is defined in all 3 vertices: v(a) = va, v(b) = vb, v(c) = vc; returns field gradient in the triangle or std::nullopt if the triangle is degenerate

◆ gradientInTri() [2/2]

template<typename T >
std::optional< Vector3< T > > MR::gradientInTri ( const Vector3< T > & b,
const Vector3< T > & c,
T vb,
T vc )
nodiscard

Consider triangle 0BC, where a linear scalar field is defined in all 3 vertices: v(0) = 0, v(b) = vb, v(c) = vc; returns field gradient in the triangle or std::nullopt if the triangle is degenerate

◆ gridToMesh() [1/2]

MRVOXELS_API Expected< Mesh > MR::gridToMesh ( const FloatGrid & grid,
const GridToMeshSettings & settings )

converts OpenVDB Grid into mesh using Dual Marching Cubes algorithm

◆ gridToMesh() [2/2]

MRVOXELS_API Expected< Mesh > MR::gridToMesh ( FloatGrid && grid,
const GridToMeshSettings & settings )

converts OpenVDB Grid into mesh using Dual Marching Cubes algorithm; deletes grid in the middle to reduce peak memory consumption

◆ guessPrecision() [1/4]

template<detail::Units::Scalar T>
MRVIEWER_API int MR::guessPrecision ( T min,
T max )
nodiscard

◆ guessPrecision() [2/4]

template<typename T >
requires (VectorTraits<T>::size > 1 && detail::Units::Scalar<typename VectorTraits<T>::BaseType>)
int MR::guessPrecision ( T min,
T max )
nodiscard

◆ guessPrecision() [3/4]

template<detail::Units::Scalar T>
MRVIEWER_API int MR::guessPrecision ( T value)
nodiscard

◆ guessPrecision() [4/4]

template<typename T >
requires (VectorTraits<T>::size > 1 && detail::Units::Scalar<typename VectorTraits<T>::BaseType>)
int MR::guessPrecision ( T value)
nodiscard

◆ hasAnyIsoline() [1/2]

MRMESH_API bool MR::hasAnyIsoline ( const MeshTopology & topology,
const VertMetric & vertValues,
const FaceBitSet * region = nullptr )
nodiscard

quickly returns true if extractIsolines produce not-empty set for the same arguments

◆ hasAnyIsoline() [2/2]

MRMESH_API bool MR::hasAnyIsoline ( const MeshTopology & topology,
const VertScalars & vertValues,
float isoValue,
const FaceBitSet * region = nullptr )
nodiscard

quickly returns true if extractIsolines produce not-empty set for the same arguments

◆ hasAnyPlaneSection()

MRMESH_API bool MR::hasAnyPlaneSection ( const MeshPart & mp,
const Plane3f & plane,
UseAABBTree u = UseAABBTree::Yes )
nodiscard

quickly returns true if extractPlaneSections produce not-empty set for the same arguments

◆ hasAnyXYPlaneSection()

MRMESH_API bool MR::hasAnyXYPlaneSection ( const MeshPart & mp,
float zLevel,
UseAABBTree u = UseAABBTree::Yes )
nodiscard

quickly returns true if extractXYPlaneSections produce not-empty set for the same arguments

◆ hasFormatPlaceholders()

MRMESH_API bool MR::hasFormatPlaceholders ( std::string_view str)
nodiscard

Returns true if str has at least one {...} formatting placeholder.

◆ hasProhibitedChars()

MRMESH_API bool MR::hasProhibitedChars ( const std::string & line)
nodiscard

returns true if line contains at least one character (c) for which isProhibitedChar(c)==true

◆ holeDirArea()

MRMESH_API Vector3d MR::holeDirArea ( const MeshTopology & topology,
const VertCoords & points,
EdgeId e )
nodiscard

computes directed area of the hole specified by one of its edges with no valid left face (left is hole); if the hole is planar then returned vector is orthogonal to the plane pointing outside and its magnitude is equal to hole area

◆ holePerimeter()

MRMESH_API double MR::holePerimeter ( const MeshTopology & topology,
const VertCoords & points,
EdgeId e )
nodiscard

computes the perimeter of the hole specified by one of its edges with no valid left face (left is hole)

◆ inCircle() [1/2]

MRMESH_API bool MR::inCircle ( const PreciseVertCoords2 * vs)
nodiscard

◆ inCircle() [2/2]

MRMESH_API bool MR::inCircle ( const std::array< PreciseVertCoords2, 4 > & vs)
nodiscard

return true if 4th point in array lays inside circumcircle of first 3 points based triangle

◆ incrementForceRedrawFrames()

MRVIEWER_API void MR::incrementForceRedrawFrames ( int i = 1,
bool swapOnLastOnly = false )

Increment number of forced frames to redraw in event loop if swapOnLastOnly only last forced frame will be present on screen and all previous will not

◆ inflate() [1/2]

MRMESH_API void MR::inflate ( const MeshTopology & topology,
VertCoords & points,
const VertBitSet & verts,
const InflateSettings & settings )

◆ inflate() [2/2]

MRMESH_API void MR::inflate ( Mesh & mesh,
const VertBitSet & verts,
const InflateSettings & settings )

Inflates (in one of two sides) given mesh region, putting given vertices in such positions to make smooth surface inside verts-region, but sharp on its boundary;

Parameters
vertsmust not include all vertices of a mesh connected component

◆ inflate1()

MRMESH_API void MR::inflate1 ( const MeshTopology & topology,
VertCoords & points,
const VertBitSet & verts,
float pressure )

Inflates (in one of two sides) given mesh region, putting given vertices in such positions to make smooth surface inside verts-region, but sharp on its boundary; this function makes just 1 iteration of inflation and is used inside inflate(...)

◆ interpolateArcs()

MRVOXELS_API Expected< void > MR::interpolateArcs ( std::vector< GCommand > & commands,
const ArcInterpolationParams & params,
Axis axis )

◆ interpolateLines()

MRVOXELS_API Expected< void > MR::interpolateLines ( std::vector< GCommand > & commands,
const LineInterpolationParams & params,
Axis axis )

◆ isClosed() [1/2]

MRMESH_API bool MR::isClosed ( const ContinuousContour & contour)

returns true if contour is closed

◆ isClosed() [2/2]

bool MR::isClosed ( const Contour3f & c)
inlinenodiscard

◆ isConsistentlyOriented()

MRMESH_API bool MR::isConsistentlyOriented ( const MeshTopology & topology,
const IsoLine & isoline )
nodiscard

returns true if left(isoline[i].e) == right(isoline[i+1].e) and valid for all i; all above functions produce consistently oriented lines

◆ isNanFast()

bool MR::isNanFast ( float f)
inline

quickly tests whether given float is not-a-number

◆ isPickedPointValid()

MRMESH_API MR_BIND_IGNORE bool MR::isPickedPointValid ( const VisualObject * object,
const PickedPoint & point )

Checks that the picked point presents in the object's topology.

◆ isProhibitedChar()

bool MR::isProhibitedChar ( char c)
inlinenodiscard

returns true if the given character is any of prohibited in filenames in any of OSes https://stackoverflow.com/q/1976007/7325599

◆ isRigid()

template<typename T >
bool MR::isRigid ( const Matrix3< T > & m)

Returns true if matrix scale is identity.

◆ isTIFFFile()

MRMESH_API bool MR::isTIFFFile ( const std::filesystem::path & path)

◆ lacingToolPath()

MRVOXELS_API Expected< ToolPathResult > MR::lacingToolPath ( const MeshPart & mp,
const ToolPathParams & params,
Axis cutDirection )

◆ launchDefaultViewer()

MRVIEWER_API int MR::launchDefaultViewer ( const Viewer::LaunchParams & params,
const ViewerSetup & setup )

◆ leftCotan()

MRMESH_API float MR::leftCotan ( const MeshTopology & topology,
const VertCoords & points,
EdgeId e )
nodiscard

computes cotangent of the angle in the left( e ) triangle opposite to e, and returns 0 if left face does not exist

◆ leftDirDblArea()

MRMESH_API Vector3f MR::leftDirDblArea ( const MeshTopology & topology,
const VertCoords & points,
EdgeId e )
nodiscard

computes directed double area of left triangular face of given edge

◆ leftNormal()

Vector3f MR::leftNormal ( const MeshTopology & topology,
const VertCoords & points,
EdgeId e )
inlinenodiscard

computes triangular face normal from its vertices

◆ leftRing() [1/2]

IteratorRange< LeftRingIterator > MR::leftRing ( const MeshTopology & topology,
EdgeId edge )
inline

◆ leftRing() [2/2]

IteratorRange< LeftRingIterator > MR::leftRing ( const MeshTopology & topology,
FaceId f )
inline

◆ leftRing0()

IteratorRange< LeftRingIterator > MR::leftRing0 ( const MeshTopology & topology,
EdgeId edge )
inline

◆ leftTangent()

MRMESH_API Vector3f MR::leftTangent ( const MeshTopology & topology,
const VertCoords & points,
EdgeId e )
nodiscard

computes unit vector that is both orthogonal to given edge and to the normal of its left triangle, the vector is directed inside left triangle

◆ lerp()

template<typename V , typename T >
auto MR::lerp ( V v0,
V v1,
T t )
inlineconstexprnoexcept

Linear interpolation: returns v0 when t==0 and v1 when t==1.

◆ loadASCIIStl() [1/2]

MRMESH_API Expected< Mesh > MR::loadASCIIStl ( const std::filesystem::path & file,
const MeshLoadSettings & settings = {} )

loads mesh from file in textual .STL format

◆ loadASCIIStl() [2/2]

MRMESH_API Expected< Mesh > MR::loadASCIIStl ( std::istream & in,
const MeshLoadSettings & settings = {} )

loads mesh from stream in textual .STL format

◆ loadBinaryStl() [1/2]

MRMESH_API Expected< Mesh > MR::loadBinaryStl ( const std::filesystem::path & file,
const MeshLoadSettings & settings = {} )

loads mesh from file in binary .STL format

◆ loadBinaryStl() [2/2]

MRMESH_API Expected< Mesh > MR::loadBinaryStl ( std::istream & in,
const MeshLoadSettings & settings = {} )

loads mesh from stream in binary .STL format; important on Windows: in stream must be open in binary mode

◆ loadCornerControllerTextures()

MRVIEWER_API Vector< MeshTexture, TextureId > MR::loadCornerControllerTextures ( )

Loads 3 textures for corner controller: default, side hovered, corner hovered.

Returns
3 textures, or empty vector on error

◆ loadDxf() [1/2]

MRMESH_API Expected< Mesh > MR::loadDxf ( const std::filesystem::path & path,
const MeshLoadSettings & settings = {} )

loads mesh from file in .DXF format;

◆ loadDxf() [2/2]

MRMESH_API Expected< Mesh > MR::loadDxf ( std::istream & in,
const MeshLoadSettings & settings = {} )

loads mesh from stream in .DXF format;

◆ loadGL()

int MR::loadGL ( )
inline

◆ loadIOExtras()

MRIOEXTRAS_API void MR::loadIOExtras ( )

◆ loadMesh() [1/2]

MRMESH_API Expected< Mesh > MR::loadMesh ( const std::filesystem::path & file,
const MeshLoadSettings & settings = {} )

loads mesh from file in the format detected from file extension

◆ loadMesh() [2/2]

MRMESH_API Expected< Mesh > MR::loadMesh ( std::istream & in,
const std::string & extension,
const MeshLoadSettings & settings = {} )

loads mesh from stream in the format detected from given extension-string (*.ext); important on Windows: in stream must be open in binary mode

◆ loadMrmesh() [1/2]

MRMESH_API Expected< Mesh > MR::loadMrmesh ( const std::filesystem::path & file,
const MeshLoadSettings & settings = {} )

loads mesh from file in internal MeshLib format

◆ loadMrmesh() [2/2]

MRMESH_API Expected< Mesh > MR::loadMrmesh ( std::istream & in,
const MeshLoadSettings & settings = {} )

loads mesh from stream in internal MeshLib format; important on Windows: in stream must be open in binary mode

◆ loadObj() [1/2]

MRMESH_API Expected< Mesh > MR::loadObj ( const std::filesystem::path & file,
const MeshLoadSettings & settings = {} )

loads mesh from file in .OBJ format

◆ loadObj() [2/2]

MRMESH_API Expected< Mesh > MR::loadObj ( std::istream & in,
const MeshLoadSettings & settings = {} )

loads mesh from stream in .OBJ format; important on Windows: in stream must be open in binary mode

◆ loadOff() [1/2]

MRMESH_API Expected< Mesh > MR::loadOff ( const std::filesystem::path & file,
const MeshLoadSettings & settings = {} )

loads mesh from file in .OFF format

◆ loadOff() [2/2]

MRMESH_API Expected< Mesh > MR::loadOff ( std::istream & in,
const MeshLoadSettings & settings = {} )

loads mesh from stream in .OFF format

◆ loadPly() [1/3]

MRMESH_API Expected< Mesh > MR::loadPly ( const std::filesystem::path & file,
const MeshLoadSettings & settings = {} )

loads mesh from file in .PLY format;

◆ loadPly() [2/3]

MRMESH_API Expected< Mesh > MR::loadPly ( std::istream & in,
const MeshLoadSettings & settings = {} )

loads mesh from stream in .PLY format; important on Windows: in stream must be open in binary mode

◆ loadPly() [3/3]

MRMESH_API Expected< VertCoords > MR::loadPly ( std::istream & in,
const PlyLoadParams & params )
nodiscard

◆ loadStl() [1/2]

MRMESH_API Expected< Mesh > MR::loadStl ( const std::filesystem::path & file,
const MeshLoadSettings & settings = {} )

loads mesh from file in any .STL format: both binary and ASCII

◆ loadStl() [2/2]

MRMESH_API Expected< Mesh > MR::loadStl ( std::istream & in,
const MeshLoadSettings & settings = {} )

loads mesh from stream in any .STL format: both binary and ASCII; important on Windows: in stream must be open in binary mode

◆ Localtime()

MRMESH_API MR_BIND_IGNORE std::optional< std::tm > MR::Localtime ( std::time_t time)
nodiscard

◆ LocaltimeOrZero()

MRMESH_API MR_BIND_IGNORE std::tm MR::LocaltimeOrZero ( std::time_t time)
nodiscard

◆ makeArrow()

MRMESH_API Mesh MR::makeArrow ( const Vector3f & base,
const Vector3f & vert,
const float & thickness = 0.05f,
const float & coneRadius = 0.1f,
const float coneSize = 0.2f,
const int qual = 32 )

◆ makeBasisAxes()

MRMESH_API Mesh MR::makeBasisAxes ( const float & size = 1.0f,
const float & thickness = 0.05f,
const float & coneRadius = 0.1f,
const float coneSize = 0.2f,
const int qual = 32 )

◆ makeBoxMesh()

MRMESH_API Mesh MR::makeBoxMesh ( const Box3f & box)
nodiscard

creates mesh visualizing a box

◆ makeCloseToMeshVolume()

MRVOXELS_API Expected< SimpleBinaryVolume > MR::makeCloseToMeshVolume ( const MeshPart & mp,
const CloseToMeshVolumeParams & params )

makes a binary volume with close-to-surface predicate values according to the given parameters

◆ makeCone()

MRMESH_API Mesh MR::makeCone ( float radius0 = 0.1f,
float length = 1.0f,
int resolution = 32 )

◆ makeConvexHull() [1/4]

MRMESH_API Mesh MR::makeConvexHull ( const Mesh & in)

◆ makeConvexHull() [2/4]

MRMESH_API Mesh MR::makeConvexHull ( const PointCloud & in)

◆ makeConvexHull() [3/4]

MRMESH_API Mesh MR::makeConvexHull ( const VertCoords & points,
const VertBitSet & validPoints )

◆ makeConvexHull() [4/4]

MRMESH_API Contour2f MR::makeConvexHull ( Contour2f points)

◆ makeCornerControllerMesh()

MRVIEWER_API Mesh MR::makeCornerControllerMesh ( float size,
float cornerRatio = 0.2f )

Makes cube mesh with specified face structure for each 3-rank corner, each 2-rank corner and each side:
.

Parameters
sizefull side length of the cume
cornerRatioratio of side length that is used for corners
Returns
Cube mesh with specified face structure

◆ makeCornerControllerRotationArrowMesh()

MRVIEWER_API Mesh MR::makeCornerControllerRotationArrowMesh ( float size,
const Vector2f & shift,
bool ccw )

Makes planar arrow mesh that will be used for controlling in plane rotation in corner near cube controller.

Parameters
sizevertical length projection of Arrow
shiftshift in XY plane in world units (unis same as size)
ccwdirection of arrow
Returns
<Planar arrow mesh/returns>

◆ makeCornerControllerUVCoords()

MRVIEWER_API VertUVCoords MR::makeCornerControllerUVCoords ( float cornerRatio = 0.2f)

Creates UV coordinates for makeCornerControllerMesh output mesh for texture like:
"Right"" Left "
" Top ""Bottom"
"Front"" Back ".

Parameters
cornerRatioratio of side length that is used for corners, should be the same that was used in makeCornerControllerMesh
Returns
UV coordinates for each vertex of corner controller mesh

◆ makeCube()

MRMESH_API Mesh MR::makeCube ( const Vector3f & size = Vector3f::diagonal(1.0f),
const Vector3f & base = Vector3f::diagonal(-0.5f) )
nodiscard

creates box mesh with given min-corner (base) and given size in every dimension; with default parameters, creates unit cube mesh with the centroid in (0,0,0)

◆ makeCubeTopology()

MRMESH_API MeshTopology MR::makeCubeTopology ( )
nodiscard

creates cube's topology with 8 vertices, 12 triangular faces, 18 undirected edges. The order of vertices: 0_v: x=min, y=min, z=min 1_v: x=min, y=max, z=min 2_v: x=max, y=max, z=min 3_v: x=max, y=min, z=min 4_v: x=min, y=min, z=max 5_v: x=min, y=max, z=max 6_v: x=max, y=max, z=max 7_v: x=max, y=min, z=max

◆ makeCylinder()

MRMESH_API Mesh MR::makeCylinder ( float radius = 0.1f,
float length = 1.0f,
int resolution = 16 )

◆ makeCylinderAdvanced()

MRMESH_API Mesh MR::makeCylinderAdvanced ( float radius0 = 0.1f,
float radius1 = 0.1f,
float start_angle = 0.0f,
float arc_size = 2.0f *PI_F,
float length = 1.0f,
int resolution = 16 )

◆ makeDecimatedObjectMeshData()

MRMESH_API std::optional< ObjectMeshData > MR::makeDecimatedObjectMeshData ( const ObjectMesh & obj,
const DecimateSettings & settings,
DecimateResult * outRes = nullptr )
nodiscard

returns the data of decimated mesh given ObjectMesh (which remains unchanged) and decimation parameters

◆ makeDegenerate()

template<typename T >
Triangle3< T > MR::makeDegenerate ( const Triangle3< T > & t)
nodiscard

make degenerate triangle (all 3 points on a line) that maximally resembles the input one and has the same centroid

◆ makeDegenerateBandAroundRegion()

MRMESH_API void MR::makeDegenerateBandAroundRegion ( Mesh & mesh,
const FaceBitSet & region,
const MakeDegenerateBandAroundRegionParams & params = {} )

Create a band of degenerate faces along the border of the specified region and the rest of the mesh.

The function is useful for extruding the region without changing the existing faces and creating holes

Parameters
mesh- the target mesh
region- the region required to be separated by a band of degenerate faces
params- optional output parameters

◆ makeFreeFormOriginGrid()

MRMESH_API std::vector< Vector3f > MR::makeFreeFormOriginGrid ( const Box3f & box,
const Vector3i & resolution )

Returns positions of grid points in given box with given resolution.

◆ makeLevelOfDetails()

MRMESH_API std::shared_ptr< Object > MR::makeLevelOfDetails ( Mesh && mesh,
int maxDepth )
nodiscard

divides given mesh into hierarchy of mesh objects: the deepest level of the hierarchy has all details from the original mesh; top levels have progressively less number of objects and less details in each; the number of faces in any object on any level is about the same.

◆ makeMovementBuildBody()

MRMESH_API Mesh MR::makeMovementBuildBody ( const Contours3f & body,
const Contours3f & trajectory,
const MovementBuildBodyParams & params = {} )
nodiscard

makes mesh by moving body along trajectory if allowRotation rotate it in corners

◆ makeObjectFromClassName()

template<typename ... P>
std::shared_ptr< VisualObject > MR::makeObjectFromClassName ( std::string className,
P &&... params )
nodiscard

Allocates an object of type kind, passing params... to its constructor.

◆ makeObjectFromEnum()

template<typename ... P>
std::shared_ptr< VisualObject > MR::makeObjectFromEnum ( FeaturesObjectKind kind,
P &&... params )
nodiscard

Allocates an object of type kind, passing params... to its constructor.

◆ makeObjectFromVoxelsFile()

MRVOXELS_API Expected< LoadedObjects > MR::makeObjectFromVoxelsFile ( const std::filesystem::path & file,
const ProgressCallback & callback = {} )

◆ makeObjectTreeFromFolder()

MRVIEWER_API Expected< LoadedObject > MR::makeObjectTreeFromFolder ( const std::filesystem::path & folder,
bool dicomOnly,
const ProgressCallback & callback = {} )

load all supported files from given folder in new container object

◆ makeObjectTreeFromZip()

MRVIEWER_API Expected< LoadedObject > MR::makeObjectTreeFromZip ( const std::filesystem::path & zipPath,
const ProgressCallback & callback = {} )

load all supported files from given zip-archive in new container object

◆ makeObjectVoxelsFromFile()

MRVOXELS_API Expected< std::vector< std::shared_ptr< ObjectVoxels > > > MR::makeObjectVoxelsFromFile ( const std::filesystem::path & file,
ProgressCallback callback = {} )

loads voxels from given file in new object

◆ makeOpenCone()

MRMESH_API Mesh MR::makeOpenCone ( float radius = 1,
float zApex = 0,
float zBase = 1,
int numCircleSegments = 16 )

◆ makeOpenCylinder()

MRMESH_API Mesh MR::makeOpenCylinder ( float radius = 1,
float z1 = -1,
float z2 = 1,
int numCircleSegments = 16 )

◆ makeOuterHalfTorus()

MRMESH_API Mesh MR::makeOuterHalfTorus ( float primaryRadius = 1.0f,
float secondaryRadius = 0.1f,
int primaryResolution = 16,
int secondaryResolution = 16,
std::vector< Vector3f > * points = nullptr )

◆ makeParallelepiped()

MRMESH_API Mesh MR::makeParallelepiped ( const Vector3f side[3],
const Vector3f & base )
nodiscard

creates parallelepiped mesh with given min-corner base and given directional vectors size

◆ makePlane()

MRMESH_API Mesh MR::makePlane ( )

◆ makePrism()

MRMESH_API Mesh MR::makePrism ( float baseLength,
float leftAngle,
float rightAngle,
float height = 1.0f )

◆ makeRegularGridMesh() [1/2]

MRMESH_API Expected< Mesh > MR::makeRegularGridMesh ( size_t width,
size_t height,
const RegularGridLatticeValidator & validator,
const RegularGridLatticePositioner & positioner,
const RegularGridMeshFaceValidator & faceValidator = {},
ProgressCallback cb = {} )

◆ makeRegularGridMesh() [2/2]

MRMESH_API Expected< Mesh > MR::makeRegularGridMesh ( VertCoords pc,
ProgressCallback cb = {} )

◆ makeRenderObjectConstructor()

template<typename RenderObjType >
MR_BIND_IGNORE IRenderObjectConstructorLambda MR::makeRenderObjectConstructor ( )

◆ makeRigidXf()

MRMESH_API AffineXf3f MR::makeRigidXf ( const MeshPart & mp,
const AffineXf3f & meshXf )
nodiscard

◆ makeSignedByWindingNumber()

MRVOXELS_API Expected< void > MR::makeSignedByWindingNumber ( FloatGrid & grid,
const Vector3f & voxelSize,
const Mesh & refMesh,
const MakeSignedByWindingNumberSettings & settings )

set signs for unsigned distance field grid using generalized winding number computed at voxel grid point from refMesh

◆ makeSolidOfRevolution()

MRMESH_API Mesh MR::makeSolidOfRevolution ( const Contour2f & profile,
int resolution = 16 )

Makes a solid-of-revolution mesh. The resulting mesh is symmetrical about the z-axis. The profile points must be in the format { distance to the z-axis; z value }.

◆ makeSphere()

MRMESH_API Mesh MR::makeSphere ( const SphereParams & params)

creates a mesh of sphere with irregular triangulation

◆ makeSpline() [1/3]

MRMESH_API MarkedContour3f MR::makeSpline ( const Contour3f & controlPoints,
const SplineSettings & settings )
nodiscard
Parameters
controlPointsordered point the spline to interpolate
Returns
spline contour with same or more points than initially given, marks field highlights the points corresponding to input ones

◆ makeSpline() [2/3]

MRMESH_API MarkedContour3f MR::makeSpline ( MarkedContour3f in,
const Contour3f & normals,
float markStability = 1 )
nodiscard
Parameters
ininput marked contour
normalsthe curve at marked points will try to be orthogonal to given normal there
markStabilitya positive value, the more the value the closer marked points will be to their original positions
Returns
contour with same number of points and same marked, where each return point tries to be on a smooth curve

◆ makeSpline() [3/3]

MRMESH_API MarkedContour3f MR::makeSpline ( MarkedContour3f in,
float markStability = 1,
const Contour3f * normals = nullptr )
nodiscard
Parameters
ininput marked contour
markStabilitya positive value, the more the value the closer marked points will be to their original positions
normalsif provided the curve at marked points will try to be orthogonal to given normal there
Returns
contour with same number of points and same marked, where each return point tries to be on a smooth curve

◆ makeThickMesh()

MRMESH_API Mesh MR::makeThickMesh ( const Mesh & m,
const ThickenParams & params )

given a mesh m, representing a surface, creates new closed mesh by cloning mirrored mesh, and shifting original part and cloned part in different directions according to params, if original mesh was open then stitches corresponding boundaries of two parts

◆ makeTorus()

MRMESH_API Mesh MR::makeTorus ( float primaryRadius = 1.0f,
float secondaryRadius = 0.1f,
int primaryResolution = 16,
int secondaryResolution = 16,
std::vector< Vector3f > * points = nullptr )

◆ makeTorusWithComponents()

MRMESH_API Mesh MR::makeTorusWithComponents ( float primaryRadius = 1.0f,
float secondaryRadius = 0.1f,
int primaryResolution = 16,
int secondaryResolution = 16,
std::vector< Vector3f > * points = nullptr )

◆ makeTorusWithSelfIntersections()

MRMESH_API Mesh MR::makeTorusWithSelfIntersections ( float primaryRadius = 1.0f,
float secondaryRadius = 0.1f,
int primaryResolution = 16,
int secondaryResolution = 16,
std::vector< Vector3f > * points = nullptr )

◆ makeTorusWithSpikes()

MRMESH_API Mesh MR::makeTorusWithSpikes ( float primaryRadius = 1.0f,
float secondaryRadiusInner = 0.1f,
float secondaryRadiusOuter = 0.5f,
int primaryResolution = 16,
int secondaryResolution = 16,
std::vector< Vector3f > * points = nullptr )

◆ makeTorusWithUndercut()

MRMESH_API Mesh MR::makeTorusWithUndercut ( float primaryRadius = 1.0f,
float secondaryRadiusInner = 0.1f,
float secondaryRadiusOuter = 0.2f,
int primaryResolution = 16,
int secondaryResolution = 16,
std::vector< Vector3f > * points = nullptr )

◆ makeUVSphere()

MRMESH_API Mesh MR::makeUVSphere ( float radius = 1.0,
int horisontalResolution = 16,
int verticalResolution = 16 )

creates a mesh of sphere with regular triangulation (parallels and meridians)

◆ mapEdge() [1/7]

UndirectedEdgeId MR::mapEdge ( const UndirectedEdgeBMap & map,
UndirectedEdgeId src )
inlinenodiscard

given input edge (src), converts its id using given map

◆ mapEdge() [2/7]

EdgeId MR::mapEdge ( const WholeEdgeHashMap & map,
EdgeId src )
inlinenodiscard

given input edge (src), converts its id using given map

◆ mapEdge() [3/7]

UndirectedEdgeId MR::mapEdge ( const WholeEdgeHashMap & map,
UndirectedEdgeId src )
inlinenodiscard

given input edge (src), converts its id using given map

◆ mapEdge() [4/7]

EdgeId MR::mapEdge ( const WholeEdgeMap & map,
EdgeId src )
inlinenodiscard

given input edge (src), converts its id using given map

◆ mapEdge() [5/7]

UndirectedEdgeId MR::mapEdge ( const WholeEdgeMap & map,
UndirectedEdgeId src )
inlinenodiscard

given input edge (src), converts its id using given map

◆ mapEdge() [6/7]

EdgeId MR::mapEdge ( const WholeEdgeMapOrHashMap & m,
EdgeId src )
inlinenodiscard

given input edge (src), converts its id using given map

◆ mapEdge() [7/7]

UndirectedEdgeId MR::mapEdge ( const WholeEdgeMapOrHashMap & m,
UndirectedEdgeId src )
inlinenodiscard

given input edge (src), converts its id using given map

◆ mapEdges() [1/3]

MRMESH_API UndirectedEdgeBitSet MR::mapEdges ( const UndirectedEdgeBMap & map,
const UndirectedEdgeBitSet & src )
nodiscard

given input bit-set (src), converts each id corresponding to set bit using given map, and sets its bit in the resulting bit set

◆ mapEdges() [2/3]

MRMESH_API UndirectedEdgeBitSet MR::mapEdges ( const WholeEdgeHashMap & map,
const UndirectedEdgeBitSet & src )
nodiscard

given input bit-set (src), converts each id corresponding to set bit using given map, and sets its bit in the resulting bit set

◆ mapEdges() [3/3]

MRMESH_API UndirectedEdgeBitSet MR::mapEdges ( const WholeEdgeMap & map,
const UndirectedEdgeBitSet & src )
nodiscard

given input bit-set (src), converts each id corresponding to set bit using given map, and sets its bit in the resulting bit set

◆ mapEdgesWithHistory() [1/3]

MRVIEWER_API void MR::mapEdgesWithHistory ( const std::shared_ptr< ObjectMesh > & objMesh,
const UndirectedEdgeBMap & emap )

◆ mapEdgesWithHistory() [2/3]

MRVIEWER_API void MR::mapEdgesWithHistory ( const std::shared_ptr< ObjectMesh > & objMesh,
const WholeEdgeHashMap & emap )

◆ mapEdgesWithHistory() [3/3]

MRVIEWER_API void MR::mapEdgesWithHistory ( const std::shared_ptr< ObjectMesh > & objMesh,
const WholeEdgeMap & emap )

maps edge selection and creases and adds history records for that; it is a good idea to make SCOPED_HISTORY before calling this function

◆ mapNewToOldVector()

template<typename ValueT , typename IndexT >
void MR::mapNewToOldVector ( const Vector< ValueT, Id< IndexT > > & oldData,
const Vector< Id< IndexT >, Id< IndexT > > & newToOld,
Vector< ValueT, Id< IndexT > > & newData )

◆ mapOldToNewVector()

template<typename ValueT , typename IndexT >
void MR::mapOldToNewVector ( const Vector< ValueT, Id< IndexT > > & oldData,
const Vector< Id< IndexT >, Id< IndexT > > & newToOld,
Vector< ValueT, Id< IndexT > > & newData )

◆ marchingCubes() [1/5]

MRVOXELS_API Expected< Mesh > MR::marchingCubes ( const FunctionVolume & volume,
const MarchingCubesParams & params = {} )

◆ marchingCubes() [2/5]

MRVOXELS_API Expected< Mesh > MR::marchingCubes ( const SimpleBinaryVolume & volume,
const MarchingCubesParams & params = {} )

◆ marchingCubes() [3/5]

MRVOXELS_API Expected< Mesh > MR::marchingCubes ( const SimpleVolume & volume,
const MarchingCubesParams & params = {} )

◆ marchingCubes() [4/5]

MRVOXELS_API Expected< Mesh > MR::marchingCubes ( const SimpleVolumeMinMax & volume,
const MarchingCubesParams & params = {} )

◆ marchingCubes() [5/5]

MRVOXELS_API Expected< Mesh > MR::marchingCubes ( const VdbVolume & volume,
const MarchingCubesParams & params = {} )

◆ marchingCubesAsTriMesh() [1/5]

MRVOXELS_API Expected< TriMesh > MR::marchingCubesAsTriMesh ( const FunctionVolume & volume,
const MarchingCubesParams & params = {} )

◆ marchingCubesAsTriMesh() [2/5]

MRVOXELS_API Expected< TriMesh > MR::marchingCubesAsTriMesh ( const SimpleBinaryVolume & volume,
const MarchingCubesParams & params = {} )

◆ marchingCubesAsTriMesh() [3/5]

MRVOXELS_API Expected< TriMesh > MR::marchingCubesAsTriMesh ( const SimpleVolume & volume,
const MarchingCubesParams & params = {} )

◆ marchingCubesAsTriMesh() [4/5]

MRVOXELS_API Expected< TriMesh > MR::marchingCubesAsTriMesh ( const SimpleVolumeMinMax & volume,
const MarchingCubesParams & params = {} )

◆ marchingCubesAsTriMesh() [5/5]

MRVOXELS_API Expected< TriMesh > MR::marchingCubesAsTriMesh ( const VdbVolume & volume,
const MarchingCubesParams & params = {} )

◆ markedContour()

MarkedContour3f MR::markedContour ( Contour3f in)
inlinenodiscard
Returns
marked contour with all points from (in) marked

◆ markedFirstLast()

MarkedContour3f MR::markedFirstLast ( Contour3f in)
inlinenodiscard
Returns
marked contour with only first and last points from (in) marked

◆ mcOffsetMesh()

MRVOXELS_API Expected< Mesh > MR::mcOffsetMesh ( const MeshPart & mp,
float offset,
const OffsetParameters & params = {},
Vector< VoxelId, FaceId > * outMap = nullptr )
nodiscard

Offsets mesh by converting it to distance field in voxels (using OpenVDB library if SignDetectionMode::OpenVDB or our implementation otherwise) and back using standard Marching Cubes, as opposed to Dual Marching Cubes in offsetMesh(...)

◆ mcShellMeshRegion()

MRVOXELS_API Expected< Mesh > MR::mcShellMeshRegion ( const Mesh & mesh,
const FaceBitSet & region,
float offset,
const BaseShellParameters & params,
Vector< VoxelId, FaceId > * outMap = nullptr )
nodiscard

Constructs a shell around selected mesh region with the properties that every point on the shall must

  1. be located not further than given distance from selected mesh part,
  2. be located not closer to not-selected mesh part than to selected mesh part.

◆ merge() [1/3]

MRMESH_API std::shared_ptr< ObjectLines > MR::merge ( const std::vector< std::shared_ptr< ObjectLines > > & objsLines)
nodiscard

constructs new ObjectLines containing the union of valid data from all input objects

◆ merge() [2/3]

MRMESH_API std::shared_ptr< ObjectMesh > MR::merge ( const std::vector< std::shared_ptr< ObjectMesh > > & objsMesh,
const ObjectMeshMergeOptions & options = {} )
nodiscard

constructs new ObjectMesh containing the union of valid data from all input objects

◆ merge() [3/3]

MRMESH_API std::shared_ptr< ObjectPoints > MR::merge ( const std::vector< std::shared_ptr< ObjectPoints > > & objsPoints)
nodiscard

constructs new ObjectPoints containing the union of valid points from all input objects

◆ mergeSubtree() [1/2]

MRVIEWER_API void MR::mergeSubtree ( std::shared_ptr< Object > rootObj)

◆ mergeSubtree() [2/2]

MRVIEWER_API void MR::mergeSubtree ( TypedFlatTree subtree)

merge objects of same type in the object tree

◆ mergeVolumePart()

template<typename Volume >
Expected< void > MR::mergeVolumePart ( Mesh & mesh,
std::vector< EdgePath > & cutContours,
Volume && volume,
float leftCutPosition,
float rightCutPosition,
const MergeVolumePartSettings & settings = {} )

Merge one mesh with another generated from a voxel volume part.

The helper function for generating a mesh from a voxel volume without full memory loading. It performs several actions:

  • converts the voxel volume part into a mesh;
  • cuts it to make its sides accurate;
  • appends to the result mesh with the matching side cut contours. The functions has requirements for the input parameters:
  • the result mesh must have side contours on leftCutPosition;
  • the voxel volume part must have enough data to generate a mesh with correct cut contours. The usual way is to make an overlap for each volume part.
See also
volumeToMeshByParts
Parameters
mesh- result mesh to which the generated mesh will be attached
cutContours- cut contours of the result mesh; must be placed at leftCutPosition
volume- voxel volume part
leftCutPosition- position on X axis where the left side of the generated mesh is cut; pass -FLT_MAX to omit a cut here
rightCutPosition- position on X axis where the right side of the generated mesh is cut; pass +FLT_MAX to omit a cut here
settings- additional parameters; see MergeVolumePartSettings
Returns
nothing if succeeds, an error string otherwise

◆ meshDenoiseViaNormals()

MRMESH_API Expected< void > MR::meshDenoiseViaNormals ( Mesh & mesh,
const DenoiseViaNormalsSettings & settings = {} )

Reduces noise in given mesh, see the article "Mesh Denoising via a Novel Mumford-Shah Framework"

◆ meshOnEdgeSplitAttribute()

MRMESH_API OnEdgeSplit MR::meshOnEdgeSplitAttribute ( const Mesh & mesh,
const MeshAttributesToUpdate & params )

auto uvCoords = obj_->getUVCoords(); auto texturePerFace = obj_->getTexturePerFace(); MeshAttributesToUpdate meshParams; if ( !uvCoords.empty() ) meshParams.uvCoords = &uvCoords; if ( !texturePerFace.empty() ) meshParams.texturePerFace = &texturePerFace; subs.onEdgeSplit = meshOnEdgeSplitAttribute( *obj_->varMesh(), meshParams ); subdivideMesh( *obj_->varMesh(), subs );

◆ meshOnEdgeSplitFaceAttribute()

MRMESH_API OnEdgeSplit MR::meshOnEdgeSplitFaceAttribute ( const Mesh & mesh,
const MeshAttributesToUpdate & params )

◆ meshOnEdgeSplitVertAttribute()

MRMESH_API OnEdgeSplit MR::meshOnEdgeSplitVertAttribute ( const Mesh & mesh,
const MeshAttributesToUpdate & params )

◆ meshPathCurvePoints() [1/2]

MRMESH_API CurvePoints MR::meshPathCurvePoints ( const Mesh & mesh,
const MeshTriPoint & start,
const SurfacePath & path,
const MeshTriPoint & end )
nodiscard

converts polyline given as a number of MeshTriPoint/MeshEdgePoint into CurvePoints

◆ meshPathCurvePoints() [2/2]

MRMESH_API CurvePoints MR::meshPathCurvePoints ( const Mesh & mesh,
const SurfacePath & path )
nodiscard

◆ meshPreCollapseVertAttribute()

MRMESH_API PreCollapseCallback MR::meshPreCollapseVertAttribute ( const Mesh & mesh,
const MeshAttributesToUpdate & params )

Please use this callback when you decimate a mesh with associated data with each vertex recalculate texture coordinates and mesh vertex colors for vertices moved during decimation usage example MeshAttributesToUpdate meshParams; auto uvCoords = obj->getUVCoords(); auto colorMap = obj->getVertsColorMap(); if ( needUpdateUV ) meshParams.uvCoords = &uvCoords; if ( needUpdateColorMap ) meshParams.colorMap = &colorMap; auto preCollapse = meshPreCollapseVertAttribute( mesh, meshParams ); decimateMesh( mesh, DecimateSettings{ .preCollapse = preCollapse } );

◆ meshRegionToIndicatorVolume()

MRVOXELS_API Expected< SimpleVolumeMinMax > MR::meshRegionToIndicatorVolume ( const Mesh & mesh,
const FaceBitSet & region,
float offset,
const DistanceVolumeParams & params )

returns a volume filled with the values: (unsigned distance to region-part) - (unsigned distance to not-region-part); v < 0: this point is within offset distance to region-part of mesh and it is closer to region-part than to not-region-part

◆ meshToDirectionVolume()

MRVOXELS_API Expected< std::array< SimpleVolumeMinMax, 3 > > MR::meshToDirectionVolume ( const MeshToDirectionVolumeParams & params)

Converts mesh into 4d voxels, so that each cell in 3d space holds the direction from the closest point on mesh to the cell position. Resulting volume is encoded by 3 separate 3d volumes, corresponding to x, y and z components of vectors respectively.

Parameters
paramsExpected to have valid (not null) projector, with invoked method IPointsToMeshProjector::updateMeshData

◆ meshToDistanceField()

MRVOXELS_API FloatGrid MR::meshToDistanceField ( const MeshPart & mp,
const AffineXf3f & xf,
const Vector3f & voxelSize,
float surfaceOffset = 3,
ProgressCallback cb = {} )

◆ meshToDistanceFunctionVolume()

MRVOXELS_API FunctionVolume MR::meshToDistanceFunctionVolume ( const MeshPart & mp,
const MeshToDistanceVolumeParams & params )

makes FunctionVolume representing (signed or unsigned) distances from Mesh with given settings

◆ meshToDistanceVdbVolume()

MRVOXELS_API Expected< VdbVolume > MR::meshToDistanceVdbVolume ( const MeshPart & mp,
const MeshToVolumeParams & params = {} )

converts mesh (or its part) into a volume filled with signed or unsigned distances to mesh using OpenVDB library; for signed distances the mesh must be closed; *params.outXf is untouched

◆ meshToDistanceVolume()

MRVOXELS_API Expected< SimpleVolumeMinMax > MR::meshToDistanceVolume ( const MeshPart & mp,
const MeshToDistanceVolumeParams & params )

makes SimpleVolume filled with (signed or unsigned) distances from Mesh with given settings

◆ meshToLevelSet()

MRVOXELS_API FloatGrid MR::meshToLevelSet ( const MeshPart & mp,
const AffineXf3f & xf,
const Vector3f & voxelSize,
float surfaceOffset = 3,
ProgressCallback cb = {} )

◆ meshToVolume()

MRVOXELS_API Expected< VdbVolume > MR::meshToVolume ( const MeshPart & mp,
const MeshToVolumeParams & params = {} )

converts mesh (or its part) into a volume filled with signed or unsigned distances to mesh using OpenVDB library; for signed distances the mesh must be closed; prior to conversion, world space is shifted to ensure that the bounding box of offset mesh is in positive quarter-space, and the shift is written in *params.outXf

◆ minTriangleAngle()

template<typename T >
T MR::minTriangleAngle ( const Vector3< T > & a,
const Vector3< T > & b,
const Vector3< T > & c )
nodiscard

◆ moveAllChildrenWithUndo()

MRVIEWER_API bool MR::moveAllChildrenWithUndo ( Object & oldParent,
Object & newParent,
const std::string & historyName = "Move Children" )

moves all children from one object to another

Returns
false if the move failed

◆ moveMeshToVoxelMaxDeriv< FunctionVolume >()

template MRVOXELS_API Expected< VertBitSet > MR::moveMeshToVoxelMaxDeriv< FunctionVolume > ( Mesh & mesh,
const AffineXf3f & meshXf,
const FunctionVolume & volume,
const AffineXf3f & volumeXf,
const MoveMeshToVoxelMaxDerivSettings & settings,
ProgressCallback callback )
extern

◆ moveMeshToVoxelMaxDeriv< SimpleVolumeMinMax >()

template MRVOXELS_API Expected< VertBitSet > MR::moveMeshToVoxelMaxDeriv< SimpleVolumeMinMax > ( Mesh & mesh,
const AffineXf3f & meshXf,
const SimpleVolumeMinMax & volume,
const AffineXf3f & volumeXf,
const MoveMeshToVoxelMaxDerivSettings & settings,
ProgressCallback callback )
extern

◆ moveMeshToVoxelMaxDeriv< VdbVolume >()

template MRVOXELS_API Expected< VertBitSet > MR::moveMeshToVoxelMaxDeriv< VdbVolume > ( Mesh & mesh,
const AffineXf3f & meshXf,
const VdbVolume & volume,
const AffineXf3f & volumeXf,
const MoveMeshToVoxelMaxDerivSettings & settings,
ProgressCallback callback )
extern

◆ MR_BIND_PREFERRED_NAME()

template<>
MR_CANONICAL_TYPEDEFS((template< typename T > class MRMESH_CLASS), Id,(EdgeId, Id< EdgeTag >)(UndirectedEdgeId, Id< UndirectedEdgeTag >)(FaceId, Id< FaceTag >)(VertId, Id< VertTag >)(PixelId, Id< PixelTag >)(VoxelId, Id< VoxelTag >)(RegionId, Id< RegionTag >)(NodeId, Id< NodeTag >)(ObjId, Id< ObjTag >)(TextureId, Id< TextureTag >)(GraphVertId, Id< GraphVertTag >)(GraphEdgeId, Id< GraphEdgeTag >)) template<> class MR_BIND_PREFERRED_NAME(MR class MR::MR_BIND_PREFERRED_NAME ( MR::VoxelId )

◆ MR_CANONICAL_TYPEDEFS() [1/33]

◆ MR_CANONICAL_TYPEDEFS() [2/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > class MRMESH_CLASS) ,
NoInitId ,
(NoInitNodeId, NoInitId< NodeTag >)  )

◆ MR_CANONICAL_TYPEDEFS() [3/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > class MRMESH_CLASS) ,
SetBitIteratorT ,
(SetBitIterator, SetBitIteratorT< BitSet >)(FaceSetBitIterator, SetBitIteratorT< FaceBitSet >)(VertSetBitIterator, SetBitIteratorT< VertBitSet >)(EdgeSetBitIterator, SetBitIteratorT< EdgeBitSet >)(UndirectedEdgeSetBitIterator, SetBitIteratorT< UndirectedEdgeBitSet >)  )

◆ MR_CANONICAL_TYPEDEFS() [4/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
Matrix2 ,
(Matrix2b, Matrix2< bool >)(Matrix2i, Matrix2< int >)(Matrix2i64, Matrix2< Int64 >)(Matrix2f, Matrix2< float >)(Matrix2d, Matrix2< double >)  )

◆ MR_CANONICAL_TYPEDEFS() [5/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
Matrix3 ,
(Matrix3b, Matrix3< bool >)(Matrix3i, Matrix3< int >)(Matrix3i64, Matrix3< Int64 >)(Matrix3f, Matrix3< float >)(Matrix3d, Matrix3< double >)  )

◆ MR_CANONICAL_TYPEDEFS() [6/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
Matrix4 ,
(Matrix4b, Matrix4< bool >)(Matrix4i, Matrix4< int >)(Matrix4i64, Matrix4< Int64 >)(Matrix4f, Matrix4< float >)(Matrix4d, Matrix4< double >)  )

◆ MR_CANONICAL_TYPEDEFS() [7/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
MRMESH_CLASS MeshRegion,
(MeshPart, MeshRegion< FaceTag >)(MeshVertPart, MeshRegion< VertTag >)  )

◆ MR_CANONICAL_TYPEDEFS() [8/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
MRMESH_CLASS Vector2,
(Vector2b, Vector2< bool >)(Vector2i, Vector2< int >)(Vector2i64, Vector2< Int64 >)(Vector2f, Vector2< float >)(Vector2d, Vector2< double >)  )

◆ MR_CANONICAL_TYPEDEFS() [9/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
MRMESH_CLASS Vector3,
(Vector3b, Vector3< bool >)(Vector3i, Vector3< int >)(Vector3i64, Vector3< Int64 >)(Vector3f, Vector3< float >)(Vector3d, Vector3< double >)  )

◆ MR_CANONICAL_TYPEDEFS() [10/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
MRVOXELS_CLASS VoxelsVolume,
(FunctionVolume, VoxelsVolume< VoxelValueGetter< float > >)(FunctionVolumeU8, VoxelsVolume< VoxelValueGetter< uint8_t > >)(SimpleVolume, VoxelsVolume< Vector< float, VoxelId > >)(SimpleVolumeU16, VoxelsVolume< Vector< uint16_t, VoxelId > >)(SimpleBinaryVolume, VoxelsVolume< VoxelBitSet >)  )

◆ MR_CANONICAL_TYPEDEFS() [11/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
MRVOXELS_CLASS VoxelsVolumeMinMax,
(SimpleVolumeMinMax, VoxelsVolumeMinMax< Vector< float, VoxelId > >)(SimpleVolumeMinMaxU16, VoxelsVolumeMinMax< Vector< uint16_t, VoxelId > >)(VdbVolume, VoxelsVolumeMinMax< FloatGrid >)  )

◆ MR_CANONICAL_TYPEDEFS() [12/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
Parabola ,
(Parabolaf, Parabola< float >)(Parabolad, Parabola< double >)  )

◆ MR_CANONICAL_TYPEDEFS() [13/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
Plane3 ,
(Plane3f, Plane3< float >)(Plane3d, Plane3< double >)  )

◆ MR_CANONICAL_TYPEDEFS() [14/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
Quaternion ,
(Quaternionf, Quaternion< float >)(Quaterniond, Quaternion< double >)  )

◆ MR_CANONICAL_TYPEDEFS() [15/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
RigidXf3 ,
(RigidXf3f, RigidXf3< float >)(RigidXf3d, RigidXf3< double >)  )

◆ MR_CANONICAL_TYPEDEFS() [16/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
SegmPoint ,
(SegmPointf, SegmPoint< float >)(SegmPointd, SegmPoint< double >)  )

◆ MR_CANONICAL_TYPEDEFS() [17/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
Sphere ,
(Sphere2f, Sphere< Vector2< float > >)(Sphere2d, Sphere< Vector2< double > >)(Sphere3f, Sphere< Vector3< float > >)(Sphere3d, Sphere< Vector3< double > >)  )

◆ MR_CANONICAL_TYPEDEFS() [18/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
SymMatrix2 ,
(SymMatrix2b, SymMatrix2< bool >)(SymMatrix2i, SymMatrix2< int >)(SymMatrix2i64, SymMatrix2< Int64 >)(SymMatrix2f, SymMatrix2< float >)(SymMatrix2d, SymMatrix2< double >)  )

◆ MR_CANONICAL_TYPEDEFS() [19/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
SymMatrix3 ,
(SymMatrix3b, SymMatrix3< bool >)(SymMatrix3i, SymMatrix3< int >)(SymMatrix3i64, SymMatrix3< Int64 >)(SymMatrix3f, SymMatrix3< float >)(SymMatrix3d, SymMatrix3< double >)  )

◆ MR_CANONICAL_TYPEDEFS() [20/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
SymMatrix4 ,
(SymMatrix4b, SymMatrix4< bool >)(SymMatrix4i, SymMatrix4< int >)(SymMatrix4i64, SymMatrix4< Int64 >)(SymMatrix4f, SymMatrix4< float >)(SymMatrix4d, SymMatrix4< double >)  )

◆ MR_CANONICAL_TYPEDEFS() [21/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
TriPoint ,
(TriPointf, TriPoint< float >)(TriPointd, TriPoint< double >)  )

◆ MR_CANONICAL_TYPEDEFS() [22/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T > struct) ,
Vector4 ,
(Vector4b, Vector4< bool >)(Vector4i, Vector4< int >)(Vector4i64, Vector4< Int64 >)(Vector4f, Vector4< float >)(Vector4d, Vector4< double >)  )

◆ MR_CANONICAL_TYPEDEFS() [23/33]

◆ MR_CANONICAL_TYPEDEFS() [24/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename T, typename I > struct MRMESH_CLASS) ,
BMap ,
(FaceBMap, BMap< FaceId, FaceId >)(VertBMap, BMap< VertId, VertId >)(EdgeBMap, BMap< EdgeId, EdgeId >)(UndirectedEdgeBMap, BMap< UndirectedEdgeId, UndirectedEdgeId >)(WholeEdgeBMap, BMap< EdgeId, UndirectedEdgeId >)  )

◆ MR_CANONICAL_TYPEDEFS() [25/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename Tag > class MRMESH_CLASS) ,
ColorMapAggregator ,
(VertColorMapAggregator, ColorMapAggregator< VertTag >)(UndirEdgeColorMapAggregator, ColorMapAggregator< UndirectedEdgeTag >)(FaceColorMapAggregator, ColorMapAggregator< FaceTag >)  )

◆ MR_CANONICAL_TYPEDEFS() [26/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename V > struct MRMESH_CLASS) ,
Ball ,
(Ball1f, Ball< float >)(Ball1d, Ball< double >)(Ball2f, Ball< Vector2< float > >)(Ball2d, Ball< Vector2< double > >)(Ball3f, Ball< Vector3< float > >)(Ball3d, Ball< Vector3< double > >)  )

◆ MR_CANONICAL_TYPEDEFS() [27/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename V > struct MRMESH_CLASS) ,
CubicBezierCurve ,
(CubicBezierCurve2f, CubicBezierCurve< Vector2< float > >)(CubicBezierCurve2d, CubicBezierCurve< Vector2< double > >)(CubicBezierCurve3f, CubicBezierCurve< Vector3< float > >)(CubicBezierCurve3d, CubicBezierCurve< Vector3< double > >)  )

◆ MR_CANONICAL_TYPEDEFS() [28/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename V > struct) ,
AffineXf ,
(AffineXf2f, AffineXf< Vector2< float > >)(AffineXf2d, AffineXf< Vector2< double > >)(AffineXf3f, AffineXf< Vector3< float > >)(AffineXf3d, AffineXf< Vector3< double > >)  )

◆ MR_CANONICAL_TYPEDEFS() [29/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename V > struct) ,
Line ,
(Line2f, Line< Vector2< float > >)(Line2d, Line< Vector2< double > >)(Line3f, Line< Vector3< float > >)(Line3d, Line< Vector3< double > >)  )

◆ MR_CANONICAL_TYPEDEFS() [30/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename V > struct) ,
LineSegm ,
(LineSegm2f, LineSegm< Vector2< float > >)(LineSegm2d, LineSegm< Vector2< double > >)(LineSegm3f, LineSegm< Vector3< float > >)(LineSegm3d, LineSegm< Vector3< double > >)  )

◆ MR_CANONICAL_TYPEDEFS() [31/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename V > struct) ,
Polyline ,
(Polyline2, Polyline< Vector2f >)(Polyline3, Polyline< Vector3f >)  )

◆ MR_CANONICAL_TYPEDEFS() [32/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename V > struct) ,
QuadraticForm ,
(QuadraticForm2f, QuadraticForm< Vector2< float > >)(QuadraticForm2d, QuadraticForm< Vector2< double > >)(QuadraticForm3f, QuadraticForm< Vector3< float > >)(QuadraticForm3d, QuadraticForm< Vector3< double > >)  )

◆ MR_CANONICAL_TYPEDEFS() [33/33]

MR::MR_CANONICAL_TYPEDEFS ( (template< typename V > struct[[nodiscard]]) ,
PolylineProjectionResult ,
(PolylineProjectionResult2, PolylineProjectionResult< Vector2f >)(PolylineProjectionResult3, PolylineProjectionResult< Vector3f >)  )
nodiscard

◆ multiModelGridSampling()

MRMESH_API std::optional< MultiObjsSamples > MR::multiModelGridSampling ( const Vector< ModelPointsData, ObjId > & models,
float voxelSize,
const ProgressCallback & cb = {} )

performs sampling of several models respecting their world transformations subdivides models bounding box on voxels of approximately given size and returns at most one point per voxel; if voxelSize<=0 then returns all points from all models as samples; returns std::nullopt if it was terminated by the callback

◆ normal() [1/6]

MRMESH_API Vector3f MR::normal ( const MeshTopology & topology,
const VertCoords & points,
const MeshTriPoint & p )
nodiscard

computes normal in three vertices of p's triangle, then interpolates them using barycentric coordinates and normalizes again; this is the same normal as in rendering with smooth shading

◆ normal() [2/6]

Vector3f MR::normal ( const MeshTopology & topology,
const VertCoords & points,
FaceId f )
inlinenodiscard

computes triangular face normal from its vertices

◆ normal() [3/6]

Vector3f MR::normal ( const MeshTopology & topology,
const VertCoords & points,
VertId v )
inlinenodiscard

computes normal in a vertex using sum of directed areas of neighboring triangles

◆ normal() [4/6]

template<typename T >
Vector3< T > MR::normal ( const Triangle3< T > & t)
inlinenodiscard

computes unit normal of the given triangle

◆ normal() [5/6]

template<typename T >
Vector3< T > MR::normal ( const Vector3< T > & p,
const Vector3< T > & q,
const Vector3< T > & r )
inlinenodiscard

computes unit normal of triangle PQR

◆ normal() [6/6]

template<typename T >
Vector3< T > MR::normal ( const Vector3< T > & q,
const Vector3< T > & r )
inlinenodiscard

computes unit normal of triangle 0QR

◆ objectHasSelectableChildren()

bool MR::objectHasSelectableChildren ( const MR::Object & object,
bool recurse = false )
inline

returns whether the object has selectable children

Parameters
recurse- if true, look up for selectable children at any depth

◆ objectPostRenderSetup()

MRVIEWER_API void MR::objectPostRenderSetup ( const TransparencyMode & tMode,
RenderModelPassMask desiredPass,
bool deptTesting )

◆ objectPreRenderSetup()

MRVIEWER_API void MR::objectPreRenderSetup ( const TransparencyMode & tMode,
RenderModelPassMask desiredPass,
bool deptTesting )

◆ offsetContours() [1/4]

MRMESH_API Contours2f MR::offsetContours ( const Contours2f & contours,
ContoursVariableOffset offset,
const OffsetContoursParams & params = {} )
nodiscard

offsets 2d contours in plane

◆ offsetContours() [2/4]

MRMESH_API Contours2f MR::offsetContours ( const Contours2f & contours,
float offset,
const OffsetContoursParams & params = {} )
nodiscard

offsets 2d contours in plane

◆ offsetContours() [3/4]

MRMESH_API Contours3f MR::offsetContours ( const Contours3f & contours,
ContoursVariableOffset offset,
const OffsetContoursParams & params = {},
const OffsetContoursRestoreZParams & zParmas = {} )
nodiscard

offsets 3d contours in XY plane

◆ offsetContours() [4/4]

MRMESH_API Contours3f MR::offsetContours ( const Contours3f & contours,
float offset,
const OffsetContoursParams & params = {},
const OffsetContoursRestoreZParams & zParmas = {} )
nodiscard

offsets 3d contours in XY plane

◆ offsetMesh()

MRVOXELS_API Expected< Mesh > MR::offsetMesh ( const MeshPart & mp,
float offset,
const OffsetParameters & params = {} )
nodiscard

Offsets mesh by converting it to distance field in voxels using OpenVDB library, signDetectionMode = Unsigned(from OpenVDB) | OpenVDB | HoleWindingRule, and then converts back using OpenVDB library (dual marching cubes), so result mesh is always closed

◆ offsetOneDirection()

MRVOXELS_API Expected< Mesh > MR::offsetOneDirection ( const MeshPart & mp,
float offset,
const GeneralOffsetParameters & params = {} )
nodiscard

offsets given MeshPart in one direction only (positive or negative) if your input mesh is open then please specify params.signDetectionMode = SignDetectionMode::Unsigned if your input mesh is closed this function is equivalent to generalOffsetMesh, but in SignDetectionMode::Unsigned mode it will only keep one side (just like for open mesh) unlike thickenMesh this functions does not keep original mesh in result

◆ offsetPolyline()

MRVOXELS_API Expected< Mesh > MR::offsetPolyline ( const Polyline3 & polyline,
float offset,
const OffsetParameters & params = {} )
nodiscard

Offsets polyline by converting it to voxels and building iso-surface do offset in all directions so result mesh is always closed params.signDetectionMode is ignored (always assumed SignDetectionMode::Unsigned)

◆ offsetSurfaceLine() [1/2]

MRMESH_API Expected< Contours3f > MR::offsetSurfaceLine ( const Mesh & mesh,
const std::vector< MeshTriPoint > & surfaceLine,
const std::function< float(int)> & offsetAtPoint )
nodiscard

Returns contours in mesh space that are offset from surfaceLine on offsetAtPoint amount in all directions.

Parameters
meshmesh to perform offset on
surfaceLinesurface line to perofrm offset from
offsetAtPointfunction that can return different amount of offset in different point (argument is index of point in surfaceLine), note that absolute value is used
Returns
resulting offset contours or error if something goes wrong

◆ offsetSurfaceLine() [2/2]

MRMESH_API Expected< Contours3f > MR::offsetSurfaceLine ( const Mesh & mesh,
const std::vector< MeshTriPoint > & surfaceLine,
float offset )
nodiscard

Returns contours in mesh space that are offset from surfaceLine on offset amount in all directions.

Parameters
meshmesh to perform offset on
surfaceLinesurface line to perofrm offset from
offsetamount of offset, note that absolute value is used
Returns
resulting offset contours or error if something goes wrong

◆ offsetVerts()

MRMESH_API bool MR::offsetVerts ( Mesh & mesh,
const VertMetric & offset,
const ProgressCallback & cb = {} )

Modifies mesh shifting each vertex along its pseudonormal by the corresponding offset

Returns
false if cancelled.

◆ onEdgeSplitFaceAttribute()

template<typename T >
auto MR::onEdgeSplitFaceAttribute ( const Mesh & mesh,
Vector< T, FaceId > & data )

◆ onEdgeSplitVertAttribute()

template<typename T >
auto MR::onEdgeSplitVertAttribute ( const Mesh & mesh,
Vector< T, VertId > & data )

◆ OpenDocument()

MRMESH_API bool MR::OpenDocument ( const std::filesystem::path & path)

◆ openFileDialog()

MRVIEWER_API std::filesystem::path MR::openFileDialog ( const FileParameters & params = {})

◆ openFileDialogAsync()

MRVIEWER_API void MR::openFileDialogAsync ( std::function< void(const std::filesystem::path &)> callback,
const FileParameters & params = {} )

◆ openFilesDialog()

MRVIEWER_API std::vector< std::filesystem::path > MR::openFilesDialog ( const FileParameters & params = {})

◆ openFilesDialogAsync()

MRVIEWER_API void MR::openFilesDialogAsync ( std::function< void(const std::vector< std::filesystem::path > &)> callback,
const FileParameters & params = {} )

◆ openFolderDialog()

MRVIEWER_API std::filesystem::path MR::openFolderDialog ( std::filesystem::path baseFolder = {})

◆ openFolderDialogAsync()

MRVIEWER_API void MR::openFolderDialogAsync ( std::function< void(const std::filesystem::path &)> callback,
std::filesystem::path baseFolder = {} )

◆ openFoldersDialog()

MRVIEWER_API std::vector< std::filesystem::path > MR::openFoldersDialog ( std::filesystem::path baseFolder = {})

◆ OpenLink()

MRMESH_API void MR::OpenLink ( const std::string & url)

◆ operator!=() [1/5]

bool MR::operator!= ( const Color & a,
const Color & b )
inline

◆ operator!=() [2/5]

bool MR::operator!= ( const DirectoryIterator & a,
const std::filesystem::directory_iterator & b )
inlinenodiscard

◆ operator!=() [3/5]

bool MR::operator!= ( const DirectoryRecursiveIterator & a,
const std::filesystem::recursive_directory_iterator & b )
inlinenodiscard

◆ operator!=() [4/5]

template<typename N >
bool MR::operator!= ( const RingIterator< N > & a,
const RingIterator< N > & b )
inline

◆ operator!=() [5/5]

bool MR::operator!= ( const UndirectedEdgeIterator & a,
const UndirectedEdgeIterator & b )
inline

◆ operator""_e()

EdgeId MR::operator""_e ( unsigned long long i)
inlineconstexprnoexcept

◆ operator""_f()

FaceId MR::operator""_f ( unsigned long long i)
inlineconstexprnoexcept

◆ operator""_ue()

UndirectedEdgeId MR::operator""_ue ( unsigned long long i)
inlineconstexprnoexcept

◆ operator""_v()

VertId MR::operator""_v ( unsigned long long i)
inlineconstexprnoexcept

◆ operator""_vox()

VoxelId MR::operator""_vox ( unsigned long long i)
inlineconstexprnoexcept

◆ operator*() [1/3]

Color MR::operator* ( const Color & b,
float a )
inline

◆ operator*() [2/3]

template<typename C , typename D , D M>
SparsePolynomial< C, D, M > MR::operator* ( const SparsePolynomial< C, D, M > & a,
const SparsePolynomial< C, D, M > & b )

◆ operator*() [3/3]

Color MR::operator* ( float a,
const Color & b )
inline

◆ operator*=()

MRMESH_API TransformedMesh & MR::operator*= ( TransformedMesh & a,
const TransformedMesh & b )

intersection operation on two meshes

◆ operator+() [1/4]

Color MR::operator+ ( const Color & a,
const Color & b )
inline

◆ operator+() [2/4]

template<typename T >
Id< T > MR::operator+ ( Id< T > id,
int a )
inlineconstexpr

◆ operator+() [3/4]

template<typename T >
Id< T > MR::operator+ ( Id< T > id,
size_t a )
inlineconstexpr

◆ operator+() [4/4]

template<typename T >
Id< T > MR::operator+ ( Id< T > id,
unsigned int a )
inlineconstexpr

◆ operator+=()

MRMESH_API TransformedMesh & MR::operator+= ( TransformedMesh & a,
const TransformedMesh & b )

union operation on two meshes

◆ operator-() [1/4]

Color MR::operator- ( const Color & a,
const Color & b )
inline

◆ operator-() [2/4]

template<typename T >
Id< T > MR::operator- ( Id< T > id,
int a )
inlineconstexpr

◆ operator-() [3/4]

template<typename T >
Id< T > MR::operator- ( Id< T > id,
size_t a )
inlineconstexpr

◆ operator-() [4/4]

template<typename T >
Id< T > MR::operator- ( Id< T > id,
unsigned int a )
inlineconstexpr

◆ operator-=()

MRMESH_API TransformedMesh & MR::operator-= ( TransformedMesh & a,
const TransformedMesh & b )

difference operation on two meshes

◆ operator/()

Color MR::operator/ ( const Color & b,
float a )
inline

◆ operator==() [1/6]

bool MR::operator== ( const Color & a,
const Color & b )
inline

◆ operator==() [2/6]

template<typename V >
bool MR::operator== ( const LineSegm< V > & a,
const LineSegm< V > & b )
inlinenodiscard

◆ operator==() [3/6]

template<typename N >
bool MR::operator== ( const RingIterator< N > & a,
const RingIterator< N > & b )
inline

◆ operator==() [4/6]

bool MR::operator== ( const SegmEndColors & a,
const SegmEndColors & b )
inline

◆ operator==() [5/6]

bool MR::operator== ( const UndirectedEdgeIterator & a,
const UndirectedEdgeIterator & b )
inline

◆ operator==() [6/6]

bool MR::operator== ( const ViewportPointsWithColors & a,
const ViewportPointsWithColors & b )
inline

◆ orderIntersectionContours()

MRMESH_API ContinuousContours MR::orderIntersectionContours ( const MeshTopology & topologyA,
const MeshTopology & topologyB,
const PreciseCollisionResult & intersections )

Combines unordered input intersections (and flips orientation of intersected edges from mesh B) into ordered oriented contours with the properties:

  1. Each contour is a. either closed (then its first and last elements are equal), b. or open (then its first and last intersected edges are boundary edges).
  2. Next intersection in a contour is located to the left of the current intersected edge: a. if the current and next intersected triangles are the same, then next intersected edge is either next( curr.edge ) or prev( curr.edge.sym() ).sym(), b. otherwise next intersected triangle is left( curr.edge ) and next intersected edge is one of the edges having the current intersected triangle to the right.
  3. Orientation of intersected edges in each pair of (intersected edge, intersected triangle): a. the intersected edge of mesh A is directed from negative half-space of the intersected triangle from mesh B to its positive half-space, b. the intersected edge of mesh B is directed from positive half-space of the intersected triangle from mesh A to its negative half-space.
  4. Orientation of contours: a. left of contours on mesh A is inside of mesh B (consequence of 3a), b. right of contours on mesh B is inside of mesh A (consequence of 3b).

◆ orderSelfIntersectionContours()

MRMESH_API ContinuousContours MR::orderSelfIntersectionContours ( const MeshTopology & topology,
const std::vector< EdgeTri > & intersections )

Combines unordered input self-intersections (and flips orientation of some intersected edges) into ordered oriented contours with the properties:

  1. Each contour is a. either closed (then its first and last elements are equal), b. or open if terminal intersection is on mesh boundary or if self-intersection terminates in a vertex.
  2. Next intersection in a contour is located to the left of the current intersected edge: a. if the current and next intersected triangles are the same, then next intersected edge is either next( curr.edge ) or prev( curr.edge.sym() ).sym(), b. otherwise next intersected triangle is left( curr.edge ) and next intersected edge is one of the edges having the current intersected triangle to the right.
  3. Orientation of intersected edges in each pair of (intersected edge, intersected triangle): a. isEdgeATriB() = true: the intersected edge is directed from negative half-space of the intersected triangle to its positive half-space, b. isEdgeATriB() = false: the intersected edge is directed from positive half-space of the intersected triangle to its negative half-space.
  4. Contours [2*i] and [2*i+1] a. have equal lengths and pass via the same intersections but in opposite order, b. each intersection is present in two contours with different values of isEdgeATriB() flag, and opposite directions of the intersected edge.
  5. Orientation of contours: a. first element of even (0,2,...) contours has isEdgeATriB() = true, left of even contours goes inside (consequence of 3a), b. first element of odd (1,3,...) contours has isEdgeATriB() = false, right of odd contours goes inside (consequence of 3b).

◆ orgPnt()

Vector3f MR::orgPnt ( const MeshTopology & topology,
const VertCoords & points,
EdgeId e )
inlinenodiscard

returns coordinates of the edge origin

◆ orgRing() [1/2]

IteratorRange< OrgRingIterator > MR::orgRing ( const MeshTopology & topology,
EdgeId edge )
inline

◆ orgRing() [2/2]

IteratorRange< OrgRingIterator > MR::orgRing ( const MeshTopology & topology,
VertId v )
inline

◆ orgRing0()

IteratorRange< OrgRingIterator > MR::orgRing0 ( const MeshTopology & topology,
EdgeId edge )
inline

◆ orientLocalTriangulations() [1/2]

MRMESH_API void MR::orientLocalTriangulations ( AllLocalTriangulations & triangs,
const VertCoords & coords,
const VertBitSet & region,
const std::function< Vector3f(VertId)> & targetDir )

◆ orientLocalTriangulations() [2/2]

MRMESH_API void MR::orientLocalTriangulations ( AllLocalTriangulations & triangs,
const VertCoords & coords,
const VertBitSet & region,
const VertNormals & targetDir )

orient neighbors around each point in

Parameters
regionso they will be in clockwise order if look from the tip of target direction

◆ orientParaboloid3d() [1/2]

MRMESH_API bool MR::orientParaboloid3d ( const Vector2i & a,
const Vector2i & b,
const Vector2i & c )
nodiscard

considers 3D points obtained from 2D inputs by moving each point on paraboloid: z = x*x+y*y; returns true if the plane with orientated triangle ABC has D point at the left; uses simulation-of-simplicity to avoid "D is exactly on plane"

◆ orientParaboloid3d() [2/2]

bool MR::orientParaboloid3d ( const Vector2i & a,
const Vector2i & b,
const Vector2i & c,
const Vector2i & d )
inlinenodiscard

◆ overloaded()

template<class... Ts>
MR::overloaded ( Ts... ) -> overloaded< Ts... >

◆ pack()

MRMESH_API std::shared_ptr< ObjectPoints > MR::pack ( const ObjectPoints & pts,
Reorder reorder,
VertBitSet * newValidVerts = nullptr,
const ProgressCallback & cb = {} )
nodiscard

constructs new ObjectPoints containing the packed version of input points,

Parameters
newValidVertsif given, then use them instead of valid points from pts
Returns
nullptr if the operation was cancelled

◆ packPointsWithHistory() [1/2]

MRVIEWER_API void MR::packPointsWithHistory ( const std::shared_ptr< ObjectPoints > & objPoints,
Reorder reoder )

packs ObjectPoints optimally updating colors and adds history records for that; it is a good idea to make SCOPED_HISTORY before calling this function

◆ packPointsWithHistory() [2/2]

MRVIEWER_API void MR::packPointsWithHistory ( const std::shared_ptr< ObjectPoints > & objPoints,
Reorder reoder,
VertBitSet newValidVerts )

sets new valid vertices then packs ObjectPoints optimally updating colors and adds history records for that; it is a good idea to make SCOPED_HISTORY before calling this function

◆ parallelMinMax() [1/3]

template<typename T >
std::pair< T, T > MR::parallelMinMax ( const std::vector< T > & vec,
const BitSet * region = nullptr,
const T * topExcluding = nullptr )

finds minimal and maximal elements in given vector in parallel;

Parameters
regionif provided, only vector values with indices corresponding to set bits here will be checked;
topExcludingif provided then all values in the array equal or larger by absolute value than it will be ignored

◆ parallelMinMax() [2/3]

template<typename T >
std::pair< T, T > MR::parallelMinMax ( const T * data,
size_t size,
const BitSet * region = nullptr,
const T * topExcluding = nullptr )

finds minimal and maximal elements in given range [data, data+size) in parallel;

Parameters
regionif provided, only range values with indices corresponding to set bits here will be checked;
topExcludingif provided then all values in the array equal or larger by absolute value than it will be ignored

◆ parallelMinMax() [3/3]

template<typename T , typename Itag >
std::pair< T, T > MR::parallelMinMax ( const Vector< T, Id< Itag > > & vec,
const TaggedBitSet< Itag > * region = nullptr,
const T * topExcluding = nullptr )

finds minimal and maximal elements in given vector in parallel;

Parameters
regionif provided, only vector values with indices corresponding to set bits here will be checked;
topExcludingif provided then all values in the array equal or larger by absolute value than it will be ignored

◆ parallelMinMaxArg() [1/2]

template<typename T >
MinMaxArg< T, size_t > MR::parallelMinMaxArg ( const T * data,
size_t size,
const BitSet * region = nullptr,
const T * topExcluding = nullptr )

finds minimal and maximal elements and their indices in given range [data, data+size) in parallel;

Parameters
regionif provided, only range values with indices corresponding to set bits here will be checked;
topExcludingif provided then all values in the array equal or larger by absolute value than it will be ignored

◆ parallelMinMaxArg() [2/2]

template<typename T , typename Itag >
MinMaxArg< T, Id< Itag > > MR::parallelMinMaxArg ( const Vector< T, Id< Itag > > & vec,
const TaggedBitSet< Itag > * region = nullptr,
const T * topExcluding = nullptr )

finds minimal and maximal elements and their indices in given vector in parallel;

Parameters
regionif provided, only vector values with indices corresponding to set bits here will be checked;
topExcludingif provided then all values in the array equal or larger by absolute value than it will be ignored

◆ parseAscCoordinate()

template<typename T >
Expected< void > MR::parseAscCoordinate ( const std::string_view & str,
Vector3< T > & v,
Vector3< T > * n = nullptr,
Color * c = nullptr )

◆ parseFirstNum()

MRMESH_API Expected< void > MR::parseFirstNum ( const std::string_view & str,
int & num )

◆ parseObjCoordinate()

template<typename T >
Expected< void > MR::parseObjCoordinate ( const std::string_view & str,
Vector3< T > & v,
Vector3< T > * c = nullptr )

◆ parsePolygon()

MRMESH_API Expected< void > MR::parsePolygon ( const std::string_view & str,
VertId * vertId,
int * numPoints )

◆ parsePtsCoordinate()

template<typename T >
Expected< void > MR::parsePtsCoordinate ( const std::string_view & str,
Vector3< T > & v,
Color & c )

◆ parseResponse()

MRVIEWER_API Expected< Json::Value > MR::parseResponse ( const Json::Value & response)

◆ parseSingleNumber()

template<typename T >
Expected< void > MR::parseSingleNumber ( const std::string_view & str,
T & num )

◆ parseTextCoordinate()

template<typename T >
Expected< void > MR::parseTextCoordinate ( const std::string_view & str,
Vector3< T > & v,
Vector3< T > * n = nullptr,
Color * c = nullptr )

◆ partialOffsetMesh()

MRVOXELS_API Expected< Mesh > MR::partialOffsetMesh ( const MeshPart & mp,
float offset,
const GeneralOffsetParameters & params = {} )

Offsets mesh part by converting it to voxels and back and unite it with original mesh (via boolean) note: only OffsetParameters.signDetectionMode = SignDetectionMode::Unsigned will work in this function

◆ pickedPointToVector3()

MRMESH_API MR_BIND_IGNORE Vector3f MR::pickedPointToVector3 ( const VisualObject * object,
const PickedPoint & point )

Converts pickedPoint into local coordinates of its object.

◆ planeSectionsToContours2f()

MRMESH_API Contours2f MR::planeSectionsToContours2f ( const Mesh & mesh,
const PlaneSections & sections,
const AffineXf3f & meshToPlane )
nodiscard

◆ planeSectionToContour2f()

MRMESH_API Contour2f MR::planeSectionToContour2f ( const Mesh & mesh,
const PlaneSection & section,
const AffineXf3f & meshToPlane )
nodiscard

converts PlaneSections in 2D contours by computing coordinate of each point, applying given xf to it, and retaining only x and y

◆ pointGridSampling()

MRMESH_API std::optional< VertBitSet > MR::pointGridSampling ( const PointCloudPart & pcp,
float voxelSize,
const ProgressCallback & cb = {} )

performs sampling of cloud points; subdivides point cloud bounding box on voxels of approximately given size and returns at most one point per voxel; if voxelSize<=0 then returns all valid points as samples; returns std::nullopt if it was terminated by the callback

◆ pointIterativeSampling()

MRMESH_API std::optional< VertBitSet > MR::pointIterativeSampling ( const PointCloud & cloud,
int numSamples,
const ProgressCallback & cb = {} )

performs sampling of cloud points by iteratively removing one point with minimal metric (describing distance to the closest point and previous nearby removals), thus allowing stopping at any given number of samples; returns std::nullopt if it was terminated by the callback

◆ pointOnObjectToPickedPoint()

MRMESH_API PickedPoint MR::pointOnObjectToPickedPoint ( const VisualObject * object,
const PointOnObject & pos )

Converts PointOnObject coordinates depending on the object type to the PickedPoint variant.

◆ pointsToDistanceFunctionVolume()

MRVOXELS_API FunctionVolume MR::pointsToDistanceFunctionVolume ( const PointCloud & cloud,
const PointsToDistanceVolumeParams & params )
nodiscard

makes FunctionVolume representing signed distances to points with normals

◆ pointsToDistanceVolume()

MRVOXELS_API Expected< SimpleVolume > MR::pointsToDistanceVolume ( const PointCloud & cloud,
const PointsToDistanceVolumeParams & params )
nodiscard

makes SimpleVolume filled with signed distances to points with normals

◆ pointsToMeshFusion()

MRVOXELS_API Expected< Mesh > MR::pointsToMeshFusion ( const PointCloud & cloud,
const PointsToMeshParameters & params )
nodiscard

makes mesh from points with normals by constructing intermediate volume with signed distances and then using marching cubes algorithm to extract the surface from there

◆ PolylineProjectionWithOffsetResult< Vector2f >()

◆ polylineToDistanceField()

MRVOXELS_API Expected< FloatGrid > MR::polylineToDistanceField ( const Polyline3 & polyline,
const PolylineToDistanceVolumeParams & params )

convert polyline to voxels distance field

◆ polylineToFunctionVolume()

MRVOXELS_API Expected< FunctionVolume > MR::polylineToFunctionVolume ( const Polyline3 & polyline,
const PolylineToVolumeParams & params )

convert polyline to function volume

◆ polylineToSimpleVolume()

MRVOXELS_API Expected< SimpleVolume > MR::polylineToSimpleVolume ( const Polyline3 & polyline,
const PolylineToVolumeParams & params )

convert polyline to simple volume

◆ polylineToVdbVolume()

MRVOXELS_API Expected< VdbVolume > MR::polylineToVdbVolume ( const Polyline3 & polyline,
const PolylineToDistanceVolumeParams & params )

convert polyline to VDB volume

◆ posFromTriEdgeLengths()

template<typename T >
std::optional< Vector2< T > > MR::posFromTriEdgeLengths ( T a,
T b,
T c )
nodiscard

given the lengths of 3 edges of triangle ABC, and assuming that point B has coordinates (0,0); point A - (0,c); computes the coordinates of point C (where c.x >= 0) or returns std::nullopt if input lengths are invalid for a triangle

◆ position()

ImVec2 MR::position ( const ViewportRectangle & rect)
inline

◆ positionVertsSmoothly() [1/2]

MRMESH_API void MR::positionVertsSmoothly ( const MeshTopology & topology,
VertCoords & points,
const VertBitSet & verts,
EdgeWeights edgeWeights = EdgeWeights::Cotan,
VertexMass vmass = VertexMass::Unit,
const VertBitSet * fixedSharpVertices = nullptr )

◆ positionVertsSmoothly() [2/2]

MRMESH_API void MR::positionVertsSmoothly ( Mesh & mesh,
const VertBitSet & verts,
EdgeWeights edgeWeights = EdgeWeights::Cotan,
VertexMass vmass = VertexMass::Unit,
const VertBitSet * fixedSharpVertices = nullptr )

Puts given vertices in such positions to make smooth surface both inside verts-region and on its boundary;

Parameters
vertsmust not include all vertices of a mesh connected component
fixedSharpVerticesin these vertices the surface can be not-smooth

◆ positionVertsSmoothlySharpBd() [1/3]

MRMESH_API void MR::positionVertsSmoothlySharpBd ( const MeshTopology & topology,
VertCoords & points,
const PositionVertsSmoothlyParams & params )

◆ positionVertsSmoothlySharpBd() [2/3]

MRMESH_API void MR::positionVertsSmoothlySharpBd ( Mesh & mesh,
const PositionVertsSmoothlyParams & params )

Puts given vertices in such positions to make smooth surface inside verts-region, but sharp on its boundary;.

◆ positionVertsSmoothlySharpBd() [3/3]

MRMESH_API void MR::positionVertsSmoothlySharpBd ( Mesh & mesh,
const VertBitSet & verts )

◆ positionVertsWithSpacing() [1/2]

MRMESH_API void MR::positionVertsWithSpacing ( const MeshTopology & topology,
VertCoords & points,
const SpacingSettings & settings )

◆ positionVertsWithSpacing() [2/2]

MRMESH_API void MR::positionVertsWithSpacing ( Mesh & mesh,
const SpacingSettings & settings )

Moves given vertices to make the distances between them as specified.

◆ preCollapseVertAttribute()

template<typename T >
auto MR::preCollapseVertAttribute ( const Mesh & mesh,
Vector< T, VertId > & data )

◆ printStacktraceOnCrash()

MRMESH_API void MR::printStacktraceOnCrash ( )

Print stacktrace on application crash.

◆ processSelfSubtasks()

MR_BIND_IGNORE void MR::processSelfSubtasks ( const AABBTree & tree,
std::vector< NodeNode > & subtasks,
std::vector< NodeNode > & nextSubtasks,
std::function< Processing(const NodeNode &)> processLeaf,
std::function< Processing(const Box3f &lBox, const Box3f &rBox)> processNodes )

This function process all subtasks in one tree
left/right == right/left in this case, so on same non-leaf nodes it only adds 3 next subtasks,
same leafs are skipped and different leafs area processed with processLeaf callback.

Parameters
treethe AABB tree
subtasksinitial tasks to process
nextSubtaskssubtasks to process next, could be same as subtasks
processLeaffunction that is called for two different leafs
processNodesfunction that determines how to process boxes
Parameters
nextSubtasksmay be same as subtasks

◆ projArea() [1/2]

MRMESH_API MR_BIND_IGNORE double MR::projArea ( const MeshTopology & topology,
const VertCoords & points,
const Vector3f & dir,
const FaceBitSet & fs )
nodiscard

computes the sum of absolute projected area of faces from given region as visible if look from given direction This is skipped in the bindings because it conflicts with the overload taking a pointer in C#. Since that overload is strictly more useful, we're keeping that one.

◆ projArea() [2/2]

double MR::projArea ( const MeshTopology & topology,
const VertCoords & points,
const Vector3f & dir,
const FaceBitSet * fs = nullptr )
inlinenodiscard

computes the sum of absolute projected area of faces from given region (or whole mesh) as visible if look from given direction

◆ projectFaceAttribute()

template<typename F >
bool MR::projectFaceAttribute ( const MeshPart & mp,
const Mesh & oldMesh,
F && func,
const ProjectAttributeParams & params = {} )

projecting the face attributes of the old onto the new one returns false if canceled by progress bar

◆ projectObjectMeshData()

MRMESH_API Expected< void > MR::projectObjectMeshData ( const ObjectMeshData & oldMeshData,
ObjectMeshData & newMeshData,
const FaceBitSet * region = nullptr,
const ProjectAttributeParams & params = {} )
nodiscard

finds attributes of new mesh by projecting faces/vertices on old mesh

Note
for now clears edges attributes
Parameters
oldMeshDataold mesh along with input attributes
newMeshDatanew mesh along with outpuyt attributes
regionoptional input region for projecting (usefull if newMesh is changed part of old mesh)
paramsparameters of prohecting

◆ projectOnAll()

MRMESH_API void MR::projectOnAll ( const Vector3f & pt,
const AABBTreeObjects & tree,
float upDistLimitSq,
const ProjectOnAllCallback & callback,
ObjId skipObjId = {} )

finds closest point on every object within given distance

projection on given object will be skipped

Parameters
pttarget point in world coordinates
treecontains a set of objects to search closest points on each of them
upDistLimitSqupper limit on the distance in question
callbackeach found closest point within given distance will be returned via this callback

◆ projectVertAttribute()

template<typename F >
bool MR::projectVertAttribute ( const MeshVertPart & mp,
const Mesh & oldMesh,
F && func,
const ProjectAttributeParams & params = {} )

projecting the vertex attributes of the old onto the new one returns false if canceled by progress bar

◆ projectWorldPointOntoObject()

MeshOrPoints::ProjectionResult MR::projectWorldPointOntoObject ( const Vector3f & p,
const Object & obj )
inlinenodiscard

Projects a point onto an object, in world space. Returns .valid() == false if this object type isn't projectable onto.

◆ projectWorldPointOntoObjectsRecursive()

MRMESH_API MeshOrPoints::ProjectionResult MR::projectWorldPointOntoObjectsRecursive ( const Vector3f & p,
const Object * root = nullptr,
std::function< bool(const Object &)> projectPred = nullptr,
std::function< bool(const Object &)> recursePred = nullptr )
nodiscard

Recursively visits the objects and projects the point on each one. Returns the closest projection. If root is null, the scene root is used. Not passing SceneRoot::get() directly to avoid including that header. If projectPred is specified and false, will not project onto this object. If recursePred is specified and false, will not visit the children of this object.

◆ pseudonormal() [1/3]

MRMESH_API Vector3f MR::pseudonormal ( const MeshTopology & topology,
const VertCoords & points,
const MeshTriPoint & p,
const FaceBitSet * region = nullptr )
nodiscard

returns pseudonormal in corresponding face/edge/vertex for signed distance calculation as suggested in the article "Signed Distance Computation Using the Angle Weighted Pseudonormal" by J. Andreas Baerentzen and Henrik Aanaes, https://backend.orbit.dtu.dk/ws/portalfiles/portal/3977815/B_rentzen.pdf unlike normal( const MeshTriPoint & p ), this is not a smooth function

◆ pseudonormal() [2/3]

MRMESH_API Vector3f MR::pseudonormal ( const MeshTopology & topology,
const VertCoords & points,
UndirectedEdgeId e,
const FaceBitSet * region = nullptr )
nodiscard

computes normalized half sum of face normals sharing given edge (only (region) faces will be considered);

◆ pseudonormal() [3/3]

MRMESH_API Vector3f MR::pseudonormal ( const MeshTopology & topology,
const VertCoords & points,
VertId v,
const FaceBitSet * region = nullptr )
nodiscard

computes angle-weighted sum of normals of incident faces of given vertex (only (region) faces will be considered); the sum is normalized before returning

◆ pushNotification()

MRVIEWER_API void MR::pushNotification ( const RibbonNotification & notification)

◆ putScanFileNameInZ()

MRVOXELS_API void MR::putScanFileNameInZ ( const std::vector< std::filesystem::path > & scans,
std::vector< SliceInfo > & zOrder )

Read layer heights from given scan file names.

◆ putSimpleVolumeInDenseGrid()

template<typename AccessorOrGrid >
MRVOXELS_API void MR::putSimpleVolumeInDenseGrid ( AccessorOrGrid & gridAccessor,
const Vector3i & minCoord,
const SimpleVolume & simpleVolume,
ProgressCallback cb = {} )

Copy given simpleVolume into the grid, starting at minCoord Instantiated for AccessorOrGrid in { openvdb::FloatGrid::Accessor, FloatGrid, openvdb::FloatGrid }. The template is used to not include openvdb's mess into this header (forward declaring classes in openvdb is also non-trivial). When used with a Grid, multithreaded implementation of copying is used (so the function is not thread safe). When used with an Accessor, this function could be called from different threads on the same volume (provided that accessors are different, of course).

◆ pythonAppendOrRun()

template<typename F , typename... Args>
void MR::pythonAppendOrRun ( F func,
Args &&... args )

◆ pythonRunFromGUIThread() [1/3]

template<typename F >
auto MR::pythonRunFromGUIThread ( F && f)
nodiscard

◆ pythonRunFromGUIThread() [2/3]

template<typename R , typename T , typename... Args>
auto MR::pythonRunFromGUIThread ( R(T::* memFunction )(Args...))

◆ pythonRunFromGUIThread() [3/3]

template<typename R , typename... Args>
auto MR::pythonRunFromGUIThread ( std::function< R(Args...)> && f) -> std::function<void( Args... )>
nodiscard

◆ quadrangleOtherDiagonal()

template<typename T >
std::optional< T > MR::quadrangleOtherDiagonal ( T a,
T b,
T c,
T a1,
T b1 )
nodiscard

given two triangles on same plane sharing one side, with edge lengths in same order: (a, b, c) and (b1, a1, c); they can be considered as a quadrangle with a diagonal of length (c); and the lengths of consecutive edges (a, b, b1, a1); returns the length of the other quadrangle's diagonal if the quadrangle is valid and convex or std::nullopt otherwise

◆ quadraticForm()

MRMESH_API QuadraticForm3f MR::quadraticForm ( const MeshTopology & topology,
const VertCoords & points,
VertId v,
bool angleWeigted,
const FaceBitSet * region = nullptr,
const UndirectedEdgeBitSet * creases = nullptr )
nodiscard

computes quadratic form in the vertex as the sum of squared distances from 1) planes of adjacent triangles, with the weight equal to the angle of adjacent triangle at this vertex divided on PI in case of angleWeigted=true; 2) lines of adjacent boundary and crease edges

◆ rayBoxIntersect() [1/2]

template<typename T = float>
bool MR::rayBoxIntersect ( const Box2< T > & box,
const Line2< T > & line,
T t0,
T t1 )

◆ rayBoxIntersect() [2/2]

template<typename T >
bool MR::rayBoxIntersect ( const Box2< T > & box,
const Vector2< T > & rayOrigin,
T & t0,
T & t1,
const IntersectionPrecomputes2< T > & prec )

◆ rayInsideIntersect() [1/2]

MRMESH_API MeshIntersectionResult MR::rayInsideIntersect ( const Mesh & mesh,
const MeshPoint & m,
float rayEnd = FLT_MAX )
nodiscard

returns the nearest intersection between the mesh and the ray from given point along minus normal (inside the mesh)

◆ rayInsideIntersect() [2/2]

MRMESH_API MeshIntersectionResult MR::rayInsideIntersect ( const Mesh & mesh,
VertId v,
float rayEnd = FLT_MAX )
nodiscard

◆ rayPolylineIntersect() [1/2]

MRMESH_API std::optional< PolylineIntersectionResult2 > MR::rayPolylineIntersect ( const Polyline2 & polyline,
const Line2d & line,
double rayStart = 0,
double rayEnd = DBL_MAX,
const IntersectionPrecomputes2< double > * prec = nullptr,
bool closestIntersect = true )
nodiscard

Finds ray and polyline intersection in double-precision. rayStart and rayEnd define the interval on the ray to detect an intersection. prec can be specified to reuse some precomputations (e.g. for checking many parallel rays). Finds the closest intersection to ray origin (line param=0) or any intersection for better performance if !closestIntersect.

◆ rayPolylineIntersect() [2/2]

MRMESH_API std::optional< PolylineIntersectionResult2 > MR::rayPolylineIntersect ( const Polyline2 & polyline,
const Line2f & line,
float rayStart = 0,
float rayEnd = FLT_MAX,
const IntersectionPrecomputes2< float > * prec = nullptr,
bool closestIntersect = true )
nodiscard

Finds ray and polyline intersection in float-precision. rayStart and rayEnd define the interval on the ray to detect an intersection. prec can be specified to reuse some precomputations (e.g. for checking many parallel rays). Finds the closest intersection to ray origin (line param=0) or any intersection for better performance if !closestIntersect.

◆ rayPolylineIntersectAll() [1/2]

MRMESH_API void MR::rayPolylineIntersectAll ( const Polyline2 & polyline,
const Line2d & line,
const PolylineIntersectionCallback2d & callback,
double rayStart = 0.0,
double rayEnd = DBL_MAX,
const IntersectionPrecomputes2< double > * prec = nullptr )

Intersects 2D ray and polyline in double-precision. Reports all intersections via given callback with the tendency to do it from ray start to ray end, but without guarantee of exact order.

◆ rayPolylineIntersectAll() [2/2]

MRMESH_API void MR::rayPolylineIntersectAll ( const Polyline2 & polyline,
const Line2f & line,
const PolylineIntersectionCallback2f & callback,
float rayStart = 0.0f,
float rayEnd = FLT_MAX,
const IntersectionPrecomputes2< float > * prec = nullptr )

Intersects 2D ray and polyline in single-precision. Reports all intersections via given callback with the tendency to do it from ray start to ray end, but without guarantee of exact order.

◆ readByBlocks()

MRMESH_API bool MR::readByBlocks ( std::istream & in,
char * data,
size_t dataSize,
ProgressCallback callback = {},
size_t blockSize = (size_t(1)<< 16) )

read dataSize bytes from in stream to data by blocks blockSize bytes

if progress callback is not set, read all data by one block

Returns
false if process was canceled (callback is set and return false )

◆ readCharBuffer()

MRMESH_API MR_BIND_IGNORE Expected< Buffer< char > > MR::readCharBuffer ( std::istream & in)

◆ readRawTiff()

MRMESH_API Expected< void > MR::readRawTiff ( const std::filesystem::path & path,
RawTiffOutput & output )

◆ readString()

MRMESH_API MR_BIND_IGNORE Expected< std::string > MR::readString ( std::istream & in)

◆ readTiffParameters()

MRMESH_API Expected< TiffParameters > MR::readTiffParameters ( const std::filesystem::path & path)

◆ rearrangeVectorByMap()

template<typename T , typename I >
Vector< T, I > MR::rearrangeVectorByMap ( const Vector< T, I > & oldVector,
const BMap< I, I > & map )
nodiscard

◆ rebuildMesh()

MRVOXELS_API Expected< Mesh > MR::rebuildMesh ( const MeshPart & mp,
const RebuildMeshSettings & settings )
nodiscard

fixes all types of issues in input mesh (degenerations, holes, self-intersections, etc.) by first converting mesh in voxel representation, and then backward

◆ refineFeatureObject() [1/2]

MRMESH_API Expected< AffineXf3f > MR::refineFeatureObject ( const FeatureObject & featObj,
const Mesh & mesh,
const RefineParameters & params = {} )

Recalculate the feature object's position so it would better fit with the given mesh.

◆ refineFeatureObject() [2/2]

MRMESH_API Expected< AffineXf3f > MR::refineFeatureObject ( const FeatureObject & featObj,
const PointCloud & pointCloud,
const RefineParameters & params = {} )

Recalculate the feature object's position so it would better fit with the given point cloud.

◆ remesh()

MRMESH_API bool MR::remesh ( Mesh & mesh,
const RemeshSettings & settings )

◆ removeLoneContours()

MRMESH_API void MR::removeLoneContours ( ContinuousContours & contours,
bool ignoreOpen = false )

Removes contours that fully lay inside one triangle from the contours if ignoreOpen then do not consider non-closed contours as lone, even if they really are

◆ removeLoneDegeneratedContours()

MRMESH_API void MR::removeLoneDegeneratedContours ( const MeshTopology & edgesTopology,
OneMeshContours & faceContours,
OneMeshContours & edgeContours )

Removes contours with zero area (do not remove if contour is handle on topology) edgesTopology - topology on which contours are represented with edges faceContours - lone contours represented by faces (all intersections are in same mesh A face) edgeContours - lone contours represented by edges (all intersections are in mesh B edges, edgesTopology: meshB.topology)

◆ renderImGui()

MRVIEWER_API void MR::renderImGui ( const Vector2i & resolution,
const std::function< void()> & configureFunc,
const std::function< void()> & drawFunc )

Render ImGui to the current OpenGL framebuffer. Uses a new ImGui context with shared fonts and style, thus can be called during the UI rendering.

Parameters
resolution- ImGui's display size
configureFunc- optional callback to configure the ImGui context, called before ImGui::NewFrame()
drawFunc- callback to execute ImGui draw functions, called immediately after ImGui::NewFrame() and before ImGui::Render()

◆ renderToImage()

MRVIEWER_API Image MR::renderToImage ( const Vector2i & resolution,
const std::optional< Color > & backgroundColor,
const std::function< void(FramebufferData *framebuffer)> & drawFunc )

Render to an image using OpenGL texture

Parameters
resolution- image resolution
backgroundColor- image background color, can be omitted if your draw function fills the background by itself
drawFunc- callback for OpenGL drawing functions
auto image = renderToImage( imageSize, {}, []
{
drawScene();
drawUI();
} );
MRVIEWER_API Image renderToImage(const Vector2i &resolution, const std::optional< Color > &backgroundColor, const std::function< void(FramebufferData *framebuffer)> &drawFunc)

◆ replace()

MRMESH_API std::string MR::replace ( std::string target,
std::string_view from,
std::string_view to )
nodiscard

Returns.

Parameters
targetwith all
fromreplaced with
to,zeroor more times.

◆ replaceInplace()

MRMESH_API void MR::replaceInplace ( std::string & target,
std::string_view from,
std::string_view to )

Replaces.

Parameters
fromwith
toin
target(in-place), zero or more times.

◆ replaceProhibitedChars()

MRMESH_API std::string MR::replaceProhibitedChars ( const std::string & line,
char replacement = '_' )
nodiscard

replace all characters (c), where isProhibitedChar(c)==true, with replacement char

◆ replicateZ()

MRMESH_API void MR::replicateZ ( Mesh & m,
const Mesh & target )

adjusts z-coordinates of (m) vertices to make adjusted (m) similar to (target)

◆ reportProgress() [1/4]

template<typename F >
bool MR::reportProgress ( ProgressCallback cb,
F && f )
inline

safely invokes

Parameters
cbwith the value produced by given functor; just returning true for empty callback and not evaluating the function

◆ reportProgress() [2/4]

template<typename F >
bool MR::reportProgress ( ProgressCallback cb,
F && f,
size_t counter,
int divider )
inline

safely invokes

Parameters
cbwith the value produced by given functor if
counteris divisible by
divider(preferably a power of 2); just returning true for empty callback and not evaluating the function

◆ reportProgress() [3/4]

bool MR::reportProgress ( ProgressCallback cb,
float v )
inline

safely invokes

Parameters
cbwith given value; just returning true for empty callback

◆ reportProgress() [4/4]

bool MR::reportProgress ( ProgressCallback cb,
float v,
size_t counter,
int divider )
inline

safely invokes

Parameters
cbwith given value if
counteris divisible by
divider(preferably a power of 2); just returning true for empty callback

◆ resample()

MRMESH_API MarkedContour3f MR::resample ( const MarkedContour3f & in,
float minStep,
Contour3f * normals = nullptr )
nodiscard

keeps all marked points from input contour and adds/removes other points to have them as many as possible, but at the distance along the input line not shorter than (minStep) from their neighbor points

Parameters
normalsoptional parameter with the normals of input points that will be resampled to become normals of output points

◆ resampleVolumeByInterpolation()

template<typename Accessor >
SimpleVolumeMinMax MR::resampleVolumeByInterpolation ( const typename Accessor::VolumeType & volume,
const Accessor & accessor,
const Vector3f & newVoxelSize )

sample function that resamples the voxel volume using interpolating accessor

◆ reserveKeyEvent()

MRVIEWER_API void MR::reserveKeyEvent ( ImGuiKey key)

◆ resizeNoInit()

template<typename T >
void MR::resizeNoInit ( std::vector< T > & vec,
size_t targetSize ) &&

resizes the vector skipping initialization of its elements (more precisely initializing them using ( noInit ) constructor ); this is much faster than ordinary resize(), because the memory of vector's elements is not accessed and only one pointer inside vector is repeatedly increased; https://stackoverflow.com/a/74212402/7325599

◆ RigidScaleXf3< float >()

MR::RigidScaleXf3< float > ( RigidScaleXf3d ,
RigidScaleXf3< double >  )

◆ roundToPrecision() [1/2]

MRMESH_API double MR::roundToPrecision ( double v,
int precision )
nodiscard

returns given value rounded to given number of decimal digits

◆ roundToPrecision() [2/2]

float MR::roundToPrecision ( float v,
int precision )
inlinenodiscard

returns given value rounded to given number of decimal digits

◆ same()

MRMESH_API bool MR::same ( const MeshTopology & topology,
const EdgePoint & lhs,
const EdgePoint & rhs )
nodiscard

returns true if two edge-points are equal considering different representations

◆ sampleHalfSphere()

MRMESH_API std::vector< Vector3f > MR::sampleHalfSphere ( )
nodiscard

returns quasi-uniform 145 samples on unit half-sphere z>0

◆ sampleVertexColor()

MRMESH_API Color MR::sampleVertexColor ( const Mesh & mesh,
VertId v,
const MeshTexture & tex,
const TriCornerUVCoords & triCornerUvCoords )
nodiscard

computes the color in the given vertex of mesh textured per-triangle's-corner; if the vertex has different colors in different triangles, then angle-weight average is computed

◆ sampleVertexColors()

MRMESH_API VertColors MR::sampleVertexColors ( const Mesh & mesh,
const MeshTexture & tex,
const TriCornerUVCoords & triCornerUvCoords )
nodiscard

computes the colors in the vertices of mesh textured per-triangle's-corner; if one vertex has different colors in different triangles, then angle-weight average is computed

◆ saveFileDialog()

MRVIEWER_API std::filesystem::path MR::saveFileDialog ( const FileParameters & params = {})

◆ saveFileDialogAsync()

MRVIEWER_API void MR::saveFileDialogAsync ( std::function< void(const std::filesystem::path &)> callback,
const FileParameters & params = {} )

◆ saveObjectToFile()

MRVIEWER_API Expected< void > MR::saveObjectToFile ( const Object & obj,
const std::filesystem::path & filename,
const SaveObjectSettings & settings = {} )

save visual object (mesh, lines, points or voxels) to file

Returns
empty string if no error or error text

◆ saveObjectVoxelsToFile()

MRVOXELS_API Expected< void > MR::saveObjectVoxelsToFile ( const Object & object,
const std::filesystem::path & path,
const ObjectSave::Settings & settings )

◆ sceneReorderWithUndo()

MRVIEWER_API bool MR::sceneReorderWithUndo ( const SceneReorder & task)

moves objects in scene as prescribed by (task), preserving world location of each object;

Returns
false if the move failed

◆ sceneSelectedAtLeast()

template<typename ObjectT , bool visualRepresentationCheck, bool modelCheck>
std::string MR::sceneSelectedAtLeast ( const std::vector< std::shared_ptr< const Object > > & objs,
unsigned n )

◆ sceneSelectedExactly()

template<typename ObjectT , bool visualRepresentationCheck, bool modelCheck>
std::string MR::sceneSelectedExactly ( const std::vector< std::shared_ptr< const Object > > & objs,
unsigned n )

◆ segmentIntersectionOrder()

MRMESH_API bool MR::segmentIntersectionOrder ( const std::array< PreciseVertCoords2, 6 > & vs)
nodiscard

given line segment s=01 and two other segments sa=23, sb=45 known to intersect it, finds the order of intersection using precise predicates: true: s[0], s ^ sa, s ^ sb, s[1] false: s[0], s ^ sb, s ^ sa, s[1] segments sa and sb can have at most one shared point, all other points must be unique

◆ segPoints()

MRMESH_API void MR::segPoints ( Vector3f & VEC,
Vector3f & X,
Vector3f & Y,
const Vector3f & P,
const Vector3f & A,
const Vector3f & Q,
const Vector3f & B )

Returns closest points between an segment pair.

◆ SelectCurvaturePreference()

float MRVIEWER_API MR::SelectCurvaturePreference ( PathPreference * pp)

draws a Combo with three PathPreference options returns multiplier before dihedral angle sine in edge metric calculation (positive to prefer concave angles, negative - convex)

Parameters
ppis passed by pointer because in can be changed inside

◆ selfBoolean()

MRMESH_API Expected< Mesh > MR::selfBoolean ( const Mesh & mesh)

performs boolean operation on mesh with itself, cutting simple intersections contours and flipping their connectivity this function is experimental and likely to change signature and/or behavior in future

◆ separateClosedContour()

MRMESH_API std::vector< FaceBitSet > MR::separateClosedContour ( const Mesh & mesh,
const std::vector< Vector3f > & contour,
const PathMeshEdgePointCallback & cb = {} )

◆ serializeObjectTree() [1/2]

MRMESH_API Expected< void > MR::serializeObjectTree ( const Object & object,
const std::filesystem::path & path,
const ObjectSave::Settings & settings = {} )

◆ serializeObjectTree() [2/2]

MRMESH_API Expected< void > MR::serializeObjectTree ( const Object & object,
const std::filesystem::path & path,
FolderCallback preCompress,
const ObjectSave::Settings & settings = {} )

saves object subtree in given scene file (zip/mru)

format specification: children are saved under folder with name of their parent object all objects parameters are saved in one JSON file in the root folder

if preCompress is set, it is called before compression saving is controlled with Object::serializeModel_ and Object::serializeFields_

◆ serializeObjectTreeToGltf()

MRIOEXTRAS_API Expected< void > MR::serializeObjectTreeToGltf ( const Object & root,
const std::filesystem::path & file,
const ObjectSave::Settings & settings )

◆ serializeToJson() [1/3]

MRMESH_API void MR::serializeToJson ( const EndMillCutter & cutter,
Json::Value & root )

◆ serializeToJson() [2/3]

MRMESH_API void MR::serializeToJson ( const EndMillTool & tool,
Json::Value & root )

◆ serializeToJson() [3/3]

MRVIEWER_API void MR::serializeToJson ( const VisualObjectTagManager & manager,
Json::Value & root )

◆ setAt()

template<typename K , typename V >
void MR::setAt ( MapOrHashMap< K, V > & m,
K key,
V val )
inline

◆ SetClipboardText()

MRVIEWER_API Expected< void > MR::SetClipboardText ( const std::string & text)

◆ SetCurrentThreadName()

MRMESH_API void MR::SetCurrentThreadName ( const char * name)

◆ setDefaultSerializeMeshFormat()

MRMESH_API void MR::setDefaultSerializeMeshFormat ( std::string newFormat)

sets file extension used to serialize serialize ObjectMeshHolder by default (if not overridden in specific object), the string must start from '.';

◆ setDefaultSerializePointsFormat()

MRMESH_API void MR::setDefaultSerializePointsFormat ( std::string newFormat)

sets file extension used to serialize serialize ObjectPointsHolder by default (if not overridden in specific object), the string must start from '.';

◆ setDefaultSerializeVoxelsFormat()

MRVOXELS_API void MR::setDefaultSerializeVoxelsFormat ( std::string newFormat)

sets file extension used to serialize serialize ObjectVoxels by default (if not overridden in specific object), the string must start from '.'

◆ setDefaultUnitParams()

template<UnitEnum E>
void MR::setDefaultUnitParams ( const UnitToStringParams< E > & newParams)

◆ setNewHandlerIfNeeded()

MRMESH_API void MR::setNewHandlerIfNeeded ( )

◆ setTextureFilterType()

MRVIEWER_API void MR::setTextureFilterType ( FilterType filterType,
GLenum type = GL_TEXTURE_2D )

◆ setTextureWrapType()

MRVIEWER_API void MR::setTextureWrapType ( WrapType wrapType,
GLenum type = GL_TEXTURE_2D )

◆ setupLoggerByDefault()

MRMESH_API void MR::setupLoggerByDefault ( const std::function< void()> & customLogSinkAdder = {})

Setups logger: 1) makes stdout sink 2) makes file sink (MRLog.txt) 3) redirect std streams to logger 4) add custom sink if provided 5) print stacktrace on crash (not in wasm) log level - trace

◆ sgn()

template<typename T >
int MR::sgn ( T x)
inlineconstexprnoexcept

sign of given value in { -1, 0, 1 }

◆ sharpenMarchingCubesMesh()

MRMESH_API void MR::sharpenMarchingCubesMesh ( const MeshPart & ref,
Mesh & vox,
Vector< VoxelId, FaceId > & face2voxel,
const SharpenMarchingCubesMeshSettings & settings )

adjust the mesh

Parameters
voxproduced by marching cubes method (NOT dual marching cubes) by 1) correcting positions of all vertices to given offset relative to
refmesh (if correctOldVertPos == true); 2) introducing new vertices in the voxels where the normals change abruptly.
face2voxelmapping from Face Id to Voxel Id where it is located

◆ sharpOffsetMesh()

MRVOXELS_API Expected< Mesh > MR::sharpOffsetMesh ( const MeshPart & mp,
float offset,
const SharpOffsetParameters & params = {} )
nodiscard

Offsets mesh by converting it to voxels and back post process result using reference mesh to sharpen features

◆ showError()

void MR::showError ( const std::string & error)
inline

◆ showModal()

MRVIEWER_API void MR::showModal ( const std::string & error,
NotificationType type )

Check if menu is available and if it is, shows modal window.

◆ shrink() [1/2]

MRMESH_API void MR::shrink ( const MeshTopology & topology,
FaceBitSet & region,
int hops = 1 )

removes from the region all faces within given number of hops (stars) from the initial region boundary

◆ shrink() [2/2]

MRMESH_API void MR::shrink ( const MeshTopology & topology,
VertBitSet & region,
int hops = 1 )

removes from the region all vertices within given number of hops (stars) from the initial region boundary

◆ shrinkFaces()

MRMESH_API FaceBitSet MR::shrinkFaces ( const MeshTopology & topology,
const FaceBitSet & region,
const UndirectedEdgeBitSet * stopEdges = nullptr )
nodiscard

returns given region without all faces sharing an edge with not-region face;

Parameters
stopEdges- neighborhood via this edges will be ignored

◆ simpleVolumeToDenseGrid()

MRVOXELS_API FloatGrid MR::simpleVolumeToDenseGrid ( const SimpleVolume & simpleVolume,
float background = 0.0f,
ProgressCallback cb = {} )

◆ simpleVolumeToVdbVolume()

MRVOXELS_API VdbVolume MR::simpleVolumeToVdbVolume ( const SimpleVolumeMinMax & simpleVolume,
ProgressCallback cb = {} )

◆ size()

ImVec2 MR::size ( const ViewportRectangle & rect)
inline

◆ smaller()

bool MR::smaller ( const PreciseVertCoord & l,
const PreciseVertCoord & r )
inlinenodiscard

return true if l is smaller than r, uses simulation-of-simplicity (assuming larger perturbations of points with smaller id) to avoid "coordinates are the same"

◆ smaller2()

MRMESH_API bool MR::smaller2 ( const std::array< PreciseVertCoords2, 4 > & vs)
nodiscard

given the line passing via points vs[0] and vs[1], which defines linear signed scalar distance field: zero on the line, positive for x where ccw(vs[0], vs[1], x) == true, and negative for x where ccw(vs[0], vs[1], x) == false finds whether sdistance(vs[2]) < sdistance(vs[3]); avoids equality of signed distances using simulation-of-simplicity approach (assuming larger perturbations of points with smaller id)

◆ smoothSelection()

MRVOXELS_API FaceBitSet MR::smoothSelection ( Mesh & mesh,
const FaceBitSet & region,
float expandOffset,
float shrinkOffset )

◆ sortScanFilesByName()

MRVOXELS_API void MR::sortScanFilesByName ( std::vector< std::filesystem::path > & scans)

Sort scan files in given vector by names (respect numbers in it)

◆ sortScansByOrder()

MRVOXELS_API void MR::sortScansByOrder ( std::vector< std::filesystem::path > & scans,
std::vector< SliceInfo > & zOrder )

Sort scan files in given vector by given slice information.

◆ split()

template<typename F >
bool MR::split ( std::string_view str,
std::string_view sep,
F && func )

◆ splitByChunks()

MRMESH_API IteratorRange< ChunkIterator > MR::splitByChunks ( size_t totalSize,
size_t chunkSize,
size_t overlap = 0 )

returns a pair of iterators for chunks covering the array of given size

◆ splitByLines()

MRMESH_API std::vector< size_t > MR::splitByLines ( const char * data,
size_t size )

◆ sqr()

template<typename T >
T MR::sqr ( T x)
inlineconstexprnoexcept

squared value

◆ stitchContours()

MRMESH_API void MR::stitchContours ( MeshTopology & topology,
const EdgePath & c0,
const EdgePath & c1 )

given two contours: 1) of equal size; 2) all edges of c0 have no left faces; 3) all edges of c1 have no right faces; merge the surface along corresponding edges of two contours, and deletes all vertices and edges from c1

◆ stringOperationCanceled()

MR_BIND_IGNORE std::string MR::stringOperationCanceled ( )
inline

common message about user termination of an operation

◆ stringUnsupportedFileExtension()

MR_BIND_IGNORE std::string MR::stringUnsupportedFileExtension ( )
inline

common message about unknown file extension

◆ stringUnsupportedFileFormat()

MR_BIND_IGNORE std::string MR::stringUnsupportedFileFormat ( )
inline

common message prefix about unsupported file format

◆ subdivideLoneContours()

MRMESH_API void MR::subdivideLoneContours ( Mesh & mesh,
const OneMeshContours & contours,
FaceHashMap * new2oldMap = nullptr )

◆ subdividePolylineWithPlane()

MRMESH_API MR_BIND_IGNORE UndirectedEdgeBitSet MR::subdividePolylineWithPlane ( Polyline3 & polyline,
const Plane3f & plane,
std::function< void(EdgeId, EdgeId, float)> onEdgeSplitCallback = {} )

◆ subdivideWithPlane() [1/2]

MRMESH_API FaceBitSet MR::subdivideWithPlane ( Mesh & mesh,
const Plane3f & plane,
FaceHashMap * new2Old = nullptr,
float eps = 0,
std::function< void(EdgeId, EdgeId, float)> onEdgeSplitCallback = nullptr )

subdivides all triangles intersected by given plane, leaving smaller triangles that only touch the plane;

Returns
all triangles on the positive side of the plane
Parameters
new2Oldreceive mapping from newly appeared triangle to its original triangle (part to full)
epsif existing vertex is within eps distance from the plane, then move the vertex not introducing new ones
onEdgeSplitCallbackis invoked each time when an edge is split. Receives edge ID before split, edge ID after split, and weight of the origin vertex

◆ subdivideWithPlane() [2/2]

MRMESH_API UndirectedEdgeBitSet MR::subdivideWithPlane ( Polyline3 & polyline,
const Plane3f & plane,
EdgeBitSet * newPositiveEdges = {},
std::function< void(EdgeId, EdgeId, float)> onEdgeSplitCallback = {} )

This function splits edges intersected by the plane

Returns
edges located above the plane (in direction of normal to plane)
Parameters
polylineInput polyline that will be cut by the plane
planeInput plane to cut polyline with
newPositiveEdgesedges with origin on the plane and oriented to the positive direction (only adds bits to the existing ones)
onEdgeSplitCallbackis invoked each time when an edge is split. Receives edge ID before split, edge ID after split, and weight of the origin vertex

◆ subprogress() [1/3]

template<typename F >
ProgressCallback MR::subprogress ( ProgressCallback cb,
F && f )
inline

returns a callback that maps the value with given function

Parameters
fbefore calling
cb(which can be empty)

◆ subprogress() [2/3]

ProgressCallback MR::subprogress ( ProgressCallback cb,
float from,
float to )
inline

returns a callback that maps [0,1] linearly into [from,to] in the call to

Parameters
cb(which can be empty)

◆ subprogress() [3/3]

ProgressCallback MR::subprogress ( ProgressCallback cb,
size_t index,
size_t count )
inline

returns a callback that maps [0,1] linearly into [(index+0)/count,(index+1)/count] in the call to

Parameters
cb(which can be empty)

◆ suggestVoxelSize()

MRVOXELS_API float MR::suggestVoxelSize ( const MeshPart & mp,
float approxNumVoxels )
nodiscard

computes size of a cubical voxel to get approximately given number of voxels during rasterization

◆ sumAngles()

MRMESH_API float MR::sumAngles ( const MeshTopology & topology,
const VertCoords & points,
VertId v,
bool * outBoundaryVert = nullptr )
nodiscard

computes the sum of triangle angles at given vertex; optionally returns whether the vertex is on boundary

◆ tangentPlaneNormalToSpheres()

template<typename T >
std::optional< Vector3< T > > MR::tangentPlaneNormalToSpheres ( const Vector3< T > & b,
const Vector3< T > & c,
T rb,
T rc )
nodiscard

Given 3 spheres: 1) sphere with center at b and radius rb 2) sphere with center at c and radius rc 3) sphere with center at the origin and zero radius (actually point); finds the plane touching all 3 spheres: dot(n,x) = 0, such that cross( n, b, c ) > 0 (to select one of two planes) returns n or std::nullopt if no touch plane exists

◆ tangentPlaneToSpheres()

template<typename T >
std::optional< Plane3< T > > MR::tangentPlaneToSpheres ( const Vector3< T > & a,
const Vector3< T > & b,
const Vector3< T > & c,
T ra,
T rb,
T rc )
nodiscard

Given 3 spheres: 1) sphere with center at a and radius ra 2) sphere with center at b and radius rb 3) sphere with center at c and radius rc finds the plane touching all 3 spheres: dot(n,x) = d, such that cross( n, b-a, c-a ) > 0 (to select one of two planes) returns found plane or std::nullopt if no touch plane exists

◆ tanSqOfHalfAngle()

template<typename T >
T MR::tanSqOfHalfAngle ( T a,
T b,
T c )
inlinenodiscard

given (a, b, c) - the side lengths of a triangle, returns the squared tangent of half angle opposite the side with length (a) see "An Algorithm for the Construction of Intrinsic Delaunay Triangulations with Applications to Digital Geometry Processing". https://page.math.tu-berlin.de/~bobenko/papers/InDel.pdf

◆ teethMaskToDirectionVolume()

MRVOXELS_API Expected< std::array< SimpleVolumeMinMax, 3 > > MR::teethMaskToDirectionVolume ( const VdbVolume & volume,
const std::vector< int > & additionalIds = {} )

A shortcut for TeethMaskToDirectionVolumeConvertor::create and TeethMaskToDirectionVolumeConvertor::convertAll.

◆ terrainTriangulation()

MRMESH_API Expected< Mesh > MR::terrainTriangulation ( std::vector< Vector3f > points,
ProgressCallback cb = {} )
nodiscard

Creates Delaunay triangulation using only XY components of points points will be changed inside this function take argument by value

◆ thickenMesh()

MRVOXELS_API Expected< Mesh > MR::thickenMesh ( const Mesh & mesh,
float offset,
const GeneralOffsetParameters & params = {},
const PartMapping & map = {} )
nodiscard

mapping between original mesh and thicken result

in case of positive offset, returns the mesh consisting of offset mesh merged with inversed original mesh (thickening mode); in case of negative offset, returns the mesh consisting of inversed offset mesh merged with original mesh (hollowing mode); if your input mesh is open then please specify params.signDetectionMode = SignDetectionMode::Unsigned, and you will get open mesh (with several components) on output if your input mesh is closed then please specify another sign detection mode, and you will get closed mesh (with several components) on output;

◆ throwExceptionFromExpected()

template<typename E >
void MR::throwExceptionFromExpected ( const E & err)

◆ toEdgePoint()

MRMESH_API MeshEdgePoint MR::toEdgePoint ( const MeshTopology & topology,
const VertCoords & points,
EdgeId e,
const Vector3f & p )
nodiscard

converts edge and 3d point into edge-point representation

◆ toLower()

MRMESH_API std::string MR::toLower ( std::string str)
nodiscard

return a copy of the string with all alphabetic ASCII characters replaced with upper-case variants

◆ toString() [1/2]

MRVIEWER_API std::string_view MR::toString ( DegreesMode mode)
nodiscard

◆ toString() [2/2]

MRMESH_API std::string_view MR::toString ( DimensionsVisualizePropertyType value)
nodiscard

◆ toTriPoint() [1/2]

MRMESH_API MeshTriPoint MR::toTriPoint ( const MeshTopology & topology,
const VertCoords & points,
const PointOnFace & p )
nodiscard

converts face id and 3d point into barycentric representation

◆ toTriPoint() [2/2]

MRMESH_API MeshTriPoint MR::toTriPoint ( const MeshTopology & topology,
const VertCoords & points,
FaceId f,
const Vector3f & p )
nodiscard

converts face id and 3d point into barycentric representation

◆ toVec4()

template<typename T >
Vector4< T > MR::toVec4 ( const ViewportRectangle & rect)
inline

◆ trackLeftBoundaryLoop() [1/2]

EdgeLoop MR::trackLeftBoundaryLoop ( const MeshTopology & topology,
const FaceBitSet & region,
EdgeId e0 )
inlinenodiscard

◆ trackLeftBoundaryLoop() [2/2]

MRMESH_API EdgeLoop MR::trackLeftBoundaryLoop ( const MeshTopology & topology,
EdgeId e0,
const FaceBitSet * region = nullptr )
nodiscard

returns closed loop of region boundary starting from given region boundary edge (region faces on the left, and not-region faces or holes on the right); if more than two boundary edges connect in one vertex, then the function makes the most abrupt turn to right

◆ trackRightBoundaryLoop() [1/2]

EdgeLoop MR::trackRightBoundaryLoop ( const MeshTopology & topology,
const FaceBitSet & region,
EdgeId e0 )
inlinenodiscard

◆ trackRightBoundaryLoop() [2/2]

MRMESH_API EdgeLoop MR::trackRightBoundaryLoop ( const MeshTopology & topology,
EdgeId e0,
const FaceBitSet * region = nullptr )
nodiscard

returns closed loop of region boundary starting from given region boundary edge (region faces on the right, and not-region faces or holes on the left); if more than two boundary edges connect in one vertex, then the function makes the most abrupt turn to left

◆ trackSection() [1/2]

MRMESH_API Expected< PlaneSection > MR::trackSection ( const MeshPart & mp,
const MeshTriPoint & start,
const MeshTriPoint & end,
const Vector3f & planePoint,
bool ccw )
nodiscard

track section of plane set by start point, end point and planePoint from start to end

Parameters
ccw- if true use start->end->planePoint plane, otherwise use start->planePoint->end (changes direction of plane tracking) returns track on surface without end point (return error if path was looped or reached boundary)

◆ trackSection() [2/2]

MRMESH_API PlaneSection MR::trackSection ( const MeshPart & mp,
const MeshTriPoint & start,
MeshTriPoint & end,
const Vector3f & direction,
float distance )
nodiscard

track section of plane set by start point, direction and surface normal in start point in given direction while given distance or mesh boundary is not reached, or track looped negative distance means moving in opposite direction returns track on surface and end point (same as start if path has looped)

◆ transformNormals()

MRMESH_API const VertNormals & MR::transformNormals ( const VertNormals & normals,
const VertBitSet & validVerts,
const Matrix3d * m,
VertNormals & buf )

if (m) is null then just returns (normals); otherwise copies transformed normals in (buf) and returns it

◆ transformPoints()

MRMESH_API const VertCoords & MR::transformPoints ( const VertCoords & verts,
const VertBitSet & validVerts,
const AffineXf3d * xf,
VertCoords & buf,
const VertRenumber * vertRenumber = nullptr )

if (xf) is null then just returns (verts); otherwise copies transformed points in (buf) and returns it

◆ transformVdbVolume()

MRVOXELS_API TransformVdbVolumeResult MR::transformVdbVolume ( const VdbVolume & volume,
const AffineXf3f & xf,
bool fixBox = false,
const Box3f & box = {} )

Transform volume

Parameters
volumeVolume to transform
xfThe transformation
fixBoxIf true, and if box is valid and represents the bounding box of the volume, then the result will be shifted so that no data has negative coordinate by any of dimensions

◆ translateToZero()

MRVOXELS_API void MR::translateToZero ( openvdb::FloatGrid & grid)

◆ triangleAspectRatio()

MRMESH_API float MR::triangleAspectRatio ( const MeshTopology & topology,
const VertCoords & points,
FaceId f )
nodiscard

returns aspect ratio of given mesh triangle equal to the ratio of the circum-radius to twice its in-radius

◆ triangleWithNormal()

template<typename T >
Triangle3< T > MR::triangleWithNormal ( const Triangle3< T > & t,
const Vector3< T > & n )
nodiscard

project given triangle on a plane passing via its centroid and having unit normal (n); if after projection triangle normal turns out to be inversed, then collapses the triangle into degenerate line segment

◆ triCenter()

MRMESH_API Vector3f MR::triCenter ( const MeshTopology & topology,
const VertCoords & points,
FaceId f )
nodiscard

returns the centroid of given triangle

◆ triDist() [1/2]

float MR::triDist ( Vector3f & p,
Vector3f & q,
const std::array< Vector3f, 3 > & s,
const std::array< Vector3f, 3 > & t )
inline

computes the closest points on two triangles, and returns the squared distance between them.

Parameters
s,tare the triangles, stored tri[point][dimension].

If the triangles are disjoint, p and q give the closest points of s and t respectively. However, if the triangles overlap, p and q are basically a random pair of points from the triangles, not coincident points on the intersection of the triangles, as might be expected.

◆ triDist() [2/2]

MRMESH_API MR_BIND_IGNORE float MR::triDist ( Vector3f & p,
Vector3f & q,
const Vector3f s[3],
const Vector3f t[3] )

◆ trim()

MRMESH_API std::string_view MR::trim ( std::string_view str)
nodiscard

Removes all whitespace character (detected by std::isspace) at the beginning and the end of string view.

◆ trimLeft()

MRMESH_API std::string_view MR::trimLeft ( std::string_view str)
nodiscard

Removes all whitespace character (detected by std::isspace) at the beginning of string view.

◆ trimRight()

MRMESH_API std::string_view MR::trimRight ( std::string_view str)
nodiscard

Removes all whitespace character (detected by std::isspace) at the end of string view.

◆ trimWithPlane() [1/4]

MRMESH_API MR_BIND_IGNORE void MR::trimWithPlane ( Mesh & mesh,
const Plane3f & plane,
std::vector< EdgeLoop > * outCutContours,
FaceHashMap * new2Old = nullptr,
float eps = 0,
std::function< void(EdgeId, EdgeId, float)> onEdgeSplitCallback = nullptr )

trim mesh by plane

This function cuts mesh with plane, leaving only part of mesh that lay in positive direction of normal

Parameters
meshInput mesh that will be cut
planeInput plane to cut mesh with
outCutContoursoptionally return newly appeared hole contours where each edge does not have right face
new2Oldreceive mapping from newly appeared triangle to its original triangle (part to full)
epsif existing vertex is within eps distance from the plane, then move the vertex not introducing new ones
onEdgeSplitCallbackis invoked each time when an edge is split. Receives edge ID before split, edge ID after split, and weight of the origin vertex

◆ trimWithPlane() [2/4]

MRMESH_API MR_BIND_IGNORE void MR::trimWithPlane ( Mesh & mesh,
const Plane3f & plane,
UndirectedEdgeBitSet * outCutEdges = nullptr,
FaceHashMap * new2Old = nullptr,
float eps = 0,
std::function< void(EdgeId, EdgeId, float)> onEdgeSplitCallback = nullptr )

trim mesh by plane

This function cuts mesh with plane, leaving only part of mesh that lay in positive direction of normal

Parameters
meshInput mesh that will be cut
planeInput plane to cut mesh with
outCutEdgesoptionally return newly appeared hole boundary edges
new2Oldreceive mapping from newly appeared triangle to its original triangle (part to full)
epsif existing vertex is within eps distance from the plane, then move the vertex not introducing new ones
onEdgeSplitCallbackis invoked each time when an edge is split. Receives edge ID before split, edge ID after split, and weight of the origin vertex

◆ trimWithPlane() [3/4]

MRMESH_API void MR::trimWithPlane ( Mesh & mesh,
const TrimWithPlaneParams & params,
const TrimOptionalOutput & optOut = {} )

trim mesh by plane

This function cuts mesh with plane, leaving only part of mesh that lay in positive direction of normal

Parameters
meshInput mesh that will be cut
paramsstores basic params for trimWithPlane function
optOutstores optional output params for trimWithPlane function

◆ trimWithPlane() [4/4]

MRMESH_API void MR::trimWithPlane ( Polyline3 & polyline,
const Plane3f & plane,
const DividePolylineParameters & params = {} )

This function divides polyline with a plane, leaving only part of polyline that lies in positive direction of normal

Parameters
polylineInput polyline that will be cut by the plane
planeInput plane to cut polyline with
paramsParameters of the function, containing optional output

◆ triPoint()

MRMESH_API Vector3f MR::triPoint ( const MeshTopology & topology,
const VertCoords & points,
const MeshTriPoint & p )
nodiscard

computes coordinates of point given as face and barycentric representation

◆ undirectedEdges()

IteratorRange< UndirectedEdgeIterator > MR::undirectedEdges ( const MeshTopology & topology)
inline

◆ unexpected()

template<class E >
MR_BIND_IGNORE auto MR::unexpected ( E && e)
inline

◆ unexpectedOperationCanceled()

MR_BIND_IGNORE auto MR::unexpectedOperationCanceled ( )
inline

returns Expected error with stringOperationCanceled()

◆ unexpectedUnsupportedFileExtension()

MR_BIND_IGNORE auto MR::unexpectedUnsupportedFileExtension ( )
inline

returns Expected error with stringUnsupportedFileExtension()

◆ unexpectedUnsupportedFileFormat()

MR_BIND_IGNORE auto MR::unexpectedUnsupportedFileFormat ( )
inline

returns Expected error with stringUnsupportedFileFormat()

◆ uniteLocalTriangulations()

MRMESH_API std::optional< AllLocalTriangulations > MR::uniteLocalTriangulations ( const std::vector< SomeLocalTriangulations > & in,
const ProgressCallback & progress = {} )
nodiscard

converts a set of SomeLocalTriangulations containing local triangulations of all points arbitrary distributed among them into one AllLocalTriangulations with records for all points

◆ uniteManyMeshes()

MRMESH_API Expected< Mesh > MR::uniteManyMeshes ( const std::vector< const Mesh * > & meshes,
const UniteManyMeshesParams & params = {} )

◆ unitsAreEquivalent() [1/2]

template<UnitEnum E>
bool MR::unitsAreEquivalent ( const std::optional< E > & a,
const std::optional< E > & b )
nodiscard

◆ unitsAreEquivalent() [2/2]

template<UnitEnum E>
bool MR::unitsAreEquivalent ( E a,
E b )
nodiscard

◆ updateCurrentViewByControllerRegion()

MRVIEWER_API void MR::updateCurrentViewByControllerRegion ( CornerControllerObject::PickedIds pickedId)

setup camera for selected viewport by corner controller region

◆ updateGroupPairs()

MRMESH_API void MR::updateGroupPairs ( ICPGroupPairs & pairs,
const ICPObjects & objs,
ICPGroupProjector srcProjector,
ICPGroupProjector tgtProjector,
float cosThreshold,
float distThresholdSq,
bool mutualClosest )

in each pair updates the target data and performs basic filtering (activation)

◆ updateIndicator()

MRMESH_API void MR::updateIndicator ( const Mesh & mesh,
Vector< float, UndirectedEdgeId > & v,
const FaceNormals & normals,
float beta,
float gamma )

Compute edge indicator function (1 - smooth edge, 0 - crease edge) by solving large system of linear equations

Parameters
meshcontains topology information and coordinates for equation weights
normalsper-face normals
beta0.001 - sharp edges, 0.01 - moderate edges, 0.1 - smooth edges
gammathe amount of smoothing: 0 - no smoothing, 1 - average smoothing, ... see the article "Mesh Denoising via a Novel Mumford-Shah Framework", equation (20)

◆ updateIndicatorFast()

MRMESH_API void MR::updateIndicatorFast ( const MeshTopology & topology,
Vector< float, UndirectedEdgeId > & v,
const FaceNormals & normals,
float beta,
float gamma )

Compute edge indicator function (1 - smooth edge, 0 - crease edge) by approximation without solving the system of linear equations

Parameters
normalsper-face normals
beta0.001 - sharp edges, 0.01 - moderate edges, 0.1 - smooth edges
gammathe amount of smoothing: 0 - no smoothing, 1 - average smoothing, ... see the article "Mesh Denoising via a Novel Mumford-Shah Framework", equation (20)

◆ updatePointPairs()

MRMESH_API void MR::updatePointPairs ( PointPairs & pairs,
const MeshOrPointsXf & src,
const MeshOrPointsXf & tgt,
float cosThreshold,
float distThresholdSq,
bool mutualClosest )

in each pair updates the target data and performs basic filtering (activation)

◆ valueToImGuiFormatString() [1/2]

template<UnitEnum E, detail::Units::Scalar T>
MRVIEWER_API std::string MR::valueToImGuiFormatString ( T value,
const UnitToStringParams< E > & params = getDefaultUnitParams< E >() )
nodiscard

◆ valueToImGuiFormatString() [2/2]

template<detail::Units::Scalar T>
MRVIEWER_API std::string MR::valueToImGuiFormatString ( T value,
const VarUnitToStringParams & params )
nodiscard

◆ valueToString() [1/2]

template<UnitEnum E, detail::Units::Scalar T>
MRVIEWER_API std::string MR::valueToString ( T value,
const UnitToStringParams< E > & params = getDefaultUnitParams< E >() )
nodiscard

◆ valueToString() [2/2]

template<detail::Units::Scalar T>
MRVIEWER_API std::string MR::valueToString ( T value,
const VarUnitToStringParams & params )
nodiscard

◆ vdbVolumeToSimpleVolume()

MRVOXELS_API Expected< SimpleVolumeMinMax > MR::vdbVolumeToSimpleVolume ( const VdbVolume & vdbVolume,
const Box3i & activeBox = Box3i(),
ProgressCallback cb = {} )

◆ vdbVolumeToSimpleVolumeNorm()

MRVOXELS_API Expected< SimpleVolumeMinMax > MR::vdbVolumeToSimpleVolumeNorm ( const VdbVolume & vdbVolume,
const Box3i & activeBox = Box3i(),
std::optional< MinMaxf > sourceScale = {},
ProgressCallback cb = {} )

Makes normalized SimpleVolume from VdbVolume Normalisation consist of scaling values linearly from the source scale to the interval [0;1]

Note
Makes copy of data
Parameters
sourceScaleif specified, defines the initial scale of voxels. If not specified, it is estimated as min. and max. values from the voxels

◆ vdbVolumeToSimpleVolumeU16()

MRVOXELS_API Expected< SimpleVolumeMinMaxU16 > MR::vdbVolumeToSimpleVolumeU16 ( const VdbVolume & vdbVolume,
const Box3i & activeBox = Box3i(),
std::optional< MinMaxf > sourceScale = {},
ProgressCallback cb = {} )

Makes SimpleVolumeU16 from VdbVolume Values are linearly scaled from the source scale to the range corresponding to uint16_t

Note
Makes copy of data
Parameters
sourceScaleif specified, defines the initial scale of voxels. If not specified, it is estimated as min. and max. values from the voxels

◆ verticesGridSampling()

MRMESH_API std::optional< VertBitSet > MR::verticesGridSampling ( const MeshPart & mp,
float voxelSize,
const ProgressCallback & cb = {} )

performs sampling of mesh vertices; subdivides mesh bounding box on voxels of approximately given size and returns at most one vertex per voxel; if voxelSize<=0 then returns all region vertices as samples; returns std::nullopt if it was terminated by the callback

◆ visitScalarType()

template<typename F >
std::invoke_result_t< F, int > MR::visitScalarType ( F && f,
ScalarType scalarType,
const char * c )

More general template to pass a single value of specified format scalarType to a generic function f.

◆ volume()

MRMESH_API double MR::volume ( const MeshTopology & topology,
const VertCoords & points,
const FaceBitSet * region = nullptr )
nodiscard

returns volume of the object surrounded by given region (or whole mesh if (region) is nullptr); if the region has holes then each hole will be virtually filled by adding triangles for each edge and the hole's geometrical center

◆ volumeToMeshByParts()

template<typename Volume >
Expected< Mesh > MR::volumeToMeshByParts ( const VolumePartBuilder< Volume > & builder,
const Vector3i & dimensions,
const Vector3f & voxelSize,
const VolumeToMeshByPartsSettings & settings = {},
const MergeVolumePartSettings & mergeSettings = {} )

converts a voxel volume into a mesh without full memory loading

See also
mergeVolumePart
Parameters
builder- functor returning a voxel volume part within the specified range
dimensions- full voxel volume dimensions
voxelSize- voxel size used for mesh generation
settings- additional parameters; see VolumeToMeshByPartsSettings
mergeSettings- additional parameters for merging function; see MergeVolumePartSettings
Returns
a generated mesh or an error string

◆ voxelFilter()

MRVOXELS_API VdbVolume MR::voxelFilter ( const VdbVolume & volume,
VoxelFilterType type,
int width )

Performs voxels filtering.

Parameters
typeType of fitler
widthWidth of the filtering window, must be an odd number greater or equal to 1.

◆ voxelizeAndComputeVolume()

MRVOXELS_API float MR::voxelizeAndComputeVolume ( const std::vector< std::shared_ptr< Mesh > > & meshes,
const AffineXf3f & xf,
const Vector3f & voxelSize )

◆ voxelsApplyTransform()

MRVOXELS_API bool MR::voxelsApplyTransform ( ObjectVoxels & obj,
const AffineXf3f & xf,
bool fixBox )

Same as above but for the SceneObject

Returns
true, if fixBox is true and the box was "fixed" (see parameter fixBox of transformVdbVolume)

◆ writeByBlocks()

MRMESH_API bool MR::writeByBlocks ( std::ostream & out,
const char * data,
size_t dataSize,
ProgressCallback callback = {},
size_t blockSize = (size_t(1)<< 16) )

write dataSize bytes from data to out stream by blocks blockSize bytes

if progress callback is not set, write all data by one block

Returns
false if process was canceled (callback is set and return false )

◆ writeRawTiff() [1/2]

Expected< void > MR::writeRawTiff ( const uint8_t * bytes,
const std::filesystem::path & path,
const BaseTiffParameters & params,
const AffineXf3f * xf )
inline

◆ writeRawTiff() [2/2]

MRMESH_API Expected< void > MR::writeRawTiff ( const uint8_t * bytes,
const std::filesystem::path & path,
const WriteRawTiffParams & params )

◆ zCompensate()

MRMESH_API bool MR::zCompensate ( Mesh & mesh,
const ZCompensateParams & params )

For 3D printers: shifts every vertex with normal having negative projection on Z-axis, along Z-axis; mesh's topology is preserved unchanged

Returns
false if cancelled.

◆ zlibCompressStream()

MRIOEXTRAS_API Expected< void > MR::zlibCompressStream ( std::istream & in,
std::ostream & out,
int level = -1 )

compress the input data using the Deflate algorithm

Parameters
in- input data stream
out- output data stream
level- compression level (0 - no compression, 1 - the fastest but the most inefficient compression, 9 - the most efficient but the slowest compression)
Returns
nothing or error string

◆ zlibDecompressStream()

MRIOEXTRAS_API Expected< void > MR::zlibDecompressStream ( std::istream & in,
std::ostream & out )

/brief decompress the input data compressed using the Deflate algorithm

Parameters
in- input data stream
out- output data stream
Returns
nothing or error string