33 std::vector<Recepteur>& recepteurs)
83 std::vector<Recepteur>& recepteurs)
132 bool isValid =
false;
149 #ifdef _ALLOW_TARGETING_
152 ValidRay::appendDirectionToEvent(r->
events.back(), targetManager);
192 for (std::map<unsigned long long, Ray*>::iterator it = selectedData.begin(); it != selectedData.end();
unsigned int MaxReflexion
Maximal reflection events.
unsigned int MaxDiffraction
Maximal diffraction events.
unsigned int MaxProfondeur
Maximal number of events for ray validation in ANIME3D solver.
static AcousticRaytracerConfiguration * get()
Get access to the configuration.
SelectorManager< Ray > selectorManagerIntersection
virtual void finish()
End the operations.
virtual bool invalidRayon(Ray *r)
Method to arrange the invalid rays. The invalid rays are put away into a debug_ray array in order to ...
virtual bool valideIntersection(Ray *r, Intersection *inter)
Validation function for an intersection. If the intersection is validated, an event is created and ad...
virtual bool valideRayon(Ray *r)
Ray validation. The developer may, for instance, choose a filtering on the rays and only validate sin...
virtual bool postTreatmentScene(Scene *scene, std::vector< Source > &sources, std::vector< Recepteur > &recepteurs)
Virtual function to post-process the Scene. It has two phases: transform the meta-objects and load th...
SelectorManager< Ray > selectorManagerValidation
Clean DoNothing events from ray events list \ --> After ray validation DoNothing events are no longer...
Rejects a ray if two of its events occur on the same shape (for example a diffraction close to a refl...
: Select diffracted rays that are launched in the shadow zone of the obstacle (closed angle) Other ar...
: Rejects rays if the cumulative length added by the diffractions events in comparison to the length ...
: To disable ray with a number of diffraction events greater than a threshold value
: To keep only one from two or more rays which have the same history (events on the same primitive)
: Rays can be seen as long cones that get thicker as their length increases based on their associated...
: Rejects rays which have traveled a distance greater than a given length
: Describes a ray by a pair of unsigned int. The first one gives the source number (in the range 0-40...
unsigned int getReflex() const
Return the reflections number encountered by the ray.
std::vector< boost::shared_ptr< Event > > events
Events list for the ray.
unsigned int getDiff() const
Return the diffractions number encountered by the ray.
unsigned int getNbEvents() const
Return the total number of events.
: To disable the rays which have a number of reflection events greater than a given threshold or refl...
This class mainly define a mesh (list of Shape) used by the Simulation object.
bool appendData(T *data)
Append data (typically a ray) and loop on Selectors to filter.
void reset()
Reset all the Selector and clear the local data.
void addSelector(Selector< T > *selector)
Add a Selector to the list.
std::map< unsigned long long, T * > & getSelectedData()
Get the selected data.
bool isSol() const
Get/Set the flag _isSol (ground or not)
virtual bool valideRayon(Ray *r)
Ray validation. The developer may, for instance, choose a filtering on the rays and only validate sin...
deque< Ray * > valid_rays
Rays list which are validated by the solver.
virtual bool postTreatmentScene(Scene *scene, std::vector< Source > &sources, std::vector< Recepteur > &recepteurs)
Virtual function to post-process the Scene. It has two phases: transform the meta-objects and load th...
virtual bool valideIntersection(Ray *r, Intersection *inter)
Validation function for an intersection. If the intersection is validated, an event is created and ad...
deque< Ray * > debug_rays
Rays list which are invalidated by the solver.
virtual bool loadParameters()
Load the computation parameters.
virtual double leafTreatment(vector< Intersection > &primitives)
Leaf treatment function for accelerators. The default is to keep only the first intersection....
virtual bool invalidRayon(Ray *r)
Method to arrange the invalid rays. The invalid rays are put away into a debug_ray array in order to ...
virtual void finish()
End the operations.
virtual void clean()
Delete the valid rays array.
bool constructEdge(Scene *scene)
Build the edges list of a scene.
bool validTriangleWithSpecularReflexion(Ray *r, Intersection *inter)
bool validCylindreWithDiffraction(Ray *r, Intersection *inter)