Field3D
|
Classes | |
struct | ComputationType |
Used to delegate the choice of bit depth to process at. More... | |
struct | ComputationType< Field3D::half > |
Specialization for half float. More... | |
struct | LoadFields |
struct | LoadFields< 1 > |
struct | LoadFields< 3 > |
struct | LoadFieldsParams |
struct | MakeDense |
MPL utility. More... | |
struct | MakeMIPDense |
MPL utility. More... | |
struct | MakeMIPSparse |
MPL utility. More... | |
struct | MakeSparse |
MPL utility. More... | |
struct | MIPSeparableThreadOp |
struct | ScalarOrVector |
Typedefs float or V3f, depending on Dims_T. More... | |
struct | ScalarOrVector< 1 > |
struct | ScalarOrVector< 3 > |
Functions | |
FIELD3D_API FieldMapping::Ptr | adjustedMIPFieldMapping (const FieldRes *base, const V3i &baseRes, const Box3i &extents, const size_t level) |
template<typename T > | |
FIELD3D_VEC3_T< T > | ceil (const FIELD3D_VEC3_T< T > &v) |
Ceil function for Vec3. More... | |
template<typename Field_T > | |
bool | checkInputEmpty (const Field_T &, const Field_T &, const Box3i &, const float, const size_t) |
Fallback version always returns false. More... | |
template<typename Data_T > | |
bool | checkInputEmpty (const SparseField< Data_T > &src, const SparseField< Data_T > &, const Box3i &tgtBox, const float support, const size_t dim) |
std::vector< V3d > | cornerPoints (const Box3d &box) |
template<typename T > | |
FIELD3D_VEC3_T< T > | floor (const FIELD3D_VEC3_T< T > &v) |
Floor function for Vec3. More... | |
float | getDist (const bool doUpres, const float &srcP, const float &tgtP, const float &srcSize, const float &tgtSize) |
V3f | getDist (const V3i &doUpres, const V3f &srcP, const V3f &tgtP, const V3f &srcSize, const V3f &tgtSize) |
bool | intersect (const Ray3d &ray, const Box3d &box, double &outT0, double &outT1) |
template<typename T , typename T2 > | |
FIELD3D_VEC3_T< T > | max (const FIELD3D_VEC3_T< T > &a, const FIELD3D_VEC3_T< T2 > &b) |
Max operation on mixed vector types. More... | |
template<typename T , typename T2 > | |
T | max (const T a, const T2 b) |
Max operation on mixed types. More... | |
template<typename T , typename T2 > | |
FIELD3D_VEC3_T< T > | min (const FIELD3D_VEC3_T< T > &a, const FIELD3D_VEC3_T< T2 > &b) |
Min operation on mixed vector types. More... | |
template<typename T , typename T2 > | |
T | min (const T a, const T2 b) |
Min operation on mixed types. More... | |
template<typename Field_T , typename FilterOp_T > | |
void | mipResample (const Field_T &base, const Field_T &src, Field_T &tgt, const size_t level, const V3i &offset, const FilterOp_T &filterOp, const size_t numThreads) |
FIELD3D_API V3i | mipResolution (const V3i &baseRes, const size_t level, const V3i &add) |
template<typename Field_T , typename FilterOp_T > | |
void | mipSeparable (const Field_T &src, Field_T &tgt, const V3i &oldRes, const V3i &newRes, const size_t level, const V3i &add, const FilterOp_T &filterOp, const size_t dim, const size_t numThreads) |
Threaded implementation of separable MIP filtering. More... | |
template<typename Field_T , typename FilterOp_T , bool IsAnalytic_T> | |
void | separable (const Field_T &src, Field_T &tgt, const V3i &newRes, const FilterOp_T &filterOp, const size_t dim) |
template<typename Field_T , typename FilterOp_T > | |
bool | separableResample (const Field_T &src, Field_T &tgt, const V3i &newRes, const FilterOp_T &filterOp) |
Resamples the source field into the target field, using separable execution, which is faster than resample(). More... | |
std::pair< int, int > | srcSupportBBox (const float &tgtP, const float support, const bool doUpres, const float &srcSize, const float &tgtSize) |
Box3i | srcSupportBBox (const V3f &tgtP, const float support, const V3i &doUpres, const V3f &srcSize, const V3f &tgtSize) |
template<typename Data_T > | |
size_t | threadingBlockSize (const DenseField< Data_T > &) |
Constant size for all dense fields. More... | |
template<typename Data_T > | |
size_t | threadingBlockSize (const SparseField< Data_T > &f) |
Use block size for sparse fields. More... | |
std::vector< V3d > | unitCornerPoints () |
Variables | |
static const char * | k_maxSuffix = "_max" |
static const char * | k_minSuffix = "_min" |
FIELD3D_API const std::string | k_mipOffsetStr = "mipoffset" |
FIELD3D_VEC3_T<T> detail::floor | ( | const FIELD3D_VEC3_T< T > & | v | ) |
Floor function for Vec3.
Definition at line 104 of file CoordSys.h.
Referenced by computeOffset(), contToDisc(), discreteBounds(), detail::MIPSeparableThreadOp< Field_T, FilterOp_T, IsAnalytic_T >::operator()(), LinearSparseFieldInterp< Data_T >::sample(), LinearFieldInterp< Data_T >::sample(), CubicFieldInterp< Data_T >::sample(), LinearGenericFieldInterp< Field_T >::sample(), LinearMACFieldInterp< Data_T >::sample(), CubicGenericFieldInterp< Field_T >::sample(), CubicMACFieldInterp< Data_T >::sample(), and srcSupportBBox().
FIELD3D_VEC3_T<T> detail::ceil | ( | const FIELD3D_VEC3_T< T > & | v | ) |
Ceil function for Vec3.
Definition at line 114 of file CoordSys.h.
Referenced by checkInputEmpty(), discreteBounds(), mipResample(), mipResolution(), detail::MIPSeparableThreadOp< Field_T, FilterOp_T, IsAnalytic_T >::operator()(), SparseField< Data_T >::setupBlocks(), and srcSupportBBox().
Definition at line 211 of file FieldGroup.h.
Referenced by FieldGroup< BaseTypeList_T, Dims_T >::GetIntersections::intersectFrustumMapping().
|
inline |
Definition at line 228 of file FieldGroup.h.
Referenced by FieldGroup< BaseTypeList_T, Dims_T >::GetWsBounds::operator()().
|
inline |
Definition at line 245 of file FieldGroup.h.
Referenced by FieldGroup< BaseTypeList_T, Dims_T >::GetIntersections::intersectMatrixMapping().
T detail::min | ( | const T | a, |
const T2 | b | ||
) |
Min operation on mixed types.
Definition at line 25 of file FieldSampler.h.
References min().
Referenced by DenseField< Data_T >::begin(), SparseField< Data_T >::begin(), WritableField< Data_T >::begin(), DenseField< Data_T >::cbegin(), SparseField< Data_T >::cbegin(), DenseField< Data_T >::cend(), SparseField< Data_T >::cend(), clampForType(), clipBounds(), DenseField< Data_T >::end(), SparseField< Data_T >::end(), WritableField< Data_T >::end(), DenseField< Data_T >::fastLValue(), SparseField< Data_T >::fastLValue(), DenseField< Data_T >::fastValue(), SparseField< Data_T >::fastValue(), SparseField< Data_T >::getGrainBounds(), FieldSampler< WrapperVec_T, Dims_T >::getMinMax(), FieldGroup< BaseTypeList_T, Dims_T >::getMinMax(), FieldSampler< WrapperVec_T, Dims_T >::getMinMaxMIP(), FieldSampler< WrapperVec_T, Dims_T >::getMinMaxPrefilt(), intersect(), FieldGroup< BaseTypeList_T, Dims_T >::GetIntersections::intersectFrustumMapping(), FieldGroup< BaseTypeList_T, Dims_T >::GetIntersections::intersectMatrixMapping(), EmptyField< Data_T >::lvalue(), makeMinMax(), MIPLinearInterp< MIPField_T >::MIPLinearInterp(), mipSeparable(), MinFilter::op(), detail::MIPSeparableThreadOp< Field_T, FilterOp_T, IsAnalytic_T >::operator()(), SparseFile::Reference< Data_T >::operator=(), LinearSparseFieldInterp< Data_T >::sample(), LinearFieldInterp< Data_T >::sample(), CubicFieldInterp< Data_T >::sample(), LinearGenericFieldInterp< Field_T >::sample(), LinearMACFieldInterp< Data_T >::sample(), CubicGenericFieldInterp< Field_T >::sample(), CubicMACFieldInterp< Data_T >::sample(), separable(), SparseFile::Reference< Data_T >::setNumBlocks(), DenseField< Data_T >::sizeChanged(), MACField< Data_T >::sizeChanged(), MACField< Data_T >::u(), MACField< Data_T >::v(), EmptyField< Data_T >::value(), MACField< Data_T >::w(), and FrustumFieldMapping::wsVoxelSize().
T detail::max | ( | const T | a, |
const T2 | b | ||
) |
Max operation on mixed types.
Definition at line 32 of file FieldSampler.h.
References max().
Referenced by SparseFile::Reference< Data_T >::averageLoads(), SparseFileManager::cacheEfficiency(), SparseFileManager::cacheFractionLoaded(), SparseFileManager::cacheLoadsPerBlock(), checkInputEmpty(), clampForType(), clipBounds(), GaussianFilter::eval(), DenseField< Data_T >::fastLValue(), SparseField< Data_T >::fastLValue(), DenseField< Data_T >::fastValue(), SparseField< Data_T >::fastValue(), FieldSampler< WrapperVec_T, Dims_T >::getMinMax(), FieldGroup< BaseTypeList_T, Dims_T >::getMinMax(), FieldSampler< WrapperVec_T, Dims_T >::getMinMaxMIP(), FieldSampler< WrapperVec_T, Dims_T >::getMinMaxPrefilt(), MinFilter::initialValue(), MaxFilter::initialValue(), intersect(), FieldGroup< BaseTypeList_T, Dims_T >::GetIntersections::intersectFrustumMapping(), EmptyField< Data_T >::lvalue(), makeMinMax(), MaxFilter::op(), detail::MIPSeparableThreadOp< Field_T, FilterOp_T, IsAnalytic_T >::operator()(), LinearSparseFieldInterp< Data_T >::sample(), LinearFieldInterp< Data_T >::sample(), CubicFieldInterp< Data_T >::sample(), LinearGenericFieldInterp< Field_T >::sample(), LinearMACFieldInterp< Data_T >::sample(), CubicGenericFieldInterp< Field_T >::sample(), CubicMACFieldInterp< Data_T >::sample(), separable(), FieldWrapper< Field_T >::setOsToWs(), MIPFieldWrapper< Field_T >::setOsToWs(), DenseField< Data_T >::sizeChanged(), MACField< Data_T >::u(), MACField< Data_T >::v(), EmptyField< Data_T >::value(), MACField< Data_T >::w(), and FrustumFieldMapping::wsVoxelSize().
FIELD3D_VEC3_T<T> detail::min | ( | const FIELD3D_VEC3_T< T > & | a, |
const FIELD3D_VEC3_T< T2 > & | b | ||
) |
Min operation on mixed vector types.
Definition at line 39 of file FieldSampler.h.
Referenced by FieldSampler< WrapperVec_T, Dims_T >::getMinMax(), FieldSampler< WrapperVec_T, Dims_T >::getMinMaxMIP(), and min().
FIELD3D_VEC3_T<T> detail::max | ( | const FIELD3D_VEC3_T< T > & | a, |
const FIELD3D_VEC3_T< T2 > & | b | ||
) |
Max operation on mixed vector types.
Definition at line 49 of file FieldSampler.h.
Referenced by FieldSampler< WrapperVec_T, Dims_T >::getMinMax(), FieldSampler< WrapperVec_T, Dims_T >::getMinMaxMIP(), FieldSampler< WrapperVec_T, Dims_T >::getMinMaxPrefilt(), and max().
size_t detail::threadingBlockSize | ( | const DenseField< Data_T > & | ) |
Constant size for all dense fields.
Definition at line 121 of file MIPUtil.h.
Referenced by mipSeparable().
size_t detail::threadingBlockSize | ( | const SparseField< Data_T > & | f | ) |
Use block size for sparse fields.
Definition at line 128 of file MIPUtil.h.
References SparseField< Data_T >::blockSize().
bool detail::checkInputEmpty | ( | const SparseField< Data_T > & | src, |
const SparseField< Data_T > & | , | ||
const Box3i & | tgtBox, | ||
const float | support, | ||
const size_t | dim | ||
) |
Definition at line 136 of file MIPUtil.h.
References blockCoords(), SparseField< Data_T >::blockIsAllocated(), ceil(), clipBounds(), FieldRes::dataWindow(), SparseField< Data_T >::getBlockEmptyValue(), and max().
Referenced by detail::MIPSeparableThreadOp< Field_T, FilterOp_T, IsAnalytic_T >::operator()().
bool detail::checkInputEmpty | ( | const Field_T & | , |
const Field_T & | , | ||
const Box3i & | , | ||
const float | , | ||
const | size_t | ||
) |
void detail::mipSeparable | ( | const Field_T & | src, |
Field_T & | tgt, | ||
const V3i & | oldRes, | ||
const V3i & | newRes, | ||
const size_t | level, | ||
const V3i & | add, | ||
const FilterOp_T & | filterOp, | ||
const size_t | dim, | ||
const size_t | numThreads | ||
) |
Threaded implementation of separable MIP filtering.
Definition at line 354 of file MIPUtil.h.
References min(), and threadingBlockSize().
Referenced by mipResample().
void detail::mipResample | ( | const Field_T & | base, |
const Field_T & | src, | ||
Field_T & | tgt, | ||
const size_t | level, | ||
const V3i & | offset, | ||
const FilterOp_T & | filterOp, | ||
const size_t | numThreads | ||
) |
Definition at line 421 of file MIPUtil.h.
References ceil(), mipResolution(), and mipSeparable().
Referenced by makeMIP().
FieldMapping::Ptr detail::adjustedMIPFieldMapping | ( | const FieldRes * | base, |
const V3i & | , | ||
const Box3i & | extents, | ||
const size_t | level | ||
) |
Definition at line 82 of file MIPUtil.cpp.
References coordinateSystem(), k_mipOffsetStr, FieldRes::mapping(), FieldBase::metadata(), and FieldMetadata::vecIntMetadata().
Referenced by MIPField< Field_T >::loadLevelFromDisk(), and MIPField< Field_T >::mappingChanged().
Box3i detail::srcSupportBBox | ( | const V3f & | tgtP, |
const float | support, | ||
const V3i & | doUpres, | ||
const V3f & | srcSize, | ||
const V3f & | tgtSize | ||
) |
Definition at line 56 of file Resample.cpp.
References ceil(), and floor().
Referenced by separable().
std::pair< int, int > detail::srcSupportBBox | ( | const float & | tgtP, |
const float | support, | ||
const bool | doUpres, | ||
const float & | srcSize, | ||
const float & | tgtSize | ||
) |
Definition at line 83 of file Resample.cpp.
V3f detail::getDist | ( | const V3i & | doUpres, |
const V3f & | srcP, | ||
const V3f & | tgtP, | ||
const V3f & | srcSize, | ||
const V3f & | tgtSize | ||
) |
float detail::getDist | ( | const bool | doUpres, |
const float & | srcP, | ||
const float & | tgtP, | ||
const float & | srcSize, | ||
const float & | tgtSize | ||
) |
Definition at line 121 of file Resample.cpp.
void detail::separable | ( | const Field_T & | src, |
Field_T & | tgt, | ||
const V3i & | newRes, | ||
const FilterOp_T & | filterOp, | ||
const size_t | dim | ||
) |
Definition at line 410 of file Resample.h.
References discToCont(), getDist(), max(), min(), and srcSupportBBox().
bool detail::separableResample | ( | const Field_T & | src, |
Field_T & | tgt, | ||
const V3i & | newRes, | ||
const FilterOp_T & | filterOp | ||
) |
Resamples the source field into the target field, using separable execution, which is faster than resample().
Definition at line 511 of file Resample.h.
Referenced by resample().
|
static |
Definition at line 61 of file FieldGroup.h.
Referenced by detail::LoadFields< 1 >::operator()(), and detail::LoadFields< 3 >::operator()().
|
static |
Definition at line 62 of file FieldGroup.h.
Referenced by detail::LoadFields< 1 >::operator()(), and detail::LoadFields< 3 >::operator()().
const std::string detail::k_mipOffsetStr = "mipoffset" |
Definition at line 66 of file MIPUtil.cpp.
Referenced by adjustedMIPFieldMapping(), MIPField< Field_T >::mappingChanged(), and MIPBase< Data_T >::setMIPOffset().