HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
COP2_MultiBase.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: COP2_Multi.h
7  *
8  * COMMENTS:
9  * Base class for multi-input COPs. Handles depth/rate/frame range
10  * issues.
11  */
12 #ifndef _COP2_MULTI_BASE_H_
13 #define _COP2_MULTI_BASE_H_
14 
15 #include "COP2_API.h"
16 #include "COP2_Node.h"
17 
18 
19 #define ARG_MULTIBASE_PLANE_MERGE (myMultiParmBase +0)
20 #define ARG_MULTIBASE_DEPTH_MATCH (myMultiParmBase +1)
21 #define ARG_MULTIBASE_RANGE_MATCH (myMultiParmBase +2)
22 #define ARG_MULTIBASE_RATE_MATCH (myMultiParmBase +3)
23 #define ARG_MULTIBASE_FRAME_MATCH (myMultiParmBase +4)
24 
26 {
27 public:
28  TIL_Sequence *cookSequenceInfo(OP_ERROR &err) override;
29 
32  static PRM_Template myTemplateList[];
33  static CH_LocalVariable myVariableList[];
34 
35 protected:
36  COP2_MultiBase(OP_Network *parent, const char *name,
37  OP_Operator *entry);
38  ~COP2_MultiBase() override;
39 
41  { return COP2_THREAD_MULTI; }
42 
43  virtual int getPrimaryInput() const { return 0; }
44 
45  // We override this method because it is possible that we need
46  // to be considered time dependent if our inputs are static
47  // sequences and we don't match their range anymore.
48  void checkTimeDependencies( int do_parms=1,
49  int do_inputs=1,
50  int do_extras=1 ) override;
51 
52 private:
53 
54  int PLANE_MERGE()
55  { return evalInt(ARG_MULTIBASE_PLANE_MERGE,0,0); }
56 
57  int DEPTH_MATCH()
58  { return evalInt(ARG_MULTIBASE_DEPTH_MATCH,0,0); }
59 
60  int RANGE_MATCH()
61  { return evalInt(ARG_MULTIBASE_RANGE_MATCH,0,0); }
62 
63  int RATE_MATCH()
64  { return evalInt(ARG_MULTIBASE_RATE_MATCH,0,0); }
65 
66  int FRAME_MATCH()
67  { return evalInt(ARG_MULTIBASE_FRAME_MATCH,0,0); }
68 
69 
70  int myMultiParmBase;
71 };
72 
73 #endif
virtual int getPrimaryInput() const
UT_ErrorSeverity
Definition: UT_Error.h:25
#define ARG_MULTIBASE_PLANE_MERGE
#define ARG_MULTIBASE_RATE_MATCH
COP2_ThreadPref
Definition: COP2_Common.h:249
GLuint const GLchar * name
Definition: glcorearb.h:786
COP2_ThreadPref getThreadPreference() const override
#define ARG_MULTIBASE_RANGE_MATCH
static OP_VariablePair myVariablePair
#define COP2_API
Definition: COP2_API.h:10
static OP_TemplatePair myTemplatePair
virtual void checkTimeDependencies(int do_parms=1, int do_inputs=1, int do_extras=1)
#define ARG_MULTIBASE_DEPTH_MATCH
#define ARG_MULTIBASE_FRAME_MATCH
exint evalInt(int pi, int vi, fpreal t) const
virtual TIL_Sequence * cookSequenceInfo(OP_ERROR &error)=0