tem_size_stlb Subroutine

public subroutine tem_size_stlb(filename, nNodes, nTris)

This subroutine reads the number of nodes and triangles from a given binary stl file.

Arguments

Type IntentOptional Attributes Name
character(len=PathLen), intent(in) :: filename

name of the binary stl file

integer, intent(out) :: nNodes

number of nodes in the file

integer, intent(out) :: nTris

number of triangles in the file


Source Code

  subroutine tem_size_stlb( filename, nNodes, nTris )
    ! --------------------------------------------------------------------------
    !> name of the binary stl file
    character(len=PathLen),intent(in) :: filename
    !> number of nodes in the file
    integer,intent(out) :: nNodes
    !> number of triangles in the file
    integer,intent(out) :: nTris
    ! --------------------------------------------------------------------------
    character(len=LabelLen) :: header
    integer :: stlUnit
    logical :: file_exists
    ! --------------------------------------------------------------------------

    inquire(file = trim(filename), exist = file_exists)
    if (.not. file_exists) then
      write(logUnit(0),*) trim(filename)//" file was not found. Dying..."
      call tem_abort()
    endif

    call tem_open( newunit = stlUnit,        &
      &            file    = trim(filename), &
      &            access  = 'stream',       &
      &            action  = 'read',         &
      &            status  = 'old'           )

    read(stlUnit) header
    read(stlUnit) nTris
    nNodes = nTris * 3

    close(stlUnit)

  end subroutine tem_size_stlb