CellNetwork

class compas.datastructures.CellNetwork[source]

Bases: HalfFace

Geometric implementation of a data structure for a collection of mixed topologic entities such as cells, faces, edges and nodes.

Parameters:
name: str, optional

The name of the data structure.

default_vertex_attributes: dict, optional

Default values for vertex attributes.

default_edge_attributes: dict, optional

Default values for edge attributes.

default_face_attributes: dict, optional

Default values for face attributes.

default_cell_attributes: dict, optional

Default values for cell attributes.

Examples

>>> from compas.datastructures import CellNetwork
>>> cell_network = CellNetwork()
>>> vertices = [(0, 0, 0), (0, 1, 0), (1, 1, 0), (1, 0, 0), (0, 0, 1), (1, 0, 1), (1, 1, 1), (0, 1, 1)]
>>> faces = [[0, 1, 2, 3], [0, 3, 5, 4],[3, 2, 6, 5], [2, 1, 7, 6],[1, 0, 4, 7],[4, 5, 6, 7]]
>>> cells = [[0, 1, 2, 3, 4, 5]]
>>> [network.add_vertex(x=x, y=y, z=z) for x, y, z in vertices]
>>> [cell_network.add_face(fverts) for fverts in faces]
>>> [cell_network.add_cell(fkeys) for fkeys in cells]
>>> cell_network

Methods

add_cell

Add a cell to the cell network object.

add_edge

Add an edge and specify its attributes.

add_face

Add a face to the cell network.

add_vertex

Add a vertex and specify its attributes.

cell_center

Compute the point at the center of mass of a cell.

cell_centroid

Compute the point at the centroid of a cell.

cell_points

Compute the points of the vertices of a cell.

cell_polyhedron

Construct a polyhedron from the vertices and faces of a cell.

cell_to_mesh

Construct a mesh object from from a cell of a cell network.

cell_to_vertices_and_faces

Return the vertices and faces of a cell.

cell_vertex_normal

Return the normal vector at the vertex of a boundary cell as the weighted average of the normals of the neighboring faces.

cells_on_boundaries

Find the cells on the boundary.

edge_attribute

Get or set an attribute of an edge.

edge_coordinates

Return the coordinates of the start and end point of an edge.

edge_direction

Return the direction vector of an edge.

edge_end

Return the end point of an edge.

edge_face_adjacency

Returns an adjacency where adjacency[edge] = {face1, face2}.

edge_faces

Return the faces adjacent to an edge.

edge_length

Return the length of an edge.

edge_line

Return the line representation of an edge.

edge_start

Return the start point of an edge.

edge_vector

Return the vector of an edge.

edges

Iterate over the edges of the cell network.

edges_no_face

Find the edges that are not part of a face.

face_adjacency

Construct a face adjacency dictionary from a list of faces.

face_area

Compute the oriented area of a face.

face_attribute

Get or set an attribute of a face.

face_cell_adjacency

Returns an adjacency where adjacency[face] = [cell1, cell2].

face_cells

Return the cells connected to a face.

face_center

Compute the point at the center of mass of a face.

face_centroid

Compute the point at the centroid of a face.

face_coordinates

Compute the coordinates of the vertices of a face.

face_edges

face_neighbors

Return the neighbors of a face across its edges.

face_normal

Compute the oriented normal of a face.

face_points

Compute the points of the vertices of a face.

face_polygon

Compute the polygon of a face.

face_vertices

The vertices of a face.

faces_no_cell

Find the faces that are not part of a cell.

faces_on_boundaries

from_data

Construct an object of this type from the provided data.

halfface_area

Compute the oriented area of a face.

halfface_center

Compute the point at the center of mass of a face.

halfface_centroid

Compute the point at the centroid of a face.

halfface_coordinates

Compute the coordinates of the vertices of a face.

halfface_normal

Compute the oriented normal of a face.

is_face_on_boundary

Verify that a face is on the boundary.

is_halfface_on_boundary

Verify that a face is on the boundary.

mesh_from_faces

Construct a mesh from a list of faces.

non_manifold_edges

Returns the edges that belong to more than two faces.

to_network

Convert the cell network to a network.

vertex_coordinates

Return the coordinates of a vertex.

vertex_point

Return the point representation of a vertex.

vertices_coordinates

Return the coordinates of multiple vertices.

vertices_points

Returns the point representation of multiple vertices.

Inherited Methods

ToString

Converts the instance to a string.

add_halfface

Add a face to the volmesh object.

cell_attribute

Get or set an attribute of a cell.

cell_attributes

Get or set multiple attributes of a cell.

cell_edges

Return all edges of a cell.

cell_face_neighbors

Find the faces adjacent to a given face of a cell.

cell_faces

The faces of a cell.

cell_halfedge_face

Find the face corresponding to a specific halfedge of a cell.

cell_halfedge_opposite_face

Find the opposite face corresponding to a specific halfedge of a cell.

cell_halfedges

The halfedges of a cell.

cell_neighbors

Find the neighbors of a given cell.

cell_sample

Get the identifiers of a set of random cells.

cell_vertex_faces

Ordered faces connected to a vertex of a cell.

cell_vertex_neighbors

Ordered vertex neighbors of a vertex of a cell.

cell_vertices

