geoparticle.ops.Clip
- class Clip(geo: Geometry, *, keep: str, plane_name: str | None = None, plane_normal: Sequence[float] | None = None, plane_point: Sequence[float] | None = None, name=None)[source]
Bases:
GeometryHalf-space clipping by a named plane through the origin or an arbitrary plane.
Shortest import: from geoparticle import Clip
- __init__(geo: Geometry, *, keep: str, plane_name: str | None = None, plane_normal: Sequence[float] | None = None, plane_point: Sequence[float] | None = None, name=None)[source]
Initialize a Clip object that clips a geometry by a plane.
- Rules:
If plane_name is given, plane_normal and plane_point must not be provided.
If plane_name is not given, plane_normal and plane_point must both be provided.
- Parameters:
geo (Geometry) – The source geometry to clip.
keep (str) – Side to keep (‘positive’ or ‘negative’).
plane_name (str, optional) – Named plane (‘XOY’, ‘XOZ’, ‘YOZ’). Defaults to None.
plane_normal (Sequence[float], optional) – Normal vector of the plane. Defaults to None.
plane_point (Sequence[float], optional) – A point on the plane. Defaults to None.
name (str, optional) – Name of the resulting geometry. Defaults to None.
- Raises:
ValueError – If invalid arguments are provided.
Methods
__init__(geo, *, keep[, plane_name, ...])Initialize a Clip object that clips a geometry by a plane.
check_overlap([tol])Check if there are overlapping points in the geometry.
clip(keep, *[, plane_name, plane_normal, ...])Clip geometry by a half-space defined by a named plane or an arbitrary plane.
coord2id(x, y, z)Find the nearest vertex index/indices and its/their coordinates.
copy([name])Create a deep copy of the geometry object.
equal(geo)Check if two geometries are equal based on their coordinates.
get_and_delete(ids)Extract points by their indices and remove them from the geometry.
get_counter()Get the current value of the class-wide counter.
intersect(geometries[, rmax, inplace, name])Keep points from self that are within rmax of at least one point in every other geometry.
load_from(other)Copy coordinate arrays and dimension from another Geometry into this instance.
mirror(plane_name, plane_pos[, inplace, name])Mirror the geometry across a principal plane.
plot([ax, ms, alpha])Plot the geometry points in 2D.
rotate(angle_deg[, axis_direction, ...])Rotate the geometry around a principal axis or a custom axis.
set_coord(xs, ys, zs)Set the coordinates of the geometry, broadcasting scalars if necessary.
shift([x, y, z, inplace, name])Translate the geometry by the given offsets.
stack(axis, n_axis, dl, dimension[, ...])Stack a planar layer (self) along axis by repeating points at spacing dl.
subtract(geo2[, rmax, inplace, name])Return points from self that are at least rmax away from any point in geo2.
union(geometries[, inplace, name])Concatenate this geometry with others and return a new Geometry.
Attributes
flatten_coordsGet the flattened array of coordinates.
matrix_coordsGet the coordinates as a 2D array.
sizeGet the number of points in the geometry.
- counter = 0