def __init__(self, mesh, transform_out=None, transform_in=None):
transform_out = numpy.matrix(transform_out) if transform_out is not None else None
transform_in = numpy.matrix(transform_in) if transform_in is not None else None
if transform_in is None and transform_out is None:
transform_in = numpy.identity(3)
transform_out = numpy.identity(3)
elif transform_in is None:
try:
transform_in = numpy.linalg.inv(transform_out)
except:
transform_in = None
elif transform_out is None:
try:
transform_out = numpy.linalg.inv(transform_in)
except:
transform_out = None
self.transform_out, self.transform_in = transform_out, transform_in
super().__init__(
mesh,
warp_in=lambda vertex: self.transform_in.dot(vertex).tolist()[0][:3] if self.transform_in else None,
warp_out=lambda vertex: self.transform_out.dot(vertex).tolist()[0][:3] if self.transform_out else None,
)
评论列表
文章目录