| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Abstract_Floor_Penetration), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | overlap | |||
| real(kind=DP), | intent(out) | :: | shortest_vector_from_floor(num_dimensions) | |||
| real(kind=DP), | intent(in) | :: | position_from_floor(num_dimensions) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Abstract_Floor_Penetration), | intent(in) | :: | this |
| procedure(Abstract_get_height), public :: get_height | |
| procedure(Abstract_meet), public :: meet |
| procedure, public :: get_height => Flat_get_height | |
| procedure, public :: meet => Flat_meet |
This is a flat floor with a rounded block at the center, cf. modules/environment/walls/centered_block_penetration.tex which shows the right half. When using Block_meet, if a position is in a blue area, shortestVectorFromFloor's origin will be on a rounder corner. Otherwise (i.e. white area), it will be on a flat portion.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=DP), | private, | dimension(2) | :: | size | = | 0._DP | |
| real(kind=DP), | private | :: | radius | = | 0._DP | ||
| real(kind=DP), | private, | dimension(2) | :: | lower_in | = | 0._DP | |
| real(kind=DP), | private, | dimension(2) | :: | lower_out | = | 0._DP | |
| real(kind=DP), | private, | dimension(2) | :: | upper_in | = | 0._DP | |
| real(kind=DP), | private, | dimension(2) | :: | upper_out | = | 0._DP |
| procedure, public :: set => Block_set | |
| procedure, public :: get_height => Block_get_height | |
| procedure, public :: meet => Block_meet |
| procedure, public :: get_height => Null_get_height | |
| procedure, public :: meet => Null_meet |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Flat_Floor_Penetration), | intent(in) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Centered_Block_Penetration), | intent(in) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Null_Floor_Penetration), | intent(in) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Flat_Floor_Penetration), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | overlap | |||
| real(kind=DP), | intent(out) | :: | shortest_vector_from_floor(num_dimensions) | |||
| real(kind=DP), | intent(in) | :: | position_from_floor(num_dimensions) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Centered_Block_Penetration), | intent(out) | :: | this | |||
| real(kind=DP), | intent(in) | :: | size(:) | |||
| real(kind=DP), | intent(in) | :: | radius |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Centered_Block_Penetration), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | overlap | |||
| real(kind=DP), | intent(out) | :: | shortest_vector_from_floor(num_dimensions) | |||
| real(kind=DP), | intent(in) | :: | position_from_floor(num_dimensions) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Null_Floor_Penetration), | intent(in) | :: | this | |||
| logical, | intent(out) | :: | overlap | |||
| real(kind=DP), | intent(out) | :: | shortest_vector_from_floor(num_dimensions) | |||
| real(kind=DP), | intent(in) | :: | position_from_floor(num_dimensions) |