Пример #1
0
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])
Пример #2
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])