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 built_from_axis_origin(cls, x_axis=Vector3(), y_axis=Vector3(), z_axis=Vector3(), origin=Vector3()): self._check_param_type("x_axis", x_axis, Vector3) self._check_param_type("y_axis", y_axis, Vector3) self._check_param_type("z_axis", z_axis, Vector3) self._check_param_type("origin", origin, Vector3) ret = Transform() lib.godot_transform_new_with_axis_origin(self._gd_ptr, x_axis._gd_ptr, y_axis._gd_ptr, z._gd_ptr, origin._gd_ptr) return ret
def intersects_ray(self, from_, dir): self._check_param_type('from_', from_, Vector3) self._check_param_type('dir', dir, Vector3) ret = Vector3() if not lib.godot_plane_intersects_ray(self._gd_ptr, ret._gd_ptr, from_._gd_ptr, dir._gd_ptr): return None return ret
def intersects_segment(self, begin, end): self._check_param_type('begin', begin, Vector3) self._check_param_type('end', end, Vector3) ret = Vector3() if not lib.godot_plane_intersects_segment(self._gd_ptr, ret._gd_ptr, begin._gd_ptr, end._gd_ptr): return None return ret
def intersect_3(self, b, c): self._check_param_type('b', b, Plane) self._check_param_type('c', c, Plane) ret = Vector3() if not lib.godot_plane_intersect_3(self._gd_ptr, ret._gd_ptr, b._gd_ptr, c._gd_ptr): return None return ret
def xform(self, v): if isinstance(v, Vector3): raw = lib.godot_transform_xform_vector3(self._gd_ptr, v._gd_ptr) return Vector3.build_from_gdobj(raw) elif isinstance(v, AABB): raw = lib.godot_transform_xform_aabb(self._gd_ptr, v._gd_ptr) return AABB.build_from_gdobj(raw) elif isinstance(v, Plane): raw = lib.godot_transform_xform_plane(self._gd_ptr, v._gd_ptr) return Plane.build_from_gdobj(raw) raise TypeError( 'Param `v` should be of type `Plane`, `AABB` or `Vector3`')
def origin(self): raw = lib.godot_transform_get_origin(self._gd_ptr) return Vector3.build_from_gdobj(raw)
def __init__(self, position=Vector3(), size=Vector3()): self._check_param_type('position', position, Vector3) self._check_param_type('size', size, Vector3) self._gd_ptr = godot_aabb_alloc() lib.godot_aabb_new(self._gd_ptr, position._gd_ptr, size._gd_ptr)
def z(self): return Vector3.build_from_gdobj( lib.godot_basis_get_axis(self._gd_ptr, self.AXIS_Z))
def xform(self, v): self._check_param_type('v', v, Vector3) ret = Vector3() ret._gd_ptr[0] = lib.godot_quat_xform(self._gd_ptr, v._gd_ptr) return ret
def get_shortest_axis(self): raw = lib.godot_aabb_get_shortest_axis(self._gd_ptr) return Vector3.build_from_gdobj(raw)
def project(self, point): self._check_param_type('point', point, Vector3) raw = lib.godot_plane_project(self._gd_ptr, point._gd_ptr) return Vector3.build_from_gdobj(raw)
def __init__(self, basis=Basis(), origin=Vector3()): self._check_param_type("basis", basis, Basis) self._check_param_type("origin", origin, Vector3) self._gd_ptr = godot_transform_alloc() lib.godot_transform_new(self._gd_ptr, basis._gd_ptr, origin._gd_ptr)
def get_support(self, dir): raw = lib.godot_aabb_get_support(self._gd_ptr, dir._gd_ptr) return Vector3.build_from_gdobj(raw)
def center(self): raw = lib.godot_plane_center(self._gd_ptr) return Vector3.build_from_gdobj(raw)
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 get_endpoint(self, idx): raw = lib.godot_aabb_get_endpoint(self._gd_ptr, idx) return Vector3.build_from_gdobj(raw)
def xform_inv(self, vect): self._check_param_type('vect', vect, Vector3) gd_obj = lib.godot_basis_xform_inv(self._gd_ptr, vect._gd_ptr) return Vector3.build_from_gdobj(gd_obj)
def get_scale(self): gd_obj = lib.godot_basis_get_scale(self._gd_ptr) return Vector3.build_from_gdobj(gd_obj)
def normal(self): return Vector3.build_from_gdobj( lib.godot_plane_get_normal(self._gd_ptr))
def position(self): return Vector3.build_from_gdobj(lib.godot_aabb_get_position(self._gd_ptr))
def get_any_point(self): raw = lib.godot_plane_get_any_point(self._gd_ptr) return Vector3.build_from_gdobj(raw)
def size(self): return Vector3.build_from_gdobj(lib.godot_aabb_get_size(self._gd_ptr))