HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DOP_SubNet.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: DOP_SubNet.h ( SOP Library, C++)
7  *
8  * COMMENTS:
9  */
10 
11 #ifndef __DOP_SubNet_h__
12 #define __DOP_SubNet_h__
13 
14 #include "DOP_API.h"
15 #include "DOP_Node.h"
16 
17 class DOP_API DOP_SubNet : public DOP_Node
18 {
19 public:
20  DOP_SubNet(OP_Network *net, const char *name, OP_Operator *entry);
21  virtual ~DOP_SubNet();
22 
23  virtual const char *inputLabel(unsigned idx) const;
24 
25  static OP_Node *myConstructor(OP_Network *net, const char *name,
26  OP_Operator *entry);
27  static PRM_Template myTemplateList[];
28 
29  virtual void getNodeSpecificInfoText(OP_Context &context,
30  OP_NodeInfoParms &iparms);
31 
32  /// Our number of visible outputs is always equal to the number of
33  /// visible output on the display node inside us.
34  virtual unsigned getNumVisibleOutputs() const;
35 
36  /// To evaluate local variables, we defer to the node that is
37  /// currently being processed by the engine.
38  virtual bool evalVariableValue(
39  fpreal &value, int index, int thread);
40  virtual bool evalVariableValue(
41  UT_String &value, int index, int thread);
42 
43  void collectChildErrors();
44 
45  static const char *theChildTableName;
46 
47 protected:
48  /// Cooking a DOP_SubNet calls cook on the child display node.
49  virtual OP_ERROR cookMe(OP_Context &);
50 
51  virtual void getRequiredOutputsSubclass(fpreal time,
52  int foroutputidx,
53  UT_Array<DOP_Output> &outputs,
54  const DOP_Engine &engine);
55  virtual void applyOutputDataSubclass(fpreal time, int outputidx,
56  SIM_RootData &rootdata,
57  const char *parentdataname,
58  DOP_Engine &engine,
59  UT_StringArray *datanames);
60  virtual void getInputInfoSubclass(int inputidx,
61  DOP_InOutInfo &info) const;
62  virtual void getOutputInfoSubclass(int outputidx,
63  DOP_InOutInfo &info) const;
64 };
65 
66 #endif
virtual bool evalVariableValue(fpreal &v, int index, int thread)
Handle the evaluation of standard local variables.
UT_ErrorSeverity
Definition: UT_Error.h:25
Parameters for OP_Node::getInfoText()/OP_Node::getNodeSpecificInfoText()
virtual unsigned getNumVisibleOutputs() const
virtual const char * inputLabel(unsigned idx) const
REturn text describing a particular input.
#define DOP_API
Definition: DOP_API.h:10
virtual void getOutputInfoSubclass(int outputidx, DOP_InOutInfo &info) const
This default implementation specifies the output sends out objects.
virtual void getNodeSpecificInfoText(OP_Context &context, OP_NodeInfoParms &iparms)
Get the MMB info text for this node.
GLuint const GLchar * name
Definition: glcorearb.h:785
GLsizei const GLfloat * value
Definition: glcorearb.h:823
double fpreal
Definition: SYS_Types.h:269
static const char * theChildTableName
Definition: DOP_SubNet.h:45
GLuint index
Definition: glcorearb.h:785
virtual void applyOutputDataSubclass(fpreal time, int outputidx, SIM_RootData &rootdata, const char *parentdataname, DOP_Engine &engine, UT_StringArray *datanames)
virtual void getInputInfoSubclass(int inputidx, DOP_InOutInfo &info) const
This default implementation specifies the input accepts objects.
This is the base class for all DOP nodes.
Definition: DOP_Node.h:75
virtual OP_ERROR cookMe(OP_Context &)
Cooking a DOP_Node just performs some basic error checks.
virtual void getRequiredOutputsSubclass(fpreal time, int foroutputidx, UT_Array< DOP_Output > &outputs, const DOP_Engine &engine)
This default implementation indicates that all inputs are required.