None meshlib.mrmeshpy.accumulateFaceCenters | ( | PointAccumulator | accum, |
MeshPart | mp, | ||
AffineXf3f | xf = None ) |
Adds in existing PointAccumulator all mesh face centers with the weight equal to face area
None meshlib.mrmeshpy.accumulateLineCenters | ( | PointAccumulator | accum, |
Polyline3 | pl, | ||
AffineXf3f | xf = None ) |
Adds in existing PointAccumulator all line centers with the weight equal to the length line
None meshlib.mrmeshpy.accumulatePoints | ( | PointAccumulator | accum, |
PointCloud | pc, | ||
AffineXf3f | xf = None ) |
Adds in existing PointAccumulator all points from the cloud with weight 1
None meshlib.mrmeshpy.accumulatePoints | ( | PointAccumulator | accum, |
std_vector_Vector3_float | points, | ||
AffineXf3f | xf = None ) |
Adds in existing PointAccumulator all given points
None meshlib.mrmeshpy.accumulateWeighedPoints | ( | PointAccumulator | accum, |
std_vector_Vector3_float | points, | ||
std_vector_float | weights, | ||
AffineXf3f | xf = None ) |
Adds in existing PointAccumulator all given weighed points
None meshlib.mrmeshpy.addBaseToPlanarMesh | ( | Mesh | mesh, |
float | zOffset = 1.0 ) |
given a planar mesh with boundary on input located in plane XY, packs and extends it along Z on zOffset to make a volumetric closed mesh zOffset should be > 0
None meshlib.mrmeshpy.addLeftBand | ( | MeshTopology | topology, |
std_vector_Id_EdgeTag | loop, | ||
FaceBitSet | addHere ) |
adds all faces incident to loop vertices and located to the left from the loop to given FaceBitSet
None meshlib.mrmeshpy.addNoise | ( | VertCoords | points, |
VertBitSet | validVerts, | ||
NoiseSettings | settings ) |
Adds noise to the points, using a normal distribution
Mesh meshlib.mrmeshpy.alignTextToMesh | ( | Mesh | mesh, |
TextMeshAlignParams | params ) |
Creates symbol mesh and aligns it to given surface
computes minimal angle in [0,pi] between two vectors; the function is symmetric: angle( a, b ) == angle( b, a )
computes minimal angle in [0,pi] between two vectors; the function is symmetric: angle( a, b ) == angle( b, a )
computes minimal angle in [0,pi] between two vectors; the function is symmetric: angle( a, b ) == angle( b, a )
None meshlib.mrmeshpy.appendObjectFromTreeRecursive | ( | Object | obj, |
std_vector_std_shared_ptr_Object | res, | ||
ObjectSelectivityType | type ) |
None meshlib.mrmeshpy.appendObjectFromTreeRecursive | ( | Object | obj, |
std_vector_std_shared_ptr_ObjectDistanceMap | res, | ||
ObjectSelectivityType | type ) |
None meshlib.mrmeshpy.appendObjectFromTreeRecursive | ( | Object | obj, |
std_vector_std_shared_ptr_ObjectLines | res, | ||
ObjectSelectivityType | type ) |
None meshlib.mrmeshpy.appendObjectFromTreeRecursive | ( | Object | obj, |
std_vector_std_shared_ptr_ObjectLinesHolder | res, | ||
ObjectSelectivityType | type ) |
None meshlib.mrmeshpy.appendObjectFromTreeRecursive | ( | Object | obj, |
std_vector_std_shared_ptr_ObjectMesh | res, | ||
ObjectSelectivityType | type ) |
None meshlib.mrmeshpy.appendObjectFromTreeRecursive | ( | Object | obj, |
std_vector_std_shared_ptr_ObjectMeshHolder | res, | ||
ObjectSelectivityType | type ) |
None meshlib.mrmeshpy.appendObjectFromTreeRecursive | ( | Object | obj, |
std_vector_std_shared_ptr_ObjectPoints | res, | ||
ObjectSelectivityType | type ) |
None meshlib.mrmeshpy.appendObjectFromTreeRecursive | ( | Object | obj, |
std_vector_std_shared_ptr_ObjectPointsHolder | res, | ||
ObjectSelectivityType | type ) |
None meshlib.mrmeshpy.appendObjectFromTreeRecursive | ( | Object | obj, |
std_vector_std_shared_ptr_ObjectVoxels | res, | ||
ObjectSelectivityType | type ) |
None meshlib.mrmeshpy.appendObjectFromTreeRecursive | ( | Object | obj, |
std_vector_std_shared_ptr_VisualObject | res, | ||
ObjectSelectivityType | type ) |
Vector3d meshlib.mrmeshpy.applyDouble | ( | AffineXf3d | xf, |
Vector3f | p ) |
converts given point in double precision and applies given transformation to it
converts given normal in double precision and applies given matrix to it
Vector3f meshlib.mrmeshpy.applyFloat | ( | AffineXf3d | xf, |
Vector3f | p ) |
returns the point as is or after application of given transform to it in double precision
returns the normal as is or after application of given matrix to it in double precision
Object meshlib.mrmeshpy.asSelectivityType_Object | ( | Object | obj, |
ObjectSelectivityType | type ) |
if input object is of given type then returns another pointer on it
ObjectDistanceMap meshlib.mrmeshpy.asSelectivityType_ObjectDistanceMap | ( | Object | obj, |
ObjectSelectivityType | type ) |
if input object is of given type then returns another pointer on it
ObjectLines meshlib.mrmeshpy.asSelectivityType_ObjectLines | ( | Object | obj, |
ObjectSelectivityType | type ) |
if input object is of given type then returns another pointer on it
ObjectLinesHolder meshlib.mrmeshpy.asSelectivityType_ObjectLinesHolder | ( | Object | obj, |
ObjectSelectivityType | type ) |
if input object is of given type then returns another pointer on it
ObjectMesh meshlib.mrmeshpy.asSelectivityType_ObjectMesh | ( | Object | obj, |
ObjectSelectivityType | type ) |
if input object is of given type then returns another pointer on it
ObjectMeshHolder meshlib.mrmeshpy.asSelectivityType_ObjectMeshHolder | ( | Object | obj, |
ObjectSelectivityType | type ) |
if input object is of given type then returns another pointer on it
ObjectPoints meshlib.mrmeshpy.asSelectivityType_ObjectPoints | ( | Object | obj, |
ObjectSelectivityType | type ) |
if input object is of given type then returns another pointer on it
ObjectPointsHolder meshlib.mrmeshpy.asSelectivityType_ObjectPointsHolder | ( | Object | obj, |
ObjectSelectivityType | type ) |
if input object is of given type then returns another pointer on it
ObjectVoxels meshlib.mrmeshpy.asSelectivityType_ObjectVoxels | ( | Object | obj, |
ObjectSelectivityType | type ) |
if input object is of given type then returns another pointer on it
VisualObject meshlib.mrmeshpy.asSelectivityType_VisualObject | ( | Object | obj, |
ObjectSelectivityType | type ) |
if input object is of given type then returns another pointer on it
str meshlib.mrmeshpy.asString | ( | SignDetectionMode | m | ) |
returns string representation of enum values
str meshlib.mrmeshpy.asString | ( | str | s | ) |
str meshlib.mrmeshpy.asU8String | ( | str | s | ) |
bool meshlib.mrmeshpy.autoOrientLocalTriangulations | ( | PointCloud | pointCloud, |
AllLocalTriangulations | triangs, | ||
VertBitSet | region, | ||
func_bool_from_float | progress = 'MR::ProgressCallback{}', | ||
Triangulation | outRep3 = None, | ||
Triangulation | outRep2 = None ) |
orient neighbors around each point in \\param region so there will be as many triangles with same (and not opposite) orientation as possible
SetBitIterator meshlib.mrmeshpy.begin | ( | BitSet | a | ) |
RingIterator_NextEdgeSameOrigin meshlib.mrmeshpy.begin | ( | IteratorRange_RingIterator_NextEdgeSameOrigin | range | ) |
UndirectedEdgeSetBitIterator meshlib.mrmeshpy.begin | ( | UndirectedEdgeBitSet | a | ) |
ViewportIterator meshlib.mrmeshpy.begin | ( | ViewportMask | mask | ) |
given quadrangle ABCD, selects how to best triangulate it: false = by introducing BD diagonal and splitting ABCD on triangles ABD and DBC, true = by introducing AC diagonal and splitting ABCD on triangles ABC and ACD
Blend two colors together \\note This operation is not commutative
BooleanResult meshlib.mrmeshpy.boolean | ( | Mesh | meshA, |
Mesh | meshB, | ||
BooleanOperation | operation, | ||
AffineXf3f | rigidB2A, | ||
BooleanResultMapper | mapper = None, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
\\brief Performs CSG operation on two meshes \\ingroup BooleanGroup Makes new mesh - result of boolean operation on mesh `A` and mesh `B` \\param meshA Input mesh `A` \\param meshB Input mesh `B` \\param operation CSG operation to perform \\param rigidB2A Transform from mesh `B` space to mesh `A` space \\param mapper Optional output structure to map mesh `A` and mesh `B` topology to result mesh topology \\note Input meshes should have no self-intersections in intersecting zone \\note If meshes are not closed in intersecting zone some boolean operations are not allowed (as far as input meshes interior and exterior cannot be determined)
BooleanResult meshlib.mrmeshpy.boolean | ( | Mesh | meshA, |
Mesh | meshB, | ||
BooleanOperation | operation, | ||
BooleanParameters | params = 'MR::BooleanParameters{}' ) |
Id_EdgeTag meshlib.mrmeshpy.buildBottom | ( | Mesh | mesh, |
Id_EdgeTag | a, | ||
Vector3f | dir, | ||
float | holeExtension, | ||
FaceBitSet | outNewFaces = None ) |
adds cylindrical extension of given hole represented by one of its edges (having no valid left face) by adding new vertices located in lowest point of the hole -dir*holeExtension and 2 * number_of_hole_edge triangles; \\return the edge of new hole opposite to input edge (a)
None meshlib.mrmeshpy.buildCylinderBetweenTwoHoles | ( | Mesh | mesh, |
Id_EdgeTag | a, | ||
Id_EdgeTag | b, | ||
StitchHolesParams | params = 'MR::StitchHolesParams{}' ) |
\\brief Stitches two holes in Mesh\\n Build cylindrical patch to fill space between two holes represented by one of their edges each,\\n default metric: ComplexStitchMetric \\image html fill/before_stitch.png "Before" width = 250cm \\image html fill/stitch.png "After" width = 250cm Next picture show, how newly generated faces can be smoothed \\ref MR::positionVertsSmoothly \\ref MR::subdivideMesh \\image html fill/stitch_smooth.png "Stitch with smooth" width = 250cm \\param mesh mesh with hole \\param a EdgeId which represents 1st hole (should not have valid left FaceId) \\param b EdgeId which represents 2nd hole (should not have valid left FaceId) \\param params parameters of holes stitching \\sa \\ref fillHole \\sa \\ref StitchHolesParams
bool meshlib.mrmeshpy.buildCylinderBetweenTwoHoles | ( | Mesh | mesh, |
StitchHolesParams | params = 'MR::StitchHolesParams{}' ) |
this version finds holes in the mesh by itself and returns false if they are not found
std_vector_Id_EdgeTag meshlib.mrmeshpy.buildShortestPath | ( | Mesh | mesh, |
VertId | start, | ||
VertBitSet | finish, | ||
float | maxPathLen = 3.4028234663852886e+38 ) |
builds shortest path in euclidean metric from start to finish vertices; if no path can be found then empty path is returned
std_vector_Id_EdgeTag meshlib.mrmeshpy.buildShortestPath | ( | Mesh | mesh, |
VertId | start, | ||
VertId | finish, | ||
float | maxPathLen = 3.4028234663852886e+38 ) |
finds the shortest path in euclidean metric from start to finish vertices using Dijkstra algorithm; if no path can be found then empty path is returned
std_vector_Id_EdgeTag meshlib.mrmeshpy.buildShortestPathAStar | ( | Mesh | mesh, |
MeshTriPoint | start, | ||
MeshTriPoint | finish, | ||
VertId | outPathStart = None, | ||
VertId | outPathFinish = None, | ||
float | maxPathLen = 3.4028234663852886e+38 ) |
finds the path from a vertex in start-triangle to a vertex in finish-triangle, so that the length start-first_vertex-...-last_vertex-finish is shortest in euclidean metric; using A* modification of Dijkstra algorithm, which is faster for near linear path; if no path can be found then empty path is returned
std_vector_Id_EdgeTag meshlib.mrmeshpy.buildShortestPathAStar | ( | Mesh | mesh, |
VertId | start, | ||
VertId | finish, | ||
float | maxPathLen = 3.4028234663852886e+38 ) |
finds the shortest path in euclidean metric from start to finish vertices using A* modification of Dijkstra algorithm, which is faster for near linear path; if no path can be found then empty path is returned
std_vector_Id_EdgeTag meshlib.mrmeshpy.buildShortestPathBiDir | ( | Mesh | mesh, |
MeshTriPoint | start, | ||
MeshTriPoint | finish, | ||
VertId | outPathStart = None, | ||
VertId | outPathFinish = None, | ||
float | maxPathLen = 3.4028234663852886e+38 ) |
finds the path from a vertex in start-triangle to a vertex in finish-triangle, so that the length start-first_vertex-...-last_vertex-finish is shortest in euclidean metric; using bidirectional modification of Dijkstra algorithm, constructing the path simultaneously from both start and finish, which is faster for long paths; if no path can be found then empty path is returned
std_vector_Id_EdgeTag meshlib.mrmeshpy.buildShortestPathBiDir | ( | Mesh | mesh, |
VertId | start, | ||
VertId | finish, | ||
float | maxPathLen = 3.4028234663852886e+38 ) |
finds the shortest path in euclidean metric from start to finish vertices using bidirectional modification of Dijkstra algorithm, constructing the path simultaneously from both start and finish, which is faster for long paths; if no path can be found then empty path is returned
std_vector_Id_EdgeTag meshlib.mrmeshpy.buildSmallestMetricPath | ( | MeshTopology | topology, |
func_float_from_Id_EdgeTag | metric, | ||
VertId | start, | ||
VertBitSet | finish, | ||
float | maxPathMetric = 3.4028234663852886e+38 ) |
builds shortest path in given metric from start to finish vertices; if no path can be found then empty path is returned
std_vector_Id_EdgeTag meshlib.mrmeshpy.buildSmallestMetricPath | ( | MeshTopology | topology, |
func_float_from_Id_EdgeTag | metric, | ||
VertId | start, | ||
VertId | finish, | ||
float | maxPathMetric = 3.4028234663852886e+38 ) |
builds shortest path in given metric from start to finish vertices; if no path can be found then empty path is returned
std_vector_unsigned_long meshlib.mrmeshpy.buildSmallestMetricPath | ( | VdbVolume | voxels, |
func_float_from_unsigned_long_unsigned_long | metric, | ||
int | start, | ||
int | finish, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
builds shortest path in given metric from start to finish voxels; if no path can be found then empty path is returned
std_vector_Id_EdgeTag meshlib.mrmeshpy.buildSmallestMetricPathBiDir | ( | MeshTopology | topology, |
func_float_from_Id_EdgeTag | metric, | ||
TerminalVertex | starts, | ||
int | numStarts, | ||
TerminalVertex | finishes, | ||
int | numFinishes, | ||
VertId | outPathStart = None, | ||
VertId | outPathFinish = None, | ||
float | maxPathMetric = 3.4028234663852886e+38 ) |
finds the smallest metric path from one of start vertices to one of the finish vertices, using bidirectional modification of Dijkstra algorithm, constructing the path simultaneously from both starts and finishes, which is faster for long paths; if no path can be found then empty path is returned
std_vector_Id_EdgeTag meshlib.mrmeshpy.buildSmallestMetricPathBiDir | ( | MeshTopology | topology, |
func_float_from_Id_EdgeTag | metric, | ||
VertId | start, | ||
VertId | finish, | ||
float | maxPathMetric = 3.4028234663852886e+38 ) |
finds the smallest metric path from start vertex to finish vertex, using bidirectional modification of Dijkstra algorithm, constructing the path simultaneously from both start and finish, which is faster for long paths; if no path can be found then empty path is returned
AllLocalTriangulations meshlib.mrmeshpy.buildUnitedLocalTriangulations | ( | PointCloud | cloud, |
TriangulationHelpers.Settings | settings, | ||
func_bool_from_float | progress = 'MR::ProgressCallback{}' ) |
/ computes local triangulations of all points in the cloud united in one struct
str meshlib.mrmeshpy.bytesString | ( | int | size | ) |
converts given size in string: [0,1024) -> nnn bytes [1024,1024*1024) -> nnn.nn Kb [1024*1024,1024*1024*1024) -> nnn.nn Mb ...
VertColors meshlib.mrmeshpy.calcAvgColors | ( | PointCloud | cloud, |
VertColors | colors, | ||
VertCoords | tgtPoints, | ||
VertBitSet | tgtVerts, | ||
float | sigma, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
given \\param cloud a point cloud \\param colors colors of each point in the cloud \\param tgtPoints some target points \\param tgtVerts mask of valid target points \\param sigma the distance of highest influence of a point \\param cb progress callback computes the colors in valid target points by averaging the colors from the point cloud
float meshlib.mrmeshpy.calcCombinedFillMetric | ( | Mesh | mesh, |
FaceBitSet | filledRegion, | ||
FillHoleMetric | metric ) |
Computes combined metric after filling a hole
int meshlib.mrmeshpy.calcDamerauLevenshteinDistance | ( | str | stringA, |
str | stringB, | ||
bool | caseSensitive = True, | ||
int_output | outLeftRightAddition = None ) |
Calculates Damerau-Levenshtein distance between to strings \\param outLeftRightAddition if provided return amount of insertions to the left and to the right \\ingroup BasicGroup
calculates dipoles for given mesh and AABB-tree
FaceScalars meshlib.mrmeshpy.calcFaceDistances | ( | MeshTopology | topology, |
func_float_from_Id_EdgeTag | metric, | ||
FaceBitSet | starts, | ||
FaceDistancesSettings | settings = 'MR::FaceDistancesSettings{}' ) |
computes and returns the distance of traveling from one of start faces to all other reachable faces on the mesh; all unreachable faces will get FLT_MAX value; \\param starts all start faces will get value 0 in the result; \\param metric metric(e) says the distance of traveling from left(e) to right(e)
float meshlib.mrmeshpy.calcFastWindingNumber | ( | Dipoles | dipoles, |
AABBTree | tree, | ||
Mesh | mesh, | ||
Vector3f | q, | ||
float | beta, | ||
FaceId | skipFace ) |
compute approximate winding number at \\param q; \\param beta determines the precision of the approximation: the more the better, recommended value 2 or more; if distance from q to the center of some triangle group is more than beta times the distance from the center to most distance triangle in the group then we use approximate formula \\param skipFace this triangle (if it is close to \\param q) will be skipped from summation
float meshlib.mrmeshpy.calcLength | ( | std_vector_Vector2_double | contour | ) |
returns sum length of the given contour \\tparam R is the type for the accumulation and for result
float meshlib.mrmeshpy.calcLength | ( | std_vector_Vector2_float | contour | ) |
returns sum length of the given contour \\tparam R is the type for the accumulation and for result
float meshlib.mrmeshpy.calcLength | ( | std_vector_Vector3_double | contour | ) |
returns sum length of the given contour \\tparam R is the type for the accumulation and for result
float meshlib.mrmeshpy.calcLength | ( | std_vector_Vector3_float | contour | ) |
returns sum length of the given contour \\tparam R is the type for the accumulation and for result
Vector3d meshlib.mrmeshpy.calcOrientedArea | ( | std_vector_Id_EdgeTag | loop, |
Mesh | mesh ) |
returns the vector with the magnitude equal to the area surrounded by the loop (if the loop is planar), and directed to see the loop in ccw order from the vector tip
float meshlib.mrmeshpy.calcOrientedArea | ( | std_vector_Vector2_double | contour | ) |
>0 for clockwise loop, < 0 for CCW loop \\tparam R is the type for the accumulation and for result
float meshlib.mrmeshpy.calcOrientedArea | ( | std_vector_Vector2_float | contour | ) |
>0 for clockwise loop, < 0 for CCW loop \\tparam R is the type for the accumulation and for result
Vector3d meshlib.mrmeshpy.calcOrientedArea | ( | std_vector_Vector3_double | contour | ) |
returns the vector with the magnitude equal to contour area, and directed to see the contour in ccw order from the vector tip \\tparam R is the type for the accumulation and for result
Vector3f meshlib.mrmeshpy.calcOrientedArea | ( | std_vector_Vector3_float | contour | ) |
returns the vector with the magnitude equal to contour area, and directed to see the contour in ccw order from the vector tip \\tparam R is the type for the accumulation and for result
OriginAndDimensions meshlib.mrmeshpy.calcOriginAndDimensions | ( | Box3f | box, |
float | voxelSize ) |
computes origin and dimensions of voxel-grid to cover given 3D box with given spacing (voxelSize)
float meshlib.mrmeshpy.calcPathLength | ( | std_vector_Id_EdgeTag | path, |
Mesh | mesh ) |
float meshlib.mrmeshpy.calcPathMetric | ( | std_vector_Id_EdgeTag | path, |
func_float_from_Id_EdgeTag | metric ) |
computes summed metric of all edges in the path
bool meshlib.mrmeshpy.canMinimizePolynomial | ( | int | degree | ) |
bool meshlib.mrmeshpy.canSolvePolynomial | ( | int | degree | ) |
bool meshlib.mrmeshpy.ccw | ( | PreciseVertCoords2 | vs | ) |
bool meshlib.mrmeshpy.ccw | ( | std_array_PreciseVertCoords2_3 | vs | ) |
first sorts the indices in ascending order, then calls the predicate for sorted points
return true if the smallest rotation from vector (a) to vector (b) is in counter-clock-wise direction; uses simulation-of-simplicity to avoid "vectors are collinear"
return true if the smallest rotation from vector (a-c) to vector (b-c) is in counter-clock-wise direction; uses simulation-of-simplicity to avoid "vectors are collinear"
bool meshlib.mrmeshpy.checkDeloneQuadrangle | ( | Vector3d | a, |
Vector3d | b, | ||
Vector3d | c, | ||
Vector3d | d, | ||
float | maxAngleChange = 1.7976931348623157e+308 ) |
given quadrangle ABCD, checks whether its edge AC satisfies Delone's condition; if dihedral angles 1) between triangles ABD and DBC and 2) between triangles ABC and ACD differ more than on maxAngleChange then also returns true to prevent flipping from 1) to 2)
bool meshlib.mrmeshpy.checkDeloneQuadrangle | ( | Vector3f | a, |
Vector3f | b, | ||
Vector3f | c, | ||
Vector3f | d, | ||
float | maxAngleChange = 3.4028234663852886e+38 ) |
converts arguments in double and calls above function
bool meshlib.mrmeshpy.checkDeloneQuadrangleInMesh | ( | Mesh | mesh, |
Id_EdgeTag | edge, | ||
DeloneSettings | settings = 'MR::DeloneSettings{}', | ||
float_output | deviationSqAfterFlip = None ) |
consider quadrangle formed by left and right triangles of given edge, and checks whether this edge satisfies Delone's condition in the quadrangle; \\return false otherwise if flipping the edge does not introduce too large surface deviation (can be returned only for inner edge of the region)
ShellVertexInfo meshlib.mrmeshpy.classifyShellVert | ( | MeshPart | mp, |
Vector3f | shellPoint, | ||
FindInnerShellSettings | settings = 'MR::FindInnerShellSettings{}' ) |
Tests \\param shellPoint from bidirectional shell constructed for an open \\param mp; \\return whether the distance from given point to given mesh part is of same sign as settings.side, if useWindingNumber = false, returns false for all points projecting on mesh boundary
ObjectMesh meshlib.mrmeshpy.cloneRegion | ( | ObjectMesh | objMesh, |
FaceBitSet | region, | ||
bool | copyTexture = True ) |
constructs new ObjectMesh containing the region of data from input object does not copy selection
ObjectPoints meshlib.mrmeshpy.cloneRegion | ( | ObjectPoints | objPoints, |
VertBitSet | region ) |
constructs new ObjectPoints containing the region of data from input object does not copy selection
DistanceMap meshlib.mrmeshpy.combineXYderivativeMaps | ( | tuple[DistanceMap, DistanceMap] | XYderivativeMaps | ) |
fill another distance map pair with gradients across X and Y axes of the argument map
str meshlib.mrmeshpy.commonFilesName | ( | std_vector_std_filesystem_path | files | ) |
in case of empty vector, returns "Empty" in case of single input file.ext, returns ".EXT" in case of multiple files with same extension, returns ".EXTs" otherwise returns "Files"
None meshlib.mrmeshpy.compressZip | ( | os.PathLike | zipFile, |
os.PathLike | sourceFolder, | ||
std_vector_std_filesystem_path | excludeFiles = 'std::vector<std::filesystem::path>{}', | ||
str | password = None, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
\\brief compresses given folder in given zip-file \\param excludeFiles files that should not be included to result zip \\param password if password is given then the archive will be encrypted \\param cb an option to get progress notifications and cancel the operation
float meshlib.mrmeshpy.computeBasinVolume | ( | Mesh | mesh, |
FaceBitSet | faces, | ||
float | level ) |
computes the volume of given mesh basin below given water level; \\param faces shall include all basin faces at least partially below the water level
phmap_flat_hash_map_Id_VertTag_Id_VertTag meshlib.mrmeshpy.computeClosestSurfacePathTargets | ( | Mesh | mesh, |
VertBitSet | starts, | ||
VertBitSet | ends, | ||
VertBitSet | vertRegion = None, | ||
VertScalars | outSurfaceDistances = None ) |
for each vertex from (starts) finds the closest vertex from (ends) in geodesic sense \\param vertRegion consider paths going in this region only
DistanceMap meshlib.mrmeshpy.computeDistanceMap | ( | MeshPart | mp, |
MeshToDistanceMapParams | params, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}', | ||
std_vector_MeshTriPoint | outSamples = None ) |
computes distance (height) map for given projection parameters using float-precision for finding ray-mesh intersections, which is faster but less reliable
DistanceMap meshlib.mrmeshpy.computeDistanceMapD | ( | MeshPart | mp, |
MeshToDistanceMapParams | params, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}', | ||
std_vector_MeshTriPoint | outSamples = None ) |
computes distance (height) map for given projection parameters using double-precision for finding ray-mesh intersections, which is slower but more reliable
std_vector_EdgePoint meshlib.mrmeshpy.computeFastMarchingPath | ( | MeshPart | mp, |
MeshTriPoint | start, | ||
MeshTriPoint | end, | ||
VertBitSet | vertRegion = None, | ||
VertScalars | outSurfaceDistances = None ) |
computes by Fast Marching method and returns intermediate points of approximately geodesic path from start to end, where it crosses mesh edges; the path can be limited to given region: in face-format inside mp, or in vert-format in vertRegion argument
QuadraticForm3f meshlib.mrmeshpy.computeFormAtVertex | ( | MeshPart | mp, |
VertId | v, | ||
float | stabilizer, | ||
UndirectedEdgeBitSet | creases = None ) |
\\brief Computes quadratic form at given vertex of the initial surface before decimation \\ingroup DecimateGroup
Vector_QuadraticForm3f_VertId meshlib.mrmeshpy.computeFormsAtVertices | ( | MeshPart | mp, |
float | stabilizer, | ||
UndirectedEdgeBitSet | creases = None ) |
\\brief Computes quadratic forms at every vertex of mesh part before decimation \\ingroup DecimateGroup
std_vector_EdgePoint meshlib.mrmeshpy.computeGeodesicPath | ( | Mesh | mesh, |
MeshTriPoint | start, | ||
MeshTriPoint | end, | ||
GeodesicPathApprox | atype = 'GeodesicPathApprox::FastMarching', | ||
int | maxGeodesicIters = 100 ) |
returns intermediate points of the geodesic path from start to end, where it crosses mesh edges; It is the same as calling computeGeodesicPathApprox() then reducePath()
std_vector_EdgePoint meshlib.mrmeshpy.computeGeodesicPathApprox | ( | Mesh | mesh, |
MeshTriPoint | start, | ||
MeshTriPoint | end, | ||
GeodesicPathApprox | atype ) |
computes by given method and returns intermediate points of approximately geodesic path from start to end, every next point is located in the same triangle with the previous point
VertScalars meshlib.mrmeshpy.computeInSphereThicknessAtVertices | ( | Mesh | mesh, |
InSphereSearchSettings | settings, | ||
func_bool_from_float | progress = 'MR::ProgressCallback{}' ) |
returns the thickness at each vertex as the diameter of the maximal inscribed sphere
MeshNormals meshlib.mrmeshpy.computeMeshNormals | ( | Mesh | mesh | ) |
computes both per-face and per-vertex normals more efficiently then just calling both previous functions
Vector3f meshlib.mrmeshpy.computeNormal | ( | AllLocalTriangulations | triangs, |
VertCoords | points, | ||
VertId | v ) |
compute normal at point by averaging neighbor triangle normals weighted by triangle's angle at the point
Vector_std_array_Vector3f_3_FaceId meshlib.mrmeshpy.computePerCornerNormals | ( | Mesh | mesh, |
UndirectedEdgeBitSet | creases ) |
returns a vector with corner normals in every element for valid mesh faces; corner normals of adjacent triangles are equal, unless they are separated by crease edges
FaceNormals meshlib.mrmeshpy.computePerFaceNormals | ( | Mesh | mesh | ) |
returns a vector with face-normal in every element for valid mesh faces
fills buffer with face-normals as Vector4f for valid mesh faces
VertCoords meshlib.mrmeshpy.computePerVertNormals | ( | Mesh | mesh | ) |
returns a vector with vertex normals in every element for valid mesh vertices
VertCoords meshlib.mrmeshpy.computePerVertPseudoNormals | ( | Mesh | mesh | ) |
returns a vector with vertex pseudonormals in every element for valid mesh vertices see http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.107.9173&rep=rep1&type=pdf
VertScalars meshlib.mrmeshpy.computeRayThicknessAtVertices | ( | Mesh | mesh, |
func_bool_from_float | progress = 'MR::ProgressCallback{}' ) |
returns the distance from each vertex along minus normal to the nearest mesh intersection (or FLT_MAX if no intersection found)
VertScalars meshlib.mrmeshpy.computeSkyViewFactor | ( | Mesh | terrain, |
VertCoords | samples, | ||
VertBitSet | validSamples, | ||
std_vector_SkyPatch | skyPatches, | ||
BitSet | outSkyRays = None, | ||
std_vector_MeshIntersectionResult | outIntersections = None ) |
computes relative radiation in each valid sample point by emitting rays from that point in the sky: the radiation is 1.0f if all rays reach the sky not hitting the terrain; the radiation is 0.0f if all rays do not reach the sky because they are intercepted by the terrain; \\param outSkyRays - optional output bitset where for every valid sample #i its rays are stored at indices [i*numPatches; (i+1)*numPatches), 0s for occluded rays (hitting the terrain) and 1s for the ones which don't hit anything and reach the sky \\param outIntersections - optional output vector of MeshIntersectionResult for every valid sample point
VertScalars meshlib.mrmeshpy.computeSpaceDistances | ( | Mesh | mesh, |
PointOnFace | start, | ||
float | range ) |
computes Euclidean 3D distances from given start point to all neighbor vertices within given \\param range and to first vertices with the distance more or equal than range
std_vector_EdgePoint meshlib.mrmeshpy.computeSteepestDescentPath | ( | MeshPart | mp, |
VertScalars | field, | ||
MeshTriPoint | start, | ||
ComputeSteepestDescentPathSettings | settings = 'MR::ComputeSteepestDescentPathSettings{}' ) |
computes the path (edge points crossed by the path) staring in given point and moving in each triangle in minus gradient direction of given field; the path stops when it reaches a local minimum in the field or one of stop conditions in settings
None meshlib.mrmeshpy.computeSteepestDescentPath | ( | MeshPart | mp, |
VertScalars | field, | ||
MeshTriPoint | start, | ||
std_vector_EdgePoint | outPath, | ||
ComputeSteepestDescentPathSettings | settings = 'MR::ComputeSteepestDescentPathSettings{}' ) |
computes the path (edge points crossed by the path) staring in given point and moving in each triangle in minus gradient direction of given field, and outputs the path in \\param outPath if requested; the path stops when it reaches a local minimum in the field or one of stop conditions in settings
VertScalars meshlib.mrmeshpy.computeSurfaceDistances | ( | Mesh | mesh, |
MeshTriPoint | start, | ||
float | maxDist = 3.4028234663852886e+38, | ||
VertBitSet | region = None, | ||
int | maxVertUpdates = 3 ) |
computes path distances in mesh vertices from given start point, stopping when maxDist is reached; considered paths can go either along edges or straightly within triangles
VertScalars meshlib.mrmeshpy.computeSurfaceDistances | ( | Mesh | mesh, |
MeshTriPoint | start, | ||
MeshTriPoint | end, | ||
VertBitSet | region = None, | ||
bool_output | endReached = None, | ||
int | maxVertUpdates = 3 ) |
computes path distance in mesh vertices from given start point, stopping when all vertices in the face where end is located are reached; \\details considered paths can go either along edges or straightly within triangles \\param endReached if pointer provided it will receive where a path from start to end exists
VertScalars meshlib.mrmeshpy.computeSurfaceDistances | ( | Mesh | mesh, |
phmap_flat_hash_map_Id_VertTag_float | startVertices, | ||
float | maxDist = 3.4028234663852886e+38, | ||
VertBitSet | region = None, | ||
int | maxVertUpdates = 3 ) |
computes path distances in mesh vertices from given start vertices with values in them, stopping when maxDist is reached; considered paths can go either along edges or straightly within triangles
VertScalars meshlib.mrmeshpy.computeSurfaceDistances | ( | Mesh | mesh, |
std_vector_MeshTriPoint | starts, | ||
float | maxDist = 3.4028234663852886e+38, | ||
VertBitSet | region = None, | ||
int | maxVertUpdates = 3 ) |
computes path distances in mesh vertices from given start points, stopping when maxDist is reached; considered paths can go either along edges or straightly within triangles
VertScalars meshlib.mrmeshpy.computeSurfaceDistances | ( | Mesh | mesh, |
VertBitSet | startVertices, | ||
float | maxDist = 3.4028234663852886e+38, | ||
VertBitSet | region = None, | ||
int | maxVertUpdates = 3 ) |
computes path distances in mesh vertices from given start vertices, stopping when maxDist is reached; considered paths can go either along edges or straightly within triangles
VertScalars meshlib.mrmeshpy.computeSurfaceDistances | ( | Mesh | mesh, |
VertBitSet | startVertices, | ||
VertBitSet | targetVertices, | ||
float | maxDist = 3.4028234663852886e+38, | ||
VertBitSet | region = None, | ||
int | maxVertUpdates = 3 ) |
computes path distances in mesh vertices from given start vertices, stopping when all targetVertices or maxDist is reached; considered paths can go either along edges or straightly within triangles
std_vector_EdgePoint meshlib.mrmeshpy.computeSurfacePath | ( | MeshPart | mp, |
MeshTriPoint | start, | ||
MeshTriPoint | end, | ||
int | maxGeodesicIters = 5, | ||
VertBitSet | vertRegion = None, | ||
VertScalars | outSurfaceDistances = None ) |
returns intermediate points of the geodesic path from start to end, where it crosses mesh edges; the path can be limited to given region: in face-format inside mp, or in vert-format in vertRegion argument. It is the same as calling computeFastMarchingPath() then reducePath()
VertScalars meshlib.mrmeshpy.computeThicknessAtVertices | ( | Mesh | mesh | ) |
std_array_int_4 meshlib.mrmeshpy.computeTrianglesRepetitions | ( | AllLocalTriangulations | triangs | ) |
computes statistics about the number of triangle repetitions in local triangulations
ToolPathResult meshlib.mrmeshpy.constantCuspToolPath | ( | MeshPart | mp, |
ConstantCuspParams | params ) |
compute path of the milling tool for the given mesh with parameters ( direction of milling is from up to down along Z-direction ) this toolpath is built from geodesic parallels divercing from the given start point or from the bounaries of selected areas if neither is specified, the lowest section by XY plane will be used as a start contour mesh can be transformed using xf parameter
ToolPathResult meshlib.mrmeshpy.constantZToolPath | ( | MeshPart | mp, |
ToolPathParams | params ) |
compute path of the milling tool for the given mesh with parameters ( direction of milling is from up to down along Z-direction ) this toolpath is built from the parallel sections along Z-axis mesh can be transformed using xf parameter
bool meshlib.mrmeshpy.contains | ( | FaceBitSet | bitset, |
FaceId | id ) |
Polyline2 meshlib.mrmeshpy.contourIntersection | ( | Polyline2 | contoursA, |
Polyline2 | contoursB, | ||
ContourToDistanceMapParams | params, | ||
float | offsetInside = 0.0 ) |
\\brief computes the intersection of the shapes bounded by input 2d contours \\return the boundary of the intersection \\details input contours must be closed within the area of distance map and be consistently oriented (clockwise, that is leaving the bounded shapes from the left). the value of params.withSign must be true (checked with assert() inside the function) \\note that polyline topology should be consistently oriented
Polyline2 meshlib.mrmeshpy.contourSubtract | ( | Polyline2 | contoursA, |
Polyline2 | contoursB, | ||
ContourToDistanceMapParams | params, | ||
float | offsetInside = 0.0 ) |
\\brief computes the difference between the shapes bounded by contoursA and the shapes bounded by contoursB \\return the boundary of the difference \\details input contours must be closed within the area of distance map and be consistently oriented (clockwise, that is leaving the bounded shapes from the left). the value of params.withSign must be true (checked with assert() inside the function) \\note that polyline topology should be consistently oriented
Polyline2 meshlib.mrmeshpy.contourUnion | ( | Polyline2 | contoursA, |
Polyline2 | contoursB, | ||
ContourToDistanceMapParams | params, | ||
float | offsetInside = 0 ) |
\\brief computes the union of the shapes bounded by input 2d contours \\return the boundary of the union \\details input contours must be closed within the area of distance map and be consistently oriented (clockwise, that is leaving the bounded shapes from the left). the value of params.withSign must be true (checked with assert() inside the function) \\note that polyline topology should be consistently oriented
Image meshlib.mrmeshpy.convertDistanceMapToImage | ( | DistanceMap | distMap, |
float | threshold = 0.003921568859368563 ) |
export distance map to a grayscale image \\param threshold - threshold of valid values [0.; 1.]. pixel with color less then threshold set invalid
DistanceMap meshlib.mrmeshpy.convertImageToDistanceMap | ( | Image | image, |
float | threshold = 0.003921568859368563 ) |
load distance map from a grayscale image: \\param threshold - threshold of valid values [0.; 1.]. pixel with color less then threshold set invalid
std_vector_OneMeshContour meshlib.mrmeshpy.convertMeshTriPointsIsoLineToMeshContour | ( | Mesh | mesh, |
std_vector_MeshTriPoint | meshTriPoints, | ||
float | isoValue, | ||
SearchPathSettings | searchSettings = 'MR::SearchPathSettings{}' ) |
\\ingroup BooleanGroup \\brief Makes continuous contour by iso-line from mesh tri points, if first and last meshTriPoint is the same, makes closed contour Finds shortest paths between neighbor \\p meshTriPoints and build contour MR::cutMesh input \\param isoValue amount of offset form given point, note that absolute value is used and isoline in both direction returned \\param searchSettings settings for search geo path
OneMeshContour meshlib.mrmeshpy.convertMeshTriPointsToClosedContour | ( | Mesh | mesh, |
std_vector_MeshTriPoint | meshTriPoints, | ||
SearchPathSettings | searchSettings = 'MR::SearchPathSettings{}', | ||
std_vector_int | pivotIndices = None ) |
\\ingroup BooleanGroup \\brief Makes closed continuous contour by mesh tri points, note that first and last meshTriPoint should not be same Finds shortest paths between neighbor \\p meshTriPoints and build closed contour MR::cutMesh input \\param pivotIndices optional output indices of given meshTriPoints in result OneMeshContour \\note better use convertMeshTriPointsToMeshContour(...) instead, note that it requires same front and back MeshTriPoints for closed contour
OneMeshContour meshlib.mrmeshpy.convertMeshTriPointsToMeshContour | ( | Mesh | mesh, |
std_vector_MeshTriPoint | meshTriPoints, | ||
SearchPathSettings | searchSettings = 'MR::SearchPathSettings{}', | ||
std_vector_int | pivotIndices = None ) |
\\ingroup BooleanGroup \\brief Makes continuous contour by mesh tri points, if first and last meshTriPoint is the same, makes closed contour Finds shortest paths between neighbor \\p meshTriPoints and build contour MR::cutMesh input \\param searchSettings settings for search geo path \\param pivotIndices optional output indices of given meshTriPoints in result OneMeshContour
std_vector_OneMeshContour meshlib.mrmeshpy.convertSurfacePathsToMeshContours | ( | Mesh | mesh, |
std_vector_std_vector_EdgePoint | surfacePaths ) |
\\ingroup BooleanGroup \\brief Converts SurfacePaths to OneMeshContours Creates MR::OneMeshContours object from given surface paths for MR::cutMesh input
OneMeshContour meshlib.mrmeshpy.convertSurfacePathWithEndsToMeshContour | ( | Mesh | mesh, |
MeshTriPoint | start, | ||
std_vector_EdgePoint | surfacePath, | ||
MeshTriPoint | end ) |
\\ingroup BooleanGroup \\brief Converts SurfacePath to OneMeshContours Creates MR::OneMeshContour object from given surface path with ends for MR::cutMesh input `start` and surfacePath.front() should be from same face surfacePath.back() and `end` should be from same face note that whole path (including `start` and `end`) should not have self-intersections also following case is not supported (vertex -> edge (incident with vertex)): vert path edge point path edge end o----------o- -- -- -- -- O \\ \\ / \\ \\ / \\ \\ / \\\\/ o path
std_vector_Vector2_float meshlib.mrmeshpy.copyContour | ( | std_vector_Vector2_double | from_ | ) |
copy double-contour to float-contour, or vice versa
std_vector_Vector2_double meshlib.mrmeshpy.copyContour | ( | std_vector_Vector2_float | from_ | ) |
copy double-contour to float-contour, or vice versa
std_vector_Vector3_float meshlib.mrmeshpy.copyContour | ( | std_vector_Vector3_double | from_ | ) |
copy double-contour to float-contour, or vice versa
std_vector_Vector3_double meshlib.mrmeshpy.copyContour | ( | std_vector_Vector3_float | from_ | ) |
copy double-contour to float-contour, or vice versa
Object meshlib.mrmeshpy.createObject | ( | str | className | ) |
the function to create new object instance by registered class name
SceneRootObject meshlib.mrmeshpy.createRootFormObject | ( | Object | obj | ) |
Removes all `obj` children and attaches it to newly created `SceneRootObject` note that it does not respect `obj` xf
std_vector_std_vector_Vector2_float meshlib.mrmeshpy.createSymbolContours | ( | SymbolMeshParams | params | ) |
converts text string into set of contours
Mesh meshlib.mrmeshpy.createSymbolsMesh | ( | SymbolMeshParams | params | ) |
converts text string into Z-facing symbol mesh
OpenVdbFloatGrid meshlib.mrmeshpy.cropped | ( | OpenVdbFloatGrid | grid, |
Box3i | box, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
returns cropped grid
std_vector_Id_EdgeTag meshlib.mrmeshpy.cutAlongEdgeLoop | ( | Mesh | mesh, |
std_vector_Id_EdgeTag | c0 ) |
given a closed loop of edges, splits the surface along that loop so that after return: 1) returned loop has the same size as input, with corresponding edges in same indexed elements of both; 2) all edges of c0 have no left faces; 3) all returned edges have no right faces; 4) vertices of the given mesh are updated
std_vector_Id_EdgeTag meshlib.mrmeshpy.cutAlongEdgeLoop | ( | MeshTopology | topology, |
std_vector_Id_EdgeTag | c0 ) |
given a closed loop of edges, splits the surface along that loop so that after return: 1) returned loop has the same size as input, with corresponding edges in same indexed elements of both; 2) all edges of c0 have no left faces; 3) all returned edges have no right faces;
CutMeshResult meshlib.mrmeshpy.cutMesh | ( | Mesh | mesh, |
std_vector_OneMeshContour | contours, | ||
CutMeshParameters | params = 'MR::CutMeshParameters{}' ) |
\\ingroup BooleanGroup \\brief Cuts mesh by given contours This function cuts mesh making new edges paths on place of input contours \\param mesh Input mesh that will be cut \\param contours Input contours to cut mesh with, find more \\ref MR::OneMeshContours \\param params Parameters describing some cut options, find more \\ref MR::CutMeshParameters \\return New edges that correspond to given contours, find more \\ref MR::CutMeshResult \\parblock \\warning Input contours should have no intersections, faces where contours intersects (`bad faces`) will not be allowed for fill \\endparblock \\parblock \\warning Input mesh will be changed in any case, if `bad faces` are in mesh, mesh will be spoiled, \\n so if you cannot guarantee contours without intersections better make copy of mesh, before using this function \\endparblock
int meshlib.mrmeshpy.deactivateFarPairs | ( | IPointPairs | pairs, |
float | maxDistSq ) |
reset active bit if pair distance is further than maxDistSq
DecimatePolylineResult meshlib.mrmeshpy.decimateContour | ( | std_vector_Vector2_float | contour, |
DecimatePolylineSettings_Vector2f | settings = 'MR::DecimatePolylineSettings2{}' ) |
\\brief Collapse edges in the contour according to the settings \\ingroup DecimateGroup
DecimatePolylineResult meshlib.mrmeshpy.decimateContour | ( | std_vector_Vector3_float | contour, |
DecimatePolylineSettings_Vector3f | settings = 'MR::DecimatePolylineSettings3{}' ) |
DecimateResult meshlib.mrmeshpy.decimateMesh | ( | Mesh | mesh, |
DecimateSettings | settings = 'MR::DecimateSettings{}' ) |
\\brief Collapse edges in mesh region according to the settings \\ingroup DecimateGroup \\details Have version for parallel computing - \\ref decimateParallelMesh \\image html decimate/decimate_before.png "Before" width = 350cm \\image html decimate/decimate_after.png "After" width = 350cm \\sa \\ref decimateParallelMesh \\sa \\ref resolveMeshDegenerations
DecimatePolylineResult meshlib.mrmeshpy.decimatePolyline | ( | Polyline2 | polyline, |
DecimatePolylineSettings_Vector2f | settings = 'MR::DecimatePolylineSettings2{}' ) |
\\brief Collapse edges in the polyline according to the settings \\ingroup DecimateGroup
DecimatePolylineResult meshlib.mrmeshpy.decimatePolyline | ( | Polyline3 | polyline, |
DecimatePolylineSettings_Vector3f | settings = 'MR::DecimatePolylineSettings3{}' ) |
std_vector_unsigned_char meshlib.mrmeshpy.decode64 | ( | str | val | ) |
decodes Base64 format into binary data
None meshlib.mrmeshpy.decompressZip | ( | os.PathLike | zipFile, |
os.PathLike | targetFolder, | ||
str | password = None ) |
\\brief decompresses given zip-file into given folder \\param password if password is given then it will be used to decipher encrypted archive
None meshlib.mrmeshpy.decompressZip | ( | typing.Any | zipStream, |
os.PathLike | targetFolder, | ||
str | password = None ) |
\\brief decompresses given binary stream (containing the data of a zip file only) into given folder \\param password if password is given then it will be used to decipher encrypted archive
deletes object faces with normals pointed to the target geometry center
std_vector_std_vector_Id_EdgeTag meshlib.mrmeshpy.delRegionKeepBd | ( | Mesh | mesh, |
FaceBitSet | region = None ) |
deletes all region faces, inner edges and vertices, but keeps boundary edges and vertices of the region (or whole mesh if region is null); returns edge loops, each having deleted region faces on the left, and not-region faces or holes on the right
None meshlib.mrmeshpy.denoiseNormals | ( | Mesh | mesh, |
FaceNormals | normals, | ||
UndirectedEdgeScalars | v, | ||
float | gamma ) |
Smooth face normals, given \\param mesh contains topology information and coordinates for equation weights \\param normals input noisy normals and output smooth normals \\param v edge indicator function (1 - smooth edge, 0 - crease edge) \\param gamma the amount of smoothing: 0 - no smoothing, 1 - average smoothing, ... see the article "Mesh Denoising via a Novel Mumford-Shah Framework", equation (19)
LoadedObjectT meshlib.mrmeshpy.deserializeObjectTree | ( | os.PathLike | path, |
func_void_from_std_filesystem_path | postDecompress = 'MR::FolderCallback{}', | ||
func_bool_from_float | progressCb = 'MR::ProgressCallback{}' ) |
\\brief loads objects tree from given scene file (zip/mru) \\details format specification: children are saved under folder with name of their parent object all objects parameters are saved in one JSON file in the root folder if postDecompress is set, it is called after decompression loading is controlled with Object::deserializeModel_ and Object::deserializeFields_
LoadedObjectT meshlib.mrmeshpy.deserializeObjectTreeFrom3mf | ( | os.PathLike | file, |
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
loads scene from 3MF file in a new container object
LoadedObjectT meshlib.mrmeshpy.deserializeObjectTreeFromFolder | ( | os.PathLike | folder, |
func_bool_from_float | progressCb = 'MR::ProgressCallback{}' ) |
\\brief loads objects tree from given scene folder \\details format specification: children are saved under folder with name of their parent object all objects parameters are saved in one JSON file in the root folder loading is controlled with Object::deserializeModel_ and Object::deserializeFields_
Object meshlib.mrmeshpy.deserializeObjectTreeFromGltf | ( | os.PathLike | file, |
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
loads scene from glTF file in a new container object
LoadedObjectT meshlib.mrmeshpy.deserializeObjectTreeFromModel | ( | os.PathLike | file, |
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
loads scene from .model file in a new container object
std_vector_std_vector_Id_EdgeTag meshlib.mrmeshpy.detectBasisTunnels | ( | MeshPart | mp, |
func_float_from_Id_EdgeTag | metric = 'MR::EdgeMetric{}', | ||
func_bool_from_float | progressCallback = 'MR::ProgressCallback{}' ) |
detects all not-contractible-in-point and not-equivalent tunnel loops on the mesh; trying to include in the loops the edges with the smallest metric; if no metric is given then discreteMinusAbsMeanCurvatureMetric will be used
std_vector_int meshlib.mrmeshpy.detectLoneContours | ( | std_vector_std_vector_VariableEdgeTri | contours | ) |
Detects contours that fully lay inside one triangle returns they indices in contours
FaceBitSet meshlib.mrmeshpy.detectTunnelFaces | ( | MeshPart | mp, |
DetectTunnelSettings | settings = 'MR::DetectTunnelSettings{}' ) |
returns tunnels as a number of faces; if you remove these faces and patch every boundary with disk, then the surface will be topology equivalent to sphere
bool meshlib.mrmeshpy.dilateRegion | ( | Mesh | mesh, |
FaceBitSet | region, | ||
float | dilation, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
expands the region (of faces or vertices) on given value (in meters). returns false if callback also returns false
bool meshlib.mrmeshpy.dilateRegion | ( | Mesh | mesh, |
UndirectedEdgeBitSet | region, | ||
float | dilation, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
bool meshlib.mrmeshpy.dilateRegion | ( | Mesh | mesh, |
VertBitSet | region, | ||
float | dilation, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
bool meshlib.mrmeshpy.dilateRegion | ( | PointCloud | pointCloud, |
VertBitSet | region, | ||
float | dilation, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}', | ||
AffineXf3f | xf = None ) |
expands the region on given euclidian distance. returns false if callback also returns false
bool meshlib.mrmeshpy.dilateRegionByMetric | ( | MeshTopology | topology, |
func_float_from_Id_EdgeTag | metric, | ||
FaceBitSet | region, | ||
float | dilation, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
expands the region (of faces or vertices) on given metric value. returns false if callback also returns false
bool meshlib.mrmeshpy.dilateRegionByMetric | ( | MeshTopology | topology, |
func_float_from_Id_EdgeTag | metric, | ||
UndirectedEdgeBitSet | region, | ||
float | dilation, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
bool meshlib.mrmeshpy.dilateRegionByMetric | ( | MeshTopology | topology, |
func_float_from_Id_EdgeTag | metric, | ||
VertBitSet | region, | ||
float | dilation, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
func_float_from_Id_EdgeTag meshlib.mrmeshpy.discreteAbsMeanCurvatureMetric | ( | Mesh | mesh | ) |
returns edge's absolute discrete mean curvature as a metric; the metric is minimal in the planar regions of mesh; this metric is symmetric: m(e) == m(e.sym())
func_float_from_Id_EdgeTag meshlib.mrmeshpy.discreteMinusAbsMeanCurvatureMetric | ( | Mesh | mesh | ) |
returns minus of edge's absolute discrete mean curvature as a metric; the metric is minimal in the most curved regions of mesh; this metric is symmetric: m(e) == m(e.sym())
None meshlib.mrmeshpy.distanceMapFromContours | ( | DistanceMap | distMap, |
Polyline2 | polyline, | ||
ContourToDistanceMapParams | params, | ||
ContoursDistanceMapOptions | options = 'MR::ContoursDistanceMapOptions{}' ) |
\\brief Computes distance of 2d contours according ContourToDistanceMapParams \\param distMap - preallocated distance map \\param options - optional input and output options for distance map calculation, find more \\ref ContoursDistanceMapOptions
DistanceMap meshlib.mrmeshpy.distanceMapFromContours | ( | Polyline2 | contours, |
ContourToDistanceMapParams | params, | ||
ContoursDistanceMapOptions | options = 'MR::ContoursDistanceMapOptions{}' ) |
\\brief Computes distance of 2d contours according ContourToDistanceMapParams \\param options - optional input and output options for distance map calculation, find more \\ref ContoursDistanceMapOptions
tuple[Polyline2, AffineXf3f] meshlib.mrmeshpy.distanceMapTo2DIsoPolyline | ( | DistanceMap | distMap, |
AffineXf3f | xf, | ||
float | isoValue, | ||
bool | useDepth = False ) |
computes iso-lines of distance map corresponding to given iso-value; in second returns the transformation from 0XY plane to world; \\param useDepth true - the isolines will be located on distance map surface, false - isolines for any iso-value will be located on the common plane xf(0XY)
Polyline2 meshlib.mrmeshpy.distanceMapTo2DIsoPolyline | ( | DistanceMap | distMap, |
ContourToDistanceMapParams | params, | ||
float | isoValue ) |
iso-lines are created in real space ( plane OXY with parameters according ContourToDistanceMapParams )
Polyline2 meshlib.mrmeshpy.distanceMapTo2DIsoPolyline | ( | DistanceMap | distMap, |
float | isoValue ) |
converts distance map to 2d iso-lines: iso-lines are created in space DistanceMap ( plane OXY with pixelSize = (1, 1) )
Polyline2 meshlib.mrmeshpy.distanceMapTo2DIsoPolyline | ( | DistanceMap | distMap, |
float | pixelSize, | ||
float | isoValue ) |
Mesh meshlib.mrmeshpy.distanceMapToMesh | ( | DistanceMap | distMap, |
AffineXf3f | toWorld, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
converts distance map into mesh and applies a transformation to all points
None meshlib.mrmeshpy.dividePolylineWithPlane | ( | Polyline3 | polyline, |
Plane3f | plane, | ||
DividePolylineParameters | params = 'MR::DividePolylineParameters{}' ) |
This function divides polyline with a plane \\param polyline Input polyline that will be cut by the plane \\param plane Input plane to cut polyline with \\param params parameters of the function, contains optional output
PointCloud meshlib.mrmeshpy.divideWithPlane | ( | PointCloud | points, |
Plane3f | plane, | ||
DividePointCloudOptionalOutput | optOut = 'MR::DividePointCloudOptionalOutput{}' ) |
This function cuts a point cloud with a plane, leaving only the part of mesh that lay in positive direction of normal \\return Point cloud object with vertices on the positive side of the plane \\param pc Input point cloud that will be cut by the plane \\param plane Input plane to cut point cloud with \\param optOut optional output of the function
Mesh meshlib.mrmeshpy.doBooleanOperation | ( | Mesh | meshACut, |
Mesh | meshBCut, | ||
std_vector_std_vector_Id_EdgeTag | cutEdgesA, | ||
std_vector_std_vector_Id_EdgeTag | cutEdgesB, | ||
BooleanOperation | operation, | ||
AffineXf3f | rigidB2A = None, | ||
BooleanResultMapper | mapper = None, | ||
bool | mergeAllNonIntersectingComponents = False, | ||
BooleanInternalParameters | intParams = 'MR::BooleanInternalParameters{}' ) |
Perform boolean operation on cut meshes \\return mesh in space of meshA or error. \\note: actually this function is meant to be internal, use "boolean" instead
SegmentSegmentIntersectResult meshlib.mrmeshpy.doSegmentSegmentIntersect | ( | std_array_PreciseVertCoords2_4 | vs | ) |
checks whether the segments AB (indices 01) and segments CD (indices 23) intersect; uses simulation-of-simplicity to avoid edge-segment intersections and co-planarity
TriangleSegmentIntersectResult meshlib.mrmeshpy.doTriangleSegmentIntersect | ( | std_array_PreciseVertCoords_5 | vs | ) |
checks whether triangle ABC (indices 012) and segment DE (indices 34) intersect uses simulation-of-simplicity to avoid edge-segment intersections and co-planarity
Mesh meshlib.mrmeshpy.doubleOffsetMesh | ( | MeshPart | mp, |
float | offsetA, | ||
float | offsetB, | ||
OffsetParameters | params = 'MR::OffsetParameters{}' ) |
Offsets mesh by converting it to voxels and back two times only closed meshes allowed (only Offset mode) typically offsetA and offsetB have distinct signs
Mesh meshlib.mrmeshpy.doubleOffsetVdb | ( | MeshPart | mp, |
DoubleOffsetSettings | settings ) |
performs convention from mesh to voxel grid and back with offsetA, and than same with offsetB; if input mesh is not closed then the sign of distance field will be obtained using generalized winding number computation
int meshlib.mrmeshpy.duplicateMultiHoleVertices | ( | Mesh | mesh | ) |
Duplicates all vertices having more than two boundary edges (and returns the number of duplications);
func_float_from_Id_EdgeTag meshlib.mrmeshpy.edgeCurvMetric | ( | Mesh | mesh, |
float | angleSinFactor = 2, | ||
float | angleSinForBoundary = 0 ) |
returns edge's metric that depends both on edge's length and on the angle between its left and right faces \\param angleSinFactor multiplier before dihedral angle sine in edge metric calculation (positive to prefer concave angles, negative - convex) \\param angleSinForBoundary consider this dihedral angle sine for boundary edges; this metric is symmetric: m(e) == m(e.sym())
func_float_from_Id_EdgeTag meshlib.mrmeshpy.edgeLengthMetric | ( | Mesh | mesh | ) |
returns edge's length as a metric; this metric is symmetric: m(e) == m(e.sym())
updates a2b map to a2c map using b2c map
returns map a2c from a2b and b2c maps
std_vector_Vector3_float meshlib.mrmeshpy.edgePointsFromContours | ( | Polyline2 | polyline, |
float | pixelSize, | ||
float | threshold ) |
Makes distance map and filter out pixels with large (>threshold) distance between closest points on contour in neighbor pixels Converts such points back in 3d space and return \\note that polyline topology should be consistently oriented
func_float_from_Id_EdgeTag meshlib.mrmeshpy.edgeTableMetric | ( | MeshTopology | topology, |
func_float_from_Id_EdgeTag | metric ) |
func_float_from_Id_EdgeTag meshlib.mrmeshpy.edgeTableSymMetric | ( | MeshTopology | topology, |
func_float_from_Id_EdgeTag | metric ) |
pre-computes the metric for all mesh edges to quickly return it later for any edge; input metric must be symmetric: metric(e) == metric(e.sym())
Id_EdgeTag meshlib.mrmeshpy.eliminateDegree3Dest | ( | MeshTopology | topology, |
Id_EdgeTag | e, | ||
FaceBitSet | region = None ) |
if the destination of given edge has degree 3 and 3 incident triangles, then eliminates the destination vertex with all its edges and all but one faces, and returns valid remaining edge with same origin as e; if region is provided then eliminated triangles are excluded from it; otherwise returns invalid edge
int meshlib.mrmeshpy.eliminateDegree3Vertices | ( | MeshTopology | topology, |
VertBitSet | region, | ||
FaceBitSet | fs = None ) |
eliminates from the mesh all vertices having degree 3 and 3 incident triangles from given region (which is updated); if \\param fs is provided then eliminated triangles are excluded from it; \\return the number of vertices eliminated
Id_EdgeTag meshlib.mrmeshpy.eliminateDoubleTris | ( | MeshTopology | topology, |
Id_EdgeTag | e, | ||
FaceBitSet | region = None ) |
if the edge e has both left and right triangular faces and the degree of dest( e ) is 2, then eliminates left( e ), right( e ), e, e.sym(), next( e ), dest( e ), and returns prev( e ); if region is provided then eliminated faces are excluded from it; otherwise returns invalid edge
None meshlib.mrmeshpy.eliminateDoubleTrisAround | ( | MeshTopology | topology, |
VertId | v, | ||
FaceBitSet | region = None ) |
eliminates all double triangles around given vertex preserving vertex valid; if region is provided then eliminated triangles are excluded from it
Mesh meshlib.mrmeshpy.embedStructureToTerrain | ( | Mesh | terrain, |
Mesh | structure, | ||
EmbeddedStructureParameters | params ) |
Returns terrain mesh with structure embedded to it, or error string terrain - mesh with +Z normal (not-closed mesh is expected) structure - mesh with one open contour and +Z normal, that will be embedded in terrain
str meshlib.mrmeshpy.encode64 | ( | int | data, |
int | size ) |
encodes binary data into textual Base64 format
ViewportIterator meshlib.mrmeshpy.end | ( | * | args, |
** | kwargs ) |
RingIterator_NextEdgeSameOrigin meshlib.mrmeshpy.end | ( | IteratorRange_RingIterator_NextEdgeSameOrigin | range | ) |
bool meshlib.mrmeshpy.equalizeTriAreas | ( | Mesh | mesh, |
MeshEqualizeTriAreasParams | params = 'MR::MeshEqualizeTriAreasParams{}', | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
applies given number of iterations with movement toward vertexPosEqualNeiAreas() to the whole mesh ( or some region if it is specified ) \\return true if the operation completed successfully, and false if it was interrupted by the progress callback.
bool meshlib.mrmeshpy.erodeRegion | ( | Mesh | mesh, |
FaceBitSet | region, | ||
float | dilation, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
shrinks the region (of faces or vertices) on given value (in meters). returns false if callback also returns false
bool meshlib.mrmeshpy.erodeRegion | ( | Mesh | mesh, |
UndirectedEdgeBitSet | region, | ||
float | dilation, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
bool meshlib.mrmeshpy.erodeRegion | ( | Mesh | mesh, |
VertBitSet | region, | ||
float | dilation, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
bool meshlib.mrmeshpy.erodeRegion | ( | PointCloud | pointCloud, |
VertBitSet | region, | ||
float | erosion, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}', | ||
AffineXf3f | xf = None ) |
shrinks the region on given euclidian distance. returns false if callback also returns false
bool meshlib.mrmeshpy.erodeRegionByMetric | ( | MeshTopology | topology, |
func_float_from_Id_EdgeTag | metric, | ||
FaceBitSet | region, | ||
float | dilation, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
shrinks the region (of faces or vertices) on given metric value. returns false if callback also returns false
bool meshlib.mrmeshpy.erodeRegionByMetric | ( | MeshTopology | topology, |
func_float_from_Id_EdgeTag | metric, | ||
UndirectedEdgeBitSet | region, | ||
float | dilation, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
bool meshlib.mrmeshpy.erodeRegionByMetric | ( | MeshTopology | topology, |
func_float_from_Id_EdgeTag | metric, | ||
VertBitSet | region, | ||
float | dilation, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
None meshlib.mrmeshpy.evalGridMinMax | ( | OpenVdbFloatGrid | grid, |
float_output | min, | ||
float_output | max ) |
eval min max value from FloatGrid
None meshlib.mrmeshpy.executeHoleFillPlan | ( | Mesh | mesh, |
Id_EdgeTag | a0, | ||
HoleFillPlan | plan, | ||
FaceBitSet | outNewFaces = None ) |
quickly triangulates the face or hole to the left of (e) given the plan (quickly compared to fillHole function)
None meshlib.mrmeshpy.expand | ( | MeshTopology | topology, |
FaceBitSet | region, | ||
int | hops = 1 ) |
adds to the region all faces within given number of hops (stars) from the initial region boundary
FaceBitSet meshlib.mrmeshpy.expand | ( | MeshTopology | topology, |
FaceId | f, | ||
int | hops ) |
returns the region of all faces within given number of hops (stars) from the initial face
None meshlib.mrmeshpy.expand | ( | MeshTopology | topology, |
VertBitSet | region, | ||
int | hops = 1 ) |
adds to the region all vertices within given number of hops (stars) from the initial region boundary
VertBitSet meshlib.mrmeshpy.expand | ( | MeshTopology | topology, |
VertId | v, | ||
int | hops ) |
returns the region of all vertices within given number of hops (stars) from the initial vertex
FaceBitSet meshlib.mrmeshpy.expandFaces | ( | MeshTopology | topology, |
FaceBitSet | region, | ||
UndirectedEdgeBitSet | stopEdges = None ) |
returns given region with all faces sharing an edge with a region face; \\param stopEdges - neighborhood via this edges will be ignored
None meshlib.mrmeshpy.expandPixelMask | ( | PixelBitSet | mask, |
RectIndexer | indexer, | ||
int | expansion = 1 ) |
expands PixelBitSet with given number of steps
None meshlib.mrmeshpy.expandVoxelsMask | ( | VoxelBitSet | mask, |
VolumeIndexer | indexer, | ||
int | expansion = 1 ) |
expands VoxelBitSet with given number of steps
ObjectGcode meshlib.mrmeshpy.exportToolPathToGCode | ( | std_vector_GCommand | commands | ) |
generates G-Code for milling tool
std_vector_Id_EdgeTag meshlib.mrmeshpy.extendAllHoles | ( | Mesh | mesh, |
Plane3f | plane, | ||
FaceBitSet | outNewFaces = None ) |
adds cylindrical extension of too all holes of the mesh by calling extendHole(...); \\return representative edges of one per every hole after extension
Id_EdgeTag meshlib.mrmeshpy.extendHole | ( | Mesh | mesh, |
Id_EdgeTag | a, | ||
func_Vector3_float_from_Vector3_float | getVertPos, | ||
FaceBitSet | outNewFaces = None ) |
adds extension of given hole represented by one of its edges (having no valid left face) by adding new vertices located at getVertPos( existing vertex position ); \\return the edge of new hole opposite to input edge (a)
Id_EdgeTag meshlib.mrmeshpy.extendHole | ( | Mesh | mesh, |
Id_EdgeTag | a, | ||
Plane3f | plane, | ||
FaceBitSet | outNewFaces = None ) |
adds cylindrical extension of given hole represented by one of its edges (having no valid left face) by adding new vertices located in given plane and 2 * number_of_hole_edge triangles; \\return the edge of new hole opposite to input edge (a)
std_vector_std_vector_Id_EdgeTag meshlib.mrmeshpy.extractClosedLoops | ( | MeshTopology | topology, |
EdgeBitSet | edges ) |
finds all closed loops from given edges and removes them from edges
std_vector_std_vector_Id_EdgeTag meshlib.mrmeshpy.extractClosedLoops | ( | MeshTopology | topology, |
std_vector_Id_EdgeTag | inEdges, | ||
EdgeBitSet | outNotLoopEdges = None ) |
std_vector_std_vector_Vector3_float meshlib.mrmeshpy.extractIntersectionContours | ( | Mesh | meshA, |
Mesh | meshB, | ||
std_vector_std_vector_VariableEdgeTri | orientedContours, | ||
CoordinateConverters | converters, | ||
AffineXf3f | rigidB2A = None ) |
extracts coordinates from two meshes intersection contours
std_vector_std_vector_EdgePoint meshlib.mrmeshpy.extractIsolines | ( | MeshTopology | topology, |
func_float_from_Id_VertTag | vertValues, | ||
FaceBitSet | region = None ) |
extracts all iso-lines from given scalar field and iso-value=0
std_vector_std_vector_EdgePoint meshlib.mrmeshpy.extractIsolines | ( | MeshTopology | topology, |
VertScalars | vertValues, | ||
float | isoValue, | ||
FaceBitSet | region = None ) |
extracts all iso-lines from given scalar field and iso-value
std_vector_Id_EdgeTag meshlib.mrmeshpy.extractLongestClosedLoop | ( | Mesh | mesh, |
std_vector_Id_EdgeTag | inEdges ) |
std_vector_std_vector_EdgePoint meshlib.mrmeshpy.extractPlaneSections | ( | MeshPart | mp, |
Plane3f | plane ) |
extracts all plane sections of given mesh
std_vector_EdgeSegment meshlib.mrmeshpy.extractSectionsFromPolyline | ( | Polyline3 | polyline, |
Plane3f | plane, | ||
float | eps ) |
This function cuts polyline with a plane \\return Edge segments tha are closer to the plane than \\param eps \\param polyline Input polyline that will be cut by the plane \\param plane Input plane to cut polyline with \\param eps Maximal distance from the plane
std_vector_std_vector_EdgePoint meshlib.mrmeshpy.extractXYPlaneSections | ( | MeshPart | mp, |
float | zLevel ) |
extracts all sections of given mesh with the plane z=zLevel; this function works faster than general extractPlaneSections(...) for the same plane if the sections cross relatively small number of mesh triangles and AABB tree has already been constructed
updates a2b map to a2c map using b2c map
returns map a2c from a2b and b2c maps
FaceBitSet meshlib.mrmeshpy.fillContourLeft | ( | MeshTopology | topology, |
std_vector_Id_EdgeTag | contour ) |
fill region located to the left from given edges
FaceBitSet meshlib.mrmeshpy.fillContourLeft | ( | MeshTopology | topology, |
std_vector_std_vector_Id_EdgeTag | contours ) |
FaceBitSet meshlib.mrmeshpy.fillContourLeftByGraphCut | ( | MeshTopology | topology, |
std_vector_Id_EdgeTag | contour, | ||
func_float_from_Id_EdgeTag | metric ) |
\\brief Fills region located to the left from given contour, by minimizing the sum of metric over the boundary \\ingroup MeshSegmentationGroup
FaceBitSet meshlib.mrmeshpy.fillContourLeftByGraphCut | ( | MeshTopology | topology, |
std_vector_std_vector_Id_EdgeTag | contours, | ||
func_float_from_Id_EdgeTag | metric ) |
\\brief Fills region located to the left from given contours, by minimizing the sum of metric over the boundary \\ingroup MeshSegmentationGroup
None meshlib.mrmeshpy.fillContours2D | ( | Mesh | mesh, |
std_vector_Id_EdgeTag | holeRepresentativeEdges ) |
@brief fill holes with border in same plane (i.e. after cut by plane) @param mesh - mesh with holes @param holeRepresentativeEdges - each edge here represents a hole borders that should be filled should be not empty edges should have invalid left face (FaceId == -1) @return Expected with has_value()=true if holes filled, otherwise - string error
None meshlib.mrmeshpy.fillHole | ( | Mesh | mesh, |
Id_EdgeTag | a, | ||
FillHoleParams | params = 'MR::FillHoleParams{}' ) |
\\brief Fills hole in mesh\\n Fills given hole represented by one of its edges (having no valid left face),\\n uses fillHoleTrivially if cannot fill hole without multiple edges,\\n default metric: CircumscribedFillMetric \\image html fill/before_fill.png "Before" width = 250cm \\image html fill/fill.png "After" width = 250cm Next picture show, how newly generated faces can be smoothed \\ref MR::positionVertsSmoothly \\ref MR::subdivideMesh \\image html fill/fill_smooth.png "Fill with smooth" width = 250cm \\param mesh mesh with hole \\param a EdgeId which represents hole (should not have valid left FaceId) \\param params parameters of hole filling \\sa \\ref buildCylinderBetweenTwoHoles \\sa \\ref fillHoleTrivially \\sa \\ref FillHoleParams
FaceBitSet meshlib.mrmeshpy.fillHoleNicely | ( | Mesh | mesh, |
Id_EdgeTag | holeEdge, | ||
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 \\return triangles of the patch
None meshlib.mrmeshpy.fillHoles | ( | Mesh | mesh, |
std_vector_Id_EdgeTag | as_, | ||
FillHoleParams | params = 'MR::FillHoleParams{}' ) |
fill all holes given by their representative edges in \\param as
VertId meshlib.mrmeshpy.fillHoleTrivially | ( | Mesh | mesh, |
Id_EdgeTag | a, | ||
FaceBitSet | outNewFaces = None ) |
\\brief Triangulates face of hole in mesh trivially\\n \\ingroup FillHoleGroup Fills given hole represented by one of its edges (having no valid left face)\\n by creating one new vertex in the centroid of boundary vertices and connecting new vertex with all boundary vertices. \\image html fill/before_fill.png "Before" width = 250cm \\image html fill/fill_triv.png "After" width = 250cm Next picture show, how newly generated faces can be smoothed \\ref MR::positionVertsSmoothly \\ref MR::subdivideMesh \\image html fill/fill_triv_smooth.png "Trivial fill with smooth" width = 250cm \\param mesh mesh with hole \\param a EdgeId points on the face or hole to the left that will be triangulated \\param outNewFaces optional output newly generated faces \\return new vertex \\sa \\ref fillHole
None meshlib.mrmeshpy.filterCreaseEdges | ( | Mesh | mesh, |
UndirectedEdgeBitSet | creaseEdges, | ||
float | critLength, | ||
bool | filterComponents = True, | ||
bool | filterBranches = False ) |
filters given edges using the following criteria: if \\param filterComponents is true then connected components with summary length of their edges less than \\param critLength will be excluded if \\param filterBranches is true then branches shorter than \\param critLength will be excluded
tuple[bool, int] meshlib.mrmeshpy.filterHistoryActionsVector | ( | std_vector_std_shared_ptr_HistoryAction | historyVector, |
func_bool_from_std_shared_ptr_HistoryAction | filteringCondition, | ||
int | firstRedoIndex = 0, | ||
bool | deepFiltering = True ) |
\\brief Remove actions from history actions vector that match the condition \\param firstRedoIndex - set redo index for calculate how many actions removed before it \\param deepFiltering - filter actions into combined actions \\return pair (anything removed, how many removed before firstRedoIndex)
Triangulation meshlib.mrmeshpy.findAlphaShapeAllTriangles | ( | PointCloud | cloud, |
float | radius ) |
find all triangles of alpha-shape with negative alpha = -1/radius
None meshlib.mrmeshpy.findAlphaShapeNeiTriangles | ( | PointCloud | cloud, |
VertId | v, | ||
float | radius, | ||
Triangulation | appendTris, | ||
std_vector_Id_VertTag | neis, | ||
bool | onlyLargerVids ) |
find all triangles of alpha-shape with negative alpha = -1/radius, where each triangle contains point #v and two other points
float meshlib.mrmeshpy.findAvgPointsRadius | ( | PointCloud | pointCloud, |
int | avgPoints, | ||
int | samples = 1024 ) |
\\brief Finds the radius of ball, so on average that ball contained avgPoints excluding the central point \\param samples the number of test points to find given number of samples in each \\ingroup PointCloudGroup
std_vector_Vector3_float meshlib.mrmeshpy.findBestFreeformDeformation | ( | Box3f | box, |
std_vector_Vector3_float | source, | ||
std_vector_Vector3_float | target, | ||
Vector3i | resolution = 'Vector3i::diagonal(2)', | ||
AffineXf3f | samplesToBox = None ) |
Calculates best Free Form transform to fit given source->target deformation origin ref grid as box corners ( resolution parameter specifies how to divide box ) samplesToBox - if set used to transform source and target points to box space returns new positions of ref grid
VertBitSet meshlib.mrmeshpy.findCloseVertices | ( | Mesh | mesh, |
float | closeDist, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
finds all close vertices, where for each vertex there is another one located within given distance
VertBitSet meshlib.mrmeshpy.findCloseVertices | ( | PointCloud | cloud, |
float | closeDist, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
finds all close vertices, where for each vertex there is another one located within given distance
VertBitSet meshlib.mrmeshpy.findCloseVertices | ( | VertCoords | points, |
float | closeDist, | ||
VertBitSet | valid = None, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
finds all close vertices, where for each vertex there is another one located within given distance
VertBitSet meshlib.mrmeshpy.findCloseVertices | ( | 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_EdgePointPair meshlib.mrmeshpy.findCollidingEdgePairs | ( | Polyline2 | a, |
Polyline2 | b, | ||
AffineXf2f | rigidB2A = None, | ||
bool | firstIntersectionOnly = False ) |
\\brief finds all pairs of colliding edges from two 2d polylines \\param rigidB2A rigid transformation from B-polyline space to A polyline space, nullptr considered as identity transformation \\param firstIntersectionOnly if true then the function returns at most one pair of intersecting edges and returns faster
std_vector_UndirectedEdgeUndirectedEdge meshlib.mrmeshpy.findCollidingEdges | ( | Polyline2 | a, |
Polyline2 | b, | ||
AffineXf2f | rigidB2A = None, | ||
bool | firstIntersectionOnly = False ) |
\\brief finds all pairs of colliding edges from two 2d polylines \\param rigidB2A rigid transformation from B-polyline space to A polyline space, nullptr considered as identity transformation \\param firstIntersectionOnly if true then the function returns at most one pair of intersecting edges and returns faster
tuple[UndirectedEdgeBitSet, UndirectedEdgeBitSet] meshlib.mrmeshpy.findCollidingEdgesBitsets | ( | Polyline2 | a, |
Polyline2 | b, | ||
AffineXf2f | rigidB2A = None ) |
\\brief finds bitset per polyline with colliding edges \\param rigidB2A rigid transformation from B-polyline space to A polyline space, nullptr considered as identity transformation
std_vector_EdgeTri meshlib.mrmeshpy.findCollidingEdgeTrisPrecise | ( | Mesh | a, |
std_vector_Id_EdgeTag | edgesA, | ||
Mesh | b, | ||
std_vector_Id_FaceTag | facesB, | ||
func_Vector3_int_from_Vector3_float | conv, | ||
AffineXf3f | rigidB2A = None ) |
finds all intersections between every given edge from A and given triangles from B
std_vector_EdgeTri meshlib.mrmeshpy.findCollidingEdgeTrisPrecise | ( | Mesh | a, |
std_vector_Id_FaceTag | facesA, | ||
Mesh | b, | ||
std_vector_Id_EdgeTag | edgesB, | ||
func_Vector3_int_from_Vector3_float | conv, | ||
AffineXf3f | rigidB2A = None ) |
finds all intersections between every given triangle from A and given edge from B
PreciseCollisionResult meshlib.mrmeshpy.findCollidingEdgeTrisPrecise | ( | MeshPart | a, |
MeshPart | b, | ||
func_Vector3_int_from_Vector3_float | conv, | ||
AffineXf3f | rigidB2A = None, | ||
bool | anyIntersection = False ) |
\\brief finds all pairs of colliding edges from one mesh and triangle from another mesh \\param rigidB2A rigid transformation from B-mesh space to A mesh space, nullptr considered as identity transformation \\param anyIntersection if true then the function returns as fast as it finds any intersection
tuple[FaceBitSet, FaceBitSet] meshlib.mrmeshpy.findCollidingTriangleBitsets | ( | MeshPart | a, |
MeshPart | b, | ||
AffineXf3f | rigidB2A = None ) |
the same as \\ref findCollidingTriangles, but returns one bite set per mesh with colliding triangles
std_vector_FaceFace meshlib.mrmeshpy.findCollidingTriangles | ( | MeshPart | a, |
MeshPart | b, | ||
AffineXf3f | rigidB2A = None, | ||
bool | firstIntersectionOnly = False ) |
\\brief finds all pairs of colliding triangles from two meshes or two mesh regions \\param rigidB2A rigid transformation from B-mesh space to A mesh space, nullptr considered as identity transformation \\param firstIntersectionOnly if true then the function returns at most one pair of intersecting triangles and returns faster
FaceBitSet meshlib.mrmeshpy.findDegenerateFaces | ( | MeshPart | mp, |
float | criticalAspectRatio = 3.4028234663852886e+38, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
finds faces having aspect ratio >= criticalAspectRatio
VertId meshlib.mrmeshpy.findDirMax | ( | Vector3f | dir, |
MeshPart | mp, | ||
UseAABBTree | u = 'UseAABBTree::Yes' ) |
finds the vertex in the mesh part having the largest projection on given direction, uses aabb-tree inside for faster computation \\ingroup AABBTreeGroup
MeshMeshDistanceResult meshlib.mrmeshpy.findDistance | ( | MeshPart | a, |
MeshPart | b, | ||
AffineXf3f | rigidB2A = None, | ||
float | upDistLimitSq = 3.4028234663852886e+38 ) |
\\brief computes minimal distance between two meshes or two mesh regions \\param rigidB2A rigid transformation from B-mesh space to A mesh space, nullptr considered as identity transformation \\param upDistLimitSq upper limit on the distance in question, if the real distance is larger than the function exists returning upDistLimitSq and no valid points
None meshlib.mrmeshpy.findEdgesInBall | ( | Polyline2 | polyline, |
Vector2f | center, | ||
float | radius, | ||
func_void_from_Id_UndirectedEdgeTag_Vector2_float_float | foundCallback, | ||
AffineXf2f | xf = None ) |
Finds all edges of given polyline that cross or touch given ball (center, radius)
None meshlib.mrmeshpy.findEdgesInBall | ( | Polyline3 | polyline, |
Vector3f | center, | ||
float | radius, | ||
func_void_from_Id_UndirectedEdgeTag_Vector3_float_float | foundCallback, | ||
AffineXf3f | xf = None ) |
Finds all edges of given polyline that cross or touch given ball (center, radius)
UndirectedEdgeBitSet meshlib.mrmeshpy.findExtremeEdges | ( | Mesh | mesh, |
VertScalars | field, | ||
ExtremeEdgeType | type ) |
computes all edges in the mesh, where the field not-increases both in left and right triangles
None meshlib.mrmeshpy.findFewClosestPoints | ( | Vector3f | pt, |
PointCloud | pc, | ||
FewSmallest_PointsProjectionResult | res, | ||
float | upDistLimitSq = 3.4028234663852886e+38, | ||
AffineXf3f | xf = None, | ||
float | loDistLimitSq = 0 ) |
\\brief finds a number of the closest points in the cloud (as configured in \\param res) to given point \\param upDistLimitSq upper limit on the distance in question, points with larger distance than it will not be returned \\param xf pointcloud-to-point transformation, if not specified then identity transformation is assumed \\param loDistLimitSq low limit on the distance in question, the algorithm can return given number of points within this distance even skipping closer ones
IOFilter meshlib.mrmeshpy.findFilter | ( | std_vector_IOFilter | filters, |
str | extension ) |
find a corresponding filter for a given extension
VertBitSet meshlib.mrmeshpy.findHalfSpacePoints | ( | PointCloud | pc, |
Plane3f | plane ) |
\\return All vertices on the positive side of the plane \\param pc Input point cloud that will be cut by the plane \\param plane Input plane to cut point cloud with
FaceBitSet meshlib.mrmeshpy.findHoleComplicatingFaces | ( | Mesh | mesh | ) |
returns all faces that complicate one of mesh holes; hole is complicated if it passes via one vertex more than once; deleting such faces simplifies the holes and makes them easier to fill
FaceBitSet meshlib.mrmeshpy.findInnerShellFacesWithSplits | ( | MeshPart | mp, |
Mesh | shell, | ||
FindInnerShellSettings | settings = 'MR::FindInnerShellSettings{}' ) |
Finds inner-shell faces on bidirectional \\param shell constructed for an open \\param mp; The function will return all shell faces (after some subdivision) that have distance to mesh of same sign as settings.side
VertBitSet meshlib.mrmeshpy.findInnerShellVerts | ( | MeshPart | mp, |
Mesh | shell, | ||
FindInnerShellSettings | settings = 'MR::FindInnerShellSettings{}' ) |
Finds inner-shell vertices on bidirectional \\param shell constructed for an open \\param mp; The function will return all shell vertices that have distance to mesh of same sign as settings.side
InSphere meshlib.mrmeshpy.findInSphere | ( | Mesh | mesh, |
MeshPoint | m, | ||
InSphereSearchSettings | settings ) |
finds maximal sphere inscribed in the mesh touching point (p) with center along the normal at (p)
InSphere meshlib.mrmeshpy.findInSphere | ( | Mesh | mesh, |
VertId | v, | ||
InSphereSearchSettings | settings ) |
std_vector_std_vector_Vector3_float meshlib.mrmeshpy.findIntersectionContours | ( | Mesh | meshA, |
Mesh | meshB, | ||
AffineXf3f | rigidB2A = None ) |
returns intersection contours of given meshes
std_vector_std_vector_Id_EdgeTag meshlib.mrmeshpy.findLeftBoundary | ( | MeshTopology | topology, |
FaceBitSet | region = None ) |
returns all region boundary loops; every loop has region faces on the left, and not-region faces or holes on the right
std_vector_std_vector_Id_EdgeTag meshlib.mrmeshpy.findLeftBoundaryInsideMesh | ( | MeshTopology | topology, |
FaceBitSet | region ) |
returns all region boundary paths; every path has region faces on the left, and valid not-region faces on the right
float meshlib.mrmeshpy.findMaxDistanceSq | ( | MeshPart | a, |
MeshPart | b, | ||
AffineXf3f | rigidB2A = None, | ||
float | maxDistanceSq = 3.4028234663852886e+38 ) |
\\brief 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) \\param rigidB2A rigid transformation from B-mesh space to A mesh space, nullptr considered as identity transformation \\param maxDistanceSq upper limit on the positive distance in question, if the real distance is larger than the function exists returning maxDistanceSq
float meshlib.mrmeshpy.findMaxDistanceSq | ( | PointCloud | a, |
PointCloud | b, | ||
AffineXf3f | rigidB2A = None, | ||
float | maxDistanceSq = 3.4028234663852886e+38 ) |
\\brief 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) \\param rigidB2A rigid transformation from B-cloud space to A-cloud space, nullptr considered as identity transformation \\param maxDistanceSq upper limit on the positive distance in question, if the real distance is larger than the function exists returning maxDistanceSq
float meshlib.mrmeshpy.findMaxDistanceSqOneWay | ( | MeshPart | a, |
MeshPart | b, | ||
AffineXf3f | rigidB2A = None, | ||
float | maxDistanceSq = 3.4028234663852886e+38 ) |
\\brief returns the maximum of the squared distances from each B-mesh vertex to A-mesh \\param rigidB2A rigid transformation from B-mesh space to A mesh space, nullptr considered as identity transformation \\param maxDistanceSq upper limit on the positive distance in question, if the real distance is larger than the function exists returning maxDistanceSq
float meshlib.mrmeshpy.findMaxDistanceSqOneWay | ( | PointCloud | a, |
PointCloud | b, | ||
AffineXf3f | rigidB2A = None, | ||
float | maxDistanceSq = 3.4028234663852886e+38 ) |
\\brief returns the maximum of the squared distances from each B-point to A-cloud \\param rigidB2A rigid transformation from B-cloud space to A-cloud space, nullptr considered as identity transformation \\param maxDistanceSq upper limit on the positive distance in question, if the real distance is larger than the function exists returning maxDistanceSq
None meshlib.mrmeshpy.findMaxVectorDim | ( | int_output | dimX, |
int_output | dimY, | ||
int_output | dimZ, | ||
Vector3d | dir ) |
\\brief finds index of maximum axis and stores it into dimZ \\details http://jcgt.org/published/0002/01/05/paper.pdf Example input: dir = (1,1,-2). Result: dimZ = 2, dimX = 1, dimY = 0. \\param[out] dimX are filled by right-hand rule from dimZ \\param[out] dimY are filled by right-hand rule from dimZ \\param[out] dimZ index of maximum axis
None meshlib.mrmeshpy.findMaxVectorDim | ( | int_output | dimX, |
int_output | dimY, | ||
int_output | dimZ, | ||
Vector3f | dir ) |
\\brief finds index of maximum axis and stores it into dimZ \\details http://jcgt.org/published/0002/01/05/paper.pdf Example input: dir = (1,1,-2). Result: dimZ = 2, dimX = 1, dimY = 0. \\param[out] dimX are filled by right-hand rule from dimZ \\param[out] dimY are filled by right-hand rule from dimZ \\param[out] dimZ index of maximum axis
None meshlib.mrmeshpy.findMeshEdgesInBall | ( | Mesh | mesh, |
AABBTreePolyline3 | tree, | ||
Vector3f | center, | ||
float | radius, | ||
func_void_from_Id_UndirectedEdgeTag_Vector3_float_float | foundCallback, | ||
AffineXf3f | xf = None ) |
Finds all edges of given mesh edges (specified by the tree) that cross or touch given ball (center, radius)
std_vector_std_pair_Id_VertTag_Id_VertTag meshlib.mrmeshpy.findMultipleEdges | ( | MeshTopology | topology, |
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
Buffer_VertId meshlib.mrmeshpy.findNClosestPointsPerPoint | ( | PointCloud | pc, |
int | numNei, | ||
func_bool_from_float | progress = 'MR::ProgressCallback{}' ) |
\\brief finds given number of closest points (excluding itself) to each valid point in the cloud; \\param numNei the number of closest points to find for each point \\return a buffer where for every valid point with index `i` its neighbours are stored at indices [i*numNei; (i+1)*numNei)
VertBitSet meshlib.mrmeshpy.findNeighborVerts | ( | Mesh | mesh, |
PointOnFace | start, | ||
float | range ) |
calculates all neighbor vertices within a given \\param range and to first vertices with the distance more or equal than range
VertBitSet meshlib.mrmeshpy.findNRingVerts | ( | MeshTopology | topology, |
int | n, | ||
VertBitSet | region = None ) |
finds vertices in region with complete ring of N edges
std_vector_TaggedBitSet_FaceTag meshlib.mrmeshpy.findOverhangs | ( | Mesh | mesh, |
FindOverhangsSettings | settings ) |
\\brief Find face regions that might create overhangs \\param mesh - source mesh \\param settings - parameters \\return face regions
FaceBitSet meshlib.mrmeshpy.findOverlappingTris | ( | MeshPart | mp, |
FindOverlappingSettings | settings ) |
finds all triangles that have oppositely oriented close triangle in the mesh
None meshlib.mrmeshpy.findPointsInBall | ( | AABBTreePoints | tree, |
Vector3f | center, | ||
float | radius, | ||
func_void_from_Id_VertTag_Vector3_float | foundCallback, | ||
AffineXf3f | xf = None ) |
Finds all points in tree that are inside or on the surface of given ball (center, radius) \\ingroup AABBTreeGroup \\param xf points-to-center transformation, if not specified then identity transformation is assumed
None meshlib.mrmeshpy.findPointsInBall | ( | Mesh | mesh, |
Vector3f | center, | ||
float | radius, | ||
func_void_from_Id_VertTag_Vector3_float | foundCallback, | ||
AffineXf3f | xf = None ) |
Finds all valid vertices of the mesh that are inside or on the surface of given ball (center, radius) \\ingroup AABBTreeGroup \\param xf points-to-center transformation, if not specified then identity transformation is assumed
None meshlib.mrmeshpy.findPointsInBall | ( | PointCloud | pointCloud, |
Vector3f | center, | ||
float | radius, | ||
func_void_from_Id_VertTag_Vector3_float | foundCallback, | ||
AffineXf3f | xf = None ) |
Finds all valid points of pointCloud that are inside or on the surface of given ball (center, radius) \\ingroup AABBTreeGroup \\param xf points-to-center transformation, if not specified then identity transformation is assumed
MeshProjectionResult meshlib.mrmeshpy.findProjection | ( | Vector3f | pt, |
MeshPart | mp, | ||
float | upDistLimitSq = 3.4028234663852886e+38, | ||
AffineXf3f | xf = None, | ||
float | loDistLimitSq = 0, | ||
func_bool_from_Id_FaceTag | validFaces = 'MR::FacePredicate{}', | ||
func_bool_from_MeshProjectionResult | validProjections = 'std::function<bool (const MR::MeshProjectionResult &)>{}' ) |
\\brief computes the closest point on mesh (or its region) to given point \\param upDistLimitSq upper limit on the distance in question, if the real distance is larger than the function exits returning upDistLimitSq and no valid point \\param xf mesh-to-point transformation, if not specified then identity transformation is assumed \\param loDistLimitSq low limit on the distance in question, if a point is found within this distance then it is immediately returned without searching for a closer one \\param validFaces if provided then only faces from there will be considered as projections \\param validProjections if provided then only projections passed this test can be returned
PolylineProjectionResult3 meshlib.mrmeshpy.findProjectionOnMeshEdges | ( | Line3f | ln, |
Mesh | mesh, | ||
AABBTreePolyline3 | tree, | ||
float | upDistLimitSq = 3.4028234663852886e+38, | ||
AffineXf3f | xf = None, | ||
float | loDistLimitSq = 0 ) |
\\brief computes the closest point on the mesh edges (specified by the tree) to given straight line \\param upDistLimitSq upper limit on the distance in question, if the real distance is larger than the function exists returning upDistLimitSq and no valid point \\param xf polyline-to-point transformation, if not specified then identity transformation is assumed \\param loDistLimitSq low limit on the distance in question, if a point is found within this distance then it is immediately returned without searching for a closer one
PolylineProjectionResult3 meshlib.mrmeshpy.findProjectionOnMeshEdges | ( | Vector3f | pt, |
Mesh | mesh, | ||
AABBTreePolyline3 | tree, | ||
float | upDistLimitSq = 3.4028234663852886e+38, | ||
AffineXf3f | xf = None, | ||
float | loDistLimitSq = 0 ) |
\\brief computes the closest point on the mesh edges (specified by the tree) to given point \\param upDistLimitSq upper limit on the distance in question, if the real distance is larger than the function exists returning upDistLimitSq and no valid point \\param xf polyline-to-point transformation, if not specified then identity transformation is assumed \\param loDistLimitSq low limit on the distance in question, if a point is found within this distance then it is immediately returned without searching for a closer one
PointsProjectionResult meshlib.mrmeshpy.findProjectionOnPoints | ( | Vector3f | pt, |
PointCloud | pc, | ||
float | upDistLimitSq = 3.4028234663852886e+38, | ||
AffineXf3f | xf = None, | ||
float | loDistLimitSq = 0, | ||
func_bool_from_Id_VertTag | skipCb = 'MR::VertPredicate{}' ) |
\\brief computes the closest point on point cloud to given point \\param upDistLimitSq upper limit on the distance in question, if the real distance is larger than the function exits returning upDistLimitSq and no valid point \\param xf pointcloud-to-point transformation, if not specified then identity transformation is assumed \\param loDistLimitSq low limit on the distance in question, if a point is found within this distance then it is immediately returned without searching for a closer one \\param skipCb callback to discard VertId projection candidate
PolylineProjectionResult3 meshlib.mrmeshpy.findProjectionOnPolyline | ( | Line3f | ln, |
Polyline3 | polyline, | ||
float | upDistLimitSq = 3.4028234663852886e+38, | ||
AffineXf3f | xf = None, | ||
float | loDistLimitSq = 0 ) |
\\brief computes the closest point on polyline to given straight line \\param upDistLimitSq upper limit on the distance in question, if the real distance is larger than the function exists returning upDistLimitSq and no valid point \\param xf polyline-to-point transformation, if not specified then identity transformation is assumed \\param loDistLimitSq low limit on the distance in question, if a point is found within this distance then it is immediately returned without searching for a closer one
PolylineProjectionResult3 meshlib.mrmeshpy.findProjectionOnPolyline | ( | Vector3f | pt, |
Polyline3 | polyline, | ||
float | upDistLimitSq = 3.4028234663852886e+38, | ||
AffineXf3f | xf = None, | ||
float | loDistLimitSq = 0 ) |
\\brief computes the closest point on polyline to given point \\param upDistLimitSq upper limit on the distance in question, if the real distance is larger than the function exists returning upDistLimitSq and no valid point \\param xf polyline-to-point transformation, if not specified then identity transformation is assumed \\param loDistLimitSq low limit on the distance in question, if a point is found within this distance then it is immediately returned without searching for a closer one
PolylineProjectionResult2 meshlib.mrmeshpy.findProjectionOnPolyline2 | ( | Vector2f | pt, |
Polyline2 | polyline, | ||
float | upDistLimitSq = 3.4028234663852886e+38, | ||
AffineXf2f | xf = None, | ||
float | loDistLimitSq = 0 ) |
\\brief computes the closest point on polyline to given point \\param upDistLimitSq upper limit on the distance in question, if the real distance is larger than the function exists returning upDistLimitSq and no valid point \\param xf polyline-to-point transformation, if not specified then identity transformation is assumed \\param loDistLimitSq low limit on the distance in question, if a point is found within this distance then it is immediately returned without searching for a closer one
Polyline2ProjectionWithOffsetResult meshlib.mrmeshpy.findProjectionOnPolyline2WithOffset | ( | Vector2f | pt, |
Polyline2 | polyline, | ||
UndirectedEdgeScalars | offsetPerEdge, | ||
float | upDistLimit = 3.4028234663852886e+38, | ||
AffineXf2f | xf = None, | ||
float | loDistLimit = 0 ) |
\\brief computes the closest point on polyline to given point, respecting each edge offset \\param offsetPerEdge offset for each edge of polyline \\param upDistLimit upper limit on the distance in question, if the real distance is larger than the function exists returning upDistLimit and no valid point \\param xf polyline-to-point transformation, if not specified then identity transformation is assumed \\param loDistLimit low limit on the distance in question, if a point is found within this distance then it is immediately returned without searching for a closer one
PolylineProjectionWithOffsetResult3 meshlib.mrmeshpy.findProjectionOnPolylineWithOffset | ( | Vector3f | pt, |
Polyline3 | polyline, | ||
UndirectedEdgeScalars | offsetPerEdge, | ||
float | upDistLimit = 3.4028234663852886e+38, | ||
AffineXf3f | xf = None, | ||
float | loDistLimit = 0 ) |
\\brief computes the closest point on polyline to given point, respecting each edge offset \\param offsetPerEdge offset for each edge of polyline \\param upDistLimit upper limit on the distance in question, if the real distance is larger than the function exists returning upDistLimit and no valid point \\param xf polyline-to-point transformation, if not specified then identity transformation is assumed \\param loDistLimit low limit on the distance in question, if a point is found within this distance then it is immediately returned without searching for a closer one
MeshProjectionResult meshlib.mrmeshpy.findProjectionSubtree | ( | Vector3f | pt, |
MeshPart | mp, | ||
AABBTree | tree, | ||
float | upDistLimitSq = 3.4028234663852886e+38, | ||
AffineXf3f | xf = None, | ||
float | loDistLimitSq = 0, | ||
func_bool_from_Id_FaceTag | validFaces = 'MR::FacePredicate{}', | ||
func_bool_from_MeshProjectionResult | validProjections = 'std::function<bool (const MR::MeshProjectionResult &)>{}' ) |
\\brief computes the closest point on mesh (or its region) to given point \\param tree explicitly given BVH-tree for whole mesh or part of mesh we are searching projection on, \\param upDistLimitSq upper limit on the distance in question, if the real distance is larger than the function exits returning upDistLimitSq and no valid point \\param xf mesh-to-point transformation, if not specified then identity transformation is assumed \\param loDistLimitSq low limit on the distance in question, if a point is found within this distance then it is immediately returned without searching for a closer one \\param validFaces if provided then only faces from there will be considered as projections \\param validProjections if provided then only projections passed this test can be returned
UndirectedEdgeBitSet meshlib.mrmeshpy.findRegionBoundaryUndirectedEdgesInsideMesh | ( | MeshTopology | topology, |
FaceBitSet | region ) |
returns all region boundary edges, where each edge has a region face on one side, and a valid not-region face on another side
FaceBitSet meshlib.mrmeshpy.findRegionOuterFaces | ( | MeshTopology | topology, |
FaceBitSet | region ) |
\\returns All out of region faces that have a common edge with at least one region face
Triangulation meshlib.mrmeshpy.findRepeatedOrientedTriangles | ( | AllLocalTriangulations | triangs, |
int | repetitions ) |
from local triangulations returns all oriented triangles with given number of repetitions each in [1,3]
None meshlib.mrmeshpy.findRepeatedOrientedTriangles | ( | AllLocalTriangulations | triangs, |
Triangulation | outRep3, | ||
Triangulation | outRep2 ) |
from local triangulations returns all oriented triangles with 3 or 2 repetitions each; if both outRep3 and outRep2 are necessary then it is faster to call this function than above one
std_vector_UnorientedTriangle meshlib.mrmeshpy.findRepeatedUnorientedTriangles | ( | AllLocalTriangulations | triangs, |
int | repetitions ) |
from local triangulations returns all unoriented triangles with given number of repetitions each in [1,3]
VertBitSet meshlib.mrmeshpy.findRepeatedVertsOnHoleBd | ( | MeshTopology | topology | ) |
returns set bits for all vertices present on the boundary of a hole several times;
std_vector_std_vector_Id_EdgeTag meshlib.mrmeshpy.findRightBoundary | ( | MeshTopology | topology, |
FaceBitSet | region = None ) |
returns all region boundary loops; every loop has region faces on the right, and not-region faces or holes on the left
Vector2f meshlib.mrmeshpy.findSegmentSegmentIntersectionPrecise | ( | Vector2f | a, |
Vector2f | b, | ||
Vector2f | c, | ||
Vector2f | d, | ||
CoordinateConverters2 | converters ) |
finds intersection precise, using high precision int inside this function input should have intersection
Vector2i meshlib.mrmeshpy.findSegmentSegmentIntersectionPrecise | ( | Vector2i | a, |
Vector2i | b, | ||
Vector2i | c, | ||
Vector2i | d ) |
finds intersection precise, using high precision int inside this function input should have intersection
std_vector_EdgePointPair meshlib.mrmeshpy.findSelfCollidingEdgePairs | ( | Polyline2 | polyline | ) |
finds all pairs of colliding edges from 2d polyline
std_vector_UndirectedEdgeUndirectedEdge meshlib.mrmeshpy.findSelfCollidingEdges | ( | Polyline2 | polyline | ) |
finds all pairs of colliding edges from 2d polyline
UndirectedEdgeBitSet meshlib.mrmeshpy.findSelfCollidingEdgesBS | ( | Polyline2 | polyline | ) |
finds the union of all self-intersecting edges
std_vector_FaceFace meshlib.mrmeshpy.findSelfCollidingTriangles | ( | MeshPart | mp, |
func_bool_from_float | cb = 'MR::ProgressCallback{}', | ||
Face2RegionMap | regionMap = None ) |
finds all pairs of colliding triangles from one mesh or a region
bool meshlib.mrmeshpy.findSelfCollidingTriangles | ( | MeshPart | mp, |
std_vector_FaceFace | outCollidingPairs, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}', | ||
Face2RegionMap | regionMap = None ) |
finds all pairs (or the fact of any self-collision) of colliding triangles from one mesh or a region
FaceBitSet meshlib.mrmeshpy.findSelfCollidingTrianglesBS | ( | MeshPart | mp, |
func_bool_from_float | cb = 'MR::ProgressCallback{}', | ||
Face2RegionMap | regionMap = None ) |
the same \\ref findSelfCollidingTriangles but returns the union of all self-intersecting faces
UndirectedEdgeBitSet meshlib.mrmeshpy.findShortEdges | ( | MeshPart | mp, |
float | criticalLength, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
finds edges having length <= criticalLength
MeshMeshSignedDistanceResult meshlib.mrmeshpy.findSignedDistance | ( | MeshPart | a, |
MeshPart | b, | ||
AffineXf3f | rigidB2A = None, | ||
float | upDistLimitSq = 3.4028234663852886e+38 ) |
\\brief computes minimal distance between two meshes \\param rigidB2A rigid transformation from B-mesh space to A mesh space, nullptr considered as identity transformation \\param upDistLimitSq upper limit on the positive distance in question, if the real distance is larger than the function exists returning upDistLimitSq and no valid points
SignedDistanceToMeshResult meshlib.mrmeshpy.findSignedDistance | ( | Vector3f | pt, |
MeshPart | mp, | ||
float | upDistLimitSq = 3.4028234663852886e+38, | ||
float | loDistLimitSq = 0 ) |
\\brief 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) \\param upDistLimitSq upper limit on the distance in question, if the real distance is larger then the function exits returning nullopt \\param loDistLimitSq low limit on the distance in question, if the real distance smaller then the function exits returning nullopt
BitSet meshlib.mrmeshpy.findSkyRays | ( | Mesh | terrain, |
VertCoords | samples, | ||
VertBitSet | validSamples, | ||
std_vector_SkyPatch | skyPatches, | ||
std_vector_MeshIntersectionResult | outIntersections = None ) |
In each valid sample point tests the rays from that point in the sky; \\return bitset where for every valid sample #i its rays are stored at indices [i*numPatches; (i+1)*numPatches), 0s for occluded rays (hitting the terrain) and 1s for the ones which don't hit anything and reach the sky \\param outIntersections - optional output vector of MeshIntersectionResult for every valid sample point
VertMap meshlib.mrmeshpy.findSmallestCloseVertices | ( | Mesh | mesh, |
float | closeDist, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
returns a map where each valid vertex is mapped to the smallest valid vertex Id located within given distance (including itself), and this smallest vertex is mapped to itself, each vertex not from valid set is mapped to itself
VertMap meshlib.mrmeshpy.findSmallestCloseVertices | ( | PointCloud | cloud, |
float | closeDist, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
returns a map where each valid vertex is mapped to the smallest valid vertex Id located within given distance (including itself), and this smallest vertex is mapped to itself, each vertex not from valid set is mapped to itself
VertMap meshlib.mrmeshpy.findSmallestCloseVertices | ( | VertCoords | points, |
float | closeDist, | ||
VertBitSet | valid = None, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
returns a map where each valid vertex is mapped to the smallest valid vertex Id located within given distance (including itself), and this smallest vertex is mapped to itself, each vertex not from valid set is mapped to itself; the search tree is constructe inside
VertMap meshlib.mrmeshpy.findSmallestCloseVerticesUsingTree | ( | VertCoords | points, |
float | closeDist, | ||
AABBTreePoints | tree, | ||
VertBitSet | valid, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
returns a map where each valid vertex is mapped to the smallest valid vertex Id located within given distance (including itself), and this smallest vertex is mapped to itself, each vertex not from valid set is mapped to itself; given tree is used as is
EdgePoint meshlib.mrmeshpy.findSteepestDescentPoint | ( | MeshPart | mp, |
VertScalars | field, | ||
EdgePoint | 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)
EdgePoint meshlib.mrmeshpy.findSteepestDescentPoint | ( | MeshPart | mp, |
VertScalars | field, | ||
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)
EdgePoint meshlib.mrmeshpy.findSteepestDescentPoint | ( | MeshPart | mp, |
VertScalars | field, | ||
VertId | v ) |
finds the point along minus maximal gradient on the boundary of first ring boundary around given vertex
int meshlib.mrmeshpy.findSubstringCaseInsensitive | ( | str | string, |
str | substring ) |
Finds the substring in the string. \\return position, npos if not found \\ingroup BasicGroup
Vector3f meshlib.mrmeshpy.findTriangleSegmentIntersectionPrecise | ( | Vector3f | a, |
Vector3f | b, | ||
Vector3f | c, | ||
Vector3f | d, | ||
Vector3f | e, | ||
CoordinateConverters | converters ) |
finds intersection precise, using high precision int inside this function input should have intersection
None meshlib.mrmeshpy.findTrisInBall | ( | MeshPart | mp, |
Ball | ball, | ||
func_Processing_from_MeshProjectionResult_Ball | foundCallback, | ||
func_bool_from_Id_FaceTag | validFaces = 'MR::FacePredicate{}' ) |
enumerates all triangles within the ball until callback returns Stop; the ball during enumeration can shrink (new ball is always within the previous one) but never expand
std_vector_std_pair_Id_EdgeTag_Id_EdgeTag meshlib.mrmeshpy.findTwinEdgePairs | ( | Mesh | mesh, |
float | closeDist ) |
finds pairs of twin edges (each twin edge will be present at least in one of pairs)
EdgeBitSet meshlib.mrmeshpy.findTwinEdges | ( | Mesh | mesh, |
float | closeDist ) |
finds all directed twin edges
EdgeBitSet meshlib.mrmeshpy.findTwinEdges | ( | std_vector_std_pair_Id_EdgeTag_Id_EdgeTag | pairs | ) |
phmap_flat_hash_map_Id_UndirectedEdgeTag_Id_UndirectedEdgeTag meshlib.mrmeshpy.findTwinUndirectedEdgeHashMap | ( | Mesh | mesh, |
float | closeDist ) |
provided that each edge has at most one twin, composes bidirectional mapping between twins
phmap_flat_hash_map_Id_UndirectedEdgeTag_Id_UndirectedEdgeTag meshlib.mrmeshpy.findTwinUndirectedEdgeHashMap | ( | std_vector_std_pair_Id_EdgeTag_Id_EdgeTag | pairs | ) |
UndirectedEdgeBitSet meshlib.mrmeshpy.findTwinUndirectedEdges | ( | Mesh | mesh, |
float | closeDist ) |
finds all undirected twin edges
UndirectedEdgeBitSet meshlib.mrmeshpy.findTwinUndirectedEdges | ( | std_vector_std_pair_Id_EdgeTag_Id_EdgeTag | pairs | ) |
tuple[VertId, VertId] meshlib.mrmeshpy.findTwoClosestPoints | ( | PointCloud | pc, |
func_bool_from_float | progress = 'MR::ProgressCallback{}' ) |
finds two closest points (first id < second id) in whole point cloud
None meshlib.mrmeshpy.findUndercuts | ( | Mesh | mesh, |
Vector3f | upDirection, | ||
FaceBitSet | outUndercuts ) |
Adds to \\param outUndercuts undercut faces
float meshlib.mrmeshpy.findUndercuts | ( | Mesh | mesh, |
Vector3f | upDirection, | ||
FaceBitSet | outUndercuts, | ||
func_double_from_TaggedBitSet_FaceTag_Vector3_float | metric ) |
Adds to \\param outUndercuts undercut faces Returns summary metric of undercut faces
None meshlib.mrmeshpy.findUndercuts | ( | Mesh | mesh, |
Vector3f | upDirection, | ||
VertBitSet | outUndercuts ) |
Adds to \\param outUndercuts undercut vertices
None meshlib.mrmeshpy.fixMultipleEdges | ( | Mesh | mesh | ) |
finds and resolves multiple edges
None meshlib.mrmeshpy.fixMultipleEdges | ( | Mesh | mesh, |
std_vector_std_pair_Id_VertTag_Id_VertTag | multipleEdges ) |
resolves given multiple edges, but splitting all but one edge in each group
None meshlib.mrmeshpy.fixSelfIntersections | ( | Mesh | mesh, |
float | voxelSize ) |
Fix self-intersections by converting to voxels and back.
None meshlib.mrmeshpy.fixUndercuts | ( | Mesh | mesh, |
FaceBitSet | selectedArea, | ||
Vector3f | upDirection, | ||
float | voxelSize = 0.0, | ||
float | bottomExtension = 0.0 ) |
Changes mesh: Fills all holes first, then: fixes undercuts (in selected area) via prolonging widest points down Requires to update RenderObject after using upDirection is in mesh space voxelSize - size of voxel in mesh rasterization, precision grows with lower voxelSize bottomExtension - this parameter specifies how long should bottom prolongation be, if (bottomExtension <= 0) bottomExtension = 2*voxelSize if mesh is not closed this is used to prolong hole and make bottom if voxelSize == 0.0f it will be counted automaticly
None meshlib.mrmeshpy.fixUndercuts | ( | Mesh | mesh, |
Vector3f | upDirection, | ||
float | voxelSize = 0.0, | ||
float | bottomExtension = 0.0 ) |
Changes mesh: Fills all holes first, then: fixes undercuts via prolonging widest points down Requires to update RenderObject after using upDirection is in mesh space voxelSize - size of voxel in mesh rasterization, precision grows with lower voxelSize bottomExtension - this parameter specifies how long should bottom prolongation be, if (bottomExtension <= 0) bottomExtension = 2*voxelSize if mesh is not closed this is used to prolong hole and make bottom if voxelSize == 0.0f it will be counted automaticly
VdbVolume meshlib.mrmeshpy.floatGridToVdbVolume | ( | OpenVdbFloatGrid | grid | ) |
fills VdbVolume data from FloatGrid (does not fill voxels size, cause we expect it outside)
str meshlib.mrmeshpy.formatNoTrailingZeros | ( | char_output | fmt, |
float | v, | ||
int | digitsAfterPoint, | ||
int | precision = 6 ) |
returns printf-format for floating-point value in decimal notation with given precision in digits and without trailing zeros after the decimal point \\param fmt preallocated buffer of 5 bytes \\param v value to print \\param digitsAfterPoint maximal number of digits after decimal point \\param precision maximal number of not-zero decimal digits
bool meshlib.mrmeshpy.fromSameTriangle | ( | MeshTopology | topology, |
EdgePoint | a, | ||
EdgePoint | b ) |
returns true if points a and b are located on a boundary of the same triangle; \\details if true a.e and b.e are updated to have that triangle on the left \\related EdgePoint
bool meshlib.mrmeshpy.fromSameTriangle | ( | MeshTopology | topology, |
MeshTriPoint | a, | ||
MeshTriPoint | b ) |
returns true if points a and b are located insides or on a boundary of the same triangle; if true a.e and b.e are updated to have that triangle on the left
LoadedObjectT meshlib.mrmeshpy.fromSceneMison | ( | os.PathLike | path, |
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
load scene from MISON file \\n JSON file with array named "Objects" or root array: \\n element fields:\\n "Filename" : required full path to file for loading object "XF": optional xf for loaded object "Name": optional name for loaded object
LoadedObjectT meshlib.mrmeshpy.fromSceneMison | ( | typing.Any | in_, |
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
SimpleVolumeMinMax meshlib.mrmeshpy.functionVolumeToSimpleVolume | ( | FunctionVolume | volume, |
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
converts function volume into simple volume
Mesh meshlib.mrmeshpy.generalOffsetMesh | ( | MeshPart | mp, |
float | offset, | ||
GeneralOffsetParameters | params ) |
Offsets mesh by converting it to voxels and back using one of three modes specified in the parameters
AffineXf3f meshlib.mrmeshpy.getAligningXf | ( | PointToPlaneAligningTransform | p2pl, |
ICPMode | mode, | ||
float | angleLimit, | ||
float | scaleLimit, | ||
Vector3f | fixedRotationAxis ) |
given prepared (p2pl) object, finds the best transformation from it of given type with given limitations on rotation angle and global scale
std_vector_TaggedBitSet_FaceTag meshlib.mrmeshpy.getAllComponents | ( | Face2RegionMap | componentsMap, |
int | componentsCount, | ||
FaceBitSet | region, | ||
int | maxComponentCount ) |
gets all connected components from components map ( FaceId => RegionId ) \\detail if components number more than the maxComponentCount, they will be combined into groups of the same size (this similarly changes componentsMap) \\param maxComponentCount should be more then 1 \\return components bitsets vector
tuple[std_vector_TaggedBitSet_FaceTag, int] meshlib.mrmeshpy.getAllComponents | ( | MeshPart | meshPart, |
int | maxComponentCount, | ||
MeshComponents.FaceIncidence | incidence = 'FaceIncidence::PerEdge', | ||
func_bool_from_Id_UndirectedEdgeTag | isCompBd = 'MR::UndirectedEdgePredicate{}' ) |
gets all connected components of mesh part \\detail if components number more than the maxComponentCount, they will be combined into groups of the same size \\param maxComponentCount should be more then 1 \\return pair components bitsets vector and number components in one group if components number more than maxComponentCount
std_vector_TaggedBitSet_FaceTag meshlib.mrmeshpy.getAllComponents | ( | MeshPart | meshPart, |
MeshComponents.FaceIncidence | incidence = 'FaceIncidence::PerEdge', | ||
func_bool_from_Id_UndirectedEdgeTag | isCompBd = 'MR::UndirectedEdgePredicate{}' ) |
gets all connected components of mesh part \\note be careful, if mesh is large enough and has many components, the memory overflow will occur
std_vector_TaggedBitSet_VertTag meshlib.mrmeshpy.getAllComponentsVerts | ( | Mesh | mesh, |
VertBitSet | region = None ) |
gets all connected components of mesh part
std_vector_IOFilter meshlib.mrmeshpy.getAllFilters | ( | ) |
returns filters for all supported file formats for all types of objects
std_vector_std_shared_ptr_Object meshlib.mrmeshpy.getAllObjectsInTree_Object | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_ObjectDistanceMap meshlib.mrmeshpy.getAllObjectsInTree_ObjectDistanceMap | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_ObjectLines meshlib.mrmeshpy.getAllObjectsInTree_ObjectLines | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_ObjectLinesHolder meshlib.mrmeshpy.getAllObjectsInTree_ObjectLinesHolder | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_ObjectMesh meshlib.mrmeshpy.getAllObjectsInTree_ObjectMesh | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_ObjectMeshHolder meshlib.mrmeshpy.getAllObjectsInTree_ObjectMeshHolder | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_ObjectPoints meshlib.mrmeshpy.getAllObjectsInTree_ObjectPoints | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_ObjectPointsHolder meshlib.mrmeshpy.getAllObjectsInTree_ObjectPointsHolder | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_ObjectVoxels meshlib.mrmeshpy.getAllObjectsInTree_ObjectVoxels | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_VisualObject meshlib.mrmeshpy.getAllObjectsInTree_VisualObject | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
UndirectedEdgeId meshlib.mrmeshpy.getAt | ( | Buffer_UndirectedEdgeId_UndirectedEdgeId | bmap, |
UndirectedEdgeId | key, | ||
UndirectedEdgeId | def_ = 'MR::UndirectedEdgeId{}' ) |
given some buffer map and a key, returns the value associated with the key, or default value if key is invalid
BooleanResultPoints meshlib.mrmeshpy.getBooleanPoints | ( | Mesh | meshA, |
Mesh | meshB, | ||
BooleanOperation | operation, | ||
AffineXf3f | rigidB2A = None ) |
\\brief Returns the points of mesh boolean's result mesh \\ingroup BooleanGroup Returns vertices and intersection points of mesh that is result of boolean operation of mesh `A` and mesh `B`. Can be used as fast alternative for cases where the mesh topology can be ignored (bounding box, convex hull, etc.) \\param meshA Input mesh `A` \\param meshB Input mesh `B` \\param operation Boolean operation to perform \\param rigidB2A Transform from mesh `B` space to mesh `A` space
FaceBitSet meshlib.mrmeshpy.getBoundaryFaces | ( | MeshTopology | topology, |
FaceBitSet | region ) |
returns faces from given region that have at least one neighbor face with shared edge not from the region
VertBitSet meshlib.mrmeshpy.getBoundaryVerts | ( | MeshTopology | topology, |
FaceBitSet | region = None ) |
composes the set of all boundary vertices for given region (or whole mesh if !region)
str meshlib.mrmeshpy.getCancelMessage | ( | os.PathLike | path | ) |
Returns message showed when loading is canceled
FillHoleMetric meshlib.mrmeshpy.getCircumscribedMetric | ( | Mesh | mesh | ) |
This metric minimizes the sum of circumcircle radii for all triangles in the triangulation. It is rather fast to calculate, and it results in typically good triangulations.
FillHoleMetric meshlib.mrmeshpy.getComplexFillMetric | ( | Mesh | mesh, |
Id_EdgeTag | e ) |
This metric minimizes the sum of triangleMetric for all triangles in the triangulation plus the sum edgeMetric for all edges inside and on the boundary of the triangulation.\\n Where\\n triangleMetric is proportional to weighted triangle area and triangle aspect ratio\\n edgeMetric grows with angle between triangles as ( ( 1 - cos( x ) ) / ( 1 + cos( x ) ) ) ^ 4.
FillHoleMetric meshlib.mrmeshpy.getComplexStitchMetric | ( | Mesh | mesh | ) |
This metric minimizes the sum of triangleMetric for all triangles in the triangulation plus the sum edgeMetric for all edges inside and on the boundary of the triangulation.\\n Where\\n triangleMetric is proportional to triangle aspect ratio\\n edgeMetric is proportional to ( 1 - dihedralAngleCos )
int meshlib.mrmeshpy.getContourPlaneIntersections | ( | std_vector_Vector3_float | path, |
Plane3f | plane, | ||
std_vector_Vector3_float | outIntersections = None ) |
finds all intersection points between given contour and plane, adds them in outIntersections and returns their number
str meshlib.mrmeshpy.GetCpuId | ( | ) |
returns string identification of the CPU
str meshlib.mrmeshpy.getCurrentStacktrace | ( | ) |
returns string representation of the current stacktrace
str meshlib.mrmeshpy.getCurrentStacktraceInline | ( | ) |
returns string representation of the current stacktrace; the function is inlined, to put the code in any shared library; if std::stacktrace is first called from MRMesh.dll then it is not unloaded propely
Object meshlib.mrmeshpy.getDepthFirstObject_Object | ( | Object | root, |
ObjectSelectivityType | type ) |
ObjectDistanceMap meshlib.mrmeshpy.getDepthFirstObject_ObjectDistanceMap | ( | Object | root, |
ObjectSelectivityType | type ) |
ObjectLines meshlib.mrmeshpy.getDepthFirstObject_ObjectLines | ( | Object | root, |
ObjectSelectivityType | type ) |
ObjectLinesHolder meshlib.mrmeshpy.getDepthFirstObject_ObjectLinesHolder | ( | Object | root, |
ObjectSelectivityType | type ) |
ObjectMesh meshlib.mrmeshpy.getDepthFirstObject_ObjectMesh | ( | Object | root, |
ObjectSelectivityType | type ) |
ObjectMeshHolder meshlib.mrmeshpy.getDepthFirstObject_ObjectMeshHolder | ( | Object | root, |
ObjectSelectivityType | type ) |
ObjectPoints meshlib.mrmeshpy.getDepthFirstObject_ObjectPoints | ( | Object | root, |
ObjectSelectivityType | type ) |
ObjectPointsHolder meshlib.mrmeshpy.getDepthFirstObject_ObjectPointsHolder | ( | Object | root, |
ObjectSelectivityType | type ) |
ObjectVoxels meshlib.mrmeshpy.getDepthFirstObject_ObjectVoxels | ( | Object | root, |
ObjectSelectivityType | type ) |
VisualObject meshlib.mrmeshpy.getDepthFirstObject_VisualObject | ( | Object | root, |
ObjectSelectivityType | type ) |
str meshlib.mrmeshpy.GetDetailedOSName | ( | ) |
returns string with OS name with details
FillHoleMetric meshlib.mrmeshpy.getEdgeLengthFillMetric | ( | Mesh | mesh | ) |
Simple metric minimizing the sum of all edge lengths
FillHoleMetric meshlib.mrmeshpy.getEdgeLengthStitchMetric | ( | Mesh | mesh | ) |
Forbids connecting vertices from the same hole \\n Simple metric minimizing edge length
UndirectedEdgeBMap meshlib.mrmeshpy.getEdgeOrdering | ( | FaceBMap | faceMap, |
MeshTopology | topology ) |
compute the order of edges given the order of faces: edges near first faces also appear first; \\param faceMap old face id -> new face id
os.PathLike meshlib.mrmeshpy.GetEmbeddedPythonDirectory | ( | ) |
returns path of embedded python modules files directory .dll .so files
os.PathLike meshlib.mrmeshpy.GetExeDirectory | ( | ) |
returns path of current exe directory
FaceBitSet meshlib.mrmeshpy.getFacesByMinEdgeLength | ( | Mesh | mesh, |
float | minLength ) |
Return faces with at least one edge longer than the specified length.
Vector3f meshlib.mrmeshpy.getFeatureDirection | ( | FeatureObject | feature | ) |
Using forEachObjectKind the template collects a list of features for which the method ...->getDirection() is available
Vector3f meshlib.mrmeshpy.getFeatureNormal | ( | FeatureObject | feature | ) |
Using forEachObjectKind the template collects a list of features for which the method ...->getNormal() is available
std_unordered_set_std_string meshlib.mrmeshpy.getFeaturesTypeWithDirections | ( | ) |
Try to getDirection from specific feature using forEachObjectKind template. Returns nullopt is ...->getDirection() is not available for given feature type.
std_unordered_set_std_string meshlib.mrmeshpy.getFeaturesTypeWithNormals | ( | ) |
Try to getNormal from specific feature using forEachObjectKind template. Returns nullopt is ...->getNormal() is not available for given feature type.
os.PathLike meshlib.mrmeshpy.GetFontsDirectory | ( | ) |
returns path of font files directory .ttf files
HoleFillPlan meshlib.mrmeshpy.getHoleFillPlan | ( | Mesh | mesh, |
Id_EdgeTag | e, | ||
FillHoleParams | params = 'MR::FillHoleParams{}' ) |
prepares the plan how to triangulate the face or hole to the left of (e) (not filling it immediately), several getHoleFillPlan can work in parallel
os.PathLike meshlib.mrmeshpy.GetHomeDirectory | ( | ) |
returns home directory
str meshlib.mrmeshpy.getICPStatusInfo | ( | int | iterations, |
ICPExitType | exitType ) |
returns status info string
UndirectedEdgeBitSet meshlib.mrmeshpy.getIncidentEdges | ( | MeshTopology | topology, |
FaceBitSet | faces ) |
composes the set of all undirected edges, having a face from given set from one of two sides
UndirectedEdgeBitSet meshlib.mrmeshpy.getIncidentEdges | ( | MeshTopology | topology, |
UndirectedEdgeBitSet | edges ) |
composes the set of all undirected edges, having at least one common vertex with an edge from given set
FaceBitSet meshlib.mrmeshpy.getIncidentFaces | ( | MeshTopology | topology, |
UndirectedEdgeBitSet | edges ) |
composes the set of all faces incident to given edges
FaceBitSet meshlib.mrmeshpy.getIncidentFaces | ( | MeshTopology | topology, |
VertBitSet | verts ) |
composes the set of all faces incident to given vertices
VertBitSet meshlib.mrmeshpy.getIncidentVerts | ( | MeshTopology | topology, |
FaceBitSet | faces ) |
composes the set of all vertices incident to given faces
VertBitSet meshlib.mrmeshpy.getIncidentVerts | ( | MeshTopology | topology, |
FaceBitSet | faces, | ||
VertBitSet | store ) |
if faces-parameter is null pointer then simply returns the reference on all valid vertices; otherwise performs store = getIncidentVerts( topology, *faces ) and returns reference on store
VertBitSet meshlib.mrmeshpy.getIncidentVerts | ( | MeshTopology | topology, |
UndirectedEdgeBitSet | edges ) |
composes the set of all vertices incident to given edges
VertBitSet meshlib.mrmeshpy.getIncidentVerts | ( | MeshTopology | topology, |
UndirectedEdgeBitSet | edges, | ||
VertBitSet | store ) |
if edges-parameter is null pointer then simply returns the reference on all valid vertices; otherwise performs store = getIncidentVerts( topology, *edges ) and returns reference on store
UndirectedEdgeBitSet meshlib.mrmeshpy.getInnerEdges | ( | MeshTopology | topology, |
FaceBitSet | region ) |
composes the set of all edges having both left and right in given region
UndirectedEdgeBitSet meshlib.mrmeshpy.getInnerEdges | ( | MeshTopology | topology, |
VertBitSet | verts ) |
composes the set of all edges with all their vertices in given set
FaceBitSet meshlib.mrmeshpy.getInnerFaces | ( | MeshTopology | topology, |
VertBitSet | verts ) |
composes the set of all faces with all their vertices in given set
VertBitSet meshlib.mrmeshpy.getInnerVerts | ( | MeshTopology | topology, |
FaceBitSet | region = None ) |
composes the set of all vertices not on the boundary of a hole and with all their adjacent faces in given set
VertBitSet meshlib.mrmeshpy.getInnerVerts | ( | MeshTopology | topology, |
UndirectedEdgeBitSet | edges ) |
composes the set of all vertices with all their edges in given set
os.PathLike meshlib.mrmeshpy.GetLibsDirectory | ( | ) |
returns path of lib files directory .dll .so files
FillHoleMetric meshlib.mrmeshpy.getMaxDihedralAngleMetric | ( | Mesh | mesh | ) |
This metric minimizes the maximal dihedral angle between the faces in the triangulation and on its boundary
float meshlib.mrmeshpy.getMeanSqDistToPlane | ( | IPointPairs | pairs | ) |
computes root-mean-square deviation from points to target planes
float meshlib.mrmeshpy.getMeanSqDistToPoint | ( | IPointPairs | pairs | ) |
computes root-mean-square deviation between points
MeshOrPoints meshlib.mrmeshpy.getMeshOrPoints | ( | VisualObject | obj | ) |
constructs MeshOrPoints from ObjectMesh or ObjectPoints, otherwise returns nullopt
FillHoleMetric meshlib.mrmeshpy.getMinAreaMetric | ( | Mesh | mesh | ) |
This metric is for triangulation construction with minimal summed area of triangles. Warning: this metric can produce degenerated triangles
FillHoleMetric meshlib.mrmeshpy.getMinTriAngleMetric | ( | Mesh | mesh | ) |
This metric maximizes the minimal angle among all faces in the triangulation
str meshlib.mrmeshpy.GetMRVersionString | ( | ) |
returns version of MR
FaceBitSet meshlib.mrmeshpy.getNeighborFaces | ( | MeshTopology | topology, |
UndirectedEdgeBitSet | edges ) |
composes the set of all left and right faces of given edges
int meshlib.mrmeshpy.getNumActivePairs | ( | IPointPairs | pairs | ) |
computes the number of active pairs
int meshlib.mrmeshpy.getNumNodes | ( | int | numLeaves | ) |
returns the number of nodes in the binary tree with given number of leaves
int meshlib.mrmeshpy.getNumSamples | ( | IPointPairs | pairs | ) |
returns the number of samples able to form pairs
std_vector_OneMeshContour meshlib.mrmeshpy.getOneMeshIntersectionContours | ( | Mesh | meshA, |
Mesh | meshB, | ||
std_vector_std_vector_VariableEdgeTri | contours, | ||
bool | getMeshAIntersections, | ||
CoordinateConverters | converters, | ||
AffineXf3f | rigidB2A = None ) |
Converts ordered continuous contours of two meshes to OneMeshContours converters is required for better precision in case of degenerations note that contours should not have intersections
computes optimal order of faces: old face id -> new face id, the order is similar as in AABB tree, but faster to compute
str meshlib.mrmeshpy.getOSNoSpaces | ( | ) |
returns string identification of the OS
FillHoleMetric meshlib.mrmeshpy.getParallelPlaneFillMetric | ( | Mesh | mesh, |
Id_EdgeTag | e, | ||
Plane3f | plane = None ) |
This metric minimizes summary projection of new edges to plane normal, (try do produce edges parallel to plane)
int meshlib.mrmeshpy.getPathEdgesInPlane | ( | Mesh | mesh, |
std_vector_Id_EdgeTag | path, | ||
Plane3f | plane, | ||
float | tolerance = 0.0, | ||
std_vector_Id_EdgeTag | outInPlaneEdges = None ) |
finds all path edges located in given plane with given tolerance, adds them in outInPlaneEdges and returns their number
int meshlib.mrmeshpy.getPathPlaneIntersections | ( | Mesh | mesh, |
std_vector_Id_EdgeTag | path, | ||
Plane3f | plane, | ||
std_vector_EdgePoint | outIntersections = None ) |
finds all intersection points between given path and plane, adds them in outIntersections and returns their number
HoleFillPlan meshlib.mrmeshpy.getPlanarHoleFillPlan | ( | Mesh | mesh, |
Id_EdgeTag | e ) |
prepares the plan how to triangulate the planar face or planar hole to the left of (e) (not filling it immediately), several getPlanarHoleFillPlan can work in parallel
FillHoleMetric meshlib.mrmeshpy.getPlaneFillMetric | ( | Mesh | mesh, |
Id_EdgeTag | e ) |
Same as getCircumscribedFillMetric, but with extra penalty for the triangles having normals looking in the opposite side of plane containing left of (e).
FillHoleMetric meshlib.mrmeshpy.getPlaneNormalizedFillMetric | ( | Mesh | mesh, |
Id_EdgeTag | e ) |
Similar to getPlaneFillMetric with extra penalty for the triangles having normals looking in the opposite side of plane containing left of (e), but the metric minimizes the sum of circumcircle radius times aspect ratio for all triangles in the triangulation.
VertBitSet meshlib.mrmeshpy.getRegionBoundaryVerts | ( | MeshTopology | topology, |
FaceBitSet | region ) |
composes the set of all boundary vertices for given region, unlike getBoundaryVerts the vertices of mesh boundary having no incident not-region faces are not returned
EdgeBitSet meshlib.mrmeshpy.getRegionEdges | ( | MeshTopology | topology, |
FaceBitSet | faces ) |
composes the set of all edges, having a face from given set at the left
os.PathLike meshlib.mrmeshpy.GetResourcesDirectory | ( | ) |
returns path of resource files directory .json and .png files
int meshlib.mrmeshpy.getStreamSize | ( | typing.Any | in_ | ) |
get the size of the remaining data in the input stream
FaceBitSet meshlib.mrmeshpy.getSubdividePart | ( | FaceBitSet | valids, |
int | subdivideParts, | ||
int | myPart ) |
\\brief 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 \\ingroup DecimateGroup
NumSum meshlib.mrmeshpy.getSumSqDistToPlane | ( | IPointPairs | pairs, |
std_optional_double | inaccuracy = 'std::optional<double>{}' ) |
computes the number of active pairs and the sum of squared deviation from points to target planes or the difference between the squared distances between points to target planes and inaccuracy
NumSum meshlib.mrmeshpy.getSumSqDistToPoint | ( | IPointPairs | pairs, |
std_optional_double | inaccuracy = 'std::optional<double>{}' ) |
computes the number of active pairs and the sum of squared distances between points or the difference between the squared distances between points and inaccuracy
std_vector_std_vector_EdgePoint meshlib.mrmeshpy.getSurfacePathsViaVertices | ( | Mesh | mesh, |
VertBitSet | vs ) |
returns a set of mesh lines passing via most of given vertices in auto-selected order; the lines try to avoid sharp turns in the vertices
SystemMemory meshlib.mrmeshpy.getSystemMemory | ( | ) |
return information about memory available in the system
os.PathLike meshlib.mrmeshpy.GetTempDirectory | ( | ) |
returns temp directory
func_Vector3_float_from_Vector3_int meshlib.mrmeshpy.getToFloatConverter | ( | Box3d | box | ) |
creates converter from Vector3i to Vector3f in Box range (int diapason is mapped to box range)
func_Vector3_int_from_Vector3_float meshlib.mrmeshpy.getToIntConverter | ( | Box3d | box | ) |
creates converter from Vector3f to Vector3i in Box range (int diapason is mapped to box range)
std_vector_std_shared_ptr_Object meshlib.mrmeshpy.getTopmostVisibleObjects_Object | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_ObjectDistanceMap meshlib.mrmeshpy.getTopmostVisibleObjects_ObjectDistanceMap | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_ObjectLines meshlib.mrmeshpy.getTopmostVisibleObjects_ObjectLines | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_ObjectLinesHolder meshlib.mrmeshpy.getTopmostVisibleObjects_ObjectLinesHolder | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_ObjectMesh meshlib.mrmeshpy.getTopmostVisibleObjects_ObjectMesh | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_ObjectMeshHolder meshlib.mrmeshpy.getTopmostVisibleObjects_ObjectMeshHolder | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_ObjectPoints meshlib.mrmeshpy.getTopmostVisibleObjects_ObjectPoints | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_ObjectPointsHolder meshlib.mrmeshpy.getTopmostVisibleObjects_ObjectPointsHolder | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_ObjectVoxels meshlib.mrmeshpy.getTopmostVisibleObjects_ObjectVoxels | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
std_vector_std_shared_ptr_VisualObject meshlib.mrmeshpy.getTopmostVisibleObjects_VisualObject | ( | Object | root, |
ObjectSelectivityType | type = 'ObjectSelectivityType::Selectable' ) |
func_float_from_char_const meshlib.mrmeshpy.getTypeConverter | ( | ScalarType | scalarType, |
int | range, | ||
int | min ) |
get a function to convert binary data of specified format type to a scalar value \\param scalarType - binary format type \\param range - (for integer types only) the range of possible values \\param min - (for integer types only) the minimal value
FillHoleMetric meshlib.mrmeshpy.getUniversalMetric | ( | Mesh | mesh | ) |
This metric minimizes the maximal dihedral angle between the faces in the triangulation and on its boundary, and it avoids creating too degenerate triangles; for planar holes it is the same as getCircumscribedMetric
os.PathLike meshlib.mrmeshpy.getUserConfigDir | ( | ) |
return path to the folder with user config file(s)
os.PathLike meshlib.mrmeshpy.getUserConfigFilePath | ( | ) |
returns path of config file in APPDATA
float meshlib.mrmeshpy.getValue | ( | OpenVdbFloatGrid | grid, |
Vector3i | p ) |
returns the value at given voxel
CoordinateConverters meshlib.mrmeshpy.getVectorConverters | ( | MeshPart | a, |
MeshPart | b, | ||
AffineXf3f | rigidB2A = None ) |
\\brief creates simple converters from Vector3f to Vector3i and back in mesh parts area range \\param rigidB2A rigid transformation from B-mesh space to A mesh space, nullptr considered as identity transformation
MeshTriPoint meshlib.mrmeshpy.getVertexAsMeshTriPoint | ( | MeshTopology | topology, |
Id_EdgeTag | e, | ||
VertId | v ) |
returns MeshTriPoint representation of given vertex with given edge field; or invalid MeshTriPoint if it is not possible
VertBMap meshlib.mrmeshpy.getVertexOrdering | ( | FaceBMap | faceMap, |
MeshTopology | topology ) |
compute the order of vertices given the order of faces: vertices near first faces also appear first; \\param faceMap old face id -> new face id
std_vector_Id_VertTag meshlib.mrmeshpy.getVertexOrdering | ( | MeshTopology | topology, |
VertBitSet | region ) |
returns all vertices from given region ordered in each connected component in breadth-first way
FillHoleMetric meshlib.mrmeshpy.getVerticalStitchMetric | ( | Mesh | mesh, |
Vector3f | upDir ) |
Forbids connecting vertices from the same hole \\n All new faces should be parallel to given direction
AffineXf3f meshlib.mrmeshpy.getXfFromOxyPlane | ( | Mesh | mesh, |
std_vector_std_vector_Id_EdgeTag | paths ) |
AffineXf3f meshlib.mrmeshpy.getXfFromOxyPlane | ( | std_vector_std_vector_Vector3_float | contours | ) |
computes the transformation that maps O into center mass of contours' points OXY into best plane containing the points
Mesh meshlib.mrmeshpy.gridToMesh | ( | OpenVdbFloatGrid | grid, |
GridToMeshSettings | settings ) |
converts OpenVDB Grid into mesh using Dual Marching Cubes algorithm
converts OpenVDB Grid into mesh using Dual Marching Cubes algorithm; deletes grid in the middle to reduce peak memory consumption
None meshlib.mrmeshpy.hardSmoothTetrahedrons | ( | Mesh | mesh, |
VertBitSet | region = None ) |
move all region vertices with exactly three neighbor vertices in the center of the neighbors
bool meshlib.mrmeshpy.hasAnyIsoline | ( | MeshTopology | topology, |
func_float_from_Id_VertTag | vertValues, | ||
FaceBitSet | region = None ) |
quickly returns true if extractIsolines produce not-empty set for the same arguments
bool meshlib.mrmeshpy.hasAnyIsoline | ( | MeshTopology | topology, |
VertScalars | vertValues, | ||
float | isoValue, | ||
FaceBitSet | region = None ) |
quickly returns true if extractIsolines produce not-empty set for the same arguments
quickly returns true if extractPlaneSections produce not-empty set for the same arguments
bool meshlib.mrmeshpy.hasAnyXYPlaneSection | ( | MeshPart | mp, |
float | zLevel ) |
quickly returns true if extractXYPlaneSections produce not-empty set for the same arguments
bool meshlib.mrmeshpy.hasMultipleEdges | ( | MeshTopology | topology | ) |
bool meshlib.mrmeshpy.hasProhibitedChars | ( | str | line | ) |
returns true if line contains any of OS prohibited chars ('?', '*', '/', '\\', '"', '<', '>')
int meshlib.mrmeshpy.heapBytes | ( | OpenVdbFloatGrid | grid | ) |
returns the amount of heap memory occupied by grid
int meshlib.mrmeshpy.heapBytes_Color | ( | std_vector_Color | vec | ) |
returns the amount of memory given vector occupies on heap
int meshlib.mrmeshpy.heapBytes_float | ( | std_vector_float | vec | ) |
returns the amount of memory given vector occupies on heap
int meshlib.mrmeshpy.heapBytes_Mesh | ( | Mesh | ptr | ) |
returns the amount of memory this smart pointer and its pointed object own together on heap
int meshlib.mrmeshpy.heapBytes_MeshTexture_TextureId | ( | Vector_MeshTexture_TextureId | vec | ) |
int meshlib.mrmeshpy.heapBytes_Object | ( | Object | ptr | ) |
returns the amount of memory this smart pointer and its pointed object own together on heap
int meshlib.mrmeshpy.heapBytes_OpenVdbFloatGrid | ( | OpenVdbFloatGrid | ptr | ) |
returns the amount of memory this smart pointer and its pointed object own together on heap
int meshlib.mrmeshpy.heapBytes_PointCloud | ( | PointCloud | ptr | ) |
returns the amount of memory this smart pointer and its pointed object own together on heap
int meshlib.mrmeshpy.heapBytes_Polyline3 | ( | Polyline3 | ptr | ) |
returns the amount of memory this smart pointer and its pointed object own together on heap
int meshlib.mrmeshpy.heapBytes_std_shared_ptr_Object | ( | std_vector_std_shared_ptr_Object | vec | ) |
returns the amount of memory given vector occupies on heap
int meshlib.mrmeshpy.heapBytes_unsigned_long | ( | std_vector_unsigned_long | vec | ) |
returns the amount of memory given vector occupies on heap
func_float_from_Id_EdgeTag meshlib.mrmeshpy.identityMetric | ( | ) |
metric returning 1 for every edge
bool meshlib.mrmeshpy.improveSampling | ( | PointCloud | cloud, |
VertBitSet | samples, | ||
ImproveSamplingSettings | settings ) |
Finds more representative sampling starting from a given one following k-means method; \\param samples input and output selected sample points from \\param cloud; \\return false if it was terminated by the callback \\ingroup PointCloudGroup
None meshlib.mrmeshpy.inflate | ( | Mesh | mesh, |
VertBitSet | verts, | ||
InflateSettings | settings ) |
Inflates (in one of two sides) given mesh region, putting given vertices in such positions to make smooth surface inside verts-region, but sharp on its boundary; \\param verts must not include all vertices of a mesh connected component
None meshlib.mrmeshpy.interpolateArcs | ( | std_vector_GCommand | commands, |
ArcInterpolationParams | params, | ||
Axis | axis ) |
interpolates given path with arcs
None meshlib.mrmeshpy.interpolateLines | ( | std_vector_GCommand | commands, |
LineInterpolationParams | params, | ||
Axis | axis ) |
interpolates several points lying on the same straight line with one move
Vector2f meshlib.mrmeshpy.intersection | ( | LineSegm2f | segm1, |
LineSegm2f | segm2 ) |
finds an intersection between a segm1 and a segm2 \\return nullopt if they don't intersect (even if they match)
bool meshlib.mrmeshpy.isClosed | ( | std_vector_Vector3_float | c | ) |
bool meshlib.mrmeshpy.isDegree3Dest | ( | MeshTopology | topology, |
Id_EdgeTag | e ) |
returns true if the destination of given edge has degree 3 and 3 incident triangles
bool meshlib.mrmeshpy.isEdgeBetweenDoubleTris | ( | MeshTopology | topology, |
Id_EdgeTag | e ) |
returns true if the edge e has both left and right triangular faces and the degree of dest( e ) is 2
bool meshlib.mrmeshpy.isEdgeLoop | ( | MeshTopology | topology, |
std_vector_Id_EdgeTag | edges ) |
returns true if every next edge starts where previous edge ends, and start vertex coincides with finish vertex
bool meshlib.mrmeshpy.isEdgePath | ( | MeshTopology | topology, |
std_vector_Id_EdgeTag | edges ) |
returns true if every next edge starts where previous edge ends
bool meshlib.mrmeshpy.isHoleBd | ( | MeshTopology | topology, |
std_vector_Id_EdgeTag | loop ) |
returns true if given loop is a boundary of one hole in given mesh topology: * every edge in the loop does not have left face, * next/prev edges in the loop are related as follows: next = topology.prev( prev.sym() ) if the function returns true, then any edge from the loop passed to \\ref fillHole will fill the same hole
bool meshlib.mrmeshpy.isInside | ( | MeshPart | a, |
MeshPart | b, | ||
AffineXf3f | rigidB2A = None ) |
\\brief checks that arbitrary mesh part A is inside of closed mesh part B \\param rigidB2A rigid transformation from B-mesh space to A mesh space, nullptr considered as identity transformation
bool meshlib.mrmeshpy.isInside | ( | Polyline2 | a, |
Polyline2 | b, | ||
AffineXf2f | rigidB2A = None ) |
\\brief checks that arbitrary 2d polyline A is inside of closed 2d polyline B \\param rigidB2A rigid transformation from B-polyline space to A polyline space, nullptr considered as identity transformation
bool meshlib.mrmeshpy.isNanFast | ( | float | f | ) |
quickly tests whether given float is not-a-number
bool meshlib.mrmeshpy.isNonIntersectingInside | ( | Mesh | a, |
FaceId | partFace, | ||
MeshPart | b, | ||
AffineXf3f | rigidB2A = None ) |
\\brief 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 \\param rigidB2A rigid transformation from B-mesh space to A mesh space, nullptr considered as identity transformation
bool meshlib.mrmeshpy.isNonIntersectingInside | ( | MeshPart | a, |
MeshPart | b, | ||
AffineXf3f | rigidB2A = None ) |
\\brief 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 \\param rigidB2A rigid transformation from B-mesh space to A mesh space, nullptr considered as identity transformation
bool meshlib.mrmeshpy.isPickedPointValid | ( | VisualObject | object, |
std_variant_MeshTriPoint_EdgePoint_Id_VertTag_int | point ) |
Checks that the picked point presents in the object's topology
\\brief detect if given point is inside polyline, by counting ray intersections \\param polyline input polyline \\param point input point
bool meshlib.mrmeshpy.isSupportedFileInSubfolders | ( | os.PathLike | folder | ) |
check if there are any supported files folder and subfolders
bool meshlib.mrmeshpy.isTIFFFile | ( | os.PathLike | path | ) |
returns true if given file is tiff
Id_EdgeTag meshlib.mrmeshpy.isVertexRepeatedOnHoleBd | ( | MeshTopology | topology, |
VertId | v ) |
if given vertex is present on the boundary of some hole several times then returns an edge of this hole (without left); returns invalid edge otherwise (not a boundary vertex, or it is present only once on the boundary of each hole it pertains to)
ToolPathResult meshlib.mrmeshpy.lacingToolPath | ( | MeshPart | mp, |
ToolPathParams | params, | ||
Axis | cutDirection ) |
Slices are built along the axis defined by cutDirection argument (can be Axis::X or Axis::Y)
IteratorRange_RingIterator_NextEdgeSameLeft meshlib.mrmeshpy.leftRing | ( | MeshTopology | topology, |
FaceId | f ) |
IteratorRange_RingIterator_NextEdgeSameLeft meshlib.mrmeshpy.leftRing | ( | MeshTopology | topology, |
Id_EdgeTag | edge ) |
to iterate over all edges with same left face as firstEdge (INCLUDING firstEdge) for ( Edge e : leftRing( topology, firstEdge ) ) ...
IteratorRange_RingIterator_NextEdgeSameLeft meshlib.mrmeshpy.leftRing0 | ( | MeshTopology | topology, |
Id_EdgeTag | edge ) |
to iterate over all edges with same left face as firstEdge (EXCLUDING firstEdge) for ( Edge e : leftRing0( topology, firstEdge ) ) ...
Mesh meshlib.mrmeshpy.loadASCIIStl | ( | os.PathLike | file, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from file in textual .STL format
Mesh meshlib.mrmeshpy.loadASCIIStl | ( | typing.Any | in_, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from stream in textual .STL format
Mesh meshlib.mrmeshpy.loadBinaryStl | ( | os.PathLike | file, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from file in binary .STL format
Mesh meshlib.mrmeshpy.loadBinaryStl | ( | typing.Any | in_, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from stream in binary .STL format; important on Windows: in stream must be open in binary mode
DistanceMap meshlib.mrmeshpy.loadDistanceMapFromImage | ( | os.PathLike | filename, |
float | threshold = 0.003921568859368563 ) |
load distance map from a grayscale image file threshold - threshold of valid values [0.; 1.]. pixel with color less then threshold set invalid
Mesh meshlib.mrmeshpy.loadDxf | ( | os.PathLike | path, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from file in .DXF format;
Mesh meshlib.mrmeshpy.loadDxf | ( | typing.Any | in_, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from stream in .DXF format;
None meshlib.mrmeshpy.loadIOExtras | ( | ) |
Polyline3 meshlib.mrmeshpy.loadLines | ( | os.PathLike | file, |
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
detects the format from file extension and loads polyline from it
Polyline3 meshlib.mrmeshpy.loadLines | ( | typing.Any | in_, |
str | extension, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
extension in `*.ext` format
Mesh meshlib.mrmeshpy.loadMesh | ( | os.PathLike | file, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from file in the format detected from file extension
Mesh meshlib.mrmeshpy.loadMesh | ( | typing.Any | in_, |
str | extension, | ||
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from stream in the format detected from given extension-string (`*.ext`); important on Windows: in stream must be open in binary mode
None meshlib.mrmeshpy.loadMeshDll | ( | ) |
Mesh meshlib.mrmeshpy.loadMrmesh | ( | os.PathLike | file, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from file in internal MeshLib format
Mesh meshlib.mrmeshpy.loadMrmesh | ( | typing.Any | in_, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from stream in internal MeshLib format; important on Windows: in stream must be open in binary mode
Mesh meshlib.mrmeshpy.loadObj | ( | os.PathLike | file, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from file in .OBJ format
Mesh meshlib.mrmeshpy.loadObj | ( | typing.Any | in_, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from stream in .OBJ format; important on Windows: in stream must be open in binary mode
LoadedObjects meshlib.mrmeshpy.loadObjectFromFile | ( | os.PathLike | filename, |
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
\\brief load all objects (or any type: mesh, lines, points, voxels or scene) from file \\param callback - callback function to set progress (for progress bar)
Mesh meshlib.mrmeshpy.loadOff | ( | os.PathLike | file, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from file in .OFF format
Mesh meshlib.mrmeshpy.loadOff | ( | typing.Any | in_, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from stream in .OFF format
Mesh meshlib.mrmeshpy.loadPly | ( | os.PathLike | file, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from file in .PLY format;
Mesh meshlib.mrmeshpy.loadPly | ( | typing.Any | in_, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from stream in .PLY format; important on Windows: in stream must be open in binary mode
PointCloud meshlib.mrmeshpy.loadPoints | ( | os.PathLike | file, |
PointsLoadSettings | settings = 'MR::PointsLoadSettings{}' ) |
detects the format from file extension and loads points from it
PointCloud meshlib.mrmeshpy.loadPoints | ( | typing.Any | in_, |
str | extension, | ||
PointsLoadSettings | settings = 'MR::PointsLoadSettings{}' ) |
extension in `*.ext` format
LoadedObjectT meshlib.mrmeshpy.loadSceneFromAnySupportedFormat | ( | os.PathLike | path, |
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
tries to load scene from every format listed in SceneFormatFilters
Object meshlib.mrmeshpy.loadSceneObject | ( | os.PathLike | path, |
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
Detects the format from file extension and loads scene object from it.
Mesh meshlib.mrmeshpy.loadStl | ( | os.PathLike | file, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from file in any .STL format: both binary and ASCII
Mesh meshlib.mrmeshpy.loadStl | ( | typing.Any | in_, |
MeshLoadSettings | settings = 'MR::MeshLoadSettings{}' ) |
loads mesh from stream in any .STL format: both binary and ASCII; important on Windows: in stream must be open in binary mode
std_vector_VoxelsVolumeMinMax_std_shared_ptr_OpenVdbFloatGrid meshlib.mrmeshpy.loadVoxels | ( | os.PathLike | file, |
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
Detects the format from file extension and loads voxels from it
VdbVolume meshlib.mrmeshpy.loadVoxelsGav | ( | os.PathLike | file, |
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
Load voxel from Gav-file with micro CT reconstruction
VdbVolume meshlib.mrmeshpy.loadVoxelsGav | ( | typing.Any | in_, |
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
Load voxel from Gav-stream with micro CT reconstruction
VdbVolume meshlib.mrmeshpy.loadVoxelsRaw | ( | os.PathLike | file, |
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
Load raw voxels file, parsing parameters from name
VdbVolume meshlib.mrmeshpy.loadVoxelsRaw | ( | os.PathLike | file, |
VoxelsLoad.RawParameters | params, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
Load raw voxels from file with provided parameters
VdbVolume meshlib.mrmeshpy.loadVoxelsRaw | ( | typing.Any | in_, |
VoxelsLoad.RawParameters | params, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
Load raw voxels from stream with provided parameters; important on Windows: in stream must be open in binary mode
FaceBitSet meshlib.mrmeshpy.localFindSelfIntersections | ( | Mesh | mesh, |
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
Find all self-intersections faces component-wise
None meshlib.mrmeshpy.localFixSelfIntersections | ( | Mesh | mesh, |
SelfIntersections.Settings | settings ) |
Finds and fixes self-intersections per component:
Mesh meshlib.mrmeshpy.makeArrow | ( | Vector3f | base, |
Vector3f | vert, | ||
float | thickness = 0.05000000074505806, | ||
float | coneRadius = 0.10000000149011612, | ||
float | coneSize = 0.20000000298023224, | ||
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 meshlib.mrmeshpy.makeBasisAxes | ( | float | size = 1.0, |
float | thickness = 0.05000000074505806, | ||
float | coneRadius = 0.10000000149011612, | ||
float | coneSize = 0.20000000298023224, | ||
int | qual = 32 ) |
creates the mesh with 3 axis arrows
bool meshlib.mrmeshpy.makeBridge | ( | MeshTopology | topology, |
Id_EdgeTag | a, | ||
Id_EdgeTag | b, | ||
FaceBitSet | outNewFaces = None ) |
creates a bridge between two boundary edges a and b (both having no valid left face); bridge consists of two triangles in general or of one triangle if a and b are neighboring edges on the boundary; \\return false if bridge cannot be created because otherwise multiple edges appear
Id_EdgeTag meshlib.mrmeshpy.makeBridgeEdge | ( | MeshTopology | topology, |
Id_EdgeTag | a, | ||
Id_EdgeTag | b ) |
creates a new bridge edge between origins of two boundary edges a and b (both having no valid left face); \\return invalid id if bridge cannot be created because otherwise multiple edges appear
Mesh meshlib.mrmeshpy.makeCone | ( | float | radius0 = 0.10000000149011612, |
float | length = 1.0, | ||
int | resolution = 32 ) |
Makes cone mesh by calling makeCylinderAdvanced with the top radius 0.
Mesh meshlib.mrmeshpy.makeConvexHull | ( | PointCloud | in_ | ) |
Mesh meshlib.mrmeshpy.makeConvexHull | ( | VertCoords | points, |
VertBitSet | validPoints ) |
computes the mesh of convex hull from given input points
Mesh meshlib.mrmeshpy.makeCube | ( | Vector3f | size = 'Vector3f::diagonal(1.F)', |
Vector3f | base = 'Vector3f::diagonal(-0.5F)' ) |
Base is "lower" corner of the cube coordinates
Mesh meshlib.mrmeshpy.makeCylinder | ( | float | radius = 0.10000000149011612, |
float | length = 1.0, | ||
int | resolution = 16 ) |
Draws cylinder with radius 'radius', height - 'length', its base have 'resolution' sides
Mesh meshlib.mrmeshpy.makeCylinderAdvanced | ( | float | radius0 = 0.10000000149011612, |
float | radius1 = 0.10000000149011612, | ||
float | start_angle = 0.0, | ||
float | arc_size = 6.2831854820251465, | ||
float | length = 1.0, | ||
int | resolution = 16 ) |
Id_EdgeTag meshlib.mrmeshpy.makeDegenerateBandAroundHole | ( | Mesh | mesh, |
Id_EdgeTag | a, | ||
FaceBitSet | outNewFaces = None ) |
creates a band of degenerate triangles around given hole; \\return the edge of new hole opposite to input edge (a)
None meshlib.mrmeshpy.makeDegenerateBandAroundRegion | ( | Mesh | mesh, |
FaceBitSet | region, | ||
MakeDegenerateBandAroundRegionParams | params = 'MR::MakeDegenerateBandAroundRegionParams{}' ) |
\\brief Create a band of degenerate faces along the border of the specified region and the rest of the mesh \\details The function is useful for extruding the region without changing the existing faces and creating holes @param mesh - the target mesh @param region - the region required to be separated by a band of degenerate faces @param params - optional output parameters
int meshlib.mrmeshpy.makeDeloneEdgeFlips | ( | Mesh | mesh, |
DeloneSettings | settings = 'MR::DeloneSettings{}', | ||
int | numIters = 1, | ||
func_bool_from_float | progressCallback = 'MR::ProgressCallback{}' ) |
improves mesh triangulation by performing flipping of edges to satisfy Delone local property, consider every edge at most numIters times, and allow surface deviation at most on given value during every individual flip, \\return the number of flips done \\param numIters Maximal iteration count \\param progressCallback Callback to report algorithm progress and cancel it by user request
None meshlib.mrmeshpy.makeDeloneOriginRing | ( | Mesh | mesh, |
Id_EdgeTag | e, | ||
DeloneSettings | settings = 'MR::DeloneSettings{}' ) |
improves mesh triangulation in a ring of vertices with common origin and represented by edge e
std_vector_Vector3_float meshlib.mrmeshpy.makeFreeFormOriginGrid | ( | Box3f | box, |
Vector3i | resolution ) |
Returns positions of grid points in given box with given resolution
divides given mesh into hierarchy of mesh objects: the deepest level of the hierarchy has all details from the original mesh; top levels have progressively less number of objects and less details in each; the number of faces in any object on any level is about the same.
Mesh meshlib.mrmeshpy.makeMovementBuildBody | ( | std_vector_std_vector_Vector3_float | body, |
std_vector_std_vector_Vector3_float | trajectory, | ||
MovementBuildBodyParams | params = 'MR::MovementBuildBodyParams{}' ) |
makes mesh by moving `body` along `trajectory` if allowRotation rotate it in corners
VertCoords meshlib.mrmeshpy.makeNormals | ( | PointCloud | pointCloud, |
int | avgNeighborhoodSize = 48 ) |
\\brief Makes consistent normals for valid points of given point cloud \\param avgNeighborhoodSize avg num of neighbors of each individual point \\ingroup PointCloudGroup [[deprecated( "use makeOrientedNormals(...) instead" )]]
ObjectDistanceMap meshlib.mrmeshpy.makeObjectDistanceMapFromFile | ( | os.PathLike | file, |
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
loads distance map from given file in new object
LoadedObjectT meshlib.mrmeshpy.makeObjectFromMeshFile | ( | os.PathLike | file, |
func_bool_from_float | cb = 'MR::ProgressCallback{}', | ||
bool | returnOnlyMesh = False ) |
loads data from given file and makes either ObjectMesh or ObjectPoints (if the file has points but not faces)
LoadedObjects meshlib.mrmeshpy.makeObjectFromVoxelsFile | ( | os.PathLike | file, |
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
ObjectGcode meshlib.mrmeshpy.makeObjectGcodeFromFile | ( | os.PathLike | file, |
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
loads gcode from given file in new object
ObjectLines meshlib.mrmeshpy.makeObjectLinesFromFile | ( | os.PathLike | file, |
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
loads lines from given file in new object
LoadedObjectT_ObjectMesh meshlib.mrmeshpy.makeObjectMeshFromFile | ( | os.PathLike | file, |
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
loads mesh from given file in new object
ObjectPoints meshlib.mrmeshpy.makeObjectPointsFromFile | ( | os.PathLike | file, |
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
loads points from given file in new object
std_vector_std_shared_ptr_ObjectVoxels meshlib.mrmeshpy.makeObjectVoxelsFromFile | ( | os.PathLike | file, |
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
loads voxels from given file in new object
Mesh meshlib.mrmeshpy.makeOpenCone | ( | float | radius = 1, |
float | zApex = 0, | ||
float | zBase = 1, | ||
int | numCircleSegments = 16 ) |
A hollow cone.
Mesh meshlib.mrmeshpy.makeOpenCylinder | ( | float | radius = 1, |
float | z1 = -1, | ||
float | z2 = 1, | ||
int | numCircleSegments = 16 ) |
A hollow cylinder.
VertCoords meshlib.mrmeshpy.makeOrientedNormals | ( | PointCloud | pointCloud, |
AllLocalTriangulations | triangs, | ||
func_bool_from_float | progress = 'MR::ProgressCallback{}' ) |
\\brief 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 \\return nullopt if progress returned false \\ingroup PointCloudGroup
VertCoords meshlib.mrmeshpy.makeOrientedNormals | ( | PointCloud | pointCloud, |
float | radius, | ||
func_bool_from_float | progress = 'MR::ProgressCallback{}' ) |
\\brief Makes normals for valid points of given point cloud; directions of close points are selected to be consistent; \\param radius of neighborhood to consider \\return nullopt if progress returned false \\ingroup PointCloudGroup
Mesh meshlib.mrmeshpy.makeOuterHalfTorus | ( | float | primaryRadius = 1.0, |
float | secondaryRadius = 0.10000000149011612, | ||
int | primaryResolution = 16, | ||
int | secondaryResolution = 16, | ||
std_vector_Vector3_float | points = None ) |
creates torus without inner half faces main application - testing fillHole and Stitch
Mesh meshlib.mrmeshpy.makePlane | ( | ) |
Makes square plane 1x1 size with center at (0,0,0) and (0,0,1) normal
Mesh meshlib.mrmeshpy.makePrism | ( | float | baseLength, |
float | leftAngle, | ||
float | rightAngle, | ||
float | height = 1.0 ) |
Creates a triangular prism. One edge of its base lies on 'x' axis and has 'baseLength' in length. 'leftAngle' and 'rightAngle' specify two adjacent angles axis of a prism is parallel to 'z' axis
Mesh meshlib.mrmeshpy.makeRegularGridMesh | ( | int | width, |
int | height, | ||
func_bool_from_unsigned_long_unsigned_long | validator, | ||
func_Vector3_float_from_unsigned_long_unsigned_long | positioner, | ||
func_bool_from_unsigned_long_unsigned_long_unsigned_long_unsigned_long_unsigned_long_unsigned_long | faceValidator = 'MR::RegularGridMeshFaceValidator{}', | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
Creates regular mesh with points in valid grid lattice
Mesh meshlib.mrmeshpy.makeRegularGridMesh | ( | VertCoords | pc, |
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
Creates regular mesh from monotone (connects point with closed x, y neighbors) points
AffineXf3d meshlib.mrmeshpy.makeRigidXf | ( | MeshPart | mp, |
AffineXf3d | meshXf ) |
given a mesh part and its arbitrary transformation, computes and returns the rigid transformation that best approximates meshXf \\ingroup MathGroup
AffineXf3f meshlib.mrmeshpy.makeRigidXf | ( | MeshPart | mp, |
AffineXf3f | meshXf ) |
None meshlib.mrmeshpy.makeSignedByWindingNumber | ( | OpenVdbFloatGrid | grid, |
Vector3f | voxelSize, | ||
Mesh | refMesh, | ||
MakeSignedByWindingNumberSettings | settings ) |
set signs for unsigned distance field grid using generalized winding number computed at voxel grid point from refMesh
Mesh meshlib.mrmeshpy.makeSphere | ( | SphereParams | params | ) |
creates a mesh of sphere with irregular triangulation
MarkedContour3f meshlib.mrmeshpy.makeSpline | ( | MarkedContour3f | in_, |
float | markStability = 1 ) |
\\param in input marked contour \\param markStability a positive value, the more the value the closer marked points will be to their original positions \\return contour with same number of points and same marked, where each return point tries to be on a smooth curve
MarkedContour3f meshlib.mrmeshpy.makeSpline | ( | std_vector_Vector3_float | controlPoints, |
SplineSettings | settings ) |
\\param controlPoints ordered point the spline to interpolate \\return spline contour with same or more points than initially given, marks field highlights the points corresponding to input ones
Mesh meshlib.mrmeshpy.makeTorus | ( | float | primaryRadius = 1.0, |
float | secondaryRadius = 0.10000000149011612, | ||
int | primaryResolution = 16, | ||
int | secondaryResolution = 16, | ||
std_vector_Vector3_float | points = None ) |
Z is symmetry axis of this torus points - optional out points of main circle
Mesh meshlib.mrmeshpy.makeTorusWithComponents | ( | float | primaryRadius = 1.0, |
float | secondaryRadius = 0.10000000149011612, | ||
int | primaryResolution = 16, | ||
int | secondaryResolution = 16, | ||
std_vector_Vector3_float | points = None ) |
creates torus with empty sectors main application - testing Components
Mesh meshlib.mrmeshpy.makeTorusWithSelfIntersections | ( | float | primaryRadius = 1.0, |
float | secondaryRadius = 0.10000000149011612, | ||
int | primaryResolution = 16, | ||
int | secondaryResolution = 16, | ||
std_vector_Vector3_float | points = None ) |
creates torus with empty sectors main application - testing Components
Mesh meshlib.mrmeshpy.makeTorusWithSpikes | ( | float | primaryRadius = 1.0, |
float | secondaryRadiusInner = 0.10000000149011612, | ||
float | secondaryRadiusOuter = 0.5, | ||
int | primaryResolution = 16, | ||
int | secondaryResolution = 16, | ||
std_vector_Vector3_float | points = None ) |
creates torus with some handed-up points main application - testing fixSpikes and Relax
Mesh meshlib.mrmeshpy.makeTorusWithUndercut | ( | float | primaryRadius = 1.0, |
float | secondaryRadiusInner = 0.10000000149011612, | ||
float | secondaryRadiusOuter = 0.20000000298023224, | ||
int | primaryResolution = 16, | ||
int | secondaryResolution = 16, | ||
std_vector_Vector3_float | points = None ) |
creates torus with inner protruding half as undercut main application - testing fixUndercuts
PointCloud meshlib.mrmeshpy.makeUniformSampledCloud | ( | PointCloud | pointCloud, |
UniformSamplingSettings | settings ) |
Composes new point cloud consisting of uniform samples of original point cloud; returns std::nullopt if it was terminated by the callback \\ingroup PointCloudGroup
VertCoords meshlib.mrmeshpy.makeUnorientedNormals | ( | PointCloud | pointCloud, |
AllLocalTriangulations | triangs, | ||
func_bool_from_float | progress = 'MR::ProgressCallback{}', | ||
OrientNormals | orient = 'OrientNormals::Smart' ) |
\\brief 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 \\param orient OrientNormals::Smart here means orientation from normals of neigbour triangles \\return nullopt if progress returned false \\ingroup PointCloudGroup
VertCoords meshlib.mrmeshpy.makeUnorientedNormals | ( | PointCloud | pointCloud, |
Buffer_VertId | closeVerts, | ||
int | numNei, | ||
func_bool_from_float | progress = 'MR::ProgressCallback{}', | ||
OrientNormals | orient = 'OrientNormals::Smart' ) |
\\brief Makes normals for valid points of given point cloud by directing them along the normal of best plane through the neighbours \\param closeVerts a buffer where for every valid point #i its neighbours are stored at indices [i*numNei; (i+1)*numNei) \\param orient OrientNormals::Smart here means orientation from best fit plane \\return nullopt if progress returned false \\ingroup PointCloudGroup
VertCoords meshlib.mrmeshpy.makeUnorientedNormals | ( | PointCloud | pointCloud, |
float | radius, | ||
func_bool_from_float | progress = 'MR::ProgressCallback{}', | ||
OrientNormals | orient = 'OrientNormals::Smart' ) |
\\brief Makes normals for valid points of given point cloud by directing them along the normal of best plane through the neighbours \\param radius of neighborhood to consider \\param orient OrientNormals::Smart here means orientation from best fit plane \\return nullopt if progress returned false \\ingroup PointCloudGroup
Mesh meshlib.mrmeshpy.makeUVSphere | ( | float | radius = 1.0, |
int | horisontalResolution = 16, | ||
int | verticalResolution = 16 ) |
creates a mesh of sphere with regular triangulation (parallels and meridians)
None meshlib.mrmeshpy.makeVdbTopologyDense | ( | VdbVolume | volume | ) |
Make \\p volume dense without setting any values
Id_EdgeTag meshlib.mrmeshpy.mapEdge | ( | phmap_flat_hash_map_Id_UndirectedEdgeTag_Id_EdgeTag | map, |
Id_EdgeTag | src ) |
given input edge (src), converts its id using given map
UndirectedEdgeId meshlib.mrmeshpy.mapEdge | ( | UndirectedEdgeBMap | map, |
UndirectedEdgeId | src ) |
given input edge (src), converts its id using given map
Id_EdgeTag meshlib.mrmeshpy.mapEdge | ( | WholeEdgeMap | map, |
Id_EdgeTag | src ) |
given input edge (src), converts its id using given map
UndirectedEdgeBitSet meshlib.mrmeshpy.mapEdges | ( | phmap_flat_hash_map_Id_UndirectedEdgeTag_Id_EdgeTag | map, |
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 meshlib.mrmeshpy.mapEdges | ( | UndirectedEdgeBMap | map, |
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 meshlib.mrmeshpy.mapEdges | ( | WholeEdgeMap | map, |
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
Mesh meshlib.mrmeshpy.marchingCubes | ( | FunctionVolume | volume, |
MarchingCubesParams | params = 'MR::MarchingCubesParams{}' ) |
makes Mesh from FunctionVolume with given settings using Marching Cubes algorithm
Mesh meshlib.mrmeshpy.marchingCubes | ( | SimpleVolume | volume, |
MarchingCubesParams | params = 'MR::MarchingCubesParams{}' ) |
makes Mesh from SimpleVolume with given settings using Marching Cubes algorithm
Mesh meshlib.mrmeshpy.marchingCubes | ( | SimpleVolumeMinMax | volume, |
MarchingCubesParams | params = 'MR::MarchingCubesParams{}' ) |
makes Mesh from SimpleVolumeMinMax with given settings using Marching Cubes algorithm
Mesh meshlib.mrmeshpy.marchingCubes | ( | VdbVolume | volume, |
MarchingCubesParams | params = 'MR::MarchingCubesParams{}' ) |
makes Mesh from VdbVolume with given settings using Marching Cubes algorithm
TriMesh meshlib.mrmeshpy.marchingCubesAsTriMesh | ( | FunctionVolume | volume, |
MarchingCubesParams | params = 'MR::MarchingCubesParams{}' ) |
TriMesh meshlib.mrmeshpy.marchingCubesAsTriMesh | ( | SimpleVolume | volume, |
MarchingCubesParams | params = 'MR::MarchingCubesParams{}' ) |
TriMesh meshlib.mrmeshpy.marchingCubesAsTriMesh | ( | SimpleVolumeMinMax | volume, |
MarchingCubesParams | params = 'MR::MarchingCubesParams{}' ) |
TriMesh meshlib.mrmeshpy.marchingCubesAsTriMesh | ( | VdbVolume | volume, |
MarchingCubesParams | params = 'MR::MarchingCubesParams{}' ) |
MarkedContour3f meshlib.mrmeshpy.markedContour | ( | std_vector_Vector3_float | in_ | ) |
\\return marked contour with all points from (in) marked
MarkedContour3f meshlib.mrmeshpy.markedFirstLast | ( | std_vector_Vector3_float | in_ | ) |
\\return marked contour with only first and last points from (in) marked
Mesh meshlib.mrmeshpy.mcOffsetMesh | ( | MeshPart | mp, |
float | offset, | ||
OffsetParameters | params = 'MR::OffsetParameters{}', | ||
Vector_Id_VoxelTag_FaceId | outMap = None ) |
Offsets mesh by converting it to distance field in voxels (using OpenVDB library if SignDetectionMode::OpenVDB or our implementation otherwise) and back using standard Marching Cubes, as opposed to Dual Marching Cubes in offsetMesh(...)
Mesh meshlib.mrmeshpy.mcShellMeshRegion | ( | Mesh | mesh, |
FaceBitSet | region, | ||
float | offset, | ||
BaseShellParameters | params, | ||
Vector_Id_VoxelTag_FaceId | outMap = None ) |
Constructs a shell around selected mesh region with the properties that every point on the shall must 1. be located not further than given distance from selected mesh part, 2. be located not closer to not-selected mesh part than to selected mesh part.
ObjectLines meshlib.mrmeshpy.merge | ( | std_vector_std_shared_ptr_ObjectLines | objsLines | ) |
constructs new ObjectLines containing the union of valid data from all input objects
ObjectMesh meshlib.mrmeshpy.merge | ( | std_vector_std_shared_ptr_ObjectMesh | objsMesh | ) |
constructs new ObjectMesh containing the union of valid data from all input objects
ObjectPoints meshlib.mrmeshpy.merge | ( | std_vector_std_shared_ptr_ObjectPoints | objsPoints | ) |
constructs new ObjectPoints containing the union of valid points from all input objects
Mesh meshlib.mrmeshpy.mergeMeshes | ( | std_vector_std_shared_ptr_Mesh | meshes | ) |
Merge a list of meshes to one mesh.
None meshlib.mrmeshpy.meshDenoiseViaNormals | ( | Mesh | mesh, |
DenoiseViaNormalsSettings | settings = 'MR::DenoiseViaNormalsSettings{}' ) |
Reduces noise in given mesh, see the article "Mesh Denoising via a Novel Mumford-Shah Framework"
Mesh meshlib.mrmeshpy.meshFromVoxelsMask | ( | VdbVolume | volume, |
VoxelBitSet | mask ) |
\\brief Creates mesh from voxels mask \\param mask in space of whole volume density inside mask is expected to be higher then outside
func_void_from_Id_EdgeTag_Id_EdgeTag meshlib.mrmeshpy.meshOnEdgeSplitAttribute | ( | Mesh | mesh, |
MeshAttributesToUpdate | params ) |
auto uvCoords = obj_->getUVCoords(); auto texturePerFace = obj_->getTexturePerFace(); MeshAttributesToUpdate meshParams; if ( !uvCoords.empty() ) meshParams.uvCoords = &uvCoords; if ( !texturePerFace.empty() ) meshParams.texturePerFace = &texturePerFace; subs.onEdgeSplit = meshOnEdgeSplitAttribute( *obj_->varMesh(), meshParams ); subdivideMesh( *obj_->varMesh(), subs );
func_void_from_Id_EdgeTag_Id_EdgeTag meshlib.mrmeshpy.meshOnEdgeSplitFaceAttribute | ( | Mesh | mesh, |
MeshAttributesToUpdate | params ) |
func_void_from_Id_EdgeTag_Id_EdgeTag meshlib.mrmeshpy.meshOnEdgeSplitVertAttribute | ( | Mesh | mesh, |
MeshAttributesToUpdate | params ) |
func_bool_from_Id_EdgeTag_Vector3_float meshlib.mrmeshpy.meshPreCollapseVertAttribute | ( | Mesh | mesh, |
MeshAttributesToUpdate | params ) |
Please use this callback when you decimate a mesh with associated data with each vertex recalculate texture coordinates and mesh vertex colors for vertices moved during decimation usage example MeshAttributesToUpdate meshParams; auto uvCoords = obj->getUVCoords(); auto colorMap = obj->getVertsColorMap(); if ( needUpdateUV ) meshParams.uvCoords = &uvCoords; if ( needUpdateColorMap ) meshParams.colorMap = &colorMap; auto preCollapse = meshPreCollapseVertAttribute( mesh, meshParams ); decimateMesh( mesh, DecimateSettings{ .preCollapse = preCollapse } );
SimpleVolumeMinMax meshlib.mrmeshpy.meshRegionToIndicatorVolume | ( | Mesh | mesh, |
FaceBitSet | region, | ||
float | offset, | ||
DistanceVolumeParams | params ) |
returns a volume filled with the values: v < 0: this point is within offset distance to region-part of mesh and it is closer to region-part than to not-region-part
std_array_VoxelsVolumeMinMax_std_vector_float_3 meshlib.mrmeshpy.meshToDirectionVolume | ( | MeshToDirectionVolumeParams | params | ) |
Converts mesh into 4d voxels, so that each cell in 3d space holds the direction from the closest point on mesh to the cell position. Resulting volume is encoded by 3 separate 3d volumes, corresponding to `x`, `y` and `z` components of vectors respectively. \\param params Expected to have valid (not null) projector, with invoked method \\ref IPointsToMeshProjector::updateMeshData
OpenVdbFloatGrid meshlib.mrmeshpy.meshToDistanceField | ( | MeshPart | mp, |
AffineXf3f | xf, | ||
Vector3f | voxelSize, | ||
float | surfaceOffset = 3, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
does not require closed surface, resulting grid cannot be used for boolean operations, surfaceOffset - the number of voxels around surface to calculate distance in (should be positive) returns null if was canceled by progress callback
FunctionVolume meshlib.mrmeshpy.meshToDistanceFunctionVolume | ( | MeshPart | mp, |
MeshToDistanceVolumeParams | params = 'MR::MeshToDistanceVolumeParams{}' ) |
makes FunctionVolume representing (signed or unsigned) distances from Mesh with given settings
SimpleVolumeMinMax meshlib.mrmeshpy.meshToDistanceVolume | ( | MeshPart | mp, |
MeshToDistanceVolumeParams | params = 'MR::MeshToDistanceVolumeParams{}' ) |
makes SimpleVolume filled with (signed or unsigned) distances from Mesh with given settings
OpenVdbFloatGrid meshlib.mrmeshpy.meshToLevelSet | ( | MeshPart | mp, |
AffineXf3f | xf, | ||
Vector3f | voxelSize, | ||
float | surfaceOffset = 3, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
closed surface is required surfaceOffset - number voxels around surface to calculate distance in (should be positive) returns null if was canceled by progress callback
PointCloud meshlib.mrmeshpy.meshToPointCloud | ( | Mesh | mesh, |
bool | saveNormals = True, | ||
VertBitSet | verts = None ) |
Mesh to PointCloud \\ingroup MeshAlgorithmGroup
VdbVolume meshlib.mrmeshpy.meshToVolume | ( | Mesh | mesh, |
MeshToVolumeParams | params = 'MR::MeshToVolumeParams{}' ) |
convert mesh to volume in (0,0,0)-(dim.x,dim.y,dim.z) grid box
VertBitSet meshlib.mrmeshpy.moveMeshToVoxelMaxDeriv | ( | Mesh | mesh, |
AffineXf3f | meshXf, | ||
VdbVolume | volume, | ||
AffineXf3f | volumeXf, | ||
MoveMeshToVoxelMaxDerivSettings | settings, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
Moves each vertex along its normal to the minimize (with sign, i.e. maximize the absolute value with negative sign) the derivative of voxels. \\ingroup SubvoxelMeshCorrection @return Vertices that were moved by the algorithm
std_vector_ObjVertId meshlib.mrmeshpy.multiModelGridSampling | ( | Vector_ModelPointsData_ObjId | models, |
float | voxelSize, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
performs sampling of several models respecting their world transformations subdivides models bounding box on voxels of approximately given size and returns at most one point per voxel; returns std::nullopt if it was terminated by the callback
None meshlib.mrmeshpy.multiRayMeshIntersect | ( | MeshPart | meshPart, |
std_vector_Vector3_float | origins, | ||
std_vector_Vector3_float | dirs, | ||
MultiRayMeshIntersectResult | result, | ||
float | rayStart = 0.0, | ||
float | rayEnd = 3.4028234663852886e+38, | ||
bool | closestIntersect = True, | ||
func_bool_from_Id_FaceTag | validFaces = 'MR::FacePredicate{}' ) |
Finds intersections between a mesh and multiple rays in parallel (in float-precision). \\p rayStart and \\p rayEnd define the interval on all rays to detect an intersection. \\p vadidFaces if given then all faces for which false is returned will be skipped
bool meshlib.mrmeshpy.objectHasSelectableChildren | ( | Object | object | ) |
\\}
None meshlib.mrmeshpy.objectSave | ( | Object | object, |
os.PathLike | file, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
save a scene object to a given file if the file format is scene-capable, saves all the object's entities otherwise, saves only merged entities of the corresponding type (mesh, polyline, point cloud, etc.)
std_vector_std_vector_Vector2_float meshlib.mrmeshpy.offsetContours | ( | std_vector_std_vector_Vector2_float | contours, |
float | offset, | ||
OffsetContoursParams | params = 'MR::OffsetContoursParams{}' ) |
offsets 2d contours in plane
std_vector_std_vector_Vector2_float meshlib.mrmeshpy.offsetContours | ( | std_vector_std_vector_Vector2_float | contours, |
func_float_from_int_int | offset, | ||
OffsetContoursParams | params = 'MR::OffsetContoursParams{}' ) |
offsets 2d contours in plane
std_vector_std_vector_Vector3_float meshlib.mrmeshpy.offsetContours | ( | std_vector_std_vector_Vector3_float | contours, |
float | offset, | ||
OffsetContoursParams | params = 'MR::OffsetContoursParams{}', | ||
OffsetContoursRestoreZParams | zParmas = 'MR::OffsetContoursRestoreZParams{}' ) |
offsets 3d contours in XY plane
std_vector_std_vector_Vector3_float meshlib.mrmeshpy.offsetContours | ( | std_vector_std_vector_Vector3_float | contours, |
func_float_from_int_int | offset, | ||
OffsetContoursParams | params = 'MR::OffsetContoursParams{}', | ||
OffsetContoursRestoreZParams | zParmas = 'MR::OffsetContoursRestoreZParams{}' ) |
offsets 3d contours in XY plane
Mesh meshlib.mrmeshpy.offsetMesh | ( | MeshPart | mp, |
float | offset, | ||
OffsetParameters | params = 'MR::OffsetParameters{}' ) |
Offsets mesh by converting it to distance field in voxels using OpenVDB library, signDetectionMode = Unsigned(from OpenVDB) | OpenVDB | HoleWindingRule, and then converts back using OpenVDB library (dual marching cubes), so result mesh is always closed
Mesh meshlib.mrmeshpy.offsetOneDirection | ( | MeshPart | mp, |
float | offset, | ||
GeneralOffsetParameters | params = 'MR::GeneralOffsetParameters{}' ) |
offsets given MeshPart in one direction only (positive or negative) if your input mesh is open then please specify params.signDetectionMode = SignDetectionMode::Unsigned if your input mesh is closed this function is equivalent to `generalOffsetMesh`, but in SignDetectionMode::Unsigned mode it will only keep one side (just like for open mesh) unlike `thickenMesh` this functions does not keep original mesh in result
Mesh meshlib.mrmeshpy.offsetPolyline | ( | Polyline3 | polyline, |
float | offset, | ||
OffsetParameters | params = 'MR::OffsetParameters{}' ) |
Offsets polyline by converting it to voxels and building iso-surface do offset in all directions so result mesh is always closed params.signDetectionMode is ignored (always assumed SignDetectionMode::Unsigned)
bool meshlib.mrmeshpy.OpenDocument | ( | os.PathLike | path | ) |
Opens given file (or directory) in associated application
None meshlib.mrmeshpy.OpenLink | ( | str | url | ) |
Opens given link in default browser
bool meshlib.mrmeshpy.operator | ( | VertDistance | a, |
VertDistance | b ) |
smaller distance to be the first
std_vector_std_vector_VariableEdgeTri meshlib.mrmeshpy.orderIntersectionContours | ( | MeshTopology | topologyA, |
MeshTopology | topologyB, | ||
PreciseCollisionResult | intersections ) |
Combines individual intersections into ordered contours with the properties: a. left of contours on mesh A is inside of mesh B, b. right of contours on mesh B is inside of mesh A, c. each intersected edge has origin inside meshes intersection and destination outside of it
IteratorRange_RingIterator_NextEdgeSameOrigin meshlib.mrmeshpy.orgRing | ( | MeshTopology | topology, |
Id_EdgeTag | edge ) |
to iterate over all edges with same origin vertex as firstEdge (INCLUDING firstEdge) for ( Edge e : orgRing( topology, firstEdge ) ) ...
IteratorRange_RingIterator_NextEdgeSameOrigin meshlib.mrmeshpy.orgRing | ( | MeshTopology | topology, |
VertId | v ) |
IteratorRange_RingIterator_NextEdgeSameOrigin meshlib.mrmeshpy.orgRing0 | ( | MeshTopology | topology, |
Id_EdgeTag | edge ) |
to iterate over all edges with same origin vertex as firstEdge (EXCLUDING firstEdge) for ( Edge e : orgRing0( topology, firstEdge ) ) ...
bool meshlib.mrmeshpy.orient3d | ( | PreciseVertCoords | vs | ) |
bool meshlib.mrmeshpy.orient3d | ( | std_array_PreciseVertCoords_4 | vs | ) |
first sorts the indices in ascending order, then calls the predicate for sorted points
returns true if the plane with orientated triangle ABC has 0 point at the left; uses simulation-of-simplicity to avoid "0 is exactly on plane"
returns true if the plane with orientated triangle ABC has D point at the left; uses simulation-of-simplicity to avoid "D is exactly on plane"
None meshlib.mrmeshpy.orientLocalTriangulations | ( | AllLocalTriangulations | triangs, |
VertCoords | coords, | ||
VertBitSet | region, | ||
func_Vector3_float_from_Id_VertTag | targetDir ) |
None meshlib.mrmeshpy.orientLocalTriangulations | ( | AllLocalTriangulations | triangs, |
VertCoords | coords, | ||
VertBitSet | region, | ||
VertCoords | targetDir ) |
orient neighbors around each point in \\param region so they will be in clockwise order if look from the tip of target direction
bool meshlib.mrmeshpy.orientNormals | ( | PointCloud | pointCloud, |
VertCoords | normals, | ||
AllLocalTriangulations | triangs, | ||
func_bool_from_float | progress = 'MR::ProgressCallback{}' ) |
\\brief Select orientation of given normals to make directions of close points consistent; \\param radius of neighborhood to consider \\return false if progress returned false Unlike simple orientNormals this method constructs local triangulations around each point (with most neighbours within given radius and all neighbours within 2*radius) and considers all triangulation neighbors and not other points from the ball around each point. \\ingroup PointCloudGroup
bool meshlib.mrmeshpy.orientNormals | ( | PointCloud | pointCloud, |
VertCoords | normals, | ||
Buffer_VertId | closeVerts, | ||
int | numNei, | ||
func_bool_from_float | progress = 'MR::ProgressCallback{}' ) |
\\brief Select orientation of given normals to make directions of close points consistent; \\param closeVerts a buffer where for every valid point #i its neighbours are stored at indices [i*numNei; (i+1)*numNei) \\return false if progress returned false \\ingroup PointCloudGroup
bool meshlib.mrmeshpy.orientNormals | ( | PointCloud | pointCloud, |
VertCoords | normals, | ||
float | radius, | ||
func_bool_from_float | progress = 'MR::ProgressCallback{}' ) |
\\brief Select orientation of given normals to make directions of close points consistent; \\param radius of neighborhood to consider \\return false if progress returned false \\ingroup PointCloudGroup
ObjectPoints meshlib.mrmeshpy.pack | ( | ObjectPoints | pts, |
Reorder | reorder, | ||
VertBitSet | newValidVerts = None, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
constructs new ObjectPoints containing the packed version of input points, \\param newValidVerts if given, then use them instead of valid points from pts \\return nullptr if the operation was cancelled
None meshlib.mrmeshpy.parseFirstNum | ( | str | str, |
int_output | num ) |
reads the first integer number in the line
None meshlib.mrmeshpy.parsePolygon | ( | str | str, |
VertId | vertId, | ||
int_output | numPoints ) |
reads the polygon points and optional number of polygon points example N vertex0 vertex1 ... vertexN
Mesh meshlib.mrmeshpy.partialOffsetMesh | ( | MeshPart | mp, |
float | offset, | ||
GeneralOffsetParameters | params = 'MR::GeneralOffsetParameters{}' ) |
Offsets mesh part by converting it to voxels and back and unite it with original mesh (via boolean) note: only OffsetParameters.signDetectionMode = SignDetectionMode::Unsigned will work in this function
os PathLike meshlib.mrmeshpy.pathFromUtf8 | ( | str | s | ) |
Vector3f meshlib.mrmeshpy.pickedPointToVector3 | ( | VisualObject | object, |
std_variant_MeshTriPoint_EdgePoint_Id_VertTag_int | point ) |
Converts pickedPoint coordinates depending on the object type into a 3D Vector3
std_vector_std_vector_Vector2_float meshlib.mrmeshpy.planeSectionsToContours2f | ( | Mesh | mesh, |
std_vector_std_vector_EdgePoint | sections, | ||
AffineXf3f | meshToPlane ) |
std_vector_Vector2_float meshlib.mrmeshpy.planeSectionToContour2f | ( | Mesh | mesh, |
std_vector_EdgePoint | section, | ||
AffineXf3f | meshToPlane ) |
converts PlaneSections in 2D contours by computing coordinate of each point, applying given xf to it, and retaining only x and y
VertBitSet meshlib.mrmeshpy.pointGridSampling | ( | PointCloud | cloud, |
float | voxelSize, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
performs sampling of cloud points; subdivides point cloud bounding box on voxels of approximately given size and returns at most one point per voxel; returns std::nullopt if it was terminated by the callback
VertBitSet meshlib.mrmeshpy.pointIterativeSampling | ( | PointCloud | cloud, |
int | numSamples, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
performs sampling of cloud points by iteratively removing one point with minimal metric (describing distance to the closest point and previous nearby removals), thus allowing stopping at any given number of samples; returns std::nullopt if it was terminated by the callback
std_variant_MeshTriPoint_EdgePoint_Id_VertTag_int meshlib.mrmeshpy.pointOnObjectToPickedPoint | ( | VisualObject | object, |
PointOnObject | pos ) |
Converts PointOnObject coordinates depending on the object type to the PickedPoint variant
FunctionVolume meshlib.mrmeshpy.pointsToDistanceFunctionVolume | ( | PointCloud | cloud, |
PointsToDistanceVolumeParams | params ) |
makes FunctionVolume representing signed distances to points with normals
SimpleVolume meshlib.mrmeshpy.pointsToDistanceVolume | ( | PointCloud | cloud, |
PointsToDistanceVolumeParams | params ) |
makes SimpleVolume filled with signed distances to points with normals
Mesh meshlib.mrmeshpy.pointsToMeshFusion | ( | PointCloud | cloud, |
PointsToMeshParameters | params ) |
makes mesh from points with normals by constructing intermediate volume with signed distances and then using marching cubes algorithm to extract the surface from there
VertBitSet meshlib.mrmeshpy.pointUniformSampling | ( | PointCloud | pointCloud, |
UniformSamplingSettings | settings ) |
Sample vertices, removing ones that are too close; returns std::nullopt if it was terminated by the callback \\ingroup PointCloudGroup
constructs an offset contour for given polyline
None meshlib.mrmeshpy.positionVertsSmoothly | ( | Mesh | mesh, |
VertBitSet | verts, | ||
EdgeWeights | edgeWeightsType = 'EdgeWeights::Cotan', | ||
VertBitSet | fixedSharpVertices = None ) |
Puts given vertices in such positions to make smooth surface both inside verts-region and on its boundary; \\param verts must not include all vertices of a mesh connected component \\param fixedSharpVertices in these vertices the surface can be not-smooth
None meshlib.mrmeshpy.positionVertsSmoothlySharpBd | ( | Mesh | mesh, |
VertBitSet | verts, | ||
VertCoords | vertShifts = None, | ||
VertScalars | vertStabilizers = None ) |
Puts given vertices in such positions to make smooth surface inside verts-region, but sharp on its boundary; \\param verts must not include all vertices of a mesh connected component unless vertStabilizers are given \\param vertShifts optional additional shifts of each vertex relative to smooth position \\param vertStabilizers optional per-vertex stabilizers: the more the value, the bigger vertex attraction to its original position
None meshlib.mrmeshpy.positionVertsWithSpacing | ( | Mesh | mesh, |
SpacingSettings | settings ) |
Moves given vertices to make the distances between them as specified
None meshlib.mrmeshpy.printCurrentTimerBranch | ( | ) |
prints current timer branch
None meshlib.mrmeshpy.printStacktraceOnCrash | ( | ) |
Print stacktrace on application crash
None meshlib.mrmeshpy.printTimingTree | ( | float | minTimeSec = 0.1 | ) |
prints the current timing tree \\param minTimeSec omit printing records with time spent less than given value in seconds
None meshlib.mrmeshpy.printTimingTreeAtEnd | ( | bool | on, |
float | minTimeSec = 0.1 ) |
enables or disables printing of timing tree when application terminates \\param minTimeSec omit printing records with time spent less than given value in seconds
None meshlib.mrmeshpy.processCloseTriangles | ( | MeshPart | mp, |
std_array_Vector3_float_3 | t, | ||
float | rangeSq, | ||
func_ProcessOneResult_from_Vector3_float_Id_FaceTag_Vector3_float_float | call ) |
invokes given callback for all triangles from given mesh part located not further than given squared distance from t-triangle
VertScalars meshlib.mrmeshpy.projectAllMeshVertices | ( | Mesh | refMesh, |
Mesh | mesh, | ||
AffineXf3f | refXf = None, | ||
AffineXf3f | xf = None, | ||
float | upDistLimitSq = 3.4028234663852886e+38, | ||
float | loDistLimitSq = 0.0 ) |
Computes signed distances from all mesh points to refMesh. `refMesh` - all points will me projected to this mesh `mesh` - this mesh points will be projected `refXf` - world transform for refMesh `upDistLimitSq` - upper limit on the distance in question, if the real distance is larger than the returning upDistLimit `loDistLimitSq` - low limit on the distance in question, if a point is found within this distance then it is immediately returned without searching for a closer one
None meshlib.mrmeshpy.projectOnAll | ( | Vector3f | pt, |
AABBTreeObjects | tree, | ||
float | upDistLimitSq, | ||
func_void_from_Id_ObjTag_MeshOrPoints_ProjectionResult | callback, | ||
ObjId | skipObjId = 'MR::ObjId{}' ) |
finds closest point on every object within given distance
None meshlib.mrmeshpy.putScanFileNameInZ | ( | std_vector_std_filesystem_path | scans, |
std_vector_SliceInfo | zOrder ) |
Read layer heights from given scan file names
bool meshlib.mrmeshpy.rayBoxIntersect | ( | Box3f | box, |
RayOrigin_float | rayOrigin, | ||
float_output | t0, | ||
float_output | t1, | ||
IntersectionPrecomputes_float | prec ) |
finds intersection between the Ray and the Box. Precomputed values could be useful for several calls with the same direction, see "An Efficient and Robust Ray-Box Intersection Algorithm" at https://people.csail.mit.edu/amy/papers/box-jgt.pdf
MeshIntersectionResult meshlib.mrmeshpy.rayInsideIntersect | ( | Mesh | mesh, |
MeshPoint | m, | ||
float | rayEnd = 3.4028234663852886e+38 ) |
returns the nearest intersection between the mesh and the ray from given point along minus normal (inside the mesh)
MeshIntersectionResult meshlib.mrmeshpy.rayInsideIntersect | ( | Mesh | mesh, |
VertId | v, | ||
float | rayEnd = 3.4028234663852886e+38 ) |
MeshIntersectionResult meshlib.mrmeshpy.rayMeshIntersect | ( | MeshPart | meshPart, |
Line3d | line, | ||
float | rayStart = 0.0, | ||
float | rayEnd = 1.7976931348623157e+308, | ||
IntersectionPrecomputes_double | prec = None, | ||
bool | closestIntersect = True, | ||
func_bool_from_Id_FaceTag | validFaces = 'MR::FacePredicate{}' ) |
Finds ray and mesh intersection in double-precision. \\p rayStart and \\p rayEnd define the interval on the ray to detect an intersection. \\p prec can be specified to reuse some precomputations (e.g. for checking many parallel rays). \\p vadidFaces if given then all faces for which false is returned will be skipped Finds the closest to ray origin intersection (or any intersection for better performance if \\p !closestIntersect).
MeshIntersectionResult meshlib.mrmeshpy.rayMeshIntersect | ( | MeshPart | meshPart, |
Line3f | line, | ||
float | rayStart = 0.0, | ||
float | rayEnd = 3.4028234663852886e+38, | ||
IntersectionPrecomputes_float | prec = None, | ||
bool | closestIntersect = True, | ||
func_bool_from_Id_FaceTag | validFaces = 'MR::FacePredicate{}' ) |
Finds ray and mesh intersection in float-precision. \\p rayStart and \\p rayEnd define the interval on the ray to detect an intersection. \\p prec can be specified to reuse some precomputations (e.g. for checking many parallel rays). \\p vadidFaces if given then all faces for which false is returned will be skipped Finds the closest to ray origin intersection (or any intersection for better performance if \\p !closestIntersect).
None meshlib.mrmeshpy.rayMeshIntersectAll | ( | MeshPart | meshPart, |
Line3d | line, | ||
func_bool_from_MeshIntersectionResult | callback, | ||
float | rayStart = 0.0, | ||
float | rayEnd = 1.7976931348623157e+308, | ||
IntersectionPrecomputes_double | prec = None ) |
Same as \\ref rayMeshIntersectAllF, but use double precision
None meshlib.mrmeshpy.rayMeshIntersectAll | ( | MeshPart | meshPart, |
Line3f | line, | ||
func_bool_from_MeshIntersectionResult | callback, | ||
float | rayStart = 0.0, | ||
float | rayEnd = 3.4028234663852886e+38, | ||
IntersectionPrecomputes_float | prec = None ) |
Intersects ray with mesh. Finds all intersections \\anchor rayMeshIntersectAllF
MultiMeshIntersectionResult meshlib.mrmeshpy.rayMultiMeshAnyIntersect | ( | std_vector_Line3Mesh_double | lineMeshes, |
float | rayStart = 0.0, | ||
float | rayEnd = 1.7976931348623157e+308 ) |
Same as \\ref rayMultiMeshAnyIntersectF, but use double precision
MultiMeshIntersectionResult meshlib.mrmeshpy.rayMultiMeshAnyIntersect | ( | std_vector_Line3Mesh_float | lineMeshes, |
float | rayStart = 0.0, | ||
float | rayEnd = 3.4028234663852886e+38 ) |
Intersects ray with many meshes. Finds any intersection (not the closest) \\anchor rayMultiMeshAnyIntersectF
PolylineIntersectionResult2 meshlib.mrmeshpy.rayPolylineIntersect | ( | Polyline2 | polyline, |
Line2d | line, | ||
float | rayStart = 0, | ||
float | rayEnd = 1.7976931348623157e+308, | ||
IntersectionPrecomputes2_double | prec = None, | ||
bool | closestIntersect = True ) |
Finds ray and polyline intersection in double-precision. \\p rayStart and \\p rayEnd define the interval on the ray to detect an intersection. \\p prec can be specified to reuse some precomputations (e.g. for checking many parallel rays). Finds the closest to ray origin intersection (or any intersection for better performance if \\p !closestIntersect).
PolylineIntersectionResult2 meshlib.mrmeshpy.rayPolylineIntersect | ( | Polyline2 | polyline, |
Line2f | line, | ||
float | rayStart = 0, | ||
float | rayEnd = 3.4028234663852886e+38, | ||
IntersectionPrecomputes2_float | prec = None, | ||
bool | closestIntersect = True ) |
Finds ray and polyline intersection in float-precision. \\p rayStart and \\p rayEnd define the interval on the ray to detect an intersection. \\p prec can be specified to reuse some precomputations (e.g. for checking many parallel rays). Finds the closest to ray origin intersection (or any intersection for better performance if \\p !closestIntersect).
TriIntersectResult meshlib.mrmeshpy.rayTriangleIntersect | ( | Vector3d | oriA, |
Vector3d | oriB, | ||
Vector3d | oriC, | ||
IntersectionPrecomputes_double | prec ) |
TriIntersectResult meshlib.mrmeshpy.rayTriangleIntersect | ( | Vector3d | oriA, |
Vector3d | oriB, | ||
Vector3d | oriC, | ||
Vector3d | dir ) |
TriIntersectResult meshlib.mrmeshpy.rayTriangleIntersect | ( | Vector3f | oriA, |
Vector3f | oriB, | ||
Vector3f | oriC, | ||
IntersectionPrecomputes_float | prec ) |
TriIntersectResult meshlib.mrmeshpy.rayTriangleIntersect | ( | Vector3f | oriA, |
Vector3f | oriB, | ||
Vector3f | oriC, | ||
Vector3f | dir ) |
TriIntersectResult meshlib.mrmeshpy.rayTriangleIntersect_ | ( | Vector3d | oriA, |
Vector3d | oriB, | ||
Vector3d | oriC, | ||
IntersectionPrecomputes_double | prec ) |
TriIntersectResult meshlib.mrmeshpy.rayTriangleIntersect_ | ( | Vector3f | oriA, |
Vector3f | oriB, | ||
Vector3f | oriC, | ||
IntersectionPrecomputes_float | prec ) |
bool meshlib.mrmeshpy.readByBlocks | ( | typing.Any | in_, |
char_output | data, | ||
int | dataSize, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}', | ||
int | blockSize = 65536 ) |
\\brief read dataSize bytes from in stream to data by blocks blockSize bytes \\details if progress callback is not set, read all data by one block \\return false if process was canceled (callback is set and return false )
None meshlib.mrmeshpy.readRawTiff | ( | os.PathLike | path, |
RawTiffOutput | output ) |
load values from tiff to ouput.data
str meshlib.mrmeshpy.readString | ( | typing.Any | in_ | ) |
reads input stream to string
TiffParameters meshlib.mrmeshpy.readTiffParameters | ( | os.PathLike | path | ) |
reads parameters of tiff file
Mesh meshlib.mrmeshpy.rebuildMesh | ( | MeshPart | mp, |
RebuildMeshSettings | settings ) |
fixes all types of issues in input mesh (degenerations, holes, self-intersections, etc.) by first converting mesh in voxel representation, and then backward
int meshlib.mrmeshpy.reducePath | ( | Mesh | mesh, |
MeshTriPoint | start, | ||
std_vector_EdgePoint | path, | ||
MeshTriPoint | end, | ||
int | maxIter = 5 ) |
converts any input surface path into geodesic path (so reduces its length): start-path-end; returns actual number of iterations performed
bool meshlib.mrmeshpy.reducePathViaVertex | ( | Mesh | mesh, |
MeshTriPoint | start, | ||
VertId | v, | ||
MeshTriPoint | end, | ||
std_vector_EdgePoint | outPath, | ||
std_vector_Vector2_float | tmp, | ||
std_vector_EdgePoint | cachePath ) |
given path s-v-e, tries to decrease its length by moving away from v \\param outPath intermediate locations between s and e will be added here \\param tmp elements will be temporary allocated here \\param cachePath as far as we need two sides unfold, cache one to reduce allocations
AffineXf3f meshlib.mrmeshpy.refineFeatureObject | ( | FeatureObject | featObj, |
Mesh | mesh, | ||
RefineParameters | params = 'MR::RefineParameters{}' ) |
Recalculate the feature object's position so it would better fit with the given mesh
AffineXf3f meshlib.mrmeshpy.refineFeatureObject | ( | FeatureObject | featObj, |
PointCloud | pointCloud, | ||
RefineParameters | params = 'MR::RefineParameters{}' ) |
Recalculate the feature object's position so it would better fit with the given point cloud
bool meshlib.mrmeshpy.relax | ( | Mesh | mesh, |
MeshRelaxParams | params = 'MR::MeshRelaxParams{}', | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
applies given number of relaxation iterations to the whole mesh ( or some region if it is specified ) \\return true if was finished successfully, false if was interrupted by progress callback
bool meshlib.mrmeshpy.relax | ( | PointCloud | pointCloud, |
PointCloudRelaxParams | params = 'MR::PointCloudRelaxParams{}', | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
applies given number of relaxation iterations to the whole pointCloud ( or some region if it is specified ) \\return true if was finished successfully, false if was interrupted by progress callback
bool meshlib.mrmeshpy.relaxApprox | ( | Mesh | mesh, |
MeshApproxRelaxParams | params = 'MR::MeshApproxRelaxParams{}', | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
applies given number of relaxation iterations to the whole mesh ( or some region if it is specified ) approx neighborhoods \\return true if the operation completed successfully, and false if it was interrupted by the progress callback.
bool meshlib.mrmeshpy.relaxApprox | ( | PointCloud | pointCloud, |
PointCloudApproxRelaxParams | params = 'MR::PointCloudApproxRelaxParams{}', | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
applies given number of relaxation iterations to the whole pointCloud ( or some region if it is specified ) approx neighborhoods \\return true if was finished successfully, false if was interrupted by progress callback
bool meshlib.mrmeshpy.relaxKeepVolume | ( | Mesh | mesh, |
MeshRelaxParams | params = 'MR::MeshRelaxParams{}', | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
applies given number of relaxation iterations to the whole mesh ( or some region if it is specified ) \\n do not really keeps volume but tries hard \\return true if the operation completed successfully, and false if it was interrupted by the progress callback.
bool meshlib.mrmeshpy.relaxKeepVolume | ( | PointCloud | pointCloud, |
PointCloudRelaxParams | params = 'MR::PointCloudRelaxParams{}', | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
applies given number of relaxation iterations to the whole pointCloud ( or some region if it is specified ) do not really keeps volume but tries hard \\return true if was finished successfully, false if was interrupted by progress callback
bool meshlib.mrmeshpy.remesh | ( | Mesh | mesh, |
RemeshSettings | settings ) |
Splits too long and eliminates too short edges from the mesh
None meshlib.mrmeshpy.removeLoneContours | ( | std_vector_std_vector_VariableEdgeTri | contours | ) |
Removes contours that fully lay inside one triangle from the contours
None meshlib.mrmeshpy.removeLoneDegeneratedContours | ( | MeshTopology | edgesTopology, |
std_vector_OneMeshContour | faceContours, | ||
std_vector_OneMeshContour | edgeContours ) |
Removes contours with zero area (do not remove if contour is handle on topology) edgesTopology - topology on which contours are represented with edges faceContours - lone contours represented by faces (all intersections are in same mesh A face) edgeContours - lone contours represented by edges (all intersections are in mesh B edges, edgesTopology: meshB.topology)
None meshlib.mrmeshpy.removeSpikes | ( | Mesh | mesh, |
int | maxIterations, | ||
float | minSumAngle, | ||
VertBitSet | region = None ) |
applies at most given number of relaxation iterations the spikes detected by given threshold
str meshlib.mrmeshpy.replace | ( | str | target, |
str | from_, | ||
str | to ) |
Returns \\param target with all \\param from replaced with \\param to, zero or more times.
None meshlib.mrmeshpy.replaceInplace | ( | std_string_output | target, |
str | from_, | ||
str | to ) |
Replaces \\param from with \\param to in \\param target (in-place), zero or more times.
str meshlib.mrmeshpy.replaceProhibitedChars | ( | str | line, |
str | replacement = '_' ) |
replace OS prohibited chars ('?', '*', '/', '\\', '"', '<', '>') with `replacement` char
adjusts z-coordinates of (m) vertices to make adjusted (m) similar to (target)
bool meshlib.mrmeshpy.reportProgress | ( | func_bool_from_float | cb, |
float | v ) |
safely invokes \\param cb with given value; just returning true for empty callback
bool meshlib.mrmeshpy.reportProgress | ( | func_bool_from_float | cb, |
float | v, | ||
int | counter, | ||
int | divider ) |
safely invokes \\param cb with given value if \\param counter is divisible by \\param divider (preferably a power of 2); just returning true for empty callback
MarkedContour3f meshlib.mrmeshpy.resample | ( | MarkedContour3f | in_, |
float | minStep, | ||
std_vector_Vector3_float | normals = None ) |
keeps all marked points from input contour and adds/removes other points to have them as many as possible, but at the distance along the input line not shorter than (minStep) from their neighbor points \\param normals optional parameter with the normals of input points that will be resampled to become normals of output points
OpenVdbFloatGrid meshlib.mrmeshpy.resampled | ( | OpenVdbFloatGrid | grid, |
float | voxelScale, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
resample this grid to fit voxelScale
OpenVdbFloatGrid meshlib.mrmeshpy.resampled | ( | OpenVdbFloatGrid | grid, |
Vector3f | voxelScale, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
resample this grid to fit voxelScale
bool meshlib.mrmeshpy.resolveMeshDegenerations | ( | Mesh | mesh, |
int | maxIters, | ||
float | maxDeviation = 0, | ||
float | maxAngleChange = 1.0471975803375244, | ||
float | criticalAspectRatio = 10000 ) |
bool meshlib.mrmeshpy.resolveMeshDegenerations | ( | Mesh | mesh, |
ResolveMeshDegenSettings | settings = 'MR::ResolveMeshDegenSettings{}' ) |
\\brief Resolves degenerate triangles in given mesh \\details This function performs decimation, so it can affect topology \\ingroup DecimateGroup \\return true if the mesh has been changed \\sa \\ref decimateMesh
None meshlib.mrmeshpy.reverse | ( | std_vector_Id_EdgeTag | path | ) |
reverses the order of edges and flips each edge orientation, thus making the opposite directed edge path
None meshlib.mrmeshpy.reverse | ( | std_vector_std_vector_Id_EdgeTag | paths | ) |
reverse every path in the vector
float meshlib.mrmeshpy.roundToPrecision | ( | float | v, |
int | precision ) |
returns given value rounded to given number of decimal digits
bool meshlib.mrmeshpy.same | ( | MeshTopology | topology, |
EdgePoint | lhs, | ||
EdgePoint | rhs ) |
returns true if two edge-points are equal considering different representations
bool meshlib.mrmeshpy.same | ( | MeshTopology | topology, |
MeshTriPoint | lhs, | ||
MeshTriPoint | rhs ) |
returns true if two points are equal considering different representations
std_vector_Vector3_float meshlib.mrmeshpy.sampleHalfSphere | ( | ) |
returns quasi-uniform 145 samples on unit half-sphere z>0
None meshlib.mrmeshpy.saveAllSlicesToImage | ( | VdbVolume | vdbVolume, |
VoxelsSave.SavingSettings | settings ) |
save all slices by the active plane through all voxel planes along the active axis to an image file
None meshlib.mrmeshpy.saveDistanceMapToImage | ( | DistanceMap | distMap, |
os.PathLike | filename, | ||
float | threshold = 0.003921568859368563 ) |
saves distance map to a grayscale image file threshold - threshold of maximum values [0.; 1.]. invalid pixel set as 0. (black) minimum (close): 1.0 (white) maximum (far): threshold invalid (infinity): 0.0 (black)
None meshlib.mrmeshpy.saveLines | ( | Polyline3 | polyline, |
os.PathLike | file, | ||
SaveSettings | settings = 'MR::SaveSettings{}' ) |
detects the format from file extension and saves polyline in it
None meshlib.mrmeshpy.saveLines | ( | Polyline3 | polyline, |
str | extension, | ||
typing.Any | out, | ||
SaveSettings | settings = 'MR::SaveSettings{}' ) |
extension in `*.ext` format
None meshlib.mrmeshpy.saveMesh | ( | Mesh | mesh, |
os.PathLike | file, | ||
SaveSettings | settings = 'MR::SaveSettings{}' ) |
detects the format from file extension and save mesh to it
None meshlib.mrmeshpy.saveMesh | ( | Mesh | mesh, |
str | extension, | ||
typing.Any | out, | ||
SaveSettings | settings = 'MR::SaveSettings{}' ) |
extension in `*.ext` format
None meshlib.mrmeshpy.saveObjectVoxelsToFile | ( | Object | object, |
os.PathLike | path, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
None meshlib.mrmeshpy.savePoints | ( | PointCloud | points, |
os.PathLike | file, | ||
SaveSettings | settings = 'MR::SaveSettings{}' ) |
detects the format from file extension and save points to it
None meshlib.mrmeshpy.savePoints | ( | PointCloud | points, |
str | extension, | ||
typing.Any | out, | ||
SaveSettings | settings = 'MR::SaveSettings{}' ) |
extension in `*.ext` format
None meshlib.mrmeshpy.saveSliceToImage | ( | os.PathLike | path, |
VdbVolume | vdbVolume, | ||
SlicePlane | slicePlain, | ||
int | sliceNumber, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
save the slice by the active plane through the sliceNumber to an image file
None meshlib.mrmeshpy.saveVoxels | ( | VdbVolume | vdbVolume, |
os.PathLike | file, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
Saves voxels in a file, detecting the format from file extension
None meshlib.mrmeshpy.saveVoxelsGav | ( | SimpleVolume | simpleVolume, |
os.PathLike | file, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
None meshlib.mrmeshpy.saveVoxelsGav | ( | SimpleVolume | simpleVolume, |
typing.Any | out, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
None meshlib.mrmeshpy.saveVoxelsGav | ( | SimpleVolumeMinMax | simpleVolumeMinMax, |
os.PathLike | file, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
None meshlib.mrmeshpy.saveVoxelsGav | ( | SimpleVolumeMinMax | simpleVolumeMinMax, |
typing.Any | out, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
None meshlib.mrmeshpy.saveVoxelsGav | ( | VdbVolume | vdbVolume, |
os.PathLike | file, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
Save voxels in Gav-format in given destination
None meshlib.mrmeshpy.saveVoxelsGav | ( | VdbVolume | vdbVolume, |
typing.Any | out, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
None meshlib.mrmeshpy.saveVoxelsRaw | ( | SimpleVolume | simpleVolume, |
os.PathLike | file, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
None meshlib.mrmeshpy.saveVoxelsRaw | ( | VdbVolume | vdbVolume, |
os.PathLike | file, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
Save raw voxels file, writing parameters in file name
FaceBitSet meshlib.mrmeshpy.segmentByGraphCut | ( | MeshTopology | topology, |
FaceBitSet | source, | ||
FaceBitSet | sink, | ||
func_float_from_Id_EdgeTag | metric ) |
\\brief Finds segment that divide mesh on source and sink (source included, sink excluded), by minimizing the sum of metric over the boundary \\ingroup MeshSegmentationGroup
Mesh meshlib.mrmeshpy.segmentVolume | ( | VdbVolume | volume, |
std_vector_std_pair_Vector3_float_Vector3_float | pairs, | ||
VolumeSegmentationParameters | params = 'MR::VolumeSegmentationParameters()' ) |
\\brief Simple segment volume \\details 1. Build paths between points pairs \\n 2. Mark paths as inside part seeds \\n 3. Mark volume part edges as outside part seeds \\n 4. Return mesh from segmented inside part
VoxelBitSet meshlib.mrmeshpy.segmentVolumeByGraphCut | ( | SimpleVolume | densityVolume, |
float | k, | ||
VoxelBitSet | sourceSeeds, | ||
VoxelBitSet | sinkSeeds, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
\\brief Segment voxels of given volume on two sets using graph-cut, returning source set \\ingroup VoxelGroup \\param k - coefficient in the exponent of the metric affecting edge capacity:\\n increasing k you force to find a higher steps in the density on the boundary, decreasing k you ask for smoother boundary \\param sourceSeeds - these voxels will be included in the result \\param sinkSeeds - these voxels will be excluded from the result \\sa \\ref VolumeSegmenter
None meshlib.mrmeshpy.SegPoints | ( | Vector3f | VEC, |
Vector3f | X, | ||
Vector3f | Y, | ||
Vector3f | P, | ||
Vector3f | A, | ||
Vector3f | Q, | ||
Vector3f | B ) |
Returns closest points between an segment pair.
std_vector_TaggedBitSet_FaceTag meshlib.mrmeshpy.separateClosedContour | ( | Mesh | mesh, |
std_vector_Vector3_float | contour, | ||
func_void_from_EdgePoint | cb = 'MR::PathMeshEdgePointCallback{}' ) |
Separates mesh into disconnected by contour components (independent components are not returned), faces that are intersected by contour does not belong to any component. Calls callback for each MeshEdgePoint in contour respecting order, ignoring MeshTriPoints (if projection of input point lay inside face)
None meshlib.mrmeshpy.serializeMesh | ( | Mesh | mesh, |
os.PathLike | path, | ||
FaceBitSet | selection = None, | ||
str | saveMeshFormat = '".mrmesh"' ) |
saves mesh with optional selection to mru format; this is very convenient for saving intermediate states during algorithm debugging; ".mrmesh" save mesh format is not space efficient, but guaranties no changes in the topology after loading
None meshlib.mrmeshpy.serializeObjectTree | ( | Object | object, |
os.PathLike | path, | ||
func_bool_from_float | progress, | ||
func_void_from_std_filesystem_path | preCompress ) |
\\brief saves object subtree in given scene file (zip/mru) \\details format specification: children are saved under folder with name of their parent object all objects parameters are saved in one JSON file in the root folder if preCompress is set, it is called before compression saving is controlled with Object::serializeModel_ and Object::serializeFields_
None meshlib.mrmeshpy.serializeObjectTree | ( | Object | object, |
os.PathLike | path, | ||
func_bool_from_float | progress = 'MR::ProgressCallback{}' ) |
None meshlib.mrmeshpy.serializeObjectTreeToGltf | ( | Object | root, |
os.PathLike | file, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}' ) |
saves scene to a glTF file
None meshlib.mrmeshpy.SetCurrentThreadName | ( | str | name | ) |
sets debug name for the current thread
None meshlib.mrmeshpy.setLevelSetType | ( | OpenVdbFloatGrid | grid | ) |
sets type of this grid as LEVEL SET (for normal flipping)
None meshlib.mrmeshpy.setNewHandlerIfNeeded | ( | ) |
sets new handler for operator new if needed for some platforms
None meshlib.mrmeshpy.setupLoggerByDefault | ( | ) |
Setups logger: 1) makes stdout sink 2) makes file sink (MRLog.txt) 3) redirect std streams to logger 4) print stacktrace on crash (not in wasm) log level - trace
None meshlib.mrmeshpy.setValue | ( | OpenVdbFloatGrid | grid, |
Vector3i | p, | ||
float | value ) |
sets given region voxels value \\note region is in grid space (0 voxel id is minimum active voxel in grid)
None meshlib.mrmeshpy.setValue | ( | OpenVdbFloatGrid | grid, |
VoxelBitSet | region, | ||
float | value ) |
sets given region voxels value \\note region is in grid space (0 voxel id is minimum active voxel in grid)
None meshlib.mrmeshpy.sharpenMarchingCubesMesh | ( | MeshPart | ref, |
Mesh | vox, | ||
Vector_Id_VoxelTag_FaceId | face2voxel, | ||
SharpenMarchingCubesMeshSettings | settings ) |
adjust the mesh \\param vox produced by marching cubes method (NOT dual marching cubes) by 1) correcting positions of all vertices to given offset relative to \\param ref mesh (if correctOldVertPos == true); 2) introducing new vertices in the voxels where the normals change abruptly. \\param face2voxel mapping from Face Id to Voxel Id where it is located
Mesh meshlib.mrmeshpy.sharpOffsetMesh | ( | MeshPart | mp, |
float | offset, | ||
SharpOffsetParameters | params = 'MR::SharpOffsetParameters{}' ) |
Offsets mesh by converting it to voxels and back post process result using reference mesh to sharpen features
None meshlib.mrmeshpy.shrink | ( | MeshTopology | topology, |
FaceBitSet | region, | ||
int | hops = 1 ) |
removes from the region all faces within given number of hops (stars) from the initial region boundary
None meshlib.mrmeshpy.shrink | ( | MeshTopology | topology, |
VertBitSet | region, | ||
int | hops = 1 ) |
removes from the region all vertices within given number of hops (stars) from the initial region boundary
FaceBitSet meshlib.mrmeshpy.shrinkFaces | ( | MeshTopology | topology, |
FaceBitSet | region, | ||
UndirectedEdgeBitSet | stopEdges = None ) |
returns given region without all faces sharing an edge with not-region face; \\param stopEdges - neighborhood via this edges will be ignored
None meshlib.mrmeshpy.shrinkPixelMask | ( | PixelBitSet | mask, |
RectIndexer | indexer, | ||
int | shrinkage = 1 ) |
shrinks PixelBitSet with given number of steps
None meshlib.mrmeshpy.shrinkVoxelsMask | ( | VoxelBitSet | mask, |
VolumeIndexer | indexer, | ||
int | shrinkage = 1 ) |
shrinks VoxelBitSet with given number of steps
float meshlib.mrmeshpy.signedDistanceToMesh | ( | MeshPart | mp, |
Vector3f | p, | ||
DistanceToMeshOptions | op ) |
computes signed distance from point (p) to mesh part (mp) following options (op); returns std::nullopt if distance is smaller than op.minDist or larger than op.maxDist (except for op.signMode == HoleWindingRule)
OpenVdbFloatGrid meshlib.mrmeshpy.simpleVolumeToDenseGrid | ( | SimpleVolume | simpleVolume, |
float | background = 0.0, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
make FloatGrid from SimpleVolume make copy of data background - the new background value for FloatGrid grid can be used to make iso-surface later with gridToMesh function
VdbVolume meshlib.mrmeshpy.simpleVolumeToVdbVolume | ( | SimpleVolumeMinMax | simpleVolume, |
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
set the simpleVolume.min as the background value
None meshlib.mrmeshpy.smoothRegionBoundary | ( | Mesh | mesh, |
FaceBitSet | regionFaces, | ||
int | numIters = 4 ) |
given a region of faces on the mesh, moves boundary vertices of the region to make the region contour much smoother with minor optimization of mesh topology near region boundary; \\param numIters >= 1 how many times to run the algorithm to achieve a better quality, solution is typically oscillates back and forth so even number of iterations is recommended
FaceBitSet meshlib.mrmeshpy.smoothSelection | ( | Mesh | mesh, |
FaceBitSet | region, | ||
float | expandOffset, | ||
float | shrinkOffset ) |
makes the given selection more smooth with shifthing a boundary of the selection outside and back. Input mesh is changed because we have to cut new edges along the new boundaries \\param expandOffset defines how much the boundary is expanded \\param expandOffset defines how much the boundary is shrinked after that
None meshlib.mrmeshpy.sortPathsByLength | ( | std_vector_std_vector_Id_EdgeTag | paths, |
Mesh | mesh ) |
None meshlib.mrmeshpy.sortPathsByMetric | ( | std_vector_std_vector_Id_EdgeTag | paths, |
func_float_from_Id_EdgeTag | metric ) |
sorts given paths in ascending order of their metrics
None meshlib.mrmeshpy.sortScanFilesByName | ( | std_vector_std_filesystem_path | scans | ) |
Sort scan files in given vector by names (respect numbers in it)
None meshlib.mrmeshpy.sortScansByOrder | ( | std_vector_std_filesystem_path | scans, |
std_vector_SliceInfo | zOrder ) |
Sort scan files in given vector by given slice information
std_vector_std_string meshlib.mrmeshpy.split | ( | str | string, |
str | delimiter ) |
Splits given string by delimiter. \\return vector of split strings \\ingroup BasicGroup
std_vector_unsigned_long meshlib.mrmeshpy.splitByLines | ( | str | data, |
int | size ) |
returns offsets for each new line in monolith char block
std_vector_std_vector_Id_EdgeTag meshlib.mrmeshpy.splitOnSimpleLoops | ( | MeshTopology | topology, |
std_vector_std_vector_Id_EdgeTag | loops ) |
given a number of edge loops, splits every loop that passes via a vertex more than once on smaller loops without self-intersections
float meshlib.mrmeshpy.sqr | ( | Vector2d | a | ) |
squared length
float meshlib.mrmeshpy.sqr | ( | Vector2f | a | ) |
squared length
int meshlib.mrmeshpy.sqr | ( | Vector2i | a | ) |
squared length
float meshlib.mrmeshpy.sqr | ( | Vector3d | a | ) |
squared length
float meshlib.mrmeshpy.sqr | ( | Vector3f | a | ) |
squared length
int meshlib.mrmeshpy.sqr | ( | Vector3i | a | ) |
squared length
None meshlib.mrmeshpy.stitchContours | ( | MeshTopology | topology, |
std_vector_Id_EdgeTag | c0, | ||
std_vector_Id_EdgeTag | c1 ) |
given two contours: 1) of equal size; 2) all edges of c0 have no left faces; 3) all edges of c1 have no right faces; merge the surface along corresponding edges of two contours, and deletes all vertices and edges from c1
None meshlib.mrmeshpy.straightenBoundary | ( | Mesh | mesh, |
Id_EdgeTag | bd, | ||
float | minNeiNormalsDot, | ||
float | maxTriAspectRatio, | ||
FaceBitSet | newFaces = None ) |
adds triangles along the boundary to straighten it; \\details new triangle is added only if 1) aspect ratio of the new triangle is at most maxTriAspectRatio, 2) dot product of its normal with neighbor triangles is at least minNeiNormalsDot. \\ingroup MeshAlgorithmGroup
None meshlib.mrmeshpy.subdivideLoneContours | ( | Mesh | mesh, |
std_vector_OneMeshContour | contours, | ||
phmap_flat_hash_map_Id_FaceTag_Id_FaceTag | new2oldMap = None ) |
Divides faces that fully own contours into 3 parts with center in center mass of one of the face contours if there is more than one contour on face it guarantee to subdivide at least one lone contour on this face
int meshlib.mrmeshpy.subdivideMesh | ( | Mesh | mesh, |
SubdivideSettings | settings = 'MR::SubdivideSettings{}' ) |
Split edges in mesh region according to the settings;\\n \\return The total number of edge splits performed
int meshlib.mrmeshpy.subdividePolyline | ( | Polyline2 | polyline, |
PolylineSubdivideSettings | settings = 'MR::PolylineSubdivideSettings{}' ) |
Split edges in polyline according to the settings;\\n \\return The total number of edge splits performed
int meshlib.mrmeshpy.subdividePolyline | ( | Polyline3 | polyline, |
PolylineSubdivideSettings | settings = 'MR::PolylineSubdivideSettings{}' ) |
EdgeBitSet meshlib.mrmeshpy.subdividePolylineWithPlane | ( | Polyline3 | polyline, |
Plane3f | plane, | ||
func_void_from_Id_EdgeTag_Id_EdgeTag_float | onEdgeSplitCallback = None ) |
This function splits edges intersected by the plane \\return New edges with origin on the plane and oriented to the positive direction \\param polyline Input polyline that will be cut by the plane \\param plane Input plane to cut polyline with \\param onEdgeSplitCallback is invoked each time when an edge is split. Receives edge ID before split, edge ID after split, and weight of the origin vertex
FaceBitSet meshlib.mrmeshpy.subdivideWithPlane | ( | Mesh | mesh, |
Plane3f | plane, | ||
phmap_flat_hash_map_Id_FaceTag_Id_FaceTag | new2Old = None, | ||
float | eps = 0, | ||
func_void_from_Id_EdgeTag_Id_EdgeTag_float | onEdgeSplitCallback = None ) |
subdivides all triangles intersected by given plane, leaving smaller triangles that only touch the plane; \\return all triangles on the positive side of the plane \\param new2Old receive mapping from newly appeared triangle to its original triangle (part to full) \\param eps if existing vertex is within eps distance from the plane, then move the vertex not introducing new ones \\param onEdgeSplitCallback is invoked each time when an edge is split. Receives edge ID before split, edge ID after split, and weight of the origin vertex
func_bool_from_float meshlib.mrmeshpy.subprogress | ( | func_bool_from_float | cb, |
float | from_, | ||
float | to ) |
returns a callback that maps [0,1] linearly into [from,to] in the call to \\param cb (which can be empty)
func_bool_from_float meshlib.mrmeshpy.subprogress | ( | func_bool_from_float | cb, |
int | index, | ||
int | count ) |
returns a callback that maps [0,1] linearly into [(index+0)/count,(index+1)/count] in the call to \\param cb (which can be empty)
float meshlib.mrmeshpy.suggestVoxelSize | ( | MeshPart | mp, |
float | approxNumVoxels ) |
computes size of a cubical voxel to get approximately given number of voxels during rasterization
float meshlib.mrmeshpy.surfacePathLength | ( | Mesh | mesh, |
std_vector_EdgePoint | surfacePath ) |
computes the length of surface path
std_vector_std_vector_Vector3_float meshlib.mrmeshpy.surfacePathsToContours3f | ( | Mesh | mesh, |
std_vector_std_vector_EdgePoint | lines ) |
std_vector_Vector3_float meshlib.mrmeshpy.surfacePathToContour3f | ( | Mesh | mesh, |
std_vector_EdgePoint | line ) |
converts lines on mesh in 3D contours by computing coordinate of each point
std_vector_Id_EdgeTag meshlib.mrmeshpy.surroundingContour | ( | Mesh | mesh, |
std_vector_Id_EdgeTag | includeEdges, | ||
func_float_from_Id_EdgeTag | edgeMetric, | ||
Vector3f | dir ) |
\\brief 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. \\ingroup MeshSegmentationGroup \\param includeEdges contain all edges in arbitrary order that must be present in the returned loop, probably with reversed direction (should have at least 2 elements) \\param edgeMetric returned loop will minimize the sum of this metric \\param dir direction approximately orthogonal to the loop
std_vector_Id_EdgeTag meshlib.mrmeshpy.surroundingContour | ( | Mesh | mesh, |
std_vector_Id_VertTag | keyVertices, | ||
func_float_from_Id_EdgeTag | edgeMetric, | ||
Vector3f | dir ) |
\\brief 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. \\ingroup MeshSegmentationGroup \\param keyVertices contain all vertices in arbitrary order that returned loop must pass (should have at least 2 elements) \\param edgeMetric returned loop will minimize the sum of this metric \\param dir direction approximately orthogonal to the loop
str meshlib.mrmeshpy.systemToUtf8 | ( | str | system | ) |
converts system encoded string to UTF8-encoded string
std_array_VoxelsVolumeMinMax_std_vector_float_3 meshlib.mrmeshpy.teethMaskToDirectionVolume | ( | VdbVolume | volume, |
std_vector_int | additionalIds = 'std::vector<int>{}' ) |
A shortcut for \\ref TeethMaskToDirectionVolumeConvertor::create and \\ref TeethMaskToDirectionVolumeConvertor::convertAll
Mesh meshlib.mrmeshpy.terrainTriangulation | ( | std_vector_Vector3_float | points, |
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
Creates Delaunay triangulation using only XY components of points points will be changed inside this function take argument by value
Mesh meshlib.mrmeshpy.thickenMesh | ( | Mesh | mesh, |
float | offset, | ||
GeneralOffsetParameters | params = 'MR::GeneralOffsetParameters{}' ) |
in case of positive offset, returns the mesh consisting of offset mesh merged with inversed original mesh (thickening mode); in case of negative offset, returns the mesh consisting of inversed offset mesh merged with original mesh (hollowing mode); if your input mesh is open then please specify params.signDetectionMode = SignDetectionMode::Unsigned, and you will get open mesh (with several components) on output if your input mesh is closed then please specify another sign detection mode, and you will get closed mesh (with several components) on output;
str meshlib.mrmeshpy.toLower | ( | str | str | ) |
return a copy of the string with all alphabetic characters replaced with upper-case variants
MeshTopology meshlib.mrmeshpy.topologyFromTriangles | ( | Triangulation | t, |
MeshBuilder.BuildSettings | settings = 'MR::MeshBuilder::BuildSettings{}', | ||
func_bool_from_float | progressCb = 'MR::ProgressCallback{}' ) |
construct mesh topology from a set of triangles with given ids; if skippedTris is given then it receives all input triangles not added in the resulting topology
str meshlib.mrmeshpy.toString | ( | DimensionsVisualizePropertyType | value | ) |
str meshlib.mrmeshpy.toString | ( | PathError | error | ) |
std_vector_Id_EdgeTag meshlib.mrmeshpy.trackLeftBoundaryLoop | ( | MeshTopology | topology, |
FaceBitSet | region, | ||
Id_EdgeTag | e0 ) |
std_vector_Id_EdgeTag meshlib.mrmeshpy.trackLeftBoundaryLoop | ( | MeshTopology | topology, |
Id_EdgeTag | e0, | ||
FaceBitSet | region = None ) |
returns closed loop of region boundary starting from given region boundary edge (region faces on the left, and not-region faces or holes on the right); if more than two boundary edges connect in one vertex, then the function makes the most abrupt turn to right
std_vector_Id_EdgeTag meshlib.mrmeshpy.trackRightBoundaryLoop | ( | MeshTopology | topology, |
FaceBitSet | region, | ||
Id_EdgeTag | e0 ) |
std_vector_Id_EdgeTag meshlib.mrmeshpy.trackRightBoundaryLoop | ( | MeshTopology | topology, |
Id_EdgeTag | e0, | ||
FaceBitSet | region = None ) |
returns closed loop of region boundary starting from given region boundary edge (region faces on the right, and not-region faces or holes on the left); if more than two boundary edges connect in one vertex, then the function makes the most abrupt turn to left
std_vector_EdgePoint meshlib.mrmeshpy.trackSection | ( | MeshPart | mp, |
MeshTriPoint | start, | ||
MeshTriPoint | end, | ||
Vector3f | direction, | ||
float | distance ) |
track section of plane set by start point, direction and surface normal in start point in given direction while given distance or mesh boundary is not reached, or track looped negative distance means moving in opposite direction returns track on surface and end point (same as start if path has looped)
VertCoords meshlib.mrmeshpy.transformNormals | ( | VertCoords | normals, |
VertBitSet | validVerts, | ||
Matrix3d | m, | ||
VertCoords | buf ) |
if (m) is null then just returns (normals); otherwise copies transformed normals in (buf) and returns it
VertCoords meshlib.mrmeshpy.transformPoints | ( | VertCoords | verts, |
VertBitSet | validVerts, | ||
AffineXf3d | xf, | ||
VertCoords | buf, | ||
VertRenumber | vertRenumber = None ) |
if (xf) is null then just returns (verts); otherwise copies transformed points in (buf) and returns it
VdbVolume meshlib.mrmeshpy.transformVdbVolume | ( | VdbVolume | volume, |
AffineXf3f | xf, | ||
bool | fixBox = False, | ||
Box3f | box = 'MR::Box3f{}' ) |
Transform volume @param volume Volume to transform @param xf The transformation @param fixBox If true, and if \\p box is valid and represents the bounding box of the \\p volume, then the result will be shifted so that no data has negative coordinate by any of dimensions
Mesh meshlib.mrmeshpy.triangulateContours | ( | std_vector_std_vector_Vector2_double | contours, |
std_vector_std_vector_Id_VertTag | holeVertsIds = None ) |
@brief triangulate 2d contours only closed contours are allowed (first point of each contour should be the same as last point of the contour) @param holeVertsIds if set merge only points with same vertex id, otherwise merge all points with same coordinates @return return created mesh
Mesh meshlib.mrmeshpy.triangulateContours | ( | std_vector_std_vector_Vector2_float | contours, |
std_vector_std_vector_Id_VertTag | holeVertsIds = None ) |
Mesh meshlib.mrmeshpy.triangulatePointCloud | ( | PointCloud | pointCloud, |
TriangulationParameters | params = 'MR::TriangulationParameters{}', | ||
func_bool_from_float | progressCb = 'MR::ProgressCallback{}' ) |
\\brief Creates mesh from given point cloud according params Returns empty optional if was interrupted by progress bar \\ingroup PointCloudTriangulationGroup <table border=0> <caption id="triangulatePointCloud_examples"></caption> <tr> <td> \\image html triangulate/triangulate_0.png "Before" width = 350cm </td> <td> \\image html triangulate/triangulate_3.png "After" width = 350cm </td> </tr> </table>
\\brief computes the closest points on two triangles, and returns the squared distance between them. \\param s,t are the triangles, stored tri[point][dimension]. \\details If the triangles are disjoint, p and q give the closest points of s and t respectively. However, if the triangles overlap, p and q are basically a random pair of points from the triangles, not coincident points on the intersection of the triangles, as might be expected.
str meshlib.mrmeshpy.trimRight | ( | str | str | ) |
Removes all whitespace character (detected by std::isspace) at the end of string view
None meshlib.mrmeshpy.trimWithPlane | ( | Mesh | mesh, |
Plane3f | plane, | ||
std_vector_std_vector_Id_EdgeTag | outCutContours, | ||
phmap_flat_hash_map_Id_FaceTag_Id_FaceTag | new2Old = None, | ||
float | eps = 0, | ||
func_void_from_Id_EdgeTag_Id_EdgeTag_float | onEdgeSplitCallback = None ) |
\\brief trim mesh by plane This function cuts mesh with plane, leaving only part of mesh that lay in positive direction of normal \\param mesh Input mesh that will be cut \\param plane Input plane to cut mesh with \\param outCutContours optionally return newly appeared hole contours where each edge does not have right face \\param new2Old receive mapping from newly appeared triangle to its original triangle (part to full) \\param eps if existing vertex is within eps distance from the plane, then move the vertex not introducing new ones \\param onEdgeSplitCallback is invoked each time when an edge is split. Receives edge ID before split, edge ID after split, and weight of the origin vertex
None meshlib.mrmeshpy.trimWithPlane | ( | Mesh | mesh, |
Plane3f | plane, | ||
UndirectedEdgeBitSet | outCutEdges = None, | ||
phmap_flat_hash_map_Id_FaceTag_Id_FaceTag | new2Old = None, | ||
float | eps = 0, | ||
func_void_from_Id_EdgeTag_Id_EdgeTag_float | onEdgeSplitCallback = None ) |
\\brief trim mesh by plane This function cuts mesh with plane, leaving only part of mesh that lay in positive direction of normal \\param mesh Input mesh that will be cut \\param plane Input plane to cut mesh with \\param outCutEdges optionally return newly appeared hole boundary edges \\param new2Old receive mapping from newly appeared triangle to its original triangle (part to full) \\param eps if existing vertex is within eps distance from the plane, then move the vertex not introducing new ones \\param onEdgeSplitCallback is invoked each time when an edge is split. Receives edge ID before split, edge ID after split, and weight of the origin vertex
None meshlib.mrmeshpy.trimWithPlane | ( | Mesh | mesh, |
TrimWithPlaneParams | params, | ||
TrimOptionalOutput | optOut = 'MR::TrimOptionalOutput{}' ) |
\\brief trim mesh by plane This function cuts mesh with plane, leaving only part of mesh that lay in positive direction of normal \\param mesh Input mesh that will be cut \\param params stores basic params for trimWithPlane function \\param optOut stores optional output params for trimWithPlane function
IteratorRange_UndirectedEdgeIterator meshlib.mrmeshpy.undirectedEdges | ( | MeshTopology | topology | ) |
IteratorRange_PolylineUndirectedEdgeIterator meshlib.mrmeshpy.undirectedEdges | ( | PolylineTopology | topology | ) |
int meshlib.mrmeshpy.uniteCloseVertices | ( | Mesh | mesh, |
float | closeDist, | ||
bool | uniteOnlyBd = True, | ||
VertMap | optionalVertOldToNew = None ) |
the function finds groups of mesh vertices located closer to each other than \\param closeDist, and unites such vertices in one; then the mesh is rebuilt from the remaining triangles \\param optionalVertOldToNew is the mapping of vertices: before -> after \\param uniteOnlyBd if true then only boundary vertices can be united, all internal vertices (even close ones) will remain \\return the number of vertices united, 0 means no change in the mesh
AllLocalTriangulations meshlib.mrmeshpy.uniteLocalTriangulations | ( | std_vector_SomeLocalTriangulations | in_, |
func_bool_from_float | progress = 'MR::ProgressCallback{}' ) |
converts a set of SomeLocalTriangulations containing local triangulations of all points arbitrary distributed among them into one AllLocalTriangulations with records for all points
Mesh meshlib.mrmeshpy.uniteManyMeshes | ( | std_vector_Mesh_const | meshes, |
UniteManyMeshesParams | params = 'MR::UniteManyMeshesParams{}' ) |
Computes the surface of objects' union each of which is defined by its own surface mesh - merge non intersecting meshes first - unite merged groups
Vector3d meshlib.mrmeshpy.unitVector3_double | ( | float | azimuth, |
float | altitude ) |
returns a point on unit sphere given two angles
Vector3f meshlib.mrmeshpy.unitVector3_float | ( | float | azimuth, |
float | altitude ) |
returns a point on unit sphere given two angles
None meshlib.mrmeshpy.updateGroupPairs | ( | ICPGroupPairs | pairs, |
Vector_MeshOrPointsXf_ObjId | objs, | ||
func_void_from_Vector3_float_MeshOrPoints_ProjectionResult_Id_ObjTag | srcProjector, | ||
func_void_from_Vector3_float_MeshOrPoints_ProjectionResult_Id_ObjTag | tgtProjector, | ||
float | cosThreshold, | ||
float | distThresholdSq, | ||
bool | mutualClosest ) |
in each pair updates the target data and performs basic filtering (activation)
None meshlib.mrmeshpy.updateIndicator | ( | Mesh | mesh, |
UndirectedEdgeScalars | v, | ||
FaceNormals | normals, | ||
float | beta, | ||
float | gamma ) |
Compute edge indicator function (1 - smooth edge, 0 - crease edge) by solving large system of linear equations \\param mesh contains topology information and coordinates for equation weights \\param normals per-face normals \\param beta 0.001 - sharp edges, 0.01 - moderate edges, 0.1 - smooth edges \\param gamma the amount of smoothing: 0 - no smoothing, 1 - average smoothing, ... see the article "Mesh Denoising via a Novel Mumford-Shah Framework", equation (20)
None meshlib.mrmeshpy.updateIndicatorFast | ( | MeshTopology | topology, |
UndirectedEdgeScalars | v, | ||
FaceNormals | normals, | ||
float | beta, | ||
float | gamma ) |
Compute edge indicator function (1 - smooth edge, 0 - crease edge) by approximation without solving the system of linear equations \\param normals per-face normals \\param beta 0.001 - sharp edges, 0.01 - moderate edges, 0.1 - smooth edges \\param gamma the amount of smoothing: 0 - no smoothing, 1 - average smoothing, ... see the article "Mesh Denoising via a Novel Mumford-Shah Framework", equation (20)
None meshlib.mrmeshpy.updatePointPairs | ( | PointPairs | pairs, |
MeshOrPointsXf | src, | ||
MeshOrPointsXf | tgt, | ||
float | cosThreshold, | ||
float | distThresholdSq, | ||
bool | mutualClosest ) |
in each pair updates the target data and performs basic filtering (activation)
str meshlib.mrmeshpy.utf8string | ( | os.PathLike | path | ) |
str meshlib.mrmeshpy.utf8ToSystem | ( | str | utf8 | ) |
converts UTF8-encoded string to system encoded string, returns empty string if such conversion cannot be made
str meshlib.mrmeshpy.utf8ToWide | ( | str | utf8 | ) |
converts UTF8-encoded string into UTF16-encoded string
SimpleVolumeMinMax meshlib.mrmeshpy.vdbVolumeToSimpleVolume | ( | VdbVolume | vdbVolume, |
Box3i | activeBox = 'MR::Box3i()', | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
make SimpleVolume from VdbVolume make copy of data
SimpleVolumeMinMax meshlib.mrmeshpy.vdbVolumeToSimpleVolumeNorm | ( | VdbVolume | vdbVolume, |
Box3i | activeBox = 'MR::Box3i()', | ||
std_optional_Box_float | sourceScale = 'std::optional<MR::MinMaxf>{}', | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
Makes normalized SimpleVolume from VdbVolume Normalisation consist of scaling values linearly from the source scale to the interval [0;1] @note Makes copy of data @param sourceScale if specified, defines the initial scale of voxels. If not specified, it is estimated as min. and max. values from the voxels
SimpleVolumeMinMaxU16 meshlib.mrmeshpy.vdbVolumeToSimpleVolumeU16 | ( | VdbVolume | vdbVolume, |
Box3i | activeBox = 'MR::Box3i()', | ||
std_optional_Box_float | sourceScale = 'std::optional<MR::MinMaxf>{}', | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
Makes SimpleVolumeU16 from VdbVolume Values are linearly scaled from the source scale to the range corresponding to uint16_t @note Makes copy of data @param sourceScale if specified, defines the initial scale of voxels. If not specified, it is estimated as min. and max. values from the voxels
VertCoords meshlib.mrmeshpy.vertexAttributeGradient | ( | Mesh | mesh, |
VertScalars | vertexAttribute ) |
Calculates gradient for each vertex in mesh, based on vertexAttribute
computes position of a vertex, when all neighbor triangles have almost equal areas, more precisely it minimizes sum_i (area_i)^2 by adjusting the position of this vertex only
VertBitSet meshlib.mrmeshpy.verticesGridSampling | ( | MeshPart | mp, |
float | voxelSize, | ||
func_bool_from_float | cb = 'MR::ProgressCallback{}' ) |
performs sampling of mesh vertices; subdivides mesh bounding box on voxels of approximately given size and returns at most one vertex per voxel; returns std::nullopt if it was terminated by the callback
updates a2b map to a2c map using b2c map
returns map a2c from a2b and b2c maps
Intersect mesh A and mesh B.
Subtract mesh B from mesh A.
Unite mesh A and mesh B.
VdbVolume meshlib.mrmeshpy.voxelFilter | ( | VdbVolume | volume, |
VoxelFilterType | type, | ||
int | width ) |
Performs voxels filtering. @param type Type of fitler @param width Width of the filtering window, must be an odd number greater or equal to 1.
float meshlib.mrmeshpy.voxelizeAndComputeVolume | ( | std_vector_std_shared_ptr_Mesh | meshes, |
AffineXf3f | xf, | ||
Vector3f | voxelSize ) |
Computes summary volume of given meshes converting it to voxels of given size note that each mesh should have closed topology speed and precision depends on voxelSize (smaller voxel - faster, less precise; bigger voxel - slower, more precise)
None meshlib.mrmeshpy.voxelsApplyTransform | ( | ObjectVoxels | obj, |
AffineXf3f | xf, | ||
bool | fixBox ) |
Same as above but for the SceneObject @return true, if \\p fixBox is true and the box was "fixed" (see parameter `fixBox` of \\ref transformVdbVolume)
func_float_from_unsigned_long_unsigned_long meshlib.mrmeshpy.voxelsExponentMetric | ( | VdbVolume | voxels, |
VoxelMetricParameters | parameters, | ||
float | modifier = -1.0 ) |
e^(modifier*(dens1+dens2))
func_float_from_unsigned_long_unsigned_long meshlib.mrmeshpy.voxelsSumDiffsMetric | ( | VdbVolume | voxels, |
VoxelMetricParameters | parameters ) |
sum of dense differences with start and stop voxels
str meshlib.mrmeshpy.wideToUtf8 | ( | str | wide | ) |
converts wide null terminating string to UTF8-encoded string
bool meshlib.mrmeshpy.writeByBlocks | ( | typing.Any | out, |
str | data, | ||
int | dataSize, | ||
func_bool_from_float | callback = 'MR::ProgressCallback{}', | ||
int | blockSize = 65536 ) |
\\brief write dataSize bytes from data to out stream by blocks blockSize bytes \\details if progress callback is not set, write all data by one block \\return false if process was canceled (callback is set and return false )
None meshlib.mrmeshpy.writeRawTiff | ( | int | bytes, |
os.PathLike | path, | ||
BaseTiffParameters | params ) |
writes bytes to tiff file
None meshlib.mrmeshpy.xyPlaneMeshIntersect | ( | MeshPart | meshPart, |
float | zLevel, | ||
FaceBitSet | fs, | ||
UndirectedEdgeBitSet | ues, | ||
VertBitSet | vs ) |
given mesh part and plane z=zLevel, outputs \\param fs triangles crossed or touched by the plane \\param ues edges of these triangles \\param vs vertices of these triangles
None meshlib.mrmeshpy.zlibCompressStream | ( | typing.Any | in_, |
typing.Any | out, | ||
int | level = -1 ) |
@brief compress the input data using the Deflate algorithm @param in - input data stream @param out - output data stream @param level - compression level (0 - no compression, 1 - the fastest but the most inefficient compression, 9 - the most efficient but the slowest compression) @return nothing or error string
None meshlib.mrmeshpy.zlibDecompressStream | ( | typing.Any | in_, |
typing.Any | out ) |
/brief decompress the input data compressed using the Deflate algorithm @param in - input data stream @param out - output data stream @return nothing or error string
meshlib.mrmeshpy.AABBTreeBase_FaceTreeTraits3 = AABBTreeBase_AABBTreeTraits_FaceTag_Box3f |
meshlib.mrmeshpy.AABBTreeBase_LineTreeTraits_Vector2f = AABBTreeBase_AABBTreeTraits_UndirectedEdgeTag_Box2f |
meshlib.mrmeshpy.AABBTreeBase_LineTreeTraits_Vector3f = AABBTreeBase_AABBTreeTraits_UndirectedEdgeTag_Box3f |
meshlib.mrmeshpy.AABBTreeNode_AABBTreeBase_AABBTreeTraits_FaceTag_Box3f_Traits = AABBTreeNode_AABBTreeTraits_FaceTag_Box3f |
meshlib.mrmeshpy.AABBTreeNode_AABBTreeBase_AABBTreeTraits_UndirectedEdgeTag_Box2f_Traits = AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box2f |
meshlib.mrmeshpy.AABBTreeNode_AABBTreeBase_AABBTreeTraits_UndirectedEdgeTag_Box3f_Traits = AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box3f |
meshlib.mrmeshpy.AABBTreeNode_AABBTreeBase_ObjTreeTraits_Traits = AABBTreeNode_ObjTreeTraits |
meshlib.mrmeshpy.AABBTreePolyline_Vector2f = AABBTreePolyline2 |
meshlib.mrmeshpy.AABBTreePolyline_Vector3f = AABBTreePolyline3 |
meshlib.mrmeshpy.AffineXf3_double = AffineXf3d |
meshlib.mrmeshpy.AffineXf3_float = AffineXf3f |
meshlib.mrmeshpy.AffineXf_Vector2_double = AffineXf2d |
meshlib.mrmeshpy.AffineXf_Vector2_float = AffineXf2f |
meshlib.mrmeshpy.AffineXf_Vector2d = AffineXf2d |
meshlib.mrmeshpy.AffineXf_Vector2d_M = Matrix2d |
meshlib.mrmeshpy.AffineXf_Vector2f = AffineXf2f |
meshlib.mrmeshpy.AffineXf_Vector2f_M = Matrix2f |
meshlib.mrmeshpy.AffineXf_Vector3_double = AffineXf3d |
meshlib.mrmeshpy.AffineXf_Vector3_float = AffineXf3f |
meshlib.mrmeshpy.AffineXf_Vector3d = AffineXf3d |
meshlib.mrmeshpy.AffineXf_Vector3d_M = Matrix3d |
meshlib.mrmeshpy.AffineXf_Vector3f = AffineXf3f |
meshlib.mrmeshpy.AffineXf_Vector3f_M = Matrix3f |
meshlib.mrmeshpy.AllVisualizeProperties = std_vector_ViewportMask |
meshlib.mrmeshpy.BestFitParabola_double = BestFitParabolad |
meshlib.mrmeshpy.BestFitParabola_float = BestFitParabolaf |
meshlib.mrmeshpy.BMap_AABBTreeBase_AABBTreeTraits_FaceTag_Box3f_LeafId_AABBTreeBase_AABBTreeTraits_FaceTag_Box3f_LeafId = FaceBMap |
meshlib.mrmeshpy.BMap_AABBTreeBase_AABBTreeTraits_UndirectedEdgeTag_Box2f_LeafId_AABBTreeBase_AABBTreeTraits_UndirectedEdgeTag_Box2f_LeafId = UndirectedEdgeBMap |
meshlib.mrmeshpy.BMap_AABBTreeBase_AABBTreeTraits_UndirectedEdgeTag_Box3f_LeafId_AABBTreeBase_AABBTreeTraits_UndirectedEdgeTag_Box3f_LeafId = UndirectedEdgeBMap |
meshlib.mrmeshpy.BMap_AABBTreeBase_ObjTreeTraits_LeafId_AABBTreeBase_ObjTreeTraits_LeafId = BMap_ObjId_ObjId |
meshlib.mrmeshpy.BMap_EdgeId_EdgeId = EdgeBMap |
meshlib.mrmeshpy.BMap_EdgeId_UndirectedEdgeId = WholeEdgeBMap |
meshlib.mrmeshpy.BMap_FaceId_FaceId = FaceBMap |
meshlib.mrmeshpy.BMap_FaceId_size_t = BMap_FaceId_unsigned_long |
meshlib.mrmeshpy.BMap_TaggedBitSet_EdgeTag_IndexType_TaggedBitSet_EdgeTag_IndexType = EdgeBMap |
meshlib.mrmeshpy.BMap_TaggedBitSet_FaceTag_IndexType_TaggedBitSet_FaceTag_IndexType = FaceBMap |
meshlib.mrmeshpy.BMap_TaggedBitSet_GraphEdgeTag_IndexType_TaggedBitSet_GraphEdgeTag_IndexType = BMap_GraphEdgeId_GraphEdgeId |
meshlib.mrmeshpy.BMap_TaggedBitSet_GraphVertTag_IndexType_TaggedBitSet_GraphVertTag_IndexType = BMap_GraphVertId_GraphVertId |
meshlib.mrmeshpy.BMap_TaggedBitSet_ICPElemtTag_IndexType_TaggedBitSet_ICPElemtTag_IndexType = BMap_Id_ICPElemtTag_Id_ICPElemtTag |
meshlib.mrmeshpy.BMap_TaggedBitSet_NodeTag_IndexType_TaggedBitSet_NodeTag_IndexType = BMap_NodeId_NodeId |
meshlib.mrmeshpy.BMap_TaggedBitSet_ObjTag_IndexType_TaggedBitSet_ObjTag_IndexType = BMap_ObjId_ObjId |
meshlib.mrmeshpy.BMap_TaggedBitSet_PixelTag_IndexType_TaggedBitSet_PixelTag_IndexType = BMap_PixelId_PixelId |
meshlib.mrmeshpy.BMap_TaggedBitSet_RegionTag_IndexType_TaggedBitSet_RegionTag_IndexType = BMap_RegionId_RegionId |
meshlib.mrmeshpy.BMap_TaggedBitSet_TextureTag_IndexType_TaggedBitSet_TextureTag_IndexType = BMap_TextureId_TextureId |
meshlib.mrmeshpy.BMap_TaggedBitSet_UndirectedEdgeTag_IndexType_TaggedBitSet_UndirectedEdgeTag_IndexType = UndirectedEdgeBMap |
meshlib.mrmeshpy.BMap_TaggedBitSet_VertTag_IndexType_TaggedBitSet_VertTag_IndexType = VertBMap |
meshlib.mrmeshpy.BMap_TaggedBitSet_VoxelTag_IndexType_TaggedBitSet_VoxelTag_IndexType = BMap_Id_VoxelTag_Id_VoxelTag |
meshlib.mrmeshpy.BMap_UndirectedEdgeId_size_t = BMap_UndirectedEdgeId_unsigned_long |
meshlib.mrmeshpy.BMap_UndirectedEdgeId_UndirectedEdgeId = UndirectedEdgeBMap |
meshlib.mrmeshpy.BMap_VertId_size_t = BMap_VertId_unsigned_long |
meshlib.mrmeshpy.BMap_VertId_VertId = VertBMap |
meshlib.mrmeshpy.BooleanResMapObj = BooleanResultMapper.MapObject |
meshlib.mrmeshpy.Box_double = Box1d |
meshlib.mrmeshpy.Box_double_VTraits = VectorTraits_double |
meshlib.mrmeshpy.Box_float = Box1f |
meshlib.mrmeshpy.Box_float_VTraits = VectorTraits_float |
meshlib.mrmeshpy.Box_int = Box1i |
meshlib.mrmeshpy.Box_int_VTraits = VectorTraits_int |
meshlib.mrmeshpy.Box_long_long = Box1ll |
meshlib.mrmeshpy.Box_long_long_VTraits = VectorTraits_long_long |
meshlib.mrmeshpy.Box_Vector2_double = Box2d |
meshlib.mrmeshpy.Box_Vector2_float = Box2f |
meshlib.mrmeshpy.Box_Vector2_int = Box2i |
meshlib.mrmeshpy.Box_Vector2_long_long = Box2ll |
meshlib.mrmeshpy.Box_Vector2d_VTraits = VectorTraits_Vector2d |
meshlib.mrmeshpy.Box_Vector2f = Box2f |
meshlib.mrmeshpy.Box_Vector2f_VTraits = VectorTraits_Vector2f |
meshlib.mrmeshpy.Box_Vector2i_VTraits = VectorTraits_Vector2i |
meshlib.mrmeshpy.Box_Vector2ll_VTraits = VectorTraits_Vector2ll |
meshlib.mrmeshpy.Box_Vector3_double = Box3d |
meshlib.mrmeshpy.Box_Vector3_float = Box3f |
meshlib.mrmeshpy.Box_Vector3_int = Box3i |
meshlib.mrmeshpy.Box_Vector3_long_long = Box3ll |
meshlib.mrmeshpy.Box_Vector3d = Box3d |
meshlib.mrmeshpy.Box_Vector3d_VTraits = VectorTraits_Vector3d |
meshlib.mrmeshpy.Box_Vector3f = Box3f |
meshlib.mrmeshpy.Box_Vector3f_VTraits = VectorTraits_Vector3f |
meshlib.mrmeshpy.Box_Vector3i = Box3i |
meshlib.mrmeshpy.Box_Vector3i_VTraits = VectorTraits_Vector3i |
meshlib.mrmeshpy.Box_Vector3ll_VTraits = VectorTraits_Vector3ll |
meshlib.mrmeshpy.Buffer_FaceId_unsigned_long = Buffer_FaceId |
meshlib.mrmeshpy.Buffer_UndirectedEdgeId_unsigned_long = Buffer_UndirectedEdgeId |
meshlib.mrmeshpy.Buffer_VertId_unsigned_long = Buffer_VertId |
meshlib.mrmeshpy.ColorMapAggregator_FaceTag = FaceColorMapAggregator |
meshlib.mrmeshpy.ColorMapAggregator_FaceTag_ColorMap = FaceColors |
meshlib.mrmeshpy.ColorMapAggregator_FaceTag_ElementBitSet = FaceBitSet |
meshlib.mrmeshpy.ColorMapAggregator_UndirectedEdgeTag = UndirEdgeColorMapAggregator |
meshlib.mrmeshpy.ColorMapAggregator_UndirectedEdgeTag_ColorMap = UndirectedEdgeColors |
meshlib.mrmeshpy.ColorMapAggregator_UndirectedEdgeTag_ElementBitSet = UndirectedEdgeBitSet |
meshlib.mrmeshpy.ColorMapAggregator_VertTag = VertColorMapAggregator |
meshlib.mrmeshpy.ColorMapAggregator_VertTag_ColorMap = VertColors |
meshlib.mrmeshpy.ColorMapAggregator_VertTag_ElementBitSet = VertBitSet |
meshlib.mrmeshpy.Cone3_double = Cone3d |
meshlib.mrmeshpy.Cone3_float = Cone3f |
meshlib.mrmeshpy.ContinuousContour = std_vector_VariableEdgeTri |
meshlib.mrmeshpy.ContinuousContours = std_vector_std_vector_VariableEdgeTri |
meshlib.mrmeshpy.Contour2_double = std_vector_Vector2_double |
meshlib.mrmeshpy.Contour2_float = std_vector_Vector2_float |
meshlib.mrmeshpy.Contour2d = std_vector_Vector2_double |
meshlib.mrmeshpy.Contour2f = std_vector_Vector2_float |
meshlib.mrmeshpy.Contour3_double = std_vector_Vector3_double |
meshlib.mrmeshpy.Contour3_float = std_vector_Vector3_float |
meshlib.mrmeshpy.Contour3d = std_vector_Vector3_double |
meshlib.mrmeshpy.Contour3f = std_vector_Vector3_float |
meshlib.mrmeshpy.Contour_Vector2d = std_vector_Vector2_double |
meshlib.mrmeshpy.Contour_Vector2f = std_vector_Vector2_float |
meshlib.mrmeshpy.Contour_Vector3d = std_vector_Vector3_double |
meshlib.mrmeshpy.Contour_Vector3f = std_vector_Vector3_float |
meshlib.mrmeshpy.Contours2_double = std_vector_std_vector_Vector2_double |
meshlib.mrmeshpy.Contours2_float = std_vector_std_vector_Vector2_float |
meshlib.mrmeshpy.Contours2d = std_vector_std_vector_Vector2_double |
meshlib.mrmeshpy.Contours2f = std_vector_std_vector_Vector2_float |
meshlib.mrmeshpy.Contours3_double = std_vector_std_vector_Vector3_double |
meshlib.mrmeshpy.Contours3_float = std_vector_std_vector_Vector3_float |
meshlib.mrmeshpy.Contours3d = std_vector_std_vector_Vector3_double |
meshlib.mrmeshpy.Contours3f = std_vector_std_vector_Vector3_float |
meshlib.mrmeshpy.Contours_Vector2f = std_vector_std_vector_Vector2_float |
meshlib.mrmeshpy.Contours_Vector3f = std_vector_std_vector_Vector3_float |
meshlib.mrmeshpy.copyMesh = Mesh |
meshlib.mrmeshpy.Cylinder3_double = Cylinder3d |
meshlib.mrmeshpy.Cylinder3_float = Cylinder3f |
meshlib.mrmeshpy.DecimatePolylineSettings2 = DecimatePolylineSettings_Vector2f |
meshlib.mrmeshpy.DecimatePolylineSettings3 = DecimatePolylineSettings_Vector3f |
meshlib.mrmeshpy.EdgeHashMap = phmap_flat_hash_map_Id_EdgeTag_Id_EdgeTag |
meshlib.mrmeshpy.EdgeId = Id_EdgeTag |
meshlib.mrmeshpy.EdgeLoop = std_vector_Id_EdgeTag |
meshlib.mrmeshpy.EdgeLoops = std_vector_std_vector_Id_EdgeTag |
meshlib.mrmeshpy.EdgePath = std_vector_Id_EdgeTag |
meshlib.mrmeshpy.EdgePathsBuilder = EdgePathsBuilderT_TrivialMetricToPenalty |
meshlib.mrmeshpy.FaceHashMap = phmap_flat_hash_map_Id_FaceTag_Id_FaceTag |
meshlib.mrmeshpy.FaceTreeTraits3 = AABBTreeTraits_FaceTag_Box3f |
meshlib.mrmeshpy.FeaturesPropertyTypesVariant = std_variant_float_Vector3_float |
meshlib.mrmeshpy.FileNamesStack = std_vector_std_filesystem_path |
meshlib.mrmeshpy.FixSelfIntersectionMethod = SelfIntersections.Settings.Method |
meshlib.mrmeshpy.FixSelfIntersectionSettings = SelfIntersections.Settings |
meshlib.mrmeshpy.FloatGrid = OpenVdbFloatGrid |
meshlib.mrmeshpy.GcodeSource = std_vector_std_string |
meshlib.mrmeshpy.GeneralOffsetParametersMode = OffsetMode |
meshlib.mrmeshpy.HashMap_EdgeId_EdgeId = phmap_flat_hash_map_Id_EdgeTag_Id_EdgeTag |
meshlib.mrmeshpy.HashMap_FaceId_FaceId = phmap_flat_hash_map_Id_FaceTag_Id_FaceTag |
meshlib.mrmeshpy.HashMap_int_Box3i = phmap_flat_hash_map_int_Box_Vector3_int |
meshlib.mrmeshpy.HashMap_size_t_SeparationPointSet = phmap_flat_hash_map_unsigned_long_std_array_Id_VertTag_3ul |
meshlib.mrmeshpy.HashMap_TaggedBitSet_EdgeTag_IndexType_TaggedBitSet_EdgeTag_IndexType = phmap_flat_hash_map_Id_EdgeTag_Id_EdgeTag |
meshlib.mrmeshpy.HashMap_TaggedBitSet_FaceTag_IndexType_TaggedBitSet_FaceTag_IndexType = phmap_flat_hash_map_Id_FaceTag_Id_FaceTag |
meshlib.mrmeshpy.HashMap_TaggedBitSet_GraphEdgeTag_IndexType_TaggedBitSet_GraphEdgeTag_IndexType = phmap_flat_hash_map_Id_GraphEdgeTag_Id_GraphEdgeTag |
meshlib.mrmeshpy.HashMap_TaggedBitSet_GraphVertTag_IndexType_TaggedBitSet_GraphVertTag_IndexType = phmap_flat_hash_map_Id_GraphVertTag_Id_GraphVertTag |
meshlib.mrmeshpy.HashMap_TaggedBitSet_ICPElemtTag_IndexType_TaggedBitSet_ICPElemtTag_IndexType = phmap_flat_hash_map_Id_ICPElemtTag_Id_ICPElemtTag |
meshlib.mrmeshpy.HashMap_TaggedBitSet_NodeTag_IndexType_TaggedBitSet_NodeTag_IndexType = phmap_flat_hash_map_Id_NodeTag_Id_NodeTag |
meshlib.mrmeshpy.HashMap_TaggedBitSet_ObjTag_IndexType_TaggedBitSet_ObjTag_IndexType = phmap_flat_hash_map_Id_ObjTag_Id_ObjTag |
meshlib.mrmeshpy.HashMap_TaggedBitSet_PixelTag_IndexType_TaggedBitSet_PixelTag_IndexType = phmap_flat_hash_map_Id_PixelTag_Id_PixelTag |
meshlib.mrmeshpy.HashMap_TaggedBitSet_RegionTag_IndexType_TaggedBitSet_RegionTag_IndexType = phmap_flat_hash_map_Id_RegionTag_Id_RegionTag |
meshlib.mrmeshpy.HashMap_TaggedBitSet_TextureTag_IndexType_TaggedBitSet_TextureTag_IndexType = phmap_flat_hash_map_Id_TextureTag_Id_TextureTag |
meshlib.mrmeshpy.HashMap_TaggedBitSet_UndirectedEdgeTag_IndexType_TaggedBitSet_UndirectedEdgeTag_IndexType = phmap_flat_hash_map_Id_UndirectedEdgeTag_Id_UndirectedEdgeTag |
meshlib.mrmeshpy.HashMap_TaggedBitSet_VertTag_IndexType_TaggedBitSet_VertTag_IndexType = phmap_flat_hash_map_Id_VertTag_Id_VertTag |
meshlib.mrmeshpy.HashMap_TaggedBitSet_VoxelTag_IndexType_TaggedBitSet_VoxelTag_IndexType = phmap_flat_hash_map_Id_VoxelTag_Id_VoxelTag |
meshlib.mrmeshpy.HashMap_UndirectedEdgeId_EdgeId = phmap_flat_hash_map_Id_UndirectedEdgeTag_Id_EdgeTag |
meshlib.mrmeshpy.HashMap_UndirectedEdgeId_int = phmap_flat_hash_map_Id_UndirectedEdgeTag_int |
meshlib.mrmeshpy.HashMap_UndirectedEdgeId_UndirectedEdgeId = phmap_flat_hash_map_Id_UndirectedEdgeTag_Id_UndirectedEdgeTag |
meshlib.mrmeshpy.HashMap_VertId_float = phmap_flat_hash_map_Id_VertTag_float |
meshlib.mrmeshpy.HashMap_VertId_FlowAggregator_Flows = phmap_flat_hash_map_Id_VertTag_FlowAggregator_Flows |
meshlib.mrmeshpy.HashMap_VertId_VertId = phmap_flat_hash_map_Id_VertTag_Id_VertTag |
meshlib.mrmeshpy.HashMap_VertId_VertPathInfo = phmap_flat_hash_map_Id_VertTag_VertPathInfo |
meshlib.mrmeshpy.HistoryActionsVector = std_vector_std_shared_ptr_HistoryAction |
meshlib.mrmeshpy.ICPElementBitSet = TaggedBitSet_ICPElemtTag |
meshlib.mrmeshpy.ICPElementId = Id_ICPElemtTag |
meshlib.mrmeshpy.ICPObjects = Vector_MeshOrPointsXf_ObjId |
meshlib.mrmeshpy.ICPPairsGrid = Vector_Vector_ICPGroupPairs_Id_ICPElemtTag_Id_ICPElemtTag |
meshlib.mrmeshpy.Id_FaceTag = FaceId |
meshlib.mrmeshpy.Id_GraphEdgeTag = GraphEdgeId |
meshlib.mrmeshpy.Id_GraphVertTag = GraphVertId |
meshlib.mrmeshpy.Id_NodeTag = NodeId |
meshlib.mrmeshpy.Id_ObjTag = ObjId |
meshlib.mrmeshpy.Id_PixelTag = PixelId |
meshlib.mrmeshpy.Id_RegionTag = RegionId |
meshlib.mrmeshpy.Id_TextureTag = TextureId |
meshlib.mrmeshpy.Id_UndirectedEdgeTag = UndirectedEdgeId |
meshlib.mrmeshpy.Id_VertTag = VertId |
meshlib.mrmeshpy.IOFilters = std_vector_IOFilter |
meshlib.mrmeshpy.IsoLine = std_vector_EdgePoint |
meshlib.mrmeshpy.IsoLines = std_vector_std_vector_EdgePoint |
meshlib.mrmeshpy.IteratorRange_LeftRingIterator = IteratorRange_RingIterator_NextEdgeSameLeft |
meshlib.mrmeshpy.IteratorRange_OrgRingIterator = IteratorRange_RingIterator_NextEdgeSameOrigin |
meshlib.mrmeshpy.LaplacianEdgeWeightsParam = EdgeWeights |
meshlib.mrmeshpy.LeftRingIterator = RingIterator_NextEdgeSameLeft |
meshlib.mrmeshpy.Line3_double = Line3d |
meshlib.mrmeshpy.Line3_float = Line3f |
meshlib.mrmeshpy.Line3dMesh = Line3Mesh_double |
meshlib.mrmeshpy.Line3fMesh = Line3Mesh_float |
meshlib.mrmeshpy.Line_Vector2_double = Line2d |
meshlib.mrmeshpy.Line_Vector2_float = Line2f |
meshlib.mrmeshpy.Line_Vector3_double = Line3d |
meshlib.mrmeshpy.Line_Vector3_float = Line3f |
meshlib.mrmeshpy.Line_Vector3d = Line3d |
meshlib.mrmeshpy.LineSegm_Vector2_double = LineSegm2d |
meshlib.mrmeshpy.LineSegm_Vector2_float = LineSegm2f |
meshlib.mrmeshpy.LineSegm_Vector2f = LineSegm2f |
meshlib.mrmeshpy.LineSegm_Vector3_double = LineSegm3d |
meshlib.mrmeshpy.LineSegm_Vector3_float = LineSegm3f |
meshlib.mrmeshpy.LineSegm_Vector3f = LineSegm3f |
meshlib.mrmeshpy.LineTreeTraits2 = AABBTreeTraits_UndirectedEdgeTag_Box2f |
meshlib.mrmeshpy.LineTreeTraits3 = AABBTreeTraits_UndirectedEdgeTag_Box3f |
meshlib.mrmeshpy.LineTreeTraits_Vector2f = AABBTreeTraits_UndirectedEdgeTag_Box2f |
meshlib.mrmeshpy.LineTreeTraits_Vector3f = AABBTreeTraits_UndirectedEdgeTag_Box3f |
meshlib.mrmeshpy.LoadedObject = LoadedObjectT |
meshlib.mrmeshpy.LoadedObjectLines = LoadedObjectT_ObjectLines |
meshlib.mrmeshpy.LoadedObjectMesh = LoadedObjectT_ObjectMesh |
meshlib.mrmeshpy.LoadedObjectPoints = LoadedObjectT_ObjectPoints |
meshlib.mrmeshpy.LoadedObjectT_Object = LoadedObjectT |
meshlib.mrmeshpy.LoadedObjectVoxels = LoadedObjectT_ObjectVoxels |
meshlib.mrmeshpy.Matrix2_bool = Matrix2b |
meshlib.mrmeshpy.Matrix2_bool_VectorType = Vector2b |
meshlib.mrmeshpy.Matrix2_double = Matrix2d |
meshlib.mrmeshpy.Matrix2_double_VectorType = Vector2d |
meshlib.mrmeshpy.Matrix2_float = Matrix2f |
meshlib.mrmeshpy.Matrix2_float_VectorType = Vector2f |
meshlib.mrmeshpy.Matrix2_int = Matrix2i |
meshlib.mrmeshpy.Matrix2_int_VectorType = Vector2i |
meshlib.mrmeshpy.Matrix2_long_long = Matrix2ll |
meshlib.mrmeshpy.Matrix2_long_long_VectorType = Vector2ll |
meshlib.mrmeshpy.Matrix3_bool = Matrix3b |
meshlib.mrmeshpy.Matrix3_bool_VectorType = Vector3b |
meshlib.mrmeshpy.Matrix3_double = Matrix3d |
meshlib.mrmeshpy.Matrix3_double_VectorType = Vector3d |
meshlib.mrmeshpy.Matrix3_float = Matrix3f |
meshlib.mrmeshpy.Matrix3_float_VectorType = Vector3f |
meshlib.mrmeshpy.Matrix3_int = Matrix3i |
meshlib.mrmeshpy.Matrix3_int_VectorType = Vector3i |
meshlib.mrmeshpy.Matrix3_long_long = Matrix3ll |
meshlib.mrmeshpy.Matrix3_long_long_VectorType = Vector3ll |
meshlib.mrmeshpy.Matrix4_bool = Matrix4b |
meshlib.mrmeshpy.Matrix4_bool_VectorType = Vector4b |
meshlib.mrmeshpy.Matrix4_double = Matrix4d |
meshlib.mrmeshpy.Matrix4_double_VectorType = Vector4d |
meshlib.mrmeshpy.Matrix4_float = Matrix4f |
meshlib.mrmeshpy.Matrix4_float_VectorType = Vector4f |
meshlib.mrmeshpy.Matrix4_int = Matrix4i |
meshlib.mrmeshpy.Matrix4_int_VectorType = Vector4i |
meshlib.mrmeshpy.Matrix4_long_long = Matrix4ll |
meshlib.mrmeshpy.Matrix4_long_long_VectorType = Vector4ll |
meshlib.mrmeshpy.MeshBuilderSettings = MeshBuilder.BuildSettings |
meshlib.mrmeshpy.MeshDistanceResult = MeshMeshDistanceResult |
meshlib.mrmeshpy.MeshEdgePoint = EdgePoint |
meshlib.mrmeshpy.MeshLabel = PositionedText |
meshlib.mrmeshpy.MeshOnVoxels = MeshOnVoxelsT_Mesh |
meshlib.mrmeshpy.MeshOnVoxelsC = MeshOnVoxelsT_const_Mesh |
meshlib.mrmeshpy.MeshRegion_FaceTag = MeshPart |
meshlib.mrmeshpy.MeshRegion_VertTag = MeshVertPart |
meshlib.mrmeshpy.MeshSignedDistanceResult = MeshMeshSignedDistanceResult |
meshlib.mrmeshpy.MeshToVolumeParamsType = MeshToVolumeParams.Type |
meshlib.mrmeshpy.MinMax_double = Box1d |
meshlib.mrmeshpy.MinMax_float = Box1f |
meshlib.mrmeshpy.MinMax_VoxelsVolume_std_shared_ptr_OpenVdbFloatGrid_ValueType = Box1f |
meshlib.mrmeshpy.MinMax_VoxelsVolume_std_vector_float_ValueType = Box1f |
meshlib.mrmeshpy.MinMax_VoxelsVolume_std_vector_unsigned_short_ValueType = Box_unsigned_short |
meshlib.mrmeshpy.MinMaxd = Box1d |
meshlib.mrmeshpy.MinMaxf = Box1f |
meshlib.mrmeshpy.MultiObjsSamples = std_vector_ObjVertId |
meshlib.mrmeshpy.ObjectPtr = Object |
meshlib.mrmeshpy.OffsetContoursVertMap = std_vector_OffsetContoursOrigins |
meshlib.mrmeshpy.OffsetContoursVertMaps = std_vector_std_vector_OffsetContoursOrigins |
meshlib.mrmeshpy.OneMeshContours = std_vector_OneMeshContour |
meshlib.mrmeshpy.OrgRingIterator = RingIterator_NextEdgeSameOrigin |
meshlib.mrmeshpy.Parabola_double = Parabolad |
meshlib.mrmeshpy.Parabola_float = Parabolaf |
meshlib.mrmeshpy.phmap_flat_hash_map_FaceId_FaceId = phmap_flat_hash_map_Id_FaceTag_Id_FaceTag |
meshlib.mrmeshpy.phmap_flat_hash_map_GraphEdgeId_GraphEdgeId = phmap_flat_hash_map_Id_GraphEdgeTag_Id_GraphEdgeTag |
meshlib.mrmeshpy.phmap_flat_hash_map_GraphVertId_GraphVertId = phmap_flat_hash_map_Id_GraphVertTag_Id_GraphVertTag |
meshlib.mrmeshpy.phmap_flat_hash_map_int_Box3i_phmap_Hash_int32_t = phmap_flat_hash_map_int_Box_Vector3_int |
meshlib.mrmeshpy.phmap_flat_hash_map_NodeId_NodeId = phmap_flat_hash_map_Id_NodeTag_Id_NodeTag |
meshlib.mrmeshpy.phmap_flat_hash_map_ObjId_ObjId = phmap_flat_hash_map_Id_ObjTag_Id_ObjTag |
meshlib.mrmeshpy.phmap_flat_hash_map_PixelId_PixelId = phmap_flat_hash_map_Id_PixelTag_Id_PixelTag |
meshlib.mrmeshpy.phmap_flat_hash_map_RegionId_RegionId = phmap_flat_hash_map_Id_RegionTag_Id_RegionTag |
meshlib.mrmeshpy.phmap_flat_hash_map_TextureId_TextureId = phmap_flat_hash_map_Id_TextureTag_Id_TextureTag |
meshlib.mrmeshpy.phmap_flat_hash_map_UndirectedEdgeId_Id_EdgeTag = phmap_flat_hash_map_Id_UndirectedEdgeTag_Id_EdgeTag |
meshlib.mrmeshpy.phmap_flat_hash_map_UndirectedEdgeId_int = phmap_flat_hash_map_Id_UndirectedEdgeTag_int |
meshlib.mrmeshpy.phmap_flat_hash_map_UndirectedEdgeId_UndirectedEdgeId = phmap_flat_hash_map_Id_UndirectedEdgeTag_Id_UndirectedEdgeTag |
meshlib.mrmeshpy.phmap_flat_hash_map_unsigned_long_std_array_VertId_3_phmap_Hash_uint64_t = phmap_flat_hash_map_unsigned_long_std_array_Id_VertTag_3ul |
meshlib.mrmeshpy.phmap_flat_hash_map_VertId_float = phmap_flat_hash_map_Id_VertTag_float |
meshlib.mrmeshpy.phmap_flat_hash_map_VertId_FlowAggregator_Flows = phmap_flat_hash_map_Id_VertTag_FlowAggregator_Flows |
meshlib.mrmeshpy.phmap_flat_hash_map_VertId_VertId = phmap_flat_hash_map_Id_VertTag_Id_VertTag |
meshlib.mrmeshpy.phmap_flat_hash_map_VertId_VertPathInfo = phmap_flat_hash_map_Id_VertTag_VertPathInfo |
meshlib.mrmeshpy.PickedPoint = std_variant_MeshTriPoint_EdgePoint_Id_VertTag_int |
meshlib.mrmeshpy.Plane3_double = Plane3d |
meshlib.mrmeshpy.Plane3_float = Plane3f |
meshlib.mrmeshpy.PlaneSection = std_vector_EdgePoint |
meshlib.mrmeshpy.PlaneSections = std_vector_std_vector_EdgePoint |
meshlib.mrmeshpy.Polyline_Vector2f = Polyline2 |
meshlib.mrmeshpy.Polyline_Vector3f = Polyline3 |
meshlib.mrmeshpy.PolylineProjectionResult_Vector2f = PolylineProjectionResult2 |
meshlib.mrmeshpy.PolylineProjectionResult_Vector3f = PolylineProjectionResult3 |
meshlib.mrmeshpy.PolylineProjectionWithOffsetResult_Vector2f = Polyline2ProjectionWithOffsetResult |
meshlib.mrmeshpy.PolylineProjectionWithOffsetResult_Vector3f = PolylineProjectionWithOffsetResult3 |
meshlib.mrmeshpy.Polynomial_double_0UL_0_0_0UL_minus_1 = Polynomial_double_0 |
meshlib.mrmeshpy.Polynomial_double_1UL_0_0_1UL_minus_1 = Polynomial_double_0 |
meshlib.mrmeshpy.Polynomial_double_2UL_0_0_2UL_minus_1 = Polynomial_double_1 |
meshlib.mrmeshpy.Polynomial_double_3UL_0_0_3UL_minus_1 = Polynomial_double_2 |
meshlib.mrmeshpy.Polynomial_double_4UL_0_0_4UL_minus_1 = Polynomial_double_3 |
meshlib.mrmeshpy.Polynomial_double_5UL_0_0_5UL_minus_1 = Polynomial_double_4 |
meshlib.mrmeshpy.Polynomial_double_6UL_0_0_6UL_minus_1 = Polynomial_double_5 |
meshlib.mrmeshpy.Polynomial_float_0UL_0_0_0UL_minus_1 = Polynomial_float_0 |
meshlib.mrmeshpy.Polynomial_float_1UL_0_0_1UL_minus_1 = Polynomial_float_0 |
meshlib.mrmeshpy.Polynomial_float_2UL_0_0_2UL_minus_1 = Polynomial_float_1 |
meshlib.mrmeshpy.Polynomial_float_3UL_0_0_3UL_minus_1 = Polynomial_float_2 |
meshlib.mrmeshpy.Polynomial_float_4UL_0_0_4UL_minus_1 = Polynomial_float_3 |
meshlib.mrmeshpy.Polynomial_float_5UL_0_0_5UL_minus_1 = Polynomial_float_4 |
meshlib.mrmeshpy.Polynomial_float_6UL_0_0_6UL_minus_1 = Polynomial_float_5 |
meshlib.mrmeshpy.PolynomialWrapperd = PolynomialWrapper_double |
meshlib.mrmeshpy.PolynomialWrapperf = PolynomialWrapper_float |
meshlib.mrmeshpy.Polynomialx_float = std_variant_Polynomial_float_0ul_Polynomial_float_1ul_Polynomial_float_2ul_Polynomial_float_3ul_Polynomial_float_4ul_Polynomial_float_5ul_Polynomial_float_6ul |
meshlib.mrmeshpy.QuadraticForm_Vector2_double = QuadraticForm2d |
meshlib.mrmeshpy.QuadraticForm_Vector2_float = QuadraticForm2f |
meshlib.mrmeshpy.QuadraticForm_Vector2d_SM = SymMatrix2d |
meshlib.mrmeshpy.QuadraticForm_Vector2f_SM = SymMatrix2f |
meshlib.mrmeshpy.QuadraticForm_Vector3_double = QuadraticForm3d |
meshlib.mrmeshpy.QuadraticForm_Vector3_float = QuadraticForm3f |
meshlib.mrmeshpy.QuadraticForm_Vector3d_SM = SymMatrix3d |
meshlib.mrmeshpy.QuadraticForm_Vector3f_SM = SymMatrix3f |
meshlib.mrmeshpy.Quaternion_double = Quaterniond |
meshlib.mrmeshpy.Quaternion_float = Quaternionf |
meshlib.mrmeshpy.RigidScaleXf3_double = RigidScaleXf3d |
meshlib.mrmeshpy.RigidScaleXf3_double_V = Vector3d |
meshlib.mrmeshpy.RigidScaleXf3_float = RigidScaleXf3f |
meshlib.mrmeshpy.RigidScaleXf3_float_V = Vector3f |
meshlib.mrmeshpy.RigidXf3_double = RigidXf3d |
meshlib.mrmeshpy.RigidXf3_double_V = Vector3d |
meshlib.mrmeshpy.RigidXf3_float = RigidXf3f |
meshlib.mrmeshpy.RigidXf3_float_V = Vector3f |
meshlib.mrmeshpy.SegmPoint_double = SegmPointd |
meshlib.mrmeshpy.SegmPoint_float = SegmPointf |
meshlib.mrmeshpy.SeparationPointMap = phmap_flat_hash_map_unsigned_long_std_array_Id_VertTag_3ul |
meshlib.mrmeshpy.SeparationPointSet = std_array_Id_VertTag_3 |
meshlib.mrmeshpy.SetBitIteratorT_BitSet = SetBitIterator |
meshlib.mrmeshpy.SetBitIteratorT_EdgeBitSet = EdgeSetBitIterator |
meshlib.mrmeshpy.SetBitIteratorT_EdgeBitSet_IndexType = Id_EdgeTag |
meshlib.mrmeshpy.SetBitIteratorT_EdgeBitSet_pointer = Id_EdgeTag |
meshlib.mrmeshpy.SetBitIteratorT_EdgeBitSet_reference = Id_EdgeTag |
meshlib.mrmeshpy.SetBitIteratorT_EdgeBitSet_value_type = Id_EdgeTag |
meshlib.mrmeshpy.SetBitIteratorT_FaceBitSet = FaceSetBitIterator |
meshlib.mrmeshpy.SetBitIteratorT_FaceBitSet_IndexType = FaceId |
meshlib.mrmeshpy.SetBitIteratorT_FaceBitSet_pointer = FaceId |
meshlib.mrmeshpy.SetBitIteratorT_FaceBitSet_reference = FaceId |
meshlib.mrmeshpy.SetBitIteratorT_FaceBitSet_value_type = FaceId |
meshlib.mrmeshpy.SetBitIteratorT_TaggedBitSet_UndirectedEdgeTag = UndirectedEdgeSetBitIterator |
meshlib.mrmeshpy.SetBitIteratorT_UndirectedEdgeBitSet = UndirectedEdgeSetBitIterator |
meshlib.mrmeshpy.SetBitIteratorT_UndirectedEdgeBitSet_IndexType = UndirectedEdgeId |
meshlib.mrmeshpy.SetBitIteratorT_UndirectedEdgeBitSet_pointer = UndirectedEdgeId |
meshlib.mrmeshpy.SetBitIteratorT_UndirectedEdgeBitSet_reference = UndirectedEdgeId |
meshlib.mrmeshpy.SetBitIteratorT_UndirectedEdgeBitSet_value_type = UndirectedEdgeId |
meshlib.mrmeshpy.SetBitIteratorT_VertBitSet = VertSetBitIterator |
meshlib.mrmeshpy.SetBitIteratorT_VertBitSet_IndexType = VertId |
meshlib.mrmeshpy.SetBitIteratorT_VertBitSet_pointer = VertId |
meshlib.mrmeshpy.SetBitIteratorT_VertBitSet_reference = VertId |
meshlib.mrmeshpy.SetBitIteratorT_VertBitSet_value_type = VertId |
meshlib.mrmeshpy.Sphere3_float = Sphere3f |
meshlib.mrmeshpy.Sphere_Vector2_double = Sphere2d |
meshlib.mrmeshpy.Sphere_Vector2_float = Sphere2f |
meshlib.mrmeshpy.Sphere_Vector3_double = Sphere3d |
meshlib.mrmeshpy.Sphere_Vector3_float = Sphere3f |
meshlib.mrmeshpy.Sphere_Vector3f = Sphere3f |
meshlib.mrmeshpy.std_array_AffineXf3d_4 = std_array_AffineXf_Vector3_double_4 |
meshlib.mrmeshpy.std_array_AffineXf3f_4 = std_array_AffineXf_Vector3_float_4 |
meshlib.mrmeshpy.std_array_BooleanResultMapper_Maps_size_t_MapObject_Count = std_array_BooleanResultMapper_Maps_2 |
meshlib.mrmeshpy.std_array_SimpleVolumeMinMax_3 = std_array_VoxelsVolumeMinMax_std_vector_float_3 |
meshlib.mrmeshpy.std_array_std_filesystem_path_size_t_SystemFontType_Count = std_array_std_filesystem_path_4 |
meshlib.mrmeshpy.std_array_Vector3d_3 = std_array_Vector3_double_3 |
meshlib.mrmeshpy.std_array_Vector3f_3 = std_array_Vector3_float_3 |
meshlib.mrmeshpy.std_array_Vector3i_3 = std_array_Vector3_int_3 |
meshlib.mrmeshpy.std_array_VertId_3 = std_array_Id_VertTag_3 |
meshlib.mrmeshpy.std_array_VertId_size_t_NeighborDir_Count = std_array_Id_VertTag_3 |
meshlib.mrmeshpy.std_optional_Box1f = std_optional_Box_float |
meshlib.mrmeshpy.std_optional_Box3f = std_optional_Box_Vector3_float |
meshlib.mrmeshpy.std_optional_MinMaxf = std_optional_Box_float |
meshlib.mrmeshpy.std_optional_Vector2f = std_optional_Vector2_float |
meshlib.mrmeshpy.std_optional_Vector3f = std_optional_Vector3_float |
meshlib.mrmeshpy.std_shared_ptr_ChangeActiveBoxAction_Obj = ObjectVoxels |
meshlib.mrmeshpy.std_shared_ptr_ChangeDualMarchingCubesAction_Obj = ObjectVoxels |
meshlib.mrmeshpy.std_shared_ptr_ChangeGridAction_Obj = ObjectVoxels |
meshlib.mrmeshpy.std_shared_ptr_ChangeIsoAction_Obj = ObjectVoxels |
meshlib.mrmeshpy.std_shared_ptr_ChangeSurfaceAction_Obj = ObjectVoxels |
meshlib.mrmeshpy.std_shared_ptr_ChangVoxelSelectionAction_Obj = ObjectVoxels |
meshlib.mrmeshpy.std_shared_ptr_GcodeSource = std_vector_std_string |
meshlib.mrmeshpy.std_unique_ptr_NoDefInit_FaceId_pointer = NoDefInit_FaceId |
meshlib.mrmeshpy.std_unique_ptr_NoDefInit_GraphEdgeId_pointer = NoDefInit_GraphEdgeId |
meshlib.mrmeshpy.std_unique_ptr_NoDefInit_GraphVertId_pointer = NoDefInit_GraphVertId |
meshlib.mrmeshpy.std_unique_ptr_NoDefInit_Id_EdgeTag_pointer = NoDefInit_Id_EdgeTag |
meshlib.mrmeshpy.std_unique_ptr_NoDefInit_Id_ICPElemtTag_pointer = NoDefInit_Id_ICPElemtTag |
meshlib.mrmeshpy.std_unique_ptr_NoDefInit_Id_VoxelTag_pointer = NoDefInit_Id_VoxelTag |
meshlib.mrmeshpy.std_unique_ptr_NoDefInit_NodeId_pointer = NoDefInit_NodeId |
meshlib.mrmeshpy.std_unique_ptr_NoDefInit_ObjId_pointer = NoDefInit_ObjId |
meshlib.mrmeshpy.std_unique_ptr_NoDefInit_PixelId_pointer = NoDefInit_PixelId |
meshlib.mrmeshpy.std_unique_ptr_NoDefInit_RegionId_pointer = NoDefInit_RegionId |
meshlib.mrmeshpy.std_unique_ptr_NoDefInit_TextureId_pointer = NoDefInit_TextureId |
meshlib.mrmeshpy.std_unique_ptr_NoDefInit_UndirectedEdgeId_pointer = NoDefInit_UndirectedEdgeId |
meshlib.mrmeshpy.std_unique_ptr_NoDefInit_VertId_pointer = NoDefInit_VertId |
meshlib.mrmeshpy.std_variant_FaceId_EdgeId_VertId = std_variant_Id_FaceTag_Id_EdgeTag_Id_VertTag |
meshlib.mrmeshpy.std_variant_FaceId_Id_EdgeTag_VertId = std_variant_Id_FaceTag_Id_EdgeTag_Id_VertTag |
meshlib.mrmeshpy.std_variant_Features_Primitives_Sphere_Features_Primitives_ConeSegment_Features_Primitives_Plane = std_variant_Sphere_Vector3_float_Features_Primitives_ConeSegment_Features_Primitives_Plane |
meshlib.mrmeshpy.std_variant_float_Vector3f = std_variant_float_Vector3_float |
meshlib.mrmeshpy.std_variant_MeshTriPoint_EdgePoint_VertId_int = std_variant_MeshTriPoint_EdgePoint_Id_VertTag_int |
meshlib.mrmeshpy.std_variant_Polynomial_double_0_Polynomial_double_1_Polynomial_double_2_Polynomial_double_3_Polynomial_double_4_Polynomial_double_5_Polynomial_double_6 = std_variant_Polynomial_double_0ul_Polynomial_double_1ul_Polynomial_double_2ul_Polynomial_double_3ul_Polynomial_double_4ul_Polynomial_double_5ul_Polynomial_double_6ul |
meshlib.mrmeshpy.std_variant_Polynomial_float_0_Polynomial_float_1_Polynomial_float_2_Polynomial_float_3_Polynomial_float_4_Polynomial_float_5_Polynomial_float_6 = std_variant_Polynomial_float_0ul_Polynomial_float_1ul_Polynomial_float_2ul_Polynomial_float_3ul_Polynomial_float_4ul_Polynomial_float_5ul_Polynomial_float_6ul |
meshlib.mrmeshpy.std_variant_Sphere3f_Features_Primitives_ConeSegment_Features_Primitives_Plane = std_variant_Sphere_Vector3_float_Features_Primitives_ConeSegment_Features_Primitives_Plane |
meshlib.mrmeshpy.std_vector_AABBTreeNode_AABBTreeTraits_FaceTag_Box3f = std_vector_AABBTreeNode_AABBTreeTraits_FaceTag_Box_Vector3_float |
meshlib.mrmeshpy.std_vector_AABBTreeNode_AABBTreeTraits_FaceTag_Box3f_const_reference = AABBTreeNode_AABBTreeTraits_FaceTag_Box3f |
meshlib.mrmeshpy.std_vector_AABBTreeNode_AABBTreeTraits_FaceTag_Box3f_reference = AABBTreeNode_AABBTreeTraits_FaceTag_Box3f |
meshlib.mrmeshpy.std_vector_AABBTreeNode_AABBTreeTraits_FaceTag_Box3f_value_type = AABBTreeNode_AABBTreeTraits_FaceTag_Box3f |
meshlib.mrmeshpy.std_vector_AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box2f = std_vector_AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box_Vector2_float |
meshlib.mrmeshpy.std_vector_AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box2f_const_reference = AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box2f |
meshlib.mrmeshpy.std_vector_AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box2f_reference = AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box2f |
meshlib.mrmeshpy.std_vector_AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box2f_value_type = AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box2f |
meshlib.mrmeshpy.std_vector_AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box3f = std_vector_AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box_Vector3_float |
meshlib.mrmeshpy.std_vector_AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box3f_const_reference = AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box3f |
meshlib.mrmeshpy.std_vector_AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box3f_reference = AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box3f |
meshlib.mrmeshpy.std_vector_AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box3f_value_type = AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box3f |
meshlib.mrmeshpy.std_vector_AABBTreeNode_ObjTreeTraits_const_reference = AABBTreeNode_ObjTreeTraits |
meshlib.mrmeshpy.std_vector_AABBTreeNode_ObjTreeTraits_reference = AABBTreeNode_ObjTreeTraits |
meshlib.mrmeshpy.std_vector_AABBTreeNode_ObjTreeTraits_value_type = AABBTreeNode_ObjTreeTraits |
meshlib.mrmeshpy.std_vector_AABBTreePoints_Node_const_reference = AABBTreePoints.Node |
meshlib.mrmeshpy.std_vector_AABBTreePoints_Node_reference = AABBTreePoints.Node |
meshlib.mrmeshpy.std_vector_AABBTreePoints_Node_value_type = AABBTreePoints.Node |
meshlib.mrmeshpy.std_vector_AffineXf3f = std_vector_AffineXf_Vector3_float |
meshlib.mrmeshpy.std_vector_AffineXf3f_const_reference = AffineXf3f |
meshlib.mrmeshpy.std_vector_AffineXf3f_reference = AffineXf3f |
meshlib.mrmeshpy.std_vector_AffineXf3f_value_type = AffineXf3f |
meshlib.mrmeshpy.std_vector_Color_const_reference = Color |
meshlib.mrmeshpy.std_vector_Color_reference = Color |
meshlib.mrmeshpy.std_vector_Color_value_type = Color |
meshlib.mrmeshpy.std_vector_const_Mesh = std_vector_Mesh_const |
meshlib.mrmeshpy.std_vector_ContinuousContour = std_vector_std_vector_VariableEdgeTri |
meshlib.mrmeshpy.std_vector_Contour3d = std_vector_std_vector_Vector3_double |
meshlib.mrmeshpy.std_vector_Contour3f = std_vector_std_vector_Vector3_float |
meshlib.mrmeshpy.std_vector_Dipole_const_reference = Dipole |
meshlib.mrmeshpy.std_vector_Dipole_reference = Dipole |
meshlib.mrmeshpy.std_vector_Dipole_value_type = Dipole |
meshlib.mrmeshpy.std_vector_EdgeBitSet = std_vector_TaggedBitSet_EdgeTag |
meshlib.mrmeshpy.std_vector_EdgeId = std_vector_Id_EdgeTag |
meshlib.mrmeshpy.std_vector_EdgeLoop = std_vector_std_vector_Id_EdgeTag |
meshlib.mrmeshpy.std_vector_EdgePair = std_vector_std_pair_Id_EdgeTag_Id_EdgeTag |
meshlib.mrmeshpy.std_vector_EdgePath = std_vector_std_vector_Id_EdgeTag |
meshlib.mrmeshpy.std_vector_FaceBitSet = std_vector_TaggedBitSet_FaceTag |
meshlib.mrmeshpy.std_vector_FaceBitSet_const_reference = FaceBitSet |
meshlib.mrmeshpy.std_vector_FaceBitSet_reference = FaceBitSet |
meshlib.mrmeshpy.std_vector_FaceBitSet_value_type = FaceBitSet |
meshlib.mrmeshpy.std_vector_FaceId = std_vector_Id_FaceTag |
meshlib.mrmeshpy.std_vector_FaceId_const_reference = FaceId |
meshlib.mrmeshpy.std_vector_FaceId_reference = FaceId |
meshlib.mrmeshpy.std_vector_FaceId_value_type = FaceId |
meshlib.mrmeshpy.std_vector_FanRecord_const_reference = FanRecord |
meshlib.mrmeshpy.std_vector_FanRecord_reference = FanRecord |
meshlib.mrmeshpy.std_vector_FanRecord_value_type = FanRecord |
meshlib.mrmeshpy.std_vector_Features_Primitives_Variant = std_vector_std_variant_Sphere_Vector3_float_Features_Primitives_ConeSegment_Features_Primitives_Plane |
meshlib.mrmeshpy.std_vector_Graph_EdgeId = std_vector_Id_GraphEdgeTag |
meshlib.mrmeshpy.std_vector_Graph_EndVertices_const_reference = Graph.EndVertices |
meshlib.mrmeshpy.std_vector_Graph_EndVertices_reference = Graph.EndVertices |
meshlib.mrmeshpy.std_vector_Graph_EndVertices_value_type = Graph.EndVertices |
meshlib.mrmeshpy.std_vector_GraphEdgeId = std_vector_Id_GraphEdgeTag |
meshlib.mrmeshpy.std_vector_GraphEdgeId_const_reference = GraphEdgeId |
meshlib.mrmeshpy.std_vector_GraphEdgeId_reference = GraphEdgeId |
meshlib.mrmeshpy.std_vector_GraphEdgeId_value_type = GraphEdgeId |
meshlib.mrmeshpy.std_vector_GraphVertId = std_vector_Id_GraphVertTag |
meshlib.mrmeshpy.std_vector_GraphVertId_const_reference = GraphVertId |
meshlib.mrmeshpy.std_vector_GraphVertId_reference = GraphVertId |
meshlib.mrmeshpy.std_vector_GraphVertId_value_type = GraphVertId |
meshlib.mrmeshpy.std_vector_Heap_float_GraphVertId_std_greater_float_Element = std_vector_Heap_float_Id_GraphVertTag_std_greater_float_Element |
meshlib.mrmeshpy.std_vector_ICPGroupPairs_const_reference = ICPGroupPairs |
meshlib.mrmeshpy.std_vector_ICPGroupPairs_reference = ICPGroupPairs |
meshlib.mrmeshpy.std_vector_ICPGroupPairs_value_type = ICPGroupPairs |
meshlib.mrmeshpy.std_vector_Id_EdgeTag_const_reference = Id_EdgeTag |
meshlib.mrmeshpy.std_vector_Id_EdgeTag_reference = Id_EdgeTag |
meshlib.mrmeshpy.std_vector_Id_EdgeTag_value_type = Id_EdgeTag |
meshlib.mrmeshpy.std_vector_Id_ICPElemtTag_const_reference = Id_ICPElemtTag |
meshlib.mrmeshpy.std_vector_Id_ICPElemtTag_reference = Id_ICPElemtTag |
meshlib.mrmeshpy.std_vector_Id_ICPElemtTag_value_type = Id_ICPElemtTag |
meshlib.mrmeshpy.std_vector_Id_VoxelTag_const_reference = Id_VoxelTag |
meshlib.mrmeshpy.std_vector_Id_VoxelTag_reference = Id_VoxelTag |
meshlib.mrmeshpy.std_vector_Id_VoxelTag_value_type = Id_VoxelTag |
meshlib.mrmeshpy.std_vector_Line3dMesh = std_vector_Line3Mesh_double |
meshlib.mrmeshpy.std_vector_Line3fMesh = std_vector_Line3Mesh_float |
meshlib.mrmeshpy.std_vector_MeshBuilder_VertSpan_const_reference = MeshBuilder.VertSpan |
meshlib.mrmeshpy.std_vector_MeshBuilder_VertSpan_reference = MeshBuilder.VertSpan |
meshlib.mrmeshpy.std_vector_MeshBuilder_VertSpan_value_type = MeshBuilder.VertSpan |
meshlib.mrmeshpy.std_vector_MeshEdgePoint = std_vector_EdgePoint |
meshlib.mrmeshpy.std_vector_MeshOrPointsXf_const_reference = MeshOrPointsXf |
meshlib.mrmeshpy.std_vector_MeshOrPointsXf_reference = MeshOrPointsXf |
meshlib.mrmeshpy.std_vector_MeshOrPointsXf_value_type = MeshOrPointsXf |
meshlib.mrmeshpy.std_vector_MeshTexture_const_reference = MeshTexture |
meshlib.mrmeshpy.std_vector_MeshTexture_reference = MeshTexture |
meshlib.mrmeshpy.std_vector_MeshTexture_value_type = MeshTexture |
meshlib.mrmeshpy.std_vector_ModelPointsData_const_reference = ModelPointsData |
meshlib.mrmeshpy.std_vector_ModelPointsData_reference = ModelPointsData |
meshlib.mrmeshpy.std_vector_ModelPointsData_value_type = ModelPointsData |
meshlib.mrmeshpy.std_vector_MultipleEdge = std_vector_std_pair_Id_VertTag_Id_VertTag |
meshlib.mrmeshpy.std_vector_NodeId = std_vector_Id_NodeTag |
meshlib.mrmeshpy.std_vector_NodeId_const_reference = NodeId |
meshlib.mrmeshpy.std_vector_NodeId_reference = NodeId |
meshlib.mrmeshpy.std_vector_NodeId_value_type = NodeId |
meshlib.mrmeshpy.std_vector_ObjectPtr = std_vector_std_shared_ptr_Object |
meshlib.mrmeshpy.std_vector_ObjId = std_vector_Id_ObjTag |
meshlib.mrmeshpy.std_vector_ObjId_const_reference = ObjId |
meshlib.mrmeshpy.std_vector_ObjId_reference = ObjId |
meshlib.mrmeshpy.std_vector_ObjId_value_type = ObjId |
meshlib.mrmeshpy.std_vector_OffsetContoursVertMap = std_vector_std_vector_OffsetContoursOrigins |
meshlib.mrmeshpy.std_vector_PixelId = std_vector_Id_PixelTag |
meshlib.mrmeshpy.std_vector_PixelId_const_reference = PixelId |
meshlib.mrmeshpy.std_vector_PixelId_reference = PixelId |
meshlib.mrmeshpy.std_vector_PixelId_value_type = PixelId |
meshlib.mrmeshpy.std_vector_PlanarTriangulation_ContourIdMap = std_vector_std_vector_PlanarTriangulation_IntersectionInfo |
meshlib.mrmeshpy.std_vector_PlanarTriangulation_HoleVertIds = std_vector_std_vector_Id_VertTag |
meshlib.mrmeshpy.std_vector_Polyline3 = std_vector_Polyline_Vector3_float |
meshlib.mrmeshpy.std_vector_QuadraticForm2f = std_vector_QuadraticForm_Vector2_float |
meshlib.mrmeshpy.std_vector_QuadraticForm2f_const_reference = QuadraticForm2f |
meshlib.mrmeshpy.std_vector_QuadraticForm2f_reference = QuadraticForm2f |
meshlib.mrmeshpy.std_vector_QuadraticForm2f_value_type = QuadraticForm2f |
meshlib.mrmeshpy.std_vector_QuadraticForm3f = std_vector_QuadraticForm_Vector3_float |
meshlib.mrmeshpy.std_vector_QuadraticForm3f_const_reference = QuadraticForm3f |
meshlib.mrmeshpy.std_vector_QuadraticForm3f_reference = QuadraticForm3f |
meshlib.mrmeshpy.std_vector_QuadraticForm3f_value_type = QuadraticForm3f |
meshlib.mrmeshpy.std_vector_RegionId = std_vector_Id_RegionTag |
meshlib.mrmeshpy.std_vector_RegionId_const_reference = RegionId |
meshlib.mrmeshpy.std_vector_RegionId_reference = RegionId |
meshlib.mrmeshpy.std_vector_RegionId_value_type = RegionId |
meshlib.mrmeshpy.std_vector_RigidXf3d = std_vector_RigidXf3_double |
meshlib.mrmeshpy.std_vector_size_t = std_vector_unsigned_long |
meshlib.mrmeshpy.std_vector_std_array_std_filesystem_path_4 = std_vector_std_array_std_filesystem_path_4ul |
meshlib.mrmeshpy.std_vector_std_array_Vector3f_3 = std_vector_std_array_Vector3_float_3ul |
meshlib.mrmeshpy.std_vector_std_array_Vector3f_3_const_reference = std_array_Vector3_float_3 |
meshlib.mrmeshpy.std_vector_std_array_Vector3f_3_reference = std_array_Vector3_float_3 |
meshlib.mrmeshpy.std_vector_std_array_Vector3f_3_value_type = std_array_Vector3_float_3 |
meshlib.mrmeshpy.std_vector_std_array_VertId_3 = std_vector_std_array_Id_VertTag_3ul |
meshlib.mrmeshpy.std_vector_std_array_VertId_3_const_reference = std_array_Id_VertTag_3 |
meshlib.mrmeshpy.std_vector_std_array_VertId_3_reference = std_array_Id_VertTag_3 |
meshlib.mrmeshpy.std_vector_std_array_VertId_3_value_type = std_array_Id_VertTag_3 |
meshlib.mrmeshpy.std_vector_std_pair_size_t_size_t = std_vector_std_pair_unsigned_long_unsigned_long |
meshlib.mrmeshpy.std_vector_std_pair_Vector3f_Vector3f = std_vector_std_pair_Vector3_float_Vector3_float |
meshlib.mrmeshpy.std_vector_std_pair_VertId_VertId = std_vector_std_pair_Id_VertTag_Id_VertTag |
meshlib.mrmeshpy.std_vector_std_shared_ptr_const_Object = std_vector_std_shared_ptr_Object_const |
meshlib.mrmeshpy.std_vector_std_variant_Sphere3f_Features_Primitives_ConeSegment_Features_Primitives_Plane = std_vector_std_variant_Sphere_Vector3_float_Features_Primitives_ConeSegment_Features_Primitives_Plane |
meshlib.mrmeshpy.std_vector_std_vector_EdgePoint_const_reference = std_vector_EdgePoint |
meshlib.mrmeshpy.std_vector_std_vector_EdgePoint_reference = std_vector_EdgePoint |
meshlib.mrmeshpy.std_vector_std_vector_EdgePoint_value_type = std_vector_EdgePoint |
meshlib.mrmeshpy.std_vector_std_vector_GraphEdgeId = std_vector_std_vector_Id_GraphEdgeTag |
meshlib.mrmeshpy.std_vector_std_vector_GraphEdgeId_const_reference = std_vector_Id_GraphEdgeTag |
meshlib.mrmeshpy.std_vector_std_vector_GraphEdgeId_reference = std_vector_Id_GraphEdgeTag |
meshlib.mrmeshpy.std_vector_std_vector_GraphEdgeId_value_type = std_vector_Id_GraphEdgeTag |
meshlib.mrmeshpy.std_vector_std_vector_ObjVertId_const_reference = std_vector_ObjVertId |
meshlib.mrmeshpy.std_vector_std_vector_ObjVertId_reference = std_vector_ObjVertId |
meshlib.mrmeshpy.std_vector_std_vector_ObjVertId_value_type = std_vector_ObjVertId |
meshlib.mrmeshpy.std_vector_std_vector_Vector2d = std_vector_std_vector_Vector2_double |
meshlib.mrmeshpy.std_vector_std_vector_Vector2f = std_vector_std_vector_Vector2_float |
meshlib.mrmeshpy.std_vector_std_vector_Vector3d = std_vector_std_vector_Vector3_double |
meshlib.mrmeshpy.std_vector_std_vector_Vector3f = std_vector_std_vector_Vector3_float |
meshlib.mrmeshpy.std_vector_std_vector_VertId = std_vector_std_vector_Id_VertTag |
meshlib.mrmeshpy.std_vector_SurfacePath = std_vector_std_vector_EdgePoint |
meshlib.mrmeshpy.std_vector_SystemPath_SystemFontPaths = std_vector_std_array_std_filesystem_path_4ul |
meshlib.mrmeshpy.std_vector_TextureId = std_vector_Id_TextureTag |
meshlib.mrmeshpy.std_vector_TextureId_const_reference = TextureId |
meshlib.mrmeshpy.std_vector_TextureId_reference = TextureId |
meshlib.mrmeshpy.std_vector_TextureId_value_type = TextureId |
meshlib.mrmeshpy.std_vector_ThreeVertIds = std_vector_std_array_Id_VertTag_3ul |
meshlib.mrmeshpy.std_vector_Triangle3f = std_vector_std_array_Vector3_float_3ul |
meshlib.mrmeshpy.std_vector_TriPointf = std_vector_TriPoint_float |
meshlib.mrmeshpy.std_vector_uint8_t = std_vector_unsigned_char |
meshlib.mrmeshpy.std_vector_UndirectedEdgeBitSet = std_vector_TaggedBitSet_UndirectedEdgeTag |
meshlib.mrmeshpy.std_vector_UndirectedEdgeId = std_vector_Id_UndirectedEdgeTag |
meshlib.mrmeshpy.std_vector_UndirectedEdgeId_const_reference = UndirectedEdgeId |
meshlib.mrmeshpy.std_vector_UndirectedEdgeId_reference = UndirectedEdgeId |
meshlib.mrmeshpy.std_vector_UndirectedEdgeId_value_type = UndirectedEdgeId |
meshlib.mrmeshpy.std_vector_UVCoord = std_vector_Vector2_float |
meshlib.mrmeshpy.std_vector_VdbVolume = std_vector_VoxelsVolumeMinMax_std_shared_ptr_OpenVdbFloatGrid |
meshlib.mrmeshpy.std_vector_Vector2d = std_vector_Vector2_double |
meshlib.mrmeshpy.std_vector_Vector2f = std_vector_Vector2_float |
meshlib.mrmeshpy.std_vector_Vector2f_const_reference = Vector2f |
meshlib.mrmeshpy.std_vector_Vector2f_reference = Vector2f |
meshlib.mrmeshpy.std_vector_Vector2f_value_type = Vector2f |
meshlib.mrmeshpy.std_vector_Vector3d = std_vector_Vector3_double |
meshlib.mrmeshpy.std_vector_Vector3f = std_vector_Vector3_float |
meshlib.mrmeshpy.std_vector_Vector3f_const_reference = Vector3f |
meshlib.mrmeshpy.std_vector_Vector3f_reference = Vector3f |
meshlib.mrmeshpy.std_vector_Vector3f_value_type = Vector3f |
meshlib.mrmeshpy.std_vector_Vector3i = std_vector_Vector3_int |
meshlib.mrmeshpy.std_vector_Vector_ICPGroupPairs_Id_ICPElemtTag_const_reference = Vector_ICPGroupPairs_Id_ICPElemtTag |
meshlib.mrmeshpy.std_vector_Vector_ICPGroupPairs_Id_ICPElemtTag_reference = Vector_ICPGroupPairs_Id_ICPElemtTag |
meshlib.mrmeshpy.std_vector_Vector_ICPGroupPairs_Id_ICPElemtTag_value_type = Vector_ICPGroupPairs_Id_ICPElemtTag |
meshlib.mrmeshpy.std_vector_Vector_std_vector_ObjVertId_Id_ICPElemtTag_const_reference = Vector_std_vector_ObjVertId_Id_ICPElemtTag |
meshlib.mrmeshpy.std_vector_Vector_std_vector_ObjVertId_Id_ICPElemtTag_reference = Vector_std_vector_ObjVertId_Id_ICPElemtTag |
meshlib.mrmeshpy.std_vector_Vector_std_vector_ObjVertId_Id_ICPElemtTag_value_type = Vector_std_vector_ObjVertId_Id_ICPElemtTag |
meshlib.mrmeshpy.std_vector_Vector_Vector_ICPGroupPairs_Id_ICPElemtTag_Id_ICPElemtTag_const_reference = Vector_Vector_ICPGroupPairs_Id_ICPElemtTag_Id_ICPElemtTag |
meshlib.mrmeshpy.std_vector_Vector_Vector_ICPGroupPairs_Id_ICPElemtTag_Id_ICPElemtTag_reference = Vector_Vector_ICPGroupPairs_Id_ICPElemtTag_Id_ICPElemtTag |
meshlib.mrmeshpy.std_vector_Vector_Vector_ICPGroupPairs_Id_ICPElemtTag_Id_ICPElemtTag_value_type = Vector_Vector_ICPGroupPairs_Id_ICPElemtTag_Id_ICPElemtTag |
meshlib.mrmeshpy.std_vector_VertBitSet = std_vector_TaggedBitSet_VertTag |
meshlib.mrmeshpy.std_vector_VertBitSet_const_reference = VertBitSet |
meshlib.mrmeshpy.std_vector_VertBitSet_reference = VertBitSet |
meshlib.mrmeshpy.std_vector_VertBitSet_value_type = VertBitSet |
meshlib.mrmeshpy.std_vector_VertId = std_vector_Id_VertTag |
meshlib.mrmeshpy.std_vector_VertId_const_reference = VertId |
meshlib.mrmeshpy.std_vector_VertId_reference = VertId |
meshlib.mrmeshpy.std_vector_VertId_value_type = VertId |
meshlib.mrmeshpy.std_vector_VoxelBitSet = std_vector_TaggedBitSet_VoxelTag |
meshlib.mrmeshpy.std_vector_WatershedGraph_BasinInfo_const_reference = WatershedGraph.BasinInfo |
meshlib.mrmeshpy.std_vector_WatershedGraph_BasinInfo_reference = WatershedGraph.BasinInfo |
meshlib.mrmeshpy.std_vector_WatershedGraph_BasinInfo_value_type = WatershedGraph.BasinInfo |
meshlib.mrmeshpy.std_vector_WatershedGraph_BdInfo_const_reference = WatershedGraph.BdInfo |
meshlib.mrmeshpy.std_vector_WatershedGraph_BdInfo_reference = WatershedGraph.BdInfo |
meshlib.mrmeshpy.std_vector_WatershedGraph_BdInfo_value_type = WatershedGraph.BdInfo |
meshlib.mrmeshpy.SurfacePath = std_vector_EdgePoint |
meshlib.mrmeshpy.SurfacePaths = std_vector_std_vector_EdgePoint |
meshlib.mrmeshpy.SymMatrix2_bool = SymMatrix2b |
meshlib.mrmeshpy.SymMatrix2_double = SymMatrix2d |
meshlib.mrmeshpy.SymMatrix2_float = SymMatrix2f |
meshlib.mrmeshpy.SymMatrix2_int = SymMatrix2i |
meshlib.mrmeshpy.SymMatrix2_long_long = SymMatrix2ll |
meshlib.mrmeshpy.SymMatrix3_bool = SymMatrix3b |
meshlib.mrmeshpy.SymMatrix3_double = SymMatrix3d |
meshlib.mrmeshpy.SymMatrix3_float = SymMatrix3f |
meshlib.mrmeshpy.SymMatrix3_int = SymMatrix3i |
meshlib.mrmeshpy.SymMatrix3_long_long = SymMatrix3ll |
meshlib.mrmeshpy.SymMatrix4_bool = SymMatrix4b |
meshlib.mrmeshpy.SymMatrix4_double = SymMatrix4d |
meshlib.mrmeshpy.SymMatrix4_float = SymMatrix4f |
meshlib.mrmeshpy.SymMatrix4_int = SymMatrix4i |
meshlib.mrmeshpy.SymMatrix4_long_long = SymMatrix4ll |
meshlib.mrmeshpy.TaggedBitSet_AABBTreeBase_AABBTreeTraits_FaceTag_Box3f_LeafTag = FaceBitSet |
meshlib.mrmeshpy.TaggedBitSet_AABBTreeBase_AABBTreeTraits_UndirectedEdgeTag_Box2f_LeafTag = UndirectedEdgeBitSet |
meshlib.mrmeshpy.TaggedBitSet_AABBTreeBase_AABBTreeTraits_UndirectedEdgeTag_Box3f_LeafTag = UndirectedEdgeBitSet |
meshlib.mrmeshpy.TaggedBitSet_AABBTreeBase_ObjTreeTraits_LeafTag = ObjBitSet |
meshlib.mrmeshpy.TaggedBitSet_EdgeTag = EdgeBitSet |
meshlib.mrmeshpy.TaggedBitSet_EdgeTag_IndexType = Id_EdgeTag |
meshlib.mrmeshpy.TaggedBitSet_FaceTag = FaceBitSet |
meshlib.mrmeshpy.TaggedBitSet_FaceTag_IndexType = FaceId |
meshlib.mrmeshpy.TaggedBitSet_GraphEdgeTag = GraphEdgeBitSet |
meshlib.mrmeshpy.TaggedBitSet_GraphEdgeTag_IndexType = GraphEdgeId |
meshlib.mrmeshpy.TaggedBitSet_GraphVertTag = GraphVertBitSet |
meshlib.mrmeshpy.TaggedBitSet_GraphVertTag_IndexType = GraphVertId |
meshlib.mrmeshpy.TaggedBitSet_NodeTag = NodeBitSet |
meshlib.mrmeshpy.TaggedBitSet_NodeTag_IndexType = NodeId |
meshlib.mrmeshpy.TaggedBitSet_ObjTag = ObjBitSet |
meshlib.mrmeshpy.TaggedBitSet_ObjTag_IndexType = ObjId |
meshlib.mrmeshpy.TaggedBitSet_PixelTag = PixelBitSet |
meshlib.mrmeshpy.TaggedBitSet_PixelTag_IndexType = PixelId |
meshlib.mrmeshpy.TaggedBitSet_RegionTag = RegionBitSet |
meshlib.mrmeshpy.TaggedBitSet_RegionTag_IndexType = RegionId |
meshlib.mrmeshpy.TaggedBitSet_TextureTag = TextureBitSet |
meshlib.mrmeshpy.TaggedBitSet_TextureTag_IndexType = TextureId |
meshlib.mrmeshpy.TaggedBitSet_UndirectedEdgeTag = UndirectedEdgeBitSet |
meshlib.mrmeshpy.TaggedBitSet_UndirectedEdgeTag_IndexType = UndirectedEdgeId |
meshlib.mrmeshpy.TaggedBitSet_VertTag = VertBitSet |
meshlib.mrmeshpy.TaggedBitSet_VertTag_IndexType = VertId |
meshlib.mrmeshpy.TaggedBitSet_VoxelTag = VoxelBitSet |
meshlib.mrmeshpy.TaggedBitSet_VoxelTag_IndexType = Id_VoxelTag |
meshlib.mrmeshpy.TextAlignParams = TextMeshAlignParams |
meshlib.mrmeshpy.ThreePoints = std_array_Vector3_float_3 |
meshlib.mrmeshpy.ThreeVertIds = std_array_Id_VertTag_3 |
meshlib.mrmeshpy.Triangle3_double = std_array_Vector3_double_3 |
meshlib.mrmeshpy.Triangle3_float = std_array_Vector3_float_3 |
meshlib.mrmeshpy.Triangle3_int = std_array_Vector3_int_3 |
meshlib.mrmeshpy.Triangle3d = std_array_Vector3_double_3 |
meshlib.mrmeshpy.Triangle3f = std_array_Vector3_float_3 |
meshlib.mrmeshpy.Triangle3i = std_array_Vector3_int_3 |
meshlib.mrmeshpy.TriangleCornerNormals = std_array_Vector3_float_3 |
meshlib.mrmeshpy.TrianglesRepetitions = std_array_int_4 |
meshlib.mrmeshpy.TriangulationHelpersSettings = TriangulationHelpers.Settings |
meshlib.mrmeshpy.TriPoint_double = TriPointd |
meshlib.mrmeshpy.TriPoint_float = TriPointf |
meshlib.mrmeshpy.UndirectedEdgeHashMap = phmap_flat_hash_map_Id_UndirectedEdgeTag_Id_UndirectedEdgeTag |
meshlib.mrmeshpy.UVCoord = Vector2f |
meshlib.mrmeshpy.VdbVolumes = std_vector_VoxelsVolumeMinMax_std_shared_ptr_OpenVdbFloatGrid |
meshlib.mrmeshpy.Vector2_bool = Vector2b |
meshlib.mrmeshpy.Vector2_bool_MatrixType = Matrix2b |
meshlib.mrmeshpy.Vector2_bool_SymMatrixType = SymMatrix2b |
meshlib.mrmeshpy.Vector2_double = Vector2d |
meshlib.mrmeshpy.Vector2_double_MatrixType = Matrix2d |
meshlib.mrmeshpy.Vector2_double_SymMatrixType = SymMatrix2d |
meshlib.mrmeshpy.Vector2_float = Vector2f |
meshlib.mrmeshpy.Vector2_float_MatrixType = Matrix2f |
meshlib.mrmeshpy.Vector2_float_SymMatrixType = SymMatrix2f |
meshlib.mrmeshpy.Vector2_int = Vector2i |
meshlib.mrmeshpy.Vector2_int_MatrixType = Matrix2i |
meshlib.mrmeshpy.Vector2_int_SymMatrixType = SymMatrix2i |
meshlib.mrmeshpy.Vector2_long_long = Vector2ll |
meshlib.mrmeshpy.Vector2_long_long_MatrixType = Matrix2ll |
meshlib.mrmeshpy.Vector2_long_long_SymMatrixType = SymMatrix2ll |
meshlib.mrmeshpy.Vector3_bool = Vector3b |
meshlib.mrmeshpy.Vector3_bool_MatrixType = Matrix3b |
meshlib.mrmeshpy.Vector3_bool_SymMatrixType = SymMatrix3b |
meshlib.mrmeshpy.Vector3_double = Vector3d |
meshlib.mrmeshpy.Vector3_double_MatrixType = Matrix3d |
meshlib.mrmeshpy.Vector3_double_SymMatrixType = SymMatrix3d |
meshlib.mrmeshpy.Vector3_float = Vector3f |
meshlib.mrmeshpy.Vector3_float_MatrixType = Matrix3f |
meshlib.mrmeshpy.Vector3_float_SymMatrixType = SymMatrix3f |
meshlib.mrmeshpy.Vector3_int = Vector3i |
meshlib.mrmeshpy.Vector3_int_MatrixType = Matrix3i |
meshlib.mrmeshpy.Vector3_int_SymMatrixType = SymMatrix3i |
meshlib.mrmeshpy.Vector3_long_long = Vector3ll |
meshlib.mrmeshpy.Vector3_long_long_MatrixType = Matrix3ll |
meshlib.mrmeshpy.Vector3_long_long_SymMatrixType = SymMatrix3ll |
meshlib.mrmeshpy.Vector4_bool = Vector4b |
meshlib.mrmeshpy.Vector4_bool_MatrixType = Matrix4b |
meshlib.mrmeshpy.Vector4_bool_SymMatrixType = SymMatrix4b |
meshlib.mrmeshpy.Vector4_double = Vector4d |
meshlib.mrmeshpy.Vector4_double_MatrixType = Matrix4d |
meshlib.mrmeshpy.Vector4_double_SymMatrixType = SymMatrix4d |
meshlib.mrmeshpy.Vector4_float = Vector4f |
meshlib.mrmeshpy.Vector4_float_MatrixType = Matrix4f |
meshlib.mrmeshpy.Vector4_float_SymMatrixType = SymMatrix4f |
meshlib.mrmeshpy.Vector4_int = Vector4i |
meshlib.mrmeshpy.Vector4_int_MatrixType = Matrix4i |
meshlib.mrmeshpy.Vector4_int_SymMatrixType = SymMatrix4i |
meshlib.mrmeshpy.Vector4_long_long = Vector4ll |
meshlib.mrmeshpy.Vector4_long_long_MatrixType = Matrix4ll |
meshlib.mrmeshpy.Vector4_long_long_SymMatrixType = SymMatrix4ll |
meshlib.mrmeshpy.Vector_AABBTreeBase_AABBTreeTraits_FaceTag_Box3f_Node_NodeId = Vector_AABBTreeNode_AABBTreeTraits_FaceTag_Box3f_NodeId |
meshlib.mrmeshpy.Vector_AABBTreeBase_AABBTreeTraits_UndirectedEdgeTag_Box2f_Node_NodeId = Vector_AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box2f_NodeId |
meshlib.mrmeshpy.Vector_AABBTreeBase_AABBTreeTraits_UndirectedEdgeTag_Box3f_Node_NodeId = Vector_AABBTreeNode_AABBTreeTraits_UndirectedEdgeTag_Box3f_NodeId |
meshlib.mrmeshpy.Vector_AABBTreeBase_ObjTreeTraits_Node_NodeId = Vector_AABBTreeNode_ObjTreeTraits_NodeId |
meshlib.mrmeshpy.Vector_Color_EdgeId = EdgeColors |
meshlib.mrmeshpy.Vector_Color_FaceId = FaceColors |
meshlib.mrmeshpy.Vector_Color_FaceId_const_reference = Color |
meshlib.mrmeshpy.Vector_Color_FaceId_reference = Color |
meshlib.mrmeshpy.Vector_Color_FaceId_value_type = Color |
meshlib.mrmeshpy.Vector_Color_Id_EdgeTag_const_reference = Color |
meshlib.mrmeshpy.Vector_Color_Id_EdgeTag_reference = Color |
meshlib.mrmeshpy.Vector_Color_Id_EdgeTag_value_type = Color |
meshlib.mrmeshpy.Vector_Color_Id_FaceTag = FaceColors |
meshlib.mrmeshpy.Vector_Color_Id_UndirectedEdgeTag = UndirectedEdgeColors |
meshlib.mrmeshpy.Vector_Color_Id_VertTag = VertColors |
meshlib.mrmeshpy.Vector_Color_UndirectedEdgeId = UndirectedEdgeColors |
meshlib.mrmeshpy.Vector_Color_UndirectedEdgeId_const_reference = Color |
meshlib.mrmeshpy.Vector_Color_UndirectedEdgeId_reference = Color |
meshlib.mrmeshpy.Vector_Color_UndirectedEdgeId_value_type = Color |
meshlib.mrmeshpy.Vector_Color_VertId = VertColors |
meshlib.mrmeshpy.Vector_Color_VertId_const_reference = Color |
meshlib.mrmeshpy.Vector_Color_VertId_reference = Color |
meshlib.mrmeshpy.Vector_Color_VertId_value_type = Color |
meshlib.mrmeshpy.Vector_Dipole_NodeId = Dipoles |
meshlib.mrmeshpy.Vector_Dipole_NodeId_const_reference = Dipole |
meshlib.mrmeshpy.Vector_Dipole_NodeId_reference = Dipole |
meshlib.mrmeshpy.Vector_Dipole_NodeId_value_type = Dipole |
meshlib.mrmeshpy.Vector_EdgeId_EdgeId = EdgeMap |
meshlib.mrmeshpy.Vector_EdgeId_FaceId = Vector_Id_EdgeTag_FaceId |
meshlib.mrmeshpy.Vector_EdgeId_UndirectedEdgeId = WholeEdgeMap |
meshlib.mrmeshpy.Vector_EdgeId_VertId = Vector_Id_EdgeTag_VertId |
meshlib.mrmeshpy.Vector_FaceBitSet_Graph_VertId = Vector_FaceBitSet_GraphVertId |
meshlib.mrmeshpy.Vector_FaceId_FaceId = FaceMap |
meshlib.mrmeshpy.Vector_FaceId_FaceId_const_reference = FaceId |
meshlib.mrmeshpy.Vector_FaceId_FaceId_reference = FaceId |
meshlib.mrmeshpy.Vector_FaceId_FaceId_value_type = FaceId |
meshlib.mrmeshpy.Vector_float_EdgeId = EdgeScalars |
meshlib.mrmeshpy.Vector_float_FaceId = FaceScalars |
meshlib.mrmeshpy.Vector_float_UndirectedEdgeId = UndirectedEdgeScalars |
meshlib.mrmeshpy.Vector_float_VertId = VertScalars |
meshlib.mrmeshpy.Vector_Graph_EndVertices_Graph_EdgeId = Vector_Graph_EndVertices_GraphEdgeId |
meshlib.mrmeshpy.Vector_Graph_Neighbours_Graph_VertId = Vector_std_vector_GraphEdgeId_GraphVertId |
meshlib.mrmeshpy.Vector_Graph_VertId_Graph_VertId = Vector_GraphVertId_GraphVertId |
meshlib.mrmeshpy.Vector_ICPPairsGrid_ICPLayer = Vector_Vector_Vector_ICPGroupPairs_Id_ICPElemtTag_Id_ICPElemtTag_int |
meshlib.mrmeshpy.Vector_Id_EdgeTag_Id_EdgeTag_const_reference = Id_EdgeTag |
meshlib.mrmeshpy.Vector_Id_EdgeTag_Id_EdgeTag_reference = Id_EdgeTag |
meshlib.mrmeshpy.Vector_Id_EdgeTag_Id_EdgeTag_value_type = Id_EdgeTag |
meshlib.mrmeshpy.Vector_Id_EdgeTag_UndirectedEdgeId_const_reference = Id_EdgeTag |
meshlib.mrmeshpy.Vector_Id_EdgeTag_UndirectedEdgeId_reference = Id_EdgeTag |
meshlib.mrmeshpy.Vector_Id_EdgeTag_UndirectedEdgeId_value_type = Id_EdgeTag |
meshlib.mrmeshpy.Vector_ObjId_ObjId = ObjMap |
meshlib.mrmeshpy.Vector_ObjId_ObjId_const_reference = ObjId |
meshlib.mrmeshpy.Vector_ObjId_ObjId_reference = ObjId |
meshlib.mrmeshpy.Vector_ObjId_ObjId_value_type = ObjId |
meshlib.mrmeshpy.Vector_QuadraticForm_Vector2f_VertId = Vector_QuadraticForm2f_VertId |
meshlib.mrmeshpy.Vector_QuadraticForm_Vector3f_VertId = Vector_QuadraticForm3f_VertId |
meshlib.mrmeshpy.Vector_RegionId_FaceId = Face2RegionMap |
meshlib.mrmeshpy.Vector_RegionId_FaceId_const_reference = RegionId |
meshlib.mrmeshpy.Vector_RegionId_FaceId_reference = RegionId |
meshlib.mrmeshpy.Vector_RegionId_FaceId_value_type = RegionId |
meshlib.mrmeshpy.Vector_RegionId_UndirectedEdgeId = UndirectedEdge2RegionMap |
meshlib.mrmeshpy.Vector_RegionId_UndirectedEdgeId_const_reference = RegionId |
meshlib.mrmeshpy.Vector_RegionId_UndirectedEdgeId_reference = RegionId |
meshlib.mrmeshpy.Vector_RegionId_UndirectedEdgeId_value_type = RegionId |
meshlib.mrmeshpy.Vector_RegionId_VertId = Vert2RegionMap |
meshlib.mrmeshpy.Vector_RegionId_VertId_const_reference = RegionId |
meshlib.mrmeshpy.Vector_RegionId_VertId_reference = RegionId |
meshlib.mrmeshpy.Vector_RegionId_VertId_value_type = RegionId |
meshlib.mrmeshpy.Vector_std_array_VertId_3_FaceId_const_reference = std_array_Id_VertTag_3 |
meshlib.mrmeshpy.Vector_std_array_VertId_3_FaceId_reference = std_array_Id_VertTag_3 |
meshlib.mrmeshpy.Vector_std_array_VertId_3_FaceId_value_type = std_array_Id_VertTag_3 |
meshlib.mrmeshpy.Vector_TaggedBitSet_EdgeTag_IndexType_TaggedBitSet_EdgeTag_IndexType = EdgeMap |
meshlib.mrmeshpy.Vector_TaggedBitSet_FaceTag_IndexType_TaggedBitSet_FaceTag_IndexType = FaceMap |
meshlib.mrmeshpy.Vector_TaggedBitSet_GraphEdgeTag_IndexType_TaggedBitSet_GraphEdgeTag_IndexType = Vector_GraphEdgeId_GraphEdgeId |
meshlib.mrmeshpy.Vector_TaggedBitSet_GraphVertTag_IndexType_TaggedBitSet_GraphVertTag_IndexType = Vector_GraphVertId_GraphVertId |
meshlib.mrmeshpy.Vector_TaggedBitSet_ICPElemtTag_IndexType_TaggedBitSet_ICPElemtTag_IndexType = Vector_Id_ICPElemtTag_Id_ICPElemtTag |
meshlib.mrmeshpy.Vector_TaggedBitSet_NodeTag_IndexType_TaggedBitSet_NodeTag_IndexType = Vector_NodeId_NodeId |
meshlib.mrmeshpy.Vector_TaggedBitSet_ObjTag_IndexType_TaggedBitSet_ObjTag_IndexType = ObjMap |
meshlib.mrmeshpy.Vector_TaggedBitSet_PixelTag_IndexType_TaggedBitSet_PixelTag_IndexType = Vector_PixelId_PixelId |
meshlib.mrmeshpy.Vector_TaggedBitSet_RegionTag_IndexType_TaggedBitSet_RegionTag_IndexType = Vector_RegionId_RegionId |
meshlib.mrmeshpy.Vector_TaggedBitSet_TextureTag_IndexType_TaggedBitSet_TextureTag_IndexType = Vector_TextureId_TextureId |
meshlib.mrmeshpy.Vector_TaggedBitSet_UndirectedEdgeTag_IndexType_TaggedBitSet_UndirectedEdgeTag_IndexType = UndirectedEdgeMap |
meshlib.mrmeshpy.Vector_TaggedBitSet_VertTag_IndexType_TaggedBitSet_VertTag_IndexType = VertMap |
meshlib.mrmeshpy.Vector_TaggedBitSet_VoxelTag_IndexType_TaggedBitSet_VoxelTag_IndexType = Vector_Id_VoxelTag_Id_VoxelTag |
meshlib.mrmeshpy.Vector_TextureId_FaceId = TexturePerFace |
meshlib.mrmeshpy.Vector_TextureId_FaceId_const_reference = TextureId |
meshlib.mrmeshpy.Vector_TextureId_FaceId_reference = TextureId |
meshlib.mrmeshpy.Vector_TextureId_FaceId_value_type = TextureId |
meshlib.mrmeshpy.Vector_ThreeVertIds_FaceId = Triangulation |
meshlib.mrmeshpy.Vector_TriangleCornerNormals_FaceId = Vector_std_array_Vector3f_3_FaceId |
meshlib.mrmeshpy.Vector_UndirectedEdgeId_UndirectedEdgeId = UndirectedEdgeMap |
meshlib.mrmeshpy.Vector_UndirectedEdgeId_UndirectedEdgeId_const_reference = UndirectedEdgeId |
meshlib.mrmeshpy.Vector_UndirectedEdgeId_UndirectedEdgeId_reference = UndirectedEdgeId |
meshlib.mrmeshpy.Vector_UndirectedEdgeId_UndirectedEdgeId_value_type = UndirectedEdgeId |
meshlib.mrmeshpy.Vector_UVCoord_VertId = VertUVCoords |
meshlib.mrmeshpy.Vector_Vector2f_VertId = VertUVCoords |
meshlib.mrmeshpy.Vector_Vector2f_VertId_const_reference = Vector2f |
meshlib.mrmeshpy.Vector_Vector2f_VertId_reference = Vector2f |
meshlib.mrmeshpy.Vector_Vector2f_VertId_value_type = Vector2f |
meshlib.mrmeshpy.Vector_Vector3f_FaceId = FaceNormals |
meshlib.mrmeshpy.Vector_Vector3f_FaceId_const_reference = Vector3f |
meshlib.mrmeshpy.Vector_Vector3f_FaceId_reference = Vector3f |
meshlib.mrmeshpy.Vector_Vector3f_FaceId_value_type = Vector3f |
meshlib.mrmeshpy.Vector_Vector3f_VertId = VertCoords |
meshlib.mrmeshpy.Vector_Vector3f_VertId_const_reference = Vector3f |
meshlib.mrmeshpy.Vector_Vector3f_VertId_reference = Vector3f |
meshlib.mrmeshpy.Vector_Vector3f_VertId_value_type = Vector3f |
meshlib.mrmeshpy.Vector_Vector_ICPGroupPairs_ICPElementId_ICPElementId = Vector_Vector_ICPGroupPairs_Id_ICPElemtTag_Id_ICPElemtTag |
meshlib.mrmeshpy.Vector_VertId_VertId = VertMap |
meshlib.mrmeshpy.Vector_VertId_VertId_const_reference = VertId |
meshlib.mrmeshpy.Vector_VertId_VertId_reference = VertId |
meshlib.mrmeshpy.Vector_VertId_VertId_value_type = VertId |
meshlib.mrmeshpy.Vector_VoxelId_FaceId = Vector_Id_VoxelTag_FaceId |
meshlib.mrmeshpy.vectorConstMeshPtr = std_vector_Mesh_const |
meshlib.mrmeshpy.vectorEdges = std_vector_Id_EdgeTag |
meshlib.mrmeshpy.VertHashMap = phmap_flat_hash_map_Id_VertTag_Id_VertTag |
meshlib.mrmeshpy.VertNormals = VertCoords |
meshlib.mrmeshpy.VertPathInfoMap = phmap_flat_hash_map_Id_VertTag_VertPathInfo |
meshlib.mrmeshpy.ViewportProperty_uint8_t = ViewportProperty_unsigned_char |
meshlib.mrmeshpy.VoxelId = Id_VoxelTag |
meshlib.mrmeshpy.VoxelsSaveSavingSettings = VoxelsSave.SavingSettings |
meshlib.mrmeshpy.VoxelsVolume_std_vector_float = SimpleVolume |
meshlib.mrmeshpy.VoxelsVolume_std_vector_uint16_t = SimpleVolumeU16 |
meshlib.mrmeshpy.VoxelsVolume_std_vector_unsigned_short = SimpleVolumeU16 |
meshlib.mrmeshpy.VoxelsVolume_VoxelValueGetter_float = FunctionVolume |
meshlib.mrmeshpy.VoxelsVolume_VoxelValueGetter_uint8_t = FunctionVolumeU8 |
meshlib.mrmeshpy.VoxelsVolumeMinMax_FloatGrid = VdbVolume |
meshlib.mrmeshpy.VoxelsVolumeMinMax_std_vector_float = SimpleVolumeMinMax |
meshlib.mrmeshpy.VoxelsVolumeMinMax_std_vector_uint16_t = SimpleVolumeMinMaxU16 |
meshlib.mrmeshpy.WholeEdgeHashMap = phmap_flat_hash_map_Id_UndirectedEdgeTag_Id_EdgeTag |