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