Source code for ddg.conversion.halfedge.core

from .geometry.spheres import circle_to_halfedge, sphere_to_icosphere
from .nets import discrete_net_to_halfedge, discrete_domain_to_halfedge

from ddg.geometry.spheres import Sphere
from ddg.datastructures.nets.net import (DiscreteNet, DiscreteDomain, EmptyNet,
                                         EmptyDomain, PointNet, NetCollection)


[docs]def to_halfedge(object_, **kwargs): """ Converts an object to a primitive halfedge surface depending to its type. """ if isinstance(object_, Sphere): if object_.is_circle(): return circle_to_halfedge(object_, **kwargs) else: return sphere_to_icosphere(object_, **kwargs) elif isinstance(object_, (DiscreteNet, EmptyNet, PointNet, NetCollection)): return discrete_net_to_halfedge(object_, **kwargs) elif isinstance(object_, (DiscreteDomain, EmptyDomain)): return discrete_domain_to_halfedge(object_, **kwargs) else: raise TypeError(f"Object of type {type(object_)} could not be " f"converted to halfedge.")