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