This routine loads STL files from config and reads the triangles from the files into the dynamic array of triangles.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_stlData_type), | intent(out) | :: | stl_data |
Array array of triangles in stlData |
||
type(tem_transformation_type), | intent(in) | :: | transform |
transformation for spatial object |
||
type(flu_State) | :: | conf |
Lua state |
|||
integer, | intent(in) | :: | thandle |
subroutine tem_load_stl(stl_data, transform, conf, thandle) ! --------------------------------------------------------------------------! !> Array array of triangles in stlData type(tem_stlData_type), intent(out) :: stl_data !> transformation for spatial object type(tem_transformation_type), intent(in) :: transform !> Lua state type(flu_state) :: conf integer, intent(in) :: thandle !< handle for canonical objects ! --------------------------------------------------------------------------! integer :: iTri, iVer ! --------------------------------------------------------------------------! ! Load stl files from config file. call tem_load_stlhead(me = stl_data%head, conf = conf, thandle = thandle) ! Load triangles and nodes from stl files. call tem_read_stlFiles(stl_data = stl_data ) ! if transformation is active apply transformation to all triangles ! first apply deformation and then translation if(transform%active) then if(transform%deform%active) then do iTri=1, stl_data%nTris do iVer=1,3 stl_data%nodes(:, stl_data%tri_node(iVer, iTri)) = & & matmul( transform%deform%matrix, & & stl_data%nodes(:, stl_data%tri_node(iVer, iTri)) ) enddo enddo endif if(transform%translate%active) then do iTri=1, stl_data%nTris do iVer=1,3 stl_data%nodes(:, stl_data%tri_node(iVer, iTri)) = & & transform%translate%vec + & & stl_data%nodes(:, stl_data%tri_node(iVer, iTri)) enddo enddo endif endif end subroutine tem_load_stl