31 : _useSol(true), _useReflex(false), _propaCond(0), _interference(false), _paramH(10.0)
41 _useSol = config->UseRealGround;
47 double pression = config->AtmosPressure;
48 double temperature = config->AtmosTemperature;
49 double hygrometrie = config->AtmosHygrometry;
52 std::unique_ptr<AtmosphericConditions>(
new AtmosphericConditions(pression, temperature, hygrometrie));
71 pt3._x = (pt1._y - pt2._y) * (pt3._y - pt1._y) / (pt2._x - pt1._x) + (pt1._x);
78 pt3._y = (pt2._x - pt1._x) * (pt3._x - pt1._x) / (pt1._y - pt2._y) + (pt1._y);
85 pt3._x = (pt1._y - pt2._y) * (pt3._y - pt1._y) / (pt2._x - pt1._x) + (pt1._x);
89 return OPlan{pt1, pt2, pt3};
104 Ray ray1(start,
vec3(0., 0., -1.));
106 std::list<Intersection> LI;
109 assert(distance1 > 0.);
112 unsigned int indexFace = LI.begin()->p->getPrimitiveId();
120 Ray ray(start,
vec3(0, 0, -1));
122 std::list<Intersection> LI2;
125 if (LI2.empty() || distance < 0.)
127 distance1 += distance;
128 indexFace = LI2.begin()->p->getPrimitiveId();
136 Ray ray2(start,
vec3(0., 0., -1.));
140 assert(distance2 > 0.);
143 indexFace = LI.begin()->p->getPrimitiveId();
151 Ray ray(start,
vec3(0, 0, -1));
153 std::list<Intersection> LI2;
156 if (LI2.empty() || distance < 0.)
158 distance2 += distance;
159 indexFace = LI2.begin()->p->getPrimitiveId();
Representation of one of the most optimal path between source and receptor: S—>R.
virtual decimal traverse(Ray *r, std::list< Intersection > &result) const
Run this accelerator.
Class for the definition of atmospheric conditions.
double _z
z coordinate of OCoord3D
Plan defined by its equation : ax+by+cz+d=0.
Class to define a segment.
OPoint3D _ptA
Point A of the segment.
OPoint3D _ptB
Point B of the segment.
: Describes a ray by a pair of unsigned int. The first one gives the source number (in the range 0-40...
void setMaxt(decimal _maxt)
set the maxt
Accelerator * getAccelerator() const
Get the accelerator.
void init()
Initialize the acoustic model.
std::unique_ptr< AtmosphericConditions > _pSolverAtmos
virtual TYSolver & getSolver() const =0
void meanSlope(const OSegment3D &director, OSegment3D &slope) const
Create a segment corresponding to the projection of "director" segment on the ground.
virtual ~TYAcousticModel()
OPlan buildMeanSlopePlan(const OSegment3D &penteMoyenne) const
virtual void computeWaveLength()=0
Compute the wave length for the considered solver.
Class which represents the Solver for 9613 family solvers.
const Scene * getScene() const
Get the Scene.
const std::vector< TYStructSurfIntersect > & getTabPolygon() const
Get the array of polygons.
3D vector Vector defined with 3 float numbers
static LPSolverConfiguration get()
Get the configuration.
This file provides class for solver configuration.
vec3 OPoint3Dtovec3(const OPoint3D &_p)
Converts a OPoint3D to vec3.
base_vec3< decimal > vec3
boost::shared_ptr< SolverConfiguration > LPSolverConfiguration