22 std::unique_ptr<lpart>
part;
32 static_assert(std::is_base_of<lpart, T>::value,
33 "T must be derived from lpart.");
34 this->part =
part.clone();
A part in a lseq. It contains both data and methods relative to a single part.
Definition: lseq_part.h:19
void compute_semi_diameter()
Compute the part semi-diameter from the saved ray states.
Definition: lseq_part.cpp:13
bool save_rays
Whether to save ray states when tracing.
Definition: lseq_part.h:27
void trace(ray_pack &ray_buns)
Apply raytracing of the part to a ray_pack.
Definition: lseq_part.cpp:3
std::unique_ptr< lpart > part
A copy of the underlying lpart.
Definition: lseq_part.h:22
lseq_part(const T &part)
Constructor.
Definition: lseq_part.h:31
void compute_propagation_direction()
Compute the lseq_part_propagation_direction.
Definition: lseq_part.cpp:51
ray_pack rays_to_global(const ray_pack &local_rays)
Convert a ray_pack in the part's LCS to a ray_pack in global coordinates.
Definition: lseq_part.cpp:28
type_map< lseq_part_result > results
Results table.
Definition: lseq_part.h:24
void compute_global_rays()
Convert the lseq_part_rays to lseq_part_global_rays.
Definition: lseq_part.cpp:45
std::vector< bun > ray_pack
Vector of ray bundles.
Definition: ray_pack.h:12