HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
OBJ_Null.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: OBJ_Null.h (Custom Library, C++)
7  *
8  * COMMENTS: An object to describe a motion capture handle
9  *
10  */
11 
12 #ifndef __OBJ_Null__
13 #define __OBJ_Null__
14 
15 #include "OBJ_API.h"
16 #include "OBJ_Geometry.h"
17 
19 {
30  I_N_NULL_INDICES // should always be last in the list
31 };
32 
34 {
35 public:
36  OBJ_Null(OP_Network *net,
37  const char *name,
38  OP_Operator *op);
39  virtual ~OBJ_Null();
40 
41  static OP_Node *myConstructor(OP_Network *net,
42  const char *name,
43  OP_Operator *entry);
44 
45  static PRM_Template *getTemplateList();
46 
47  virtual OBJ_OBJECT_TYPE getObjectType() const { return OBJ_STD_NULL; }
48 
50  {
51  return evalInt("renderspace",
53  0, t);
54  }
55 
56  fpreal GEOSCALE(fpreal t, int i=0)
57  {
58  return evalFloat("geoscale",
60  0, t)
61  * evalFloat("geosize",
63  i, t);
64  }
65 
67  {
68  return evalFloat("geocenter",
70  i, t);
71  }
72 
74  {
75  return evalFloat("georotate",
77  i, t);
78  }
79 
80  void GEOCUSTOM( UT_String &s )
81  {
82  evalStringRaw( s,
83  "geocustom",
85  0, 0);
86  }
87 
89  {
90  return evalInt("displayicon",
92  0, t);
93  }
94 
96  {
97  return evalInt("controltype",
99  0, t);
100  }
101 
103  {
104  return evalInt("orientation",
106  0, t);
107  }
108 
110  {
111  return evalInt("shadedmode",
113  0, t);
114  }
115 
116  virtual OBJ_Null *castToOBJNull() { return this; }
117 
118  virtual void syncNodeVersion(const char *old_version,
119  const char *cur_version,
120  bool *node_deleted);
121 
122 protected:
123  virtual bool updateParmsFlags();
124 
125  // Used to get pointer to indirection indices for each object type
126  virtual int *getIndirect() const
127  { return nullIndirect; }
128 
129  virtual int isObjectRenderable(fpreal t) const;
130 
131 private:
132  static int *nullIndirect;
133 };
134 
135 #endif
virtual void syncNodeVersion(const char *old_version, const char *current_version, bool *node_deleted)
fpreal evalFloat(int pi, int vi, fpreal t) const
virtual OBJ_OBJECT_TYPE getObjectType() const
Definition: OBJ_Null.h:47
virtual int * getIndirect() const
Definition: OBJ_Null.h:126
png_uint_32 i
Definition: png.h:2877
virtual OBJ_Null * castToOBJNull()
Definition: OBJ_Null.h:116
static PRM_Template * getTemplateList(OBJ_ParmsStyle style)
void GEOCUSTOM(UT_String &s)
Definition: OBJ_Null.h:80
int SHADEDMODE(fpreal t)
Definition: OBJ_Null.h:109
virtual int * getIndirect() const
Definition: OBJ_Geometry.h:106
GLuint const GLchar * name
Definition: glcorearb.h:785
static OP_Node * myConstructor(OP_Network *net, const char *name, OP_Operator *entry)
void evalStringRaw(UT_String &val, int pi, int vi, fpreal t) const
fpreal GEOROTATE(fpreal t, int i=0)
Definition: OBJ_Null.h:73
int DISPLAYICON(fpreal t)
Definition: OBJ_Null.h:88
OBJ_NullIndex
Definition: OBJ_Null.h:18
double fpreal
Definition: SYS_Types.h:270
virtual int isObjectRenderable(fpreal t) const
int ORIENTATION(fpreal t)
Definition: OBJ_Null.h:102
exint evalInt(int pi, int vi, fpreal t) const
fpreal GEOCENTER(fpreal t, int i=0)
Definition: OBJ_Null.h:66
fpreal GEOSCALE(fpreal t, int i=0)
Definition: OBJ_Null.h:56
#define OBJ_API
Definition: OBJ_API.h:10
int RENDERSPACE(fpreal t)
Definition: OBJ_Null.h:49
virtual bool updateParmsFlags() override
OBJ_OBJECT_TYPE
Definition: OBJ_Node.h:71
int CONTROLTYPE(fpreal t)
Definition: OBJ_Null.h:95