Vuo  2.4.0
VuoNodeClass.hh
Go to the documentation of this file.
1
10#pragma once
11
12#include "VuoBase.hh"
13#include "VuoModule.hh"
14
16class VuoPortClass;
17class VuoNode;
18
26class VuoNodeClass : public VuoBase<VuoCompilerNodeClass,void>, public VuoModule
27{
28public:
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
65private:
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};