This type contains origin and vec of box in each direction
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=rk), | public | :: | center(3) |
center of the box |
|||
real(kind=rk), | public | :: | halfvec(3,3) |
vector which defines length of the box in x,y,z direction 1st dimension contains x,y,z coord and 2nd dimension defines three direction of vector. This vector is need to do transformation of box |
|||
real(kind=rk), | public | :: | halfwidth(3) |
halfwidth of the box from center in each direction. It is computed from halfvec during initialization since it is needed for boxboxoverlap |
|||
real(kind=rk), | public | :: | normal(3,3) |
unit normal vectors which defines the box orientation. It is computed from halfvec during initialization |
|||
logical, | public | :: | only_surface |
To choose what to do with intersection of box if only_surface = true than the only the surface of the object is intersected if only_surface = false then the whole object is intersected default is set to false |
|||
type(tem_plane_type), | public | :: | plane(6) |
For only_surface, box is converted into 6 planes and each plane is converted further into triangles |
type tem_box_type
!> center of the box
real(kind=rk) :: center(3)
!> vector which defines length of the box in x,y,z direction
!! 1st dimension contains x,y,z coord and
!! 2nd dimension defines three direction of vector.
!! This vector is need to do transformation of box
real(kind=rk) :: halfvec(3,3)
!> halfwidth of the box from center in each direction.
!! It is computed from halfvec during initialization
!! since it is needed for boxboxoverlap
real(kind=rk) :: halfwidth(3)
!> unit normal vectors which defines the box orientation.
!! It is computed from halfvec during initialization
real(kind=rk) :: normal(3,3)
!> To choose what to do with intersection of box
!! if only_surface = true than the only the surface of the object
!! is intersected
!! if only_surface = false then the whole object is intersected
!! default is set to false
logical :: only_surface
!> For only_surface, box is converted into 6 planes and each
!! plane is converted further into triangles
type(tem_plane_type) :: plane(6)
end type tem_box_type