OptionalallowUnclean?: booleanOptionaldpLimit?: numberOptionalfair?: booleanOptionalloops?: readonly LoopId[]OptionalmaxArea?: numberOptionalmaxDihedral?: numberReject a minimum-weight triangulation past this dihedral, in radians.
OptionalmaxEdges?: numberOptionalmaxPerimeter?: numberOptionalmaxRefineVertices?: numberStop refining a patch once it has this many new vertices.
Brush center in local mesh coordinates, as in views(mesh).positions().
Optionalprotect?: VertexProtectionVertices this op must hold in place, or move less.
Displacement scale; negative pulls instead of pushing.
Brush center in local mesh coordinates, as in views(mesh).positions().
How many Taubin λ/μ cycles to run; 0 moves nothing.
Optionalprotect?: VertexProtectionVertices this op must hold in place, or move less.
Displacement scale; the per-vertex weight is strength * falloff.
Region center in local mesh coordinates, as in views(mesh).positions().
OptionalmaxRounds?: numberMaximum split/collapse/flip rounds; unset means the default (10).
OptionalsplitOnly?: booleanSplit long edges only (no collapses, no flips); unset means a full pass.
OptionaltargetLength?: numberTarget edge length; unset means the mesh-wide mean edge length.
OptionalonlyIfMissing?: booleanKeep rest sizes the mesh still holds. Unset means false.
Records each vertex's longest edge as its rest size, for
splitStretched. Run it before the deformation starts. Not an edit:
no undo step, and it must be the only op of its list. Running it again
accepts the mesh as it is then as the new rest shape; onlyIfMissing
avoids that. The sizes last until a topology edit other than
splitStretched, or an undo or redo of an edit from before the capture;
undoing a topology edit from after it brings them back.
Region center in local mesh coordinates; edges with an endpoint in the region are checked.
Optionallimit?: numberMultiple of the rest size an edge may reach, above 1; unset means 4/3.
OptionalmaxSplits?: numberMost interior splits per call, the longest first; boundary edges do not count. Unset means 2^20.
Splits the edges a deformation stretched, and nothing else: an edge
splits once it is past limit times the smaller rest size of its
endpoints, measured by captureRestSizes. Existing vertices keep their
ids and positions, nothing collapses or flips, and a triangle with no
split edge keeps its slot. Fails while the mesh holds no valid rest
sizes: see captureRestSizes.
Optionalsmooth?: booleanNew interior vertices follow the surface's curvature; false uses midpoints. Unset means true.
Brush center in local mesh coordinates, as in views(mesh).positions().
The drag vector in local coordinates; zero moves nothing.
Optionalprotect?: VertexProtectionVertices this op must hold in place, or move less.
Displacement scale; the per-vertex offset is strength * falloff * direction.
Brush center in local mesh coordinates, as in views(mesh).positions().
How many plain Laplacian passes to run; 0 moves nothing.
Optionalprotect?: VertexProtectionVertices this op must hold in place, or move less.
Displacement scale; the per-vertex weight is strength * falloff.
How far to move the surface along its smooth normals, in mesh units (equal to world units). Positive follows the normals (outward on an outward-wound closed mesh); negative sinks inward. Must be finite; 0 moves nothing.
Wall thickness in mesh units (equal to world units): the input surface stays and gains a reversed copy one thickness against its smooth normals, with every boundary rim stitched shut. Must be positive and finite.
OptionalpreserveBoundary?: booleanKeep boundary vertices in place; defaults to true.
Stop once this many triangles are alive; must be at least 1. A target at or above the live count leaves the mesh alone.
Optionallevels?: numberHow many times to split every triangle; must be an integer of at
least 1. Each level quadruples the triangle count. Defaults to 1.
Optionalmethod?: "loop"Subdivision scheme; only "loop" exists. Defaults to "loop".
One repair operation for Scene.repair. Distances and areas are in mesh units (equal to world units). They are converted to
f32, so a tolerance or area below thef32range rounds to 0.