tem_boxCubeOverlap Function

public function tem_boxCubeOverlap(box, cube) result(overlap)

This function checks for intersection of box and cube

Currently support only axis aligned box @note Todo implemented oriented box - cube overlap

Arguments

Type IntentOptional Attributes Name
type(tem_box_type), intent(in) :: box
type(tem_cube_type), intent(in) :: cube

Return Value logical


Source Code

  function tem_boxCubeOverlap( box, cube ) result(overlap)
    type(tem_box_type), intent(in) :: box
    type(tem_cube_type), intent(in) :: cube
    logical :: overlap
    integer :: iPlane

    if (box%only_surface) then
      overlap = .false.
      do iPlane = 1, 6
        overlap = overlap .or. tem_planeCubeOverlap( box%plane(iPlane), cube)
      end do
    else
      overlap = boxBoxOverlap( cube%center, &
        &                      [cube%halfwidth, &
        &                       cube%halfwidth, &
        &                       cube%halfwidth], &
        &                      box%center,  &
        &                      [box%halfwidth(1), &
        &                       box%halfwidth(2), &
        &                       box%halfwidth(3)], &
        &                      box%normal)
    end if

  end function tem_boxCubeOverlap