00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _COP2_COP2_MultiInputWipe_H_
00029 #define _COP2_COP2_MultiInputWipe_H_
00030
00031 #include <COP2/COP2_MultiBase.h>
00032
00033 namespace HDK_Sample {
00034
00035 class COP2_MultiInputWipe : public COP2_MultiBase
00036 {
00037 public:
00038
00039
00040
00041 virtual void getInputDependenciesForOutputArea(
00042 COP2_CookAreaInfo &output_area,
00043 const COP2_CookAreaList &input_areas,
00044 COP2_CookAreaList &needed_areas);
00045
00046 static OP_Node *myConstructor(OP_Network*, const char *,
00047 OP_Operator *);
00048 static OP_TemplatePair myTemplatePair;
00049 static OP_VariablePair myVariablePair;
00050 static PRM_Template myTemplateList[];
00051 static CH_LocalVariable myVariableList[];
00052 static const char * myInputLabels[];
00053
00054 protected:
00055 virtual ~COP2_MultiInputWipe();
00056 virtual COP2_ContextData *newContextData(const TIL_Plane *p,
00057 int array_index,
00058 float t,
00059 int xres, int yres,
00060 int thread,
00061 int max_threads);
00062
00063 virtual void computeImageBounds(COP2_Context &context);
00064 virtual OP_ERROR cookMyTile(COP2_Context &context,TIL_TileList *tiles);
00065
00066
00067 virtual void passThroughTiles(COP2_Context &context,
00068 const TIL_Plane *plane,
00069 int array_index,
00070 float t,
00071 int xstart, int ystart,
00072 TIL_TileList *&tile,
00073 int block = 1,
00074 bool *mask = 0,
00075 bool *blocked = 0);
00076
00077 virtual int passThrough(COP2_Context &context,
00078 const TIL_Plane *plane, int comp_index,
00079 int array_index, float t,
00080 int xstart, int ystart);
00081
00082 private:
00083
00084 COP2_MultiInputWipe(OP_Network *parent, const char *name,
00085 OP_Operator *entry);
00086
00087 void boostAndBlur(TIL_TileList *tiles, TIL_Region *input,
00088 float fade, float dip, int rad, float blur,
00089 bool add);
00090 };
00091
00092 }
00093 #endif