Vuo  2.0.0
VuoNodeClass.hh
Go to the documentation of this file.
1 
10 #pragma once
11 
12 #include "VuoBase.hh"
13 #include "VuoModule.hh"
14 
16 class VuoPortClass;
17 class VuoNode;
18 
26 class VuoNodeClass : public VuoBase<VuoCompilerNodeClass,void>, public VuoModule
27 {
28 public:
29  VuoNodeClass(string className, vector<string> inputPortClassNames, vector<string> outputPortClassNames);
30  VuoNodeClass(string className, VuoPortClass * refreshPortClass, vector<VuoPortClass *> inputPortClasses, vector<VuoPortClass *> outputPortClasses);
31  ~VuoNodeClass(void);
32 
35  static const string publishedInputNodeClassName;
36  static const string publishedOutputNodeClassName;
37  static const string publishedInputNodeIdentifier;
38  static const string publishedOutputNodeIdentifier;
39 
40  VuoNode * newNode(string title="", double x=0, double y=0);
41  VuoNode * newNode(VuoNode *nodeToCopyMetadataFrom);
42 
43  string getClassName(void);
44 
45  bool isTypecastNodeClass(void);
46  bool isDrawerNodeClass(void);
47 
48  vector<string> getExampleCompositionFileNames(void);
49  void setExampleCompositionFileNames(vector<string> exampleCompositionFileNames);
50 
51  bool getDeprecated(void);
52  void setDeprecated(bool deprecated);
53 
55  void setRefreshPortClass(VuoPortClass * refreshPortClass);
56 
57  vector<VuoPortClass *> getInputPortClasses(void);
58  void setInputPortClasses(vector<VuoPortClass *> inputPortClasses);
59 
60  vector<VuoPortClass *> getOutputPortClasses(void);
61  void setOutputPortClasses(vector<VuoPortClass *> outputPortClasses);
62 
63  void print(void);
64 
65 private:
66  bool deprecated;
67  vector<string> exampleCompositionFileNames;
68  VuoPortClass * refreshPortClass;
69  vector<VuoPortClass *> inputPortClasses;
70  vector<VuoPortClass *> outputPortClasses;
71 
72  bool _isTypecastNodeClass;
73  void updateTypecastNodeClassStatus();
74 };