1 //////////////////////////////////////////////////////////////////////
2 //
3 //                             Pixie
4 //
5 // Copyright � 1999 - 2003, Okan Arikan
6 //
7 // Contact: okan@cs.utexas.edu
8 //
9 //	This library is free software; you can redistribute it and/or
10 //	modify it under the terms of the GNU Lesser General Public
11 //	License as published by the Free Software Foundation; either
12 //	version 2.1 of the License, or (at your option) any later version.
13 //
14 //	This library is distributed in the hope that it will be useful,
15 //	but WITHOUT ANY WARRANTY; without even the implied warranty of
16 //	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17 //	Lesser General Public License for more details.
18 //
19 //	You should have received a copy of the GNU Lesser General Public
20 //	License along with this library; if not, write to the Free Software
21 //	Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
22 //
23 ///////////////////////////////////////////////////////////////////////
24 ///////////////////////////////////////////////////////////////////////
25 //
26 //  File				:	displayChannel.h
27 //  Classes				:	CDisplayChannel
28 //  Description			:
29 //
30 ////////////////////////////////////////////////////////////////////////
31 #ifndef DISPLAYCHANNEL_H
32 #define DISPLAYCHANNEL_H
33 
34 #include "common/os.h"
35 #include "variable.h"
36 
37 // This is the AOV filter type
38 typedef enum {
39 	AOV_FILTER_DEFAULT,			// Use RiPixelFilter
40 	AOV_FILTER_ZMIN,
41 	AOV_FILTER_ZMAX,
42 	AOV_FILTER_MIN,
43 	AOV_FILTER_MAX,
44 	AOV_FILTER_AVERAGE,
45 
46 	AOV_FILTER_SPECIALFILTERS = AOV_FILTER_AVERAGE,
47 
48 	AOV_FILTER_GAUSSIAN,		// standard pixel filter types
49 	AOV_FILTER_BOX,
50 	AOV_FILTER_TRIANGLE,
51 	AOV_FILTER_SINC,
52 	AOV_FILTER_CATMULLROM,
53 	AOV_FILTER_BLACKMANHARRIS,
54 	AOV_FILTER_MITCHELL
55 } EAOVFilter;
56 
57 ///////////////////////////////////////////////////////////////////////
58 // Class				:	CDisplayChannel
59 // Description			:	Holds information on a display channel
60 // Comments				:	if variable is NULL and entry is -1 this is
61 //						:	one of the standard rgbaz channels
62 //						:	sampleStart is filled at render time
63 class  CDisplayChannel {
64 public:
65 						CDisplayChannel();
66 						~CDisplayChannel();
67 						CDisplayChannel(const char*,CVariable*,int,int,int entry = -1);
68 
69 	char				name[64];		// Name of the channel
70 	CVariable			*variable;		// The variable representing channel (may be NULL)
71 	float				*fill;			// The sample defaults
72 	int					numSamples;		// The size of channel sample
73 	int					outType;		// The entry index of the variable
74 	int					sampleStart;	// The offset in the shaded vertex array (-1 is unassigned)
75 	int					filterType;
76 	float				quantizer[5];	// Default for the display
77 	int					matteMode;		// Respect (default) or ignore mattes
78 };
79 
80 
81 #endif
82 
83