leaf.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:tree-gen 作者: friggog 项目源码 文件源码
def get_mesh(self, bend, base_shape, index):
        """produce leaf mesh at position of this leaf given base mesh as input"""
        # calculate angles to transform mesh to align with desired direction
        trf = self.direction.to_track_quat('Z', 'Y')
        right_t = self.right.rotated(trf.inverted())
        spin_ang = pi - right_t.angle(Vector([1, 0, 0]))

        # calculate bend transform if needed
        if bend > 0:
            bend_trf_1, bend_trf_2 = self.calc_bend_trf(bend)
        else:
            bend_trf_1 = bend_trf_2 = None

        vertices = []
        for vertex in base_shape[0]:
            # rotate to correct direction
            vertex = vertex.copy()
            vertex.rotate(Quaternion(Vector([0, 0, 1]), spin_ang))
            vertex.rotate(trf)
            # apply bend if needed
            if bend > 0:
                vertex.rotate(bend_trf_1)
                vertex.rotate(bend_trf_2)
            # move to right position
            vertex += self.position
            # add to vertex array
            vertices.append(vertex)
        # set face to refer to vertices at correct offset in big vertex list
        index *= len(vertices)
        faces = deepcopy(base_shape[1])
        for face in faces:
            for ind, elem in enumerate(face):
                face[ind] = elem + index
        return vertices, faces
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号