RenderMan
26.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
RixSampleFilter.h
Go to the documentation of this file.
1
/*
2
# ------------------------------------------------------------------------------
3
#
4
# Copyright (c) 2020 Pixar. All rights reserved.
5
#
6
# The information in this file (the "Software") is provided for the exclusive
7
# use of the software licensees of Pixar ("Licensees"). Licensees have the
8
# right to incorporate the Software into other products for use by other
9
# authorized software licensees of Pixar, without fee. Except as expressly
10
# permitted herein, the Software may not be disclosed to third parties, copied
11
# or duplicated in any form, in whole or in part, without the prior written
12
# permission of Pixar.
13
#
14
# The copyright notices in the Software and this entire statement, including the
15
# above license grant, this restriction and the following disclaimer, must be
16
# included in all copies of the Software, in whole or in part, and all permitted
17
# derivative works of the Software, unless such copies or derivative works are
18
# solely in the form of machine-executable object code generated by a source
19
# language processor.
20
#
21
# PIXAR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
22
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL PIXAR BE
23
# LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
24
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
25
# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
26
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. IN NO CASE WILL
27
# PIXAR'S TOTAL LIABILITY FOR ALL DAMAGES ARISING OUT OF OR IN CONNECTION WITH
28
# THE USE OR PERFORMANCE OF THIS SOFTWARE EXCEED $50.
29
#
30
# Pixar
31
# 1200 Park Ave
32
# Emeryville CA 94608
33
#
34
# ------------------------------------------------------------------------------
35
*/
36
37
#ifndef RixSampleFilter_h
38
#define RixSampleFilter_h
39
40
#include "
RixIntegrator.h
"
// for RixChannelId, etc
41
#include "
RixInterfaces.h
"
// for RixContext
42
#include "
RixShading.h
"
// for RixShadingPlugin, etc
43
#include "prmanapi.h"
// for PRMANEXPORT
44
#include "RiTypesHelper.h"
// for RtColorRGB, etc
45
46
class
RixSampleFilterContext
;
47
53
54
class
RixSampleFilter
:
public
RixShadingPlugin
55
{
56
public
:
57
int
GetInterface
()
const override
{
return
k_RixSampleFilter
; }
58
63
64
virtual
void
Filter
(
65
RixSampleFilterContext
& fCtx,
66
void
* instanceData) = 0;
67
68
protected
:
69
RixSampleFilter
() :
RixShadingPlugin
(
k_RixShadingVersion
) {}
70
~RixSampleFilter
()
override
{}
71
};
72
73
// clang-format off
74
#define RIX_SAMPLEFILTERCREATE \
75
extern "C" PRMANEXPORT RixSampleFilter* CreateRixSampleFilter(RtConstString hint)
76
77
#define RIX_SAMPLEFILTERDESTROY \
78
extern "C" PRMANEXPORT void DestroyRixSampleFilter(RixSampleFilter* filter)
79
// clang-format on
80
81
class
RixSampleFilterContext
:
public
RixContext
82
{
83
public
:
84
int
numSamples
;
85
int
numAllSamples
;
86
92
93
RtPoint2
const
*
screen
;
94
99
100
float
const
*
shutter
;
101
105
106
RtRayGeometry
const
*
rays
;
107
110
111
int
numGrps
;
112
RixShadingContext
const
**
shadeCtxs
;
113
117
118
float
const
*
depths
;
119
int
const
*
originals
;
120
124
125
virtual
bool
Read
(
RixChannelId
id
,
int
sample, RtColorRGB &value)
const
= 0;
126
virtual
bool
Read
(
RixChannelId
id
,
int
sample,
float
&value)
const
= 0;
127
virtual
bool
Read
(
RixChannelId
id
,
int
sample,
int
&value)
const
= 0;
128
129
virtual
bool
Write
(
RixChannelId
id
,
int
sample, RtColorRGB value) = 0;
130
virtual
bool
Write
(
RixChannelId
id
,
int
sample,
float
value) = 0;
131
virtual
bool
Write
(
RixChannelId
id
,
int
sample,
int
value) = 0;
132
139
140
virtual
bool
ReadRegion
(
RixChannelId
id
,
141
int
regionMinX,
int
regionMaxX,
142
int
regionMinY,
int
regionMaxY,
143
RtColorRGB *values)
const
= 0;
144
virtual
bool
ReadRegion
(
RixChannelId
id
,
145
int
regionMinX,
int
regionMaxX,
146
int
regionMinY,
int
regionMaxY,
147
float
*values)
const
= 0;
148
152
153
virtual
int
GetAttribute
(
int
sample, RtUString
const
name,
154
void
*result,
int
resultLen,
155
RixInterface::Type
*resultType,
156
int
*resultCount)
const
= 0;
157
160
161
virtual
bool
IsEnabled
(
162
void
const
* instance,
163
void
** instanceData)
const
= 0;
164
165
protected
:
166
RixSampleFilterContext
() :
RixContext
() {}
167
~RixSampleFilterContext
()
override
{}
168
};
169
170
#endif
RixSampleFilter.h
Generated on Fri Apr 5 2024 12:32:49 for RenderMan by
Doxygen
1.8.4
© Pixar. All Rights Reserved.