tem_cylinderCubeOverlap Function

public function tem_cylinderCubeOverlap(cylinder, cube) result(overlap)

This function checks intesection of solid cube and cylinder.

The test is done by projecting each cube vertices on the cylinder axis and check whether the projected point is within the cylinder length. If yes then use the projected point as the origin of sphere and do sphere-cube intersection.

we check for all vertices to find if any of the cube vertices intersect with cylinder check whether cylinder axis intersect by cube if true then no need to check for intersection of each cube vertices on cylinder

Arguments

TypeIntentOptionalAttributesName
type(tem_cylinder_type), intent(in) :: cylinder
type(tem_cube_type), intent(in) :: cube

Return Value logical


Calls

proc~~tem_cylindercubeoverlap~~CallsGraph proc~tem_cylindercubeoverlap tem_cylinderCubeOverlap proc~tem_spherecubeoverlap tem_sphereCubeOverlap proc~tem_cylindercubeoverlap->proc~tem_spherecubeoverlap proc~tem_linecubeoverlap tem_lineCubeOverlap proc~tem_cylindercubeoverlap->proc~tem_linecubeoverlap proc~hollowspherecubeoverlap hollowSphereCubeOverlap proc~tem_spherecubeoverlap->proc~hollowspherecubeoverlap proc~solidspherecubeoverlap solidSphereCubeOverlap proc~tem_spherecubeoverlap->proc~solidspherecubeoverlap proc~raycubeoverlap rayCubeOverlap proc~tem_linecubeoverlap->proc~raycubeoverlap

Called by

proc~~tem_cylindercubeoverlap~~CalledByGraph proc~tem_cylindercubeoverlap tem_cylinderCubeOverlap proc~tem_shape_subtreefromgeominters tem_shape_subTreeFromGeomInters proc~tem_shape_subtreefromgeominters->proc~tem_cylindercubeoverlap proc~tem_create_subtree_of tem_create_subTree_of proc~tem_create_subtree_of->proc~tem_shape_subtreefromgeominters proc~tem_write_debugmesh tem_write_debugMesh proc~tem_write_debugmesh->proc~tem_create_subtree_of program~tem_varsys_test tem_varSys_test program~tem_varsys_test->proc~tem_create_subtree_of proc~tem_init_tracker_subtree tem_init_tracker_subTree proc~tem_init_tracker_subtree->proc~tem_create_subtree_of proc~tem_init_convergence tem_init_convergence proc~tem_init_convergence->proc~tem_create_subtree_of proc~tem_create_subtree_of_st_funlist tem_create_subTree_of_st_funList proc~tem_create_subtree_of_st_funlist->proc~tem_create_subtree_of program~tem_varsys_stfunvar_test tem_varSys_stfunVar_test program~tem_varsys_stfunvar_test->proc~tem_create_subtree_of_st_funlist proc~check_variableoperations check_variableOperations proc~check_variableoperations->proc~tem_create_subtree_of_st_funlist program~tem_variable_evaltype_test tem_variable_evaltype_test program~tem_variable_evaltype_test->proc~tem_create_subtree_of_st_funlist program~tem_variable_extract_test tem_variable_extract_test program~tem_variable_extract_test->proc~tem_create_subtree_of_st_funlist program~tem_variable_combine_test tem_variable_combine_Test program~tem_variable_combine_test->proc~tem_create_subtree_of_st_funlist program~tem_varsys_opvar_test tem_varSys_opVar_test program~tem_varsys_opvar_test->proc~tem_create_subtree_of_st_funlist

Contents


Variables

TypeVisibilityAttributesNameInitial
real(kind=rk), private :: proj
real(kind=rk), private :: cubeVer(15,3)
type(tem_sphere_type), private :: sphere
type(tem_line_type), private :: line
integer, private :: iVer
real(kind=rk), private :: pntIntersect(3)