evaluate_torus Function

private pure elemental function evaluate_torus(this, pos) result(res)

Evaluation function for Torus SDF.

Type Bound

torus

Arguments

Type IntentOptional Attributes Name
class(torus), intent(in) :: this
type(vector), intent(in) :: pos

vector position to evaluate SDF at

Return Value real(kind=wp)


Source Code

    pure elemental function evaluate_torus(this, pos) result(res)
        !! Evaluation function for Torus SDF.

        class(torus), intent(in) :: this
        !> vector position to evaluate SDF at
        type(vector), intent(in) :: pos

        real(kind=wp) :: res

        type(vector) :: p, q

        p = pos .dot. this%transform
        q = vector(length(vector(p%x, 0._wp, p%z)) - this%oradius, p%y, 0._wp)
        res = length(q) - this%iradius

    end function evaluate_torus