def core_vec(*args): if isinstance(args[0], _ti_core.Vector2f): return args[0] if isinstance(args[0], _ti_core.Vector3f): return args[0] if isinstance(args[0], _ti_core.Vector4f): return args[0] if isinstance(args[0], _ti_core.Vector2d): return args[0] if isinstance(args[0], _ti_core.Vector3d): return args[0] if isinstance(args[0], _ti_core.Vector4d): return args[0] if isinstance(args[0], tuple): args = tuple(*args) if _ti_core.get_default_float_size() == 4: if len(args) == 2: return _ti_core.Vector2f(float(args[0]), float(args[1])) if len(args) == 3: return _ti_core.Vector3f(float(args[0]), float(args[1]), float(args[2])) if len(args) == 4: return _ti_core.Vector4f(float(args[0]), float(args[1]), float(args[2]), float(args[3])) assert False, type(args[0]) else: if len(args) == 2: return _ti_core.Vector2d(float(args[0]), float(args[1])) if len(args) == 3: return _ti_core.Vector3d(float(args[0]), float(args[1]), float(args[2])) if len(args) == 4: return _ti_core.Vector4d(float(args[0]), float(args[1]), float(args[2]), float(args[3])) assert False, type(args[0])
def vec(*args): from taichi.core import ti_core if isinstance(args[0], ti_core.Vector2f): return args[0] if isinstance(args[0], ti_core.Vector3f): return args[0] if isinstance(args[0], ti_core.Vector4f): return args[0] if isinstance(args[0], ti_core.Vector2d): return args[0] if isinstance(args[0], ti_core.Vector3d): return args[0] if isinstance(args[0], ti_core.Vector4d): return args[0] if isinstance(args[0], tuple): args = tuple(*args) if ti_core.get_default_float_size() == 4: if len(args) == 2: return ti_core.Vector2f(float(args[0]), float(args[1])) elif len(args) == 3: return ti_core.Vector3f(float(args[0]), float(args[1]), float(args[2])) elif len(args) == 4: return ti_core.Vector4f(float(args[0]), float(args[1]), float(args[2]), float(args[3])) else: assert False, type(args[0]) else: if len(args) == 2: return ti_core.Vector2d(float(args[0]), float(args[1])) elif len(args) == 3: return ti_core.Vector3d(float(args[0]), float(args[1]), float(args[2])) elif len(args) == 4: return ti_core.Vector4d(float(args[0]), float(args[1]), float(args[2]), float(args[3])) else: assert False, type(args[0])