Rigid Transformations
PointCloud(data=None)
Bases: Mesh
A data structure for representing point clouds
Attributes:
Name | Type | Description |
---|---|---|
vertices |
DataContainer
|
the container for all vertices |
__str__ |
str
|
Representation of the object and its elements as a string. |
id_vertices
property
Shortcut for range(len(self.vertices))
append(x)
Shortcut for self.vertices.append(x)
, since we can only append elements in the 'vertices' container
PolyLine(data=None)
Bases: Mesh
A data structure for representing polylines.
Attributes:
Name | Type | Description |
---|---|---|
vertices |
DataContainer
|
the container for all vertices |
edges |
DataContainer
|
the container for all edges |
__str__ |
Representation of the object and its elements as a string. |
id_edges
property
Shortcut for range(len(self.edges))
id_vertices
property
Shortcut for range(len(self.vertices))
SurfaceMesh(data=None)
Bases: Mesh
A data structure for representing polygonal surfaces.
Attributes:
Name | Type | Description |
---|---|---|
vertices |
DataContainer
|
the container for all vertices |
edges |
DataContainer
|
the container for all edges |
faces |
DataContainer
|
the container for all faces |
face_corners |
DataContainer
|
the container for all corner of faces |
boundary_edges |
list
|
list of all edge indices on the boundary |
interior_edges |
list
|
list of all interior edge indices (all edges \ boundary_edges) |
boundary_vertices |
list
|
list of all vertex indices on the boundary |
interior_vertices |
list
|
list of all interior verticex indices (all vertices \ boundary_vertices) |
connectivity |
_SurfaceConnectivity
|
the connectivity utility class |
id_corners
property
Shortcut for range(len(self.face_corners))
id_edges
property
Shortcut for range(len(self.edges))
id_faces
property
Shortcut for range(len(self.faces))
id_vertices
property
Shortcut for range(len(self.vertices))
clear_boundary_data()
Clear all boundary data. Next call to a boundary/interior container or method will recompute everything
is_edge_on_border(u, v)
whether edge (u,v) is a boundary edge or not
Parameters:
Name | Type | Description | Default |
---|---|---|---|
u
|
int
|
vertex id |
required |
v
|
int
|
vertex id |
required |
Returns:
Name | Type | Description |
---|---|---|
bool |
bool
|
whether edge (u,v) is a boundary edge or not. Returns False if (u,v) is not a valid edge. |
is_quad()
Checks if the mesh is a quadrangulation
Returns:
Name | Type | Description |
---|---|---|
bool |
bool
|
True if the mesh is quadrangular (all faces are quad) |
is_triangular()
Checks if the mesh is a triangulation
Returns:
Name | Type | Description |
---|---|---|
bool |
bool
|
True if the mesh is triangular (all faces are triangles) |
is_vertex_on_border(u)
whether vertex u
is a boundary vertex or not.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
u
|
int
|
vertex id |
required |
Returns:
Name | Type | Description |
---|---|---|
bool |
bool
|
whether vertex |
ith_vertex_of_face(fid, i)
helper function to get the i-th vertex of a face, i.e. self.faces[fid][i]
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fid
|
int
|
face id |
required |
i
|
int
|
vertex id in face. Should be 0 <= vid < len(face) |
required |
Returns:
Name | Type | Description |
---|---|---|
int |
int
|
the id of the i-th vertex in face |
pt_of_face(fid)
point coordinates of vertices of face fid
Parameters:
Name | Type | Description | Default |
---|---|---|---|
fid
|
int
|
face id |
required |
Returns:
Name | Type | Description |
---|---|---|
Iterable |
iterator of Vec objects representing point coordinates of vertices |
VolumeMesh(data=None)
Bases: Mesh
id_cells
property
Shortcut for range(len(self.cells))
id_corners
property
Shortcut for range(len(self.face_corners))
id_edges
property
Shortcut for range(len(self.edges))
id_faces
property
Shortcut for range(len(self.faces))
id_vertices
property
Shortcut for range(len(self.vertices))
is_edge_on_border(*args)
Simple test to determine if a given edge is on the boundary of the mesh.
Returns:
Name | Type | Description |
---|---|---|
bool |
bool
|
Returns True if the given edge is on the boundary of the mesh. |
is_face_on_border(*args)
Simple test to determine if a given face is on the boundary of the mesh.
Returns:
Name | Type | Description |
---|---|---|
bool |
bool
|
Returns True is the given face exists and is on the boundary of the mesh |
is_tetrahedral()
Returns:
Name | Type | Description |
---|---|---|
bool |
bool
|
True if the mesh is tetrahedral (all cells are tetrahedra) |
fit_into_unit_cube(mesh)
Applies translation and global scaling for the mesh to fit inside a cube [0;1]^3
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mesh
|
Mesh
|
the input mesh. Can be any mesh data structure |
required |
Returns:
Name | Type | Description |
---|---|---|
Mesh |
Mesh
|
the scaled and translated mesh |
flatten(mesh, dim=None)
Snaps to 0 one dimension to retrieve a flat 2D mesh.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mesh
|
Mesh
|
input mesh |
required |
dim
|
int
|
The dimension to flatten. If None, the function chooses the dimension which has the smallest variance. |
None
|
Returns:
Type | Description |
---|---|
Mesh
|
the modified input mesh |
rotate(mesh, rot, orig=None)
Rotates all vertices of the mesh by a given rotation around a given origin.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mesh
|
Mesh
|
the input mesh. Can be any mesh data structure |
required |
rot
|
Rotation | list
|
The rotation, given as an object or 3 Euler angles |
required |
orig
|
Vec
|
The origin of the rotation. If not provided, the function rotates around (0,0,0). Defaults to None. |
None
|
Returns:
Name | Type | Description |
---|---|---|
Mesh |
Mesh
|
description |
scale(mesh, factor, orig=None)
Scales the mesh by a given factor around a given origin (fixed point)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mesh
|
Mesh
|
the input mesh. Can be any mesh data structure |
required |
factor
|
float
|
scale factor. If its magnitude is < 1e-8, will print a warning. |
required |
orig
|
Vec
|
Fixed point of the scaling. If not provided, it is set at (0,0,0). Defaults to None. |
None
|
Returns:
Name | Type | Description |
---|---|---|
Mesh |
Mesh
|
the scaled input mesh. |
scale_xyz(mesh, fx=1.0, fy=1.0, fz=1.0, orig=None)
Scales the mesh independently along three axes. If any factor as a magnitude < 1e-8, will print a warning.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mesh
|
Mesh
|
the input mesh. Can be any mesh data structure |
required |
fx
|
float
|
Scale factor along x. Defaults to 1. |
1.0
|
fy
|
float
|
Scale factor along y. Defaults to 1. |
1.0
|
fz
|
float
|
Scale factor along z. Defaults to 1. |
1.0
|
orig
|
Vec
|
Fixed point of the scaling. If not provided, it is set at (0,0,0). Defaults to None. |
None
|
Returns:
Name | Type | Description |
---|---|---|
Mesh |
Mesh
|
the scaled mesh. |
translate(mesh, tr)
Translates all vertices of the mesh by a fixed vector
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mesh
|
Mesh
|
the input mesh. Can be any mesh data structure |
required |
tr
|
Vec
|
the translation vector |
required |
Returns:
Name | Type | Description |
---|---|---|
Mesh |
Mesh
|
the translated mesh |
translate_to_origin(mesh)
Translates all vertices of the mesh so that its barycenter is at origin (0., 0., 0.)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
mesh
|
Mesh
|
the input mesh |
required |
Returns:
Name | Type | Description |
---|---|---|
Mesh |
Mesh
|
the translated mesh |