1// Copyright 2009-2021 Intel Corporation
2// SPDX-License-Identifier: Apache-2.0
3
4// ospray
5#include "VolumetricModel.ih"
6#include "common/Ray.ih"
7#include "rkcommon/math/box.ih"
8#include "rkcommon/math/vec.ih"
9
10export void *uniform VolumetricModel_create()
11{
12  VolumetricModel *uniform self = uniform new VolumetricModel;
13  return self;
14}
15
16export void VolumetricModel_set(void *uniform _self,
17    void *uniform volume,
18    void *uniform transferFunction,
19    const uniform box3f &bounds,
20    uniform float densityScale,
21    uniform float anisotropy,
22    uniform float gradientShadingScale)
23{
24  VolumetricModel *uniform self = (VolumetricModel * uniform) _self;
25
26  self->transferFunction = (TransferFunction * uniform) transferFunction;
27  self->boundingBox = bounds;
28  self->densityScale = densityScale;
29  self->anisotropy = anisotropy;
30  self->gradientShadingScale = gradientShadingScale;
31  self->volume = (Volume * uniform) volume;
32}
33
34export void VolumetricModel_set_intervalContext(
35    void *uniform _self, void *uniform intervalContext)
36{
37  VolumetricModel *uniform self = (VolumetricModel * uniform) _self;
38  self->vklIntervalContext = (VKLIntervalIteratorContext)intervalContext;
39}
40