RixVolume.h Source File

RixVolume.h
1 #ifndef RixVolume_h
2 #define RixVolume_h
3 /* $Revision: #4 $ $Date: 2016/01/20 $
4 # ------------------------------------------------------------------------------
5 #
6 # Copyright (c) 2015 Pixar Animation Studios. All rights reserved.
7 #
8 # The information in this file (the "Software") is provided for the
9 # exclusive use of the software licensees of Pixar. Licensees have
10 # the right to incorporate the Software into other products for use
11 # by other authorized software licensees of Pixar, without fee.
12 # Except as expressly permitted herein, the Software may not be
13 # disclosed to third parties, copied or duplicated in any form, in
14 # whole or in part, without the prior written permission of
15 # Pixar Animation Studios.
16 #
17 # The copyright notices in the Software and this entire statement,
18 # including the above license grant, this restriction and the
19 # following disclaimer, must be included in all copies of the
20 # Software, in whole or in part, and all permitted derivative works of
21 # the Software, unless such copies or derivative works are solely
22 # in the form of machine-executable object code generated by a
23 # source language processor.
24 #
25 # PIXAR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
26 # ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
27 # SHALL PIXAR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES
28 # OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
29 # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
30 # ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
31 # SOFTWARE.
32 #
33 # Pixar
34 # 1200 Park Ave
35 # Emeryville CA 94608
36 #
37 # ------------------------------------------------------------------------------
38 */
39 #include "RixShading.h"
40 #include "RixBxdf.h"
41 
49 class RixVolumeServices : public RixInterface
50 {
51 
52 public:
53  RixVolumeServices() : RixInterface(1), shadingCtx(NULL) {}
54 
55  // Begin for a Rix shading context (RIS usage)
56  virtual void Begin(RixShadingContext const* sCtx) = 0;
57 
58  virtual void End() = 0;
59 
78  virtual int GetDensityRanges(
79  const RtPoint3& pt0,
80  const RtPoint3& pt1,
81  float length,
82  float maxDensity,
83  float** dist,
84  float** minDensities,
85  float** maxDensities,
86  float* minTrans,
87  float* maxTrans) const = 0;
88 
89 protected:
90  virtual ~RixVolumeServices() {}
91  RixShadingContext const* shadingCtx;
92 
93 };
94 
95 #endif