solstice-solver

Solver library of the solstice app
git clone git://git.meso-star.com/solstice-solver.git
Log | Files | Refs | README | LICENSE

commit b26f2117222d4821c825127521ee0d183acd48fd
parent 2c69da481ee59a077959b4818632f41e7104da1c
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Fri,  2 Sep 2016 09:36:12 +0200

Make consistent the code style

Diffstat:
Msrc/ssol_scene.c | 2+-
Msrc/ssol_solver.c | 91++++++++++++++++++++++++++++++++++++++-----------------------------------------
Msrc/ssol_solver_c.h | 2+-
3 files changed, 46 insertions(+), 49 deletions(-)

diff --git a/src/ssol_scene.c b/src/ssol_scene.c @@ -290,7 +290,7 @@ hit_filter_function fprintf(rs->data.out_stream, "Receiver '%s': %u %u %g %g (%g:%g:%g) (%g:%g:%g) (%g:%g)\n", receiver_name, - (unsigned)rs->rz_id, + (unsigned)rs->rs_id, (unsigned)rs->s_idx, rs->freq, seg->weight, diff --git a/src/ssol_solver.c b/src/ssol_solver.c @@ -38,8 +38,8 @@ static const char* END_TEXT[] = END_TEXT__; /******************************************************************************* -* Helper functions -******************************************************************************/ + * Helper functions + ******************************************************************************/ static INLINE int is_instance_punched(const struct ssol_object_instance* instance) { @@ -81,7 +81,8 @@ set_sun_distributions(struct solver_data* data) { dev = scene_get_device(data->scene); ASSERT(dev && dev->allocator); /* first set the spectrum distribution */ - res = ssp_ranst_piecewise_linear_create(dev->allocator, &data->sun_spectrum_ran); + res = ssp_ranst_piecewise_linear_create + (dev->allocator, &data->sun_spectrum_ran); if (res != RES_OK) goto error; spectrum = sun->spectrum; frequencies = darray_double_cdata_get(&spectrum->frequencies); @@ -278,7 +279,7 @@ reset_realisation(size_t cpt, struct realisation* rs) rs->s_idx = 0; rs->end = TERM_NONE; rs->mode = MODE_STD; - rs->rz_id = cpt; + rs->rs_id = cpt; rs->success_mask = 0; reset_starting_point(&rs->start); brdf_composite_clear(rs->data.brdfs); @@ -405,7 +406,8 @@ static void sample_wavelength(struct realisation* rs) { ASSERT(rs); - rs->freq = ssp_ranst_piecewise_linear_get(rs->data.sun_spectrum_ran, rs->data.rng); + rs->freq = ssp_ranst_piecewise_linear_get + (rs->data.sun_spectrum_ran, rs->data.rng); } static int @@ -420,11 +422,12 @@ receive_sunlight(struct realisation* rs) f3_set_d3(sundir_f, rs->start.sundir); f3_mulf(seg->dir, sundir_f, -1); CHECK(f3_is_normalized(seg->dir), 1); - /* check normal orientation */ - S3D(primitive_get_attrib(&rs->start.primitive, S3D_GEOMETRY_NORMAL, rs->start.uv, &attrib)); + S3D(primitive_get_attrib + (&rs->start.primitive, S3D_GEOMETRY_NORMAL, rs->start.uv, &attrib)); CHECK(attrib.type, S3D_FLOAT3); /* fill fragment from starting point; must use sundir_f, not seg->dir */ - surface_fragment_setup(&rs->data.fragment, seg->org, sundir_f, attrib.value, &rs->start.primitive, rs->start.uv); + surface_fragment_setup(&rs->data.fragment, seg->org, sundir_f, attrib.value, + &rs->start.primitive, rs->start.uv); /* check normal orientation */ rs->start.cos_sun = d3_dot(rs->data.fragment.Ng, rs->start.sundir); if (rs->start.cos_sun >= 0) @@ -432,7 +435,8 @@ receive_sunlight(struct realisation* rs) /* check occlusion, avoiding self intersect */ seg->hit.prim = rs->start.primitive; /* TODO (in s3d): need an occlusion test */ - S3D(scene_view_trace_ray(rs->data.trace_view, seg->org, seg->dir, seg->range, rs, &seg->hit)); + S3D(scene_view_trace_ray + (rs->data.trace_view, seg->org, seg->dir, seg->range, rs, &seg->hit)); receives = S3D_HIT_NONE(&seg->hit); if (!receives) return receives; @@ -443,7 +447,7 @@ receive_sunlight(struct realisation* rs) fprintf(rs->data.out_stream, "Receiver '%s': %u %u %g %g (%g:%g:%g) (%g:%g:%g) (%g:%g)\n", receiver_name, - (unsigned) rs->rz_id, + (unsigned) rs->rs_id, (unsigned) rs->s_idx, rs->freq, seg->weight, @@ -455,8 +459,8 @@ receive_sunlight(struct realisation* rs) /* register success mask (normal orientation has already been checked) */ rs->success_mask |= object_instance_get_target_mask(rs->start.instance); - /* restaure self intersect information for further visibility test - (previous call to trace_ray overwrote prim) */ + /* restore self intersect information for further visibility test + * (previous call to trace_ray overwrote prim) */ seg->hit.prim = rs->start.primitive; return receives; @@ -480,8 +484,7 @@ set_output_pos_and_dir(struct realisation* rs) { if (fst_segment) { f3_set(seg->org, prev->org); material = rs->start.material; - } - else { + } else { f3_set(seg->org, prev->hit_pos); material = get_material_from_hit(scene, &prev->hit); } @@ -501,8 +504,7 @@ set_output_pos_and_dir(struct realisation* rs) { seg->weight = sun_get_dni(sun) * brdf_composite_sample(rs->data.brdfs, rs->data.rng, sundir_f, tmp, seg->dir) * -rs->start.cos_sun; - } - else { + } else { seg->weight = prev->weight * brdf_composite_sample(rs->data.brdfs, rs->data.rng, prev->dir, tmp, seg->dir); } @@ -516,7 +518,8 @@ propagate(struct realisation* rs) struct ssol_scene* scene = rs->data.scene; /* check if the ray hits something */ - S3D(scene_view_trace_ray(rs->data.trace_view, seg->org, seg->dir, seg->range, rs, &seg->hit)); + S3D(scene_view_trace_ray + (rs->data.trace_view, seg->org, seg->dir, seg->range, rs, &seg->hit)); if (S3D_HIT_NONE(&seg->hit)) { rs->end = TERM_MISSING; return; @@ -528,20 +531,22 @@ propagate(struct realisation* rs) /* offset the impact point and recompute normal if needed */ ASSERT(rs->data.instance); switch (rs->data.instance->object->shape->type) { - case SHAPE_MESH: - /* no postprocess needed */ - break; - case SHAPE_PUNCHED: - /* project the impact point on the quadric */ - FATAL("TODO\n"); - /* compute normal to quadric */ - break; - default: FATAL("Unreachable code\n"); break; + case SHAPE_MESH: + /* no postprocess needed */ + break; + case SHAPE_PUNCHED: + /* project the impact point on the quadric */ + FATAL("TODO\n"); + /* compute normal to quadric */ + break; + default: FATAL("Unreachable code\n"); break; } /* fill fragment from hit and loop */ - f3_set(seg->hit_pos, f3_add(seg->hit_pos, seg->org, f3_mulf(seg->hit_pos, seg->dir, seg->hit.distance))); - surface_fragment_setup(&rs->data.fragment, seg->hit_pos, seg->dir, seg->hit.normal, &seg->hit.prim, seg->hit.uv); + f3_mulf(seg->hit_pos, seg->dir, seg->hit.distance); + f3_add(seg->hit_pos, seg->org, seg->hit_pos); + surface_fragment_setup(&rs->data.fragment, seg->hit_pos, seg->dir, + seg->hit.normal, &seg->hit.prim, seg->hit.uv); } /******************************************************************************* @@ -570,30 +575,21 @@ ssol_solve res = init_realisation(scene, rng, output, &rs); if (res != RES_OK) goto error; - for (r = 0; r < realisations_count; r++) { - /* reset realisation */ + FOR_EACH(r, 0, realisations_count) { reset_realisation(r, &rs); - - /* sample a point on a primary mirror */ sample_point_on_primary_mirror(&rs); - - /* sample an input dir from the sun */ sample_input_sundir(&rs); - - /* sample a frequency */ sample_wavelength(&rs); /* check if the point receives sun light */ if (!receive_sunlight(&rs)) { rs.end = rs.start.cos_sun >= 0 ? TERM_POINTING : TERM_SHADOW; - } - else { + } else { /* start propagating from mirror */ do { if (RES_OK != next_segment(&rs)) { rs.end = TERM_ERR; - } - else { + } else { /* set next segment and propagate */ set_output_pos_and_dir(&rs); propagate(&rs); @@ -602,13 +598,13 @@ ssol_solve } /* propagation ended */ - if (rs.success_mask) - fprintf(output, "Realization %u succeeded: 0x%0x\n", (unsigned)r, rs.success_mask); - else - fprintf(output, "Realization %u failed: %s\n", (unsigned)r, END_TEXT[rs.end]); - - /* next realisation */ - continue; + if (rs.success_mask) { + fprintf(output, "Realization %u succeeded: 0x%0x\n", + (unsigned)r, rs.success_mask); + } else { + fprintf(output, "Realization %u failed: %s\n", + (unsigned)r, END_TEXT[rs.end]); + } } exit: @@ -618,3 +614,4 @@ error: /* TODO: release data */ goto exit; } + diff --git a/src/ssol_solver_c.h b/src/ssol_solver_c.h @@ -104,7 +104,7 @@ struct realisation { struct solver_data data; double freq; size_t s_idx; - size_t rz_id; + size_t rs_id; uint32_t success_mask; };