HalfEdge

class compas.datastructures.HalfEdge(name=None, default_vertex_attributes=None, default_edge_attributes=None, default_face_attributes=None)[source]

Bases: compas.datastructures.datastructure.Datastructure

Base half-edge data structure for representing the topology of open oor closed surface meshes.

Parameters
  • name (str, optional) – The name of the graph. Defaults to “Graph”.

  • 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.

Attributes
  • attributes (dict) – Named attributes related to the data structure as a whole.

  • default_vertex_attributes (dict) – Named attributes and default values of the vertices of the data structure.

  • default_edge_attributes (dict) – Named attributes and default values of the edges of the data structure.

  • default_face_attributes (dict) – Named attributes and default values of the faces of the data structure.

  • name (str) – Name of the data structure. Defaults to the value of self.__class__.__name__.

  • data (dict) – The data representation of the data structure.

  • adjacency (dict) – Alias for self.halfedge.

    Deprecated since version 0.17.0.

Attributes

DATASCHEMA

The schema of the data of this object.

JSONSCHEMANAME

adjacency

data

A data dict representing the mesh data structure for serialization.

name

The name of the data structure.

Inherited Attributes

JSONSCHEMA

The schema of the JSON representation of the data of this object.

dtype

The type of the object in the form of a '2-level' import and a class name.

guid

The globally unique identifier of the object.

jsondefinitions

Reusable schema definitions.

jsonstring

The representation of the object data in JSON format.

jsonvalidator

JSON schema validator for draft 7.

Methods

add_face

Add a face to the mesh object.

add_vertex

Add a vertex to the mesh object.

clear

Clear all the mesh data.

cull_vertices

Remove all unused vertices from the mesh object.

delete_face

Delete a face from the mesh object.

delete_vertex

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

edge_attribute

Get or set an attribute of an edge.

edge_attributes

Get or set multiple attributes of an edge.

edge_faces

Find the two faces adjacent to an edge.

edge_loop

Find all edges on the same loop as a given edge.

edge_sample

A random sample of the edges.

edge_strip

Find all edges on the same strip as a given edge.

edges

Iterate over the edges of the mesh.

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.

euler

Calculate the Euler characteristic.

face_adjacency_halfedge

Find one half-edge over which two faces are adjacent.

face_adjacency_vertices

Find all vertices over which two faces are adjacent.

face_attribute

Get or set an attribute of a face.

face_attributes

Get or set multiple attributes of a face.

face_corners

Return triplets of face vertices forming the corners of the face.

face_degree

Count the neighbors of a face.

face_halfedges

The halfedges of a face.

face_max_degree

Compute the maximum degree of all faces.

face_min_degree

Compute the minimum degree of all faces.

face_neighborhood

Return the faces in the neighborhood of a face.

face_neighbors

Return the neighbors of a face across its edges.

face_sample

A random sample of the faces.

face_vertex_after

Return the n-th vertex after the specified vertex in a specific face.

face_vertex_ancestor

Return the n-th vertex before the specified vertex in a specific face.

face_vertex_before

Return the n-th vertex before the specified vertex in a specific face.

face_vertex_descendant

Return the n-th vertex after the specified vertex in a specific face.

face_vertices

The vertices of a face.

faces

Iterate over the faces of the mesh.

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.

genus

Calculate the genus.

get_any_face

Get the identifier of a random face.

get_any_face_vertex

Get the identifier of a random vertex of a specific face.

get_any_vertex

Get the identifier of a random vertex.

get_any_vertices

Get a list of identifiers of a random set of n vertices.

halfedge_after

halfedge_before

halfedge_face

Find the face corresponding to a halfedge.

halfedge_loop

Find all edges on the same loop as the halfedge, in the direction of the halfedge.

halfedge_strip

Find all edges on the same strip as a given halfedge.

has_edge

Verify that the mesh contains a specific edge.

has_face

Verify that a face is part of the mesh.

has_halfedge

Verify that a halfedge is part of the mesh.

has_vertex

Verify that a vertex is in the mesh.

index_key

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

index_vertex

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

is_closed

Verify that the mesh is closed.

is_edge_on_boundary

Verify that an edge is on the boundary.

is_empty

Verify that the mesh is empty.

is_face_on_boundary

Verify that a face is on a boundary.

is_manifold

Verify that the mesh is manifold.

is_orientable

Verify that the mesh is orientable.

is_quadmesh

Verify that the mesh consists of only quads.

is_regular

Verify that the mesh is regular.

is_trimesh

Verify that the mesh consists of only triangles.

is_valid

Verify that the mesh is valid.

is_vertex_connected

Verify that a vertex is connected.

is_vertex_on_boundary

Verify that a vertex is on a boundary.

key_index

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

number_of_edges

Count the number of edges in the mesh.

number_of_faces

Count the number of faces in the mesh.

number_of_vertices

Count the number of vertices in the mesh.

remove_unused_vertices

Remove all unused vertices from the mesh object.

summary

Print a summary of the mesh.

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_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.

vertex_attribute

Get or set an attribute of a vertex.

vertex_attributes

Get or set multiple attributes of a vertex.

vertex_degree

Count the neighbors of a vertex.

vertex_edges

vertex_faces

The faces 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 neighbors of a vertex.

vertex_sample

A random sample of the vertices.

vertices

Iterate over the vertices of the mesh.

vertices_attribute

Get or set an attribute of multiple vertices.

vertices_attributes

Get or set multiple attributes of multiple vertices.

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.

Inherited Methods

copy

Make an independent copy of the data object.

from_data

Construct an object of this type from the provided data.

from_json

Construct an object from serialized data contained in a JSON file.

from_jsonstring

Construct an object from serialized data contained in a JSON string.

to_data

Convert an object to its native data representation.

to_json

Serialize the data representation of an object to a JSON file.

to_jsonstring

Serialize the data representation of an object to a JSON string.

validate_data

Validate the object's data against its data schema (self.DATASCHEMA).

validate_json

Validate the object's data against its json schema (self.JSONSCHEMA).