The vertices of a cell.

cells

Iterate over the cells of the volmesh.

cells_attribute

Get or set an attribute of multiple cells.

cells_attributes

Get or set multiple attributes of multiple cells.

cells_where

Get cells for which a certain condition or set of conditions is true.

cells_where_predicate

Get cells for which a certain condition or set of conditions is true using a lambda function.

clear

Clear all the volmesh data.

copy

Make an independent copy of the data object.

cull_vertices

Remove all unused vertices from the volmesh object.

delete_cell

Delete a cell from the volmesh.

delete_vertex

Delete a vertex from the volmesh and everything that is attached to it.

edge_attributes

Get or set multiple attributes of an edge.

edge_cells

Ordered cells around edge (u, v).

edge_halffaces

Ordered halffaces around edge (u, v).

edge_sample

Get the identifiers of a set of random edges.

edges_attribute

Get or set an attribute of multiple edges.

edges_attributes

Get or set multiple attributes of multiple edges.

edges_where

Get edges for which a certain condition or set of conditions is true.

edges_where_predicate

Get edges for which a certain condition or set of conditions is true using a lambda function.

face_attributes

Get or set multiple attributes of a face.

face_sample

Get the identifiers of a set of random faces.

faces

"Iterate over the halffaces of the volmesh and yield faces.

faces_attribute

Get or set an attribute of multiple faces.

faces_attributes

Get or set multiple attributes of multiple faces.

faces_where

Get faces for which a certain condition or set of conditions is true.

faces_where_predicate

Get faces for which a certain condition or set of conditions is true using a lambda function.

from_json

Construct an object of this type from a JSON file.

from_jsonstring

Construct an object of this type from a JSON string.

halfface_adjacent_halfface

Return the halfface adjacent to the halfface across the halfedge.

halfface_cell

The cell to which the halfface belongs to.

halfface_halfedges

The halfedges of a halfface.

halfface_manifold_neighborhood

Return the halfface neighborhood of a halfface across their edges.

halfface_manifold_neighbors

Return the halfface neighbors of a halfface that are on the same manifold.

halfface_opposite_cell

The cell to which the opposite halfface belongs to.

halfface_opposite_halfface

The opposite face of a face.

halfface_vertex_ancestor

Return the vertex before the specified vertex in a specific face.

halfface_vertex_descendent

Return the vertex after the specified vertex in a specific face.

halfface_vertices

The vertices of a halfface.

halffaces

Iterate over the halffaces of the volmesh.

halffaces_on_boundaries

Find the faces on the boundary.

has_edge

Verify that the volmesh contains a directed edge (u, v).

has_halfface

Verify that a face is part of the volmesh.

has_vertex

Verify that a vertex is in the volmesh.

index_vertex

Returns a dictionary that maps the indices of a vertex list to keys in the vertex dictionary.

is_cell_on_boundary

Verify that a cell is on the boundary.

is_edge_on_boundary

Verify that an edge is on the boundary.

is_valid

Verify that the volmesh is valid.

is_vertex_on_boundary

Verify that a vertex is on a boundary.

number_of_cells

Count the number of faces in the volmesh.

number_of_edges

Count the number of edges in the volmesh.

number_of_faces

Count the number of faces in the volmesh.

number_of_vertices

Count the number of vertices in the volmesh.

remove_unused_vertices

Remove all unused vertices from the volmesh object.

sha256

Compute a hash of the data for comparison during version control using the sha256 algorithm.

to_data

Convert an object to its native data representation.

to_json

Convert an object to its native data representation and save it to a JSON file.

to_jsonstring

Convert an object to its native data representation and save it to a JSON string.

unset_cell_attribute

Unset the attribute of a cell.

unset_edge_attribute

Unset the attribute of an edge.

unset_face_attribute

Unset the attribute of a face.

unset_vertex_attribute

Unset the attribute of a vertex.

update_default_cell_attributes

Update the default cell attributes.

update_default_edge_attributes

Update the default edge attributes.

update_default_face_attributes

Update the default face attributes.

update_default_vertex_attributes

Update the default vertex attributes.

validate_data

Validate the data against the object's data schema.

vertex_attribute

Get or set an attribute of a vertex.

vertex_attributes

Get or set multiple attributes of a vertex.

vertex_cells

Return all cells connected to a vertex.

vertex_degree

Count the neighbors of a vertex.

vertex_halffaces

Return all halffaces connected to a vertex.

vertex_index

Returns a dictionary that maps vertex dictionary keys to the corresponding index in a vertex list or array.

vertex_max_degree

Compute the maximum degree of all vertices.

vertex_min_degree

Compute the minimum degree of all vertices.

vertex_neighborhood

Return the vertices in the neighborhood of a vertex.

vertex_neighbors

Return the vertex neighbors of a vertex.

vertex_sample

Get the identifiers of a set of random vertices.

vertices

Iterate over the vertices of the volmesh.

vertices_attribute

Get or set an attribute of multiple vertices.

vertices_attributes

Get or set multiple attributes of multiple vertices.

vertices_on_boundaries

Find the vertices on the boundary.

vertices_where

Get vertices for which a certain condition or set of conditions is true.

vertices_where_predicate

Get vertices for which a certain condition or set of conditions is true using a lambda function.