Evaluation function for Torus SDF.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(torus), | intent(in) | :: | this | |||
type(vector), | intent(in) | :: | pos |
vector position to evaluate SDF at |
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