HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SOP_Ray.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_NodeVerb.h>
7 #include <OP/OP_Utils.h>
8 #include <PRM/PRM_Parm.h>
9 #include <UT/UT_IStream.h>
10 #include <UT/UT_NTStreamUtil.h>
11 #include <UT/UT_Ramp.h>
12 #include <UT/UT_SharedPtr.h>
13 #include <UT/UT_StringHolder.h>
14 #include <UT/UT_StringStream.h>
15 #include <UT/UT_VectorTypes.h>
16 #include <SYS/SYS_Types.h>
17 
18 using namespace UT::Literal;
19 
20 class DEP_MicroNode;
21 namespace SOP_RayEnums
22 {
23  enum class Entity
24  {
25  PRIMITIVE = 0,
26  POINT
27  };
28  enum class Method
29  {
30  MINIMUM = 0,
31  PROJECT
32  };
33  enum class DirMethod
34  {
35  VECTOR = 0,
36  NORMAL,
37  ATTRIBUTE
38  };
39  enum class Combinetype
40  {
41  AVERAGE = 0,
42  MEDIAN,
43  SHORTEST,
44  LONGEST
45  };
46 }
47 
48 
50 {
51 public:
52  static int version() { return 1; }
53 
55  {
56  myGroup = ""_sh;
57  myEntity = 0;
58  myCollision = ""_sh;
59  myMethod = 1;
60  myDirMethod = 1;
61  myDir = UT_Vector3D(0,0,0);
62  myDirAttrib = "N"_sh;
63  myShowguide = true;
64  myDotrans = false;
65  myLookfar = false;
66  myPutnml = false;
67  myPutdist = false;
68  myReverserays = false;
69  myRtolerance = 0.01;
70  myScale = 1;
71  myLift = 0;
72  myBias = 0;
73  myMaxraydistcheck = false;
74  myMaxraydist = 0;
75  mySample = 1;
76  myJitter = 0;
77  myCombinetype = 0;
78  mySeed = 1;
79  myNewgrp = false;
80  myHitgrp = "rayHitGroup"_sh;
81  myUseprimnumattrib = false;
82  myPrimnumattrib = "hitprim"_sh;
83  myUseprimuvwattrib = false;
84  myPrimuvwattrib = "hitprimuv"_sh;
85  myGetptattribs = false;
86  myPtattribnames = "*"_sh;
87  myVertexattribnames = ""_sh;
88  myPrimitiveattribnames = ""_sh;
89  myDetailattribnames = ""_sh;
90 
91  }
92 
93  explicit SOP_RayParms(const SOP_RayParms &) = default;
94 
95  virtual ~SOP_RayParms() {}
96 
97  bool operator==(const SOP_RayParms &src) const
98  {
99  if (myGroup != src.myGroup) return false;
100  if (myEntity != src.myEntity) return false;
101  if (myCollision != src.myCollision) return false;
102  if (myMethod != src.myMethod) return false;
103  if (myDirMethod != src.myDirMethod) return false;
104  if (myDir != src.myDir) return false;
105  if (myDirAttrib != src.myDirAttrib) return false;
106  if (myShowguide != src.myShowguide) return false;
107  if (myDotrans != src.myDotrans) return false;
108  if (myLookfar != src.myLookfar) return false;
109  if (myPutnml != src.myPutnml) return false;
110  if (myPutdist != src.myPutdist) return false;
111  if (myReverserays != src.myReverserays) return false;
112  if (myRtolerance != src.myRtolerance) return false;
113  if (myScale != src.myScale) return false;
114  if (myLift != src.myLift) return false;
115  if (myBias != src.myBias) return false;
116  if (myMaxraydistcheck != src.myMaxraydistcheck) return false;
117  if (myMaxraydist != src.myMaxraydist) return false;
118  if (mySample != src.mySample) return false;
119  if (myJitter != src.myJitter) return false;
120  if (myCombinetype != src.myCombinetype) return false;
121  if (mySeed != src.mySeed) return false;
122  if (myNewgrp != src.myNewgrp) return false;
123  if (myHitgrp != src.myHitgrp) return false;
124  if (myUseprimnumattrib != src.myUseprimnumattrib) return false;
125  if (myPrimnumattrib != src.myPrimnumattrib) return false;
126  if (myUseprimuvwattrib != src.myUseprimuvwattrib) return false;
127  if (myPrimuvwattrib != src.myPrimuvwattrib) return false;
128  if (myGetptattribs != src.myGetptattribs) return false;
129  if (myPtattribnames != src.myPtattribnames) return false;
130  if (myVertexattribnames != src.myVertexattribnames) return false;
131  if (myPrimitiveattribnames != src.myPrimitiveattribnames) return false;
132  if (myDetailattribnames != src.myDetailattribnames) return false;
133 
134  return true;
135  }
136  bool operator!=(const SOP_RayParms &src) const
137  {
138  return !operator==(src);
139  }
144 
145 
146 
147  void buildFromOp(const OP_Node *node, fpreal time, DEP_MicroNode *depnode)
148  {
149  if (true)
150  OP_Utils::evalOpParm(myGroup, node, "group", time, 0);
151  else myGroup = ""_sh;
152  if (true)
153  OP_Utils::evalOpParm(myEntity, node, "entity", time, 0);
154  else myEntity = 0;
155  if (true)
156  OP_Utils::evalOpParm(myCollision, node, "collision", time, 0);
157  else myCollision = ""_sh;
158  if (true)
159  OP_Utils::evalOpParm(myMethod, node, "method", time, 0);
160  else myMethod = 1;
161  if (true && ( (!(((int64(getMethod())!=1)))) ) )
162  OP_Utils::evalOpParm(myDirMethod, node, "dirmethod", time, 0);
163  else myDirMethod = 1;
164  if (true && ( (!(((int64(getMethod())!=1))||((int64(getDirMethod())!=0)))) ) )
165  OP_Utils::evalOpParm(myDir, node, "dir", time, 0);
166  else myDir = UT_Vector3D(0,0,0);
167  if (true && ( (!(((int64(getMethod())!=1))||((int64(getDirMethod())!=2)))) ) )
168  OP_Utils::evalOpParm(myDirAttrib, node, "dirattrib", time, 0);
169  else myDirAttrib = "N"_sh;
170  if (true && ( (!(((int64(getMethod())>=0)))) ) )
171  OP_Utils::evalOpParm(myShowguide, node, "showguide", time, 0);
172  else myShowguide = true;
173  if (true)
174  OP_Utils::evalOpParm(myDotrans, node, "dotrans", time, 0);
175  else myDotrans = false;
176  if (true && ( (!(((int64(getMethod())!=1)))) ) )
177  OP_Utils::evalOpParm(myLookfar, node, "lookfar", time, 0);
178  else myLookfar = false;
179  if (true)
180  OP_Utils::evalOpParm(myPutnml, node, "putnml", time, 0);
181  else myPutnml = false;
182  if (true)
183  OP_Utils::evalOpParm(myPutdist, node, "putdist", time, 0);
184  else myPutdist = false;
185  if (true && ( (!(((int64(getMethod())!=1)))) ) )
186  OP_Utils::evalOpParm(myReverserays, node, "reverserays", time, 0);
187  else myReverserays = false;
188  if (true && ( (!(((int64(getMethod())!=1)))) ) )
189  OP_Utils::evalOpParm(myRtolerance, node, "rtolerance", time, 0);
190  else myRtolerance = 0.01;
191  if (true && ( (!(((getDotrans()==0)))) ) )
192  OP_Utils::evalOpParm(myScale, node, "scale", time, 0);
193  else myScale = 1;
194  if (true)
195  OP_Utils::evalOpParm(myLift, node, "lift", time, 0);
196  else myLift = 0;
197  if (true && ( (!(((int64(getMethod())!=1)))) ) )
198  OP_Utils::evalOpParm(myBias, node, "bias", time, 0);
199  else myBias = 0;
200  if (true)
201  OP_Utils::evalOpParm(myMaxraydistcheck, node, "maxraydistcheck", time, 0);
202  else myMaxraydistcheck = false;
203  if (true && ( (!(((getMaxraydistcheck()==0)))) ) )
204  OP_Utils::evalOpParm(myMaxraydist, node, "maxraydist", time, 0);
205  else myMaxraydist = 0;
206  if (true && ( (!(((int64(getMethod())!=1)))) ) )
207  OP_Utils::evalOpParm(mySample, node, "sample", time, 0);
208  else mySample = 1;
209  if (true && ( (!(((int64(getMethod())!=1)))) ) )
210  OP_Utils::evalOpParm(myJitter, node, "jitter", time, 0);
211  else myJitter = 0;
212  if (true && ( (!(((int64(getMethod())!=1)))) ) )
213  OP_Utils::evalOpParm(myCombinetype, node, "combinetype", time, 0);
214  else myCombinetype = 0;
215  if (true && ( (!(((int64(getMethod())!=1)))) ) )
216  OP_Utils::evalOpParm(mySeed, node, "seed", time, 0);
217  else mySeed = 1;
218  if (true)
219  OP_Utils::evalOpParm(myNewgrp, node, "newgrp", time, 0);
220  else myNewgrp = false;
221  if (true && ( (!(((getNewgrp()==0)))) ) )
222  OP_Utils::evalOpParm(myHitgrp, node, "hitgrp", time, 0);
223  else myHitgrp = "rayHitGroup"_sh;
224  if (true)
225  OP_Utils::evalOpParm(myUseprimnumattrib, node, "useprimnumattrib", time, 0);
226  else myUseprimnumattrib = false;
227  if (true && ( (!(((getUseprimnumattrib()==0)))) ) )
228  OP_Utils::evalOpParm(myPrimnumattrib, node, "primnumattrib", time, 0);
229  else myPrimnumattrib = "hitprim"_sh;
230  if (true)
231  OP_Utils::evalOpParm(myUseprimuvwattrib, node, "useprimuvwattrib", time, 0);
232  else myUseprimuvwattrib = false;
233  if (true && ( (!(((getUseprimuvwattrib()==0)))) ) )
234  OP_Utils::evalOpParm(myPrimuvwattrib, node, "primuvwattrib", time, 0);
235  else myPrimuvwattrib = "hitprimuv"_sh;
236  if (true)
237  OP_Utils::evalOpParm(myGetptattribs, node, "getptattribs", time, 0);
238  else myGetptattribs = false;
239  if (true && ( (!(((getGetptattribs()==0)))) ) )
240  OP_Utils::evalOpParm(myPtattribnames, node, "ptattribnames", time, 0);
241  else myPtattribnames = "*"_sh;
242  if (true && ( (!(((getGetptattribs()==0)))) ) )
243  OP_Utils::evalOpParm(myVertexattribnames, node, "vertexattribnames", time, 0);
244  else myVertexattribnames = ""_sh;
245  if (true && ( (!(((getGetptattribs()==0)))) ) )
246  OP_Utils::evalOpParm(myPrimitiveattribnames, node, "primitiveattribnames", time, 0);
247  else myPrimitiveattribnames = ""_sh;
248  if (true && ( (!(((getGetptattribs()==0)))) ) )
249  OP_Utils::evalOpParm(myDetailattribnames, node, "detailattribnames", time, 0);
250  else myDetailattribnames = ""_sh;
251 
252  }
253 
254 
255  virtual void loadFromOpSubclass(const LoadParms &loadparms)
256  {
257  buildFromOp(loadparms.node(), loadparms.context().getTime(), loadparms.depnode());
258  }
259 
260 
261  virtual void copyFrom(const SOP_NodeParms *src)
262  {
263  *this = *((const SOP_RayParms *)src);
264  }
265 
266  template <typename T>
267  void
268  doGetParmValue(exint idx, T &value) const
269  {
270  switch (idx)
271  {
272  case 0:
273  coerceValue(value, myGroup);
274  break;
275  case 1:
276  coerceValue(value, myEntity);
277  break;
278  case 2:
279  coerceValue(value, myCollision);
280  break;
281  case 3:
282  coerceValue(value, myMethod);
283  break;
284  case 4:
285  coerceValue(value, myDirMethod);
286  break;
287  case 5:
288  coerceValue(value, myDir);
289  break;
290  case 6:
291  coerceValue(value, myDirAttrib);
292  break;
293  case 7:
294  coerceValue(value, myShowguide);
295  break;
296  case 8:
297  coerceValue(value, myDotrans);
298  break;
299  case 9:
300  coerceValue(value, myLookfar);
301  break;
302  case 10:
303  coerceValue(value, myPutnml);
304  break;
305  case 11:
306  coerceValue(value, myPutdist);
307  break;
308  case 12:
309  coerceValue(value, myReverserays);
310  break;
311  case 13:
312  coerceValue(value, myRtolerance);
313  break;
314  case 14:
315  coerceValue(value, myScale);
316  break;
317  case 15:
318  coerceValue(value, myLift);
319  break;
320  case 16:
321  coerceValue(value, myBias);
322  break;
323  case 17:
324  coerceValue(value, myMaxraydistcheck);
325  break;
326  case 18:
327  coerceValue(value, myMaxraydist);
328  break;
329  case 19:
330  coerceValue(value, mySample);
331  break;
332  case 20:
333  coerceValue(value, myJitter);
334  break;
335  case 21:
336  coerceValue(value, myCombinetype);
337  break;
338  case 22:
339  coerceValue(value, mySeed);
340  break;
341  case 23:
342  coerceValue(value, myNewgrp);
343  break;
344  case 24:
345  coerceValue(value, myHitgrp);
346  break;
347  case 25:
348  coerceValue(value, myUseprimnumattrib);
349  break;
350  case 26:
351  coerceValue(value, myPrimnumattrib);
352  break;
353  case 27:
354  coerceValue(value, myUseprimuvwattrib);
355  break;
356  case 28:
357  coerceValue(value, myPrimuvwattrib);
358  break;
359  case 29:
360  coerceValue(value, myGetptattribs);
361  break;
362  case 30:
363  coerceValue(value, myPtattribnames);
364  break;
365  case 31:
366  coerceValue(value, myVertexattribnames);
367  break;
368  case 32:
369  coerceValue(value, myPrimitiveattribnames);
370  break;
371  case 33:
372  coerceValue(value, myDetailattribnames);
373  break;
374 
375  }
376  }
377 
378  void getParmValue(exint idx, exint &value) const
379  { doGetParmValue(idx, value); }
380  void getParmValue(exint idx, fpreal &value) const
381  { doGetParmValue(idx, value); }
383  { doGetParmValue(idx, value); }
385  { doGetParmValue(idx, value); }
387  { doGetParmValue(idx, value); }
389  { doGetParmValue(idx, value); }
391  { doGetParmValue(idx, value); }
393  { doGetParmValue(idx, value); }
395  { doGetParmValue(idx, value); }
397  { doGetParmValue(idx, value); }
399  { doGetParmValue(idx, value); }
400 
401  template <typename T>
402  void
403  doSetParmValue(exint idx, const T &value)
404  {
405  switch (idx)
406  {
407  case 0:
408  coerceValue(myGroup, value);
409  break;
410  case 1:
411  coerceValue(myEntity, value);
412  break;
413  case 2:
414  coerceValue(myCollision, value);
415  break;
416  case 3:
417  coerceValue(myMethod, value);
418  break;
419  case 4:
420  coerceValue(myDirMethod, value);
421  break;
422  case 5:
423  coerceValue(myDir, value);
424  break;
425  case 6:
426  coerceValue(myDirAttrib, value);
427  break;
428  case 7:
429  coerceValue(myShowguide, value);
430  break;
431  case 8:
432  coerceValue(myDotrans, value);
433  break;
434  case 9:
435  coerceValue(myLookfar, value);
436  break;
437  case 10:
438  coerceValue(myPutnml, value);
439  break;
440  case 11:
441  coerceValue(myPutdist, value);
442  break;
443  case 12:
444  coerceValue(myReverserays, value);
445  break;
446  case 13:
447  coerceValue(myRtolerance, value);
448  break;
449  case 14:
450  coerceValue(myScale, value);
451  break;
452  case 15:
453  coerceValue(myLift, value);
454  break;
455  case 16:
456  coerceValue(myBias, value);
457  break;
458  case 17:
459  coerceValue(myMaxraydistcheck, value);
460  break;
461  case 18:
462  coerceValue(myMaxraydist, value);
463  break;
464  case 19:
465  coerceValue(mySample, value);
466  break;
467  case 20:
468  coerceValue(myJitter, value);
469  break;
470  case 21:
471  coerceValue(myCombinetype, value);
472  break;
473  case 22:
474  coerceValue(mySeed, value);
475  break;
476  case 23:
477  coerceValue(myNewgrp, value);
478  break;
479  case 24:
480  coerceValue(myHitgrp, value);
481  break;
482  case 25:
483  coerceValue(myUseprimnumattrib, value);
484  break;
485  case 26:
486  coerceValue(myPrimnumattrib, value);
487  break;
488  case 27:
489  coerceValue(myUseprimuvwattrib, value);
490  break;
491  case 28:
492  coerceValue(myPrimuvwattrib, value);
493  break;
494  case 29:
495  coerceValue(myGetptattribs, value);
496  break;
497  case 30:
498  coerceValue(myPtattribnames, value);
499  break;
500  case 31:
501  coerceValue(myVertexattribnames, value);
502  break;
503  case 32:
504  coerceValue(myPrimitiveattribnames, value);
505  break;
506  case 33:
507  coerceValue(myDetailattribnames, value);
508  break;
509 
510  }
511  }
512 
513  void setParmValue(exint idx, const exint &value)
514  { doSetParmValue(idx, value); }
515  void setParmValue(exint idx, const fpreal &value)
516  { doSetParmValue(idx, value); }
517  void setParmValue(exint idx, const UT_Vector2D &value)
518  { doSetParmValue(idx, value); }
519  void setParmValue(exint idx, const UT_Vector3D &value)
520  { doSetParmValue(idx, value); }
521  void setParmValue(exint idx, const UT_Vector4D &value)
522  { doSetParmValue(idx, value); }
523  void setParmValue(exint idx, const UT_Matrix2D &value)
524  { doSetParmValue(idx, value); }
525  void setParmValue(exint idx, const UT_Matrix3D &value)
526  { doSetParmValue(idx, value); }
527  void setParmValue(exint idx, const UT_Matrix4D &value)
528  { doSetParmValue(idx, value); }
530  { doSetParmValue(idx, value); }
532  { doSetParmValue(idx, value); }
534  { doSetParmValue(idx, value); }
535 
536  virtual exint getNumParms() const
537  {
538  return 34;
539  }
540 
541  virtual const char *getParmName(exint fieldnum) const
542  {
543  switch (fieldnum)
544  {
545  case 0:
546  return "group";
547  case 1:
548  return "entity";
549  case 2:
550  return "collision";
551  case 3:
552  return "method";
553  case 4:
554  return "dirmethod";
555  case 5:
556  return "dir";
557  case 6:
558  return "dirattrib";
559  case 7:
560  return "showguide";
561  case 8:
562  return "dotrans";
563  case 9:
564  return "lookfar";
565  case 10:
566  return "putnml";
567  case 11:
568  return "putdist";
569  case 12:
570  return "reverserays";
571  case 13:
572  return "rtolerance";
573  case 14:
574  return "scale";
575  case 15:
576  return "lift";
577  case 16:
578  return "bias";
579  case 17:
580  return "maxraydistcheck";
581  case 18:
582  return "maxraydist";
583  case 19:
584  return "sample";
585  case 20:
586  return "jitter";
587  case 21:
588  return "combinetype";
589  case 22:
590  return "seed";
591  case 23:
592  return "newgrp";
593  case 24:
594  return "hitgrp";
595  case 25:
596  return "useprimnumattrib";
597  case 26:
598  return "primnumattrib";
599  case 27:
600  return "useprimuvwattrib";
601  case 28:
602  return "primuvwattrib";
603  case 29:
604  return "getptattribs";
605  case 30:
606  return "ptattribnames";
607  case 31:
608  return "vertexattribnames";
609  case 32:
610  return "primitiveattribnames";
611  case 33:
612  return "detailattribnames";
613 
614  }
615  return 0;
616  }
617 
618  virtual ParmType getParmType(exint fieldnum) const
619  {
620  switch (fieldnum)
621  {
622  case 0:
623  return PARM_STRING;
624  case 1:
625  return PARM_INTEGER;
626  case 2:
627  return PARM_STRING;
628  case 3:
629  return PARM_INTEGER;
630  case 4:
631  return PARM_INTEGER;
632  case 5:
633  return PARM_VECTOR3;
634  case 6:
635  return PARM_STRING;
636  case 7:
637  return PARM_INTEGER;
638  case 8:
639  return PARM_INTEGER;
640  case 9:
641  return PARM_INTEGER;
642  case 10:
643  return PARM_INTEGER;
644  case 11:
645  return PARM_INTEGER;
646  case 12:
647  return PARM_INTEGER;
648  case 13:
649  return PARM_FLOAT;
650  case 14:
651  return PARM_FLOAT;
652  case 15:
653  return PARM_FLOAT;
654  case 16:
655  return PARM_FLOAT;
656  case 17:
657  return PARM_INTEGER;
658  case 18:
659  return PARM_FLOAT;
660  case 19:
661  return PARM_INTEGER;
662  case 20:
663  return PARM_FLOAT;
664  case 21:
665  return PARM_INTEGER;
666  case 22:
667  return PARM_INTEGER;
668  case 23:
669  return PARM_INTEGER;
670  case 24:
671  return PARM_STRING;
672  case 25:
673  return PARM_INTEGER;
674  case 26:
675  return PARM_STRING;
676  case 27:
677  return PARM_INTEGER;
678  case 28:
679  return PARM_STRING;
680  case 29:
681  return PARM_INTEGER;
682  case 30:
683  return PARM_STRING;
684  case 31:
685  return PARM_STRING;
686  case 32:
687  return PARM_STRING;
688  case 33:
689  return PARM_STRING;
690 
691  }
692  return PARM_UNSUPPORTED;
693  }
694 
695  // Boiler plate to load individual types.
696  static void loadData(UT_IStream &is, int64 &v)
697  { is.bread(&v, 1); }
698  static void loadData(UT_IStream &is, bool &v)
699  { int64 iv; is.bread(&iv, 1); v = iv; }
700  static void loadData(UT_IStream &is, fpreal64 &v)
701  { is.bread<fpreal64>(&v, 1); }
702  static void loadData(UT_IStream &is, UT_Vector2D &v)
703  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1); }
704  static void loadData(UT_IStream &is, UT_Vector3D &v)
705  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
706  is.bread<fpreal64>(&v.z(), 1); }
707  static void loadData(UT_IStream &is, UT_Vector4D &v)
708  { is.bread<fpreal64>(&v.x(), 1); is.bread<fpreal64>(&v.y(), 1);
709  is.bread<fpreal64>(&v.z(), 1); is.bread<fpreal64>(&v.w(), 1); }
710  static void loadData(UT_IStream &is, UT_Matrix2D &v)
711  { for (int r = 0; r < 2; r++) for (int c = 0; c < 2; c++) is.bread<fpreal64>(&v(r, c), 1); }
712  static void loadData(UT_IStream &is, UT_Matrix3D &v)
713  { for (int r = 0; r < 3; r++) for (int c = 0; c < 3; c++) is.bread<fpreal64>(&v(r, c), 1); }
714  static void loadData(UT_IStream &is, UT_Matrix4D &v)
715  { for (int r = 0; r < 4; r++) for (int c = 0; c < 4; c++) is.bread<fpreal64>(&v(r, c), 1); }
716  static void loadData(UT_IStream &is, UT_Vector2I &v)
717  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1); }
718  static void loadData(UT_IStream &is, UT_Vector3I &v)
719  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
720  is.bread<int64>(&v.z(), 1); }
721  static void loadData(UT_IStream &is, UT_Vector4I &v)
722  { is.bread<int64>(&v.x(), 1); is.bread<int64>(&v.y(), 1);
723  is.bread<int64>(&v.z(), 1); is.bread<int64>(&v.w(), 1); }
725  { is.bread(v); }
727  { UT_StringHolder rampdata;
728  loadData(is, rampdata);
729  if (rampdata.isstring())
730  {
731  v.reset(new UT_Ramp());
732  UT_IStream istr((const char *) rampdata, rampdata.length(), UT_ISTREAM_ASCII);
733  v->load(istr);
734  }
735  else v.reset();
736  }
739  loadData(is, data);
740  if (data.isstring())
741  {
742  // Find the data type.
743  char *colon = UT_StringWrap(data).findChar(':');
744  if (colon)
745  {
746  int typelen = colon - data.buffer();
748  type.strncpy(data.buffer(), typelen);
749  UT_IStream istr(((const char *) data) + typelen + 1, data.length() - (typelen + 1), UT_ISTREAM_BINARY);
750 
751  v = PRM_DataFactory::parseBinary(type.buffer(), istr);
752  }
753  }
754  else v.reset();
755  }
756 
757  static void saveData(std::ostream &os, int64 v)
758  { UTwrite(os, &v); }
759  static void saveData(std::ostream &os, bool v)
760  { int64 iv = v; UTwrite(os, &iv); }
761  static void saveData(std::ostream &os, fpreal64 v)
762  { UTwrite<fpreal64>(os, &v); }
763  static void saveData(std::ostream &os, UT_Vector2D v)
764  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y()); }
765  static void saveData(std::ostream &os, UT_Vector3D v)
766  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
767  UTwrite<fpreal64>(os, &v.z()); }
768  static void saveData(std::ostream &os, UT_Vector4D v)
769  { UTwrite<fpreal64>(os, &v.x()); UTwrite<fpreal64>(os, &v.y());
770  UTwrite<fpreal64>(os, &v.z()); UTwrite<fpreal64>(os, &v.w()); }
771  static void saveData(std::ostream &os, UT_Matrix2D v)
773  static void saveData(std::ostream &os, UT_Matrix3D v)
775  static void saveData(std::ostream &os, UT_Matrix4D v)
777  static void saveData(std::ostream &os, UT_StringHolder s)
778  { UT_StringWrap(s).saveBinary(os); }
779  static void saveData(std::ostream &os, UT_SharedPtr<UT_Ramp> s)
780  { UT_StringHolder result;
781  UT_OStringStream ostr;
782  if (s) s->save(ostr);
783  result = ostr.str();
784  saveData(os, result);
785  }
786  static void saveData(std::ostream &os, PRM_DataItemHandle s)
787  { UT_StringHolder result;
788  UT_OStringStream ostr;
789  if (s)
790  {
791  ostr << s->getDataTypeToken();
792  ostr << ":";
793  s->saveBinary(ostr);
794  }
795  result = ostr.str();
796  saveData(os, result);
797  }
798 
799 
800  void save(std::ostream &os) const
801  {
802  int32 v = version();
803  UTwrite(os, &v);
804  saveData(os, myGroup);
805  saveData(os, myEntity);
806  saveData(os, myCollision);
807  saveData(os, myMethod);
808  saveData(os, myDirMethod);
809  saveData(os, myDir);
810  saveData(os, myDirAttrib);
811  saveData(os, myShowguide);
812  saveData(os, myDotrans);
813  saveData(os, myLookfar);
814  saveData(os, myPutnml);
815  saveData(os, myPutdist);
816  saveData(os, myReverserays);
817  saveData(os, myRtolerance);
818  saveData(os, myScale);
819  saveData(os, myLift);
820  saveData(os, myBias);
821  saveData(os, myMaxraydistcheck);
822  saveData(os, myMaxraydist);
823  saveData(os, mySample);
824  saveData(os, myJitter);
825  saveData(os, myCombinetype);
826  saveData(os, mySeed);
827  saveData(os, myNewgrp);
828  saveData(os, myHitgrp);
829  saveData(os, myUseprimnumattrib);
830  saveData(os, myPrimnumattrib);
831  saveData(os, myUseprimuvwattrib);
832  saveData(os, myPrimuvwattrib);
833  saveData(os, myGetptattribs);
834  saveData(os, myPtattribnames);
835  saveData(os, myVertexattribnames);
836  saveData(os, myPrimitiveattribnames);
837  saveData(os, myDetailattribnames);
838 
839  }
840 
841  bool load(UT_IStream &is)
842  {
843  int32 v;
844  is.bread(&v, 1);
845  if (version() != v)
846  {
847  // Fail incompatible versions
848  return false;
849  }
850  loadData(is, myGroup);
851  loadData(is, myEntity);
852  loadData(is, myCollision);
853  loadData(is, myMethod);
854  loadData(is, myDirMethod);
855  loadData(is, myDir);
856  loadData(is, myDirAttrib);
857  loadData(is, myShowguide);
858  loadData(is, myDotrans);
859  loadData(is, myLookfar);
860  loadData(is, myPutnml);
861  loadData(is, myPutdist);
862  loadData(is, myReverserays);
863  loadData(is, myRtolerance);
864  loadData(is, myScale);
865  loadData(is, myLift);
866  loadData(is, myBias);
867  loadData(is, myMaxraydistcheck);
868  loadData(is, myMaxraydist);
869  loadData(is, mySample);
870  loadData(is, myJitter);
871  loadData(is, myCombinetype);
872  loadData(is, mySeed);
873  loadData(is, myNewgrp);
874  loadData(is, myHitgrp);
875  loadData(is, myUseprimnumattrib);
876  loadData(is, myPrimnumattrib);
877  loadData(is, myUseprimuvwattrib);
878  loadData(is, myPrimuvwattrib);
879  loadData(is, myGetptattribs);
880  loadData(is, myPtattribnames);
881  loadData(is, myVertexattribnames);
882  loadData(is, myPrimitiveattribnames);
883  loadData(is, myDetailattribnames);
884 
885  return true;
886  }
887 
888  const UT_StringHolder & getGroup() const { return myGroup; }
889  void setGroup(const UT_StringHolder & val) { myGroup = val; }
891  {
892  SOP_Node *thissop = cookparms.getNode();
893  if (!thissop) return getGroup();
894  UT_StringHolder result;
895  OP_Utils::evalOpParm(result, thissop, "group", cookparms.getCookTime(), 0);
896  return result;
897  }
898  Entity getEntity() const { return Entity(myEntity); }
899  void setEntity(Entity val) { myEntity = int64(val); }
900  Entity opEntity(const SOP_NodeVerb::CookParms &cookparms) const
901  {
902  SOP_Node *thissop = cookparms.getNode();
903  if (!thissop) return getEntity();
904  int64 result;
905  OP_Utils::evalOpParm(result, thissop, "entity", cookparms.getCookTime(), 0);
906  return Entity(result);
907  }
908  const UT_StringHolder & getCollision() const { return myCollision; }
909  void setCollision(const UT_StringHolder & val) { myCollision = val; }
911  {
912  SOP_Node *thissop = cookparms.getNode();
913  if (!thissop) return getCollision();
914  UT_StringHolder result;
915  OP_Utils::evalOpParm(result, thissop, "collision", cookparms.getCookTime(), 0);
916  return result;
917  }
918  Method getMethod() const { return Method(myMethod); }
919  void setMethod(Method val) { myMethod = int64(val); }
920  Method opMethod(const SOP_NodeVerb::CookParms &cookparms) const
921  {
922  SOP_Node *thissop = cookparms.getNode();
923  if (!thissop) return getMethod();
924  int64 result;
925  OP_Utils::evalOpParm(result, thissop, "method", cookparms.getCookTime(), 0);
926  return Method(result);
927  }
928  DirMethod getDirMethod() const { return DirMethod(myDirMethod); }
929  void setDirMethod(DirMethod val) { myDirMethod = int64(val); }
931  {
932  SOP_Node *thissop = cookparms.getNode();
933  if (!thissop) return getDirMethod();
934  int64 result;
935  OP_Utils::evalOpParm(result, thissop, "dirmethod", cookparms.getCookTime(), 0);
936  return DirMethod(result);
937  }
938  UT_Vector3D getDir() const { return myDir; }
939  void setDir(UT_Vector3D val) { myDir = val; }
940  UT_Vector3D opDir(const SOP_NodeVerb::CookParms &cookparms) const
941  {
942  SOP_Node *thissop = cookparms.getNode();
943  if (!thissop) return getDir();
944  UT_Vector3D result;
945  OP_Utils::evalOpParm(result, thissop, "dir", cookparms.getCookTime(), 0);
946  return result;
947  }
948  const UT_StringHolder & getDirAttrib() const { return myDirAttrib; }
949  void setDirAttrib(const UT_StringHolder & val) { myDirAttrib = val; }
951  {
952  SOP_Node *thissop = cookparms.getNode();
953  if (!thissop) return getDirAttrib();
954  UT_StringHolder result;
955  OP_Utils::evalOpParm(result, thissop, "dirattrib", cookparms.getCookTime(), 0);
956  return result;
957  }
958  bool getShowguide() const { return myShowguide; }
959  void setShowguide(bool val) { myShowguide = val; }
960  bool opShowguide(const SOP_NodeVerb::CookParms &cookparms) const
961  {
962  SOP_Node *thissop = cookparms.getNode();
963  if (!thissop) return getShowguide();
964  bool result;
965  OP_Utils::evalOpParm(result, thissop, "showguide", cookparms.getCookTime(), 0);
966  return result;
967  }
968  bool getDotrans() const { return myDotrans; }
969  void setDotrans(bool val) { myDotrans = val; }
970  bool opDotrans(const SOP_NodeVerb::CookParms &cookparms) const
971  {
972  SOP_Node *thissop = cookparms.getNode();
973  if (!thissop) return getDotrans();
974  bool result;
975  OP_Utils::evalOpParm(result, thissop, "dotrans", cookparms.getCookTime(), 0);
976  return result;
977  }
978  bool getLookfar() const { return myLookfar; }
979  void setLookfar(bool val) { myLookfar = val; }
980  bool opLookfar(const SOP_NodeVerb::CookParms &cookparms) const
981  {
982  SOP_Node *thissop = cookparms.getNode();
983  if (!thissop) return getLookfar();
984  bool result;
985  OP_Utils::evalOpParm(result, thissop, "lookfar", cookparms.getCookTime(), 0);
986  return result;
987  }
988  bool getPutnml() const { return myPutnml; }
989  void setPutnml(bool val) { myPutnml = val; }
990  bool opPutnml(const SOP_NodeVerb::CookParms &cookparms) const
991  {
992  SOP_Node *thissop = cookparms.getNode();
993  if (!thissop) return getPutnml();
994  bool result;
995  OP_Utils::evalOpParm(result, thissop, "putnml", cookparms.getCookTime(), 0);
996  return result;
997  }
998  bool getPutdist() const { return myPutdist; }
999  void setPutdist(bool val) { myPutdist = val; }
1000  bool opPutdist(const SOP_NodeVerb::CookParms &cookparms) const
1001  {
1002  SOP_Node *thissop = cookparms.getNode();
1003  if (!thissop) return getPutdist();
1004  bool result;
1005  OP_Utils::evalOpParm(result, thissop, "putdist", cookparms.getCookTime(), 0);
1006  return result;
1007  }
1008  bool getReverserays() const { return myReverserays; }
1009  void setReverserays(bool val) { myReverserays = val; }
1010  bool opReverserays(const SOP_NodeVerb::CookParms &cookparms) const
1011  {
1012  SOP_Node *thissop = cookparms.getNode();
1013  if (!thissop) return getReverserays();
1014  bool result;
1015  OP_Utils::evalOpParm(result, thissop, "reverserays", cookparms.getCookTime(), 0);
1016  return result;
1017  }
1018  fpreal64 getRtolerance() const { return myRtolerance; }
1019  void setRtolerance(fpreal64 val) { myRtolerance = val; }
1021  {
1022  SOP_Node *thissop = cookparms.getNode();
1023  if (!thissop) return getRtolerance();
1024  fpreal64 result;
1025  OP_Utils::evalOpParm(result, thissop, "rtolerance", cookparms.getCookTime(), 0);
1026  return result;
1027  }
1028  fpreal64 getScale() const { return myScale; }
1029  void setScale(fpreal64 val) { myScale = val; }
1030  fpreal64 opScale(const SOP_NodeVerb::CookParms &cookparms) const
1031  {
1032  SOP_Node *thissop = cookparms.getNode();
1033  if (!thissop) return getScale();
1034  fpreal64 result;
1035  OP_Utils::evalOpParm(result, thissop, "scale", cookparms.getCookTime(), 0);
1036  return result;
1037  }
1038  fpreal64 getLift() const { return myLift; }
1039  void setLift(fpreal64 val) { myLift = val; }
1040  fpreal64 opLift(const SOP_NodeVerb::CookParms &cookparms) const
1041  {
1042  SOP_Node *thissop = cookparms.getNode();
1043  if (!thissop) return getLift();
1044  fpreal64 result;
1045  OP_Utils::evalOpParm(result, thissop, "lift", cookparms.getCookTime(), 0);
1046  return result;
1047  }
1048  fpreal64 getBias() const { return myBias; }
1049  void setBias(fpreal64 val) { myBias = val; }
1050  fpreal64 opBias(const SOP_NodeVerb::CookParms &cookparms) const
1051  {
1052  SOP_Node *thissop = cookparms.getNode();
1053  if (!thissop) return getBias();
1054  fpreal64 result;
1055  OP_Utils::evalOpParm(result, thissop, "bias", cookparms.getCookTime(), 0);
1056  return result;
1057  }
1058  bool getMaxraydistcheck() const { return myMaxraydistcheck; }
1059  void setMaxraydistcheck(bool val) { myMaxraydistcheck = val; }
1060  bool opMaxraydistcheck(const SOP_NodeVerb::CookParms &cookparms) const
1061  {
1062  SOP_Node *thissop = cookparms.getNode();
1063  if (!thissop) return getMaxraydistcheck();
1064  bool result;
1065  OP_Utils::evalOpParm(result, thissop, "maxraydistcheck", cookparms.getCookTime(), 0);
1066  return result;
1067  }
1068  fpreal64 getMaxraydist() const { return myMaxraydist; }
1069  void setMaxraydist(fpreal64 val) { myMaxraydist = val; }
1071  {
1072  SOP_Node *thissop = cookparms.getNode();
1073  if (!thissop) return getMaxraydist();
1074  fpreal64 result;
1075  OP_Utils::evalOpParm(result, thissop, "maxraydist", cookparms.getCookTime(), 0);
1076  return result;
1077  }
1078  int64 getSample() const { return mySample; }
1079  void setSample(int64 val) { mySample = val; }
1080  int64 opSample(const SOP_NodeVerb::CookParms &cookparms) const
1081  {
1082  SOP_Node *thissop = cookparms.getNode();
1083  if (!thissop) return getSample();
1084  int64 result;
1085  OP_Utils::evalOpParm(result, thissop, "sample", cookparms.getCookTime(), 0);
1086  return result;
1087  }
1088  fpreal64 getJitter() const { return myJitter; }
1089  void setJitter(fpreal64 val) { myJitter = val; }
1091  {
1092  SOP_Node *thissop = cookparms.getNode();
1093  if (!thissop) return getJitter();
1094  fpreal64 result;
1095  OP_Utils::evalOpParm(result, thissop, "jitter", cookparms.getCookTime(), 0);
1096  return result;
1097  }
1098  Combinetype getCombinetype() const { return Combinetype(myCombinetype); }
1099  void setCombinetype(Combinetype val) { myCombinetype = int64(val); }
1101  {
1102  SOP_Node *thissop = cookparms.getNode();
1103  if (!thissop) return getCombinetype();
1104  int64 result;
1105  OP_Utils::evalOpParm(result, thissop, "combinetype", cookparms.getCookTime(), 0);
1106  return Combinetype(result);
1107  }
1108  int64 getSeed() const { return mySeed; }
1109  void setSeed(int64 val) { mySeed = val; }
1110  int64 opSeed(const SOP_NodeVerb::CookParms &cookparms) const
1111  {
1112  SOP_Node *thissop = cookparms.getNode();
1113  if (!thissop) return getSeed();
1114  int64 result;
1115  OP_Utils::evalOpParm(result, thissop, "seed", cookparms.getCookTime(), 0);
1116  return result;
1117  }
1118  bool getNewgrp() const { return myNewgrp; }
1119  void setNewgrp(bool val) { myNewgrp = val; }
1120  bool opNewgrp(const SOP_NodeVerb::CookParms &cookparms) const
1121  {
1122  SOP_Node *thissop = cookparms.getNode();
1123  if (!thissop) return getNewgrp();
1124  bool result;
1125  OP_Utils::evalOpParm(result, thissop, "newgrp", cookparms.getCookTime(), 0);
1126  return result;
1127  }
1128  const UT_StringHolder & getHitgrp() const { return myHitgrp; }
1129  void setHitgrp(const UT_StringHolder & val) { myHitgrp = val; }
1131  {
1132  SOP_Node *thissop = cookparms.getNode();
1133  if (!thissop) return getHitgrp();
1134  UT_StringHolder result;
1135  OP_Utils::evalOpParm(result, thissop, "hitgrp", cookparms.getCookTime(), 0);
1136  return result;
1137  }
1138  bool getUseprimnumattrib() const { return myUseprimnumattrib; }
1139  void setUseprimnumattrib(bool val) { myUseprimnumattrib = val; }
1140  bool opUseprimnumattrib(const SOP_NodeVerb::CookParms &cookparms) const
1141  {
1142  SOP_Node *thissop = cookparms.getNode();
1143  if (!thissop) return getUseprimnumattrib();
1144  bool result;
1145  OP_Utils::evalOpParm(result, thissop, "useprimnumattrib", cookparms.getCookTime(), 0);
1146  return result;
1147  }
1148  const UT_StringHolder & getPrimnumattrib() const { return myPrimnumattrib; }
1149  void setPrimnumattrib(const UT_StringHolder & val) { myPrimnumattrib = val; }
1151  {
1152  SOP_Node *thissop = cookparms.getNode();
1153  if (!thissop) return getPrimnumattrib();
1154  UT_StringHolder result;
1155  OP_Utils::evalOpParm(result, thissop, "primnumattrib", cookparms.getCookTime(), 0);
1156  return result;
1157  }
1158  bool getUseprimuvwattrib() const { return myUseprimuvwattrib; }
1159  void setUseprimuvwattrib(bool val) { myUseprimuvwattrib = val; }
1160  bool opUseprimuvwattrib(const SOP_NodeVerb::CookParms &cookparms) const
1161  {
1162  SOP_Node *thissop = cookparms.getNode();
1163  if (!thissop) return getUseprimuvwattrib();
1164  bool result;
1165  OP_Utils::evalOpParm(result, thissop, "useprimuvwattrib", cookparms.getCookTime(), 0);
1166  return result;
1167  }
1168  const UT_StringHolder & getPrimuvwattrib() const { return myPrimuvwattrib; }
1169  void setPrimuvwattrib(const UT_StringHolder & val) { myPrimuvwattrib = val; }
1171  {
1172  SOP_Node *thissop = cookparms.getNode();
1173  if (!thissop) return getPrimuvwattrib();
1174  UT_StringHolder result;
1175  OP_Utils::evalOpParm(result, thissop, "primuvwattrib", cookparms.getCookTime(), 0);
1176  return result;
1177  }
1178  bool getGetptattribs() const { return myGetptattribs; }
1179  void setGetptattribs(bool val) { myGetptattribs = val; }
1180  bool opGetptattribs(const SOP_NodeVerb::CookParms &cookparms) const
1181  {
1182  SOP_Node *thissop = cookparms.getNode();
1183  if (!thissop) return getGetptattribs();
1184  bool result;
1185  OP_Utils::evalOpParm(result, thissop, "getptattribs", cookparms.getCookTime(), 0);
1186  return result;
1187  }
1188  const UT_StringHolder & getPtattribnames() const { return myPtattribnames; }
1189  void setPtattribnames(const UT_StringHolder & val) { myPtattribnames = val; }
1191  {
1192  SOP_Node *thissop = cookparms.getNode();
1193  if (!thissop) return getPtattribnames();
1194  UT_StringHolder result;
1195  OP_Utils::evalOpParm(result, thissop, "ptattribnames", cookparms.getCookTime(), 0);
1196  return result;
1197  }
1198  const UT_StringHolder & getVertexattribnames() const { return myVertexattribnames; }
1199  void setVertexattribnames(const UT_StringHolder & val) { myVertexattribnames = val; }
1201  {
1202  SOP_Node *thissop = cookparms.getNode();
1203  if (!thissop) return getVertexattribnames();
1204  UT_StringHolder result;
1205  OP_Utils::evalOpParm(result, thissop, "vertexattribnames", cookparms.getCookTime(), 0);
1206  return result;
1207  }
1208  const UT_StringHolder & getPrimitiveattribnames() const { return myPrimitiveattribnames; }
1209  void setPrimitiveattribnames(const UT_StringHolder & val) { myPrimitiveattribnames = val; }
1211  {
1212  SOP_Node *thissop = cookparms.getNode();
1213  if (!thissop) return getPrimitiveattribnames();
1214  UT_StringHolder result;
1215  OP_Utils::evalOpParm(result, thissop, "primitiveattribnames", cookparms.getCookTime(), 0);
1216  return result;
1217  }
1218  const UT_StringHolder & getDetailattribnames() const { return myDetailattribnames; }
1219  void setDetailattribnames(const UT_StringHolder & val) { myDetailattribnames = val; }
1221  {
1222  SOP_Node *thissop = cookparms.getNode();
1223  if (!thissop) return getDetailattribnames();
1224  UT_StringHolder result;
1225  OP_Utils::evalOpParm(result, thissop, "detailattribnames", cookparms.getCookTime(), 0);
1226  return result;
1227  }
1228 
1229 private:
1230  UT_StringHolder myGroup;
1231  int64 myEntity;
1232  UT_StringHolder myCollision;
1233  int64 myMethod;
1234  int64 myDirMethod;
1235  UT_Vector3D myDir;
1236  UT_StringHolder myDirAttrib;
1237  bool myShowguide;
1238  bool myDotrans;
1239  bool myLookfar;
1240  bool myPutnml;
1241  bool myPutdist;
1242  bool myReverserays;
1243  fpreal64 myRtolerance;
1244  fpreal64 myScale;
1245  fpreal64 myLift;
1246  fpreal64 myBias;
1247  bool myMaxraydistcheck;
1248  fpreal64 myMaxraydist;
1249  int64 mySample;
1250  fpreal64 myJitter;
1251  int64 myCombinetype;
1252  int64 mySeed;
1253  bool myNewgrp;
1254  UT_StringHolder myHitgrp;
1255  bool myUseprimnumattrib;
1256  UT_StringHolder myPrimnumattrib;
1257  bool myUseprimuvwattrib;
1258  UT_StringHolder myPrimuvwattrib;
1259  bool myGetptattribs;
1260  UT_StringHolder myPtattribnames;
1261  UT_StringHolder myVertexattribnames;
1262  UT_StringHolder myPrimitiveattribnames;
1263  UT_StringHolder myDetailattribnames;
1264 
1265 };
static void saveData(std::ostream &os, int64 v)
fpreal64 getBias() const
static void loadData(UT_IStream &is, UT_Vector3D &v)
void setPrimitiveattribnames(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Vector2I &v)
bool getUseprimnumattrib() const
void setLift(fpreal64 val)
SOP_Node * getNode() const
Definition: SOP_NodeVerb.h:494
void setHitgrp(const UT_StringHolder &val)
void getParmValue(exint idx, fpreal &value) const
T & z(void)
Definition: UT_Vector4.h:379
void setParmValue(exint idx, const UT_Vector3D &value)
UT_StringHolder opCollision(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getDetailattribnames() const
fpreal64 getJitter() const
bool opLookfar(const SOP_NodeVerb::CookParms &cookparms) const
void setVertexattribnames(const UT_StringHolder &val)
UT_StringHolder opPrimuvwattrib(const SOP_NodeVerb::CookParms &cookparms) const
exint bread(int32 *buffer, exint asize=1)
static void loadData(UT_IStream &is, UT_Vector2D &v)
GT_API const UT_StringHolder time
void getParmValue(exint idx, UT_Matrix4D &value) const
fpreal getTime() const
Definition: OP_Context.h:60
const GLdouble * v
Definition: glcorearb.h:836
static void loadData(UT_IStream &is, int64 &v)
void setCombinetype(Combinetype val)
DirMethod opDirMethod(const SOP_NodeVerb::CookParms &cookparms) const
Method opMethod(const SOP_NodeVerb::CookParms &cookparms) const
void setBias(fpreal64 val)
void setPutdist(bool val)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
bool opShowguide(const SOP_NodeVerb::CookParms &cookparms) const
void setParmValue(exint idx, const PRM_DataItemHandle &value)
void setParmValue(exint idx, const UT_Matrix2D &value)
static void loadData(UT_IStream &is, UT_StringHolder &v)
SYS_FORCE_INLINE const char * buffer() const
DirMethod getDirMethod() const
T & x(void)
Definition: UT_Vector2.h:285
void setMaxraydist(fpreal64 val)
fpreal64 opBias(const SOP_NodeVerb::CookParms &cookparms) const
void getParmValue(exint idx, UT_Vector4D &value) const
An output stream object that owns its own string buffer storage.
const UT_WorkBuffer & str() const
Returns a read-only reference to the underlying UT_WorkBuffer.
static void loadData(UT_IStream &is, UT_Vector4D &v)
void getParmValue(exint idx, UT_Vector2D &value) const
void setParmValue(exint idx, const UT_SharedPtr< UT_Ramp > &value)
void setDotrans(bool val)
SYS_FORCE_INLINE T & x(void)
Definition: UT_Vector3.h:498
static void loadData(UT_IStream &is, UT_Matrix3D &v)
bool getShowguide() const
UT_StringHolder opPtattribnames(const SOP_NodeVerb::CookParms &cookparms) const
bool getReverserays() const
static PRM_DataItemHandle parseBinary(const char *type, UT_IStream &is)
const UT_StringHolder & getDirAttrib() const
fpreal64 getScale() const
bool operator==(const SOP_RayParms &src) const
Definition: SOP_Ray.proto.h:97
void setDirMethod(DirMethod val)
void setGroup(const UT_StringHolder &val)
Combinetype getCombinetype() const
void getParmValue(exint idx, UT_SharedPtr< UT_Ramp > &value) const
const UT_StringHolder & getHitgrp() const
void setParmValue(exint idx, const UT_Vector2D &value)
virtual const char * getParmName(exint fieldnum) const
void doGetParmValue(exint idx, T &value) const
fpreal64 opScale(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE T & z(void)
Definition: UT_Vector3.h:502
void setSample(int64 val)
bool getDotrans() const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
long long int64
Definition: SYS_Types.h:107
void setLookfar(bool val)
UT_StringHolder opPrimnumattrib(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opMaxraydist(const SOP_NodeVerb::CookParms &cookparms) const
void doSetParmValue(exint idx, const T &value)
virtual ~SOP_RayParms()
Definition: SOP_Ray.proto.h:95
Entity getEntity() const
void setNewgrp(bool val)
fpreal64 getLift() const
Entity opEntity(const SOP_NodeVerb::CookParms &cookparms) const
const UT_StringHolder & getVertexattribnames() const
exint length() const
char * findChar(int c) const
Find first occurrance of character. Returns NULL upon failure.
Definition: UT_String.h:550
void setCollision(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
SYS_FORCE_INLINE const char * buffer() const
void setMaxraydistcheck(bool val)
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
Definition: UT_SharedPtr.h:28
int64 exint
Definition: SYS_Types.h:116
void setMethod(Method val)
void setRtolerance(fpreal64 val)
const OP_Node * node() const
Definition: SOP_NodeVerb.h:104
Combinetype opCombinetype(const SOP_NodeVerb::CookParms &cookparms) const
double fpreal64
Definition: SYS_Types.h:192
bool opDotrans(const SOP_NodeVerb::CookParms &cookparms) const
int64 getSeed() const
fpreal64 opRtolerance(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector3I &v)
static void saveData(std::ostream &os, UT_Vector3D v)
void getParmValue(exint idx, UT_StringHolder &value) const
bool opNewgrp(const SOP_NodeVerb::CookParms &cookparms) const
bool opUseprimuvwattrib(const SOP_NodeVerb::CookParms &cookparms) const
void setUseprimnumattrib(bool val)
void setPutnml(bool val)
UT_StringHolder opPrimitiveattribnames(const SOP_NodeVerb::CookParms &cookparms) const
UT_Vector3D getDir() const
const UT_StringHolder & getPrimitiveattribnames() const
virtual ParmType getParmType(exint fieldnum) const
Method getMethod() const
void getParmValue(exint idx, UT_Matrix2D &value) const
void setDetailattribnames(const UT_StringHolder &val)
void setUseprimuvwattrib(bool val)
void getParmValue(exint idx, UT_Vector3D &value) const
int64 getSample() const
static void saveData(std::ostream &os, UT_Matrix4D v)
UT_Vector3T< fpreal64 > UT_Vector3D
void setEntity(Entity val)
void getParmValue(exint idx, PRM_DataItemHandle &value) const
GLboolean * data
Definition: glcorearb.h:130
bool getLookfar() const
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
int int32
Definition: SYS_Types.h:35
T & y(void)
Definition: UT_Vector4.h:377
bool getUseprimuvwattrib() const
void setGetptattribs(bool val)
void setShowguide(bool val)
bool opGetptattribs(const SOP_NodeVerb::CookParms &cookparms) const
void setParmValue(exint idx, const UT_Matrix4D &value)
void saveBinary(std::ostream &os) const
Save string to binary stream.
Definition: UT_String.h:294
void setReverserays(bool val)
static void saveData(std::ostream &os, UT_Vector4D v)
GT_API const UT_StringHolder version
DEP_MicroNode * depnode() const
Definition: SOP_NodeVerb.h:111
bool opMaxraydistcheck(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_StringHolder s)
UT_Vector3D opDir(const SOP_NodeVerb::CookParms &cookparms) const
void setDirAttrib(const UT_StringHolder &val)
void setJitter(fpreal64 val)
void setScale(fpreal64 val)
SYS_FORCE_INLINE T & y(void)
Definition: UT_Vector3.h:500
GLsizei const GLfloat * value
Definition: glcorearb.h:823
double fpreal
Definition: SYS_Types.h:270
fpreal64 opJitter(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getMaxraydist() const
static void saveData(std::ostream &os, UT_Matrix3D v)
void setPrimuvwattrib(const UT_StringHolder &val)
void setSeed(int64 val)
void save(std::ostream &os) const
void setPrimnumattrib(const UT_StringHolder &val)
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
fpreal64 opLift(const SOP_NodeVerb::CookParms &cookparms) const
void setParmValue(exint idx, const exint &value)
bool getNewgrp() const
Utility class for containing a color ramp.
Definition: UT_Ramp.h:84
void setDir(UT_Vector3D val)
static void saveData(std::ostream &os, UT_Matrix2D v)
virtual exint getNumParms() const
static int version()
Definition: SOP_Ray.proto.h:52
GLuint GLfloat * val
Definition: glcorearb.h:1607
Vec3< typename MatType::value_type > getScale(const MatType &mat)
Return a Vec3 representing the lengths of the passed matrix's upper 3×3's rows.
Definition: Mat.h:665
UT_StringHolder opDetailattribnames(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opVertexattribnames(const SOP_NodeVerb::CookParms &cookparms) const
UT_StringHolder opHitgrp(const SOP_NodeVerb::CookParms &cookparms) const
#define SOP_API
Definition: SOP_API.h:10
static void loadData(UT_IStream &is, bool &v)
const UT_StringHolder & getPtattribnames() const
GLint GLint GLsizei GLint GLenum GLenum type
Definition: glcorearb.h:107
fpreal getCookTime() const
Definition: SOP_NodeVerb.h:501
void setPtattribnames(const UT_StringHolder &val)
void getParmValue(exint idx, exint &value) const
bool opReverserays(const SOP_NodeVerb::CookParms &cookparms) const
T & x(void)
Definition: UT_Vector4.h:375
bool getMaxraydistcheck() const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
void setParmValue(exint idx, const UT_StringHolder &value)
const UT_StringHolder & getGroup() const
fpreal64 getRtolerance() const
T & y(void)
Definition: UT_Vector2.h:287
UT_StringHolder opDirAttrib(const SOP_NodeVerb::CookParms &cookparms) const
bool getGetptattribs() const
void getParmValue(exint idx, UT_Matrix3D &value) const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
GLboolean r
Definition: glcorearb.h:1221
T & w(void)
Definition: UT_Vector4.h:381
bool getPutnml() const
const UT_StringHolder & getCollision() const
static void saveData(std::ostream &os, UT_Vector2D v)
virtual void copyFrom(const SOP_NodeParms *src)
bool getPutdist() const
static void saveData(std::ostream &os, fpreal64 v)
const UT_StringHolder & getPrimuvwattrib() const
bool operator!=(const SOP_RayParms &src) const
void setParmValue(exint idx, const UT_Vector4D &value)
bool opUseprimnumattrib(const SOP_NodeVerb::CookParms &cookparms) const
bool load(UT_IStream &is)
static void loadData(UT_IStream &is, fpreal64 &v)
virtual void loadFromOpSubclass(const LoadParms &loadparms)
const OP_Context & context() const
Definition: SOP_NodeVerb.h:109
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
Definition: PRM_Parm.h:88
static void loadData(UT_IStream &is, UT_Matrix4D &v)
bool opPutnml(const SOP_NodeVerb::CookParms &cookparms) const
void setParmValue(exint idx, const UT_Matrix3D &value)
SYS_FORCE_INLINE bool isstring() const
void buildFromOp(const OP_Node *node, fpreal time, DEP_MicroNode *depnode)
bool opPutdist(const SOP_NodeVerb::CookParms &cookparms) const
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
const UT_StringHolder & getPrimnumattrib() const
int64 opSeed(const SOP_NodeVerb::CookParms &cookparms) const
int64 opSample(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, bool v)
static void loadData(UT_IStream &is, UT_Vector4I &v)
GLenum src
Definition: glcorearb.h:1792
void setParmValue(exint idx, const fpreal &value)