def __init__(self, faces=None, vertices=None, **kwargs): """ SuperClass for Revitinterface option """ RevitInterface.__init__(self, **kwargs) Trimesh.__init__(self, vertices=vertices, faces=faces) self._reps = {} self._facet_centroids = None self._convex_comps = None self._current_rep = 'mesh' self._axis = []
def __init__(self, faces=None, vertices=None, **kwargs): """ Arbitrary thing assumed to be a line-based geometry """ CadInterface.__init__(self, **kwargs) Trimesh.__init__(self, vertices=vertices, faces=faces) self._reps = {} self._facet_centroids = None self._current_rep = 'mesh' self._convex_comps = None # axis is two facet_box indices self._axis = []
def __init__(self, vertices=None, mesh=None, debug=False, **kwargs): if mesh is None and vertices is not None: mesh = Trimesh(vertices=vertices).convex_hull.bounding_box_oriented Trimesh.__init__(self, vertices=mesh.vertices, faces=mesh.faces) vert_face = self.vertices[self.faces[self.facets]] # facet centroids np.shape([6, 3]) self._facet_centers = vert_face.reshape(self.facets.shape[0], -1, 3).mean(axis=1) fct_norm = self.facets_normal mn1, mn2 = np.where( np.isclose(spatial.distance.cdist(fct_norm, -fct_norm), 0.)) # pairs of axis points of obb : [ 3, 2] self._pairs = np.unique([sorted(v) for v in zip(mn1, mn2)], axis=0) lines = [] for n1, n2 in zip(self.axes_vertices[:, 0, :], self.axes_vertices[:, 1, :]): lines.append(lib.geo.Line(lib.geo.Point(n1), lib.geo.Point(n2))) self._axis_skel = AxisSkeleton(lines)