HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_CameraEdit.proto.h
Go to the documentation of this file.
1 /* Automagically Generated by generate_proto.py
2  * Do not Edit
3  */
4 #pragma once
5 
6 #include <SOP/SOP_API.h>
7 #include <SOP/SOP_NodeVerb.h>
8 #include <OP/OP_GraphProxy.h>
9 
10 #include <OP/OP_Utils.h>
11 #include <PRM/PRM_Parm.h>
12 #include <UT/UT_IStream.h>
13 #include <UT/UT_NTStreamUtil.h>
14 #include <UT/UT_Ramp.h>
15 #include <UT/UT_SharedPtr.h>
16 #include <UT/UT_StringHolder.h>
17 #include <UT/UT_StringStream.h>
18 #include <UT/UT_VectorTypes.h>
19 #include <UT/UT_EnvControl.h>
20 #include <SYS/SYS_Types.h>
21 
22 class DEP_MicroNode;
23 namespace SOP_CameraEditEnums
24 {
25  enum class Xord
26  {
27  SRT = 0,
28  STR,
29  RST,
30  RTS,
31  TSR,
32  TRS
33  };
34 
36  getToken(Xord enum_value)
37  {
38  using namespace UT::Literal;
39  switch (enum_value) {
40  case Xord::SRT: return "srt"_sh;
41  case Xord::STR: return "str"_sh;
42  case Xord::RST: return "rst"_sh;
43  case Xord::RTS: return "rts"_sh;
44  case Xord::TSR: return "tsr"_sh;
45  case Xord::TRS: return "trs"_sh;
46  default: UT_ASSERT(false); return ""_sh;
47  }
48  }
49 
50  enum class Rord
51  {
52  XYZ = 0,
53  XZY,
54  YXZ,
55  YZX,
56  ZXY,
57  ZYX
58  };
59 
61  getToken(Rord enum_value)
62  {
63  using namespace UT::Literal;
64  switch (enum_value) {
65  case Rord::XYZ: return "xyz"_sh;
66  case Rord::XZY: return "xzy"_sh;
67  case Rord::YXZ: return "yxz"_sh;
68  case Rord::YZX: return "yzx"_sh;
69  case Rord::ZXY: return "zxy"_sh;
70  case Rord::ZYX: return "zyx"_sh;
71  default: UT_ASSERT(false); return ""_sh;
72  }
73  }
74 
75  enum class Posmethod
76  {
77  VECTOR = 0,
79  };
80 
82  getToken(Posmethod enum_value)
83  {
84  using namespace UT::Literal;
85  switch (enum_value) {
86  case Posmethod::VECTOR: return "vector"_sh;
87  case Posmethod::SECONDINPUT: return "secondinput"_sh;
88  default: UT_ASSERT(false); return ""_sh;
89  }
90  }
91 
92  enum class Upvecmethod
93  {
94  YAXIS = 0,
95  XAXIS,
96  CUSTOM
97  };
98 
100  getToken(Upvecmethod enum_value)
101  {
102  using namespace UT::Literal;
103  switch (enum_value) {
104  case Upvecmethod::YAXIS: return "yaxis"_sh;
105  case Upvecmethod::XAXIS: return "xaxis"_sh;
106  case Upvecmethod::CUSTOM: return "custom"_sh;
107  default: UT_ASSERT(false); return ""_sh;
108  }
109  }
110 
111  enum class Projection
112  {
113  PERSPECTIVE = 0,
114  ORTHO
115  };
116 
118  getToken(Projection enum_value)
119  {
120  using namespace UT::Literal;
121  switch (enum_value) {
122  case Projection::PERSPECTIVE: return "perspective"_sh;
123  case Projection::ORTHO: return "ortho"_sh;
124  default: UT_ASSERT(false); return ""_sh;
125  }
126  }
127 
128  enum class Focusmethod
129  {
130  PARM = 0,
131  POSITION,
132  TARGET
133  };
134 
136  getToken(Focusmethod enum_value)
137  {
138  using namespace UT::Literal;
139  switch (enum_value) {
140  case Focusmethod::PARM: return "parm"_sh;
141  case Focusmethod::POSITION: return "position"_sh;
142  case Focusmethod::TARGET: return "target"_sh;
143  default: UT_ASSERT(false); return ""_sh;
144  }
145  }
146 
147 }
148 
149 
151 {
152 public:
153  static int version() { return 1; }
154 
156  {
157  myGroup = ""_UTsh;
158  myDotransform = false;
159  myXord = 0;
160  myRord = 0;
161  myT = UT_Vector3D(0,0,0);
162  myR = UT_Vector3D(0,0,0);
163  myP = UT_Vector3D(0,0,0);
164  myPr = UT_Vector3D(0,0,0);
165  myDolookat = false;
166  myPosmethod = 0;
167  myLookatposition = UT_Vector3D(0,0,0);
168  myPosgroup = ""_UTsh;
169  myUpvecmethod = 0;
170  myUpvec = UT_Vector3D(0,1,0);
171  myTwist = 0;
172  myDoview = false;
173  myDores = false;
174  myRes = 0;
175  myResmenu = 0;
176  myDoprojection = false;
177  myProjection = 0;
178  myDofocal = false;
179  myFocal = 50;
180  myDoaperture = false;
181  myAperture = 41.4214;
182  myDoorthowidth = false;
183  myOrthowidth = 1;
184  myDonearclip = false;
185  myNearclip = 0.001;
186  myDofarclip = false;
187  myFarclip = 10000.0;
188  myDowin = false;
189  myWin = UT_Vector2D(0,0);
190  myDowinsize = false;
191  myWinsize = UT_Vector2D(1,1);
192  myDocropl = false;
193  myCropl = 0;
194  myDocropr = false;
195  myCropr = 1;
196  myDocropb = false;
197  myCropb = 0;
198  myDocropt = false;
199  myCropt = 1;
200  myDoimgdist = false;
201  myImgdist = 1;
202  myDoguidescale = false;
203  myGuidescale = 1;
204  myDosampling = false;
205  myDoshutteropen = false;
206  myShutteropen = -0.25;
207  myDoshutterclose = false;
208  myShutterclose = 0.25;
209  myDofocus = false;
210  myFocusmethod = 0;
211  myDofstop = false;
212  myFstop = 5.6;
213  myFocus = 5;
214  myFocusposition = UT_Vector3D(0,0,0);
215  myFocustargetgroup = ""_UTsh;
216 
217  }
218 
219  explicit SOP_CameraEditParms(const SOP_CameraEditParms &) = default;
221  SOP_CameraEditParms(SOP_CameraEditParms &&) noexcept = default;
222  SOP_CameraEditParms &operator=(SOP_CameraEditParms &&) noexcept = default;
223 
224  ~SOP_CameraEditParms() override {}
225 
226  bool operator==(const SOP_CameraEditParms &src) const
227  {
228  if (myGroup != src.myGroup) return false;
229  if (myDotransform != src.myDotransform) return false;
230  if (myXord != src.myXord) return false;
231  if (myRord != src.myRord) return false;
232  if (myT != src.myT) return false;
233  if (myR != src.myR) return false;
234  if (myP != src.myP) return false;
235  if (myPr != src.myPr) return false;
236  if (myDolookat != src.myDolookat) return false;
237  if (myPosmethod != src.myPosmethod) return false;
238  if (myLookatposition != src.myLookatposition) return false;
239  if (myPosgroup != src.myPosgroup) return false;
240  if (myUpvecmethod != src.myUpvecmethod) return false;
241  if (myUpvec != src.myUpvec) return false;
242  if (myTwist != src.myTwist) return false;
243  if (myDoview != src.myDoview) return false;
244  if (myDores != src.myDores) return false;
245  if (myRes != src.myRes) return false;
246  if (myResmenu != src.myResmenu) return false;
247  if (myDoprojection != src.myDoprojection) return false;
248  if (myProjection != src.myProjection) return false;
249  if (myDofocal != src.myDofocal) return false;
250  if (myFocal != src.myFocal) return false;
251  if (myDoaperture != src.myDoaperture) return false;
252  if (myAperture != src.myAperture) return false;
253  if (myDoorthowidth != src.myDoorthowidth) return false;
254  if (myOrthowidth != src.myOrthowidth) return false;
255  if (myDonearclip != src.myDonearclip) return false;
256  if (myNearclip != src.myNearclip) return false;
257  if (myDofarclip != src.myDofarclip) return false;
258  if (myFarclip != src.myFarclip) return false;
259  if (myDowin != src.myDowin) return false;
260  if (myWin != src.myWin) return false;
261  if (myDowinsize != src.myDowinsize) return false;
262  if (myWinsize != src.myWinsize) return false;
263  if (myDocropl != src.myDocropl) return false;
264  if (myCropl != src.myCropl) return false;
265  if (myDocropr != src.myDocropr) return false;
266  if (myCropr != src.myCropr) return false;
267  if (myDocropb != src.myDocropb) return false;
268  if (myCropb != src.myCropb) return false;
269  if (myDocropt != src.myDocropt) return false;
270  if (myCropt != src.myCropt) return false;
271  if (myDoimgdist != src.myDoimgdist) return false;
272  if (myImgdist != src.myImgdist) return false;
273  if (myDoguidescale != src.myDoguidescale) return false;
274  if (myGuidescale != src.myGuidescale) return false;
275  if (myDosampling != src.myDosampling) return false;
276  if (myDoshutteropen != src.myDoshutteropen) return false;
277  if (myShutteropen != src.myShutteropen) return false;
278  if (myDoshutterclose != src.myDoshutterclose) return false;
279  if (myShutterclose != src.myShutterclose) return false;
280  if (myDofocus != src.myDofocus) return false;
281  if (myFocusmethod != src.myFocusmethod) return false;
282  if (myDofstop != src.myDofstop) return false;
283  if (myFstop != src.myFstop) return false;
284  if (myFocus != src.myFocus) return false;
285  if (myFocusposition != src.myFocusposition) return false;
286  if (myFocustargetgroup != src.myFocustargetgroup) return false;
287 
288 
289  if (baseGetSignature() != src.baseGetSignature()) return false;
290 
291  return true;
292  }
293  bool operator!=(const SOP_CameraEditParms &src) const
294  {
295  return !operator==(src);
296  }
303 
304 
305 
306  void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
307  {
308  myGroup = ""_UTsh;
309  if (true)
310  graph->evalOpParm(myGroup, nodeidx, "group", time, graph->isDirect()?nullptr:depnode);
311  myDotransform = false;
312  if (true)
313  graph->evalOpParm(myDotransform, nodeidx, "dotransform", time, graph->isDirect()?nullptr:depnode);
314  myXord = 0;
315  if (true && ( (true&&!(((getDotransform()==0)))) ) )
316  graph->evalOpParm(myXord, nodeidx, "xOrd", time, graph->isDirect()?nullptr:depnode);
317  myRord = 0;
318  if (true && ( (true&&!(((getDotransform()==0)))) ) )
319  graph->evalOpParm(myRord, nodeidx, "rOrd", time, graph->isDirect()?nullptr:depnode);
320  myT = UT_Vector3D(0,0,0);
321  if (true && ( (true&&!(((getDotransform()==0)))) ) )
322  graph->evalOpParm(myT, nodeidx, "t", time, graph->isDirect()?nullptr:depnode);
323  myR = UT_Vector3D(0,0,0);
324  if (true && ( (true&&!(((getDotransform()==0)))) ) )
325  graph->evalOpParm(myR, nodeidx, "r", time, graph->isDirect()?nullptr:depnode);
326  myP = UT_Vector3D(0,0,0);
327  if (true && ( (true&&!(((getDotransform()==0)))) ) )
328  graph->evalOpParm(myP, nodeidx, "p", time, graph->isDirect()?nullptr:depnode);
329  myPr = UT_Vector3D(0,0,0);
330  if (true && ( (true&&!(((getDotransform()==0)))) ) )
331  graph->evalOpParm(myPr, nodeidx, "pr", time, graph->isDirect()?nullptr:depnode);
332  myDolookat = false;
333  if (true && ( (true&&!(((getDotransform()==0)))) ) )
334  graph->evalOpParm(myDolookat, nodeidx, "dolookat", time, graph->isDirect()?nullptr:depnode);
335  myPosmethod = 0;
336  if (true && ( (true&&!(((getDolookat()==0))||((getDotransform()==0)))) ) )
337  graph->evalOpParm(myPosmethod, nodeidx, "posmethod", time, graph->isDirect()?nullptr:depnode);
338  myLookatposition = UT_Vector3D(0,0,0);
339  if (true && ( (true&&!(((getDolookat()==0))||((getDotransform()==0))||((int64(getPosmethod())==1)))) ) )
340  graph->evalOpParm(myLookatposition, nodeidx, "lookatposition", time, graph->isDirect()?nullptr:depnode);
341  myPosgroup = ""_UTsh;
342  if (true && ( (true&&!(((getDolookat()==0))||((getDotransform()==0))||((int64(getPosmethod())==0)))) ) )
343  graph->evalOpParm(myPosgroup, nodeidx, "posgroup", time, graph->isDirect()?nullptr:depnode);
344  myUpvecmethod = 0;
345  if (true && ( (true&&!(((getDolookat()==0))||((getDotransform()==0)))) ) )
346  graph->evalOpParm(myUpvecmethod, nodeidx, "upvecmethod", time, graph->isDirect()?nullptr:depnode);
347  myUpvec = UT_Vector3D(0,1,0);
348  if (true && ( (true&&!(((getDolookat()==0))||((getDotransform()==0))||((int64(getUpvecmethod())!=2)))) ) )
349  graph->evalOpParm(myUpvec, nodeidx, "upvec", time, graph->isDirect()?nullptr:depnode);
350  myTwist = 0;
351  if (true && ( (true&&!(((getDolookat()==0))||((getDotransform()==0)))) ) )
352  graph->evalOpParm(myTwist, nodeidx, "twist", time, graph->isDirect()?nullptr:depnode);
353  myDoview = false;
354  if (true)
355  graph->evalOpParm(myDoview, nodeidx, "doview", time, graph->isDirect()?nullptr:depnode);
356  myDores = false;
357  if (true && ( (true&&!(((getDoview()==0)))) ) )
358  graph->evalOpParm(myDores, nodeidx, "dores", time, graph->isDirect()?nullptr:depnode);
359  myRes = 0;
360  if (true && ( (true&&!(((getDores()==0))||((getDoview()==0)))) ) )
361  graph->evalOpParm(myRes, nodeidx, "res", time, graph->isDirect()?nullptr:depnode);
362  myResmenu = 0;
363  if (true && ( (true&&!(((getDores()==0))||((getDoview()==0)))) ) )
364  graph->evalOpParm(myResmenu, nodeidx, "resmenu", time, graph->isDirect()?nullptr:depnode);
365  myDoprojection = false;
366  if (true && ( (true&&!(((getDoview()==0)))) ) )
367  graph->evalOpParm(myDoprojection, nodeidx, "doprojection", time, graph->isDirect()?nullptr:depnode);
368  myProjection = 0;
369  if (true && ( (true&&!(((getDoprojection()==0))||((getDoview()==0)))) ) )
370  graph->evalOpParm(myProjection, nodeidx, "projection", time, graph->isDirect()?nullptr:depnode);
371  myDofocal = false;
372  if (true && ( (true&&!(((getDoview()==0)))) ) )
373  graph->evalOpParm(myDofocal, nodeidx, "dofocal", time, graph->isDirect()?nullptr:depnode);
374  myFocal = 50;
375  if (true && ( (true&&!(((getDofocal()==0))||((getDoview()==0)))) ) )
376  graph->evalOpParm(myFocal, nodeidx, "focal", time, graph->isDirect()?nullptr:depnode);
377  myDoaperture = false;
378  if (true && ( (true&&!(((getDoview()==0)))) ) )
379  graph->evalOpParm(myDoaperture, nodeidx, "doaperture", time, graph->isDirect()?nullptr:depnode);
380  myAperture = 41.4214;
381  if (true && ( (true&&!(((getDoaperture()==0))||((getDoview()==0)))) ) )
382  graph->evalOpParm(myAperture, nodeidx, "aperture", time, graph->isDirect()?nullptr:depnode);
383  myDoorthowidth = false;
384  if (true && ( (true&&!(((getDoview()==0)))) ) )
385  graph->evalOpParm(myDoorthowidth, nodeidx, "doorthowidth", time, graph->isDirect()?nullptr:depnode);
386  myOrthowidth = 1;
387  if (true && ( (true&&!(((getDoorthowidth()==0))||((getDoview()==0)))) ) )
388  graph->evalOpParm(myOrthowidth, nodeidx, "orthowidth", time, graph->isDirect()?nullptr:depnode);
389  myDonearclip = false;
390  if (true && ( (true&&!(((getDoview()==0)))) ) )
391  graph->evalOpParm(myDonearclip, nodeidx, "donearclip", time, graph->isDirect()?nullptr:depnode);
392  myNearclip = 0.001;
393  if (true && ( (true&&!(((getDonearclip()==0))||((getDoview()==0)))) ) )
394  graph->evalOpParm(myNearclip, nodeidx, "nearclip", time, graph->isDirect()?nullptr:depnode);
395  myDofarclip = false;
396  if (true && ( (true&&!(((getDoview()==0)))) ) )
397  graph->evalOpParm(myDofarclip, nodeidx, "dofarclip", time, graph->isDirect()?nullptr:depnode);
398  myFarclip = 10000.0;
399  if (true && ( (true&&!(((getDofarclip()==0))||((getDoview()==0)))) ) )
400  graph->evalOpParm(myFarclip, nodeidx, "farclip", time, graph->isDirect()?nullptr:depnode);
401  myDowin = false;
402  if (true && ( (true&&!(((getDoview()==0)))) ) )
403  graph->evalOpParm(myDowin, nodeidx, "dowin", time, graph->isDirect()?nullptr:depnode);
404  myWin = UT_Vector2D(0,0);
405  if (true && ( (true&&!(((getDowin()==0))||((getDoview()==0)))) ) )
406  graph->evalOpParm(myWin, nodeidx, "win", time, graph->isDirect()?nullptr:depnode);
407  myDowinsize = false;
408  if (true && ( (true&&!(((getDoview()==0)))) ) )
409  graph->evalOpParm(myDowinsize, nodeidx, "dowinsize", time, graph->isDirect()?nullptr:depnode);
410  myWinsize = UT_Vector2D(1,1);
411  if (true && ( (true&&!(((getDowinsize()==0))||((false)))) ) )
412  graph->evalOpParm(myWinsize, nodeidx, "winsize", time, graph->isDirect()?nullptr:depnode);
413  myDocropl = false;
414  if (true && ( (true&&!(((getDoview()==0)))) ) )
415  graph->evalOpParm(myDocropl, nodeidx, "docropl", time, graph->isDirect()?nullptr:depnode);
416  myCropl = 0;
417  if (true && ( (true&&!(((getDocropl()==0))||((getDoview()==0)))) ) )
418  graph->evalOpParm(myCropl, nodeidx, "cropl", time, graph->isDirect()?nullptr:depnode);
419  myDocropr = false;
420  if (true && ( (true&&!(((getDoview()==0)))) ) )
421  graph->evalOpParm(myDocropr, nodeidx, "docropr", time, graph->isDirect()?nullptr:depnode);
422  myCropr = 1;
423  if (true && ( (true&&!(((getDocropr()==0))||((getDoview()==0)))) ) )
424  graph->evalOpParm(myCropr, nodeidx, "cropr", time, graph->isDirect()?nullptr:depnode);
425  myDocropb = false;
426  if (true && ( (true&&!(((getDoview()==0)))) ) )
427  graph->evalOpParm(myDocropb, nodeidx, "docropb", time, graph->isDirect()?nullptr:depnode);
428  myCropb = 0;
429  if (true && ( (true&&!(((getDocropb()==0))||((getDoview()==0)))) ) )
430  graph->evalOpParm(myCropb, nodeidx, "cropb", time, graph->isDirect()?nullptr:depnode);
431  myDocropt = false;
432  if (true && ( (true&&!(((getDoview()==0)))) ) )
433  graph->evalOpParm(myDocropt, nodeidx, "docropt", time, graph->isDirect()?nullptr:depnode);
434  myCropt = 1;
435  if (true && ( (true&&!(((getDocropt()==0))||((getDoview()==0)))) ) )
436  graph->evalOpParm(myCropt, nodeidx, "cropt", time, graph->isDirect()?nullptr:depnode);
437  myDoimgdist = false;
438  if (true && ( (true&&!(((getDoview()==0)))) ) )
439  graph->evalOpParm(myDoimgdist, nodeidx, "doimgdist", time, graph->isDirect()?nullptr:depnode);
440  myImgdist = 1;
441  if (true && ( (true&&!(((getDoimgdist()==0))||((getDoview()==0)))) ) )
442  graph->evalOpParm(myImgdist, nodeidx, "imgdist", time, graph->isDirect()?nullptr:depnode);
443  myDoguidescale = false;
444  if (true && ( (true&&!(((getDoview()==0)))) ) )
445  graph->evalOpParm(myDoguidescale, nodeidx, "doguidescale", time, graph->isDirect()?nullptr:depnode);
446  myGuidescale = 1;
447  if (true && ( (true&&!(((getDoguidescale()==0))||((getDoview()==0)))) ) )
448  graph->evalOpParm(myGuidescale, nodeidx, "guidescale", time, graph->isDirect()?nullptr:depnode);
449  myDosampling = false;
450  if (true)
451  graph->evalOpParm(myDosampling, nodeidx, "dosampling", time, graph->isDirect()?nullptr:depnode);
452  myDoshutteropen = false;
453  if (true && ( (true&&!(((getDosampling()==0)))) ) )
454  graph->evalOpParm(myDoshutteropen, nodeidx, "doshutteropen", time, graph->isDirect()?nullptr:depnode);
455  myShutteropen = -0.25;
456  if (true && ( (true&&!(((getDoshutteropen()==0))||((getDosampling()==0)))) ) )
457  graph->evalOpParm(myShutteropen, nodeidx, "shutteropen", time, graph->isDirect()?nullptr:depnode);
458  myDoshutterclose = false;
459  if (true && ( (true&&!(((getDosampling()==0)))) ) )
460  graph->evalOpParm(myDoshutterclose, nodeidx, "doshutterclose", time, graph->isDirect()?nullptr:depnode);
461  myShutterclose = 0.25;
462  if (true && ( (true&&!(((getDoshutterclose()==0))||((getDosampling()==0)))) ) )
463  graph->evalOpParm(myShutterclose, nodeidx, "shutterclose", time, graph->isDirect()?nullptr:depnode);
464  myDofocus = false;
465  if (true && ( (true&&!(((getDosampling()==0)))) ) )
466  graph->evalOpParm(myDofocus, nodeidx, "dofocus", time, graph->isDirect()?nullptr:depnode);
467  myFocusmethod = 0;
468  if (true && ( (true&&!(((getDofocus()==0))||((getDosampling()==0)))) ) )
469  graph->evalOpParm(myFocusmethod, nodeidx, "focusmethod", time, graph->isDirect()?nullptr:depnode);
470  myDofstop = false;
471  if (true && ( (true&&!(((getDosampling()==0)))) ) )
472  graph->evalOpParm(myDofstop, nodeidx, "dofstop", time, graph->isDirect()?nullptr:depnode);
473  myFstop = 5.6;
474  if (true && ( (true&&!(((getDofstop()==0))||((getDosampling()==0)))) ) )
475  graph->evalOpParm(myFstop, nodeidx, "fstop", time, graph->isDirect()?nullptr:depnode);
476  myFocus = 5;
477  if (true && ( (true&&!(((getDofocus()==0))||((getDosampling()==0))||((int64(getFocusmethod())!=0)))) ) )
478  graph->evalOpParm(myFocus, nodeidx, "focus", time, graph->isDirect()?nullptr:depnode);
479  myFocusposition = UT_Vector3D(0,0,0);
480  if (true && ( (true&&!(((getDofocus()==0))||((getDosampling()==0))||((int64(getFocusmethod())!=1)))) ) )
481  graph->evalOpParm(myFocusposition, nodeidx, "focusposition", time, graph->isDirect()?nullptr:depnode);
482  myFocustargetgroup = ""_UTsh;
483  if (true && ( (true&&!(((getDofocus()==0))||((getDosampling()==0))||((int64(getFocusmethod())!=2)))) ) )
484  graph->evalOpParm(myFocustargetgroup, nodeidx, "focustargetgroup", time, graph->isDirect()?nullptr:depnode);
485 
486  }
487 
488 
489  void loadFromOpSubclass(const LoadParms &loadparms) override
490  {
491  buildFromOp(loadparms.graph(), loadparms.nodeIdx(), loadparms.context().getTime(), loadparms.depnode());
492  }
493 
494 
495  void copyFrom(const OP_NodeParms *src) override
496  {
497  *this = *((const SOP_CameraEditParms *)src);
498  }
499 
500  template <typename T>
501  void
502  doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
503  {
504  if (idx.size() < 1)
505  return;
506  UT_ASSERT(idx.size() == instance.size()+1);
507  if (idx.size() != instance.size()+1)
508  return;
509  switch (idx[0])
510  {
511  case 0:
512  coerceValue(value, myGroup);
513  break;
514  case 1:
515  coerceValue(value, myDotransform);
516  break;
517  case 2:
518  coerceValue(value, myXord);
519  break;
520  case 3:
521  coerceValue(value, myRord);
522  break;
523  case 4:
524  coerceValue(value, myT);
525  break;
526  case 5:
527  coerceValue(value, myR);
528  break;
529  case 6:
530  coerceValue(value, myP);
531  break;
532  case 7:
533  coerceValue(value, myPr);
534  break;
535  case 8:
536  coerceValue(value, myDolookat);
537  break;
538  case 9:
539  coerceValue(value, myPosmethod);
540  break;
541  case 10:
542  coerceValue(value, myLookatposition);
543  break;
544  case 11:
545  coerceValue(value, myPosgroup);
546  break;
547  case 12:
548  coerceValue(value, myUpvecmethod);
549  break;
550  case 13:
551  coerceValue(value, myUpvec);
552  break;
553  case 14:
554  coerceValue(value, myTwist);
555  break;
556  case 15:
557  coerceValue(value, myDoview);
558  break;
559  case 16:
560  coerceValue(value, myDores);
561  break;
562  case 17:
563  coerceValue(value, myRes);
564  break;
565  case 18:
566  coerceValue(value, myResmenu);
567  break;
568  case 19:
569  coerceValue(value, myDoprojection);
570  break;
571  case 20:
572  coerceValue(value, myProjection);
573  break;
574  case 21:
575  coerceValue(value, myDofocal);
576  break;
577  case 22:
578  coerceValue(value, myFocal);
579  break;
580  case 23:
581  coerceValue(value, myDoaperture);
582  break;
583  case 24:
584  coerceValue(value, myAperture);
585  break;
586  case 25:
587  coerceValue(value, myDoorthowidth);
588  break;
589  case 26:
590  coerceValue(value, myOrthowidth);
591  break;
592  case 27:
593  coerceValue(value, myDonearclip);
594  break;
595  case 28:
596  coerceValue(value, myNearclip);
597  break;
598  case 29:
599  coerceValue(value, myDofarclip);
600  break;
601  case 30:
602  coerceValue(value, myFarclip);
603  break;
604  case 31:
605  coerceValue(value, myDowin);
606  break;
607  case 32:
608  coerceValue(value, myWin);
609  break;
610  case 33:
611  coerceValue(value, myDowinsize);
612  break;
613  case 34:
614  coerceValue(value, myWinsize);
615  break;
616  case 35:
617  coerceValue(value, myDocropl);
618  break;
619  case 36:
620  coerceValue(value, myCropl);
621  break;
622  case 37:
623  coerceValue(value, myDocropr);
624  break;
625  case 38:
626  coerceValue(value, myCropr);
627  break;
628  case 39:
629  coerceValue(value, myDocropb);
630  break;
631  case 40:
632  coerceValue(value, myCropb);
633  break;
634  case 41:
635  coerceValue(value, myDocropt);
636  break;
637  case 42:
638  coerceValue(value, myCropt);
639  break;
640  case 43:
641  coerceValue(value, myDoimgdist);
642  break;
643  case 44:
644  coerceValue(value, myImgdist);
645  break;
646  case 45:
647  coerceValue(value, myDoguidescale);
648  break;
649  case 46:
650  coerceValue(value, myGuidescale);
651  break;
652  case 47:
653  coerceValue(value, myDosampling);
654  break;
655  case 48:
656  coerceValue(value, myDoshutteropen);
657  break;
658  case 49:
659  coerceValue(value, myShutteropen);
660  break;
661  case 50:
662  coerceValue(value, myDoshutterclose);
663  break;
664  case 51:
665  coerceValue(value, myShutterclose);
666  break;
667  case 52:
668  coerceValue(value, myDofocus);
669  break;
670  case 53:
671  coerceValue(value, myFocusmethod);
672  break;
673  case 54:
674  coerceValue(value, myDofstop);
675  break;
676  case 55:
677  coerceValue(value, myFstop);
678  break;
679  case 56:
680  coerceValue(value, myFocus);
681  break;
682  case 57:
683  coerceValue(value, myFocusposition);
684  break;
685  case 58:
686  coerceValue(value, myFocustargetgroup);
687  break;
688 
689  }
690  }
691 
692  bool isParmColorRamp(exint idx) const override
693  {
694  switch (idx)
695  {
696 
697  }
698  return false;
699  }
700 
701  void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
702  { doGetParmValue(idx, instance, value); }
703  void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
704  { doGetParmValue(idx, instance, value); }
705  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
706  { doGetParmValue(idx, instance, value); }
707  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
708  { doGetParmValue(idx, instance, value); }
709  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
710  { doGetParmValue(idx, instance, value); }
711  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
712  { doGetParmValue(idx, instance, value); }
713  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
714  { doGetParmValue(idx, instance, value); }
715  void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
716  { doGetParmValue(idx, instance, value); }
717  void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
718  { doGetParmValue(idx, instance, value); }
719  void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr<UT_Ramp> &value) const override
720  { doGetParmValue(idx, instance, value); }
721  void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
722  { doGetParmValue(idx, instance, value); }
723 
724  template <typename T>
725  void
726  doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
727  {
728  if (idx.size() < 1)
729  return;
730  UT_ASSERT(idx.size() == instance.size()+1);
731  if (idx.size() != instance.size()+1)
732  return;
733  switch (idx[0])
734  {
735  case 0:
736  coerceValue(myGroup, ( ( value ) ));
737  break;
738  case 1:
739  coerceValue(myDotransform, ( ( value ) ));
740  break;
741  case 2:
742  coerceValue(myXord, clampMinValue(0, clampMaxValue(5, value ) ));
743  break;
744  case 3:
745  coerceValue(myRord, clampMinValue(0, clampMaxValue(5, value ) ));
746  break;
747  case 4:
748  coerceValue(myT, ( ( value ) ));
749  break;
750  case 5:
751  coerceValue(myR, ( ( value ) ));
752  break;
753  case 6:
754  coerceValue(myP, ( ( value ) ));
755  break;
756  case 7:
757  coerceValue(myPr, ( ( value ) ));
758  break;
759  case 8:
760  coerceValue(myDolookat, ( ( value ) ));
761  break;
762  case 9:
763  coerceValue(myPosmethod, clampMinValue(0, clampMaxValue(1, value ) ));
764  break;
765  case 10:
766  coerceValue(myLookatposition, ( ( value ) ));
767  break;
768  case 11:
769  coerceValue(myPosgroup, ( ( value ) ));
770  break;
771  case 12:
772  coerceValue(myUpvecmethod, clampMinValue(0, clampMaxValue(2, value ) ));
773  break;
774  case 13:
775  coerceValue(myUpvec, ( ( value ) ));
776  break;
777  case 14:
778  coerceValue(myTwist, ( ( value ) ));
779  break;
780  case 15:
781  coerceValue(myDoview, ( ( value ) ));
782  break;
783  case 16:
784  coerceValue(myDores, ( ( value ) ));
785  break;
786  case 17:
787  coerceValue(myRes, ( ( value ) ));
788  break;
789  case 18:
790  coerceValue(myResmenu, ( ( value ) ));
791  break;
792  case 19:
793  coerceValue(myDoprojection, ( ( value ) ));
794  break;
795  case 20:
796  coerceValue(myProjection, clampMinValue(0, clampMaxValue(1, value ) ));
797  break;
798  case 21:
799  coerceValue(myDofocal, ( ( value ) ));
800  break;
801  case 22:
802  coerceValue(myFocal, ( ( value ) ));
803  break;
804  case 23:
805  coerceValue(myDoaperture, ( ( value ) ));
806  break;
807  case 24:
808  coerceValue(myAperture, ( ( value ) ));
809  break;
810  case 25:
811  coerceValue(myDoorthowidth, ( ( value ) ));
812  break;
813  case 26:
814  coerceValue(myOrthowidth, ( ( value ) ));
815  break;
816  case 27:
817  coerceValue(myDonearclip, ( ( value ) ));
818  break;
819  case 28:
820  coerceValue(myNearclip, ( ( value ) ));
821  break;
822  case 29:
823  coerceValue(myDofarclip, ( ( value ) ));
824  break;
825  case 30:
826  coerceValue(myFarclip, ( ( value ) ));
827  break;
828  case 31:
829  coerceValue(myDowin, ( ( value ) ));
830  break;
831  case 32:
832  coerceValue(myWin, ( ( value ) ));
833  break;
834  case 33:
835  coerceValue(myDowinsize, ( ( value ) ));
836  break;
837  case 34:
838  coerceValue(myWinsize, ( ( value ) ));
839  break;
840  case 35:
841  coerceValue(myDocropl, ( ( value ) ));
842  break;
843  case 36:
844  coerceValue(myCropl, ( ( value ) ));
845  break;
846  case 37:
847  coerceValue(myDocropr, ( ( value ) ));
848  break;
849  case 38:
850  coerceValue(myCropr, ( ( value ) ));
851  break;
852  case 39:
853  coerceValue(myDocropb, ( ( value ) ));
854  break;
855  case 40:
856  coerceValue(myCropb, ( ( value ) ));
857  break;
858  case 41:
859  coerceValue(myDocropt, ( ( value ) ));
860  break;
861  case 42:
862  coerceValue(myCropt, ( ( value ) ));
863  break;
864  case 43:
865  coerceValue(myDoimgdist, ( ( value ) ));
866  break;
867  case 44:
868  coerceValue(myImgdist, ( ( value ) ));
869  break;
870  case 45:
871  coerceValue(myDoguidescale, ( ( value ) ));
872  break;
873  case 46:
874  coerceValue(myGuidescale, ( ( value ) ));
875  break;
876  case 47:
877  coerceValue(myDosampling, ( ( value ) ));
878  break;
879  case 48:
880  coerceValue(myDoshutteropen, ( ( value ) ));
881  break;
882  case 49:
883  coerceValue(myShutteropen, ( ( value ) ));
884  break;
885  case 50:
886  coerceValue(myDoshutterclose, ( ( value ) ));
887  break;
888  case 51:
889  coerceValue(myShutterclose, ( ( value ) ));
890  break;
891  case 52:
892  coerceValue(myDofocus, ( ( value ) ));
893  break;
894  case 53:
895  coerceValue(myFocusmethod, clampMinValue(0, clampMaxValue(2, value ) ));
896  break;
897  case 54:
898  coerceValue(myDofstop, ( ( value ) ));
899  break;
900  case 55:
901  coerceValue(myFstop, ( ( value ) ));
902  break;
903  case 56:
904  coerceValue(myFocus, ( ( value ) ));
905  break;
906  case 57:
907  coerceValue(myFocusposition, ( ( value ) ));
908  break;
909  case 58:
910  coerceValue(myFocustargetgroup, ( ( value ) ));
911  break;
912 
913  }
914  }
915 
916  void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
917  { doSetParmValue(idx, instance, value); }
918  void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
919  { doSetParmValue(idx, instance, value); }
920  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
921  { doSetParmValue(idx, instance, value); }
922  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
923  { doSetParmValue(idx, instance, value); }
924  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
925  { doSetParmValue(idx, instance, value); }
926  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
927  { doSetParmValue(idx, instance, value); }
928  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
929  { doSetParmValue(idx, instance, value); }
930  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
931  { doSetParmValue(idx, instance, value); }
932  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
933  { doSetParmValue(idx, instance, value); }
934  void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr<UT_Ramp> &value) override
935  { doSetParmValue(idx, instance, value); }
936  void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
937  { doSetParmValue(idx, instance, value); }
938 
939  exint getNestNumParms(TempIndex idx) const override
940  {
941  if (idx.size() == 0)
942  return 59;
943  switch (idx[0])
944  {
945 
946  }
947  // Invalid
948  return 0;
949  }
950 
951  const char *getNestParmName(TempIndex fieldnum) const override
952  {
953  if (fieldnum.size() < 1)
954  return 0;
955  switch (fieldnum[0])
956  {
957  case 0:
958  return "group";
959  case 1:
960  return "dotransform";
961  case 2:
962  return "xOrd";
963  case 3:
964  return "rOrd";
965  case 4:
966  return "t";
967  case 5:
968  return "r";
969  case 6:
970  return "p";
971  case 7:
972  return "pr";
973  case 8:
974  return "dolookat";
975  case 9:
976  return "posmethod";
977  case 10:
978  return "lookatposition";
979  case 11:
980  return "posgroup";
981  case 12:
982  return "upvecmethod";
983  case 13:
984  return "upvec";
985  case 14:
986  return "twist";
987  case 15:
988  return "doview";
989  case 16:
990  return "dores";
991  case 17:
992  return "res";
993  case 18:
994  return "resmenu";
995  case 19:
996  return "doprojection";
997  case 20:
998  return "projection";
999  case 21:
1000  return "dofocal";
1001  case 22:
1002  return "focal";
1003  case 23:
1004  return "doaperture";
1005  case 24:
1006  return "aperture";
1007  case 25:
1008  return "doorthowidth";
1009  case 26:
1010  return "orthowidth";
1011  case 27:
1012  return "donearclip";
1013  case 28:
1014  return "nearclip";
1015  case 29:
1016  return "dofarclip";
1017  case 30:
1018  return "farclip";
1019  case 31:
1020  return "dowin";
1021  case 32:
1022  return "win";
1023  case 33:
1024  return "dowinsize";
1025  case 34:
1026  return "winsize";
1027  case 35:
1028  return "docropl";
1029  case 36:
1030  return "cropl";
1031  case 37:
1032  return "docropr";
1033  case 38:
1034  return "cropr";
1035  case 39:
1036  return "docropb";
1037  case 40:
1038  return "cropb";
1039  case 41:
1040  return "docropt";
1041  case 42:
1042  return "cropt";
1043  case 43:
1044  return "doimgdist";
1045  case 44:
1046  return "imgdist";
1047  case 45:
1048  return "doguidescale";
1049  case 46:
1050  return "guidescale";
1051  case 47:
1052  return "dosampling";
1053  case 48:
1054  return "doshutteropen";
1055  case 49:
1056  return "shutteropen";
1057  case 50:
1058  return "doshutterclose";
1059  case 51:
1060  return "shutterclose";
1061  case 52:
1062  return "dofocus";
1063  case 53:
1064  return "focusmethod";
1065  case 54:
1066  return "dofstop";
1067  case 55:
1068  return "fstop";
1069  case 56:
1070  return "focus";
1071  case 57:
1072  return "focusposition";
1073  case 58:
1074  return "focustargetgroup";
1075 
1076  }
1077  return 0;
1078  }
1079 
1080  ParmType getNestParmType(TempIndex fieldnum) const override
1081  {
1082  if (fieldnum.size() < 1)
1083  return PARM_UNSUPPORTED;
1084  switch (fieldnum[0])
1085  {
1086  case 0:
1087  return PARM_STRING;
1088  case 1:
1089  return PARM_INTEGER;
1090  case 2:
1091  return PARM_INTEGER;
1092  case 3:
1093  return PARM_INTEGER;
1094  case 4:
1095  return PARM_VECTOR3;
1096  case 5:
1097  return PARM_VECTOR3;
1098  case 6:
1099  return PARM_VECTOR3;
1100  case 7:
1101  return PARM_VECTOR3;
1102  case 8:
1103  return PARM_INTEGER;
1104  case 9:
1105  return PARM_INTEGER;
1106  case 10:
1107  return PARM_VECTOR3;
1108  case 11:
1109  return PARM_STRING;
1110  case 12:
1111  return PARM_INTEGER;
1112  case 13:
1113  return PARM_VECTOR3;
1114  case 14:
1115  return PARM_FLOAT;
1116  case 15:
1117  return PARM_INTEGER;
1118  case 16:
1119  return PARM_INTEGER;
1120  case 17:
1121  return PARM_VECTOR2;
1122  case 18:
1123  return PARM_INTEGER;
1124  case 19:
1125  return PARM_INTEGER;
1126  case 20:
1127  return PARM_INTEGER;
1128  case 21:
1129  return PARM_INTEGER;
1130  case 22:
1131  return PARM_FLOAT;
1132  case 23:
1133  return PARM_INTEGER;
1134  case 24:
1135  return PARM_FLOAT;
1136  case 25:
1137  return PARM_INTEGER;
1138  case 26:
1139  return PARM_FLOAT;
1140  case 27:
1141  return PARM_INTEGER;
1142  case 28:
1143  return PARM_FLOAT;
1144  case 29:
1145  return PARM_INTEGER;
1146  case 30:
1147  return PARM_FLOAT;
1148  case 31:
1149  return PARM_INTEGER;
1150  case 32:
1151  return PARM_VECTOR2;
1152  case 33:
1153  return PARM_INTEGER;
1154  case 34:
1155  return PARM_VECTOR2;
1156  case 35:
1157  return PARM_INTEGER;
1158  case 36:
1159  return PARM_FLOAT;
1160  case 37:
1161  return PARM_INTEGER;
1162  case 38:
1163  return PARM_FLOAT;
1164  case 39:
1165  return PARM_INTEGER;
1166  case 40:
1167  return PARM_FLOAT;
1168  case 41:
1169  return PARM_INTEGER;
1170  case 42:
1171  return PARM_FLOAT;
1172  case 43:
1173  return PARM_INTEGER;
1174  case 44:
1175  return PARM_FLOAT;
1176  case 45:
1177  return PARM_INTEGER;
1178  case 46:
1179  return PARM_FLOAT;
1180  case 47:
1181  return PARM_INTEGER;
1182  case 48:
1183  return PARM_INTEGER;
1184  case 49:
1185  return PARM_FLOAT;
1186  case 50:
1187  return PARM_INTEGER;
1188  case 51:
1189  return PARM_FLOAT;
1190  case 52:
1191  return PARM_INTEGER;
1192  case 53:
1193  return PARM_INTEGER;
1194  case 54:
1195  return PARM_INTEGER;
1196  case 55:
1197  return PARM_FLOAT;
1198  case 56:
1199  return PARM_FLOAT;
1200  case 57:
1201  return PARM_VECTOR3;
1202  case 58:
1203  return PARM_STRING;
1204 
1205  }
1206  return PARM_UNSUPPORTED;
1207  }
1208 
1209  // Boiler plate to load individual types.
1210  static void loadData(UT_IStream &is, int64 &v)
1211  { is.bread(&v, 1); }
1212  static void loadData(UT_IStream &is, bool &v)
1213  { int64 iv; is.bread(&iv, 1); v = iv; }
1214  static void loadData(UT_IStream &is, fpreal64 &v)
1215  { is.bread<fpreal64>(&v, 1); }
1216  static void loadData(UT_IStream &is, UT_Vector2D &v)
1217  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
1218  static void loadData(UT_IStream &is, UT_Vector3D &v)
1219  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
1220  is.bread<fpreal64>(&v.z(), 1); }
1221  static void loadData(UT_IStream &is, UT_Vector4D &v)
1222  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
1223  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
1224  static void loadData(UT_IStream &is, UT_Matrix2D &v)
1225  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
1226  static void loadData(UT_IStream &is, UT_Matrix3D &v)
1227  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
1228  static void loadData(UT_IStream &is, UT_Matrix4D &v)
1229  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
1230  static void loadData(UT_IStream &is, UT_Vector2I &v)
1231  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
1232  static void loadData(UT_IStream &is, UT_Vector3I &v)
1233  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
1234  is.bread<int64>(&v.z(), 1); }
1235  static void loadData(UT_IStream &is, UT_Vector4I &v)
1236  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
1237  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
1239  { is.bread(v); }
1241  { UT_StringHolder rampdata;
1242  loadData(is, rampdata);
1243  if (rampdata.isstring())
1244  {
1245  v.reset(new UT_Ramp());
1246  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
1247  v->load(istr);
1248  }
1249  else v.reset();
1250  }
1253  loadData(is, data);
1254  if (data.isstring())
1255  {
1256  // Find the data type.
1257  const char *colon = UT_StringWrap(data).findChar(':');
1258  if (colon)
1259  {
1260  int typelen = colon - data.buffer();
1262  type.strncpy(data.buffer(), typelen);
1263  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
1264 
1265  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
1266  }
1267  }
1268  else v.reset();
1269  }
1270 
1271  static void saveData(std::ostream &os, int64 v)
1272  { UTwrite(os, &v); }
1273  static void saveData(std::ostream &os, bool v)
1274  { int64 iv = v; UTwrite(os, &iv); }
1275  static void saveData(std::ostream &os, fpreal64 v)
1276  { UTwrite<fpreal64>(os, &v); }
1277  static void saveData(std::ostream &os, UT_Vector2D v)
1278  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
1279  static void saveData(std::ostream &os, UT_Vector3D v)
1280  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
1281  UTwrite<fpreal64>(os, &v.z()); }
1282  static void saveData(std::ostream &os, UT_Vector4D v)
1283  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
1284  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
1285  static void saveData(std::ostream &os, UT_Matrix2D v)
1287  static void saveData(std::ostream &os, UT_Matrix3D v)
1289  static void saveData(std::ostream &os, UT_Matrix4D v)
1291  static void saveData(std::ostream &os, UT_StringHolder s)
1292  { UT_StringWrap(s).saveBinary(os); }
1293  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
1295  UT_OStringStream ostr;
1296  if (s) s->save(ostr);
1297  result = ostr.str();
1298  saveData(os, result);
1299  }
1300  static void saveData(std::ostream &os, PRM_DataItemHandle s)
1302  UT_OStringStream ostr;
1303  if (s)
1304  {
1305  ostr << s->getDataTypeToken();
1306  ostr << ":";
1307  s->saveBinary(ostr);
1308  }
1309  result = ostr.str();
1310  saveData(os, result);
1311  }
1312 
1313 
1314  void save(std::ostream &os) const
1315  {
1316  int32 v = version();
1317  UTwrite(os, &v);
1318  saveData(os, myGroup);
1319  saveData(os, myDotransform);
1320  saveData(os, myXord);
1321  saveData(os, myRord);
1322  saveData(os, myT);
1323  saveData(os, myR);
1324  saveData(os, myP);
1325  saveData(os, myPr);
1326  saveData(os, myDolookat);
1327  saveData(os, myPosmethod);
1328  saveData(os, myLookatposition);
1329  saveData(os, myPosgroup);
1330  saveData(os, myUpvecmethod);
1331  saveData(os, myUpvec);
1332  saveData(os, myTwist);
1333  saveData(os, myDoview);
1334  saveData(os, myDores);
1335  saveData(os, myRes);
1336  saveData(os, myResmenu);
1337  saveData(os, myDoprojection);
1338  saveData(os, myProjection);
1339  saveData(os, myDofocal);
1340  saveData(os, myFocal);
1341  saveData(os, myDoaperture);
1342  saveData(os, myAperture);
1343  saveData(os, myDoorthowidth);
1344  saveData(os, myOrthowidth);
1345  saveData(os, myDonearclip);
1346  saveData(os, myNearclip);
1347  saveData(os, myDofarclip);
1348  saveData(os, myFarclip);
1349  saveData(os, myDowin);
1350  saveData(os, myWin);
1351  saveData(os, myDowinsize);
1352  saveData(os, myWinsize);
1353  saveData(os, myDocropl);
1354  saveData(os, myCropl);
1355  saveData(os, myDocropr);
1356  saveData(os, myCropr);
1357  saveData(os, myDocropb);
1358  saveData(os, myCropb);
1359  saveData(os, myDocropt);
1360  saveData(os, myCropt);
1361  saveData(os, myDoimgdist);
1362  saveData(os, myImgdist);
1363  saveData(os, myDoguidescale);
1364  saveData(os, myGuidescale);
1365  saveData(os, myDosampling);
1366  saveData(os, myDoshutteropen);
1367  saveData(os, myShutteropen);
1368  saveData(os, myDoshutterclose);
1369  saveData(os, myShutterclose);
1370  saveData(os, myDofocus);
1371  saveData(os, myFocusmethod);
1372  saveData(os, myDofstop);
1373  saveData(os, myFstop);
1374  saveData(os, myFocus);
1375  saveData(os, myFocusposition);
1376  saveData(os, myFocustargetgroup);
1377 
1378  }
1379 
1380  bool load(UT_IStream &is)
1381  {
1382  int32 v;
1383  is.bread(&v, 1);
1384  if (version() != v)
1385  {
1386  // Fail incompatible versions
1387  return false;
1388  }
1389  loadData(is, myGroup);
1390  loadData(is, myDotransform);
1391  loadData(is, myXord);
1392  loadData(is, myRord);
1393  loadData(is, myT);
1394  loadData(is, myR);
1395  loadData(is, myP);
1396  loadData(is, myPr);
1397  loadData(is, myDolookat);
1398  loadData(is, myPosmethod);
1399  loadData(is, myLookatposition);
1400  loadData(is, myPosgroup);
1401  loadData(is, myUpvecmethod);
1402  loadData(is, myUpvec);
1403  loadData(is, myTwist);
1404  loadData(is, myDoview);
1405  loadData(is, myDores);
1406  loadData(is, myRes);
1407  loadData(is, myResmenu);
1408  loadData(is, myDoprojection);
1409  loadData(is, myProjection);
1410  loadData(is, myDofocal);
1411  loadData(is, myFocal);
1412  loadData(is, myDoaperture);
1413  loadData(is, myAperture);
1414  loadData(is, myDoorthowidth);
1415  loadData(is, myOrthowidth);
1416  loadData(is, myDonearclip);
1417  loadData(is, myNearclip);
1418  loadData(is, myDofarclip);
1419  loadData(is, myFarclip);
1420  loadData(is, myDowin);
1421  loadData(is, myWin);
1422  loadData(is, myDowinsize);
1423  loadData(is, myWinsize);
1424  loadData(is, myDocropl);
1425  loadData(is, myCropl);
1426  loadData(is, myDocropr);
1427  loadData(is, myCropr);
1428  loadData(is, myDocropb);
1429  loadData(is, myCropb);
1430  loadData(is, myDocropt);
1431  loadData(is, myCropt);
1432  loadData(is, myDoimgdist);
1433  loadData(is, myImgdist);
1434  loadData(is, myDoguidescale);
1435  loadData(is, myGuidescale);
1436  loadData(is, myDosampling);
1437  loadData(is, myDoshutteropen);
1438  loadData(is, myShutteropen);
1439  loadData(is, myDoshutterclose);
1440  loadData(is, myShutterclose);
1441  loadData(is, myDofocus);
1442  loadData(is, myFocusmethod);
1443  loadData(is, myDofstop);
1444  loadData(is, myFstop);
1445  loadData(is, myFocus);
1446  loadData(is, myFocusposition);
1447  loadData(is, myFocustargetgroup);
1448 
1449  return true;
1450  }
1451 
1452  const UT_StringHolder & getGroup() const { return myGroup; }
1453  void setGroup(const UT_StringHolder & val) { myGroup = val; }
1455  {
1456  SOP_Node *thissop = cookparms.getNode();
1457  if (!thissop) return getGroup();
1459  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
1460  return result;
1461  }
1462  bool getDotransform() const { return myDotransform; }
1463  void setDotransform(bool val) { myDotransform = val; }
1464  bool opDotransform(const SOP_NodeVerb::CookParms &cookparms) const
1465  {
1466  SOP_Node *thissop = cookparms.getNode();
1467  if (!thissop) return getDotransform();
1468  bool result;
1469  OP_Utils::evalOpParm(result, thissop, "dotransform", cookparms.getCookTime(), 0);
1470  return result;
1471  }
1472  Xord getXord() const { return Xord(myXord); }
1473  void setXord(Xord val) { myXord = int64(val); }
1474  Xord opXord(const SOP_NodeVerb::CookParms &cookparms) const
1475  {
1476  SOP_Node *thissop = cookparms.getNode();
1477  if (!thissop) return getXord();
1478  int64 result;
1479  OP_Utils::evalOpParm(result, thissop, "xOrd", cookparms.getCookTime(), 0);
1480  return Xord(result);
1481  }
1482  Rord getRord() const { return Rord(myRord); }
1483  void setRord(Rord val) { myRord = int64(val); }
1484  Rord opRord(const SOP_NodeVerb::CookParms &cookparms) const
1485  {
1486  SOP_Node *thissop = cookparms.getNode();
1487  if (!thissop) return getRord();
1488  int64 result;
1489  OP_Utils::evalOpParm(result, thissop, "rOrd", cookparms.getCookTime(), 0);
1490  return Rord(result);
1491  }
1492  UT_Vector3D getT() const { return myT; }
1493  void setT(UT_Vector3D val) { myT = val; }
1494  UT_Vector3D opT(const SOP_NodeVerb::CookParms &cookparms) const
1495  {
1496  SOP_Node *thissop = cookparms.getNode();
1497  if (!thissop) return getT();
1499  OP_Utils::evalOpParm(result, thissop, "t", cookparms.getCookTime(), 0);
1500  return result;
1501  }
1502  UT_Vector3D getR() const { return myR; }
1503  void setR(UT_Vector3D val) { myR = val; }
1504  UT_Vector3D opR(const SOP_NodeVerb::CookParms &cookparms) const
1505  {
1506  SOP_Node *thissop = cookparms.getNode();
1507  if (!thissop) return getR();
1509  OP_Utils::evalOpParm(result, thissop, "r", cookparms.getCookTime(), 0);
1510  return result;
1511  }
1512  UT_Vector3D getP() const { return myP; }
1513  void setP(UT_Vector3D val) { myP = val; }
1514  UT_Vector3D opP(const SOP_NodeVerb::CookParms &cookparms) const
1515  {
1516  SOP_Node *thissop = cookparms.getNode();
1517  if (!thissop) return getP();
1519  OP_Utils::evalOpParm(result, thissop, "p", cookparms.getCookTime(), 0);
1520  return result;
1521  }
1522  UT_Vector3D getPr() const { return myPr; }
1523  void setPr(UT_Vector3D val) { myPr = val; }
1524  UT_Vector3D opPr(const SOP_NodeVerb::CookParms &cookparms) const
1525  {
1526  SOP_Node *thissop = cookparms.getNode();
1527  if (!thissop) return getPr();
1529  OP_Utils::evalOpParm(result, thissop, "pr", cookparms.getCookTime(), 0);
1530  return result;
1531  }
1532  bool getDolookat() const { return myDolookat; }
1533  void setDolookat(bool val) { myDolookat = val; }
1534  bool opDolookat(const SOP_NodeVerb::CookParms &cookparms) const
1535  {
1536  SOP_Node *thissop = cookparms.getNode();
1537  if (!thissop) return getDolookat();
1538  bool result;
1539  OP_Utils::evalOpParm(result, thissop, "dolookat", cookparms.getCookTime(), 0);
1540  return result;
1541  }
1542  Posmethod getPosmethod() const { return Posmethod(myPosmethod); }
1543  void setPosmethod(Posmethod val) { myPosmethod = int64(val); }
1545  {
1546  SOP_Node *thissop = cookparms.getNode();
1547  if (!thissop) return getPosmethod();
1548  int64 result;
1549  OP_Utils::evalOpParm(result, thissop, "posmethod", cookparms.getCookTime(), 0);
1550  return Posmethod(result);
1551  }
1552  UT_Vector3D getLookatposition() const { return myLookatposition; }
1553  void setLookatposition(UT_Vector3D val) { myLookatposition = val; }
1555  {
1556  SOP_Node *thissop = cookparms.getNode();
1557  if (!thissop) return getLookatposition();
1559  OP_Utils::evalOpParm(result, thissop, "lookatposition", cookparms.getCookTime(), 0);
1560  return result;
1561  }
1562  const UT_StringHolder & getPosgroup() const { return myPosgroup; }
1563  void setPosgroup(const UT_StringHolder & val) { myPosgroup = val; }
1565  {
1566  SOP_Node *thissop = cookparms.getNode();
1567  if (!thissop) return getPosgroup();
1569  OP_Utils::evalOpParm(result, thissop, "posgroup", cookparms.getCookTime(), 0);
1570  return result;
1571  }
1572  Upvecmethod getUpvecmethod() const { return Upvecmethod(myUpvecmethod); }
1573  void setUpvecmethod(Upvecmethod val) { myUpvecmethod = int64(val); }
1575  {
1576  SOP_Node *thissop = cookparms.getNode();
1577  if (!thissop) return getUpvecmethod();
1578  int64 result;
1579  OP_Utils::evalOpParm(result, thissop, "upvecmethod", cookparms.getCookTime(), 0);
1580  return Upvecmethod(result);
1581  }
1582  UT_Vector3D getUpvec() const { return myUpvec; }
1583  void setUpvec(UT_Vector3D val) { myUpvec = val; }
1585  {
1586  SOP_Node *thissop = cookparms.getNode();
1587  if (!thissop) return getUpvec();
1589  OP_Utils::evalOpParm(result, thissop, "upvec", cookparms.getCookTime(), 0);
1590  return result;
1591  }
1592  fpreal64 getTwist() const { return myTwist; }
1593  void setTwist(fpreal64 val) { myTwist = val; }
1594  fpreal64 opTwist(const SOP_NodeVerb::CookParms &cookparms) const
1595  {
1596  SOP_Node *thissop = cookparms.getNode();
1597  if (!thissop) return getTwist();
1598  fpreal64 result;
1599  OP_Utils::evalOpParm(result, thissop, "twist", cookparms.getCookTime(), 0);
1600  return result;
1601  }
1602  bool getDoview() const { return myDoview; }
1603  void setDoview(bool val) { myDoview = val; }
1604  bool opDoview(const SOP_NodeVerb::CookParms &cookparms) const
1605  {
1606  SOP_Node *thissop = cookparms.getNode();
1607  if (!thissop) return getDoview();
1608  bool result;
1609  OP_Utils::evalOpParm(result, thissop, "doview", cookparms.getCookTime(), 0);
1610  return result;
1611  }
1612  bool getDores() const { return myDores; }
1613  void setDores(bool val) { myDores = val; }
1614  bool opDores(const SOP_NodeVerb::CookParms &cookparms) const
1615  {
1616  SOP_Node *thissop = cookparms.getNode();
1617  if (!thissop) return getDores();
1618  bool result;
1619  OP_Utils::evalOpParm(result, thissop, "dores", cookparms.getCookTime(), 0);
1620  return result;
1621  }
1622  UT_Vector2I getRes() const { return myRes; }
1623  void setRes(UT_Vector2I val) { myRes = val; }
1625  {
1626  SOP_Node *thissop = cookparms.getNode();
1627  if (!thissop) return getRes();
1629  OP_Utils::evalOpParm(result, thissop, "res", cookparms.getCookTime(), 0);
1630  return result;
1631  }
1632  int64 getResmenu() const { return myResmenu; }
1633  void setResmenu(int64 val) { myResmenu = val; }
1634  int64 opResmenu(const SOP_NodeVerb::CookParms &cookparms) const
1635  {
1636  SOP_Node *thissop = cookparms.getNode();
1637  if (!thissop) return getResmenu();
1638  int64 result;
1639  OP_Utils::evalOpParm(result, thissop, "resmenu", cookparms.getCookTime(), 0);
1640  return result;
1641  }
1642  bool getDoprojection() const { return myDoprojection; }
1643  void setDoprojection(bool val) { myDoprojection = val; }
1644  bool opDoprojection(const SOP_NodeVerb::CookParms &cookparms) const
1645  {
1646  SOP_Node *thissop = cookparms.getNode();
1647  if (!thissop) return getDoprojection();
1648  bool result;
1649  OP_Utils::evalOpParm(result, thissop, "doprojection", cookparms.getCookTime(), 0);
1650  return result;
1651  }
1652  Projection getProjection() const { return Projection(myProjection); }
1653  void setProjection(Projection val) { myProjection = int64(val); }
1655  {
1656  SOP_Node *thissop = cookparms.getNode();
1657  if (!thissop) return getProjection();
1658  int64 result;
1659  OP_Utils::evalOpParm(result, thissop, "projection", cookparms.getCookTime(), 0);
1660  return Projection(result);
1661  }
1662  bool getDofocal() const { return myDofocal; }
1663  void setDofocal(bool val) { myDofocal = val; }
1664  bool opDofocal(const SOP_NodeVerb::CookParms &cookparms) const
1665  {
1666  SOP_Node *thissop = cookparms.getNode();
1667  if (!thissop) return getDofocal();
1668  bool result;
1669  OP_Utils::evalOpParm(result, thissop, "dofocal", cookparms.getCookTime(), 0);
1670  return result;
1671  }
1672  fpreal64 getFocal() const { return myFocal; }
1673  void setFocal(fpreal64 val) { myFocal = val; }
1674  fpreal64 opFocal(const SOP_NodeVerb::CookParms &cookparms) const
1675  {
1676  SOP_Node *thissop = cookparms.getNode();
1677  if (!thissop) return getFocal();
1678  fpreal64 result;
1679  OP_Utils::evalOpParm(result, thissop, "focal", cookparms.getCookTime(), 0);
1680  return result;
1681  }
1682  bool getDoaperture() const { return myDoaperture; }
1683  void setDoaperture(bool val) { myDoaperture = val; }
1684  bool opDoaperture(const SOP_NodeVerb::CookParms &cookparms) const
1685  {
1686  SOP_Node *thissop = cookparms.getNode();
1687  if (!thissop) return getDoaperture();
1688  bool result;
1689  OP_Utils::evalOpParm(result, thissop, "doaperture", cookparms.getCookTime(), 0);
1690  return result;
1691  }
1692  fpreal64 getAperture() const { return myAperture; }
1693  void setAperture(fpreal64 val) { myAperture = val; }
1695  {
1696  SOP_Node *thissop = cookparms.getNode();
1697  if (!thissop) return getAperture();
1698  fpreal64 result;
1699  OP_Utils::evalOpParm(result, thissop, "aperture", cookparms.getCookTime(), 0);
1700  return result;
1701  }
1702  bool getDoorthowidth() const { return myDoorthowidth; }
1703  void setDoorthowidth(bool val) { myDoorthowidth = val; }
1704  bool opDoorthowidth(const SOP_NodeVerb::CookParms &cookparms) const
1705  {
1706  SOP_Node *thissop = cookparms.getNode();
1707  if (!thissop) return getDoorthowidth();
1708  bool result;
1709  OP_Utils::evalOpParm(result, thissop, "doorthowidth", cookparms.getCookTime(), 0);
1710  return result;
1711  }
1712  fpreal64 getOrthowidth() const { return myOrthowidth; }
1713  void setOrthowidth(fpreal64 val) { myOrthowidth = val; }
1715  {
1716  SOP_Node *thissop = cookparms.getNode();
1717  if (!thissop) return getOrthowidth();
1718  fpreal64 result;
1719  OP_Utils::evalOpParm(result, thissop, "orthowidth", cookparms.getCookTime(), 0);
1720  return result;
1721  }
1722  bool getDonearclip() const { return myDonearclip; }
1723  void setDonearclip(bool val) { myDonearclip = val; }
1724  bool opDonearclip(const SOP_NodeVerb::CookParms &cookparms) const
1725  {
1726  SOP_Node *thissop = cookparms.getNode();
1727  if (!thissop) return getDonearclip();
1728  bool result;
1729  OP_Utils::evalOpParm(result, thissop, "donearclip", cookparms.getCookTime(), 0);
1730  return result;
1731  }
1732  fpreal64 getNearclip() const { return myNearclip; }
1733  void setNearclip(fpreal64 val) { myNearclip = val; }
1735  {
1736  SOP_Node *thissop = cookparms.getNode();
1737  if (!thissop) return getNearclip();
1738  fpreal64 result;
1739  OP_Utils::evalOpParm(result, thissop, "nearclip", cookparms.getCookTime(), 0);
1740  return result;
1741  }
1742  bool getDofarclip() const { return myDofarclip; }
1743  void setDofarclip(bool val) { myDofarclip = val; }
1744  bool opDofarclip(const SOP_NodeVerb::CookParms &cookparms) const
1745  {
1746  SOP_Node *thissop = cookparms.getNode();
1747  if (!thissop) return getDofarclip();
1748  bool result;
1749  OP_Utils::evalOpParm(result, thissop, "dofarclip", cookparms.getCookTime(), 0);
1750  return result;
1751  }
1752  fpreal64 getFarclip() const { return myFarclip; }
1753  void setFarclip(fpreal64 val) { myFarclip = val; }
1755  {
1756  SOP_Node *thissop = cookparms.getNode();
1757  if (!thissop) return getFarclip();
1758  fpreal64 result;
1759  OP_Utils::evalOpParm(result, thissop, "farclip", cookparms.getCookTime(), 0);
1760  return result;
1761  }
1762  bool getDowin() const { return myDowin; }
1763  void setDowin(bool val) { myDowin = val; }
1764  bool opDowin(const SOP_NodeVerb::CookParms &cookparms) const
1765  {
1766  SOP_Node *thissop = cookparms.getNode();
1767  if (!thissop) return getDowin();
1768  bool result;
1769  OP_Utils::evalOpParm(result, thissop, "dowin", cookparms.getCookTime(), 0);
1770  return result;
1771  }
1772  UT_Vector2D getWin() const { return myWin; }
1773  void setWin(UT_Vector2D val) { myWin = val; }
1775  {
1776  SOP_Node *thissop = cookparms.getNode();
1777  if (!thissop) return getWin();
1779  OP_Utils::evalOpParm(result, thissop, "win", cookparms.getCookTime(), 0);
1780  return result;
1781  }
1782  bool getDowinsize() const { return myDowinsize; }
1783  void setDowinsize(bool val) { myDowinsize = val; }
1784  bool opDowinsize(const SOP_NodeVerb::CookParms &cookparms) const
1785  {
1786  SOP_Node *thissop = cookparms.getNode();
1787  if (!thissop) return getDowinsize();
1788  bool result;
1789  OP_Utils::evalOpParm(result, thissop, "dowinsize", cookparms.getCookTime(), 0);
1790  return result;
1791  }
1792  UT_Vector2D getWinsize() const { return myWinsize; }
1793  void setWinsize(UT_Vector2D val) { myWinsize = val; }
1795  {
1796  SOP_Node *thissop = cookparms.getNode();
1797  if (!thissop) return getWinsize();
1799  OP_Utils::evalOpParm(result, thissop, "winsize", cookparms.getCookTime(), 0);
1800  return result;
1801  }
1802  bool getDocropl() const { return myDocropl; }
1803  void setDocropl(bool val) { myDocropl = val; }
1804  bool opDocropl(const SOP_NodeVerb::CookParms &cookparms) const
1805  {
1806  SOP_Node *thissop = cookparms.getNode();
1807  if (!thissop) return getDocropl();
1808  bool result;
1809  OP_Utils::evalOpParm(result, thissop, "docropl", cookparms.getCookTime(), 0);
1810  return result;
1811  }
1812  fpreal64 getCropl() const { return myCropl; }
1813  void setCropl(fpreal64 val) { myCropl = val; }
1814  fpreal64 opCropl(const SOP_NodeVerb::CookParms &cookparms) const
1815  {
1816  SOP_Node *thissop = cookparms.getNode();
1817  if (!thissop) return getCropl();
1818  fpreal64 result;
1819  OP_Utils::evalOpParm(result, thissop, "cropl", cookparms.getCookTime(), 0);
1820  return result;
1821  }
1822  bool getDocropr() const { return myDocropr; }
1823  void setDocropr(bool val) { myDocropr = val; }
1824  bool opDocropr(const SOP_NodeVerb::CookParms &cookparms) const
1825  {
1826  SOP_Node *thissop = cookparms.getNode();
1827  if (!thissop) return getDocropr();
1828  bool result;
1829  OP_Utils::evalOpParm(result, thissop, "docropr", cookparms.getCookTime(), 0);
1830  return result;
1831  }
1832  fpreal64 getCropr() const { return myCropr; }
1833  void setCropr(fpreal64 val) { myCropr = val; }
1834  fpreal64 opCropr(const SOP_NodeVerb::CookParms &cookparms) const
1835  {
1836  SOP_Node *thissop = cookparms.getNode();
1837  if (!thissop) return getCropr();
1838  fpreal64 result;
1839  OP_Utils::evalOpParm(result, thissop, "cropr", cookparms.getCookTime(), 0);
1840  return result;
1841  }
1842  bool getDocropb() const { return myDocropb; }
1843  void setDocropb(bool val) { myDocropb = val; }
1844  bool opDocropb(const SOP_NodeVerb::CookParms &cookparms) const
1845  {
1846  SOP_Node *thissop = cookparms.getNode();
1847  if (!thissop) return getDocropb();
1848  bool result;
1849  OP_Utils::evalOpParm(result, thissop, "docropb", cookparms.getCookTime(), 0);
1850  return result;
1851  }
1852  fpreal64 getCropb() const { return myCropb; }
1853  void setCropb(fpreal64 val) { myCropb = val; }
1854  fpreal64 opCropb(const SOP_NodeVerb::CookParms &cookparms) const
1855  {
1856  SOP_Node *thissop = cookparms.getNode();
1857  if (!thissop) return getCropb();
1858  fpreal64 result;
1859  OP_Utils::evalOpParm(result, thissop, "cropb", cookparms.getCookTime(), 0);
1860  return result;
1861  }
1862  bool getDocropt() const { return myDocropt; }
1863  void setDocropt(bool val) { myDocropt = val; }
1864  bool opDocropt(const SOP_NodeVerb::CookParms &cookparms) const
1865  {
1866  SOP_Node *thissop = cookparms.getNode();
1867  if (!thissop) return getDocropt();
1868  bool result;
1869  OP_Utils::evalOpParm(result, thissop, "docropt", cookparms.getCookTime(), 0);
1870  return result;
1871  }
1872  fpreal64 getCropt() const { return myCropt; }
1873  void setCropt(fpreal64 val) { myCropt = val; }
1874  fpreal64 opCropt(const SOP_NodeVerb::CookParms &cookparms) const
1875  {
1876  SOP_Node *thissop = cookparms.getNode();
1877  if (!thissop) return getCropt();
1878  fpreal64 result;
1879  OP_Utils::evalOpParm(result, thissop, "cropt", cookparms.getCookTime(), 0);
1880  return result;
1881  }
1882  bool getDoimgdist() const { return myDoimgdist; }
1883  void setDoimgdist(bool val) { myDoimgdist = val; }
1884  bool opDoimgdist(const SOP_NodeVerb::CookParms &cookparms) const
1885  {
1886  SOP_Node *thissop = cookparms.getNode();
1887  if (!thissop) return getDoimgdist();
1888  bool result;
1889  OP_Utils::evalOpParm(result, thissop, "doimgdist", cookparms.getCookTime(), 0);
1890  return result;
1891  }
1892  fpreal64 getImgdist() const { return myImgdist; }
1893  void setImgdist(fpreal64 val) { myImgdist = val; }
1895  {
1896  SOP_Node *thissop = cookparms.getNode();
1897  if (!thissop) return getImgdist();
1898  fpreal64 result;
1899  OP_Utils::evalOpParm(result, thissop, "imgdist", cookparms.getCookTime(), 0);
1900  return result;
1901  }
1902  bool getDoguidescale() const { return myDoguidescale; }
1903  void setDoguidescale(bool val) { myDoguidescale = val; }
1904  bool opDoguidescale(const SOP_NodeVerb::CookParms &cookparms) const
1905  {
1906  SOP_Node *thissop = cookparms.getNode();
1907  if (!thissop) return getDoguidescale();
1908  bool result;
1909  OP_Utils::evalOpParm(result, thissop, "doguidescale", cookparms.getCookTime(), 0);
1910  return result;
1911  }
1912  fpreal64 getGuidescale() const { return myGuidescale; }
1913  void setGuidescale(fpreal64 val) { myGuidescale = val; }
1915  {
1916  SOP_Node *thissop = cookparms.getNode();
1917  if (!thissop) return getGuidescale();
1918  fpreal64 result;
1919  OP_Utils::evalOpParm(result, thissop, "guidescale", cookparms.getCookTime(), 0);
1920  return result;
1921  }
1922  bool getDosampling() const { return myDosampling; }
1923  void setDosampling(bool val) { myDosampling = val; }
1924  bool opDosampling(const SOP_NodeVerb::CookParms &cookparms) const
1925  {
1926  SOP_Node *thissop = cookparms.getNode();
1927  if (!thissop) return getDosampling();
1928  bool result;
1929  OP_Utils::evalOpParm(result, thissop, "dosampling", cookparms.getCookTime(), 0);
1930  return result;
1931  }
1932  bool getDoshutteropen() const { return myDoshutteropen; }
1933  void setDoshutteropen(bool val) { myDoshutteropen = val; }
1934  bool opDoshutteropen(const SOP_NodeVerb::CookParms &cookparms) const
1935  {
1936  SOP_Node *thissop = cookparms.getNode();
1937  if (!thissop) return getDoshutteropen();
1938  bool result;
1939  OP_Utils::evalOpParm(result, thissop, "doshutteropen", cookparms.getCookTime(), 0);
1940  return result;
1941  }
1942  fpreal64 getShutteropen() const { return myShutteropen; }
1943  void setShutteropen(fpreal64 val) { myShutteropen = val; }
1945  {
1946  SOP_Node *thissop = cookparms.getNode();
1947  if (!thissop) return getShutteropen();
1948  fpreal64 result;
1949  OP_Utils::evalOpParm(result, thissop, "shutteropen", cookparms.getCookTime(), 0);
1950  return result;
1951  }
1952  bool getDoshutterclose() const { return myDoshutterclose; }
1953  void setDoshutterclose(bool val) { myDoshutterclose = val; }
1954  bool opDoshutterclose(const SOP_NodeVerb::CookParms &cookparms) const
1955  {
1956  SOP_Node *thissop = cookparms.getNode();
1957  if (!thissop) return getDoshutterclose();
1958  bool result;
1959  OP_Utils::evalOpParm(result, thissop, "doshutterclose", cookparms.getCookTime(), 0);
1960  return result;
1961  }
1962  fpreal64 getShutterclose() const { return myShutterclose; }
1963  void setShutterclose(fpreal64 val) { myShutterclose = val; }
1965  {
1966  SOP_Node *thissop = cookparms.getNode();
1967  if (!thissop) return getShutterclose();
1968  fpreal64 result;
1969  OP_Utils::evalOpParm(result, thissop, "shutterclose", cookparms.getCookTime(), 0);
1970  return result;
1971  }
1972  bool getDofocus() const { return myDofocus; }
1973  void setDofocus(bool val) { myDofocus = val; }
1974  bool opDofocus(const SOP_NodeVerb::CookParms &cookparms) const
1975  {
1976  SOP_Node *thissop = cookparms.getNode();
1977  if (!thissop) return getDofocus();
1978  bool result;
1979  OP_Utils::evalOpParm(result, thissop, "dofocus", cookparms.getCookTime(), 0);
1980  return result;
1981  }
1982  Focusmethod getFocusmethod() const { return Focusmethod(myFocusmethod); }
1983  void setFocusmethod(Focusmethod val) { myFocusmethod = int64(val); }
1985  {
1986  SOP_Node *thissop = cookparms.getNode();
1987  if (!thissop) return getFocusmethod();
1988  int64 result;
1989  OP_Utils::evalOpParm(result, thissop, "focusmethod", cookparms.getCookTime(), 0);
1990  return Focusmethod(result);
1991  }
1992  bool getDofstop() const { return myDofstop; }
1993  void setDofstop(bool val) { myDofstop = val; }
1994  bool opDofstop(const SOP_NodeVerb::CookParms &cookparms) const
1995  {
1996  SOP_Node *thissop = cookparms.getNode();
1997  if (!thissop) return getDofstop();
1998  bool result;
1999  OP_Utils::evalOpParm(result, thissop, "dofstop", cookparms.getCookTime(), 0);
2000  return result;
2001  }
2002  fpreal64 getFstop() const { return myFstop; }
2003  void setFstop(fpreal64 val) { myFstop = val; }
2004  fpreal64 opFstop(const SOP_NodeVerb::CookParms &cookparms) const
2005  {
2006  SOP_Node *thissop = cookparms.getNode();
2007  if (!thissop) return getFstop();
2008  fpreal64 result;
2009  OP_Utils::evalOpParm(result, thissop, "fstop", cookparms.getCookTime(), 0);
2010  return result;
2011  }
2012  fpreal64 getFocus() const { return myFocus; }
2013  void setFocus(fpreal64 val) { myFocus = val; }
2014  fpreal64 opFocus(const SOP_NodeVerb::CookParms &cookparms) const
2015  {
2016  SOP_Node *thissop = cookparms.getNode();
2017  if (!thissop) return getFocus();
2018  fpreal64 result;
2019  OP_Utils::evalOpParm(result, thissop, "focus", cookparms.getCookTime(), 0);
2020  return result;
2021  }
2022  UT_Vector3D getFocusposition() const { return myFocusposition; }
2023  void setFocusposition(UT_Vector3D val) { myFocusposition = val; }
2025  {
2026  SOP_Node *thissop = cookparms.getNode();
2027  if (!thissop) return getFocusposition();
2029  OP_Utils::evalOpParm(result, thissop, "focusposition", cookparms.getCookTime(), 0);
2030  return result;
2031  }
2032  const UT_StringHolder & getFocustargetgroup() const { return myFocustargetgroup; }
2033  void setFocustargetgroup(const UT_StringHolder & val) { myFocustargetgroup = val; }
2035  {
2036  SOP_Node *thissop = cookparms.getNode();
2037  if (!thissop) return getFocustargetgroup();
2039  OP_Utils::evalOpParm(result, thissop, "focustargetgroup", cookparms.getCookTime(), 0);
2040  return result;
2041  }
2042 
2043 private:
2044  UT_StringHolder myGroup;
2045  bool myDotransform;
2046  int64 myXord;
2047  int64 myRord;
2048  UT_Vector3D myT;
2049  UT_Vector3D myR;
2050  UT_Vector3D myP;
2051  UT_Vector3D myPr;
2052  bool myDolookat;
2053  int64 myPosmethod;
2054  UT_Vector3D myLookatposition;
2055  UT_StringHolder myPosgroup;
2056  int64 myUpvecmethod;
2057  UT_Vector3D myUpvec;
2058  fpreal64 myTwist;
2059  bool myDoview;
2060  bool myDores;
2061  UT_Vector2I myRes;
2062  int64 myResmenu;
2063  bool myDoprojection;
2064  int64 myProjection;
2065  bool myDofocal;
2066  fpreal64 myFocal;
2067  bool myDoaperture;
2068  fpreal64 myAperture;
2069  bool myDoorthowidth;
2070  fpreal64 myOrthowidth;
2071  bool myDonearclip;
2072  fpreal64 myNearclip;
2073  bool myDofarclip;
2074  fpreal64 myFarclip;
2075  bool myDowin;
2076  UT_Vector2D myWin;
2077  bool myDowinsize;
2078  UT_Vector2D myWinsize;
2079  bool myDocropl;
2080  fpreal64 myCropl;
2081  bool myDocropr;
2082  fpreal64 myCropr;
2083  bool myDocropb;
2084  fpreal64 myCropb;
2085  bool myDocropt;
2086  fpreal64 myCropt;
2087  bool myDoimgdist;
2088  fpreal64 myImgdist;
2089  bool myDoguidescale;
2090  fpreal64 myGuidescale;
2091  bool myDosampling;
2092  bool myDoshutteropen;
2093  fpreal64 myShutteropen;
2094  bool myDoshutterclose;
2095  fpreal64 myShutterclose;
2096  bool myDofocus;
2097  int64 myFocusmethod;
2098  bool myDofstop;
2099  fpreal64 myFstop;
2100  fpreal64 myFocus;
2101  UT_Vector3D myFocusposition;
2102  UT_StringHolder myFocustargetgroup;
2103 
2104 };
type
Definition: core.h:556
fpreal64 opImgdist(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
UT_Vector3D getLookatposition() const
bool opDoprojection(const SOP_NodeVerb::CookParms &cookparms) const
void setTwist(fpreal64 val)
fpreal64 getGuidescale() const
void setDoprojection(bool val)
UT_Vector3D opPr(const SOP_NodeVerb::CookParms &cookparms) const
int int32
Definition: SYS_Types.h:39
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:403
bool opDowin(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getGroup() const
fpreal64 getImgdist() const
bool opDofstop(const SOP_NodeVerb::CookParms &cookparms) const
void setAperture(fpreal64 val)
fpreal64 opFocus(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
fpreal64 opCropl(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
fpreal64 getFstop() const
void setNearclip(fpreal64 val)
GLboolean * data
Definition: glcorearb.h:131
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector4.h:495
const GLdouble * v
Definition: glcorearb.h:837
bool opDoaperture(const SOP_NodeVerb::CookParms &cookparms) const
fpreal getTime() const
Definition: OP_Context.h:63
UT_Vector2T< fpreal64 > UT_Vector2D
void setDoshutterclose(bool val)
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
GLsizei const GLfloat * value
Definition: glcorearb.h:824
bool opDocropr(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
Projection getProjection() const
fpreal64 getTwist() const
fpreal64 getNearclip() const
bool opDonearclip(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Matrix4D v)
fpreal64 getFocus() const
bool opDoimgdist(const SOP_NodeVerb::CookParms &cookparms) const
const OP_Context & context() const
Definition: OP_NodeParms.h:105
bool opDocropt(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opCropt(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector3.h:669
int64 exint
Definition: SYS_Types.h:125
void setCropr(fpreal64 val)
void setWinsize(UT_Vector2D val)
fpreal64 opShutterclose(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D getT() const
UT_Vector3D opP(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE const char * buffer() const
void setDoguidescale(bool val)
GLdouble s
Definition: glad.h:3009
An output stream object that owns its own string buffer storage.
static void loadData(UT_IStream &is, UT_Vector3D &v)
fpreal64 opAperture(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
fpreal64 getAperture() const
void setCropl(fpreal64 val)
**But if you need a result
Definition: thread.h:622
void setR(UT_Vector3D val)
Posmethod opPosmethod(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_Vector4D v)
void setGuidescale(fpreal64 val)
void setShutteropen(fpreal64 val)
void setFocus(fpreal64 val)
void setFarclip(fpreal64 val)
exint nodeIdx() const
Definition: OP_NodeParms.h:103
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
bool opDoshutteropen(const SOP_NodeVerb::CookParms &cookparms) const
const UT_WorkBuffer & str()
Returns a read-only reference to the underlying UT_WorkBuffer.
UT_Vector3D getR() const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
bool operator!=(const SOP_CameraEditParms &src) const
void setP(UT_Vector3D val)
bool opDowinsize(const SOP_NodeVerb::CookParms &cookparms) const
void setT(UT_Vector3D val)
bool opDotransform(const SOP_NodeVerb::CookParms &cookparms) const
bool opDolookat(const SOP_NodeVerb::CookParms &cookparms) const
void setShutterclose(fpreal64 val)
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector4.h:493
fpreal64 getShutteropen() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
fpreal64 getCropr() const
double fpreal64
Definition: SYS_Types.h:201
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: APEX_Include.h:55
UT_Vector3D getPr() const
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector2.h:426
static void saveData(std::ostream &os, UT_StringHolder s)
bool opDoorthowidth(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, int64 v)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
fpreal64 getCropl() const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
UT_Vector3D opR(const SOP_NodeVerb::CookParms &cookparms) const
Upvecmethod getUpvecmethod() const
void setLookatposition(UT_Vector3D val)
static void saveData(std::ostream &os, UT_Matrix2D v)
fpreal64 getFarclip() const
bool isParmColorRamp(exint idx) const override
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
fpreal64 opCropb(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opFstop(const SOP_NodeVerb::CookParms &cookparms) const
Posmethod getPosmethod() const
fpreal64 getFocal() const
exint length() const
static void loadData(UT_IStream &is, int64 &v)
fpreal64 getOrthowidth() const
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:36
void setFocustargetgroup(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & z() noexcept
Definition: UT_Vector4.h:497
fpreal64 opNearclip(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getFocustargetgroup() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
void setFocal(fpreal64 val)
void setCropb(fpreal64 val)
static void saveData(std::ostream &os, UT_Vector2D v)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
const OP_GraphProxy * graph() const
Definition: OP_NodeParms.h:102
static void loadData(UT_IStream &is, UT_Vector2I &v)
#define SYS_FORCE_INLINE
Definition: SYS_Inline.h:45
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
bool opDocropl(const SOP_NodeVerb::CookParms &cookparms) const
void setGroup(const UT_StringHolder &val)
exint getNestNumParms(TempIndex idx) const override
void setProjection(Projection val)
UT_Vector2D opWin(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
Focusmethod getFocusmethod() const
long long int64
Definition: SYS_Types.h:116
bool opDocropb(const SOP_NodeVerb::CookParms &cookparms) const
const char * getNestParmName(TempIndex fieldnum) const override
Xord opXord(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector2D opWinsize(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3T< fpreal64 > UT_Vector3D
fpreal64 opShutteropen(const SOP_NodeVerb::CookParms &cookparms) const
void setPosmethod(Posmethod val)
bool opDoshutterclose(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D opT(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector2D &v)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
int64 opResmenu(const SOP_NodeVerb::CookParms &cookparms) const
void setUpvec(UT_Vector3D val)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
UT_Vector3D opFocusposition(const SOP_NodeVerb::CookParms &cookparms) const
bool opDoview(const SOP_NodeVerb::CookParms &cookparms) const
void setRes(UT_Vector2I val)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:306
static void saveData(std::ostream &os, UT_Matrix3D v)
GT_API const UT_StringHolder version
static void saveData(std::ostream &os, fpreal64 v)
UT_Vector3D getP() const
bool load(UT_IStream &is)
Focusmethod opFocusmethod(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, bool v)
UT_Vector2I opRes(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opGuidescale(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
static void loadData(UT_IStream &is, bool &v)
fpreal64 opFarclip(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opFocustargetgroup(const SOP_NodeVerb::CookParms &cookparms) const
bool opDores(const SOP_NodeVerb::CookParms &cookparms) const
void copyFrom(const OP_NodeParms *src) override
bool opDofocus(const SOP_NodeVerb::CookParms &cookparms) const
void setImgdist(fpreal64 val)
void setDoshutteropen(bool val)
Projection opProjection(const SOP_NodeVerb::CookParms &cookparms) const
void setDoorthowidth(bool val)
UT_Vector3D opUpvec(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Matrix4D &v)
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
fpreal64 getCropb() const
fpreal64 fpreal
Definition: SYS_Types.h:283
DEP_MicroNode * depnode() const
Definition: OP_NodeParms.h:107
bool opDofarclip(const SOP_NodeVerb::CookParms &cookparms) const
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
static void saveData(std::ostream &os, UT_Vector3D v)
LeafData & operator=(const LeafData &)=delete
Utility class for containing a color ramp.
Definition: UT_Ramp.h:96
Upvecmethod opUpvecmethod(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & w() noexcept
Definition: UT_Vector4.h:499
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
GLuint GLfloat * val
Definition: glcorearb.h:1608
virtual UT_StringHolder baseGetSignature() const
Definition: OP_NodeParms.h:302
void loadFromOpSubclass(const LoadParms &loadparms) override
fpreal64 opCropr(const SOP_NodeVerb::CookParms &cookparms) const
#define SOP_API
Definition: SOP_API.h:10
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:432
UT_Vector2D getWin() const
void setOrthowidth(fpreal64 val)
fpreal64 getShutterclose() const
static void loadData(UT_IStream &is, UT_Matrix3D &v)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
bool operator==(const SOP_CameraEditParms &src) const
fpreal64 opFocal(const SOP_NodeVerb::CookParms &cookparms) const
void setWin(UT_Vector2D val)
static void loadData(UT_IStream &is, UT_Vector4I &v)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
UT_Vector3D opLookatposition(const SOP_NodeVerb::CookParms &cookparms) const
void setFocusposition(UT_Vector3D val)
static void loadData(UT_IStream &is, UT_StringHolder &v)
UT_Vector2D getWinsize() const
const char * findChar(int c) const
Definition: UT_String.h:1421
#define UT_ASSERT(ZZ)
Definition: UT_Assert.h:165
void setCropt(fpreal64 val)
void setFocusmethod(Focusmethod val)
GLboolean r
Definition: glcorearb.h:1222
exint bread(uint8 *buffer, exint asize=1)
UT_Vector3D getFocusposition() const
Rord opRord(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
const UT_StringHolder & getPosgroup() const
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector3.h:667
SYS_FORCE_INLINE UT_StringHolder getToken(Xord enum_value)
void save(std::ostream &os) const
fpreal64 opOrthowidth(const SOP_NodeVerb::CookParms &cookparms) const
void setUpvecmethod(Upvecmethod val)
virtual bool isDirect() const =0
Direct proxies mirror actual nodes:
fpreal64 getCropt() const
UT_Vector3D getUpvec() const
bool opDosampling(const SOP_NodeVerb::CookParms &cookparms) const
bool opDoguidescale(const SOP_NodeVerb::CookParms &cookparms) const
void setFstop(fpreal64 val)
void setPosgroup(const UT_StringHolder &val)
constexpr SYS_FORCE_INLINE T & y() noexcept
Definition: UT_Vector2.h:428
SYS_FORCE_INLINE bool isstring() const
bool opDofocal(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3I &v)
static void loadData(UT_IStream &is, UT_Vector4D &v)
UT_Vector2I getRes() const
void setPr(UT_Vector3D val)
static void loadData(UT_IStream &is, fpreal64 &v)
UT_StringHolder opPosgroup(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
ParmType getNestParmType(TempIndex fieldnum) const override
fpreal64 opTwist(const SOP_NodeVerb::CookParms &cookparms) const
GLenum src
Definition: glcorearb.h:1793
constexpr SYS_FORCE_INLINE T & x() noexcept
Definition: UT_Vector3.h:665