14 AverageAreaGridDensityProvider::AverageAreaGridDensityProvider(
OccluderSource &source,
15 const real proscenium[4],
19 initialize(proscenium, sizeFactor);
22 AverageAreaGridDensityProvider::AverageAreaGridDensityProvider(
32 initialize(proscenium, sizeFactor);
35 AverageAreaGridDensityProvider::AverageAreaGridDensityProvider(
OccluderSource &source,
42 initialize(proscenium, sizeFactor);
45 void AverageAreaGridDensityProvider::initialize(
const real proscenium[4],
real sizeFactor)
47 float prosceniumWidth = (proscenium[1] - proscenium[0]);
48 float prosceniumHeight = (proscenium[3] - proscenium[2]);
51 unsigned numFaces = 0;
60 cout <<
"Total area: " << cellArea <<
". Number of faces: " << numFaces <<
"." << endl;
63 cellArea *= sizeFactor;
65 cout <<
"Building grid with average area " << cellArea << endl;
69 unsigned maxCells = 931;
72 cout <<
"Scene-dependent cell size (" <<
_cellSize <<
" square) is too small." << endl;
84 float safetyZone = 0.1f;
101 : sizeFactor(sizeFactor)
Class to define a cell grid surrounding the projected image of a scene.
SIMD_FORCE_INLINE btVector3 transform(const btVector3 &point) const
AutoPtr< GridDensityProvider > newGridDensityProvider(OccluderSource &source, const real proscenium[4])
AverageAreaGridDensityProviderFactory(real sizeFactor)
static void calculateOptimalProscenium(OccluderSource &source, real proscenium[4])
static void calculateQuickProscenium(const GridHelpers::Transform &transform, const BBox< Vec3r > &bbox, real proscenium[4])
Polygon3r & getGridSpacePolygon()
ccl_device_inline float3 ceil(const float3 &a)