// Copyright (c) 2023 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #include "SphereCollider.hpp" using namespace Dawn; SphereCollider::SphereCollider(std::weak_ptr item) : Collider3D(item) { } enum Collider3DType SphereCollider::getColliderType() { return COLLIDER3D_TYPE_SPHERE; } bool_t SphereCollider::performRaycast( struct Collider3DRayResult *result, struct Ray3D ray ) { assertNotNull(result, "SphereCollider::performRaycast: Result cannot be null"); return raytestSphere( ray, { .center = item.lock()->getLocalPosition(), .radius = this->radius }, &result->point, &result->normal, &result->distance ); }