transition_corners Subroutine

public subroutine transition_corners(edge_from, edge_to, x_min, x_max, y_min, y_max, z_plane, corners, n_corner)

辺遷移時に通過するコーナー列(最大3点)を返す。

Arguments

Type IntentOptional Attributes Name
integer(kind=i32), intent(in) :: edge_from
integer(kind=i32), intent(in) :: edge_to
real(kind=dp), intent(in) :: x_min
real(kind=dp), intent(in) :: x_max
real(kind=dp), intent(in) :: y_min
real(kind=dp), intent(in) :: y_max
real(kind=dp), intent(in) :: z_plane
real(kind=dp), intent(out) :: corners(3,3)
integer(kind=i32), intent(out) :: n_corner

Calls

proc~~transition_corners~~CallsGraph proc~transition_corners transition_corners proc~corner_between corner_between proc~transition_corners->proc~corner_between proc~edge_next_ccw edge_next_ccw proc~transition_corners->proc~edge_next_ccw proc~transition_corner_count transition_corner_count proc~transition_corners->proc~transition_corner_count proc~edge_order_index edge_order_index proc~transition_corner_count->proc~edge_order_index

Called by

proc~~transition_corners~~CalledByGraph proc~transition_corners transition_corners proc~make_plate_hole make_plate_hole proc~make_plate_hole->proc~transition_corners proc~build_one_template build_one_template proc~build_one_template->proc~make_plate_hole proc~build_template_mesh build_template_mesh proc~build_template_mesh->proc~build_one_template proc~build_mesh_from_config build_mesh_from_config proc~build_mesh_from_config->proc~build_template_mesh proc~load_or_init_run_state load_or_init_run_state proc~load_or_init_run_state->proc~build_mesh_from_config program~main main program~main->proc~load_or_init_run_state

Source Code

  subroutine transition_corners(edge_from, edge_to, x_min, x_max, y_min, y_max, z_plane, corners, n_corner)
    integer(i32), intent(in) :: edge_from, edge_to
    real(dp), intent(in) :: x_min, x_max, y_min, y_max, z_plane
    real(dp), intent(out) :: corners(3, 3)
    integer(i32), intent(out) :: n_corner
    integer(i32) :: k, edge_curr, edge_next

    corners = 0.0d0
    n_corner = transition_corner_count(edge_from, edge_to)
    edge_curr = edge_from
    do k = 1, n_corner
      edge_next = edge_next_ccw(edge_curr)
      call corner_between(edge_curr, edge_next, x_min, x_max, y_min, y_max, z_plane, corners(:, k))
      edge_curr = edge_next
    end do
  end subroutine transition_corners