stardis-solver

Solve coupled heat transfers
git clone git://git.meso-star.fr/stardis-solver.git
Log | Files | Refs | README | LICENSE

commit aa7b411796d3d8e75868d115b9e20498530b6b7b
parent 7353b1eef7c70bd5852065573b0f57880e1f2ce0
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Thu, 20 Jun 2024 11:09:25 +0200

Add and test getters on 2D/3D scene view

Diffstat:
Msrc/sdis.h | 16++++++++++++++--
Msrc/sdis_scene.c | 22++++++++++++++++++++++
Msrc/test_sdis_scene.c | 16++++++++++++++++
3 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/src/sdis.h b/src/sdis.h @@ -1362,18 +1362,30 @@ sdis_scene_boundary_project_position const double pos[], double uv[]); -/* Get the 2D scene's enclosures. Only defined for a 2D scene. */ +/* Get Star-Enclosure-2D scene. Defined on 2D scene only */ SDIS_API res_T sdis_scene_get_senc2d_scene (struct sdis_scene* scn, struct senc2d_scene** senc2d_scn); -/* Get the 3D scene's enclosures. Only defined for a 3D scene. */ +/* Get Star-Enclosure-3D scene. Defined on 3D scene only */ SDIS_API res_T sdis_scene_get_senc3d_scene (struct sdis_scene* scn, struct senc3d_scene** senc3d_scn); +/* Get Star-2D scene view. Defined on 2D scene only */ +SDIS_API res_T +sdis_scene_get_s2d_scene_view + (struct sdis_scene* scn, + struct s2d_scene_view** s2d_view); + +/* Get Star-3D scene view. Defined on 3D scene only */ +SDIS_API res_T +sdis_scene_get_s3d_scene_view + (struct sdis_scene* scn, + struct s3d_scene_view** s3d_view); + SDIS_API res_T sdis_scene_get_dimension (const struct sdis_scene* scn, diff --git a/src/sdis_scene.c b/src/sdis_scene.c @@ -350,6 +350,28 @@ sdis_scene_get_senc3d_scene } res_T +sdis_scene_get_s2d_scene_view + (struct sdis_scene* scn, + struct s2d_scene_view** s2d_view) +{ + if(!scn || !s2d_view) return RES_BAD_ARG; + if(!scn->s2d_view) return RES_BAD_ARG; /* Scene is 3D */ + *s2d_view = scn->s2d_view; + return RES_OK; +} + +res_T +sdis_scene_get_s3d_scene_view + (struct sdis_scene* scn, + struct s3d_scene_view** s3d_view) +{ + if(!scn || !s3d_view) return RES_BAD_ARG; + if(!scn->s3d_view) return RES_BAD_ARG; /* Scene is 2D */ + *s3d_view = scn->s3d_view; + return RES_OK; +} + +res_T sdis_scene_get_dimension (const struct sdis_scene* scn, enum sdis_scene_dimension* dim) { diff --git a/src/test_sdis_scene.c b/src/test_sdis_scene.c @@ -100,6 +100,8 @@ test_scene_3d struct context ctx; struct senc2d_scene* scn2d; struct senc3d_scene* scn3d; + struct s2d_scene_view* view2d; + struct s3d_scene_view* view3d; struct sdis_scene_create_args scn_args = SDIS_SCENE_CREATE_ARGS_DEFAULT; struct sdis_scene_find_closest_point_args closest_pt_args = SDIS_SCENE_FIND_CLOSEST_POINT_ARGS_NULL; @@ -268,6 +270,12 @@ test_scene_3d OK(sdis_scene_get_senc3d_scene(scn, &scn3d)); BA(sdis_scene_get_senc2d_scene(scn, &scn2d)); /* No 2D available */ + BA(sdis_scene_get_s3d_scene_view(NULL, NULL)); + BA(sdis_scene_get_s3d_scene_view(NULL, &view3d)); + BA(sdis_scene_get_s3d_scene_view(scn, NULL)); + OK(sdis_scene_get_s3d_scene_view(scn, &view3d)); + BA(sdis_scene_get_s2d_scene_view(scn, &view2d)); /* No 2D available */ + BA(sdis_scene_get_radiative_env(NULL, &radenv)); BA(sdis_scene_get_radiative_env(scn, NULL)); OK(sdis_scene_get_radiative_env(scn, &radenv)); @@ -309,6 +317,8 @@ test_scene_2d struct context ctx; struct senc2d_scene* scn2d; struct senc3d_scene* scn3d; + struct s2d_scene_view* view2d; + struct s3d_scene_view* view3d; size_t nsegs, npos; size_t i; size_t iprim; @@ -502,6 +512,12 @@ test_scene_2d OK(sdis_scene_get_senc2d_scene(scn, &scn2d)); BA(sdis_scene_get_senc3d_scene(scn, &scn3d)); /* No 3D available */ + BA(sdis_scene_get_s2d_scene_view(NULL, NULL)); + BA(sdis_scene_get_s2d_scene_view(NULL, &view2d)); + BA(sdis_scene_get_s2d_scene_view(scn, NULL)); + OK(sdis_scene_get_s2d_scene_view(scn, &view2d)); + BA(sdis_scene_get_s3d_scene_view(scn, &view3d)); /* No 3D available */ + BA(sdis_scene_get_radiative_env(NULL, NULL)); BA(sdis_scene_get_radiative_env(scn, NULL)); BA(sdis_scene_get_radiative_env(NULL, &radenv));