This routine apply transformation to canonical objects.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_canonicalND_type), | intent(inout) | :: | canoND |
canonical geometry object type |
||
type(tem_transformation_type), | intent(in) | :: | transform |
transformation for spatial object |
subroutine transformCanoND_single(canoND, transform)
!--------------------------------------------------------------------------!
!> canonical geometry object type
type( tem_canonicalND_type ), intent(inout) :: canoND
!> transformation for spatial object
type(tem_transformation_type), intent(in) :: transform
!--------------------------------------------------------------------------!
integer :: iVec
!--------------------------------------------------------------------------!
if(transform%active) then
if(transform%deform%active) then
canoND%origin = matmul( transform%deform%matrix, &
& canoND%origin )
do iVec=1,canoND%nDim
canoND%vec(:,iVec) = matmul( transform%deform%matrix, &
& canoND%vec(:,iVec) )
enddo
endif
if(transform%translate%active) then
canoND%origin = transform%translate%vec + canoND%origin
endif
endif
end subroutine transformCanoND_single