14 ArbitraryGridDensityProvider::ArbitraryGridDensityProvider(
OccluderSource &source,
15 const real proscenium[4],
19 initialize(proscenium);
22 ArbitraryGridDensityProvider::ArbitraryGridDensityProvider(
OccluderSource &source,
31 initialize(proscenium);
34 ArbitraryGridDensityProvider::ArbitraryGridDensityProvider(
OccluderSource &source,
41 initialize(proscenium);
44 void ArbitraryGridDensityProvider::initialize(
const real proscenium[4])
46 float prosceniumWidth = (proscenium[1] - proscenium[0]);
47 float prosceniumHeight = (proscenium[3] - proscenium[2]);
48 real cellArea = prosceniumWidth * prosceniumHeight /
numCells;
50 cout << prosceniumWidth <<
" x " << prosceniumHeight <<
" grid with cells of area " << cellArea
63 float safetyZone = 0.1f;
Class to define a cell grid surrounding the projected image of a scene.
SIMD_FORCE_INLINE btVector3 transform(const btVector3 &point) const
ArbitraryGridDensityProviderFactory(unsigned numCells)
AutoPtr< GridDensityProvider > newGridDensityProvider(OccluderSource &source, const real proscenium[4])
static void calculateOptimalProscenium(OccluderSource &source, real proscenium[4])
static void calculateQuickProscenium(const GridHelpers::Transform &transform, const BBox< Vec3r > &bbox, real proscenium[4])
ccl_device_inline float3 ceil(const float3 &a)