HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
VOP_SubnetConnector.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 Library (C++)
7  *
8  */
9 
10 #ifndef __VOP_SubnetConnector_h__
11 #define __VOP_SubnetConnector_h__
12 
13 #include "VOP_API.h"
14 #include "VOP_ParameterBase.h"
15 
17 
19 {
20 public:
21  static OP_Node *myConstructor(OP_Network *net,
22  const char *name,
23  OP_Operator *entry);
24  static PRM_Template *buildTemplates(VOP_Language *language);
25 
26  virtual bool getParmConstantString(const char *parmname,
27  const VOP_TypeInfo &type_info,
28  UT_String &str,
29  bool expand_string,
30  const VOP_Language *language=0);
31 
32  virtual void getInputNameSubclass(UT_String &in, int idx) const;
33  virtual int getInputFromNameSubclass(const UT_String &in) const;
34  virtual const char *inputLabel(unsigned idx) const;
35  virtual bool forceCodeGenerationOfInputs(
36  const VOP_CodeGenContext &ctx,
37  bool check_shader_context) const;
38 
39  virtual void setPARMNAME(const UT_String &str);
40  void setPARMLABEL(const UT_String &str);
41  virtual void setPARMTYPEINDEX(int type);
42  virtual void setPARMSTORAGE(int type);
43  void setPARMSTRINGTYPE(const char *style);
44 
45  virtual void PARMSCOPE(UT_String &str) const;
46  virtual void PARMNAME(UT_String &str) const;
47  virtual void PARMLABEL(UT_String &str) const;
48  virtual int PARMTYPEINDEX() const;
49 
50  virtual bool isParmVisible() const;
51  virtual void copySettingsFrom(VOP_ParmGenerator *pvop);
52 
53 protected:
54  VOP_SubnetConnector(OP_Network *parent, const char *name,
55  OP_Operator *entry);
56  virtual ~VOP_SubnetConnector();
57 
58  virtual bool updateParmsFlags();
59 
60  // Override cook method just so we can set our warnings properly.
61  virtual bool USEASPARMDEFINER() const;
62  virtual int UNIFORM() const;
63  virtual int EXPORTPARM() const;
64 
65  virtual bool needsInput(void);
66 
67  // Determines based on the parm index if the PARMNAME may be changed
68  // when this parm is changed.
69  virtual bool getParmCanAffectParmName(int pidx) const;
70 
71  virtual void getInputTypeInfoSubclass(
72  VOP_TypeInfo &type_info, int idx);
73  virtual void getAllowedInputTypesSubclass(unsigned idx,
74  VOP_VopTypeArray &voptypes);
75 
76 private:
77  // Store the index of the Bind Name and Parameter Type parameters.
78  static int theParmNameParmIndex;
79  static int theParmTypeParmIndex;
80 };
81 
82 #endif
Reprsents a language for which VOPs can generate source code.
Definition: VOP_Language.h:27
virtual bool isParmVisible() const =0
virtual int UNIFORM() const =0
virtual bool updateParmsFlags()
virtual void PARMNAME(UT_String &str) const =0
virtual void copySettingsFrom(VOP_ParmGenerator *pvop)
Copy settings from a source parameter generator.
virtual void getAllowedInputTypesSubclass(unsigned idx, VOP_VopTypeArray &voptypes)
virtual bool getParmConstantString(const char *parmname, const VOP_TypeInfo &type_info, UT_String &str, bool expand_string, const VOP_Language *l=0)
Get the constant code that encodes the value of the node parameter.
virtual void PARMSCOPE(UT_String &str) const
virtual int getInputFromNameSubclass(const UT_String &in) const
virtual const char * inputLabel(unsigned idx) const
virtual void getInputTypeInfoSubclass(VOP_TypeInfo &type_info, int idx)
virtual void PARMLABEL(UT_String &str) const =0
virtual void setPARMTYPEINDEX(int type)
#define VOP_API
Definition: VOP_API.h:10
virtual int PARMTYPEINDEX() const =0
GLuint const GLchar * name
Definition: glcorearb.h:785
virtual void getInputNameSubclass(UT_String &in, int idx) const
virtual bool needsInput(void)=0
virtual bool USEASPARMDEFINER() const =0
virtual void setPARMSTORAGE(int type)
GLint GLint GLsizei GLint GLenum GLenum type
Definition: glcorearb.h:107
virtual bool forceCodeGenerationOfInputs(const VOP_CodeGenContext &ctx, bool check_shader_context) const
virtual void setPARMNAME(const UT_String &str)
virtual bool getParmCanAffectParmName(int pidx) const =0
virtual int EXPORTPARM() const