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