Code_TYMPAN  4.4.0
Industrial site acoustic simulation
BruteForceAccelerator.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) <2012> <EDF-R&D> <FRANCE>
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation; either version 2 of the License, or
6  * (at your option) any later version.
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10  * See the GNU General Public License for more details.
11  * You should have received a copy of the GNU General Public License along
12  * with this program; if not, write to the Free Software Foundation, Inc.,
13  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
14  */
15 
16 #include "BruteForceAccelerator.h"
17 
18 decimal BruteForceAccelerator::traverse(Ray* r, std::list<Intersection>& result) const
19 {
20  // For every shape in the scene
21  for (unsigned int i = 0; i < shapes->size(); i++)
22  {
23  Intersection currentI;
24  // Check if the ray intersects the shape
25  if (shapes->at(i)->getIntersection(*r, currentI) && currentI.t > 0.0001)
26  {
27  result.push_back(currentI);
28  }
29  }
30 
31  return (*pLeafTreatmentFunction)(result, -1.);
32 }
decimal(* pLeafTreatmentFunction)(std::list< Intersection > &, decimal)
Pointer to the treatment function of leaf.
Definition: Accelerator.h:97
std::vector< Shape * > * shapes
Vector of pointers to shapes.
Definition: Accelerator.h:102
virtual decimal traverse(Ray *r, std::list< Intersection > &result) const
Run this accelerator.
: Describes a ray by a pair of unsigned int. The first one gives the source number (in the range 0-40...
Definition: Ray.h:38
float decimal
Definition: mathlib.h:45
Intersection struct.
Definition: Shape.h:46
decimal t
Definition: Shape.h:48