def new_uninitialized_gdobj(gdtype): # TODO: use dict to optimize this ? # It seems Godot encode Variant as type nil... if gdtype == lib.GODOT_VARIANT_TYPE_NIL: return godot_variant_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_BOOL: return godot_bool_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_INT: return godot_int_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_REAL: return godot_real_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_STRING: return godot_string_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_VECTOR2: return godot_vector2_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_RECT2: return godot_rect2_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_VECTOR3: return godot_vector3_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_TRANSFORM2D: return godot_transform2d_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_PLANE: return godot_plane_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_QUAT: return godot_quat_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_AABB: return godot_aabb_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_BASIS: return godot_basis_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_TRANSFORM: return godot_transform_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_COLOR: return godot_color_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_NODE_PATH: return godot_node_path_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_RID: return godot_rid_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_OBJECT: return godot_object_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_DICTIONARY: return godot_dictionary_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_ARRAY: return godot_array_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_POOL_BYTE_ARRAY: return godot_pool_byte_array_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_POOL_INT_ARRAY: return godot_pool_int_array_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_POOL_REAL_ARRAY: return godot_pool_real_array_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_POOL_STRING_ARRAY: return godot_pool_string_array_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_POOL_VECTOR2_ARRAY: return godot_pool_vector2_array_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_POOL_VECTOR3_ARRAY: return godot_pool_vector3_array_alloc() elif gdtype == lib.GODOT_VARIANT_TYPE_POOL_COLOR_ARRAY: return godot_pool_color_array_alloc() else: raise TypeError( "Unknown Variant type `%s` (this should never happen !)" % gdtype)
def build_from_reals(cls, a=0, b=0, c=0, d=0): cls._check_param_float('a', a) cls._check_param_float('b', b) cls._check_param_float('c', c) cls._check_param_float('d', d) gd_ptr = godot_plane_alloc() lib.godot_plane_new_with_reals(gd_ptr, a, b, c, d) return cls.build_from_gdobj(gd_ptr, steal=True)
def build_from_vectors(cls, v1=Vector3(), v2=Vector3(), v3=Vector3()): cls._check_param_type('v1', v1, Vector3) cls._check_param_type('v2', v2, Vector3) cls._check_param_type('v3', v3, Vector3) gd_ptr = godot_plane_alloc() lib.godot_plane_new_with_vectors(gd_ptr, v1._gd_ptr, v2._gd_ptr, v3._gd_ptr) return cls.build_from_gdobj(gd_ptr, steal=True)
def __init__(self, normal=Vector3(), d=0.0): self._check_param_type('normal', normal, Vector3) self._check_param_float('d', d) self._gd_ptr = godot_plane_alloc() lib.godot_plane_new_with_normal(self._gd_ptr, normal._gd_ptr, d)
def _copy_gdobj(gdobj): return godot_plane_alloc(gdobj[0])