RenderMan API
23.0
RixSampleFilter.h
Go to the documentation of this file.
1
/*
2
# ------------------------------------------------------------------------------
3
#
4
# Copyright (c) 1986-2019 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
38
#ifndef RixSampleFilter_h
39
#define RixSampleFilter_h
40
41
#include "
RixIntegrator.h
"
// for RixChannelId, etc
42
#include "
RixInterfaces.h
"
// for RixContext
43
#include "
RixShading.h
"
// for RixShadingPlugin, etc
44
#include "
prmanapi.h
"
// for PRMANEXPORT
45
#include "
ri.h
"
// for RtConstPointer, RtColorRGB, etc
46
47
class
RixSampleFilterContext
;
48
54
55
class
RixSampleFilter
:
public
RixShadingPlugin
56
{
57
public
:
58
virtual
int
GetInterface
()
const override
{
return
k_RixSampleFilter
; }
59
64
65
virtual
void
Filter
(
66
RixSampleFilterContext
& fCtx,
67
RtPointer
instanceData) = 0;
68
69
protected
:
70
RixSampleFilter
() :
RixShadingPlugin
(
k_RixShadingVersion
) {}
71
virtual
~RixSampleFilter
() {}
72
};
73
74
// clang-format off
75
#define RIX_SAMPLEFILTERCREATE \
76
extern "C" PRMANEXPORT RixSampleFilter* CreateRixSampleFilter(RtConstString hint)
77
78
#define RIX_SAMPLEFILTERDESTROY \
79
extern "C" PRMANEXPORT void DestroyRixSampleFilter(RixSampleFilter* filter)
80
// clang-format on
81
82
class
RixSampleFilterContext
:
public
RixContext
83
{
84
public
:
85
int
numSamples
;
86
int
numAllSamples
;
87
93
94
RtPoint2
const
*
screen
;
95
100
101
float
const
*
shutter
;
102
106
107
RtRayGeometry
const
*
rays
;
108
111
112
int
numGrps
;
113
RixShadingContext
const
**
shadeCtxs
;
114
118
119
float
const
*
depths
;
120
int
const
*
originals
;
121
125
126
virtual
bool
Read(
RixChannelId
id
,
int
sample,
RtColorRGB
&value)
const
= 0;
127
virtual
bool
Read(
RixChannelId
id
,
int
sample,
float
&value)
const
= 0;
128
virtual
bool
Read(
RixChannelId
id
,
int
sample,
int
&value)
const
= 0;
129
130
virtual
bool
Write(
RixChannelId
id
,
int
sample,
RtColorRGB
value) = 0;
131
virtual
bool
Write(
RixChannelId
id
,
int
sample,
float
value) = 0;
132
virtual
bool
Write(
RixChannelId
id
,
int
sample,
int
value) = 0;
133
140
141
virtual
bool
ReadRegion(
RixChannelId
id
,
142
int
regionMinX,
int
regionMaxX,
143
int
regionMinY,
int
regionMaxY,
144
RtColorRGB
*values)
const
= 0;
145
virtual
bool
ReadRegion(
RixChannelId
id
,
146
int
regionMinX,
int
regionMaxX,
147
int
regionMinY,
int
regionMaxY,
148
float
*values)
const
= 0;
149
153
154
virtual
int
GetAttribute(
int
sample,
RtUString
const
name,
155
void
*result,
int
resultLen,
156
RixInterface::Type
*resultType,
157
int
*resultCount)
const
= 0;
158
161
162
virtual
bool
IsEnabled(
163
RtConstPointer
instance,
164
RtPointer
* instanceData)
const
= 0;
165
166
protected
:
167
RixSampleFilterContext
() :
RixContext
() {}
168
virtual
~RixSampleFilterContext
() {}
169
};
170
171
#endif
RixSampleFilterContext::RixSampleFilterContext
RixSampleFilterContext()
Definition:
RixSampleFilter.h:167
RtColorRGB
pxrcore::ColorRGB RtColorRGB
Definition:
RiTypesHelper.h:519
RtPointer
void * RtPointer
Definition:
ri.h:69
RixSampleFilterContext::screen
RtPoint2 const * screen
Definition:
RixSampleFilter.h:94
k_RixSampleFilter
Definition:
RixShading.h:119
RixSampleFilterContext
Definition:
RixSampleFilter.h:82
RixInterfaces.h
RixShadingPlugin
Definition:
RixShading.h:168
RixSampleFilterContext::originals
int const * originals
Definition:
RixSampleFilter.h:120
RtRayGeometry
Definition:
RixIntegrator.h:234
RtFloat2
Definition:
RiTypesHelper.h:81
RixSampleFilter::GetInterface
virtual int GetInterface() const override
Definition:
RixSampleFilter.h:58
prmanapi.h
RixContext
Definition:
RixInterfaces.h:170
RtUString
pxrcore::UString RtUString
Definition:
RiTypesHelper.h:681
k_RixShadingVersion
#define k_RixShadingVersion
Definition:
RixShading.h:97
RixSampleFilter::RixSampleFilter
RixSampleFilter()
Definition:
RixSampleFilter.h:70
RtConstPointer
void const * RtConstPointer
Definition:
ri.h:86
RixIntegrator.h
RixSampleFilterContext::numGrps
int numGrps
Definition:
RixSampleFilter.h:112
RixShadingContext
Definition:
RixShading.h:605
RixSampleFilter
Definition:
RixSampleFilter.h:55
RixSampleFilterContext::shutter
float const * shutter
Definition:
RixSampleFilter.h:101
ri.h
RixSampleFilterContext::numSamples
int numSamples
Definition:
RixSampleFilter.h:85
RixSampleFilterContext::numAllSamples
int numAllSamples
With extras add by RixDisplayServices::AddSample()
Definition:
RixSampleFilter.h:86
RixShading.h
RixSampleFilterContext::shadeCtxs
RixShadingContext const ** shadeCtxs
Definition:
RixSampleFilter.h:113
RixSampleFilterContext::depths
float const * depths
Definition:
RixSampleFilter.h:119
RixChannelId
unsigned int RixChannelId
Definition:
RixIntegrator.h:55
RixSampleFilter::~RixSampleFilter
virtual ~RixSampleFilter()
Definition:
RixSampleFilter.h:71
RixInterface::Type
Type
Definition:
RixInterfaces.h:138
RixSampleFilterContext::rays
RtRayGeometry const * rays
Definition:
RixSampleFilter.h:107
RixSampleFilter::Filter
virtual void Filter(RixSampleFilterContext &fCtx, RtPointer instanceData)=0
RixSampleFilterContext::~RixSampleFilterContext
virtual ~RixSampleFilterContext()
Definition:
RixSampleFilter.h:168
include
RixSampleFilter.h
Generated by
1.8.13