load_from_file Subroutine

private subroutine load_from_file(self, file_name, is_ascii, guess_format, disable_analysis)

Load from file.

Arguments

Type IntentOptional AttributesName
class(file_stl_object), intent(inout) :: self

File STL.

character(len=*), intent(in), optional :: file_name

File name.

logical, intent(in), optional :: is_ascii

Sentinel to check if file is ASCII.

logical, intent(in), optional :: guess_format

Sentinel to try to guess format directly from file.

logical, intent(in), optional :: disable_analysis

Sentinel to disable STL analysis.


Source Code


Source Code

   subroutine load_from_file(self, file_name, is_ascii, guess_format, disable_analysis)
   !< Load from file.
   class(file_stl_object), intent(inout)        :: self              !< File STL.
   character(*),           intent(in), optional :: file_name         !< File name.
   logical,                intent(in), optional :: is_ascii          !< Sentinel to check if file is ASCII.
   logical,                intent(in), optional :: guess_format      !< Sentinel to try to guess format directly from file.
   logical,                intent(in), optional :: disable_analysis  !< Sentinel to disable STL analysis.
   logical                                      :: disable_analysis_ !< Sentinel to disable STL analysis, local variable.
   integer(I4P)                                 :: f                 !< Counter.

   disable_analysis_ = .false. ; if (present(disable_analysis)) disable_analysis_ = disable_analysis
   call self%initialize(skip_destroy=.true., file_name=file_name, is_ascii=is_ascii)
   call self%open_file(file_action='read', guess_format=guess_format)
   call self%load_facets_number_from_file
   call self%allocate_facets
   call self%load_header_from_file
   if (self%is_ascii) then
      do f=1, self%facets_number
         call self%facet(f)%load_from_file_ascii(file_unit=self%file_unit)
         self%facet(f)%id = f
      enddo
   else
      do f=1, self%facets_number
         self%facet(f)%id = f
         call self%facet(f)%load_from_file_binary(file_unit=self%file_unit)
      enddo
   endif
   call self%close_file
   if (.not.disable_analysis_) call self%analize
   endsubroutine load_from_file


aabb_assign_aabb aabb_node_assign_aabb_node aabb_tree_assign_aabb_tree add_facets add_facets add_vertex_occurrence allocate_facets analize bmax bmin build_connectivity check_normal check_vertices_occurrencies cli_parse cli_parse cli_parse cli_parse cli_parse cli_parse close_file closest_point closest_point compute_bb_from_facets compute_metrix compute_metrix compute_normal compute_normals compute_octants compute_octants compute_volume create_aabb_tree destroy destroy destroy destroy destroy distance distance distance distance distance distance_from_facets distance_from_facets do_ray_intersect do_ray_intersect do_ray_intersect edge_connection_in_other_ref facet_assign_facet file_stl_assign_file_stl first_child_node first_node flip_edge has_facets has_facets initialize initialize initialize initialize initialize is_allocated is_inside is_point_inside_polyhedron_ri is_point_inside_polyhedron_sa load_facets_number_from_file load_from_file load_from_file_ascii load_from_file_binary load_header_from_file make_normal_consistent mirror_by_matrix mirror_by_matrix mirror_by_normal mirror_by_normal nodes_number nodes_number_at_level open_file parent_node ray_intersections_number ray_intersections_number ray_intersections_number resize resize reverse_normal reverse_normals rotate_by_axis_angle rotate_by_axis_angle rotate_by_matrix rotate_by_matrix sanitize_normals save_facets_into_file_stl save_facets_into_file_stl save_geometry_tecplot_ascii save_geometry_tecplot_ascii save_geometry_tecplot_ascii save_header_into_file save_into_file save_into_file_ascii save_into_file_binary save_into_file_stl save_trailer_into_file solid_angle statistics tetrahedron_volume translate translate update_connectivity update_extents update_extents vertex vertex_global_id