5 #include <boost/serialization/base_object.hpp>
6 #include <boost/serialization/shared_ptr.hpp>
16 friend class boost::serialization::access;
17 template<
class Archive>
18 void serialize(Archive &ar,
const unsigned int version)
34 static const double eps;
41 std::vector<double>
X;
45 std::vector<double>
Y;
49 std::vector<double>
Z;
53 std::vector<double>
G;
67 virtual ~
LadLut() =
default;
80 {
return computeSigma(padBVTotal, direction.x, direction.y, direction.z);}
95 double computeSigma(
double padBVTotal,
double x,
double y,
double z);
101 {
return interpolate(direction.x, direction.y, direction.z);}
152 double a,
double b,
double c,
153 double &x,
double &y,
double &z
166 double a,
double b,
double c,
167 double &x,
double &y,
double &z
187 double wx,
double wy,
double wz,
188 size_t &uIdx,
double &ux,
double &uy,
double &uz,
189 size_t &vIdx,
double &vx,
double &vy,
double &vz,
Leaf Angle Distribution Look-Up Table.
Definition: LadLut.h:13
std::vector< double > Y
Y component of normalized director vector for each record.
Definition: LadLut.h:45
std::vector< double > G
Function evaluation for each record.
Definition: LadLut.h:53
double computeSigma(double padBVTotal, glm::dvec3 direction)
Definition: LadLut.h:79
double interpolate(glm::dvec3 direction)
Definition: LadLut.h:100
void findEnvelopmentDirections(double wx, double wy, double wz, size_t &uIdx, double &ux, double &uy, double &uz, size_t &vIdx, double &vx, double &vy, double &vz, double &a, double &b)
Find the vector immediately after ( ) and the one immediately before ( )
Definition: LadLut.cpp:94
void computeAngles()
Compute angles.
Definition: LadLut.cpp:20
std::vector< double > angles
The angle for each director vector with respect to .
Definition: LadLut.h:58
std::vector< double > X
X component of normalized director vector for each record.
Definition: LadLut.h:41
void transformToLadLutDomain(double a, double b, double c, double &x, double &y, double &z)
Transform a vector from standard domain to a vector in LadLut domain.
Definition: LadLut.cpp:65
LadLut()=default
LadLut default constructor.
static const double eps
Used to consider decimal precision. Two values will be treated as equal when the difference between t...
Definition: LadLut.h:34
void fastTransformToLadLutDomain(double a, double b, double c, double &x, double &y, double &z)
Fast verision of transformToLadLutDomain function.
Definition: LadLut.cpp:85
std::vector< double > Z
Z component of normalized director vector for each record.
Definition: LadLut.h:49