only for bindings generation More...
Namespaces | |
| namespace | AsyncObjectLoad |
| namespace | BitSetParallel |
| 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 |
| Utilities. | |
| namespace | ImGuiMeasurementIndicators |
| namespace | ImGuiMV |
| namespace for easy access to functions related to ImGui MultiViewport | |
| namespace | LinesLoad |
| namespace | LinesSave |
| namespace | Locale |
| namespace | MeshBuilder |
| Building topologies by triangles. | |
| namespace | MeshComponents |
| namespace | MeshLoad |
| compatibility names | |
| namespace | MeshSave |
| namespace | Meta |
| Metaprogramming helpers. | |
| namespace | Nesting |
| namespace | ObjectLoad |
| namespace | ObjectSave |
| namespace | Parallel |
| namespace | PlanarTriangulation |
| namespace | PointCloudComponents |
| namespace | PointsLoad |
| namespace | PointsSave |
| namespace | PolylineComponents |
| namespace | ProgressBar |
| Utilities to show application progress bar for long operations. | |
| namespace | QualityControl |
| Specialized UI for quality-control things. | |
| namespace | RenderDimensions |
| namespace | RenderFeatures |
| namespace | RenderWrapObject |
| namespace | SceneLoad |
| namespace | SceneSave |
| namespace | SelfIntersections |
| namespace | SpaceMouse |
| namespace | StyleConsts |
| namespace | TriangulationHelpers |
| namespace | UI |
| namespace | UnitSettings |
| This abstracts away the UI measurement unit configuration. Internally this uses setDefaultUnitParams(). | |
| namespace | Unsigned |
| Additional support for unsigned types. | |
| namespace | VoxelsLoad |
| namespace | VoxelsSave |
| namespace | WeightedShell |
Classes | |
| class | AABBTree |
| class | AABBTreeBase |
| base class for most AABB-trees (except for AABBTreePoints) More... | |
| struct | AABBTreeNode |
| class | AABBTreeObjects |
| class | AABBTreePoints |
| bounding volume hierarchy for point cloud structure More... | |
| class | AABBTreePolyline |
| bounding volume hierarchy for line segments More... | |
| struct | AABBTreeTraits |
| class | AddCustomThemePlugin |
| class | AddVisualProperties |
| struct | AffineXf |
| struct | AllLocalTriangulations |
| triangulations for all points, with easy access by VertId More... | |
| 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 |
| Represents an angle measurement. More... | |
| class | AnyVisualizeMaskEnum |
| struct | ArcInterpolationParams |
| class | AsyncRequest |
| class | AsyncTimer |
| the object to set timer from any thread and wait for alert time from another thread More... | |
| struct | Ball |
| a ball = points surrounded by a sphere in arbitrary space with vector type V More... | |
| struct | BaseFitParams |
| struct | BaseRenderParams |
| Common rendering parameters for meshes and UI. More... | |
| struct | BaseShellParameters |
| struct | BaseTiffParameters |
| class | BasicClickableRectUiRenderTask |
| struct | BasicUiRenderTask |
| IRenderObject::renderUi() can emit zero or more or more of those tasks. They are sorted by depth every frame. More... | |
| class | BasinVolumeCalculator |
| struct | BendContoursAlongCurveParams |
| Parameters for aligning 2d contours along given curve. More... | |
| struct | BendTextAlongCurveParams |
| class | BestFitParabola |
| accumulates a number of (x,y) points to find the best-least-squares parabola approximating them More... | |
| class | BestFitPolynomial |
| class | BinaryOperations |
| struct | BindVertexAttribArraySettings |
| class | BitSet |
| struct | BMap |
| flat map: I -> T More... | |
| struct | BooleanInternalParameters |
| Parameters will be useful if specified. More... | |
| struct | BooleanParameters |
| struct | BooleanPreCutResult |
| struct | BooleanResult |
| Structure contain boolean result. More... | |
| struct | BooleanResultMapper |
| Structure to map old mesh BitSets to new. More... | |
| struct | BooleanResultPoints |
| vertices and points representing mesh intersection result More... | |
| class | BoundarySelectionWidget |
| struct | Box |
| Box given by its min- and max- corners. More... | |
| 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 | CameraOrientation |
| class | CaptureScreenshotMenuItem |
| class | CaptureScreenshotToClipBoardMenuItem |
| class | CaptureUIScreenshotMenuItem |
| class | ChangeActiveBoxAction |
| Undo action for ObjectVoxels active bounds change. More... | |
| class | ChangeBoundarySelectionHistoryAction |
| class | ChangeColoringType |
| class | ChangeDualMarchingCubesAction |
| Undo action for ObjectVoxels dual/standard marching cubes change. More... | |
| class | ChangeFacesColorMapAction |
| class | ChangeGridAction |
| Undo action for ObjectVoxels all data change (need for faster undo redo) More... | |
| class | ChangeIsoAction |
| Undo action for ObjectVoxels iso-value change. More... | |
| class | ChangeLabelAction |
| class | ChangeLinesColorMapAction |
| class | ChangeMeshAction |
| Undo action for ObjectMesh mesh change. More... | |
| class | ChangeMeshCreasesAction |
| Undo action for ObjectMesh creases. More... | |
| class | ChangeMeshDataAction |
| Undo action for ObjectMeshData change. More... | |
| class | ChangeMeshEdgeSelectionAction |
| Undo action for ObjectMesh edge selection. More... | |
| class | ChangeMeshFaceSelectionAction |
| Undo action for ObjectMesh face selection. More... | |
| class | ChangeMeshPointsAction |
| Undo action for ObjectMesh points only (not topology) change. More... | |
| class | ChangeMeshTexturePerFaceAction |
| Undo action for ObjectMeshHolder texturePerFace change. More... | |
| class | ChangeMeshTopologyAction |
| Undo action for ObjectMesh topology only (not points) change. More... | |
| class | ChangeMeshUVCoordsAction |
| Undo action for ObjectMeshHolder uvCoords change. More... | |
| 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. More... | |
| class | ChangePolylineAction |
| Undo action for ObjectLines polyline change. More... | |
| class | ChangePolylinePointsAction |
| Undo action for ObjectLines points only (not topology) change. More... | |
| class | ChangePolylineTopologyAction |
| Undo action for ObjectLines topology only (not points) change. More... | |
| class | ChangeScaleAction |
| class | ChangeSceneAction |
| class | ChangeSceneObjectsOrder |
| class | ChangeSurfaceAction |
| Undo action for ObjectVoxels surface change (need for faster undo redo) More... | |
| class | ChangeTextureAction |
| class | ChangeValue |
| class | ChangeVertsColorMapAction |
| class | ChangeVisualizePropertyAction |
| class | ChangeXfAction |
| class | ChangVoxelSelectionAction |
| Undo action for ObjectVoxels face selection. More... | |
| struct | CharPressedListener |
| struct | Chunk |
| array chunk representation More... | |
| struct | ChunkIterator |
| iterator class for array chunks More... | |
| class | CircleObject |
| struct | CloseToMeshVolumeParams |
| struct | CloudPartMapping |
| mapping among elements of source point cloud, from which a part is taken, and target (this) point cloud More... | |
| struct | CmpOld |
| argument of this type indicates that the object is already in new state, and the following argument is old state More... | |
| class | CNCMachineSettings |
| class with CNC machine emulation settings More... | |
| struct | Color |
| class | ColorMapAggregator |
| Class for aggregate several color map in one Color maps are aggregated according order. More... | |
| class | ColorTheme |
| class | CombinedHistoryAction |
| class | CommandLoop |
| Additional command loop for external app control. More... | |
| struct | CompensateRadiusParams |
| structure with parameters for compensateRadius function More... | |
| struct | CompressZipSettings |
| struct | ComputeSteepestDescentPathSettings |
| struct | ComputeSweptVolumeParameters |
| Parameters for computeSweptVolume* functions. More... | |
| class | Cone3 |
| Base class for cone parameterization. More... | |
| class | Cone3Approximation |
| struct | Cone3ApproximationParams |
| struct | ConeFittingFunctor |
| class | ConeObject |
| class | Config |
| struct | ConnectionHolder |
| struct | ConstantCuspParams |
| struct | ContoursDistanceMapOffset |
| Structure with parameters for optional offset in distanceMapFromContours function. More... | |
| struct | ContoursDistanceMapOptions |
| struct | ContoursMeshAlignParams |
| Parameters for aligning 2d contours onto mesh surface. More... | |
| struct | ContourToDistanceMapParams |
| Structure with parameters to generate DistanceMap by Contours. More... | |
| struct | CoordinateConverters |
| this struct contains coordinate converters float-int-float More... | |
| struct | CoordinateConverters2 |
| this struct contains coordinate converters float-int-float More... | |
| class | CornerControllerObject |
| class that holds and manages corner controller object More... | |
| struct | CubicBezierCurve |
| Cubic Bezier curve. More... | |
| 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... | |
| struct | CurveFunc |
| struct | CurvePoint |
| struct | CustomButtonParameters |
| struct | CutByProjectionSettings |
| Settings structurer for cutMeshByProjection function. More... | |
| struct | CutMeshParameters |
| Parameters of MR::cutMesh. More... | |
| struct | CutMeshResult |
| class | Cylinder3 |
| class | Cylinder3Approximation |
| class | CylinderObject |
| struct | DecimatePolylineResult |
| Results of MR::decimateContour. More... | |
| struct | DecimatePolylineSettings |
| Parameters structure for MR::decimatePolyline. More... | |
| struct | DecimateResult |
| Results of MR::decimateMesh. More... | |
| struct | DecimateSettings |
| Parameters structure for MR::decimateMesh. More... | |
| class | DefaultSplashWindow |
| struct | DeloneSettings |
| class | DemoPlugin |
| struct | DenoiseViaNormalsSettings |
| struct | DenseBox |
| class | DentalId |
| This class represents tooth id. More... | |
| class | DepthPeelingGL |
| class to encapsulate depth peeling rendering passes as fall back if alpha sort is not available More... | |
| struct | DetectTunnelSettings |
| struct | Dipole |
| 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... | |
| struct | Dirty |
| struct | DistanceFromWeightedPointsComputeParams |
| struct | DistanceFromWeightedPointsParams |
| class | DistanceMap |
| struct | DistanceMapLoadSettings |
| settings for loading distance maps from external formats More... | |
| struct | DistanceMapSaveSettings |
| determines how to save distance maps More... | |
| struct | DistanceMapToWorld |
| This structure store data to transform distance map to world coordinates. More... | |
| class | DistanceMeasurementObject |
| Represents a distance measurement. More... | |
| struct | DistanceToMeshOptions |
| options determining computation of distance from a point to a mesh More... | |
| struct | DistanceVolumeParams |
| struct | DivideMeshWithPlaneParams |
| struct | DividePointCloudOptionalOutput |
| struct | DividePolylineParameters |
| struct | DoubleOffsetSettings |
| struct | DragDropListener |
| struct | DragEndListener |
| struct | DragEntranceListener |
| struct | DragListener |
| struct | DragOverListener |
| struct | DragStartListener |
| struct | DrawButtonParams |
| struct | DrawListener |
| struct | DrawSceneUiListener |
| A helper base class to subscribe to ImGuiMenu::drawSceneUiSignal. More... | |
| class | DrawViewportWidgetsItem |
| This sits in the background and renders various per-viewport buttons. More... | |
| struct | EdgeLengthMesh |
| class | EdgePathsAStarBuilder |
| class | EdgePathsBuilderT |
| the class is responsible for finding smallest metric edge paths on a mesh More... | |
| struct | EdgePoint |
| encodes a point on an edge of mesh or of polyline More... | |
| struct | EdgePointPair |
| two edge-points (e.g. representing collision point of two edges) More... | |
| struct | EdgeSegment |
| Represents a segment on one edge. More... | |
| struct | EdgeTri |
| edge from one mesh and triangle from another mesh More... | |
| class | EmbeddedPython |
| struct | EmbeddedStructureParameters |
| Parameters of structure embedding in terrain. More... | |
| struct | EndMillCutter |
| end mill cutter specifications More... | |
| struct | EndMillTool |
| end mill tool specifications More... | |
| class | EnumNeihbourFaces |
| class | EnumNeihbourVertices |
| struct | FaceDistancesSettings |
| struct | FaceFace |
| a pair of faces More... | |
| struct | FaceFaceFace |
| a triple of faces More... | |
| struct | FanRecord |
| describes one fan of triangles around a point excluding the point More... | |
| struct | FanRecordWithCenter |
| describes one fan of triangles around a point including the point More... | |
| 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. More... | |
| struct | FeatureObjectProjectPointResult |
| struct | FeatureObjectSharedProperty |
| class | FewSmallest |
| the class stores some number of smallest elements from a larger number of candidates More... | |
| 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 |
| struct | FillHoleItem |
| struct | FillHoleMetric |
| Holds metrics for fillHole and stitchHoles triangulation . More... | |
| struct | FillHoleNicelySettings |
| struct | FillHoleParams |
| Parameters structure for MR::fillHole Structure has some options to control MR::fillHole. More... | |
| struct | FillHolesWithExtraPointsParams |
| struct | FindDisorientationParams |
| Parameters for findDisorientedFaces function. More... | |
| struct | FindInnerShellSettings |
| struct | FindOutliersParams |
| Outlier point search parameters. More... | |
| struct | FindOverhangsSettings |
| parameters for MR::findOverhangs More... | |
| struct | FindOverlappingSettings |
| struct | FindProjectionOnPointsSettings |
| settings for IPointsProjector::findProjections More... | |
| struct | FitBoxParams |
| class | FitDataMenuItem |
| struct | FitDataParams |
| class | FitSelectedObjectsMenuItem |
| class | FitSelectedPrimitivesMenuItem |
| struct | FixCreasesParams |
| Parameters structure for fixMeshCreases function. More... | |
| struct | FixMeshDegeneraciesParams |
| struct | FlatTree |
| class | FloatGrid |
| wrapper class that helps mrbind to avoid excess MRVDBFloatGrid.h includes More... | |
| class | FlowAggregator |
| this class can track multiple flows and find in each mesh vertex the amount of water reached it More... | |
| struct | FlowOrigin |
| class | FormatRegistry |
| class | FramebufferData |
| class for easier rendering in framebuffer texture More... | |
| class | FrameCounter |
| class | FrameRedrawRequest |
| class for requesting frame redraw in some time More... | |
| class | FreeFormBestFit |
| class | FreeFormDeformer |
| Class for deforming mesh using Bernstein interpolation. More... | |
| class | FunctionRef |
| class | FunctionRef< R(Args...)> |
| Simplified implementation of std::function_ref from C++26. More... | |
| class | GcodeProcessor |
| class to process g-code source and generate toolpath More... | |
| class | GcodeToolsLibrary |
| class for storing CNC tools More... | |
| struct | GCommand |
| struct | GeneralOffsetParameters |
| allows the user to select in the parameters which offset algorithm to call More... | |
| struct | GeodesicPath |
| class | GlBuffer |
| represents OpenGL buffer owner, and allows uploading data in it remembering buffer size More... | |
| class | GLStaticHolder |
| class | GlTexture |
| represents OpenGL texture owner, and allows uploading data in it remembering texture size More... | |
| class | GlTexture2 |
| represents OpenGL 2D texture owner, and allows uploading data in it remembering texture size More... | |
| class | GlTexture2DArray |
| represents OpenGL array texture 2D owner, and allows uploading data in it remembering texture size More... | |
| class | GlTexture3 |
| represents OpenGL 3D texture owner, and allows uploading data in it remembering texture size More... | |
| class | Graph |
| mathematical graph consisting from vertices and undirected edges More... | |
| struct | GridSettings |
| settings defining regular grid, where each quadrangular cell is split on two triangles in one of two ways More... | |
| struct | GridToMeshSettings |
| parameters of OpenVDB Grid to Mesh conversion using Dual Marching Cubes algorithm More... | |
| class | Heap |
| stores map from element id in[0, size) to T; More... | |
| class | Histogram |
| class | Historian |
| class | HistoryAction |
| class | HistoryStore |
| This class stores history stack for undo/redo. More... | |
| struct | HoleEdgePoint |
| struct | HoleFillPlan |
| concise representation of proposed hole triangulation More... | |
| class | IComputeToolDistance |
| Interface for custom tool distance computation implementations. More... | |
| struct | IConnectable |
| class | ICP |
| struct | ICPGroupPair |
| struct | ICPGroupPairs |
| struct | ICPPairData |
| struct | ICPProperties |
| parameters of ICP algorithm More... | |
| class | Id |
| stores index of some element, it is made as template class to avoid mixing faces, edges and vertices More... | |
| class | Id< EdgeTag > |
| class | Id< VoxelTag > |
| class | IDragDropHandler |
| this class is needed to emit detailed Drag & Drop events to Viewer on different platforms More... | |
| 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) More... | |
| class | IFastWindingNumberByParts |
| Abstract class that complements IFastWindingNumber with chunked processing variants of its methods. More... | |
| class | IICPTreeIndexer |
| structure to find leafs and groups of each in cascade mode More... | |
| struct | Image |
| class | ImGuiImage |
| class | ImGuiMenu |
| struct | ImproveSamplingSettings |
| struct | InflateSettings |
| class | InplaceStack |
| Container class implementing in-place static sized stack. More... | |
| struct | InSphere |
| found maximal inscribed sphere touching input point with center along given direction More... | |
| struct | InSphereSearchSettings |
| controls the finding of maximal inscribed sphere in mesh More... | |
| struct | InterruptCloseListener |
| struct | IntersectionPrecomputes |
| struct | IntersectionPrecomputes2 |
| class | InTreePathBuilder |
| struct | IntrinsicDeloneSettings |
| struct | IOFilter |
| class | IPluginUpdate |
| Interface for automatically update StatePlugins internal data. More... | |
| struct | IPointPairs |
| Simple interface for pairs holder. More... | |
| class | IPointsProjector |
| abstract class for computing the closest points of point clouds More... | |
| class | IPointsToMeshProjector |
| Abstract class, computes the closest point on mesh to each of given points. Pure virtual functions must be implemented. More... | |
| class | IRenderObject |
| class | ISceneSelectionChange |
| Interface for processing scene state change in RibbonItems. More... | |
| class | ISceneStateCheck |
| Interface for checking scene state, to determine availability, also can return string with requirements. More... | |
| 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 | ItemEnabledPerViewport |
| struct | IteratorRange |
| class | ITransformControls |
| Interface class for ObjectTransformWidget custom visualization. More... | |
| class | IViewerSettingsManager |
| struct | KeyDownListener |
| struct | KeyRepeatListener |
| struct | KeyUpListener |
| class | LambdaRibbonItem |
| Simple ribbon item acting given lambda. More... | |
| class | Laplacian |
| struct | LaunchParams |
| This struct contains rules for viewer launch. More... | |
| struct | Line |
| struct | Line3Mesh |
| struct | LineInterpolationParams |
| class | LineObject |
| struct | LineSegm |
| a segment of straight dimensional line More... | |
| struct | LinesLoadSettings |
| setting for polyline loading from external format, and locations of optional output data More... | |
| struct | LoadedMeshData |
| ObjectMeshData and additional information from mesh importer. More... | |
| struct | LoadedObjects |
| result of loading (e.g. from a file) as a number of objects More... | |
| struct | LoadedObjectT |
| result of loading (e.g. from a file) as one object (with possible subobjects) More... | |
| class | Logger |
| Make default spd logger. More... | |
| class | LoggingStreambuf |
| A custom streambuf that outputs things directly to the default spdlog logger. More... | |
| struct | MakeBridgeResult |
| struct | MakeDegenerateBandAroundRegionParams |
| holds together settings for makeDegenerateBandAroundRegion More... | |
| struct | MakeSignedByWindingNumberSettings |
| struct | MapOrHashMap |
| class | MarchingCubesByParts |
| struct | MarchingCubesParams |
| struct | MarkedContour3f |
| class | MarkedVoxelSlice |
| ImGui visualization of a slice from voxel object and seed marks on it. More... | |
| struct | Matrix |
| struct | Matrix2 |
| struct | Matrix3 |
| struct | Matrix4 |
| struct | MaxArg |
| class | MeasurementObject |
| struct | MenuItemCaptionSize |
| struct | MenuItemInfo |
| struct | MergeVolumePartSettings |
| Parameters' structure for MR::mergeVolumePart. More... | |
| struct | Mesh |
| struct | MeshApproxRelaxParams |
| struct | MeshAttributesToUpdate |
| the attribute data of the mesh that needs to be updated More... | |
| class | MeshDiff |
| struct | MeshEqualizeTriAreasParams |
| struct | MeshIntersectionResult |
| struct | MeshLoadSettings |
| setting for mesh loading from external format, and locations of optional output data More... | |
| struct | MeshMeshConverter |
| struct | MeshMeshDistanceResult |
| struct | MeshMeshSignedDistanceResult |
| class | MeshModifier |
| struct | MeshNormals |
| class | MeshOnVoxelsT |
| class | MeshOrPoints |
| class | MeshOrPointsObject |
| struct | MeshOrPointsXf |
| an object and its transformation to global space with other objects More... | |
| struct | MeshPoint |
| describes the point of measurement on mesh More... | |
| struct | MeshPointAndDistance |
| struct | MeshProjectionParameters |
| struct | MeshProjectionResult |
| struct | MeshProjectionTransforms |
| struct | MeshRegion |
| struct | MeshRelaxParams |
| struct | MeshTexture |
| struct | MeshToDirectionVolumeParams |
| struct | MeshToDistanceMapParams |
| struct | MeshToDistanceVolumeParams |
| class | MeshTopology |
| class | MeshTopologyDiff |
| struct | MeshToVolumeParams |
| Parameters structure for meshToVolume function. More... | |
| struct | MeshTriPoint |
| struct | MeshVoxelsConverter |
| converter of meshes in or from signed distance volumetric representation More... | |
| struct | MetricToAStarPenalty |
| struct | MinArg |
| struct | MinMaxArg |
| class | ModalDialog |
| Helper class to display modal dialogs. ModalDialogSettings. More... | |
| struct | ModalDialogSettings |
| Settings for ModalDialog. More... | |
| struct | ModelBaseRenderParams |
| struct | ModelPointsData |
| structure to contain pointers to model data More... | |
| struct | ModelRenderParams |
| Mesh rendering parameters for primary rendering (as opposed to the picker). More... | |
| struct | MouseClickListener |
| class | MouseController |
| struct | MouseDownListener |
| struct | MouseMoveListener |
| struct | MouseScrollListener |
| struct | MouseUpListener |
| struct | MovementBuildBodyParams |
| struct | MoveMeshToVoxelMaxDerivSettings |
| class | MoveObjectByMouse |
| class | MoveObjectByMouseImpl |
| struct | MruFormatParameters |
| Parameters of mesh / point / voxel object storage formats inside an .mru file. More... | |
| struct | MultiListener |
| struct | MultiMeshIntersectionResult |
| struct | MultiRayMeshIntersectResult |
| class | MultiwayAligningTransform |
| class | MultiwayICP |
| struct | MultiwayICPSamplingParameters |
| Parameters that are used for sampling of the MultiwayICP objects. More... | |
| struct | MutexOwner |
| struct | NameTagClickListener |
| A helper base class to subscribe to ImGuiMenu::manuallySelectObjectSignal. More... | |
| struct | NewEdgesMap |
| class | NextEdgeSameLeft |
| class | NextEdgeSameOrigin |
| struct | NoCtor |
| struct | NoCtor< T > |
| for trivial types, return the type itself More... | |
| struct | NoDefInit |
| this class is similar to T, but does not make default initialization of the fields for best performance More... | |
| struct | NodeNode |
| struct | NoInit |
| class | NoInitId |
| Variant of Id<T> with omitted initialization by default. Useful for containers. More... | |
| struct | NoiseSettings |
| struct | NoModelCheck |
| special struct for disabling model check More... | |
| class | NormalsToPoints |
| struct | NotificationTags |
| struct | NoVisualRepresentationCheck |
| special struct for disabling visual representation check More... | |
| struct | NumSum |
| class | Object |
| named object in the data model More... | |
| class | ObjectChildrenHolder |
| class | ObjectComparableWithReference |
| A base class for a data-model object that is a feature/measurement that can be compared between two models. More... | |
| class | ObjectDistanceMap |
| class | ObjectFactory |
| class | ObjectFactoryBase |
| class | ObjectGcode |
| class | ObjectImGuiLabel |
| class | ObjectLabel |
| class | ObjectLines |
| class | ObjectLinesHolder |
| class | ObjectMesh |
| struct | ObjectMeshData |
| mesh and its per-element attributes for ObjectMeshHolder More... | |
| class | ObjectMeshHolder |
| struct | ObjectMeshMergeOptions |
| options to better control MR::merge function More... | |
| class | ObjectPoints |
| class | ObjectPointsHolder |
| class | ObjectTagEventDispatcher |
| class for dispatching object tag addition/removal events More... | |
| class | ObjectTransformWidget |
| class | ObjectVoxels |
| 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 > |
| struct | ObjTreeTraits |
| struct | ObjVertId |
| struct | OffsetContourIndex |
| struct | OffsetContoursOrigins |
| struct | OffsetContoursParams |
| struct | OffsetContoursRestoreZParams |
| Parameters of restoring Z coordinate of XY offset 3d contours. More... | |
| struct | OffsetParameters |
| struct | OneMeshContour |
| One contour on mesh. More... | |
| struct | OneMeshIntersection |
| Simple point on mesh, represented by primitive id and coordinate in mesh space. More... | |
| class | OpenDICOMsMenuItem |
| class | OpenDirectoryMenuItem |
| class | OpenFilesMenuItem |
| class | OpenRawVoxelsPlugin |
| struct | OpenVdbFloatGrid |
| this class just hides very complex type of typedef openvdb::FloatGrid More... | |
| struct | OriginAndDimensions |
| shift of zero voxel in 3D space and dimensions of voxel-grid More... | |
| struct | OutAttributesFillingSettings |
| struct | OutlierParams |
| Parameters of various criteria for detecting outlier points. More... | |
| class | OutliersDetector |
| struct | OutputFlows |
| struct | overloaded |
| struct | 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 | ParallelProgressReporter |
| class | PartialChangeMeshAction |
| Undo action for efficiently storage of partial change in mesh (e.g. a modification of small region) More... | |
| class | PartialChangeMeshDataAction |
| Undo action for ObjectMeshData change partially. More... | |
| class | PartialChangeMeshPointsAction |
| Undo action for efficiently storage of partial change in mesh points (e.g. a modification of small region) More... | |
| class | PartialChangeMeshTopologyAction |
| Undo action for efficiently storage of partial change in mesh topology (e.g. a modification of small region) More... | |
| struct | PartMapping |
| mapping among elements of source mesh, from which a part is taken, and target mesh More... | |
| class | |
| struct | PdfParameters |
| Parameters of document style. More... | |
| class | PickPointManager |
| struct | Plane3 |
| class | PlaneAccumulator |
| Class to accumulate planes to find then their crossing point. More... | |
| class | PlaneObject |
| class | PlaneWidget |
| class | PluginCloseOnChangeMesh |
| class | PluginCloseOnChangePointCloud |
| class | PluginCloseOnEscPressed |
| Helper class to close a dialog-less plugin when the Esc key is pressed. More... | |
| class | PluginCloseOnSelectedObjectRemove |
| class | PluginUpdateOnChangeMeshPart |
| class | PluginUpdateOr |
| struct | PlyLoadParams |
| optional load artifacts and other setting for PLY file loading More... | |
| class | PointAccumulator |
| Class to accumulate points and make best line / plane approximation. More... | |
| struct | PointAndDistance |
| struct | PointCloud |
| struct | PointCloudApproxRelaxParams |
| struct | PointCloudPart |
| represents full point cloud (if region is nullptr) or some portion of point cloud (if region pointer is valid) More... | |
| struct | PointCloudRelaxParams |
| struct | PointInAllSpaces |
| class | PointMeasurementObject |
| class | PointObject |
| struct | PointOnFace |
| a point located on some mesh's face More... | |
| struct | PointOnObject |
| struct | PointPair |
| Stores a pair of points: one samples on the source and the closest to it on the target. More... | |
| struct | PointPairs |
| struct | PointsLoadSettings |
| structure with settings and side output parameters for loading point cloud More... | |
| struct | PointsProjectionResult |
| class | PointsProjector |
| default implementation of IPointsProjector More... | |
| struct | PointsToDistanceVolumeParams |
| struct | PointsToMeshParameters |
| class | PointsToMeshProjector |
| Computes the closest point on mesh to each of given points on CPU. More... | |
| class | PointToPlaneAligningTransform |
| class | PointToPointAligningTransform |
| struct | Polyline |
| struct | PolylineIntersectionResult2 |
| struct | PolylineMaker |
| simplifies construction of connected polyline in the topology More... | |
| struct | PolylineProjectionResult |
| struct | PolylineProjectionResult3Arg |
| struct | PolylineProjectionWithOffsetResult |
| struct | PolylineSubdivideSettings |
| struct | PolylineToDistanceVolumeParams |
| class | PolylineTopology |
| struct | PolylineToVolumeParams |
| Settings to conversion polyline to volume. More... | |
| struct | PolylineTraits |
| struct | PolylineTraits< Vector2f > |
| struct | PolylineTraits< Vector3f > |
| class | PolylineUndirectedEdgeIterator |
| struct | Polynomial |
| struct | PolynomialWrapper |
| This is a unifying interface for a polynomial of some degree, known only in runtime. More... | |
| struct | PositionedText |
| struct | 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 More... | |
| struct | PreciseVertCoord |
| struct | PreciseVertCoords |
| struct | 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 |
| This class implements OpenVdb interrupter interface and provides ability to use MR::ProgressCallback in some OpenVdb operations. More... | |
| struct | ProjectAttributeParams |
| this structure contains transformation for projection from one mesh to another and progress callback More... | |
| class | ProvidesViewportWidget |
| Inherit your plugin from this to draw viewport widgets from there. More... | |
| class | PythonExport |
| struct | PythonFunctionAdder |
| struct | QuadraticForm |
| class | QuadricApprox |
| class | QuadTextureVertexObject |
| class for rendering simple texture More... | |
| struct | Quaternion |
| class | RadiusMeasurementObject |
| Represents a radius measurement. More... | |
| 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 |
| struct | RawTiffOutput |
| struct | RayOrigin |
| struct | RebuildMeshSettings |
| class | RecentFilesStore |
| class | RectIndexer |
| a class for converting 2D integer coordinates into 1D linear coordinates and backward More... | |
| class | RedoMenuItem |
| struct | RefineParameters |
| Optional parameters for refineFeatureObject. More... | |
| class | RegisterRenderObjectConstructor |
| class | RegularMapMesher |
| Class for making mesh from regular distance map. More... | |
| struct | RelaxParams |
| struct | RemeshSettings |
| class | RenderAngleObject |
| class | RenderBufferRef |
| provides access to shared buffer with type casting More... | |
| class | RenderDistanceObject |
| class | RenderImGuiLabelObject |
| The implementation of IRenderObject used by ObjectImGuiLabel. Draws an label using ImGui. More... | |
| class | RenderLabelObject |
| class | RenderLinesObject |
| class | RenderMeshObject |
| class | RenderNameObject |
| class | RenderObjectBuffer |
| provides shared buffer for loading different types of data to GL memory More... | |
| class | RenderObjectCombinator |
| Combines several different IRenderObjects into one in a meaningful way. More... | |
| class | RenderPointObject |
| class | RenderPointsObject |
| class | RenderRadiusObject |
| class | RenderResetDirtyComponent |
| Simple render object to clear dirty flags in render objects combinations. More... | |
| class | RenderVolumeObject |
| class | ResetSceneMenuItem |
| struct | ResolveMeshDegenSettings |
| class | RestoringStreamsSink |
| class | RibbonButtonDrawer |
| class for drawing ribbon menu buttons More... | |
| struct | RibbonConfig |
| class | RibbonFontHolder |
| class for convenient use of ImGui::PushFont / ImGui::PopFont with ribbon fonts More... | |
| class | RibbonFontManager |
| class | RibbonIcons |
| this class holds icons for ribbon items More... | |
| class | RibbonMenu |
| class | RibbonMenuItem |
| class | RibbonMenuItemAdder |
| class | RibbonMenuItemAdderT |
| class | RibbonMenuItemCall |
| class | RibbonMenuSearch |
| separate class for search in ribbon menu More... | |
| struct | RibbonMenuUIConfig |
| struct | RibbonNotification |
| class | RibbonNotifier |
| class to hold and operate with notifications More... | |
| 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 |
| This structure describes UI schema of ribbon menu. More... | |
| class | RibbonSchemaHolder |
| class | RibbonSchemaLoader |
| Class for loading ribbon schema from structure files (basically called from RibbonMenu, but can be called separately) More... | |
| class | RibbonSchemaLoadListener |
| struct | RibbonTab |
| struct | RigidScaleXf3 |
| struct | RigidXf3 |
| class | RingIterator |
| The iterator to find all edges in a ring of edges (e.g. all edges with same origin or all edges with same left face) More... | |
| class | SaveObjectMenuItem |
| struct | SaveObjectSettings |
| class | SaveOnClosePlugin |
| this plugin will show a message to the user if she closes the application when something is modified More... | |
| class | SaveSceneAsMenuItem |
| class | SaveSceneMenuItem |
| class | SaveSelectedMenuItem |
| struct | SaveSettings |
| determines how to save points/lines/mesh More... | |
| class | SceneCache |
| class to cached scene objects data More... | |
| struct | SceneColors |
| 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. More... | |
| class | SceneSelectionChangeClose |
| close on state change More... | |
| class | SceneSelectionChangeRestart |
| restart on state change More... | |
| class | SceneSettings |
| class | SceneStateAndCheck |
| checks that all of argument checks are true More... | |
| class | SceneStateAtLeastCheck |
| checks that given vector has at least N objects if type ObjectT More... | |
| class | SceneStateAtLeastCheck< N, ObjectT, NoModelCheck > |
| class | SceneStateAtLeastCheck< N, ObjectT, NoVisualRepresentationCheck > |
| class | SceneStateExactCheck |
| check that given vector has exactly N objects if type ObjectT More... | |
| class | SceneStateExactCheck< N, ObjectT, NoModelCheck > |
| class | SceneStateExactCheck< N, ObjectT, NoVisualRepresentationCheck > |
| class | SceneStateOrCheck |
| checks that at least one of argument checks is true More... | |
| class | SceneTextureGL |
| Class for rendering 3d scene into texture. More... | |
| 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... | |
| struct | SearchPathSettings |
| Geo path search settings. More... | |
| struct | SegmEndColors |
| colors of segment ends More... | |
| struct | SegmentSegmentIntersectResult |
| struct | SegmPoint |
| encodes a point inside a line segment using relative distance in [0,1] More... | |
| class | SelectObjectByClick |
| class | SeparationPointStorage |
| storage for points on voxel edges used in Marching Cubes algorithms More... | |
| class | SetBitIteratorT |
| iterator to enumerate all indices with set bits in BitSet class or its derivatives More... | |
| struct | SetNew |
| argument of this type indicates that the object is in old state, and the following argument is new state to be set More... | |
| class | SetViewportConfigPresetMenuItem |
| class | SetViewPresetMenuItem |
| struct | ShaderWarning |
| class | ShadowsGL |
| class | SharedThreadSafeOwner |
| struct | SharpenMarchingCubesMeshSettings |
| struct | SharpOffsetParameters |
| struct | ShellVertexInfo |
| information about shell vertex More... | |
| class | ShiftTransformer |
| functor for shifting voxels More... | |
| struct | ShortcutKey |
| class | ShortcutManager |
| struct | Signal |
| struct | SignedDistanceToMeshOptions |
| options determining computation of signed distance from a point to a mesh More... | |
| struct | SignedDistanceToMeshResult |
| struct | SimpleTimeRecord |
| struct | SkyPatch |
| this class represents a portion of the sky, and its radiation More... | |
| struct | SliceInfo |
| struct | SliceInfoBase |
| struct | SmoothFillingSettings |
| struct | SomeLocalTriangulations |
| describes a number of local triangulations of some points (e.g. assigned to a thread) More... | |
| struct | SortIntersectionsData |
| Special data to sort intersections more accurate. More... | |
| struct | SpaceMouseDownListener |
| class to subscribe on SpaceMouseDownSgnal More... | |
| struct | SpaceMouseMoveListener |
| class to subscribe on SpaceMouseMoveSignal More... | |
| struct | SpaceMouseUpListener |
| class to subscribe on SpaceMouseUpSignal More... | |
| struct | SpacingSettings |
| class | SparsePolynomial |
| struct | Sphere |
| class | SphereObject |
| struct | SphereParams |
| class | SplashWindow |
| struct | SplineSettings |
| class | Src2TgtMaps |
| use this adapter to call functions expecting PartMapping parameter to receive src2tgt dense maps More... | |
| class | StateBasePlugin |
| class | StateListenerPlugin |
| struct | StitchHolesNicelySettings |
| struct | StitchHolesParams |
| Parameters structure for MR::stitchHoles Structure has some options to control MR::stitchHoles. More... | |
| struct | StopOnTrueCombiner |
| Pass this as a second template argument to boost::signals2::signal<...> to stop the execution of handlers when one of them returns true. More... | |
| struct | SubdivideFillingSettings |
| struct | SubdivideSettings |
| class | SurfaceDistanceBuilder |
| this class is responsible for iterative construction of distance map along the surface More... | |
| 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 |
| Widget for controlling point on surface with mouse. More... | |
| class | SwapRootAction |
| struct | SymbolMeshParams |
| struct | SymMatrix2 |
| struct | SymMatrix3 |
| struct | SymMatrix4 |
| struct | SystemMemory |
| class | SystemPath |
| system directory path manager More... | |
| struct | TbbTaskArenaAndGroup |
| class | TbbThreadMutex |
| class | TeethMaskToDirectionVolumeConvertor |
| struct | TerminalVertex |
| struct | TextMeshAlignParams |
| class | Tgt2SrcMaps |
| use this adapter to call functions expecting PartMapping parameter to receive tgt2src dense maps More... | |
| struct | ThickenParams |
| struct | ThreadRootTimeRecord |
| struct | TiffParameters |
| class | Timer |
| struct | TimeRecord |
| class | Toolbar |
| class to draw toolbar and toolbar customize windows More... | |
| struct | ToolPathParams |
| struct | 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 |
| Basic implementation of ITransformControls. More... | |
| struct | TransformedMesh |
| just stores a mesh and its transformation to some fixed reference frame More... | |
| struct | TransformVdbVolumeResult |
| struct | TransparencyMode |
| struct to determine transparent rendering mode More... | |
| struct | TriangleSegmentIntersectResult |
| struct | TriangulationParameters |
| Parameters of point cloud triangulation. More... | |
| struct | TriIntersectResult |
| struct | TriMesh |
| struct | TrimOptionalOutput |
| stores optional output params for trimWithPlane function More... | |
| struct | TrimWithPlaneParams |
| stores basic params for trimWithPlane function More... | |
| struct | TriPoint |
| encodes a point inside a triangle using barycentric coordinates More... | |
| struct | TriTriDistanceParams |
| struct | TriTriDistanceResult |
| struct | TrivialMetricToPenalty |
| the vertices in the queue are ordered by their metric from a start location More... | |
| struct | TwoLineSegmClosestPoints |
| class | TypedBitSet |
| struct | TypedFlatTree |
| struct | UiRenderManager |
| struct | UiRenderParams |
| class | UndirectedEdgeIterator |
| The iterator to find all not-lone undirected edges in the mesh. More... | |
| struct | UndirectedEdgeUndirectedEdge |
| a pair of undirected edges More... | |
| class | UndoMenuItem |
| class | UnifiedPythonStream |
| struct | 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... | |
| struct | UniquePtr |
| class | UniqueTemporaryFolder |
| helper class to create a temporary folder; the folder will be removed on the object's destruction More... | |
| class | UniqueThreadSafeOwner |
| struct | UniteManyMeshesParams |
| Parameters structure for uniteManyMeshes function. More... | |
| struct | UnitInfo |
| Information about a single measurement unit. More... | |
| struct | UnitToStringParams |
| Controls how a value with a unit is converted to a string. More... | |
| struct | UnorientedTriangle |
| struct | VarEdgeTri |
| class | Vector |
| std::vector<T>-like container that requires specific indexing type, More... | |
| struct | Vector2 |
| struct | Vector3 |
| struct | Vector4 |
| struct | VectorTraits |
| Common traits for (mathematical) vectors. More... | |
| struct | VectorTraits< ImVec2 > |
| struct | VectorTraits< ImVec4 > |
| struct | VectorTraits< Vector2< T > > |
| struct | VectorTraits< Vector3< T > > |
| struct | VectorTraits< Vector4< T > > |
| class | VersatileChangeMeshPointsAction |
| class | VertCoordsDiff |
| struct | VertDistance |
| struct | VertPathInfo |
| information associated with each vertex by the paths builder More... | |
| class | VertRenumber |
| maps valid points to packed sequential indices More... | |
| class | Viewer |
| GLFW-based mesh viewer. More... | |
| 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 |
| This class holds data needed to render viewport primitives and accumulative picker via OpenGL. More... | |
| class | ViewportGlobalBasis |
| Class to unify Global Basis control. More... | |
| class | ViewportId |
| class | ViewportIterator |
| iterates over all ViewportIds in given ViewportMask More... | |
| class | ViewportMask |
| stores mask of viewport unique identifiers More... | |
| class | ViewportParametersAction |
| struct | ViewportPointsWithColors |
| stores points and corresponding colors (sizes of vectors should be the same) More... | |
| class | ViewportProperty |
| class | VisualObject |
| Visual Object. More... | |
| 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 |
| struct | VolumeSegmentationParameters |
| Parameters for volume segmentation. More... | |
| class | VolumeSegmenter |
| Class for voxels segmentation. More... | |
| struct | VolumeToMeshByPartsSettings |
| Parameters' structure for MR::volumeToMeshByParts. More... | |
| struct | VoxelLocation |
| contains both linear Id and 3D coordinates of the same voxel More... | |
| struct | VoxelMetricParameters |
| Parameters for building metric function. More... | |
| struct | VoxelsVolume |
| represents a box in 3D space subdivided on voxels stored in T More... | |
| 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. | |
| 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 | VoxelsVolumeCachingAccessor |
| class | VoxelsVolumeInterpolatedAccessor |
| struct | VoxelsVolumeMinMax |
| struct | VoxelTraits |
| struct | VoxelTraits< FloatGrid > |
| struct | VoxelTraits< Vector< T, VoxelId > > |
| struct | VoxelTraits< VoxelBitSet > |
| struct | VoxelTraits< VoxelValueGetter< T > > |
| class | WatershedGraph |
| graphs representing rain basins on the mesh More... | |
| class | WebRequest |
| this class is needed to unify cpp and wasm requests More... | |
| struct | WeightedVertex |
| struct | Writer |
| the purpose of this struct is to invalidate object cache in its destructor More... | |
| struct | WriteRawTiffParams |
| class | XfBasedCache |
| struct | ZCompensateParams |
| struct | ZeroOnMove |
Concepts | |
| concept | Trivial |
| concept | HasGetNormalMethod |
| concept | HasGetDirectionMethod |
| concept | UnitEnum |
| Whether E is one of the unit enums: NoUnit, LengthUnit, AngleUnit, ... | |
| concept | AnyVisualizeMaskEnumType |
| Wraps IsVisualizeMaskEnum and adds some sanity checks. | |
Typedefs | |
| using | FileNamesStack = std::vector<std::filesystem::path> |
| using | PdfGeneralFont = std::variant<PdfBuildinFont, std::filesystem::path> |
| using | FaceTreeTraits3 = AABBTreeTraits<FaceTag, Box3f> |
| template<typename V> | |
| using | LineTreeTraits = AABBTreeTraits<UndirectedEdgeTag, Box<V>> |
| using | LineTreeTraits2 = LineTreeTraits<Vector2f> |
| using | LineTreeTraits3 = LineTreeTraits<Vector3f> |
| template<typename T> | |
| using | AABBTreeNodeVec = Vector<AABBTreeNode<T>, NodeId> |
| template<size_t degree> | |
| using | Polynomialf = Polynomial<float, degree> |
| template<size_t degree> | |
| using | Polynomiald = Polynomial<double, degree> |
| template<typename T> | |
| using | Polynomialx |
| using | PolynomialWrapperf = PolynomialWrapper<float> |
| using | PolynomialWrapperd = PolynomialWrapper<double> |
| template<size_t degree> | |
| using | BestFitPolynomialf = BestFitPolynomial<float, degree> |
| template<size_t degree> | |
| using | BestFitPolynomiald = BestFitPolynomial<double, degree> |
| using | PathMeshEdgePointCallback = std::function<void( const MeshEdgePoint& mep )> |
| Callback for each MeshEdgePoint in path. | |
| using | CurvePoints = std::vector<CurvePoint> |
| curve given as a number of points on it samples at arbitrary steps | |
| template<class T, class E = std::string> | |
| using | Expected = tl::expected<T, E> |
| template<class E = std::string> | |
| using | Unexpected = tl::unexpected<E> |
| using | FastInt128 = __int128_t |
| using | FeaturesPropertyTypesVariant = std::variant<float, Vector3f> |
| using | MultiObjsSamples = std::vector<ObjVertId> |
| using | Int128 = boost::multiprecision::int128_t |
| using | Int256 = boost::multiprecision::int256_t |
| using | Vector2i128 = Vector2<Int128> |
| using | Vector3i128 = Vector3<Int128> |
| using | Vector2i128fast = Vector2<FastInt128> |
| no bindings since no operator << and no sqrt for FastInt128 | |
| using | Vector3i128fast = Vector3<FastInt128> |
| using | Vector2i256 = Vector3<Int256> |
| using | Vector3i256 = Vector3<Int256> |
| using | HistoryStackFilter = std::function<bool( const std::shared_ptr<HistoryAction>& )> |
| using | HistoryActionsVector = std::vector<std::shared_ptr<HistoryAction>> |
| using | OneMeshContours = std::vector<OneMeshContour> |
| Special data type for MR::cutMesh. | |
| using | ContinuousContour = std::vector<VarEdgeTri> |
| using | ContinuousContours = std::vector<ContinuousContour> |
| using | IOFilters = std::vector<IOFilter> |
| using | IRenderObjectConstructorLambda = std::function<std::unique_ptr<IRenderObject>( const VisualObject& )> |
| using | ObjectPtr = std::shared_ptr<Object> |
| using | LoadedObject = LoadedObjectT<Object> |
| using | LoadedObjectMesh = LoadedObjectT<ObjectMesh> |
| using | LoadedObjectPoints = LoadedObjectT<ObjectPoints> |
| using | LoadedObjectLines = LoadedObjectT<ObjectLines> |
| using | LoadedObjectVoxels = LoadedObjectT<ObjectVoxels> |
| using | TrianglesRepetitions = std::array<int, 4> |
| using | MR_BIND_IGNORE = std::array<Vector3f, 3> |
| using | PreciseCollisionResult = std::vector<VarEdgeTri> |
| using | TriangleCallback = std::function<ProcessOneResult( const Vector3f & p, FaceId f, const Vector3f & q, float distSq )> |
| using | MultipleEdge = VertPair |
| finds multiple edges in the mesh | |
| using | EdgePath = std::vector<EdgeId> |
| using | EdgeLoop = std::vector<EdgeId> |
| using | EdgeLoops = std::vector<EdgeLoop> |
| template<typename T> | |
| using | TaggedBitSet = TypedBitSet<Id<T>> |
| using | Int64 = std::int64_t |
| using | Uint64 = std::uint64_t |
| template<typename T> | |
| using | AffineXf3 = AffineXf<Vector3<T>> |
| template<typename T> | |
| using | Sphere3 = Sphere<Vector3<T>> |
| template<typename T> | |
| using | Line3 = Line<Vector3<T>> |
| template<typename T> | |
| using | LineSegm3 = LineSegm<Vector3<T>> |
| template<typename T> | |
| using | Contour2 = Contour<Vector2<T>> |
| template<typename T> | |
| using | Contour3 = Contour<Vector3<T>> |
| using | Contour2d = Contour2<double> |
| using | Contour2f = Contour2<float> |
| using | Contour3d = Contour3<double> |
| using | Contour3f = Contour3<float> |
| template<typename V> | |
| using | Contours = std::vector<Contour<V>> |
| template<typename T> | |
| using | Contours2 = Contours<Vector2<T>> |
| template<typename T> | |
| using | Contours3 = Contours<Vector3<T>> |
| using | Contours2d = Contours2<double> |
| using | Contours2f = Contours2<float> |
| using | Contours3d = Contours3<double> |
| using | Contours3f = Contours3<float> |
| template<typename T> | |
| using | MinMax = Box<T> |
| using | MinMaxf = MinMax<float> |
| using | MinMaxd = MinMax<double> |
| using | MinMaxi = MinMax<int> |
| template<typename T> | |
| using | Box1 = Box<T> |
| template<typename T> | |
| using | Box2 = Box<Vector2<T>> |
| template<typename T> | |
| using | Box3 = Box<Vector3<T>> |
| template<typename T> | |
| using | Ball1 = Ball<T> |
| template<typename T> | |
| using | Ball2 = Ball<Vector2<T>> |
| template<typename T> | |
| using | Ball3 = Ball<Vector3<T>> |
| template<typename T> | |
| using | CubicBezierCurve2 = CubicBezierCurve<Vector2<T>> |
| template<typename T> | |
| using | CubicBezierCurve3 = CubicBezierCurve<Vector3<T>> |
| template<typename T> | |
| using | QuadraticForm3 = QuadraticForm<Vector3<T>> |
| using | Triangle3i = Triangle3<int> |
| using | Triangle3f = Triangle3<float> |
| using | Triangle3d = Triangle3<double> |
| using | MeshEdgePoint = EdgePoint |
| using | SurfacePath = std::vector<MeshEdgePoint> |
| using | SurfacePaths = std::vector<SurfacePath> |
| using | IsoLine = SurfacePath |
| using | IsoLines = SurfacePaths |
| using | PlaneSection = SurfacePath |
| using | PlaneSections = SurfacePaths |
| using | VertPair = std::pair<VertId, VertId> |
| using | FacePair = std::pair<FaceId, FaceId> |
| using | EdgePair = std::pair<EdgeId, EdgeId> |
| using | UndirectedEdgePair = std::pair<UndirectedEdgeId, UndirectedEdgeId> |
| using | UVCoord = Vector2f |
| using | TwoVertIds = std::array<VertId, 2> |
| two vertex ids describing an edge with the ends in vertices given by their ids | |
| using | ThreeVertIds = std::array<VertId, 3> |
| three vertex ids describing a triangle with the corners in vertices given by their ids | |
| using | ThreeUVCoords = std::array<UVCoord, 3> |
| three UV-coordinates describing texturing of a triangle | |
| using | FacePredicate = std::function<bool( FaceId )> |
| using | EdgePredicate = std::function<bool( EdgeId )> |
| using | UndirectedEdgePredicate = std::function<bool( UndirectedEdgeId )> |
| using | PreCollapseCallback = std::function<bool( EdgeId edgeToCollapse, const Vector3f& newEdgeOrgPos )> |
| using | OnEdgeSplit = std::function<void( EdgeId e1, EdgeId e )> |
| using | VertMetric = std::function<float( VertId )> |
| using | FaceMetric = std::function<float( FaceId )> |
| using | EdgeMetric = std::function<float( EdgeId )> |
| using | UndirectedEdgeMetric = std::function<float( UndirectedEdgeId )> |
| template<typename T, typename Hash = phmap::priv::hash_default_hash<T>, typename Eq = phmap::priv::hash_default_eq<T>> | |
| using | ParallelHashSet = phmap::parallel_flat_hash_set<T, Hash, Eq> |
| using | FaceHashSet = HashSet<FaceId> |
| No canonical typedefs because phmap::... is not under our control. | |
| using | VertHashSet = HashSet<VertId> |
| using | EdgeHashSet = HashSet<EdgeId> |
| template<typename K, typename V, typename Hash = phmap::priv::hash_default_hash<K>, typename Eq = phmap::priv::hash_default_eq<K>> | |
| using | HashMap = phmap::flat_hash_map<K, V, Hash, Eq> |
| template<typename K, typename V, typename Hash = phmap::priv::hash_default_hash<K>, typename Eq = phmap::priv::hash_default_eq<K>> | |
| using | ParallelHashMap = phmap::parallel_flat_hash_map<K, V, Hash, Eq> |
| using | FaceHashMap = HashMap<FaceId, FaceId> |
| using | VertHashMap = HashMap<VertId, VertId> |
| using | EdgeHashMap = HashMap<EdgeId, EdgeId> |
| using | UndirectedEdgeHashMap = HashMap<UndirectedEdgeId, UndirectedEdgeId> |
| using | WholeEdgeHashMap = HashMap<UndirectedEdgeId, EdgeId> |
| mapping of whole edges: map[e]->f, map[e.sym()]->f.sym(), where only map[e] for even edges is stored | |
| using | FaceMapOrHashMap = MapOrHashMap<FaceId, FaceId> |
| using | VertMapOrHashMap = MapOrHashMap<VertId, VertId> |
| using | EdgeMapOrHashMap = MapOrHashMap<EdgeId, EdgeId> |
| using | UndirectedEdgeMapOrHashMap = MapOrHashMap<UndirectedEdgeId, UndirectedEdgeId> |
| using | WholeEdgeMapOrHashMap = MapOrHashMap<UndirectedEdgeId, EdgeId> |
| mapping of whole edges: map[e]->f, map[e.sym()]->f.sym(), where only map[e] for even edges is stored | |
| using | GcodeSource = std::vector<std::string> |
| typedef std::function< bool(float)> | ProgressCallback |
| using | Line3fMesh = Line3Mesh<float> |
| using | Line3dMesh = Line3Mesh<double> |
| using | MeshIntersectionCallback = std::function<bool(const MeshIntersectionResult &)> |
| using | FillTriangleMetric = std::function<double( VertId a, VertId b, VertId c )> |
| args: three vertices of candidate triangle | |
| using | FillEdgeMetric = std::function<double( VertId a, VertId b, VertId l, VertId r )> |
| using | FillCombineMetric = std::function<double( double, double )> |
| args: two metric weights to combine (usualy it is simple sum of them) | |
| using | TriangleCornerNormals = std::array<Vector3f, 3> |
| normals in three corner of a triangle | |
| using | ProjectOnAllCallback = std::function<void( ObjId, MeshOrPoints::ProjectionResult )> |
| to receive object id + projection result on it | |
| using | FoundBoxedTriCallback = std::function<Processing( FaceId found, Ball3f & ball )> |
| using | FoundTriCallback = std::function<Processing( const MeshProjectionResult & found, Ball3f & ball )> |
| this callback is invoked on every triangle at least partially in the ball, and allows changing (shrinking only) the ball | |
| using | ICPObjects = Vector<MeshOrPointsXf, ObjId> |
| using | ICPLayer = int |
| using | ICPElementId = Id<ICPElemtTag> |
| using | ICPElementBitSet = TaggedBitSet<ICPElemtTag> |
| using | ICPGroupProjector = std::function<void( const Vector3f& p, MeshOrPoints::ProjectionResult& res, ObjId& resId )> |
| using | ICPPairsGrid = Vector<Vector<ICPGroupPairs, ICPElementId>, ICPElementId> |
| using | DashPattern = Vector4<uint8_t> |
| using | OffsetContoursVertMap = std::vector<OffsetContoursOrigins> |
| using | OffsetContoursVertMaps = std::vector<OffsetContoursVertMap> |
| using | ContoursVariableOffset = std::function<float( int, int )> |
| using | MeshTriPointsConnector = std::function<Expected<SurfacePath>( const MeshTriPoint& start, const MeshTriPoint& end, int startIndex, int endIndex )> |
| using | PickedPoint = std::variant<std::monostate, MeshTriPoint, EdgePoint, VertId> |
| using | FoundPointCallback = std::function<void( VertId, const Vector3f& )> |
| using | OnPointInBallFound = std::function<Processing( const PointsProjectionResult & found, const Vector3f & foundXfPos, Ball3f & ball )> |
| this callback is invoked on every point located within the ball, and allows changing the ball for search continuation | |
| template<typename T> | |
| using | PolylineIntersectionCallback2 = std::function<Processing(const EdgePoint & polylinePoint, T rayPos, T & rayStart, T & rayEnd)> |
| using | PolylineIntersectionCallback2f = PolylineIntersectionCallback2<float> |
| using | PolylineIntersectionCallback2d = PolylineIntersectionCallback2<double> |
| using | DecimatePolylineSettings2 = DecimatePolylineSettings<Vector2f> |
| using | DecimatePolylineSettings3 = DecimatePolylineSettings<Vector3f> |
| template<typename V> | |
| using | FoundEdgeCallback = std::function<void( UndirectedEdgeId, const V& closestPt, float distSq )> |
| using | FoundEdgeCallback2 = FoundEdgeCallback<Vector2f> |
| using | FoundEdgeCallback3 = FoundEdgeCallback<Vector3f> |
| using | RegularGridLatticeValidator = std::function<bool( size_t x, size_t y )> |
| Lambda for validating grid lattice. | |
| using | RegularGridLatticePositioner = std::function<Vector3f( size_t x, size_t y )> |
| Lambda for getting lattice position. | |
| using | RegularGridMeshFaceValidator |
| Lambda for validating mesh face. | |
| using | OrgRingIterator = RingIterator<NextEdgeSameOrigin> |
| using | LeftRingIterator = RingIterator<NextEdgeSameLeft> |
| using | SeparationPointSet = std::array<VertId, size_t( NeighborDir::Count )> |
| using | SeparationPointMap = HashMap<size_t, SeparationPointSet> |
| using | TriTriDistanceResultf = TriTriDistanceResult<float> |
| using | TriTriDistanceResultd = TriTriDistanceResult<double> |
| using | TriTriDistanceParamsf = TriTriDistanceParams<float> |
| using | TriTriDistanceParamsd = TriTriDistanceParams<double> |
| using | TwoLineSegmClosestPointsf = TwoLineSegmClosestPoints<float> |
| using | TwoLineSegmClosestPointsd = TwoLineSegmClosestPoints<double> |
| using | FolderCallback = std::function<void( const std::filesystem::path& tempFolderName )> |
| this callback will be called before compression on serialization and after decompression on deserialization | |
| using | AllVisualizeProperties = std::vector<ViewportMask> |
| using | Time = std::chrono::time_point<std::chrono::system_clock> |
| using | DisabledWarnings = std::vector<ShaderWarning> |
| using | FilesLoadedCallback = std::function<void( const std::vector<std::shared_ptr<Object>>& objs, const std::string& errors, const std::string& warnings )> |
| using | TransformModesValidator = std::function<ControlBit( const Vector3f& center, const AffineXf3f& xf, ViewportId )> |
| using | RenderDefaultUiObject = RenderObjectCombinator<RenderNameObject> |
| Combines all the default UI IRenderObjects. | |
| using | RenderDimensionObject = RenderObjectCombinator<RenderDefaultUiObject, RenderResetDirtyComponent> |
| using | MenuItemsList = std::vector<std::string> |
| using | NotificationTagMask = unsigned |
| using | SplitCaptionInfo = std::vector<std::pair<size_t, float>> |
| needed for big buttons text aligning | |
| using | ItemMap = HashMap<std::string, MenuItemInfo> |
| using | TabsGroupsMap = HashMap<std::string, std::vector<std::string>> |
| using | GroupsItemsMap = TabsGroupsMap |
| using | MenuItemsListMigration = std::function<void ( MenuItemsList& )> |
| using | MenuItemsListMigrations = std::map<int, MenuItemsListMigration> |
| using | VarUnitToStringParams |
| The std::variant of UnitToStringParams<E> for all known Es (unit kinds). | |
| using | ViewportRectangle = Box2f |
| Viewport size. | |
| using | StatePlugin = StateListenerPlugin<> |
| using | ViewerEventCallback = std::function<void()> |
| using | ObjAndPick = std::pair<std::shared_ptr<MR::VisualObject>, MR::PointOnObject> |
| using | ConstObjAndPick = std::pair<std::shared_ptr<const MR::VisualObject>, MR::PointOnObject> |
| using | RequirementsFunction = std::function<std::string( const std::shared_ptr<RibbonMenuItem>& )> |
| using | FontAndSize = std::pair<ImFont*, float> |
| using | WebResponseCallback = std::function<void( const Json::Value& response )> |
| using | VoxelPointPositioner = std::function<Vector3f( const Vector3f&, const Vector3f&, float, float, float )> |
| using | VoxelsMetric = std::function<float( size_t from, size_t to )> |
| template<typename Volume> | |
| using | VolumePartBuilder = std::function<Expected<Volume> ( int begin, int end, std::optional<Vector3i>& offset )> |
| using | VdbVolumes = std::vector<VdbVolume> |
| template<typename T> | |
| using | VoxelValueGetter = std::function<T ( const Vector3i& )> |
| using | VertPathInfoMap = HashMap<VertId, VertPathInfo> |
| using | EdgePathsBuilder = EdgePathsBuilderT<TrivialMetricToPenalty> |
Functions | |
| Expected< LoadedObject > | deserializeObjectTreeFrom3mf (const std::filesystem::path &file, const ProgressCallback &callback={}) |
| loads scene from 3MF file in a new container object | |
| Expected< LoadedObject > | deserializeObjectTreeFromModel (const std::filesystem::path &file, const ProgressCallback &callback={}) |
| loads scene from .model file in a new container object | |
| Expected< std::shared_ptr< Object > > | deserializeObjectTreeFromGltf (const std::filesystem::path &file, ProgressCallback callback={}) |
| loads scene from glTF file in a new container object | |
| Expected< void > | serializeObjectTreeToGltf (const Object &root, const std::filesystem::path &file, const SceneSave::Settings &settings) |
| saves scene to a glTF file | |
| void | loadIOExtras () |
| Expected< void > | zlibCompressStream (std::istream &in, std::ostream &out, int level=-1) |
| compress the input data using the Deflate algorithm | |
| 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) |
| returns the number of nodes in the binary tree with given number of points | |
| Expected< void > | addNoise (VertCoords &points, const VertBitSet &validVerts, NoiseSettings settings) |
| Adds noise to the points, using a normal distribution. | |
| Expected< void > | addNoise (Mesh &mesh, const VertBitSet *region=nullptr, const NoiseSettings &settings={}) |
| template<typename T> | |
| AffineXf3< T > | lookAt (const Vector3< T > ¢er, const Vector3< T > &eye, const Vector3< T > &up) |
| computes rigid transformation xf | |
| Expected< Mesh > | alignContoursToMesh (const Mesh &mesh, const Contours2f &contours, const ContoursMeshAlignParams ¶ms) |
| Creates planar mesh out of given contour and aligns it to given surface. | |
| Expected< Mesh > | bendContoursAlongCurve (const Contours2f &contours, const CurveFunc &curve, const BendContoursAlongCurveParams ¶ms) |
| Converts contours in thick mesh, and deforms it along given path. | |
| Expected< Mesh > | bendContoursAlongSurfacePath (const Contours2f &contours, const Mesh &mesh, const GeodesicPath &path, const BendContoursAlongCurveParams ¶ms) |
| Converts contours in thick mesh, and deforms it along given surface path: start->path->end. | |
| Expected< Mesh > | bendContoursAlongSurfacePath (const Contours2f &contours, const Mesh &mesh, const SurfacePath &path, const BendContoursAlongCurveParams ¶ms) |
| Converts contours in thick mesh, and deforms it along given surface path. | |
| Expected< std::vector< float > > | findPartialLens (const CurvePoints &cp, float *outCurveLen=nullptr) |
| CurvePoint | getCurvePoint (const CurvePoints &cp, const std::vector< float > &lens, float p) |
| Expected< CurveFunc > | curveFromPoints (const CurvePoints &cp, float *outCurveLen=nullptr) |
| Expected< CurveFunc > | curveFromPoints (CurvePoints &&cp, float *outCurveLen=nullptr) |
| CurvePoints | meshPathCurvePoints (const Mesh &mesh, const GeodesicPath &path) |
| converts polyline given as a number of MeshTriPoint/MeshEdgePoint into CurvePoints | |
| CurvePoints | meshPathCurvePoints (const Mesh &mesh, const SurfacePath &path) |
| void | addBaseToPlanarMesh (Mesh &mesh, float zOffset) |
| 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) |
| creates hollow arrow from the 'base' to the 'vert'. Number of points on the circle 'qual' is between 3 and 256 | |
| 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) |
| creates the mesh with 3 axis arrows | |
| std::string | encode64 (const std::uint8_t *data, size_t size) |
| encodes binary data into textual Base64 format | |
| std::vector< std::uint8_t > | decode64 (const std::string &val) |
| decodes Base64 format into binary data | |
| double | computeBasinVolume (const Mesh &mesh, const FaceBitSet &faces, float level) |
| void | accumulatePoints (PointAccumulator &accum, const std::vector< Vector3f > &points, const AffineXf3f *xf=nullptr) |
| Adds in existing PointAccumulator all given points. | |
| 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. | |
| 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. | |
| 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. | |
| 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 | |
| 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) |
| template<typename I> | |
| void | fillVectorWithSeqNums (const TypedBitSet< I > &bs, Vector< int, I > &vec) |
| for each set bit of input bitset, writes its sequential number starting from 0 in the given vector that shall have appropriate size | |
| 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) |
| Expected< Mesh > | doBooleanOperation (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> | |
| T | getAt (const Buffer< T, I > &bmap MR_LIFETIMEBOUND_NESTED, 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> | |
| BMap< T, T > | compose (const BMap< T, T > &a, const BMap< T, T > &b) |
| computes the composition of two mappings x -> a(b(x)) | |
| MR_BIND_IGNORE std::optional< std::tm > | Localtime (std::time_t time) |
| A threadsafe equivalent for std::localtime(). Returns null on failure. | |
| MR_BIND_IGNORE std::tm | LocaltimeOrZero (std::time_t time) |
| Same, but returns a struct full of zeroes on error. | |
| 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 | |
| IteratorRange< ChunkIterator > | splitByChunks (size_t totalSize, size_t chunkSize, size_t overlap=0) |
| returns a pair of iterators for chunks covering the array of given size | |
| PointAndDistance | findClosestWeightedPoint (const Vector3f &loc, const AABBTreePoints &tree, const DistanceFromWeightedPointsComputeParams ¶ms) |
| MeshPointAndDistance | findClosestWeightedMeshPoint (const Vector3f &loc, const Mesh &mesh, const DistanceFromWeightedPointsComputeParams ¶ms) |
| std::optional< VertMap > | findSmallestCloseVertices (const Mesh &mesh, float closeDist, const ProgressCallback &cb={}) |
| std::optional< VertMap > | findSmallestCloseVertices (const PointCloud &cloud, float closeDist, const ProgressCallback &cb={}) |
| std::optional< VertMap > | findSmallestCloseVertices (const VertCoords &points, float closeDist, const VertBitSet *valid=nullptr, const ProgressCallback &cb={}) |
| std::optional< VertMap > | findSmallestCloseVerticesUsingTree (const VertCoords &points, float closeDist, const AABBTreePoints &tree, const VertBitSet *valid, const ProgressCallback &cb={}) |
| std::optional< VertBitSet > | findCloseVertices (const Mesh &mesh, float closeDist, const ProgressCallback &cb={}) |
| finds all close vertices, where for each vertex there is another one located within given distance | |
| std::optional< VertBitSet > | findCloseVertices (const PointCloud &cloud, float closeDist, const ProgressCallback &cb={}) |
| finds all close vertices, where for each vertex there is another one located within given distance | |
| std::optional< VertBitSet > | findCloseVertices (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 | |
| 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 | |
| std::vector< EdgePair > | findTwinEdgePairs (const Mesh &mesh, float closeDist) |
| definition: if A,B and C,D are close vertices, then let us name AC and BD twin edges | |
| EdgeBitSet | findTwinEdges (const Mesh &mesh, float closeDist) |
| finds all directed twin edges | |
| EdgeBitSet | findTwinEdges (const std::vector< EdgePair > &pairs) |
| UndirectedEdgeBitSet | findTwinUndirectedEdges (const Mesh &mesh, float closeDist) |
| finds all undirected twin edges | |
| UndirectedEdgeBitSet | findTwinUndirectedEdges (const std::vector< EdgePair > &pairs) |
| UndirectedEdgeHashMap | findTwinUndirectedEdgeHashMap (const Mesh &mesh, float closeDist) |
| provided that each edge has at most one twin, composes bidirectional mapping between twins | |
| 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) |
| 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 ®ion, const AffineXf< V > *toWorld=nullptr) |
| template<typename T, typename R = T> | |
| R | 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> | |
| R | calcLength (const Contour< V > &contour) |
| template<typename V, typename R = typename V::ValueType> | |
| size_t | findContourPointByLength (const Contour< V > &contour, R targetLen) |
| 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) |
| CutMeshResult | cutMesh (Mesh &mesh, const OneMeshContours &contours, const CutMeshParameters ¶ms={}) |
| Cuts mesh by given contours. | |
| Expected< FaceBitSet > | cutMeshByContour (Mesh &mesh, const Contour3f &contour, const AffineXf3f &xf={}) |
| Expected< FaceBitSet > | cutMeshByContours (Mesh &mesh, const Contours3f &contours, const AffineXf3f &xf={}) |
| 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. | |
| 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. | |
| 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. | |
| std::vector< FaceBitSet > | separateClosedContour (const Mesh &mesh, const std::vector< Vector3f > &contour, const PathMeshEdgePointCallback &cb={}) |
| void | stitchContours (MeshTopology &topology, const EdgePath &c0, const EdgePath &c1) |
| EdgeLoop | cutAlongEdgeLoop (MeshTopology &topology, const EdgeLoop &c0) |
| EdgeLoop | cutAlongEdgeLoop (Mesh &mesh, const EdgeLoop &c0) |
| Mesh | makeConvexHull (const VertCoords &points, const VertBitSet &validPoints) |
| computes the mesh of convex hull from given input points | |
| Mesh | makeConvexHull (const Mesh &in) |
| Mesh | makeConvexHull (const PointCloud &in) |
| Contour2f | makeConvexHull (Contour2f points) |
| computes the contour of convex hull from given input points | |
| MeshTopology | makeCubeTopology () |
| Mesh | makeCube (const Vector3f &size=Vector3f::diagonal(1.0f), const Vector3f &base=Vector3f::diagonal(-0.5f)) |
| Mesh | makeParallelepiped (const Vector3f side[3], const Vector3f &base) |
creates parallelepiped mesh with given min-corner base and given directional vectors size | |
| Mesh | makeBoxMesh (const Box3f &box) |
| creates mesh visualizing a box | |
| Mesh | makeCylinder (float radius=0.1f, float length=1.0f, int resolution=16) |
| Z-looking. | |
| Mesh | makeOpenCylinder (float radius=1, float z1=-1, float z2=1, int numCircleSegments=16) |
| A hollow cylinder. | |
| Mesh | makeOpenCone (float radius=1, float zApex=0, float zBase=1, int numCircleSegments=16) |
| A hollow cone. | |
| 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) |
| Mesh | makeCone (float radius0=0.1f, float length=1.0f, int resolution=32) |
| Makes cone mesh by calling makeCylinderAdvanced with the top radius 0. | |
| void | calcDipoles (Dipoles &dipoles, const AABBTree &tree, const Mesh &mesh) |
| calculates dipoles for given mesh and AABB-tree | |
| Dipoles | calcDipoles (const AABBTree &tree, const Mesh &mesh) |
| float | calcFastWindingNumber (const Dipoles &dipoles, const AABBTree &tree, const Mesh &mesh, const Vector3f &q, float beta, FaceId skipFace) |
| 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 | |
| bool | operator!= (const DirectoryIterator &a, const std::filesystem::directory_iterator &b) |
| bool | operator!= (const DirectoryRecursiveIterator &a, const std::filesystem::recursive_directory_iterator &b) |
| VertId | findDirMax (const Vector3f &dir, const Mesh &m, UseAABBTree u=UseAABBTree::Yes) |
| VertId | findDirMax (const Vector3f &dir, const MeshPart &mp, UseAABBTree u=UseAABBTree::Yes) |
| VertId | findDirMax (const Vector3f &dir, const MeshVertPart &mp, UseAABBTree u=UseAABBTree::Yes) |
| VertId | findDirMax (const Vector3f &dir, const Polyline3 &polyline, UseAABBTree u=UseAABBTree::Yes) |
| VertId | findDirMax (const Vector2f &dir, const Polyline2 &polyline, UseAABBTree u=UseAABBTree::Yes) |
| VertId | findDirMax (const Vector3f &dir, const PointCloud &cloud, const VertBitSet *region=nullptr, UseAABBTree u=UseAABBTree::Yes) |
| VertId | findDirMax (const Vector3f &dir, const AABBTreePoints &tree, const VertBitSet *region=nullptr) |
| 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 | |
| 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 | |
| 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 | |
| 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 | |
| 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 | |
| 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 | |
| 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 | |
| MinMaxArg< float, VertId > | findDirMinMaxBruteForce (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 | |
| MinMaxArg< float, VertId > | findDirMinMaxBruteForce (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 | |
| MinMaxArg< float, VertId > | findDirMinMaxBruteForce (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 | |
| MinMaxArg< float, VertId > | findDirMinMaxBruteForce (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 | |
| MinMaxArg< float, VertId > | findDirMinMaxBruteForce (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 | |
| MinMaxArg< float, VertId > | findDirMinMaxBruteForce (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 | |
| MinMaxArg< float, VertId > | findDirMinMaxBruteForce (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 | |
| DistanceMap | combineXYderivativeMaps (std::pair< DistanceMap, DistanceMap > XYderivativeMaps) |
| fill another distance map pair with gradients across X and Y axes of the argument map | |
| DistanceMap | computeDistanceMap (const MeshPart &mp, const MeshToDistanceMapParams ¶ms, ProgressCallback cb={}, std::vector< MeshTriPoint > *outSamples=nullptr) |
| DistanceMap | computeDistanceMapD (const MeshPart &mp, const MeshToDistanceMapParams ¶ms, ProgressCallback cb={}, std::vector< MeshTriPoint > *outSamples=nullptr) |
| DistanceMap | distanceMapFromContours (const Polyline2 &contours, const ContourToDistanceMapParams ¶ms, const ContoursDistanceMapOptions &options={}) |
| Computes distance of 2d contours according ContourToDistanceMapParams. | |
| void | distanceMapFromContours (DistanceMap &distMap, const Polyline2 &polyline, const ContourToDistanceMapParams ¶ms, const ContoursDistanceMapOptions &options={}) |
| Computes distance of 2d contours according ContourToDistanceMapParams. | |
| std::vector< Vector3f > | edgePointsFromContours (const Polyline2 &polyline, float pixelSize, float threshold) |
| Polyline2 | distanceMapTo2DIsoPolyline (const DistanceMap &distMap, float isoValue) |
| Polyline2 | distanceMapTo2DIsoPolyline (const DistanceMap &distMap, const ContourToDistanceMapParams ¶ms, float isoValue) |
| iso-lines are created in real space ( plane OXY with parameters according ContourToDistanceMapParams ) | |
| std::pair< Polyline2, AffineXf3f > | distanceMapTo2DIsoPolyline (const DistanceMap &distMap, const AffineXf3f &xf, float isoValue, bool useDepth=false) |
| Polyline2 | distanceMapTo2DIsoPolyline (const DistanceMap &distMap, float pixelSize, float isoValue) |
| Polyline2 | polylineOffset (const Polyline2 &polyline, float pixelSize, float offset) |
| constructs an offset contour for given polyline | |
| Polyline2 | contourUnion (const Polyline2 &contoursA, const Polyline2 &contoursB, const ContourToDistanceMapParams ¶ms, float offsetInside=0) |
| computes the union of the shapes bounded by input 2d contours | |
| Polyline2 | contourIntersection (const Polyline2 &contoursA, const Polyline2 &contoursB, const ContourToDistanceMapParams ¶ms, float offsetInside=0.f) |
| computes the intersection of the shapes bounded by input 2d contours | |
| Polyline2 | contourSubtract (const Polyline2 &contoursA, const Polyline2 &contoursB, const ContourToDistanceMapParams ¶ms, float offsetInside=0.f) |
| computes the difference between the shapes bounded by contoursA and the shapes bounded by contoursB | |
| Expected< Mesh > | distanceMapToMesh (const DistanceMap &distMap, const AffineXf3f &toWorld, ProgressCallback cb={}) |
| converts distance map into mesh and applies a transformation to all points | |
| Image | convertDistanceMapToImage (const DistanceMap &distMap, float threshold=1.f/255) |
| Expected< DistanceMap > | convertImageToDistanceMap (const Image &image, float threshold=1.f/255, bool invert=true) |
| template<class T> | |
| 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< UndirectedEdgeIterator > | undirectedEdges (const MeshTopology &topology) |
| bool | same (const MeshTopology &topology, const EdgePoint &lhs, const EdgePoint &rhs) |
| returns true if two edge-points are equal considering different representations | |
| Expected< Mesh > | embedStructureToTerrain (const Mesh &terrain, const Mesh &structure, const EmbeddedStructureParameters ¶ms) |
| void | serializeToJson (const EndMillCutter &cutter, Json::Value &root) |
| void | serializeToJson (const EndMillTool &tool, Json::Value &root) |
| Expected< void > | deserializeFromJson (const Json::Value &root, EndMillCutter &cutter) |
| Expected< void > | deserializeFromJson (const Json::Value &root, EndMillTool &tool) |
| VertScalars | computeSpaceDistances (const Mesh &mesh, const PointOnFace &start, float range) |
| VertBitSet | findNeighborVerts (const Mesh &mesh, const PointOnFace &start, float rangeSq) |
| const char * | asString (ColoringType ct) |
| returns string representation of enum values | |
| void | expand (const MeshTopology &topology, FaceBitSet ®ion, int hops=1) |
| adds to the region all faces within given number of hops (stars) from the initial region boundary | |
| 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 | |
| void | expand (const MeshTopology &topology, VertBitSet ®ion, int hops=1) |
| adds to the region all vertices within given number of hops (stars) from the initial region boundary | |
| 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 | |
| void | shrink (const MeshTopology &topology, FaceBitSet ®ion, int hops=1) |
| removes from the region all faces within given number of hops (stars) from the initial region boundary | |
| void | shrink (const MeshTopology &topology, VertBitSet ®ion, int hops=1) |
| removes from the region all vertices within given number of hops (stars) from the initial region boundary | |
| FaceBitSet | expandFaces (const MeshTopology &topology, const FaceBitSet ®ion, const UndirectedEdgeBitSet *stopEdges=nullptr) |
| FaceBitSet | shrinkFaces (const MeshTopology &topology, const FaceBitSet ®ion, const UndirectedEdgeBitSet *stopEdges=nullptr) |
| FaceBitSet | getBoundaryFaces (const MeshTopology &topology, const FaceBitSet ®ion) |
| 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() | |
| IsoLines | extractIsolines (const MeshTopology &topology, const VertMetric &vertValues, const FaceBitSet *region=nullptr) |
| extracts all iso-lines from given scalar field and iso-value=0 | |
| 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 | |
| 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 | |
| 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 | |
| PlaneSections | extractPlaneSections (const MeshPart &mp, const Plane3f &plane, UseAABBTree u=UseAABBTree::Yes) |
| extracts all plane sections of given mesh | |
| 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 | |
| PlaneSections | extractXYPlaneSections (const MeshPart &mp, float zLevel, UseAABBTree u=UseAABBTree::Yes) |
| extracts all sections of given mesh with the plane z=zLevel | |
| bool | hasAnyXYPlaneSection (const MeshPart &mp, float zLevel, UseAABBTree u=UseAABBTree::Yes) |
| quickly returns true if extractXYPlaneSections produce not-empty set for the same arguments | |
| std::vector< LineSegm3f > | findTriangleSectionsByXYPlane (const MeshPart &mp, float zLevel, std::vector< FaceId > *faces=nullptr, UseAABBTree u=UseAABBTree::Yes) |
| PlaneSection | trackSection (const MeshPart &mp, const MeshTriPoint &start, MeshTriPoint &end, const Vector3f &direction, float distance) |
| Expected< PlaneSection > | trackSection (const MeshPart &mp, const MeshTriPoint &start, const MeshTriPoint &end, const Vector3f &planePoint, bool ccw) |
| bool | isConsistentlyOriented (const MeshTopology &topology, const IsoLine &isoline) |
| FaceBitSet | getCrossedFaces (const MeshTopology &topology, const IsoLine &isoline) |
| for a consistently oriented isoline, returns all faces it goes inside | |
| Contour2f | planeSectionToContour2f (const Mesh &mesh, const PlaneSection §ion, 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 | |
| Contours2f | planeSectionsToContours2f (const Mesh &mesh, const PlaneSections §ions, const AffineXf3f &meshToPlane) |
| std::optional< FaceScalars > | calcFaceDistances (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< VisualObject > | makeObjectFromEnum (FeaturesObjectKind kind, P &&... params) |
| Allocates an object of type kind, passing params... to its constructor. | |
| template<typename ... P> | |
| std::shared_ptr< VisualObject > | makeObjectFromClassName (std::string className, P &&... params) |
| Allocates an object of type kind, passing params... to its constructor. | |
| std::optional< Vector3f > | getFeatureNormal (FeatureObject *feature) |
| Using forEachObjectKind the template collects a list of features for which the method ...->getNormal() is available. | |
| std::optional< Vector3f > | getFeatureDirection (FeatureObject *feature) |
| Using forEachObjectKind the template collects a list of features for which the method ...->getDirection() is available. | |
| std::unordered_set< std::string > | getFeaturesTypeWithNormals () |
| Try to getNormal from specific feature using forEachObjectKind template. Returns nullopt is ...->getNormal() is not available for given feature type. | |
| std::unordered_set< std::string > | getFeaturesTypeWithDirections () |
| Try to getDirection from specific feature using forEachObjectKind template. Returns nullopt is ...->getDirection() is not available for given feature type. | |
| Expected< AffineXf3f > | refineFeatureObject (const FeatureObject &featObj, const Mesh &mesh, const RefineParameters ¶ms={}) |
| Recalculate the feature object's position so it would better fit with the given mesh. | |
| Expected< AffineXf3f > | refineFeatureObject (const FeatureObject &featObj, const PointCloud &pointCloud, const RefineParameters ¶ms={}) |
| Recalculate the feature object's position so it would better fit with the given point cloud. | |
| MR_BIND_IGNORE FILE * | fopen (const std::filesystem::path &filename, const char *mode) |
| this version of fopen unlike std::fopen supports unicode file names on Windows | |
| FaceBitSet | fillContourLeft (const MeshTopology &topology, const EdgePath &contour) |
| FaceBitSet | fillContourLeft (const MeshTopology &topology, const std::vector< EdgePath > &contours) |
| 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. | |
| 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. | |
| 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. | |
| Expected< void > | fillContours2D (Mesh &mesh, const std::vector< EdgeId > &holeRepresentativeEdges) |
| fill holes with border in same plane (i.e. after cut by plane) | |
| AffineXf3f | getXfFromOxyPlane (const Contours3f &contours) |
| AffineXf3f | getXfFromOxyPlane (const Mesh &mesh, const std::vector< EdgePath > &paths) |
| Expected< void > | fillPlanarHole (ObjectMeshData &data, std::vector< EdgeLoop > &holeContours) |
| FaceBitSet | 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 | |
| FaceBitSet | stitchHolesNicely (Mesh &mesh, EdgeId hole0Edge, EdgeId hole1Edge, const StitchHolesNicelySettings &settings) |
| void | filterCreaseEdges (const Mesh &mesh, UndirectedEdgeBitSet &creaseEdges, float critLength, bool filterComponents=true, bool filterBranches=false) |
| std::vector< Vector3f > | makeFreeFormOriginGrid (const Box3f &box, const Vector3i &resolution) |
| Returns positions of grid points in given box with given resolution. | |
| std::vector< Vector3f > | findBestFreeformDeformation (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 R, typename... Args> | |
| constexpr void | swap (FunctionRef< R(Args...)> &lhs, FunctionRef< R(Args...)> &rhs) noexcept |
| std::optional< VertBitSet > | verticesGridSampling (const MeshPart &mp, float voxelSize, const ProgressCallback &cb={}) |
| std::optional< VertBitSet > | pointGridSampling (const PointCloudPart &pcp, float voxelSize, const ProgressCallback &cb={}) |
| 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 | |
| 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 | |
| size_t | getNumActivePairs (const IPointPairs &pairs) |
| computes the number of active pairs | |
| NumSum | getSumSqDistToPoint (const IPointPairs &pairs, std::optional< double > inaccuracy={}) |
| 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 | |
| std::string | getICPStatusInfo (int iterations, ICPExitType exitType) |
| returns status info string | |
| 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 | |
| size_t | deactivateFarPairs (IPointPairs &pairs, float maxDistSq) |
| reset active bit if pair distance is further than maxDistSq | |
| 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 |
| bool | improveSampling (const PointCloud &cloud, VertBitSet &samples, const ImproveSamplingSettings &settings) |
| ShellVertexInfo | classifyShellVert (const MeshPart &mp, const Vector3f &shellPoint, const FindInnerShellSettings &settings={}) |
| VertBitSet | findInnerShellVerts (const MeshPart &mp, const Mesh &shell, const FindInnerShellSettings &settings={}) |
| 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< Vector2f > | intersection (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) |
| ContinuousContours | orderIntersectionContours (const MeshTopology &topologyA, const MeshTopology &topologyB, const PreciseCollisionResult &intersections) |
| ContinuousContours | orderSelfIntersectionContours (const MeshTopology &topology, const std::vector< EdgeTri > &intersections) |
| 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 | |
| bool | isClosed (const ContinuousContour &contour) |
| returns true if contour is closed | |
| std::vector< int > | detectLoneContours (const ContinuousContours &contours, bool ignoreOpen=false) |
| void | removeLoneDegeneratedContours (const MeshTopology &edgesTopology, OneMeshContours &faceContours, OneMeshContours &edgeContours) |
| 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 | |
| IOFilters | operator| (const IOFilters &a, const IOFilters &b) |
| returns union of input filters | |
| std::optional< IOFilter > | findFilter (const IOFilters &filters, const std::string &extension) |
| find a corresponding filter for a given extension | |
| std::vector< size_t > | splitByLines (const char *data, size_t size) |
| returns offsets for each new line in monolith char block | |
| MR_BIND_IGNORE std::streamoff | getStreamSize (std::istream &in) |
| MR_BIND_IGNORE Expected< std::string > | readString (std::istream &in) |
| MR_BIND_IGNORE Expected< Buffer< char > > | readCharBuffer (std::istream &in) |
| reads input stream to monolith char block | |
| template<typename T> | |
| Expected< void > | parseTextCoordinate (const std::string_view &str, Vector3< T > &v, Vector3< T > *n=nullptr, Color *c=nullptr) |
| read coordinates to v separated by space | |
| 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=nullptr, Vector3< T > *n=nullptr) |
| template<typename T> | |
| Expected< void > | parsePtsCoordinate (const std::string_view &str, Vector3< T > &v, Color &c) |
| Expected< void > | parseFirstNum (const std::string_view &str, int &num) |
| reads the first integer number in the line | |
| 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) |
| bool | hasBom (const std::string_view &str) |
| checks if the given string starts with the UTF-8 byte-order mark | |
| MR_BIND_IGNORE std::unique_ptr< IRenderObject > | createRenderObject (const VisualObject &visObj, const std::type_index &type) |
| template<typename ObjectType> | |
| MR_BIND_IGNORE std::unique_ptr< IRenderObject > | createRenderObject (const VisualObject &visObj) |
| template<typename RenderObjType> | |
| MR_BIND_IGNORE IRenderObjectConstructorLambda | makeRenderObjectConstructor () |
| bool | isNanFast (float f) |
| quickly tests whether given float is not-a-number | |
| std::optional< VertBitSet > | pointIterativeSampling (const PointCloud &cloud, int numSamples, const ProgressCallback &cb={}) |
| std::shared_ptr< Object > | makeLevelOfDetails (Mesh &&mesh, int maxDepth) |
| template<typename V> | |
| bool | operator== (const LineSegm< V > &a, const LineSegm< V > &b) |
| template<typename V> | |
| 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) |
| std::optional< AllLocalTriangulations > | uniteLocalTriangulations (const std::vector< SomeLocalTriangulations > &in, const ProgressCallback &progress={}) |
| 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 | |
| void | orientLocalTriangulations (AllLocalTriangulations &triangs, const VertCoords &coords, const VertBitSet ®ion, const VertNormals &targetDir) |
| orient neighbors around each point in | |
| void | orientLocalTriangulations (AllLocalTriangulations &triangs, const VertCoords &coords, const VertBitSet ®ion, const std::function< Vector3f(VertId)> &targetDir) |
| bool | autoOrientLocalTriangulations (const PointCloud &pointCloud, AllLocalTriangulations &triangs, const VertBitSet ®ion, ProgressCallback progress={}, Triangulation *outRep3=nullptr, Triangulation *outRep2=nullptr) |
| orient neighbors around each point in | |
| TrianglesRepetitions | computeTrianglesRepetitions (const AllLocalTriangulations &triangs) |
| computes statistics about the number of triangle repetitions in local triangulations | |
| std::vector< UnorientedTriangle > | findRepeatedUnorientedTriangles (const AllLocalTriangulations &triangs, int repetitions) |
| from local triangulations returns all unoriented triangles with given number of repetitions each in [1,3] | |
| Triangulation | findRepeatedOrientedTriangles (const AllLocalTriangulations &triangs, int repetitions) |
| from local triangulations returns all oriented triangles with given number of repetitions each in [1,3] | |
| void | findRepeatedOrientedTriangles (const AllLocalTriangulations &triangs, Triangulation *outRep3, Triangulation *outRep2) |
| optional output with all oriented triangles that appear in exactly two local triangulations | |
| Mesh | makePlane () |
| Makes square plane 1x1 size with center at (0,0,0) and (0,0,1) normal. | |
| AffineXf3d | makeRigidXf (const MeshPart &mp, const AffineXf3d &meshXf) |
| AffineXf3f | makeRigidXf (const MeshPart &mp, const AffineXf3f &meshXf) |
| Mesh | makeSphere (const SphereParams ¶ms) |
| creates a mesh of sphere with irregular triangulation | |
| 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 | |
| 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 | |
| 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 | |
| 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> | |
| 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) |
| MarkedContour3f | resample (const MarkedContour3f &in, float minStep, Contour3f *normals=nullptr) |
| MarkedContour3f | makeSpline (MarkedContour3f in, float markStability=1, const Contour3f *normals=nullptr) |
| MarkedContour3f | makeSpline (MarkedContour3f in, const Contour3f &normals, float markStability=1) |
| 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. | |
| TransformedMesh & | operator+= (TransformedMesh &a, const TransformedMesh &b) |
| union operation on two meshes | |
| TransformedMesh & | operator-= (TransformedMesh &a, const TransformedMesh &b) |
| difference operation on two meshes | |
| TransformedMesh & | operator*= (TransformedMesh &a, const TransformedMesh &b) |
| intersection operation on two meshes | |
| void | straightenBoundary (Mesh &mesh, EdgeId bd, float minNeiNormalsDot, float maxTriAspectRatio, FaceBitSet *newFaces=nullptr) |
| std::vector< FaceFace > | findCollidingTriangles (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 | |
| std::pair< FaceBitSet, FaceBitSet > | findCollidingTriangleBitsets (const MeshPart &a, const MeshPart &b, const AffineXf3f *rigidB2A=nullptr) |
| the same as findCollidingTriangles, but returns one bite set per mesh with colliding triangles | |
| 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 | |
| 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 | |
| Expected< FaceBitSet > | findSelfCollidingTrianglesBS (const MeshPart &mp, ProgressCallback cb={}, const Face2RegionMap *regionMap=nullptr, bool touchIsIntersection=false) |
| the same findSelfCollidingTriangles but returns the union of all self-intersecting faces | |
| 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 | |
| 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 | |
| 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) |
| 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 | |
| std::vector< EdgeTri > | findSelfCollidingEdgeTrisPrecise (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 | |
| std::vector< EdgeTri > | findCollidingEdgeTrisPrecise (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 | |
| std::vector< EdgeTri > | findCollidingEdgeTrisPrecise (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 | |
| CoordinateConverters | getVectorConverters (const MeshPart &a) |
| creates simple converters from Vector3f to Vector3i and back in mesh part area range | |
| 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 | |
| DecimateResult | decimateMesh (Mesh &mesh, const DecimateSettings &settings={}) |
| Performs mesh simplification in mesh region according to the settings. | |
| DecimateResult | decimateObjectMeshData (ObjectMeshData &data, const DecimateSettings &settings) |
| std::optional< ObjectMeshData > | makeDecimatedObjectMeshData (const ObjectMesh &obj, const DecimateSettings &settings, DecimateResult *outRes=nullptr) |
| returns the data of decimated mesh given ObjectMesh (which remains unchanged) and decimation parameters | |
| 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. | |
| Vector< QuadraticForm3f, VertId > | computeFormsAtVertices (const MeshPart &mp, float stabilizer, bool angleWeigted, const UndirectedEdgeBitSet *creases=nullptr) |
| Computes quadratic forms at every vertex of mesh part before decimation. | |
| 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 | |
| bool | resolveMeshDegenerations (Mesh &mesh, const ResolveMeshDegenSettings &settings={}) |
| Removes degenerate triangles in a mesh by calling decimateMesh function with appropriate settings. | |
| bool | remesh (Mesh &mesh, const RemeshSettings &settings) |
| Splits too long and eliminates too short edges from the mesh. | |
| template<typename T> | |
| auto | preCollapseVertAttribute (const Mesh &mesh, Vector< T, VertId > &data) |
| PreCollapseCallback | meshPreCollapseVertAttribute (const Mesh &mesh, const MeshAttributesToUpdate ¶ms) |
| void | deleteTargetFaces (Mesh &obj, const Vector3f &targetCenter) |
| deletes object faces with normals pointed to the target geometry center | |
| void | deleteTargetFaces (Mesh &obj, const Mesh &target) |
| bool | checkDeloneQuadrangle (const Vector3d &a, const Vector3d &b, const Vector3d &c, const Vector3d &d, double maxAngleChange=DBL_MAX) |
| 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 | |
| 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 | |
| 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) | |
| 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) | |
| bool | bestQuadrangleDiagonal (const Vector3f &a, const Vector3f &b, const Vector3f &c, const Vector3f &d) |
| 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 | |
| void | makeDeloneOriginRing (MeshTopology &topology, const VertCoords &points, EdgeId e, const DeloneSettings &settings={}) |
| int | makeDeloneEdgeFlips (Mesh &mesh, const DeloneSettings &settings={}, int numIters=1, const ProgressCallback &progressCallback={}) |
| int | makeDeloneEdgeFlips (MeshTopology &topology, const VertCoords &points, const DeloneSettings &settings={}, int numIters=1, const ProgressCallback &progressCallback={}) |
| int | makeDeloneEdgeFlips (EdgeLengthMesh &mesh, const IntrinsicDeloneSettings &settings={}, int numIters=1, const ProgressCallback &progressCallback={}) |
| void | processCloseTriangles (const MeshPart &mp, const Triangle3f &t, float rangeSq, const TriangleCallback &call) |
| std::optional< float > | signedDistanceToMesh (const MeshPart &mp, const Vector3f &p, const SignedDistanceToMeshOptions &op) |
| void | divideMeshWithPlane (ObjectMeshData &data, const Plane3f &plane, const DivideMeshWithPlaneParams ÷Params={}) |
| FaceBitSet | findOuterLayer (const Mesh &mesh) |
| MR_BIND_IGNORE MeshTopology | topologyFromEigen (const Eigen::MatrixXi &F) |
| constructs mesh topology from N*3 matrix of vertex indices | |
| MR_BIND_IGNORE 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 void | pointsFromEigen (const Eigen::MatrixXd &V, const VertBitSet &selection, VertCoords &points) |
| replace selected points with the values from V | |
| MR_BIND_IGNORE void | topologyToEigen (const MeshTopology &topology, Eigen::MatrixXi &F) |
| converts valid faces from mesh topology into N*3 matrix of vertex indices | |
| MR_BIND_IGNORE 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 | |
| void | makeDegenerateBandAroundRegion (Mesh &mesh, const FaceBitSet ®ion, const MakeDegenerateBandAroundRegionParams ¶ms={}) |
| Create a band of degenerate faces along the border of the specified region and the rest of the mesh. | |
| void | stitchHoles (Mesh &mesh, EdgeId a, EdgeId b, const StitchHolesParams ¶ms={}) |
| Stitches two holes in Mesh . | |
| void | buildCylinderBetweenTwoHoles (Mesh &mesh, EdgeId a, EdgeId b, const StitchHolesParams ¶ms={}) |
| bool | stitchHoles (Mesh &mesh, const StitchHolesParams ¶ms={}) |
| this version finds holes in the mesh by itself and returns false if they are not found | |
| bool | buildCylinderBetweenTwoHoles (Mesh &mesh, const StitchHolesParams ¶ms={}) |
| void | fillHole (Mesh &mesh, EdgeId a, const FillHoleParams ¶ms={}) |
| Fills hole in mesh . | |
| void | fillHoles (Mesh &mesh, const std::vector< EdgeId > &as, const FillHoleParams ¶ms={}) |
| fill all holes given by their representative edges in | |
| bool | isHoleBd (const MeshTopology &topology, const EdgeLoop &loop) |
| HoleFillPlan | getHoleFillPlan (const Mesh &mesh, EdgeId e, const FillHoleParams ¶ms={}) |
| std::vector< HoleFillPlan > | getHoleFillPlans (const Mesh &mesh, const std::vector< EdgeId > &holeRepresentativeEdges, const FillHoleParams ¶ms={}) |
| HoleFillPlan | getPlanarHoleFillPlan (const Mesh &mesh, EdgeId e) |
| std::vector< HoleFillPlan > | getPlanarHoleFillPlans (const Mesh &mesh, const std::vector< EdgeId > &holeRepresentativeEdges) |
| 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) | |
| VertId | fillHoleTrivially (Mesh &mesh, EdgeId a, FaceBitSet *outNewFaces=nullptr) |
| Triangulates face of hole in mesh trivially . | |
| EdgeId | extendHole (Mesh &mesh, EdgeId a, const Plane3f &plane, FaceBitSet *outNewFaces=nullptr) |
| std::vector< EdgeId > | extendAllHoles (Mesh &mesh, const Plane3f &plane, FaceBitSet *outNewFaces=nullptr) |
| EdgeId | extendHole (Mesh &mesh, EdgeId a, std::function< Vector3f(const Vector3f &)> getVertPos, FaceBitSet *outNewFaces=nullptr) |
| EdgeId | buildBottom (Mesh &mesh, EdgeId a, Vector3f dir, float holeExtension, FaceBitSet *outNewFaces=nullptr) |
| EdgeId | makeDegenerateBandAroundHole (Mesh &mesh, EdgeId a, FaceBitSet *outNewFaces=nullptr) |
| MakeBridgeResult | makeQuadBridge (MeshTopology &topology, EdgeId a, EdgeId b, FaceBitSet *outNewFaces=nullptr) |
| MakeBridgeResult | makeBridge (MeshTopology &topology, EdgeId a, EdgeId b, FaceBitSet *outNewFaces=nullptr) |
| MakeBridgeResult | makeSmoothBridge (Mesh &mesh, EdgeId a, EdgeId b, float samplingStep, FaceBitSet *outNewFaces=nullptr) |
| EdgeId | makeBridgeEdge (MeshTopology &topology, EdgeId a, EdgeId b) |
| 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) | |
| int | duplicateMultiHoleVertices (Mesh &mesh) |
| Duplicates all vertices having more than two boundary edges (and returns the number of duplications);. | |
| Expected< std::vector< MultipleEdge > > | findMultipleEdges (const MeshTopology &topology, ProgressCallback cb={}) |
| bool | hasMultipleEdges (const MeshTopology &topology) |
| void | fixMultipleEdges (Mesh &mesh, const std::vector< MultipleEdge > &multipleEdges) |
| resolves given multiple edges, but splitting all but one edge in each group | |
| void | fixMultipleEdges (Mesh &mesh) |
| finds and resolves multiple edges | |
| Expected< FaceBitSet > | findDegenerateFaces (const MeshPart &mp, float criticalAspectRatio=FLT_MAX, ProgressCallback cb={}) |
| finds faces having aspect ratio >= criticalAspectRatio | |
| Expected< FaceBitSet > | findNotSmoothFaces (const MeshPart &mp, float minAngle=0.3f, ProgressCallback cb={}) |
| Expected< UndirectedEdgeBitSet > | findShortEdges (const MeshPart &mp, float criticalLength, ProgressCallback cb={}) |
| finds edges having length <= criticalLength | |
| Expected< void > | fixMeshDegeneracies (Mesh &mesh, const FixMeshDegeneraciesParams ¶ms) |
| Fixes degenerate faces and short edges in mesh (changes topology) | |
| VertBitSet | findNRingVerts (const MeshTopology &topology, int n, const VertBitSet *region=nullptr) |
| finds vertices in region with complete ring of N edges | |
| 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 | |
| EdgeId | eliminateDoubleTris (MeshTopology &topology, EdgeId e, FaceBitSet *region=nullptr) |
| void | eliminateDoubleTrisAround (MeshTopology &topology, VertId v, FaceBitSet *region=nullptr) |
| bool | isDegree3Dest (const MeshTopology &topology, EdgeId e) |
| returns true if the destination of given edge has degree 3 and 3 incident triangles | |
| EdgeId | eliminateDegree3Dest (MeshTopology &topology, EdgeId e, FaceBitSet *region=nullptr) |
| int | eliminateDegree3Vertices (MeshTopology &topology, VertBitSet ®ion, FaceBitSet *fs=nullptr) |
| EdgeId | isVertexRepeatedOnHoleBd (const MeshTopology &topology, VertId v) |
| VertBitSet | findRepeatedVertsOnHoleBd (const MeshTopology &topology) |
| returns set bits for all vertices present on the boundary of a hole several times; | |
| FaceBitSet | findHoleComplicatingFaces (const Mesh &mesh) |
| void | fixMeshCreases (Mesh &mesh, const FixCreasesParams ¶ms={}) |
| Finds creases edges and re-triangulates planar areas around them, useful to fix double faces. | |
| Expected< FaceBitSet > | findDisorientedFaces (const Mesh &mesh, const FindDisorientationParams ¶ms={}) |
| returns all faces that are oriented inconsistently, based on number of ray intersections | |
| template<typename T> | |
| class MRMESH_CLASS | Id (EdgeId, Id< EdgeTag >)(UndirectedEdgeId |
| class MRMESH_CLASS | Id< UndirectedEdgeTag > (FaceId, Id< FaceTag >)(VertId |
| class MRMESH_CLASS | Id< VertTag > (PixelId, Id< PixelTag >)(VoxelId |
| class MRMESH_CLASS | Id< VoxelTag > (RegionId, Id< RegionTag >)(NodeId |
| class MRMESH_CLASS | Id< NodeTag > (ObjId, Id< ObjTag >)(TextureId |
| class MRMESH_CLASS | Id< TextureTag > (GraphVertId, Id< GraphVertTag >)(GraphEdgeId |
| template<typename T> | |
| class MRMESH_CLASS | NoInitId (NoInitNodeId, NoInitId< NodeTag >)) template< typename T |
| template<typename I> | |
| class MRMESH_CLASS | TypedBitSet (FaceBitSet, TypedBitSet< FaceId >)(VertBitSet |
| class MRMESH_CLASS | TypedBitSet< VertId > (EdgeBitSet, TypedBitSet< EdgeId >)(UndirectedEdgeBitSet |
| class MRMESH_CLASS | TypedBitSet< UndirectedEdgeId > (PixelBitSet, TypedBitSet< PixelId >)(VoxelBitSet |
| class MRMESH_CLASS | TypedBitSet< VoxelId > (RegionBitSet, TypedBitSet< RegionId >)(NodeBitSet |
| class MRMESH_CLASS | TypedBitSet< NodeId > (ObjBitSet, TypedBitSet< ObjId >)(TextureBitSet |
| class MRMESH_CLASS | TypedBitSet< TextureId > (GraphVertBitSet, TypedBitSet< GraphVertId >)(GraphEdgeBitSet |
| template<typename T> | |
| class MRMESH_CLASS | SetBitIteratorT (SetBitIterator, SetBitIteratorT< BitSet >)(FaceSetBitIterator |
| class MRMESH_CLASS | SetBitIteratorT< FaceBitSet > (VertSetBitIterator, SetBitIteratorT< VertBitSet >)(EdgeSetBitIterator |
| class MRMESH_CLASS | SetBitIteratorT< EdgeBitSet > (UndirectedEdgeSetBitIterator, SetBitIteratorT< UndirectedEdgeBitSet >)) struct Color |
| MRMESH_CLASS | Vector2< bool > (Vector2i, Vector2< int >)(Vector2i64 |
| MRMESH_CLASS | Vector2< Int64 > (Vector2f, Vector2< float >)(Vector2d |
| MRMESH_CLASS | Vector3< bool > (Vector3i, Vector3< int >)(Vector3i64 |
| MRMESH_CLASS | Vector3< Int64 > (Vector3f, Vector3< float >)(Vector3d |
| Vector4< bool > (Vector4i, Vector4< int >)(Vector4i64 | |
| Vector4< Int64 > (Vector4f, Vector4< float >)(Vector4d | |
| Matrix2< bool > (Matrix2i, Matrix2< int >)(Matrix2i64 | |
| Matrix2< Int64 > (Matrix2f, Matrix2< float >)(Matrix2d | |
| Matrix3< bool > (Matrix3i, Matrix3< int >)(Matrix3i64 | |
| Matrix3< Int64 > (Matrix3f, Matrix3< float >)(Matrix3d | |
| Matrix4< bool > (Matrix4i, Matrix4< int >)(Matrix4i64 | |
| Matrix4< Int64 > (Matrix4f, Matrix4< float >)(Matrix4d | |
| SymMatrix2< bool > (SymMatrix2i, SymMatrix2< int >)(SymMatrix2i64 | |
| SymMatrix2< Int64 > (SymMatrix2f, SymMatrix2< float >)(SymMatrix2d | |
| SymMatrix3< bool > (SymMatrix3i, SymMatrix3< int >)(SymMatrix3i64 | |
| SymMatrix3< Int64 > (SymMatrix3f, SymMatrix3< float >)(SymMatrix3d | |
| SymMatrix4< bool > (SymMatrix4i, SymMatrix4< int >)(SymMatrix4i64 | |
| SymMatrix4< Int64 > (SymMatrix4f, SymMatrix4< float >)(SymMatrix4d | |
| AffineXf< Vector2< float > > (AffineXf2d, AffineXf< Vector2< double > >)(AffineXf3f | |
| AffineXf< Vector3< float > > (AffineXf3d, AffineXf< Vector3< double > >)) template< typename T > using AffineXf2 | |
| RigidXf3< float > (RigidXf3d, RigidXf3< double >)) 1((template< typename T > struct) | |
| RigidScaleXf3< float > (RigidScaleXf3d, RigidScaleXf3< double >)) class PointToPointAligningTransform | |
| Sphere< Vector2< float > > (Sphere2d, Sphere< Vector2< double > >)(Sphere3f | |
| Sphere< Vector3< float > > (Sphere3d, Sphere< Vector3< double > >)) template< typename T > using Sphere2 | |
| Line< Vector2< float > > (Line2d, Line< Vector2< double > >)(Line3f | |
| Line< Vector3< float > > (Line3d, Line< Vector3< double > >)) template< typename T > using Line2 | |
| LineSegm< Vector2< float > > (LineSegm2d, LineSegm< Vector2< double > >)(LineSegm3f | |
| LineSegm< Vector3< float > > (LineSegm3d, LineSegm< Vector3< double > >)) template< typename T > using LineSegm2 | |
| Parabola< float > (Parabolad, Parabola< double >)) 1((template< typename T > class) | |
| BestFitParabola< float > (BestFitParabolad, BestFitParabola< double >)) 1((template< typename T > class) | |
| Cylinder3< float > (Cylinder3d, Cylinder3< double >)) 1((template< typename T > class) | |
| Cone3< float > (Cone3d, Cone3< double >)) template< typename V > using Contour | |
| No canonical typedefs here, because those ultimately boil to std::vector, which isn't under our control. | |
| Plane3< float > (Plane3d, Plane3< double >)) 1((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 | |
| template<typename V> | |
| struct MRMESH_CLASS | Ball (Ball1f, Ball< float >)(Ball1d |
| struct MRMESH_CLASS | Ball< double > (Ball2f, Ball< Vector2< float > >)(Ball2d |
| struct MRMESH_CLASS | Ball< Vector2< double > > (Ball3f, Ball< Vector3< float > >)(Ball3d |
| template<typename V> | |
| struct MRMESH_CLASS | CubicBezierCurve (CubicBezierCurve2f, CubicBezierCurve< Vector2< float > >)(CubicBezierCurve2d |
| struct MRMESH_CLASS | CubicBezierCurve< Vector2< double > > (CubicBezierCurve3f, CubicBezierCurve< Vector3< float > >)(CubicBezierCurve3d |
| QuadraticForm< Vector2< float > > (QuadraticForm2d, QuadraticForm< Vector2< double > >)(QuadraticForm3f | |
| QuadraticForm< Vector3< float > > (QuadraticForm3d, QuadraticForm< Vector3< double > >)) template< typename T > using QuadraticForm2 | |
| Quaternion< float > (Quaterniond, Quaternion< double >)) template< typename T > using Triangle3 | |
| No canonical typedefs because std::array is not under our control. | |
| SegmPoint< float > (SegmPointd, SegmPoint< double >)) struct EdgePoint | |
| TriPoint< float > (TriPointd, TriPoint< double >)) struct PointOnFace | |
| template<typename T, typename I> | |
| class MRMESH_CLASS | Vector (Edges, Vector< TwoVertIds, UndirectedEdgeId >)(Triangulation |
| mapping from UndirectedEdgeId to its end vertices | |
| class MRMESH_CLASS | Vector< ThreeVertIds, FaceId > (TriCornerUVCoords, Vector< ThreeUVCoords, FaceId >)(Dipoles |
| mapping from FaceId to a triple of UV-coordinates | |
| class MRMESH_CLASS | Vector< Dipole, NodeId > (FaceMap, Vector< FaceId, FaceId >)(VertMap |
| class MRMESH_CLASS | Vector< VertId, VertId > (EdgeMap, Vector< EdgeId, EdgeId >)(UndirectedEdgeMap |
| class MRMESH_CLASS | Vector< UndirectedEdgeId, UndirectedEdgeId > (ObjMap, Vector< ObjId, ObjId >)(WholeEdgeMap |
| mapping of whole edges: map[e]->f, map[e.sym()]->f.sym(), where only map[e] for even edges is stored | |
| class MRMESH_CLASS | Vector< EdgeId, UndirectedEdgeId > (UndirectedEdge2RegionMap, Vector< RegionId, UndirectedEdgeId >)(Face2RegionMap |
| class MRMESH_CLASS | Vector< RegionId, FaceId > (Vert2RegionMap, Vector< RegionId, VertId >)(VertCoords |
| class MRMESH_CLASS | Vector< Vector3f, VertId > (VertCoords2, Vector< Vector2f, VertId >)(VertNormals |
| class MRMESH_CLASS | Vector< Vector3f, VertId > (VertUVCoords, Vector< UVCoord, VertId >)(FaceNormals |
| class MRMESH_CLASS | Vector< Vector3f, FaceId > (TexturePerFace, Vector< TextureId, FaceId >)(VertColors |
| class MRMESH_CLASS | Vector< Color, VertId > (FaceColors, Vector< Color, FaceId >)(EdgeColors |
| class MRMESH_CLASS | Vector< Color, EdgeId > (UndirectedEdgeColors, Vector< Color, UndirectedEdgeId >)(VertScalars |
| class MRMESH_CLASS | Vector< float, VertId > (FaceScalars, Vector< float, FaceId >)(EdgeScalars |
| class MRMESH_CLASS | Vector< float, EdgeId > (UndirectedEdgeScalars, Vector< float, UndirectedEdgeId >)) using VertPredicate |
| template<typename T> | |
| bool | contains (const std::function< bool(Id< T >)> &pred, Id< T > id) |
| template<typename T, typename I> | |
| struct MRMESH_CLASS | BMap (FaceBMap, BMap< FaceId, FaceId >)(VertBMap |
| struct MRMESH_CLASS | BMap< VertId, VertId > (EdgeBMap, BMap< EdgeId, EdgeId >)(UndirectedEdgeBMap |
| struct MRMESH_CLASS | BMap< UndirectedEdgeId, UndirectedEdgeId > (WholeEdgeBMap, BMap< EdgeId, UndirectedEdgeId >)) template< typename T |
| template<typename T> | |
| struct MRMESH_CLASS | MeshRegion (MeshPart, MeshRegion< FaceTag >)(MeshVertPart |
| Polyline< Vector2f > (Polyline3, Polyline< Vector3f >)) 1((template< typename V > class MRMESH_CLASS) | |
| AABBTreePolyline< Vector2f > (AABBTreePolyline3, AABBTreePolyline< Vector3f >)) template< typename T > struct IntersectionPrecomputes | |
| PolylineProjectionResult< Vector2f > (PolylineProjectionResult3, PolylineProjectionResult< Vector3f >)) 1((template< typename V > struct) | |
| PolylineProjectionWithOffsetResult< Vector2f > (PolylineProjectionWithOffsetResult3, PolylineProjectionWithOffsetResult< Vector3f >)) class DistanceMap | |
| template<typename Tag> | |
| class MRMESH_CLASS | ColorMapAggregator (VertColorMapAggregator, ColorMapAggregator< VertTag >)(UndirEdgeColorMapAggregator |
| class MRMESH_CLASS | 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... > | |
| explicit deduction guide (not needed as of C++20, but still needed in Clang) | |
| 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={}) |
| 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={}) |
| 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={}) |
| MultiMeshIntersectionResult | rayMultiMeshAnyIntersect (const std::vector< Line3fMesh > &lineMeshes, float rayStart=0.0f, float rayEnd=FLT_MAX) |
| MultiMeshIntersectionResult | rayMultiMeshAnyIntersect (const std::vector< Line3dMesh > &lineMeshes, double rayStart=0.0, double rayEnd=DBL_MAX) |
| Same as rayMultiMeshAnyIntersectF, but use double precision. | |
| void | rayMeshIntersectAll (const MeshPart &meshPart, const Line3f &line, MeshIntersectionCallback callback, float rayStart=0.0f, float rayEnd=FLT_MAX, const IntersectionPrecomputes< float > *prec=nullptr) |
| 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. | |
| void | planeMeshIntersect (const MeshPart &meshPart, const Plane3f &plane, FaceBitSet *fs, UndirectedEdgeBitSet *ues, VertBitSet *vs, std::vector< FaceId > *fsVec=nullptr) |
| void | xyPlaneMeshIntersect (const MeshPart &meshPart, float zLevel, FaceBitSet *fs, UndirectedEdgeBitSet *ues, VertBitSet *vs, std::vector< FaceId > *fsVec=nullptr) |
| Expected< Mesh > | loadMrmesh (const std::filesystem::path &file, const MeshLoadSettings &settings={}) |
| loads mesh from file in internal MeshLib format | |
| Expected< Mesh > | loadMrmesh (std::istream &in, const MeshLoadSettings &settings={}) |
| Expected< Mesh > | loadOff (const std::filesystem::path &file, const MeshLoadSettings &settings={}) |
| loads mesh from file in .OFF format | |
| Expected< Mesh > | loadOff (std::istream &in, const MeshLoadSettings &settings={}) |
| loads mesh from stream in .OFF format | |
| Expected< Mesh > | loadObj (const std::filesystem::path &file, const MeshLoadSettings &settings={}) |
| loads mesh from file in .OBJ format | |
| Expected< Mesh > | loadObj (std::istream &in, const MeshLoadSettings &settings={}) |
| Expected< Mesh > | loadStl (const std::filesystem::path &file, const MeshLoadSettings &settings={}) |
| loads mesh from file in any .STL format: both binary and ASCII | |
| Expected< Mesh > | loadStl (std::istream &in, const MeshLoadSettings &settings={}) |
| Expected< Mesh > | loadBinaryStl (const std::filesystem::path &file, const MeshLoadSettings &settings={}) |
| loads mesh from file in binary .STL format | |
| Expected< Mesh > | loadBinaryStl (std::istream &in, const MeshLoadSettings &settings={}) |
| Expected< Mesh > | loadASCIIStl (const std::filesystem::path &file, const MeshLoadSettings &settings={}) |
| loads mesh from file in textual .STL format | |
| Expected< Mesh > | loadASCIIStl (std::istream &in, const MeshLoadSettings &settings={}) |
| loads mesh from stream in textual .STL format | |
| Expected< Mesh > | loadPly (const std::filesystem::path &file, const MeshLoadSettings &settings={}) |
| loads mesh from file in .PLY format; | |
| Expected< Mesh > | loadPly (std::istream &in, const MeshLoadSettings &settings={}) |
| Expected< Mesh > | loadDxf (const std::filesystem::path &path, const MeshLoadSettings &settings={}) |
| loads mesh from file in .DXF format; | |
| Expected< Mesh > | loadDxf (std::istream &in, const MeshLoadSettings &settings={}) |
| loads mesh from stream in .DXF format; | |
| Expected< Mesh > | loadMesh (const std::filesystem::path &file, const MeshLoadSettings &settings={}) |
| loads mesh from file in the format detected from file extension | |
| Expected< Mesh > | loadMesh (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 | |
| 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 | |
| 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 | |
| Vector3f | triPoint (const MeshTopology &topology, const VertCoords &points, const MeshTriPoint &p) |
| computes coordinates of point given as face and barycentric representation | |
| Vector3f | triCenter (const MeshTopology &topology, const VertCoords &points, FaceId f) |
| returns the centroid of given triangle | |
| 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 | |
| float | circumcircleDiameterSq (const MeshTopology &topology, const VertCoords &points, FaceId f) |
| returns squared circumcircle diameter of given mesh triangle | |
| float | circumcircleDiameter (const MeshTopology &topology, const VertCoords &points, FaceId f) |
| returns circumcircle diameter of given mesh triangle | |
| MeshTriPoint | toTriPoint (const MeshTopology &topology, const VertCoords &points, FaceId f, const Vector3f &p) |
| converts face id and 3d point into barycentric representation | |
| MeshTriPoint | toTriPoint (const MeshTopology &topology, const VertCoords &points, const PointOnFace &p) |
| converts face id and 3d point into barycentric representation | |
| MeshEdgePoint | toEdgePoint (const MeshTopology &topology, const VertCoords &points, EdgeId e, const Vector3f &p) |
| converts edge and 3d point into edge-point representation | |
| 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 | |
| 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 | |
| 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) | |
| 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 | |
| Vector< Vector3f, VertId > | dirDblAreas (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 | |
| 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) | |
| 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) | |
| 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 | |
| double | volume (const MeshTopology &topology, const VertCoords &points, const FaceBitSet *region=nullptr) |
| 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) | |
| Vector3d | holeDirArea (const MeshTopology &topology, const VertCoords &points, EdgeId e) |
| 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 | |
| Plane3f | getPlane3f (const MeshTopology &topology, const VertCoords &points, FaceId f) |
| returns the plane containing given triangular face with normal looking outwards | |
| Plane3d | getPlane3d (const MeshTopology &topology, const VertCoords &points, FaceId f) |
| 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 | |
| Vector3f | normal (const MeshTopology &topology, const VertCoords &points, const MeshTriPoint &p) |
| Vector3f | pseudonormal (const MeshTopology &topology, const VertCoords &points, VertId v, const FaceBitSet *region=nullptr) |
| 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); | |
| Vector3f | pseudonormal (const MeshTopology &topology, const VertCoords &points, const MeshTriPoint &p, const FaceBitSet *region=nullptr) |
| 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 | |
| Expected< VertBitSet > | findSpikeVertices (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 | |
| float | dihedralAngleSin (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeId e) |
| float | dihedralAngleCos (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeId e) |
| float | dihedralAngle (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeId e) |
| float | discreteMeanCurvature (const MeshTopology &topology, const VertCoords &points, VertId v) |
| float | discreteMeanCurvature (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeId e) |
| float | discreteGaussianCurvature (const MeshTopology &topology, const VertCoords &points, VertId v, bool *outBoundaryVert=nullptr) |
| 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 | |
| float | leftCotan (const MeshTopology &topology, const VertCoords &points, EdgeId e) |
| float | cotan (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeId ue) |
| QuadraticForm3f | quadraticForm (const MeshTopology &topology, const VertCoords &points, VertId v, bool angleWeigted, const FaceBitSet *region=nullptr, const UndirectedEdgeBitSet *creases=nullptr) |
| Box3f | computeBoundingBox (const MeshTopology &topology, const VertCoords &points, const FaceBitSet *region, const AffineXf3f *toWorld=nullptr) |
| float | averageEdgeLength (const MeshTopology &topology, const VertCoords &points) |
| computes average length of an edge in the mesh given by (topology, points) | |
| Vector3f | findCenterFromPoints (const MeshTopology &topology, const VertCoords &points) |
| computes average position of all valid mesh vertices | |
| Vector3f | findCenterFromFaces (const MeshTopology &topology, const VertCoords &points) |
| computes center of mass considering that density of all triangles is the same | |
| Vector3f | findCenterFromBBox (const MeshTopology &topology, const VertCoords &points) |
| computes bounding box and returns its center | |
| 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 | |
| MeshMeshSignedDistanceResult | findSignedDistance (const MeshPart &a, const MeshPart &b, const AffineXf3f *rigidB2A=nullptr, float upDistLimitSq=FLT_MAX) |
| computes minimal distance between two meshes | |
| MeshMeshCollisionStatus | findCollisionStatus (const MeshPart &a, const MeshPart &b, const AffineXf3f *rigidB2A=nullptr) |
| finds if two meshes are touching, colliding or inside each other | |
| MeshMeshCollisionStatus | findCollisionStatus (const MeshPart &a, const MeshPart &b, const MeshMeshDistanceResult &distRes, const AffineXf3f *rigidB2A=nullptr, std::vector< FaceFace > *collisions=nullptr) |
| finds if two meshes are touching, colliding or inside each other | |
| 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 | |
| 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) | |
| double | calcCombinedFillMetric (const Mesh &mesh, const FaceBitSet &filledRegion, const FillHoleMetric &metric) |
| Computes combined metric after filling a hole. | |
| FillHoleMetric | getCircumscribedMetric (const Mesh &mesh) |
| FillHoleMetric | getPlaneFillMetric (const Mesh &mesh, EdgeId e) |
| FillHoleMetric | getPlaneNormalizedFillMetric (const Mesh &mesh, EdgeId e) |
| FillHoleMetric | getComplexStitchMetric (const Mesh &mesh) |
| FillHoleMetric | getEdgeLengthFillMetric (const Mesh &mesh) |
| Simple metric minimizing the sum of all edge lengths. | |
| FillHoleMetric | getEdgeLengthStitchMetric (const Mesh &mesh) |
| FillHoleMetric | getVerticalStitchMetric (const Mesh &mesh, const Vector3f &upDir) |
| FillHoleMetric | getVerticalStitchMetricEdgeBased (const Mesh &mesh, const Vector3f &upDir) |
| FillHoleMetric | getComplexFillMetric (const Mesh &mesh, EdgeId e) |
| 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) | |
| FillHoleMetric | getMaxDihedralAngleMetric (const Mesh &mesh) |
| FillHoleMetric | getUniversalMetric (const Mesh &mesh) |
| FillHoleMetric | getMinTriAngleMetric (const Mesh &mesh) |
| This metric maximizes the minimal angle among all faces in the triangulation. | |
| FillHoleMetric | getMinAreaMetric (const Mesh &mesh) |
| FaceNormals | computePerFaceNormals (const Mesh &mesh) |
| returns a vector with face-normal in every element for valid mesh faces | |
| void | computePerFaceNormals4 (const Mesh &mesh, Vector4f *faceNormals, size_t size) |
| fills buffer with face-normals as Vector4f for valid mesh faces | |
| VertNormals | computePerVertNormals (const Mesh &mesh) |
| returns a vector with vertex normals in every element for valid mesh vertices | |
| VertNormals | computePerVertPseudoNormals (const Mesh &mesh) |
| MeshNormals | computeMeshNormals (const Mesh &mesh) |
| computes both per-face and per-vertex normals more efficiently then just calling both previous functions | |
| Vector< TriangleCornerNormals, FaceId > | computePerCornerNormals (const Mesh &mesh, const UndirectedEdgeBitSet *creases) |
| std::optional< MeshOrPoints > | getMeshOrPoints (const Object *obj) |
| constructs MeshOrPoints from ObjectMesh or ObjectPoints, otherwise returns nullopt | |
| std::optional< MeshOrPointsXf > | getMeshOrPointsXf (const Object *obj) |
| 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. | |
| MeshOrPoints::ProjectionResult | projectWorldPointOntoObjectsRecursive (const Vector3f &p, const Object *root=nullptr, std::function< bool(const Object &)> projectPred=nullptr, std::function< bool(const Object &)> recursePred=nullptr) |
| Expected< std::vector< FaceBitSet > > | findOverhangs (const Mesh &mesh, const FindOverhangsSettings &settings) |
| Find face regions that might create overhangs. | |
| FaceBitSet | patchMesh (Mesh &mesh, const FaceBitSet &patchBS, const FillHoleNicelySettings &settings={}) |
| 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. | |
| 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 | |
| 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 | |
| void | findBoxedTrisInBall (const MeshPart &mp, Ball3f ball, const FoundBoxedTriCallback &foundCallback) |
| void | findTrisInBall (const MeshPart &mp, const Ball3f &ball, const FoundTriCallback &foundCallback, const FacePredicate &validFaces={}) |
| std::optional< SignedDistanceToMeshResult > | findSignedDistance (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) | |
| bool | relax (Mesh &mesh, const MeshRelaxParams ¶ms={}, const ProgressCallback &cb={}) |
| bool | relax (const MeshTopology &topology, VertCoords &points, const MeshRelaxParams ¶ms={}, const ProgressCallback &cb={}) |
| Vector3f | vertexPosEqualNeiAreas (const Mesh &mesh, VertId v, bool noShrinkage) |
| Vector3f | vertexPosEqualNeiAreas (const MeshTopology &topology, const VertCoords &points, VertId v, bool noShrinkage) |
| bool | equalizeTriAreas (Mesh &mesh, const MeshEqualizeTriAreasParams ¶ms={}, const ProgressCallback &cb={}) |
| bool | equalizeTriAreas (const MeshTopology &topology, VertCoords &points, const MeshEqualizeTriAreasParams ¶ms={}, const ProgressCallback &cb={}) |
| bool | relaxKeepVolume (Mesh &mesh, const MeshRelaxParams ¶ms={}, const ProgressCallback &cb={}) |
| bool | relaxKeepVolume (const MeshTopology &topology, VertCoords &points, const MeshRelaxParams ¶ms={}, const ProgressCallback &cb={}) |
| bool | relaxApprox (Mesh &mesh, const MeshApproxRelaxParams ¶ms={}, const ProgressCallback &cb={}) |
| bool | relaxApprox (const MeshTopology &topology, VertCoords &points, const MeshApproxRelaxParams ¶ms={}, const ProgressCallback &cb={}) |
| 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 | |
| void | removeSpikes (const MeshTopology &topology, VertCoords &points, int maxIterations, float minSumAngle, const VertBitSet *region=nullptr) |
| void | smoothRegionBoundary (Mesh &mesh, const FaceBitSet ®ionFaces, int numIters=4) |
| void | hardSmoothTetrahedrons (Mesh &mesh, const VertBitSet *region=nullptr) |
| move all region vertices with exactly three neighbor vertices in the center of the neighbors | |
| void | hardSmoothTetrahedrons (const MeshTopology &topology, VertCoords &points, const VertBitSet *region=nullptr) |
| void | replicateZ (Mesh &m, const Mesh &target) |
| adjusts z-coordinates of (m) vertices to make adjusted (m) similar to (target) | |
| int | subdivideMesh (Mesh &mesh, const SubdivideSettings &settings={}) |
| int | subdivideMesh (ObjectMeshData &data, const SubdivideSettings &settings) |
| Expected< Mesh > | copySubdividePackMesh (const MeshPart &mp, float voxelSize, const ProgressCallback &cb={}) |
| 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) |
| OnEdgeSplit | meshOnEdgeSplitAttribute (const Mesh &mesh, const MeshAttributesToUpdate ¶ms) |
| OnEdgeSplit | meshOnEdgeSplitVertAttribute (const Mesh &mesh, const MeshAttributesToUpdate ¶ms) |
| OnEdgeSplit | meshOnEdgeSplitFaceAttribute (const Mesh &mesh, const MeshAttributesToUpdate ¶ms) |
| std::optional< VertScalars > | computeRayThicknessAtVertices (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) | |
| MR_BIND_IGNORE VertScalars | computeThicknessAtVertices (const Mesh &mesh) |
| 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) | |
| MeshIntersectionResult | rayInsideIntersect (const Mesh &mesh, VertId v, float rayEnd=FLT_MAX) |
| 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) | |
| InSphere | findInSphere (const Mesh &mesh, VertId v, const InSphereSearchSettings &settings) |
| std::optional< VertScalars > | computeInSphereThicknessAtVertices (const Mesh &mesh, const InSphereSearchSettings &settings, const ProgressCallback &progress={}) |
| returns the thickness at each vertex as the diameter of the maximal inscribed sphere | |
| 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) |
| rearrange vector values by map (old.id -> new.id) | |
| FaceBitSet | subdivideWithPlane (Mesh &mesh, const Plane3f &plane, FaceHashMap *new2Old=nullptr, float eps=0, std::function< void(EdgeId, EdgeId, float)> onEdgeSplitCallback=nullptr) |
| 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 | |
| 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 | |
| void | trimWithPlane (Mesh &mesh, const TrimWithPlaneParams ¶ms, const TrimOptionalOutput &optOut={}) |
| trim mesh by plane | |
| Expected< LoadedObject > | fromSceneMison (const std::filesystem::path &path, const ProgressCallback &callback={}) |
| Expected< LoadedObject > | fromSceneMison (std::istream &in, const ProgressCallback &callback={}) |
| Mesh | makeMovementBuildBody (const Contours3f &body, const Contours3f &trajectory, const MovementBuildBodyParams ¶ms={}) |
| 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) | |
| void | denoiseNormals (const Mesh &mesh, FaceNormals &normals, const Vector< float, UndirectedEdgeId > &v, float gamma) |
| void | updateIndicator (const Mesh &mesh, Vector< float, UndirectedEdgeId > &v, const FaceNormals &normals, float beta, float gamma) |
| void | updateIndicatorFast (const MeshTopology &topology, Vector< float, UndirectedEdgeId > &v, const FaceNormals &normals, float beta, float gamma) |
| Expected< void > | meshDenoiseViaNormals (Mesh &mesh, const DenoiseViaNormalsSettings &settings={}) |
| std::string_view | toString (DimensionsVisualizePropertyType value) |
| std::shared_ptr< ObjectLines > | merge (const std::vector< std::shared_ptr< ObjectLines > > &objsLines) |
| constructs new ObjectLines containing the union of valid data from all input objects | |
| std::shared_ptr< ObjectLines > | cloneRegion (const std::shared_ptr< ObjectLines > &objLines, const UndirectedEdgeBitSet ®ion) |
| constructs new ObjectLines containing the region of data from input object | |
| std::shared_ptr< ObjectMesh > | merge (const std::vector< std::shared_ptr< ObjectMesh > > &objsMesh, const ObjectMeshMergeOptions &options={}) |
| constructs new ObjectMesh containing the union of valid data from all input objects | |
| std::shared_ptr< ObjectMesh > | cloneRegion (const std::shared_ptr< ObjectMesh > &objMesh, const FaceBitSet ®ion, bool copyTexture=true) |
| UndirectedEdgeBitSet | edgesBetweenDifferentColors (const MeshTopology &topology, const FaceColors &colors) |
| return all edges separating faces with different colors | |
| const std::string & | defaultSerializeMeshFormat () |
| void | setDefaultSerializeMeshFormat (std::string newFormat) |
| std::shared_ptr< ObjectPoints > | merge (const std::vector< std::shared_ptr< ObjectPoints > > &objsPoints) |
| constructs new ObjectPoints containing the union of valid points from all input objects | |
| std::shared_ptr< ObjectPoints > | cloneRegion (const std::shared_ptr< ObjectPoints > &objPoints, const VertBitSet ®ion) |
| std::shared_ptr< ObjectPoints > | pack (const ObjectPoints &pts, Reorder reorder, VertBitSet *newValidVerts=nullptr, const ProgressCallback &cb={}) |
| const std::string & | defaultSerializePointsFormat () |
| void | setDefaultSerializePointsFormat (std::string newFormat) |
| bool | objectHasSelectableChildren (const MR::Object &object, bool recurse=false) |
| Expected< void > | serializeObjectTree (const Object &object, const std::filesystem::path &path, FolderCallback preCompress, const SceneSave::Settings &settings={}) |
| saves object subtree in given scene file (zip/mru) | |
| Expected< void > | serializeObjectTree (const Object &object, const std::filesystem::path &path, const SceneSave::Settings &settings={}) |
| Contours2f | offsetContours (const Contours2f &contours, float offset, const OffsetContoursParams ¶ms={}) |
| offsets 2d contours in plane | |
| Contours2f | offsetContours (const Contours2f &contours, ContoursVariableOffset offset, const OffsetContoursParams ¶ms={}) |
| offsets 2d contours in plane | |
| Contours3f | offsetContours (const Contours3f &contours, float offset, const OffsetContoursParams ¶ms={}, const OffsetContoursRestoreZParams &zParmas={}) |
| offsets 3d contours in XY plane | |
| Contours3f | offsetContours (const Contours3f &contours, ContoursVariableOffset offset, const OffsetContoursParams ¶ms={}, const OffsetContoursRestoreZParams &zParmas={}) |
| offsets 3d contours in XY plane | |
| bool | offsetVerts (Mesh &mesh, const VertMetric &offset, const ProgressCallback &cb={}) |
| Mesh | makeThickMesh (const Mesh &m, const ThickenParams ¶ms) |
| bool | zCompensate (Mesh &mesh, const ZCompensateParams ¶ms) |
| std::optional< VertScalars > | findZcompensationShifts (const Mesh &mesh, const ZCompensateParams ¶ms) |
| finds the shift along z-axis for each vertex without modifying the mesh | |
| std::optional< VertCoords > | findZcompensatedPositions (const Mesh &mesh, const ZCompensateParams ¶ms) |
| finds vertices positions of the mesh after z-compensation without modifying the mesh | |
| void | subdivideLoneContours (Mesh &mesh, const OneMeshContours &contours, FaceHashMap *new2oldMap=nullptr) |
| 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 | |
| OneMeshContours | getOneMeshSelfIntersectionContours (const Mesh &mesh, const ContinuousContours &contours, const CoordinateConverters &converters, const AffineXf3f *rigidB2A=nullptr) |
| Contours3f | extractMeshContours (const OneMeshContours &meshContours) |
| Converts OneMeshContours contours representation to Contours3f: set of coordinates. | |
| MR_BIND_IGNORE Expected< OneMeshContour > | convertMeshTriPointsToMeshContour (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. | |
| Expected< OneMeshContour > | convertMeshTriPointsToMeshContour (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. | |
| Expected< OneMeshContour > | convertMeshTriPointsToClosedContour (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. | |
| OneMeshContour | convertSurfacePathWithEndsToMeshContour (const Mesh &mesh, const MeshTriPoint &start, const SurfacePath &surfacePath, const MeshTriPoint &end) |
| Converts SurfacePath to OneMeshContours. | |
| OneMeshContours | convertSurfacePathsToMeshContours (const Mesh &mesh, const std::vector< SurfacePath > &surfacePaths) |
| Converts SurfacePaths to OneMeshContours. | |
| FaceBMap | getOptimalFaceOrdering (const Mesh &mesh) |
| VertBMap | getVertexOrdering (const FaceBMap &faceMap, const MeshTopology &topology) |
| UndirectedEdgeBMap | getEdgeOrdering (const FaceBMap &faceMap, const MeshTopology &topology) |
| Expected< VertBitSet > | findOutliers (const PointCloud &pc, const FindOutliersParams ¶ms) |
| Finding outlier points. | |
| Expected< FaceBitSet > | findOverlappingTris (const MeshPart &mp, const FindOverlappingSettings &settings) |
| finds all triangles that have oppositely oriented close triangle in the mesh | |
| void | parallelFor (size_t begin, size_t end, FunctionRef< void(size_t)> f) |
| void | parallelFor (size_t begin, size_t end, FunctionRef< void(size_t, void *)> f, FunctionRef< void *()> ctx) |
| bool | parallelFor (size_t begin, size_t end, FunctionRef< void(size_t, void *)> f, FunctionRef< void *()> ctx, ProgressCallback cb, size_t reportProgressEvery=1024) |
| template<typename I, typename F, typename ... Cb> | |
| auto | ParallelFor (I begin, I end, F &&f, Cb &&... cb) |
| template<typename I, typename L, typename F, typename ... Cb> | |
| auto | ParallelFor (I begin, I end, tbb::enumerable_thread_specific< L > &e, F &&f, Cb &&... cb) |
| 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, typename I, typename ... F> | |
| auto | ParallelFor (const Buffer< T, I > &buf, 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) |
| Expected< VertCoords > | loadPly (std::istream &in, const PlyLoadParams ¶ms) |
| 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 | |
| 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) | |
| VertBitSet | findHalfSpacePoints (const PointCloud &pc, const Plane3f &plane) |
| PointCloud | divideWithPlane (const PointCloud &points, const Plane3f &plane, const DividePointCloudOptionalOutput &optOut={}) |
| 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. | |
| 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. | |
| 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. | |
| bool | orientNormals (const PointCloud &pointCloud, VertNormals &normals, float radius, const ProgressCallback &progress={}) |
| Select orientation of given normals to make directions of close points consistent;. | |
| 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;. | |
| 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;. | |
| 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;. | |
| 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. | |
| VertNormals | makeNormals (const PointCloud &pointCloud, int avgNeighborhoodSize=48) |
| Makes consistent normals for valid points of given point cloud. | |
| 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. | |
| bool | dilateRegion (const PointCloud &pointCloud, VertBitSet ®ion, float dilation, ProgressCallback cb={}, const AffineXf3f *xf=nullptr) |
| expands the region on given euclidian distance. returns false if callback also returns false | |
| bool | erodeRegion (const PointCloud &pointCloud, VertBitSet ®ion, float erosion, ProgressCallback cb={}, const AffineXf3f *xf=nullptr) |
| shrinks the region on given euclidian distance. returns false if callback also returns false | |
| bool | relax (PointCloud &pointCloud, const PointCloudRelaxParams ¶ms={}, ProgressCallback cb={}) |
| bool | relaxKeepVolume (PointCloud &pointCloud, const PointCloudRelaxParams ¶ms={}, ProgressCallback cb={}) |
| bool | relaxApprox (PointCloud &pointCloud, const PointCloudApproxRelaxParams ¶ms={}, ProgressCallback cb={}) |
| std::optional< Mesh > | triangulatePointCloud (const PointCloud &pointCloud, const TriangulationParameters ¶ms={}, const ProgressCallback &progressCb={}) |
| Creates mesh from given point cloud according params Returns empty optional if was interrupted by progress bar. | |
| bool | fillHolesWithExtraPoints (Mesh &mesh, PointCloud &extraPoints, const FillHolesWithExtraPointsParams ¶ms={}, const ProgressCallback &progressCb={}) |
| PickedPoint | pointOnObjectToPickedPoint (const VisualObject *object, const PointOnObject &pos) |
| Converts PointOnObject coordinates depending on the object type to the PickedPoint variant. | |
| std::optional< Vector3f > | getPickedPointPosition (const VisualObject &object, const PickedPoint &point) |
| MR_BIND_IGNORE Vector3f | pickedPointToVector3 (const VisualObject *object, const PickedPoint &point) |
| Converts pickedPoint into local coordinates of its object. | |
| MR_BIND_IGNORE bool | isPickedPointValid (const VisualObject *object, const PickedPoint &point) |
| Checks that the picked point presents in the object's topology. | |
| std::optional< Vector3f > | getPickedPointNormal (const VisualObject &object, const PickedPoint &point, bool interpolated=true) |
| void | findPointsInBall (const PointCloud &pointCloud, const Ball3f &ball, const OnPointInBallFound &foundCallback, const AffineXf3f *xf=nullptr) |
| MR_BIND_IGNORE void | findPointsInBall (const PointCloud &pointCloud, const Ball3f &ball, const FoundPointCallback &foundCallback, const AffineXf3f *xf=nullptr) |
| void | findPointsInBall (const Mesh &mesh, const Ball3f &ball, const OnPointInBallFound &foundCallback, const AffineXf3f *xf=nullptr) |
| MR_BIND_IGNORE void | findPointsInBall (const Mesh &mesh, const Ball3f &ball, const FoundPointCallback &foundCallback, const AffineXf3f *xf=nullptr) |
| void | findPointsInBall (const AABBTreePoints &tree, Ball3f ball, const OnPointInBallFound &foundCallback, const AffineXf3f *xf=nullptr) |
| MR_BIND_IGNORE void | findPointsInBall (const AABBTreePoints &tree, const Ball3f &ball, const FoundPointCallback &foundCallback, const AffineXf3f *xf=nullptr) |
| void | findPointsInBox (const PointCloud &pointCloud, const Box3f &box, const FoundPointCallback &foundCallback, const AffineXf3f *xf=nullptr) |
| void | findPointsInBox (const Mesh &mesh, const Box3f &box, const FoundPointCallback &foundCallback, const AffineXf3f *xf=nullptr) |
| void | findPointsInBox (const AABBTreePoints &tree, const Box3f &box, const FoundPointCallback &foundCallback, const AffineXf3f *xf=nullptr) |
| 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 | |
| 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 | |
| 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 | |
| Buffer< VertId > | findNClosestPointsPerPoint (const PointCloud &pc, int numNei, const ProgressCallback &progress={}) |
| finds given number of closest points (excluding itself) to each valid point in the cloud; | |
| VertPair | findTwoClosestPoints (const PointCloud &pc, const ProgressCallback &progress={}) |
| finds two closest points (first id < second id) in whole point cloud | |
| VertScalars | findSignedDistances (const Mesh &refMesh, const VertCoords &testPoints, const VertBitSet *validTestPoints={}, const MeshProjectionParameters ¶ms={}, IPointsToMeshProjector *projector={}) |
| if projector is not given then CPU's computations will be used | |
| VertScalars | findSignedDistances (const Mesh &refMesh, const Mesh &mesh, const MeshProjectionParameters ¶ms={}, IPointsToMeshProjector *projector={}) |
| if projector is not given then CPU's computations will be used | |
| std::vector< EdgePointPair > | findCollidingEdgePairs (const Polyline2 &a, const Polyline2 &b, const AffineXf2f *rigidB2A=nullptr, bool firstIntersectionOnly=false) |
| finds all pairs of colliding edges from two 2d polylines | |
| std::vector< UndirectedEdgeUndirectedEdge > | findCollidingEdges (const Polyline2 &a, const Polyline2 &b, const AffineXf2f *rigidB2A=nullptr, bool firstIntersectionOnly=false) |
| finds all pairs of colliding edges from two 2d polylines | |
| std::pair< UndirectedEdgeBitSet, UndirectedEdgeBitSet > | findCollidingEdgesBitsets (const Polyline2 &a, const Polyline2 &b, const AffineXf2f *rigidB2A=nullptr) |
| finds bitset per polyline with colliding edges | |
| std::vector< EdgePointPair > | findSelfCollidingEdgePairs (const Polyline2 &polyline) |
| finds all pairs of colliding edges from 2d polyline | |
| std::vector< UndirectedEdgeUndirectedEdge > | findSelfCollidingEdges (const Polyline2 &polyline) |
| finds all pairs of colliding edges from 2d polyline | |
| UndirectedEdgeBitSet | findSelfCollidingEdgesBS (const Polyline2 &polyline) |
| finds the union of all self-intersecting edges | |
| 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 | |
| bool | isPointInsidePolyline (const Polyline2 &polyline, const Vector2f &point) |
| detect if given point is inside polyline, by counting ray intersections | |
| std::optional< PolylineIntersectionResult2 > | rayPolylineIntersect (const Polyline2 &polyline, const Line2f &line, float rayStart=0, float rayEnd=FLT_MAX, const IntersectionPrecomputes2< float > *prec=nullptr, bool closestIntersect=true) |
| std::optional< PolylineIntersectionResult2 > | rayPolylineIntersect (const Polyline2 &polyline, const Line2d &line, double rayStart=0, double rayEnd=DBL_MAX, const IntersectionPrecomputes2< double > *prec=nullptr, bool closestIntersect=true) |
| void | rayPolylineIntersectAll (const Polyline2 &polyline, const Line2f &line, const PolylineIntersectionCallback2f &callback, float rayStart=0.0f, float rayEnd=FLT_MAX, const IntersectionPrecomputes2< float > *prec=nullptr) |
| void | rayPolylineIntersectAll (const Polyline2 &polyline, const Line2d &line, const PolylineIntersectionCallback2d &callback, double rayStart=0.0, double rayEnd=DBL_MAX, const IntersectionPrecomputes2< double > *prec=nullptr) |
| DecimatePolylineResult | decimatePolyline (Polyline2 &polyline, const DecimatePolylineSettings2 &settings={}) |
| Collapse edges in the polyline according to the settings. | |
| DecimatePolylineResult | decimatePolyline (Polyline3 &polyline, const DecimatePolylineSettings3 &settings={}) |
| DecimatePolylineResult | decimateContour (Contour2f &contour, const DecimatePolylineSettings2 &settings={}) |
| Collapse edges in the contour according to the settings. | |
| DecimatePolylineResult | decimateContour (Contour3f &contour, const DecimatePolylineSettings3 &settings={}) |
| 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 | |
| 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 | |
| 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, | |
| 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 | |
| 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 | |
| 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 | |
| void | findEdgesInBall (const Polyline2 &polyline, const Vector2f ¢er, float radius, const FoundEdgeCallback2 &foundCallback, AffineXf2f *xf=nullptr) |
| Finds all edges of given polyline that cross or touch given ball (center, radius) | |
| void | findEdgesInBall (const Polyline3 &polyline, const Vector3f ¢er, float radius, const FoundEdgeCallback3 &foundCallback, AffineXf3f *xf=nullptr) |
| Finds all edges of given polyline that cross or touch given ball (center, radius) | |
| void | findMeshEdgesInBall (const Mesh &mesh, const AABBTreePolyline3 &tree, const Vector3f ¢er, 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) | |
| 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 | |
| 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 ¶ms={}, ProgressCallback cb={}) |
| template<typename V> | |
| bool | relaxKeepArea (Polyline< V > &polyline, const RelaxParams ¶ms={}, ProgressCallback cb={}) |
| int | subdividePolyline (Polyline2 &polyline, const PolylineSubdivideSettings &settings={}) |
| int | subdividePolyline (Polyline3 &polyline, const PolylineSubdivideSettings &settings={}) |
| UndirectedEdgeBitSet | subdivideWithPlane (Polyline3 &polyline, const Plane3f &plane, EdgeBitSet *newPositiveEdges={}, std::function< void(EdgeId, EdgeId, float)> onEdgeSplitCallback={}) |
| MR_BIND_IGNORE UndirectedEdgeBitSet | subdividePolylineWithPlane (Polyline3 &polyline, const Plane3f &plane, std::function< void(EdgeId, EdgeId, float)> onEdgeSplitCallback={}) |
| void | trimWithPlane (Polyline3 &polyline, const Plane3f &plane, const DividePolylineParameters ¶ms={}) |
| MR_BIND_IGNORE void | dividePolylineWithPlane (Polyline3 &polyline, const Plane3f &plane, const DividePolylineParameters ¶ms={}) |
| std::vector< EdgeSegment > | extractSectionsFromPolyline (const Polyline3 &polyline, const Plane3f &plane, float eps, UndirectedEdgeBitSet *positiveEdges={}) |
| void | positionVertsSmoothly (Mesh &mesh, const VertBitSet &verts, EdgeWeights edgeWeights=EdgeWeights::Cotan, VertexMass vmass=VertexMass::Unit, const VertBitSet *fixedSharpVertices=nullptr) |
| void | positionVertsSmoothly (const MeshTopology &topology, VertCoords &points, const VertBitSet &verts, EdgeWeights edgeWeights=EdgeWeights::Cotan, VertexMass vmass=VertexMass::Unit, const VertBitSet *fixedSharpVertices=nullptr) |
| void | positionVertsSmoothlySharpBd (Mesh &mesh, const PositionVertsSmoothlyParams ¶ms) |
| Puts given vertices in such positions to make smooth surface inside verts-region, but sharp on its boundary;. | |
| void | positionVertsSmoothlySharpBd (const MeshTopology &topology, VertCoords &points, const PositionVertsSmoothlyParams ¶ms) |
| void | positionVertsSmoothlySharpBd (Mesh &mesh, const VertBitSet &verts) |
| void | positionVertsWithSpacing (Mesh &mesh, const SpacingSettings &settings) |
| Moves given vertices to make the distances between them as specified. | |
| void | positionVertsWithSpacing (const MeshTopology &topology, VertCoords &points, const SpacingSettings &settings) |
| void | inflate (Mesh &mesh, const VertBitSet &verts, const InflateSettings &settings) |
| void | inflate (const MeshTopology &topology, VertCoords &points, const VertBitSet &verts, const InflateSettings &settings) |
| void | inflate1 (const MeshTopology &topology, VertCoords &points, const VertBitSet &verts, float pressure) |
| void | vertMapsComposition (VertMap &a2b, const VertMap &b2c) |
| updates a2b map to a2c map using b2c map | |
| VertMap | vertMapsComposition (const VertMap &a2b, const VertMap &b2c) |
| returns map a2c from a2b and b2c maps | |
| void | edgeMapsComposition (EdgeMap &a2b, const EdgeMap &b2c) |
| updates a2b map to a2c map using b2c map | |
| EdgeMap | edgeMapsComposition (const EdgeMap &a2b, const EdgeMap &b2c) |
| returns map a2c from a2b and b2c maps | |
| void | faceMapsComposition (FaceMap &a2b, const FaceMap &b2c) |
| updates a2b map to a2c map using b2c map | |
| FaceMap | faceMapsComposition (const FaceMap &a2b, const FaceMap &b2c) |
| returns map a2c from a2b and b2c maps | |
| 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 | |
| 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 | |
| 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 ¶ms={}) |
| template<typename F> | |
| bool | projectFaceAttribute (const MeshPart &mp, const Mesh &oldMesh, F &&func, const ProjectAttributeParams ¶ms={}) |
| Expected< void > | projectObjectMeshData (const ObjectMeshData &oldMeshData, ObjectMeshData &newMeshData, const FaceBitSet *region=nullptr, const ProjectAttributeParams ¶ms={}) |
| finds attributes of new mesh by projecting faces/vertices on old mesh | |
| Expected< void > | compensateRadius (Mesh &mesh, const CompensateRadiusParams ¶ms) |
| 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) |
| void | expandPixelMask (PixelBitSet &mask, const RectIndexer &indexer, int expansion=1) |
| expands PixelBitSet with given number of steps | |
| void | shrinkPixelMask (PixelBitSet &mask, const RectIndexer &indexer, int shrinkage=1) |
| shrinks PixelBitSet with given number of steps | |
| template<typename T> | |
| Vector2< T > | unfoldOnPlane (const Vector3< T > &b, const Vector3< T > &c, const Vector2< T > &d, bool toLeftFrom0d) |
| template<typename T> | |
| 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) |
| bool | reducePathViaVertex (const Mesh &mesh, const MeshTriPoint &start, VertId v, const MeshTriPoint &end, SurfacePath &outPath, std::vector< Vector2f > &tmp, SurfacePath &cachePath) |
| int | reducePath (const Mesh &mesh, const MeshTriPoint &start, SurfacePath &path, const MeshTriPoint &end, int maxIter=5) |
| EdgeLoop | trackLeftBoundaryLoop (const MeshTopology &topology, EdgeId e0, const FaceBitSet *region=nullptr) |
| EdgeLoop | trackLeftBoundaryLoop (const MeshTopology &topology, const FaceBitSet ®ion, EdgeId e0) |
| EdgeLoop | trackRightBoundaryLoop (const MeshTopology &topology, EdgeId e0, const FaceBitSet *region=nullptr) |
| EdgeLoop | trackRightBoundaryLoop (const MeshTopology &topology, const FaceBitSet ®ion, EdgeId e0) |
| EdgeId | extractPath (const MeshTopology &topology, EdgeId e0, EdgeBitSet &edges, EdgePath *outPath, Turn turn) |
| std::vector< EdgeLoop > | extractAllLoops (const MeshTopology &topology, EdgeBitSet &edges, Turn turn) |
| std::vector< EdgeLoop > | findLeftBoundary (const MeshTopology &topology, const FaceBitSet *region=nullptr) |
| MR_BIND_IGNORE std::vector< EdgeLoop > | findLeftBoundary (const MeshTopology &topology, const FaceBitSet ®ion) |
| 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. | |
| std::vector< EdgeLoop > | findRightBoundary (const MeshTopology &topology, const FaceBitSet *region=nullptr) |
| MR_BIND_IGNORE std::vector< EdgeLoop > | findRightBoundary (const MeshTopology &topology, const FaceBitSet ®ion) |
| 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. | |
| EdgeBitSet | findAllLeftBdEdges (const MeshTopology &topology, const FaceBitSet *region, bool innerMeshEdgesOnly=false) |
| std::vector< EdgeLoop > | delRegionKeepBd (Mesh &mesh, const FaceBitSet *region=nullptr, bool keepLoneHoles=false) |
| MR_BIND_IGNORE std::vector< EdgeLoop > | delRegionKeepBd (Mesh &mesh, const FaceBitSet ®ion, 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. | |
| std::vector< EdgePath > | findLeftBoundaryInsideMesh (const MeshTopology &topology, const FaceBitSet ®ion) |
| UndirectedEdgeBitSet | findRegionBoundaryUndirectedEdgesInsideMesh (const MeshTopology &topology, const FaceBitSet ®ion) |
| returns all region boundary edges, where each edge has a region face on one side, and a valid not-region face on another side | |
| FaceBitSet | findRegionOuterFaces (const MeshTopology &topology, const FaceBitSet ®ion) |
| VertBitSet | getIncidentVerts (const MeshTopology &topology, const FaceBitSet &faces) |
| composes the set of all vertices incident to given faces | |
| const VertBitSet & | getIncidentVerts (const MeshTopology &topology, const FaceBitSet *faces, VertBitSet &store) |
| 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 | |
| MR_BIND_IGNORE VertBitSet | getInnerVerts (const MeshTopology &topology, const FaceBitSet ®ion) |
| VertBitSet | getBoundaryVerts (const MeshTopology &topology, const FaceBitSet *region=nullptr) |
| composes the set of all boundary vertices for given region (or whole mesh if !region) | |
| VertBitSet | getRegionBoundaryVerts (const MeshTopology &topology, const FaceBitSet ®ion) |
| FaceBitSet | getIncidentFaces (const MeshTopology &topology, const VertBitSet &verts) |
| composes the set of all faces incident to given vertices | |
| FaceBitSet | getInnerFaces (const MeshTopology &topology, const VertBitSet &verts) |
| composes the set of all faces with all their vertices in given set | |
| EdgeBitSet | getRegionEdges (const MeshTopology &topology, const FaceBitSet &faces) |
| composes the set of all edges, having a face from given set at the left | |
| 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 | |
| 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 | |
| VertBitSet | getIncidentVerts (const MeshTopology &topology, const UndirectedEdgeBitSet &edges) |
| composes the set of all vertices incident to given edges | |
| FaceBitSet | getIncidentFaces (const MeshTopology &topology, const UndirectedEdgeBitSet &edges) |
| composes the set of all faces incident to given edges | |
| FaceBitSet | getNeighborFaces (const MeshTopology &topology, const UndirectedEdgeBitSet &edges) |
| composes the set of all left and right faces of given edges | |
| UndirectedEdgeBitSet | getInnerEdges (const MeshTopology &topology, const VertBitSet &verts) |
| composes the set of all edges with all their vertices in given set | |
| UndirectedEdgeBitSet | getInnerEdges (const MeshTopology &topology, const FaceBitSet ®ion) |
| composes the set of all edges having both left and right in given region | |
| const VertBitSet & | getIncidentVerts (const MeshTopology &topology, const UndirectedEdgeBitSet *edges, VertBitSet &store) |
| VertBitSet | getInnerVerts (const MeshTopology &topology, const UndirectedEdgeBitSet &edges) |
| composes the set of all vertices with all their edges in given set | |
| Expected< Mesh > | makeRegularGridMesh (size_t width, size_t height, const RegularGridLatticeValidator &validator, const RegularGridLatticePositioner &positioner, const RegularGridMeshFaceValidator &faceValidator={}, ProgressCallback cb={}) |
| Creates regular mesh with points in valid grid lattice. | |
| Expected< Mesh > | makeRegularGridMesh (VertCoords pc, ProgressCallback cb={}) |
| Creates regular mesh from monotone (connects point with closed x, y neighbors) points. | |
| template<typename V> | |
| 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 |
| void | redirectSTDStreamsToLogger () |
| 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 | |
| const VertCoords & | transformPoints (const VertCoords &verts, const VertBitSet &validVerts, const AffineXf3d *xf, VertCoords &buf, const VertRenumber *vertRenumber=nullptr) |
| const VertNormals & | transformNormals (const VertNormals &normals, const VertBitSet &validVerts, const Matrix3d *m, VertNormals &buf) |
| std::shared_ptr< SceneRootObject > | createRootFormObject (std::shared_ptr< Object > obj) |
| Expected< std::string > | serializeJsonValue (const Json::Value &root) |
| Expected< void > | serializeJsonValue (const Json::Value &root, std::ostream &out) |
| Expected< void > | serializeJsonValue (const Json::Value &root, const std::filesystem::path &path) |
| important on Windows: in stream must be open in binary mode | |
| Expected< Json::Value > | deserializeJsonValue (std::istream &in) |
| Expected< Json::Value > | deserializeJsonValue (const char *data, size_t size) |
| important on Windows: in stream must be open in binary mode | |
| Expected< Json::Value > | deserializeJsonValue (const std::string &str) |
| Expected< Json::Value > | deserializeJsonValue (const std::filesystem::path &path) |
| Expected< void > | serializeMesh (const Mesh &mesh, const std::filesystem::path &path, const FaceBitSet *selection=nullptr, const char *serializeFormat=".mrmesh") |
| void | serializeToJson (const Vector2i &vec, Json::Value &root) |
| saves an object into json value | |
| void | serializeToJson (const Vector2f &vec, Json::Value &root) |
| void | serializeToJson (const Vector3i &vec, Json::Value &root) |
| void | serializeToJson (const Vector3f &vec, Json::Value &root) |
| void | serializeToJson (const Vector4f &vec, Json::Value &root) |
| void | serializeToJson (const Box3i &box, Json::Value &root) |
| void | serializeToJson (const Box3f &box, Json::Value &root) |
| void | serializeToJson (const Color &col, Json::Value &root) |
| void | serializeToJson (const Matrix2f &matrix, Json::Value &root, bool skipIdentity=true) |
| void | serializeToJson (const Matrix3f &matrix, Json::Value &root, bool skipIdentity=true) |
| void | serializeToJson (const AffineXf2f &xf, Json::Value &root, bool skipIdentity=true) |
| void | serializeToJson (const AffineXf3f &xf, Json::Value &root, bool skipIdentity=true) |
| void | serializeToJson (const BitSet &bitset, Json::Value &root) |
| Expected< void > | serializeToJson (const Mesh &mesh, Json::Value &root) |
| void | serializeToJson (const Plane3f &plane, Json::Value &root) |
| void | serializeToJson (const TriPointf &tp, Json::Value &root) |
| void | serializeToJson (const MeshTexture &texture, Json::Value &root) |
| void | serializeToJson (const std::vector< TextureId > &texturePerFace, Json::Value &root) |
| void | serializeToJson (const std::vector< UVCoord > &uvCoords, Json::Value &root) |
| void | serializeToJson (const std::vector< Color > &colors, Json::Value &root) |
| void | serializeToJson (const MeshTriPoint &mtp, const MeshTopology &topology, Json::Value &root) |
| void | serializeToJson (const PointOnFace &pf, Json::Value &root) |
| void | serializeViaVerticesToJson (const UndirectedEdgeBitSet &edges, const MeshTopology &topology, Json::Value &root) |
| void | deserializeViaVerticesFromJson (const Json::Value &root, UndirectedEdgeBitSet &edges, const MeshTopology &topology) |
| void | deserializeFromJson (const Json::Value &root, Vector2i &vec) |
| loads an object from json value | |
| void | deserializeFromJson (const Json::Value &root, Vector2f &vec) |
| void | deserializeFromJson (const Json::Value &root, Vector3i &vec) |
| void | deserializeFromJson (const Json::Value &root, Vector3f &vec) |
| void | deserializeFromJson (const Json::Value &root, Vector4f &vec) |
| void | deserializeFromJson (const Json::Value &root, Color &col) |
| void | deserializeFromJson (const Json::Value &root, Matrix2f &matrix) |
| void | deserializeFromJson (const Json::Value &root, Matrix3f &matrix) |
| void | deserializeFromJson (const Json::Value &root, AffineXf2f &xf) |
| void | deserializeFromJson (const Json::Value &root, AffineXf3f &xf) |
| void | deserializeFromJson (const Json::Value &root, BitSet &bitset) |
| Expected< Mesh > | deserializeFromJson (const Json::Value &root, VertColors *colors=nullptr) |
| void | deserializeFromJson (const Json::Value &root, Plane3f &plane) |
| void | deserializeFromJson (const Json::Value &root, TriPointf &tp) |
| void | deserializeFromJson (const Json::Value &root, MeshTexture &texture) |
| void | deserializeFromJson (const Json::Value &root, std::vector< TextureId > &texturePerFace) |
| void | deserializeFromJson (const Json::Value &root, std::vector< UVCoord > &uvCoords) |
| void | deserializeFromJson (const Json::Value &root, std::vector< Color > &colors) |
| void | deserializeFromJson (const Json::Value &root, MeshTriPoint &mtp, const MeshTopology &topology) |
| void | deserializeFromJson (const Json::Value &root, PointOnFace &pf) |
| void | sharpenMarchingCubesMesh (const MeshPart &ref, Mesh &vox, Vector< VoxelId, FaceId > &face2voxel, const SharpenMarchingCubesMeshSettings &settings) |
| const char * | asString (SignDetectionMode m) |
| returns string representation of enum values | |
| std::vector< Vector3f > | sampleHalfSphere () |
| returns quasi-uniform 145 samples on unit half-sphere z>0 | |
| VertScalars | computeSkyViewFactor (const Mesh &terrain, const VertCoords &samples, const VertBitSet &validSamples, const std::vector< SkyPatch > &skyPatches, BitSet *outSkyRays=nullptr, std::vector< MeshIntersectionResult > *outIntersections=nullptr) |
| BitSet | findSkyRays (const Mesh &terrain, const VertCoords &samples, const VertBitSet &validSamples, const std::vector< SkyPatch > &skyPatches, std::vector< MeshIntersectionResult > *outIntersections=nullptr) |
| Mesh | makeSolidOfRevolution (const Contour2f &profile, int resolution=16) |
| template<typename C, typename D, D M> | |
| SparsePolynomial< C, D, M > | operator* (const SparsePolynomial< C, D, M > &a, const SparsePolynomial< C, D, M > &b) |
| std::string | getCurrentStacktraceInline () |
| void | printStacktraceOnCrash () |
| Print stacktrace on application crash. | |
| size_t | findSubstringCaseInsensitive (const std::string &string, const std::string &substring) |
| int | calcDamerauLevenshteinDistance (const std::string &stringA, const std::string &stringB, bool caseSensitive=true, int *outLeftRightAddition=nullptr) |
| 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) |
| std::string | replace (std::string target, std::string_view from, std::string_view to) |
| Returns. | |
| void | replaceInplace (std::string &target, std::string_view from, std::string_view to) |
| Replaces. | |
| 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. | |
| std::string_view | trimLeft (std::string_view str) |
| Removes all whitespace character (detected by std::isspace) at the beginning of string view. | |
| std::string_view | trimRight (std::string_view str) |
| Removes all whitespace character (detected by std::isspace) at the end of string view. | |
| bool | hasFormatPlaceholders (std::string_view str) |
| Returns true if str has at least one {...} formatting placeholder. | |
| MR_BIND_IGNORE std::wstring | utf8ToWide (const char *utf8) |
| converts UTF8-encoded string into UTF16-encoded string | |
| std::string | systemToUtf8 (const std::string &system) |
| converts system encoded string to UTF8-encoded string | |
| std::string | utf8ToSystem (const std::string &utf8) |
| MR_BIND_IGNORE 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) |
| std::u8string is not defined | |
| 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 | |
| std::string | utf8substr (const char *s, size_t pos, size_t count) |
| std::string | bytesString (size_t size) |
| bool | isProhibitedChar (char c) |
| bool | hasProhibitedChars (const std::string &line) |
| returns true if line contains at least one character (c) for which isProhibitedChar(c)==true | |
| 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 | |
| std::string | commonFilesName (const std::vector< std::filesystem::path > &files) |
| MR_BIND_IGNORE char * | formatNoTrailingZeros (char *fmt, double v, int digitsAfterPoint, int precision=6) |
| 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) |
| Returns message showed when loading is canceled. | |
| std::string | toLower (std::string str) |
| return a copy of the string with all alphabetic ASCII characters replaced with upper-case variants | |
| VertScalars | computeSurfaceDistances (const Mesh &mesh, const VertBitSet &startVertices, float maxDist=FLT_MAX, const VertBitSet *region=nullptr, int maxVertUpdates=3) |
| VertScalars | computeSurfaceDistances (const Mesh &mesh, const VertBitSet &startVertices, const VertBitSet &targetVertices, float maxDist=FLT_MAX, const VertBitSet *region=nullptr, int maxVertUpdates=3) |
| VertScalars | computeSurfaceDistances (const Mesh &mesh, const HashMap< VertId, float > &startVertices, float maxDist=FLT_MAX, const VertBitSet *region=nullptr, int maxVertUpdates=3) |
| VertScalars | computeSurfaceDistances (const Mesh &mesh, const MeshTriPoint &start, const MeshTriPoint &end, const VertBitSet *region=nullptr, bool *endReached=nullptr, int maxVertUpdates=3) |
| VertScalars | computeSurfaceDistances (const Mesh &mesh, const MeshTriPoint &start, float maxDist=FLT_MAX, const VertBitSet *region=nullptr, int maxVertUpdates=3) |
| 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 | |
| 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. | |
| 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) |
| Expected< SurfacePath, PathError > | computeSurfacePath (const MeshPart &mp, const MeshTriPoint &start, const MeshTriPoint &end, int maxGeodesicIters=5, const VertBitSet *vertRegion=nullptr, VertScalars *outSurfaceDistances=nullptr) |
| 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 | |
| Expected< SurfacePath, PathError > | computeGeodesicPathApprox (const Mesh &mesh, const MeshTriPoint &start, const MeshTriPoint &end, GeodesicPathApprox atype) |
| Expected< SurfacePath, PathError > | computeFastMarchingPath (const MeshPart &mp, const MeshTriPoint &start, const MeshTriPoint &end, const VertBitSet *vertRegion=nullptr, VertScalars *outSurfaceDistances=nullptr) |
| SurfacePath | computeSteepestDescentPath (const MeshPart &mp, const VertScalars &field, const MeshTriPoint &start, const ComputeSteepestDescentPathSettings &settings={}) |
| void | computeSteepestDescentPath (const MeshPart &mp, const VertScalars &field, const MeshTriPoint &start, SurfacePath *outPath, const ComputeSteepestDescentPathSettings &settings={}) |
| 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 | |
| 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) | |
| 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) | |
| 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 | |
| HashMap< VertId, VertId > | computeClosestSurfacePathTargets (const Mesh &mesh, const VertBitSet &starts, const VertBitSet &ends, const VertBitSet *vertRegion=nullptr, VertScalars *outSurfaceDistances=nullptr) |
| SurfacePaths | getSurfacePathsViaVertices (const Mesh &mesh, const VertBitSet &vs) |
| float | surfacePathLength (const Mesh &mesh, const SurfacePath &surfacePath) |
| computes the length of the given surface path | |
| float | geodesicPathLength (const Mesh &mesh, const GeodesicPath &path) |
| computes the length of the given geodesic path | |
| Contour3f | surfacePathToContour3f (const Mesh &mesh, const SurfacePath &line) |
| converts lines on mesh in 3D contours by computing coordinate of each point | |
| Contours3f | surfacePathsToContours3f (const Mesh &mesh, const SurfacePaths &lines) |
| Contour3f | geodesicPathToContour3f (const Mesh &mesh, const GeodesicPath &path) |
| returns coordinates of all vertices of the given path | |
| 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. | |
| 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. | |
| void | SetCurrentThreadName (const char *name) |
| sets debug name for the current thread | |
| MR_BIND_IGNORE std::filesystem::path | GetExeDirectory () |
| returns path of current exe directory | |
| MR_BIND_IGNORE std::filesystem::path | GetResourcesDirectory () |
| MR_BIND_IGNORE std::filesystem::path | GetFontsDirectory () |
| MR_BIND_IGNORE std::filesystem::path | GetLibsDirectory () |
| MR_BIND_IGNORE std::filesystem::path | GetEmbeddedPythonDirectory () |
| std::filesystem::path | getUserConfigDir () |
| return path to the folder with user config file(s) | |
| std::filesystem::path | getUserConfigFilePath () |
| returns path of config file in APPDATA | |
| std::filesystem::path | GetTempDirectory () |
| returns temp directory | |
| std::filesystem::path | GetHomeDirectory () |
| returns home directory | |
| const char * | GetMRVersionString () |
| _WIN32 | |
| void | OpenLink (const std::string &url) |
| Opens given link in default browser. | |
| bool | OpenDocument (const std::filesystem::path &path) |
| Opens given file (or directory) in associated application. | |
| std::string | GetCpuId () |
| returns string identification of the CPU | |
| std::string | GetDetailedOSName () |
| returns string with OS name with details | |
| std::string | getOSNoSpaces () |
| returns string identification of the OS | |
| void | setNewHandlerIfNeeded () |
| sets new handler for operator new if needed for some platforms | |
| std::string | getCurrentStacktrace () |
| returns string representation of the current stacktrace | |
| SystemMemory | getSystemMemory () |
| return information about memory available in the system | |
| void | setupLoggerByDefault (const std::function< void()> &customLogSinkAdder={}) |
| _WIN32 | |
| int | intLog2 (size_t n) |
| Expected< Mesh > | terrainTriangulation (std::vector< Vector3f > points, ProgressCallback cb={}) |
| std::optional< UVCoord > | findVertexUV (const MeshTopology &topology, VertId v, const TriCornerUVCoords &triCornerUvCoords) |
| std::optional< VertUVCoords > | findVertexUVs (const MeshTopology &topology, const TriCornerUVCoords &triCornerUvCoords) |
| Color | sampleVertexColor (const Mesh &mesh, VertId v, const MeshTexture &tex, const TriCornerUVCoords &triCornerUvCoords) |
| VertColors | sampleVertexColors (const Mesh &mesh, const MeshTexture &tex, const TriCornerUVCoords &triCornerUvCoords) |
| bool | isTIFFFile (const std::filesystem::path &path) |
| returns true if given file is tiff | |
| Expected< TiffParameters > | readTiffParameters (const std::filesystem::path &path) |
| reads parameters of tiff file | |
| Expected< void > | readRawTiff (const std::filesystem::path &path, RawTiffOutput &output) |
| load values from tiff to ouput.data | |
| Expected< void > | writeRawTiff (const uint8_t *bytes, const std::filesystem::path &path, const WriteRawTiffParams ¶ms) |
| writes bytes to tiff file | |
| Expected< void > | writeRawTiff (const uint8_t *bytes, const std::filesystem::path &path, const BaseTiffParameters ¶ms, const AffineXf3f *xf) |
| void | printTimingTreeAtEnd (bool on, double minTimeSec=0.1) |
| void | printCurrentTimerBranch () |
| prints current timer branch | |
| void | printTimingTree (double minTimeSec=0.1) |
| MR_BIND_IGNORE void | registerThreadRootTimeRecord (ThreadRootTimeRecord &root) |
| installs given record in the current thread (no record must be installed before) | |
| MR_BIND_IGNORE void | unregisterThreadRootTimeRecord (ThreadRootTimeRecord &root) |
| un-installs given record in the current thread | |
| Mesh | makeTorus (float primaryRadius=1.0f, float secondaryRadius=0.1f, int primaryResolution=16, int secondaryResolution=16, std::vector< Vector3f > *points=nullptr) |
| Mesh | makeOuterHalfTorus (float primaryRadius=1.0f, float secondaryRadius=0.1f, int primaryResolution=16, int secondaryResolution=16, std::vector< Vector3f > *points=nullptr) |
| 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) |
| 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) |
| Mesh | makeTorusWithComponents (float primaryRadius=1.0f, float secondaryRadius=0.1f, int primaryResolution=16, int secondaryResolution=16, std::vector< Vector3f > *points=nullptr) |
| Mesh | makeTorusWithSelfIntersections (float primaryRadius=1.0f, float secondaryRadius=0.1f, int primaryResolution=16, int secondaryResolution=16, std::vector< Vector3f > *points=nullptr) |
| template<typename T> | |
| void | rotateToLongestEdge (Vector3< T > &a, Vector3< T > &b, Vector3< T > &c) |
| 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< TriIntersectResult > | rayTriangleIntersect (const Vector3< T > &oriA, const Vector3< T > &oriB, const Vector3< T > &oriC, const IntersectionPrecomputes< T > &prec) |
| template<typename T> | |
| std::optional< TriIntersectResult > | rayTriangleIntersect (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 | |
| TriTriDistanceResultf | findTriTriDistance (const Triangle3f &a, const Triangle3f &b, const TriTriDistanceParamsf ¶ms={}) |
| computes the closest points on two triangles | |
| TriTriDistanceResultd | findTriTriDistance (const Triangle3d &a, const Triangle3d &b, const TriTriDistanceParamsd ¶ms={}) |
| MR_BIND_IGNORE float | triDist (Vector3f &p, Vector3f &q, const Vector3f s[3], const Vector3f t[3]) |
| This version is not in the bindings, because the pointer parameters are assumed to point to single objects, which is wrong here. | |
| float | triDist (Vector3f &p, Vector3f &q, const std::array< Vector3f, 3 > &s, const std::array< Vector3f, 3 > &t) |
| void | segPoints (Vector3f &VEC, Vector3f &X, Vector3f &Y, const Vector3f &P, const Vector3f &A, const Vector3f &Q, const Vector3f &B) |
| template<typename T> | |
| T | circumcircleDiameterSq (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c) |
| template<typename T> | |
| 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 > ¢erPos, Vector3< T > ¢erNeg) |
| ball's center from the negative side of triangle | |
| template<typename T> | |
| T | minTriangleAngleSin (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c) |
| template<typename T> | |
| T | minTriangleAngle (const Vector3< T > &a, const Vector3< T > &b, const Vector3< T > &c) |
| template<typename T> | |
| 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> | |
| 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> | |
| T | dblArea (const Triangle3< T > &t) |
| computes twice the area of given triangle | |
| template<typename T> | |
| T | dblArea (const Vector3< T > &p, const Vector3< T > &q, const Vector3< T > &r) |
| computes twice the area of given triangle | |
| template<typename T> | |
| T | area (const Vector3< T > &p, const Vector3< T > &q, const Vector3< T > &r) |
| computes twice the area of given triangle | |
| template<typename T> | |
| T | dblArea (const Vector2< T > &p, const Vector2< T > &q, const Vector2< T > &r) |
| computes twice the area of given triangle | |
| template<typename T> | |
| 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> | |
| T | dihedralAngleSin (const Vector3< T > &leftNorm, const Vector3< T > &rightNorm, const Vector3< T > &edgeVec) |
| template<typename T> | |
| T | dihedralAngleCos (const Vector3< T > &leftNorm, const Vector3< T > &rightNorm) |
| template<typename T> | |
| 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> | |
| T | tanSqOfHalfAngle (T a, T b, T c) |
| template<typename T> | |
| T | cotan (const Triangle3< T > &t, T absMaxVal=std::numeric_limits< T >::max()) |
| template<typename T> | |
| 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) |
| std::vector< FaceFaceFace > | findTripleFaceIntersections (const MeshTopology &topology, const ContinuousContours &selfContours) |
| Expected< std::vector< EdgeLoop > > | detectBasisTunnels (const MeshPart &mp, EdgeMetric metric={}, ProgressCallback progressCallback={}) |
| Expected< EdgeLoop > | findSmallestMetricCoLoop (const MeshTopology &topology, const EdgeLoop &loop, const EdgeMetric &metric, const FaceBitSet *region=nullptr) |
| Expected< EdgeLoop > | findShortestCoLoop (const MeshPart &mp, const EdgeLoop &loop) |
| same as findMinimalCoLoop with euclidean edge length metric | |
| std::vector< EdgeLoop > | findSmallestMetricEquivalentLoops (const MeshTopology &topology, const EdgeLoop &loop, const EdgeMetric &metric, const FaceBitSet *region=nullptr) |
| std::vector< EdgeLoop > | findShortestEquivalentLoops (const MeshPart &mp, const EdgeLoop &loop) |
| same as findSmallestMetricEquivalentLoops with euclidean edge length metric | |
| Expected< FaceBitSet > | detectTunnelFaces (const MeshPart &mp, const DetectTunnelSettings &settings={}) |
| Expected< void > | eliminateTunnels (Mesh &mesh, const FaceBitSet *region={}, const DetectTunnelSettings &settings={}) |
| Expected< void > | eliminateTunnels (Mesh &mesh, const FillHoleParams &fillHoleParams, const FaceBitSet *region={}, const DetectTunnelSettings &settings={}) |
| TwoLineSegmClosestPointsf | findTwoLineSegmClosestPoints (const LineSegm3f &a, const LineSegm3f &b) |
| computes the closest points on two line segments | |
| TwoLineSegmClosestPointsd | findTwoLineSegmClosestPoints (const LineSegm3d &a, const LineSegm3d &b) |
| std::optional< VertBitSet > | pointUniformSampling (const PointCloud &pointCloud, const UniformSamplingSettings &settings) |
| std::optional< PointCloud > | makeUniformSampledCloud (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) |
| Expected< Mesh > | uniteManyMeshes (const std::vector< const Mesh * > &meshes, const UniteManyMeshesParams ¶ms={}) |
| template<UnitEnum E> | |
| const UnitInfo & | getUnitInfo (E unit)=delete |
| Returns information about a single measurement unit. | |
| template<UnitEnum E> | |
| bool | unitsAreEquivalent (E a, E b) |
| Returns true if converting a value between units a and b doesn't change its value. | |
| template<UnitEnum E> | |
| bool | unitsAreEquivalent (const std::optional< E > &a, const std::optional< E > &b) |
| This version also returns true if a or b is null. | |
| 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) |
| This version is a no-op if from or to is null. | |
| template<typename T> | |
| 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> | |
| T | 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) |
| void | expandVoxelsMask (VoxelBitSet &mask, const VolumeIndexer &indexer, int expansion=1) |
| expands VoxelBitSet with given number of steps | |
| void | shrinkVoxelsMask (VoxelBitSet &mask, const VolumeIndexer &indexer, int shrinkage=1) |
| shrinks VoxelBitSet with given number of steps | |
| Expected< void > | decompressZip (const std::filesystem::path &zipFile, const std::filesystem::path &targetFolder, const char *password=nullptr) |
| decompresses given zip-file into given folder | |
| 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 | |
| Expected< void > | compressZip (const std::filesystem::path &zipFile, const std::filesystem::path &sourceFolder, const CompressZipSettings &settings={}) |
| compresses given folder in given zip-file | |
| 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) |
| overload toString functoion to throw exception from custom Expected::error type | |
| template<typename T> | |
| decltype(auto) | expectedValueOrThrow (T &&e) |
| Like e.value(), but throws using throwExceptionFromExpected (which is better, because it allows Python to see the proper error message), and also supports T == void. | |
| 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...)) |
| Expected< Mesh > | alignTextToMesh (const Mesh &mesh, const TextMeshAlignParams ¶ms) |
| Creates symbol mesh and aligns it to given surface. | |
| Expected< Mesh > | bendTextAlongCurve (const CurveFunc &curve, const BendTextAlongCurveParams ¶ms) |
| Expected< Mesh > | bendTextAlongCurve (const CurvePoints &curve, const BendTextAlongCurveParams ¶ms) |
| Creates symbol mesh and deforms it along given curve. | |
| Expected< Mesh > | bendTextAlongSurfacePath (const Mesh &mesh, const GeodesicPath &path, const BendTextAlongCurveParams ¶ms) |
| Creates symbol mesh and deforms it along given surface path: start->path->end. | |
| Expected< Mesh > | bendTextAlongSurfacePath (const Mesh &mesh, const SurfacePath &path, const BendTextAlongCurveParams ¶ms) |
| Creates symbol mesh and deforms it along given surface path. | |
| Expected< Contours2f > | createSymbolContours (const SymbolMeshParams ¶ms) |
| converts text string into set of contours | |
| Expected< Mesh > | createSymbolsMesh (const SymbolMeshParams ¶ms) |
| converts text string into Z-facing symbol mesh | |
| void | reserveKeyEvent (ImGuiKey key) |
| call if you want ImGui to take event if this key is pressed (to prevent scene reaction on key press) | |
| 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. | |
| void | FilterHistoryByCondition (HistoryStackFilter filteringCondition, bool deepFiltering=true) |
| Expected< std::string > | GetClipboardText () |
| returns data in clipboard | |
| Expected< void > | SetClipboardText (const std::string &text) |
| sets data in clipboard | |
| void | createShader (const std::string &shader_name, const std::string &vert_source, const std::string &frag_source, GLuint &prog_id, const DisabledWarnings &suppressedWarns={}) |
| This function creates shader and logs output. | |
| void | destroyShader (GLuint id) |
| Destroys shader program. | |
| std::unique_ptr< IDragDropHandler > | getDragDropHandler (GLFWwindow *window) |
| std::filesystem::path | openFileDialog (const FileParameters ¶ms={}) |
| void | openFileDialogAsync (std::function< void(const std::filesystem::path &)> callback, const FileParameters ¶ms={}) |
| std::vector< std::filesystem::path > | openFilesDialog (const FileParameters ¶ms={}) |
| void | openFilesDialogAsync (std::function< void(const std::vector< std::filesystem::path > &)> callback, const FileParameters ¶ms={}) |
| std::filesystem::path | openFolderDialog (std::filesystem::path baseFolder={}) |
| void | openFolderDialogAsync (std::function< void(const std::filesystem::path &)> callback, std::filesystem::path baseFolder={}) |
| std::vector< std::filesystem::path > | openFoldersDialog (std::filesystem::path baseFolder={}) |
| std::filesystem::path | saveFileDialog (const FileParameters ¶ms={}) |
| returns empty path on cancel | |
| void | saveFileDialogAsync (std::function< void(const std::filesystem::path &)> callback, const FileParameters ¶ms={}) |
| Json::Value | GetSystemInfoJson () |
| Accumulate system information in Json value. | |
| void | setTextureWrapType (WrapType wrapType, GLenum type=GL_TEXTURE_2D) |
| void | setTextureFilterType (FilterType filterType, GLenum type=GL_TEXTURE_2D) |
| std::string | getLinesVertexShader () |
| std::string | getLinesFragmentShader (ShaderTransparencyMode mode) |
| std::string | getLinesJointVertexShader () |
| std::string | getLinesJointFragmentShader () |
| std::string | getLinesPickerVertexShader () |
| std::string | getLinesJointPickerVertexShader () |
| std::string | getMeshVerticesShader () |
| std::string | getMeshFragmentShader (bool gl4, ShaderTransparencyMode mode, bool msaaEnabled) |
| std::string | getMeshFragmentShaderArgumetsBlock () |
| std::string | getMeshFragmentShaderColoringBlock () |
| std::string | getMouseModeString (MouseMode mode) |
| void | excludeLoneEdgesWithHistory (const std::shared_ptr< ObjectMesh > &objMesh) |
| void | excludeAllEdgesWithHistory (const std::shared_ptr< ObjectMesh > &objMesh) |
| void | mapEdgesWithHistory (const std::shared_ptr< ObjectMesh > &objMesh, const WholeEdgeMap &emap) |
| void | mapEdgesWithHistory (const std::shared_ptr< ObjectMesh > &objMesh, const WholeEdgeHashMap &emap) |
| void | mapEdgesWithHistory (const std::shared_ptr< ObjectMesh > &objMesh, const UndirectedEdgeBMap &emap) |
| void | packPointsWithHistory (const std::shared_ptr< ObjectPoints > &objPoints, Reorder reoder) |
| void | packPointsWithHistory (const std::shared_ptr< ObjectPoints > &objPoints, Reorder reoder, VertBitSet newValidVerts) |
| Expected< LoadedObject > | makeObjectTreeFromFolder (const std::filesystem::path &folder, bool dicomOnly, const ProgressCallback &callback={}) |
| load all supported files from given folder in new container object | |
| Expected< LoadedObject > | makeObjectTreeFromZip (const std::filesystem::path &zipPath, const ProgressCallback &callback={}) |
| load all supported files from given zip-archive in new container object | |
| 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) |
| 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) |
| std::string | getPointsVertexShader () |
| 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...)) |
| 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) |
| void | bindDepthPeelingTextures (GLuint shaderId, const TransparencyMode &tMode, GLenum startGLTextureIndex) |
| helper function to bind depth and color buffers to given shader program | |
| void | objectPreRenderSetup (const TransparencyMode &tMode, RenderModelPassMask desiredPass, bool deptTesting) |
| void | objectPostRenderSetup (const TransparencyMode &tMode, RenderModelPassMask desiredPass, bool deptTesting) |
| Vector2i | calcTextureRes (int bufferSize, int maxTextWidth) |
| calc texture resolution, to fit MAX_TEXTURE_SIZE, and have minimal empty pixels | |
| void | renderImGui (const Vector2i &resolution, const std::function< void()> &configureFunc, const std::function< void()> &drawFunc) |
| const Vector2f & | GetAvailableLineWidthRange () |
| Returns the range of line widths that are allowed by current renderer. | |
| Image | renderToImage (const Vector2i &resolution, const std::optional< Color > &backgroundColor, const std::function< void(FramebufferData *framebuffer)> &drawFunc) |
| RibbonConfig | createRibbonConfigFromJson (const Json::Value &root) |
| parse given json and setup RibbonConfig from it | |
| void | applyRibbonConfig (const RibbonConfig &config) |
| apply given config to the application | |
| void | pushNotification (const RibbonNotification ¬ification) |
| Checks if RibbonMenu is available, if it is - forwards notification to RibbonNotifier. Otherwise - calls showModal() function. | |
| Expected< void > | saveObjectToFile (const Object &obj, const std::filesystem::path &filename, const SaveObjectSettings &settings={}) |
| save visual object (mesh, lines, points or voxels) to file | |
| std::vector< FlatTree > | getFlatSubtrees (const std::vector< std::shared_ptr< Object > > &objs) |
| void | mergeSubtree (TypedFlatTree subtree) |
| merge objects of same type in the object tree | |
| void | mergeSubtree (std::shared_ptr< Object > rootObj) |
| bool | sceneReorderWithUndo (const SceneReorder &task) |
| 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 | SelectCurvaturePreference (PathPreference *pp) |
| BitSet | calculateSelectedPixelsInsidePolygon (const Contour2f &screenPoints) |
| BitSet | calculateSelectedPixelsNearPolygon (const Contour2f &screenPoints, float radiusPix) |
| FaceBitSet | findIncidentFaces (const Viewport &viewport, const BitSet &pixBs, const ObjectMesh &obj, bool onlyVisible=false, bool includeBackfaces=true, const std::vector< ObjectMesh * > *occludingMeshes=nullptr) |
| void | appendGPUVisibleFaces (const Viewport &viewport, const BitSet &pixBs, const std::vector< std::shared_ptr< ObjectMesh > > &objects, std::vector< FaceBitSet > &visibleFaces, bool includeBackfaces=true) |
| these meshes can influence face visibility in onlyVisible=true mode | |
| VertBitSet | findVertsInViewportArea (const Viewport &viewport, const BitSet &bsVec, const ObjectPoints &obj, bool includeBackfaces=true, bool onlyVisible=false) |
| std::string | getPickerFragmentShader (bool points, bool cornerMode=true) |
| std::string | getFragmentShaderClippingBlock () |
| std::string | getFragmentShaderPointSizeBlock () |
| std::string | getFragmentShaderOnlyOddBlock (bool sampleMask) |
| std::string | getFragmentShaderHeaderBlock (bool gl4, bool alphaSort) |
| std::string | getFragmentShaderEndBlock (ShaderTransparencyMode transparencyMode) |
| std::string | getShaderMainBeginBlock (bool addDepthPeelSamplers) |
| 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) |
| Modifies the default parameters for converting a specific unit type to a string. | |
| std::string_view | toString (DegreesMode mode) |
| template<UnitEnum E, detail::Units::Scalar T> | |
| std::string | valueToString (T value, const UnitToStringParams< E > ¶ms=getDefaultUnitParams< E >()) |
| template<detail::Units::Scalar T> | |
| std::string | valueToString (T value, const VarUnitToStringParams ¶ms) |
| This overload lets you select the unit kind at runtime. | |
| template<detail::Units::Scalar T> | |
| int | guessPrecision (T value) |
| Same but for vectors. | |
| template<detail::Units::Scalar T> | |
| 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) |
| Same but for vectors. | |
| 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> | |
| std::string | valueToImGuiFormatString (T value, const UnitToStringParams< E > ¶ms=getDefaultUnitParams< E >()) |
| template<detail::Units::Scalar T> | |
| std::string | valueToImGuiFormatString (T value, const VarUnitToStringParams ¶ms) |
| This overload lets you select the unit kind at runtime. | |
| int | launchDefaultViewer (const Viewer::LaunchParams ¶ms, const ViewerSetup &setup) |
| starts default viewer with given params and setup | |
| Viewer & | getViewerInstance () |
| returns global instance of Viewer class | |
| 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) |
| 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: . | |
| 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. | |
| VertUVCoords | makeCornerControllerUVCoords (float cornerRatio=0.2f) |
| Creates UV coordinates for makeCornerControllerMesh output mesh for texture like: "Right"" Left " " Top ""Bottom" "Front"" Back ". | |
| Vector< MeshTexture, TextureId > | loadCornerControllerTextures () |
| Loads 3 textures for corner controller: default, side hovered, corner hovered. | |
| const TexturePerFace & | getCornerControllerTexureMap () |
| RegionId | getCornerControllerRegionByFace (FaceId face) |
| returns region id of corner controller by its face | |
| TexturePerFace | getCornerControllerHoveredTextureMap (RegionId rId) |
| returns textures map with region faces hovered | |
| 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) |
| void | deserializeFromJson (const Json::Value &root, VisualObjectTagManager &manager) |
| void | serializeToJson (const VisualObjectTagManager &manager, Json::Value &root) |
| std::string | getTrivialVertexShader () |
| simple quad vertex shader | |
| std::string | getVolumeFragmentShader () |
| shader with raytracing over volume | |
| std::string | getVolumePickerFragmentShader () |
| shader with raytracing over volume | |
| Expected< Json::Value > | parseResponse (const Json::Value &response) |
| returns json value of text or error if response failed | |
| OriginAndDimensions | calcOriginAndDimensions (const Box3f &box, float voxelSize) |
| computes origin and dimensions of voxel-grid to cover given 3D box with given spacing (voxelSize) | |
| float | voxelizeAndComputeVolume (const std::vector< std::shared_ptr< Mesh > > &meshes, const AffineXf3f &xf, const Vector3f &voxelSize) |
| size_t | heapBytes (const FloatGrid &grid) |
| returns the amount of heap memory occupied by grid | |
| FloatGrid | resampled (const FloatGrid &grid, float voxelScale, ProgressCallback cb={}) |
| resample this grid to fit voxelScale | |
| FloatGrid | resampled (const FloatGrid &grid, const Vector3f &voxelScale, ProgressCallback cb={}) |
| resample this grid to fit voxelScale | |
| FloatGrid | cropped (const FloatGrid &grid, const Box3i &box, ProgressCallback cb={}) |
| returns cropped grid | |
| size_t | countVoxelsWithValuePred (const FloatGrid &grid, const std::function< bool(float)> &pred) |
| returns number of velxes in the grid with pred(value) == true | |
| size_t | countVoxelsWithValueLess (const FloatGrid &grid, float value) |
| returns number of voxels in the grid with value less than given | |
| size_t | countVoxelsWithValueGreater (const FloatGrid &grid, float value) |
| returns number of voxels in the grid with value greater than given | |
| void | gaussianFilter (FloatGrid &grid, int width, int iters, ProgressCallback cb={}) |
| returns grid with gaussian filter applied | |
| FloatGrid | gaussianFiltered (const FloatGrid &grid, int width, int iters, ProgressCallback cb={}) |
| float | getValue (const FloatGrid &grid, const Vector3i &p) |
| returns the value at given voxel | |
| void | setValue (FloatGrid &grid, const Vector3i &p, float value) |
| void | setValue (FloatGrid &grid, const VoxelBitSet ®ion, float value) |
| Box3i | findActiveBounds (const FloatGrid &grid) |
| void | setValues (FloatGrid &grid, const VoxelBitSet ®ion, const std::vector< float > &values) |
| void | setLevelSetType (FloatGrid &grid) |
| sets type of this grid as LEVEL SET (for normal flipping) | |
| FloatGrid | operator+= (FloatGrid &a, FloatGrid &&b) |
| FloatGrid | operator-= (FloatGrid &a, FloatGrid &&b) |
| FloatGrid | operator*= (FloatGrid &a, FloatGrid &&b) |
| FloatGrid | operator+ (const FloatGrid &a, const FloatGrid &b) |
| FloatGrid | operator- (const FloatGrid &a, const FloatGrid &b) |
| FloatGrid | operator* (const FloatGrid &a, const FloatGrid &b) |
| Expected< Mesh > | marchingCubes (const SimpleVolume &volume, const MarchingCubesParams ¶ms={}) |
| makes Mesh from SimpleVolume with given settings using Marching Cubes algorithm | |
| Expected< TriMesh > | marchingCubesAsTriMesh (const SimpleVolume &volume, const MarchingCubesParams ¶ms={}) |
| Expected< Mesh > | marchingCubes (const SimpleVolumeMinMax &volume, const MarchingCubesParams ¶ms={}) |
| makes Mesh from SimpleVolumeMinMax with given settings using Marching Cubes algorithm | |
| Expected< TriMesh > | marchingCubesAsTriMesh (const SimpleVolumeMinMax &volume, const MarchingCubesParams ¶ms={}) |
| Expected< Mesh > | marchingCubes (const VdbVolume &volume, const MarchingCubesParams ¶ms={}) |
| makes Mesh from VdbVolume with given settings using Marching Cubes algorithm | |
| Expected< TriMesh > | marchingCubesAsTriMesh (const VdbVolume &volume, const MarchingCubesParams ¶ms={}) |
| Expected< Mesh > | marchingCubes (const FunctionVolume &volume, const MarchingCubesParams ¶ms={}) |
| makes Mesh from FunctionVolume with given settings using Marching Cubes algorithm | |
| Expected< TriMesh > | marchingCubesAsTriMesh (const FunctionVolume &volume, const MarchingCubesParams ¶ms={}) |
| Expected< Mesh > | marchingCubes (const SimpleBinaryVolume &volume, const MarchingCubesParams ¶ms={}) |
| makes Mesh from SimpleBinaryVolume with given settings using Marching Cubes algorithm | |
| Expected< TriMesh > | marchingCubesAsTriMesh (const SimpleBinaryVolume &volume, const MarchingCubesParams ¶ms={}) |
| Expected< SimpleVolumeMinMax > | meshToDistanceVolume (const MeshPart &mp, const MeshToDistanceVolumeParams ¶ms) |
| makes SimpleVolume filled with (signed or unsigned) distances from Mesh with given settings | |
| FunctionVolume | meshToDistanceFunctionVolume (const MeshPart &mp, const MeshToDistanceVolumeParams ¶ms) |
| makes FunctionVolume representing (signed or unsigned) distances from Mesh with given settings | |
| Expected< SimpleBinaryVolume > | makeCloseToMeshVolume (const MeshPart &mp, const CloseToMeshVolumeParams ¶ms) |
| makes a binary volume with close-to-surface predicate values according to the given parameters | |
| Expected< SimpleVolumeMinMax > | meshRegionToIndicatorVolume (const Mesh &mesh, const FaceBitSet ®ion, float offset, const DistanceVolumeParams ¶ms) |
| Expected< std::array< SimpleVolumeMinMax, 3 > > | meshToDirectionVolume (const MeshToDirectionVolumeParams ¶ms) |
| const std::string & | defaultSerializeVoxelsFormat () |
| void | setDefaultSerializeVoxelsFormat (std::string newFormat) |
| float | suggestVoxelSize (const MeshPart &mp, float approxNumVoxels) |
| computes size of a cubical voxel to get approximately given number of voxels during rasterization | |
| Expected< Mesh > | offsetMesh (const MeshPart &mp, float offset, const OffsetParameters ¶ms={}) |
| Expected< Mesh > | doubleOffsetMesh (const MeshPart &mp, float offsetA, float offsetB, const OffsetParameters ¶ms={}) |
| Expected< Mesh > | mcOffsetMesh (const MeshPart &mp, float offset, const OffsetParameters ¶ms={}, Vector< VoxelId, FaceId > *outMap=nullptr) |
| Expected< Mesh > | mcShellMeshRegion (const Mesh &mesh, const FaceBitSet ®ion, float offset, const BaseShellParameters ¶ms, Vector< VoxelId, FaceId > *outMap=nullptr) |
| Expected< Mesh > | sharpOffsetMesh (const MeshPart &mp, float offset, const SharpOffsetParameters ¶ms={}) |
| Expected< Mesh > | generalOffsetMesh (const MeshPart &mp, float offset, const GeneralOffsetParameters ¶ms) |
| Expected< Mesh > | thickenMesh (const Mesh &mesh, float offset, const GeneralOffsetParameters ¶ms={}, const PartMapping &map={}) |
| mapping between original mesh and thicken result | |
| Expected< Mesh > | offsetOneDirection (const MeshPart &mp, float offset, const GeneralOffsetParameters ¶ms={}) |
| Expected< Mesh > | offsetPolyline (const Polyline3 &polyline, float offset, const OffsetParameters ¶ms={}) |
| void | translateToZero (openvdb::FloatGrid &grid) |
| template<typename GridT> | |
| RangeSize | calculateRangeSize (const GridT &grid) |
| Expected< Mesh > | partialOffsetMesh (const MeshPart &mp, float offset, const GeneralOffsetParameters ¶ms={}) |
| Expected< SimpleVolume > | pointsToDistanceVolume (const PointCloud &cloud, const PointsToDistanceVolumeParams ¶ms) |
| makes SimpleVolume filled with signed distances to points with normals | |
| FunctionVolume | pointsToDistanceFunctionVolume (const PointCloud &cloud, const PointsToDistanceVolumeParams ¶ms) |
| makes FunctionVolume representing signed distances to points with normals | |
| Expected< VertColors > | calcAvgColors (const PointCloud &cloud, const VertColors &colors, const VertCoords &tgtPoints, const VertBitSet &tgtVerts, float sigma, const ProgressCallback &cb={}) |
| Expected< Mesh > | pointsToMeshFusion (const PointCloud &cloud, const PointsToMeshParameters ¶ms) |
| Expected< FloatGrid > | polylineToDistanceField (const Polyline3 &polyline, const PolylineToDistanceVolumeParams ¶ms) |
| convert polyline to voxels distance field | |
| Expected< VdbVolume > | polylineToVdbVolume (const Polyline3 &polyline, const PolylineToDistanceVolumeParams ¶ms) |
| convert polyline to VDB volume | |
| Expected< SimpleVolume > | polylineToSimpleVolume (const Polyline3 &polyline, const PolylineToVolumeParams ¶ms) |
| convert polyline to simple volume | |
| Expected< FunctionVolume > | polylineToFunctionVolume (const Polyline3 &polyline, const PolylineToVolumeParams ¶ms) |
| convert polyline to function volume | |
| Expected< Mesh > | rebuildMesh (const MeshPart &mp, const RebuildMeshSettings &settings) |
| 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. | |
| void | sortScansByOrder (std::vector< std::filesystem::path > &scans, std::vector< SliceInfo > &zOrder) |
| Sort scan files in given vector by given slice information. | |
| void | putScanFileNameInZ (const std::vector< std::filesystem::path > &scans, std::vector< SliceInfo > &zOrder) |
| Read layer heights from given scan file names. | |
| void | sortScanFilesByName (std::vector< std::filesystem::path > &scans) |
| Sort scan files in given vector by names (respect numbers in it) | |
| Box3f | computeWorkArea (const Polyline3 &toolpath, const MeshPart &tool) |
| Compute bounding box for swept volume for given tool and toolpath. | |
| Box3i | computeGridBox (const Box3f &workArea, float voxelSize) |
| Compute required voxel volume's dimensions for given work area. | |
| Expected< Mesh > | computeSweptVolumeWithMeshMovement (const ComputeSweptVolumeParameters ¶ms) |
| Expected< Mesh > | computeSweptVolumeWithDistanceVolume (const ComputeSweptVolumeParameters ¶ms) |
| Expected< Mesh > | computeSweptVolumeWithCustomToolDistance (IComputeToolDistance &comp, const ComputeSweptVolumeParameters ¶ms) |
| Expected< std::array< SimpleVolumeMinMax, 3 > > | teethMaskToDirectionVolume (const VdbVolume &volume, const std::vector< int > &additionalIds={}) |
| A shortcut for TeethMaskToDirectionVolumeConvertor::create and TeethMaskToDirectionVolumeConvertor::convertAll. | |
| Expected< ToolPathResult > | constantZToolPath (const MeshPart &mp, const ToolPathParams ¶ms) |
| Expected< ToolPathResult > | lacingToolPath (const MeshPart &mp, const ToolPathParams ¶ms, Axis cutDirection) |
| Slices are built along the axis defined by cutDirection argument (can be Axis::X or Axis::Y) | |
| Expected< ToolPathResult > | constantCuspToolPath (const MeshPart &mp, const ConstantCuspParams ¶ms) |
| std::shared_ptr< ObjectGcode > | exportToolPathToGCode (const std::vector< GCommand > &commands) |
| generates G-Code for milling tool | |
| Expected< void > | interpolateLines (std::vector< GCommand > &commands, const LineInterpolationParams ¶ms, Axis axis) |
| interpolates several points lying on the same straight line with one move | |
| Expected< void > | interpolateArcs (std::vector< GCommand > &commands, const ArcInterpolationParams ¶ms, Axis axis) |
| interpolates given path with arcs | |
| FaceBitSet | smoothSelection (Mesh &mesh, const FaceBitSet ®ion, float expandOffset, float shrinkOffset) |
| FloatGrid | meshToLevelSet (const MeshPart &mp, const AffineXf3f &xf, const Vector3f &voxelSize, float surfaceOffset=3, ProgressCallback cb={}) |
| FloatGrid | meshToDistanceField (const MeshPart &mp, const AffineXf3f &xf, const Vector3f &voxelSize, float surfaceOffset=3, ProgressCallback cb={}) |
| void | evalGridMinMax (const FloatGrid &grid, float &min, float &max) |
| eval min max value from FloatGrid | |
| Expected< VdbVolume > | meshToDistanceVdbVolume (const MeshPart &mp, const MeshToVolumeParams ¶ms={}) |
| Expected< VdbVolume > | meshToVolume (const MeshPart &mp, const MeshToVolumeParams ¶ms={}) |
| VdbVolume | floatGridToVdbVolume (FloatGrid grid) |
| fills VdbVolume data from FloatGrid (does not fill voxels size, cause we expect it outside) | |
| FloatGrid | simpleVolumeToDenseGrid (const SimpleVolume &simpleVolume, float background=0.0f, ProgressCallback cb={}) |
| VdbVolume | simpleVolumeToVdbVolume (const SimpleVolumeMinMax &simpleVolume, ProgressCallback cb={}) |
| set the simpleVolume.min as the background value | |
| VdbVolume | functionVolumeToVdbVolume (const FunctionVolume &functoinVolume, ProgressCallback cb={}) |
| template<typename AccessorOrGrid> | |
| 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). | |
| Expected< SimpleVolumeMinMax > | vdbVolumeToSimpleVolume (const VdbVolume &vdbVolume, const Box3i &activeBox=Box3i(), ProgressCallback cb={}) |
| Expected< SimpleVolumeMinMax > | vdbVolumeToSimpleVolumeNorm (const VdbVolume &vdbVolume, const Box3i &activeBox=Box3i(), std::optional< MinMaxf > sourceScale={}, ProgressCallback cb={}) |
| Expected< SimpleVolumeMinMaxU16 > | vdbVolumeToSimpleVolumeU16 (const VdbVolume &vdbVolume, const Box3i &activeBox=Box3i(), std::optional< MinMaxf > sourceScale={}, ProgressCallback cb={}) |
| Expected< Mesh > | gridToMesh (const FloatGrid &grid, const GridToMeshSettings &settings) |
| converts OpenVDB Grid into mesh using Dual Marching Cubes algorithm | |
| Expected< Mesh > | gridToMesh (FloatGrid &&grid, const GridToMeshSettings &settings) |
| 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 | |
| Expected< Mesh > | doubleOffsetVdb (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 | |
| Expected< MR::Mesh > | meshFromVoxelsMask (const VdbVolume &volume, const VoxelBitSet &mask) |
| Creates mesh from voxels mask. | |
| Expected< MR::Mesh > | segmentVolume (const VdbVolume &volume, const std::vector< std::pair< Vector3f, Vector3f > > &pairs, const VolumeSegmentationParameters ¶ms=VolumeSegmentationParameters()) |
| Simple segment volume. | |
| Expected< std::vector< Mesh > > | segmentVoxelMaskToInstances (const VdbVolume &mask, size_t minSize=100, ProgressCallback cb={}) |
| VdbVolume | voxelFilter (const VdbVolume &volume, VoxelFilterType type, int width) |
| Expected< VoxelBitSet > | segmentVolumeByGraphCut (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. | |
| VoxelsMetric | voxelsExponentMetric (const VdbVolume &voxels, const VoxelMetricParameters ¶meters, float modifier=-1.0f) |
| e^(modifier*(dens1+dens2)) | |
| VoxelsMetric | voxelsSumDiffsMetric (const VdbVolume &voxels, const VoxelMetricParameters ¶meters) |
| sum of dense differences with start and stop voxels | |
| 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 | |
| TransformVdbVolumeResult | transformVdbVolume (const VdbVolume &volume, const AffineXf3f &xf, bool fixBox=false, const Box3f &box={}) |
| 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< Mesh > | 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 | |
| MRVOXELS_CLASS | VoxelsVolumeMinMax< Vector< float, VoxelId > > (SimpleVolumeMinMaxU16, VoxelsVolumeMinMax< Vector< uint16_t, VoxelId > >)(VdbVolume |
| MRVOXELS_CLASS | VoxelsVolume< VoxelValueGetter< float > > (FunctionVolumeU8, VoxelsVolume< VoxelValueGetter< uint8_t > >)(SimpleVolume |
| MRVOXELS_CLASS | VoxelsVolume< Vector< float, VoxelId > > (SimpleVolumeU16, VoxelsVolume< Vector< uint16_t, VoxelId > >)(SimpleBinaryVolume |
| Expected< std::vector< std::shared_ptr< ObjectVoxels > > > | makeObjectVoxelsFromFile (const std::filesystem::path &file, ProgressCallback callback={}) |
| loads voxels from given file in new object | |
| Expected< LoadedObjects > | makeObjectFromVoxelsFile (const std::filesystem::path &file, const ProgressCallback &callback={}) |
| Expected< void > | saveObjectVoxelsToFile (const Object &object, const std::filesystem::path &path, const ObjectSave::Settings &settings) |
| Expected< SimpleVolumeMinMax > | functionVolumeToSimpleVolume (const FunctionVolume &volume, const ProgressCallback &callback={}) |
| converts function volume into simple volume | |
| bool | fromSameTriangle (const MeshTopology &topology, EdgePoint &a, EdgePoint &b) |
| bool | fromSameTriangle (const MeshTopology &topology, EdgePoint &&a, EdgePoint &&b) |
| template<typename V> | |
| std::pair< QuadraticForm< V >, V > | sum (const QuadraticForm< V > &q0, const V &x0, const QuadraticForm< V > &q1, const V &x1, bool minAmong01=false) |
| if true then the minimum is selected only between points x0 and x1 | |
| template<typename V> | |
| QuadraticForm< V > | sumAt (const QuadraticForm< V > &q0, const V &x0, const QuadraticForm< V > &q1, const V &x1, const V &pos) |
| template<typename From> | |
| Contour2f | convertContourTo2f (const From &from) |
| Instantiate the templates when generating bindings. | |
| 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) |
| EdgeMetric | identityMetric () |
| metric returning 1 for every edge | |
| EdgeMetric | edgeLengthMetric (const Mesh &mesh) |
| EdgeMetric | edgeLengthMetric (const MeshTopology &topology, const VertCoords &points) |
| EdgeMetric | discreteAbsMeanCurvatureMetric (const Mesh &mesh) |
| EdgeMetric | discreteAbsMeanCurvatureMetric (const MeshTopology &topology, const VertCoords &points) |
| EdgeMetric | discreteMinusAbsMeanCurvatureMetric (const Mesh &mesh) |
| EdgeMetric | discreteMinusAbsMeanCurvatureMetric (const MeshTopology &topology, const VertCoords &points) |
| EdgeMetric | edgeCurvMetric (const Mesh &mesh, float angleSinFactor=2, float angleSinForBoundary=0) |
| EdgeMetric | edgeCurvMetric (const MeshTopology &topology, const VertCoords &points, float angleSinFactor=2, float angleSinForBoundary=0) |
| EdgeMetric | edgeAbsCurvMetric (const Mesh &mesh, float angleSinFactor=2, float angleSinForBoundary=0) |
| EdgeMetric | edgeAbsCurvMetric (const MeshTopology &topology, const VertCoords &points, float angleSinFactor=2, float angleSinForBoundary=0) |
| EdgeMetric | edgeTableSymMetric (const MeshTopology &topology, const EdgeMetric &metric) |
| bool | isEdgePath (const MeshTopology &topology, const std::vector< EdgeId > &edges) |
| returns true if every next edge starts where previous edge ends | |
| 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 | |
| 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 | |
| void | reverse (EdgePath &path) |
| void | reverse (std::vector< EdgePath > &paths) |
| reverse every path in the vector | |
| double | calcPathMetric (const EdgePath &path, EdgeMetric metric) |
| computes summed metric of all edges in the path | |
| double | calcPathLength (const EdgePath &path, const Mesh &mesh) |
| Vector3d | calcOrientedArea (const EdgeLoop &loop, const Mesh &mesh) |
| 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) |
| 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 | |
| EdgePath | buildShortestPath (const Mesh &mesh, VertId start, VertId finish, float maxPathLen=FLT_MAX) |
| EdgePath | buildShortestPathBiDir (const Mesh &mesh, VertId start, VertId finish, float maxPathLen=FLT_MAX) |
| EdgePath | buildShortestPathBiDir (const Mesh &mesh, const MeshTriPoint &start, const MeshTriPoint &finish, VertId *outPathStart=nullptr, VertId *outPathFinish=nullptr, float maxPathLen=FLT_MAX) |
| EdgePath | buildShortestPathAStar (const Mesh &mesh, VertId start, VertId finish, float maxPathLen=FLT_MAX) |
| EdgePath | buildShortestPathAStar (const Mesh &mesh, const MeshTriPoint &start, const MeshTriPoint &finish, VertId *outPathStart=nullptr, VertId *outPathFinish=nullptr, float maxPathLen=FLT_MAX) |
| 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 | |
| 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 | |
| EdgePath | buildSmallestMetricPathBiDir (const MeshTopology &topology, const EdgeMetric &metric, VertId start, VertId finish, float maxPathMetric=FLT_MAX) |
| 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) |
| 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 | |
| std::vector< VertId > | getVertexOrdering (const MeshTopology &topology, VertBitSet region) |
| returns all vertices from given region ordered in each connected component in breadth-first way | |
| std::vector< EdgeLoop > | extractClosedLoops (const MeshTopology &topology, EdgeBitSet &edges) |
| finds all closed loops from given edges and removes them from edges | |
| std::vector< EdgeLoop > | extractClosedLoops (const MeshTopology &topology, const std::vector< EdgeId > &inEdges, EdgeBitSet *outNotLoopEdges=nullptr) |
| EdgeLoop | extractLongestClosedLoop (const Mesh &mesh, const std::vector< EdgeId > &inEdges) |
| bool | dilateRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, FaceBitSet ®ion, float dilation, ProgressCallback callback={}) |
| expands the region (of faces or vertices) on given metric value. returns false if callback also returns false | |
| bool | dilateRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, VertBitSet ®ion, float dilation, ProgressCallback callback={}) |
| bool | dilateRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, UndirectedEdgeBitSet ®ion, float dilation, ProgressCallback callback={}) |
| bool | erodeRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, FaceBitSet ®ion, float dilation, ProgressCallback callback={}) |
| shrinks the region (of faces or vertices) on given metric value. returns false if callback also returns false | |
| bool | erodeRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, VertBitSet ®ion, float dilation, ProgressCallback callback={}) |
| bool | erodeRegionByMetric (const MeshTopology &topology, const EdgeMetric &metric, UndirectedEdgeBitSet ®ion, float dilation, ProgressCallback callback={}) |
| bool | dilateRegion (const Mesh &mesh, FaceBitSet ®ion, float dilation, ProgressCallback callback={}) |
| expands the region (of faces or vertices) on given value (in meters). returns false if callback also returns false | |
| bool | dilateRegion (const Mesh &mesh, VertBitSet ®ion, float dilation, ProgressCallback callback={}) |
| bool | dilateRegion (const Mesh &mesh, UndirectedEdgeBitSet ®ion, float dilation, ProgressCallback callback={}) |
| bool | dilateRegion (const MeshTopology &topology, const VertCoords &points, FaceBitSet ®ion, float dilation, ProgressCallback callback={}) |
| bool | dilateRegion (const MeshTopology &topology, const VertCoords &points, VertBitSet ®ion, float dilation, ProgressCallback callback={}) |
| bool | dilateRegion (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeBitSet ®ion, float dilation, ProgressCallback callback={}) |
| bool | erodeRegion (const Mesh &mesh, FaceBitSet ®ion, float dilation, ProgressCallback callback={}) |
| shrinks the region (of faces or vertices) on given value (in meters). returns false if callback also returns false | |
| bool | erodeRegion (const Mesh &mesh, VertBitSet ®ion, float dilation, ProgressCallback callback={}) |
| bool | erodeRegion (const Mesh &mesh, UndirectedEdgeBitSet ®ion, float dilation, ProgressCallback callback={}) |
| bool | erodeRegion (const MeshTopology &topology, const VertCoords &points, FaceBitSet ®ion, float dilation, ProgressCallback callback={}) |
| bool | erodeRegion (const MeshTopology &topology, const VertCoords &points, VertBitSet ®ion, float dilation, ProgressCallback callback={}) |
| bool | erodeRegion (const MeshTopology &topology, const VertCoords &points, UndirectedEdgeBitSet ®ion, float dilation, ProgressCallback callback={}) |
| 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 | |
| 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 | |
| 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 | |
| BooleanResult | boolean (const Mesh &meshA, const Mesh &meshB, BooleanOperation operation, const AffineXf3f *rigidB2A, BooleanResultMapper *mapper=nullptr, ProgressCallback cb={}) |
| Performs CSG operation on two meshes. | |
| BooleanResult | boolean (Mesh &&meshA, Mesh &&meshB, BooleanOperation operation, const AffineXf3f *rigidB2A, BooleanResultMapper *mapper=nullptr, ProgressCallback cb={}) |
| BooleanResult | boolean (const Mesh &meshA, const Mesh &meshB, BooleanOperation operation, const BooleanParameters ¶ms={}) |
| BooleanResult | boolean (Mesh &&meshA, Mesh &&meshB, BooleanOperation operation, const BooleanParameters ¶ms={}) |
| Expected< Mesh > | selfBoolean (const Mesh &mesh) |
| Contours3f | findIntersectionContours (const Mesh &meshA, const Mesh &meshB, const AffineXf3f *rigidB2A=nullptr) |
| returns intersection contours of given meshes | |
| 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. | |
| void | convertIntFloatAllVerts (Mesh &mesh, const CoordinateConverters &conv) |
| Expected< LoadedObjectMesh > | makeObjectMeshFromFile (const std::filesystem::path &file, const ProgressCallback &cb={}) |
| loads mesh from given file in new object | |
| 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) | |
| Expected< ObjectLines > | makeObjectLinesFromFile (const std::filesystem::path &file, ProgressCallback callback={}) |
| loads lines from given file in new object | |
| Expected< ObjectPoints > | makeObjectPointsFromFile (const std::filesystem::path &file, ProgressCallback callback={}) |
| loads points from given file in new object | |
| Expected< ObjectDistanceMap > | makeObjectDistanceMapFromFile (const std::filesystem::path &file, ProgressCallback callback={}) |
| loads distance map from given file in new object | |
| Expected< ObjectGcode > | makeObjectGcodeFromFile (const std::filesystem::path &file, ProgressCallback callback={}) |
| loads gcode from given file in new object | |
| Expected< LoadedObjects > | loadObjectFromFile (const std::filesystem::path &filename, const ProgressCallback &callback={}) |
| load all objects (or any type: mesh, lines, points, voxels or scene) from file | |
| bool | isSupportedFileInSubfolders (const std::filesystem::path &folder) |
| checks if there are any supported files folder and subfolders | |
| Expected< LoadedObject > | loadSceneFromAnySupportedFormat (const std::filesystem::path &path, const ProgressCallback &callback={}) |
| tries to load scene from every format listed in SceneFormatFilters | |
| LoadedObject | makeObjectMesh (std::string objName, LoadedMeshData data) |
| constructs new ObjectMesh from the given data | |
| Expected< LoadedObject > | deserializeObjectTree (const std::filesystem::path &path, const FolderCallback &postDecompress={}, const ProgressCallback &progressCb={}) |
| loads objects tree from given scene file (zip/mru) | |
| Expected< LoadedObject > | deserializeObjectTreeFromFolder (const std::filesystem::path &folder, const ProgressCallback &progressCb={}) |
| loads objects tree from given scene folder | |
| 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) |
| 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) |
| 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 |
Variables | |
| const IOFilters | AllFilter |
| constexpr float | cQuietNan = std::numeric_limits<float>::quiet_NaN() |
| constexpr int | cQuietNanBits = std::bit_cast< int >( cQuietNan ) |
| constexpr NoInit | noInit |
| template<typename T> | |
| struct MRMESH_CLASS | NoDefInit |
| class MRMESH_CLASS | EdgeTag |
| class MRMESH_CLASS | UndirectedEdgeTag |
| class MRMESH_CLASS | FaceTag |
| class MRMESH_CLASS | VertTag |
| class MRMESH_CLASS | PixelTag |
| class MRMESH_CLASS | VoxelTag |
| class MRMESH_CLASS | RegionTag |
| class MRMESH_CLASS | NodeTag |
| class MRMESH_CLASS | ObjTag |
| class MRMESH_CLASS | TextureTag |
| class MRMESH_CLASS | GraphVertTag |
| class MRMESH_CLASS | GraphEdgeTag |
| template<> | |
| class MRMESH_CLASS Id< GraphEdgeTag > class MR::EdgeId | Id< EdgeTag > |
| template<> | |
| class MR::VoxelId | Id< VoxelTag > |
| class MRMESH_CLASS | I = size_t> class MRMESH_CLASS Buffer |
| class MRMESH_CLASS | BitSet |
| template<typename T> | |
| struct | |
| MRMESH_CLASS | Vector2 |
| MRMESH_CLASS | Vector2b |
| MRMESH_CLASS | Vector3 |
| MRMESH_CLASS | Vector3b |
| Vector4 | |
| Vector4b | |
| Matrix2 | |
| Matrix2b | |
| Matrix3 | |
| Matrix3b | |
| Matrix4 | |
| Matrix4b | |
| SymMatrix2 | |
| SymMatrix2b | |
| SymMatrix3 | |
| SymMatrix3b | |
| SymMatrix4 | |
| SymMatrix4b | |
| AffineXf | |
| AffineXf2f | |
| RigidXf3 | |
| RigidXf3f | |
| RigidScaleXf3 | |
| RigidScaleXf3f | |
| Sphere | |
| Sphere2f | |
| Line | |
| Line2f | |
| LineSegm | |
| LineSegm2f | |
| Parabola | |
| Parabolaf | |
| BestFitParabola | |
| BestFitParabolaf | |
| Cylinder3 | |
| Cylinder3f | |
| Cone3 | |
| Cone3f | |
| Plane3 | |
| Plane3f | |
| Box | |
| Box1i | |
| QuadraticForm | |
| QuadraticForm2f | |
| Quaternion | |
| Quaternionf | |
| SegmPoint | |
| SegmPointf | |
| TriPoint | |
| TriPointf | |
| struct MRMESH_CLASS | Dipole |
| struct MRMESH_CLASS | Hash = phmap::priv::hash_default_hash<T> |
| struct MRMESH_CLASS | Eq |
| class MRMESH_CLASS | MeshTopology |
| struct MRMESH_CLASS | Mesh |
| struct MRMESH_CLASS | EdgeLengthMesh |
| class MRMESH_CLASS | MeshOrPoints |
| struct MRMESH_CLASS | PointCloud |
| struct MRMESH_CLASS | PointCloudPart |
| class MRMESH_CLASS | AABBTree |
| class MRMESH_CLASS | AABBTreePoints |
| class MRMESH_CLASS | AABBTreeObjects |
| struct MRMESH_CLASS | CloudPartMapping |
| struct MRMESH_CLASS | PartMapping |
| Polyline | |
| Polyline2 | |
| AABBTreePolyline | |
| AABBTreePolyline2 | |
| PolylineProjectionWithOffsetResult | |
| Polyline2ProjectionWithOffsetResult | |
| class MRMESH_CLASS | ChangeSceneAction |
| template<typename...> | |
| constexpr bool | dependent_false = false |
| const double | BadTriangulationMetric |
| constexpr CmpOld | cmpOld |
| constexpr SetNew | setNew |
| Signal< void(const std::string &)> | TelemetrySignal |
| activate this signal if you want to add some string in telemetry | |
| constexpr Vector3i | neiPosDelta [OutEdgeCount] |
| DemoPlugin | DemoPluginInstance |
| constexpr float | cGradientButtonFramePadding = 7.5f |
| constexpr float | cTabYOffset = 4.0f |
| constexpr float | cTabsInterval = 8.0f |
| constexpr float | cTabFrameRounding = 5.0f |
| constexpr float | cTabMinimumWidth = 68.0f |
| constexpr float | cTabHeight = 28.0f |
| constexpr float | cTabLabelMinPadding = 12.0f |
| constexpr float | cTopPanelScrollStep = 50.0f |
| constexpr float | cTopPanelScrollBtnSize = 20.0f |
| constexpr float | cTopPanelAditionalButtonSize = cTabHeight - cTabYOffset |
| constexpr float | cSeparateBlocksSpacing = 12.0f |
| constexpr float | cSeparatorIndentMultiplier = 0.67f |
| constexpr float | cRibbonItemInterval = 4.0f |
| constexpr float | cRibbonItemMinWidth = 86.0f |
| constexpr float | cRibbonButtonWindowPaddingX = 6.0f |
| constexpr float | cRibbonButtonWindowPaddingY = 4.0f |
| constexpr float | cCheckboxPadding = 2.0f |
| constexpr float | cButtonPadding = 8.0f |
| constexpr float | cInputPadding = 9.0f |
| constexpr float | cDefaultItemSpacing = 8.0f |
| constexpr float | cDefaultInnerSpacing = 8.0f |
| constexpr float | cDefaultWindowPaddingX = 8.0f |
| constexpr float | cDefaultWindowPaddingY = 12.0f |
| constexpr float | cItemInfoIndent = 16.0f |
| constexpr float | cSmallItemDropSizeModifier = 0.5f |
| constexpr float | cHeaderQuickAccessFrameRounding = 3.0f |
| constexpr float | cHeaderQuickAccessXSpacing = 12.0f |
| constexpr float | cHeaderQuickAccessIconSize = 14.0f |
| constexpr float | cHeaderQuickAccessFrameSize = 24.0f |
| constexpr float | cMiddleIconSize = 15.0f |
| constexpr float | cSmallIconSize = 10.0f |
| constexpr float | cQuickAccessBarHeight = 40.0f |
| constexpr float | cScrollBarSize = 10.0f |
| constexpr float | cBigIconSize = 20.0f |
| constexpr int | cSmallFontSize = 11 |
| constexpr int | cMiddleFontSize = 12 |
| constexpr int | cDefaultFontSize = 13 |
| constexpr int | cBigFontSize = 15 |
| constexpr int | cHeadlineFontSize = 20 |
| constexpr float | cRadioButtonSize = 20.0f |
| constexpr float | cModalWindowWidth = 368.0f |
| constexpr float | cModalWindowPaddingX = 28.0f |
| constexpr float | cModalWindowPaddingY = 20.0f |
| constexpr float | cModalButtonWidth = 104.0f |
| const float | cRadioInnerSpacingX = 12.f |
| constexpr int | sDefaultGroupState = 0 |
| const std::string | cDefaultMultiViewportKey = "defaultMultiViewport" |
| key for getting/satting default state for multi viewport from the config | |
| class MRVIEWER_CLASS | WebRequest |
| struct MRVOXELS_CLASS | OpenVdbFloatGrid |
| MRVOXELS_CLASS | VoxelsVolumeMinMax |
| MRVOXELS_CLASS | SimpleVolumeMinMax |
| MRVOXELS_CLASS | VoxelsVolume |
| MRVOXELS_CLASS | FunctionVolume |
| using | ObjectMakerFunc = std::shared_ptr<Object>() |
| std::shared_ptr< Object > | createObject (const std::string &className) |
| the function to create new object instance by registered class name | |
| using | ConvertToIntVector2 = std::function<Vector2i( const Vector2f& )> |
| float-to-int coordinate converter | |
| using | ConvertToFloatVector2 = std::function<Vector2f( const Vector2i& )> |
| int-to-float coordinate converter | |
| bool | smaller (const PreciseVertCoord &l, const PreciseVertCoord &r) |
| bool | ccw (const Vector2i &a, const Vector2i &b) |
| bool | ccw (const Vector2i &a, const Vector2i &b, const Vector2i &c) |
| bool | ccw (const std::array< PreciseVertCoords2, 3 > &vs) |
| bool | ccw (const PreciseVertCoords2 *vs) |
| bool | smaller2 (const std::array< PreciseVertCoords2, 4 > &vs) |
| 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) |
| bool | inCircle (const std::array< PreciseVertCoords2, 4 > &vs) |
| return true if 4th point in array lays inside circumcircle of first 3 points based triangle | |
| bool | inCircle (const PreciseVertCoords2 *vs) |
| SegmentSegmentIntersectResult | doSegmentSegmentIntersect (const std::array< PreciseVertCoords2, 4 > &vs) |
| bool | segmentIntersectionOrder (const std::array< PreciseVertCoords2, 6 > &vs) |
| Vector2i | findSegmentSegmentIntersectionPrecise (const Vector2i &a, const Vector2i &b, const Vector2i &c, const Vector2i &d) |
| Vector2f | findSegmentSegmentIntersectionPrecise (const Vector2f &a, const Vector2f &b, const Vector2f &c, const Vector2f &d, CoordinateConverters2 converters) |
| using | ConvertToIntVector = std::function<Vector3i( const Vector3f& )> |
| float-to-int coordinate converter | |
| using | ConvertToFloatVector = std::function<Vector3f( const Vector3i& )> |
| int-to-float coordinate converter | |
| 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) |
| bool | orient3d (const std::array< PreciseVertCoords, 4 > &vs) |
| first sorts the indices in ascending order, then calls the predicate for sorted points | |
| bool | orient3d (const PreciseVertCoords *vs) |
| TriangleSegmentIntersectResult | doTriangleSegmentIntersect (const std::array< PreciseVertCoords, 5 > &vs) |
| bool | segmentIntersectionOrder (const std::array< PreciseVertCoords, 8 > &vs) |
| ConvertToIntVector | getToIntConverter (const Box3d &box) |
| creates converter from Vector3f to Vector3i in Box range (int diapason is mapped to box range) | |
| ConvertToFloatVector | getToFloatConverter (const Box3d &box) |
| creates converter from Vector3i to Vector3f in Box range (int diapason is mapped to box range) | |
| std::optional< Vector3i > | findTwoSegmentsIntersection (const Vector3i &ai, const Vector3i &bi, const Vector3i &ci, const Vector3i &di) |
| Vector3f | findTriangleSegmentIntersectionPrecise (const Vector3f &a, const Vector3f &b, const Vector3f &c, const Vector3f &d, const Vector3f &e, CoordinateConverters converters) |
| using | MeshOnVoxelsVdb = MeshOnVoxelsT<Mesh, VdbVolume> |
| using | MeshOnVoxelsVdbC = MeshOnVoxelsT<const Mesh, VdbVolume> |
| using | MeshOnVoxelsSimple = MeshOnVoxelsT<Mesh, SimpleVolumeMinMax> |
| using | MeshOnVoxelsSimpleC = MeshOnVoxelsT<const Mesh, SimpleVolumeMinMax> |
| using | MeshOnVoxelsFunction = MeshOnVoxelsT<Mesh, FunctionVolume> |
| using | MeshOnVoxelsFunctionC = MeshOnVoxelsT<const Mesh, FunctionVolume> |
| template<typename VolumeType = VdbVolume> | |
| Expected< VertBitSet > | moveMeshToVoxelMaxDeriv (Mesh &mesh, const AffineXf3f &meshXf, const VolumeType &volume, const AffineXf3f &volumeXf, const MoveMeshToVoxelMaxDerivSettings &settings, ProgressCallback callback={}) |
| template Expected< VertBitSet > | moveMeshToVoxelMaxDeriv< VdbVolume > (Mesh &mesh, const AffineXf3f &meshXf, const VdbVolume &volume, const AffineXf3f &volumeXf, const MoveMeshToVoxelMaxDerivSettings &settings, ProgressCallback callback) |
| template Expected< VertBitSet > | moveMeshToVoxelMaxDeriv< SimpleVolumeMinMax > (Mesh &mesh, const AffineXf3f &meshXf, const SimpleVolumeMinMax &volume, const AffineXf3f &volumeXf, const MoveMeshToVoxelMaxDerivSettings &settings, ProgressCallback callback) |
| template Expected< VertBitSet > | moveMeshToVoxelMaxDeriv< FunctionVolume > (Mesh &mesh, const AffineXf3f &meshXf, const FunctionVolume &volume, const AffineXf3f &volumeXf, const MoveMeshToVoxelMaxDerivSettings &settings, ProgressCallback callback) |
only for bindings generation
this header includes the whole OpenVDB, so please include it from .cpp files only
this is a lightweight header unlike MRVDBFloatGrid.h
This is lightweight header, pleas include it instead of "MRViewer.h" whenever possible.
Read the manual at: docs/measurement_units.md.
TODO move it in MRRibbonFontManager.cpp.
const Contours3f& contours = {}
triangle-related mathematical functions are here
not _WIN32
To fix attribute declaration must precede definition on Sphere.
#pragma warning: there is no warning number
for template implementation:
distance queries involving two meshes, please see MRMeshDistance.h for queries to one mesh only
distance queries to one mesh only, please see MRMeshMeshDistance.h for queries involving two meshes
based on https:/// github.com/TartanLlama/function_ref
https:/// www.geometrictools.com/Documentation/LeastSquaresFitting.pdf
Color and DIRTY_VERTS_COLORMAP.
This file exists for testing some cuda features.
Only strictly necessary for the bindings (to make MR::MeshIntersectionResult a complete type).
======================================================================== /// Copyright 2009-2020 Intel Corporation /// /// Licensed under the Apache License, Version 2.0 (the "License"); /// you may not use this file except in compliance with the License. /// You may obtain a copy of the License at /// /// http:/// www.apache.org/licenses/LICENSE-2.0 /// /// Unless required by applicable law or agreed to in writing, software /// distributed under the License is distributed on an "AS IS" BASIS, /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. /// See the License for the specific language governing permissions and /// limitations under the License. /// ======================================================================== ///
Main idea is here: https:/// www.geometrictools.com/Documentation/LeastSquaresFitting.pdf pages 45-51 Below we will write out the function and Jacobian for minimization by the Levenberg-Marquard method and use it to clarify the apex of the cone and the direction of its main axis.
_WIN32
TODO:
| using MR::MeshOnVoxelsFunctionC = MeshOnVoxelsT<const Mesh, FunctionVolume> |
| using MR::MeshOnVoxelsSimpleC = MeshOnVoxelsT<const Mesh, SimpleVolumeMinMax> |
| using MR::MeshOnVoxelsVdb = MeshOnVoxelsT<Mesh, VdbVolume> |
| using MR::MeshOnVoxelsVdbC = MeshOnVoxelsT<const Mesh, VdbVolume> |
| Expected< LoadedObjects > MR::makeObjectFromVoxelsFile | ( | const std::filesystem::path & | file, |
| const ProgressCallback & | callback = {} ) |
| Expected< std::vector< std::shared_ptr< ObjectVoxels > > > MR::makeObjectVoxelsFromFile | ( | const std::filesystem::path & | file, |
| ProgressCallback | callback = {} ) |
loads voxels from given file in new object
|
extern |
|
extern |
|
extern |
|
extern |