21class VoxelFieldContext :
public fn::FieldContext {
23 const openvdb::math::Transform &transform_;
24 Span<openvdb::Coord> voxels_;
27 VoxelFieldContext(
const openvdb::math::Transform &
transform, Span<openvdb::Coord> voxels);
29 GVArray get_varray_for_input(
const fn::FieldInput &field_input,
30 const IndexMask &
mask,
31 ResourceScope &scope)
const override;
33 Span<openvdb::Coord> voxels()
const
43class TilesFieldContext :
public fn::FieldContext {
45 const openvdb::math::Transform &transform_;
46 Span<openvdb::CoordBBox> tiles_;
49 TilesFieldContext(
const openvdb::math::Transform &
transform,
50 const Span<openvdb::CoordBBox>
tiles);
52 GVArray get_varray_for_input(
const fn::FieldInput &field_input,
53 const IndexMask &
mask,
54 ResourceScope &scope)
const override;
56 Span<openvdb::CoordBBox>
tiles()
const
62class VoxelCoordinateFieldInput :
public fn::FieldInput {
67 VoxelCoordinateFieldInput(math::Axis axis);
69 GVArray get_varray_for_context(
const fn::FieldContext &context,
70 const IndexMask &
mask,
71 ResourceScope &scope)
const override;
74class VoxelExtentFieldInput :
public fn::FieldInput {
79 VoxelExtentFieldInput(math::Axis axis);
81 GVArray get_varray_for_context(
const fn::FieldContext &context,
82 const IndexMask &
mask,
83 ResourceScope &scope)
const override;
86class IsTileFieldInput :
public fn::FieldInput {
90 GVArray get_varray_for_context(
const fn::FieldContext &context,
91 const IndexMask &
mask,
92 ResourceScope &scope)
const override;
SIMD_FORCE_INLINE btVector3 transform(const btVector3 &point) const
ccl_gpu_kernel_postfix ccl_global KernelWorkTile * tiles
ccl_device_inline float2 mask(const MaskType mask, const float2 a)