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