HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VOP_Operator.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: VOP_Operator.h ( VOP Library, C++)
7  *
8  * COMMENTS: Special class which has additional knowledge about the operator
9  * being described.
10  */
11 
12 #ifndef __VOP_Operator__
13 #define __VOP_Operator__
14 
15 #include "VOP_API.h"
16 #include <OP/OP_Operator.h>
17 #include "VOP_OperatorInfo.h"
18 
20 public:
21  VOP_Operator(const char *name,
22  const char *english,
23  OP_Constructor construct,
24  PRM_Template *templates,
25  const char *child_table_name,
26  unsigned min_sources,
27  unsigned max_sources,
28  const char *vopnetMask,
29  CH_LocalVariable *variables = 0,
30  unsigned flags = 0,
31  unsigned num_outputs = 1);
32 
33  ~VOP_Operator() override;
34 
36  { return &myOperatorInfo; }
37  const OP_SpecificData *getOpSpecificData() const override
38  { return &myOperatorInfo; }
39 
40  unsigned maxOutputs() override;
41 
42  bool wantsInputEditor() const override;
43  bool wantsParmOrderEditor() const override;
44  bool wantsOutputNameEditor() const override;
45  bool wantsParentInputs() const override;
46 
47  /// Returns VOP operator for the given shader name.
48  /// Shader name is a generic identifier or opdef path, and the returned
49  /// operator that shader as a VOP (or nullptr if no such op was found).
50  static OP_Operator * getShaderOperator( const UT_StringRef &shader_id );
51 
52 private:
53  VOP_OperatorInfo myOperatorInfo;
54  unsigned myNumOutputs;
55 };
56 
57 #endif
GLbitfield flags
Definition: glcorearb.h:1596
std::function< OP_Ptr(OP_Network *, const char *, OP_Operator *)> OP_Constructor
Definition: OP_Operator.h:107
virtual bool wantsParentInputs() const
virtual bool wantsParmOrderEditor() const
OP_SpecificData * getOpSpecificData() override
Definition: VOP_Operator.h:35
const OP_SpecificData * getOpSpecificData() const override
Definition: VOP_Operator.h:37
#define VOP_API
Definition: VOP_API.h:10
GLuint const GLchar * name
Definition: glcorearb.h:786
virtual unsigned maxOutputs()
Definition: OP_Operator.h:417
virtual bool wantsInputEditor() const
virtual bool wantsOutputNameEditor() const