23 namespace SOP_CrowdMotionPathAvoidCoreEnums
34 using namespace UT::Literal;
51 using namespace UT::Literal;
70 myEnableAvoidance =
true;
71 myMaxCollisionTime = 3;
72 myEnableNeighbors =
true;
73 myNeighborDistance = 10;
75 myEnableObstacles =
true;
76 myObstacleDistance = 10;
77 myObstaclePadding = 1;
78 myHorizontalFOV = 180;
83 myTurnSpeedThreshold = 0.25;
84 myUseMaxInitialRotation =
false;
85 myMaxInitialRotation = 45;
87 myConstrainTurnAccel =
false;
90 myGoalPosWeight = 0.1;
92 myDistanceVariance = 5;
93 myAddCollisionPointGroup =
false;
94 myCollisionPointGroup =
"collided"_UTsh;
96 myUseStartTime =
false;
113 if (myGroup != src.myGroup)
return false;
114 if (myEnableAvoidance != src.myEnableAvoidance)
return false;
115 if (myMaxCollisionTime != src.myMaxCollisionTime)
return false;
116 if (myEnableNeighbors != src.myEnableNeighbors)
return false;
117 if (myNeighborDistance != src.myNeighborDistance)
return false;
118 if (myMaxNeighbors != src.myMaxNeighbors)
return false;
119 if (myEnableObstacles != src.myEnableObstacles)
return false;
120 if (myObstacleDistance != src.myObstacleDistance)
return false;
121 if (myObstaclePadding != src.myObstaclePadding)
return false;
122 if (myHorizontalFOV != src.myHorizontalFOV)
return false;
123 if (myVerticalFOV != src.myVerticalFOV)
return false;
124 if (myFOVSamples != src.myFOVSamples)
return false;
125 if (myFOVSeed != src.myFOVSeed)
return false;
126 if (mySteeringMode != src.mySteeringMode)
return false;
127 if (myTurnSpeedThreshold != src.myTurnSpeedThreshold)
return false;
128 if (myUseMaxInitialRotation != src.myUseMaxInitialRotation)
return false;
129 if (myMaxInitialRotation != src.myMaxInitialRotation)
return false;
130 if (myMaxTurnRate != src.myMaxTurnRate)
return false;
131 if (myConstrainTurnAccel != src.myConstrainTurnAccel)
return false;
132 if (myTurnStiffness != src.myTurnStiffness)
return false;
133 if (myTurnDamping != src.myTurnDamping)
return false;
134 if (myGoalPosWeight != src.myGoalPosWeight)
return false;
135 if (myGoalPos != src.myGoalPos)
return false;
136 if (myDistanceVariance != src.myDistanceVariance)
return false;
137 if (myAddCollisionPointGroup != src.myAddCollisionPointGroup)
return false;
138 if (myCollisionPointGroup != src.myCollisionPointGroup)
return false;
139 if (myTimestep != src.myTimestep)
return false;
140 if (myUseStartTime != src.myUseStartTime)
return false;
141 if (myStartTime != src.myStartTime)
return false;
142 if (myUseEndTime != src.myUseEndTime)
return false;
143 if (myEndTime != src.myEndTime)
return false;
144 if (myReferenceUp != src.myReferenceUp)
return false;
161 graph->
evalOpParm(myGroup, nodeidx,
"group", time, 0);
162 myEnableAvoidance =
true;
164 graph->
evalOpParm(myEnableAvoidance, nodeidx,
"enableavoidance", time, 0);
165 myMaxCollisionTime = 3;
166 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
167 graph->
evalOpParm(myMaxCollisionTime, nodeidx,
"maxcollisiontime", time, 0);
168 myEnableNeighbors =
true;
169 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
170 graph->
evalOpParm(myEnableNeighbors, nodeidx,
"enableneighbors", time, 0);
171 myNeighborDistance = 10;
172 if (
true && ( (
true&&!(((getEnableAvoidance()==0))||((getEnableNeighbors()==0)))) ) )
173 graph->
evalOpParm(myNeighborDistance, nodeidx,
"neighbordistance", time, 0);
174 myMaxNeighbors = 100;
175 if (
true && ( (
true&&!(((getEnableAvoidance()==0))||((getEnableNeighbors()==0)))) ) )
176 graph->
evalOpParm(myMaxNeighbors, nodeidx,
"maxneighbors", time, 0);
177 myEnableObstacles =
true;
178 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
179 graph->
evalOpParm(myEnableObstacles, nodeidx,
"enableobstacles", time, 0);
180 myObstacleDistance = 10;
181 if (
true && ( (
true&&!(((getEnableObstacles()==0))||((getEnableAvoidance()==0)))) ) )
182 graph->
evalOpParm(myObstacleDistance, nodeidx,
"obstacledistance", time, 0);
183 myObstaclePadding = 1;
184 if (
true && ( (
true&&!(((getEnableObstacles()==0))||((getEnableAvoidance()==0)))) ) )
185 graph->
evalOpParm(myObstaclePadding, nodeidx,
"obstaclepadding", time, 0);
186 myHorizontalFOV = 180;
187 if (
true && ( (
true&&!(((getEnableObstacles()==0))||((getEnableAvoidance()==0)))) ) )
188 graph->
evalOpParm(myHorizontalFOV, nodeidx,
"horizontalfov", time, 0);
190 if (
true && ( (
true&&!(((getEnableObstacles()==0))||((getEnableAvoidance()==0)))) ) )
191 graph->
evalOpParm(myVerticalFOV, nodeidx,
"verticalfov", time, 0);
193 if (
true && ( (
true&&!(((getEnableObstacles()==0))||((getEnableAvoidance()==0)))) ) )
194 graph->
evalOpParm(myFOVSamples, nodeidx,
"fovsamples", time, 0);
196 if (
true && ( (
true&&!(((getEnableObstacles()==0))||((getEnableAvoidance()==0))||((getVerticalFOV()==0)))) ) )
197 graph->
evalOpParm(myFOVSeed, nodeidx,
"fovseed", time, 0);
199 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
200 graph->
evalOpParm(mySteeringMode, nodeidx,
"steeringmode", time, 0);
201 myTurnSpeedThreshold = 0.25;
202 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
203 graph->
evalOpParm(myTurnSpeedThreshold, nodeidx,
"turnspeedthreshold", time, 0);
204 myUseMaxInitialRotation =
false;
205 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
206 graph->
evalOpParm(myUseMaxInitialRotation, nodeidx,
"usemaxinitialrotation", time, 0);
207 myMaxInitialRotation = 45;
208 if (
true && ( (
true&&!(((getEnableAvoidance()==0))||((getUseMaxInitialRotation()==0)))) ) )
209 graph->
evalOpParm(myMaxInitialRotation, nodeidx,
"maxinitialrotation", time, 0);
211 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
212 graph->
evalOpParm(myMaxTurnRate, nodeidx,
"maxturnrate", time, 0);
213 myConstrainTurnAccel =
false;
214 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
215 graph->
evalOpParm(myConstrainTurnAccel, nodeidx,
"constrainturnaccel", time, 0);
216 myTurnStiffness = 10;
217 if (
true && ( (
true&&!(((getConstrainTurnAccel()==0))||((getEnableAvoidance()==0)))) ) )
218 graph->
evalOpParm(myTurnStiffness, nodeidx,
"turnstiffness", time, 0);
220 if (
true && ( (
true&&!(((getConstrainTurnAccel()==0))||((getEnableAvoidance()==0)))) ) )
221 graph->
evalOpParm(myTurnDamping, nodeidx,
"turndamping", time, 0);
222 myGoalPosWeight = 0.1;
223 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
224 graph->
evalOpParm(myGoalPosWeight, nodeidx,
"goalposweight", time, 0);
226 if (
true && ( (
true&&!(((getEnableAvoidance()==0))||((getGoalPosWeight()==0)))) ) )
227 graph->
evalOpParm(myGoalPos, nodeidx,
"goalpos", time, 0);
228 myDistanceVariance = 5;
229 if (
true && ( (
true&&!(((
int64(getGoalPos())!=1))||((getEnableAvoidance()==0))||((getGoalPosWeight()==0))||((
int64(getGoalPos())!=1)))) ) )
230 graph->
evalOpParm(myDistanceVariance, nodeidx,
"distancevariance", time, 0);
231 myAddCollisionPointGroup =
false;
233 graph->
evalOpParm(myAddCollisionPointGroup, nodeidx,
"addcollisionptgroup", time, 0);
234 myCollisionPointGroup =
"collided"_UTsh;
235 if (
true && ( (
true&&!(((getAddCollisionPointGroup()==0)))) ) )
236 graph->
evalOpParm(myCollisionPointGroup, nodeidx,
"collisionptgroup", time, 0);
239 graph->
evalOpParm(myTimestep, nodeidx,
"timestep", time, 0);
240 myUseStartTime =
false;
242 graph->
evalOpParm(myUseStartTime, nodeidx,
"usestarttime", time, 0);
244 if (
true && ( (
true&&!(((getUseStartTime()==0)))) ) )
245 graph->
evalOpParm(myStartTime, nodeidx,
"starttime", time, 0);
246 myUseEndTime =
false;
248 graph->
evalOpParm(myUseEndTime, nodeidx,
"useendtime", time, 0);
250 if (
true && ( (
true&&!(((getUseEndTime()==0)))) ) )
251 graph->
evalOpParm(myEndTime, nodeidx,
"endtime", time, 0);
254 graph->
evalOpParm(myReferenceUp, nodeidx,
"refup", time, 0);
270 template <
typename T>
277 if (idx.
size() != instance.
size()+1)
282 coerceValue(value, myGroup);
285 coerceValue(value, myEnableAvoidance);
288 coerceValue(value, myMaxCollisionTime);
291 coerceValue(value, myEnableNeighbors);
294 coerceValue(value, myNeighborDistance);
297 coerceValue(value, myMaxNeighbors);
300 coerceValue(value, myEnableObstacles);
303 coerceValue(value, myObstacleDistance);
306 coerceValue(value, myObstaclePadding);
309 coerceValue(value, myHorizontalFOV);
312 coerceValue(value, myVerticalFOV);
315 coerceValue(value, myFOVSamples);
318 coerceValue(value, myFOVSeed);
321 coerceValue(value, mySteeringMode);
324 coerceValue(value, myTurnSpeedThreshold);
327 coerceValue(value, myUseMaxInitialRotation);
330 coerceValue(value, myMaxInitialRotation);
333 coerceValue(value, myMaxTurnRate);
336 coerceValue(value, myConstrainTurnAccel);
339 coerceValue(value, myTurnStiffness);
342 coerceValue(value, myTurnDamping);
345 coerceValue(value, myGoalPosWeight);
348 coerceValue(value, myGoalPos);
351 coerceValue(value, myDistanceVariance);
354 coerceValue(value, myAddCollisionPointGroup);
357 coerceValue(value, myCollisionPointGroup);
360 coerceValue(value, myTimestep);
363 coerceValue(value, myUseStartTime);
366 coerceValue(value, myStartTime);
369 coerceValue(value, myUseEndTime);
372 coerceValue(value, myEndTime);
375 coerceValue(value, myReferenceUp);
391 { doGetParmValue(idx, instance, value); }
393 { doGetParmValue(idx, instance, value); }
395 { doGetParmValue(idx, instance, value); }
397 { doGetParmValue(idx, instance, value); }
399 { doGetParmValue(idx, instance, value); }
401 { doGetParmValue(idx, instance, value); }
403 { doGetParmValue(idx, instance, value); }
405 { doGetParmValue(idx, instance, value); }
407 { doGetParmValue(idx, instance, value); }
409 { doGetParmValue(idx, instance, value); }
411 { doGetParmValue(idx, instance, value); }
413 template <
typename T>
420 if (idx.
size() != instance.
size()+1)
425 coerceValue(myGroup, ( ( value ) ));
428 coerceValue(myEnableAvoidance, ( ( value ) ));
431 coerceValue(myMaxCollisionTime, ( ( value ) ));
434 coerceValue(myEnableNeighbors, ( ( value ) ));
437 coerceValue(myNeighborDistance, clampMinValue(0, ( value ) ));
440 coerceValue(myMaxNeighbors, clampMinValue(0, ( value ) ));
443 coerceValue(myEnableObstacles, ( ( value ) ));
446 coerceValue(myObstacleDistance, clampMinValue(0, ( value ) ));
449 coerceValue(myObstaclePadding, clampMinValue(0, ( value ) ));
452 coerceValue(myHorizontalFOV, clampMinValue(0, ( value ) ));
455 coerceValue(myVerticalFOV, clampMinValue(0, ( value ) ));
458 coerceValue(myFOVSamples, clampMinValue(0, ( value ) ));
461 coerceValue(myFOVSeed, ( ( value ) ));
464 coerceValue(mySteeringMode, clampMinValue(0, clampMaxValue(1, value ) ));
467 coerceValue(myTurnSpeedThreshold, ( ( value ) ));
470 coerceValue(myUseMaxInitialRotation, ( ( value ) ));
473 coerceValue(myMaxInitialRotation, clampMinValue(0, ( value ) ));
476 coerceValue(myMaxTurnRate, ( ( value ) ));
479 coerceValue(myConstrainTurnAccel, ( ( value ) ));
482 coerceValue(myTurnStiffness, ( ( value ) ));
485 coerceValue(myTurnDamping, ( ( value ) ));
488 coerceValue(myGoalPosWeight, clampMinValue(0, ( value ) ));
491 coerceValue(myGoalPos, clampMinValue(0, clampMaxValue(1, value ) ));
494 coerceValue(myDistanceVariance, ( ( value ) ));
497 coerceValue(myAddCollisionPointGroup, ( ( value ) ));
500 coerceValue(myCollisionPointGroup, ( ( value ) ));
503 coerceValue(myTimestep, clampMinValue(0, ( value ) ));
506 coerceValue(myUseStartTime, ( ( value ) ));
509 coerceValue(myStartTime, ( ( value ) ));
512 coerceValue(myUseEndTime, ( ( value ) ));
515 coerceValue(myEndTime, ( ( value ) ));
518 coerceValue(myReferenceUp, ( ( value ) ));
525 { doSetParmValue(idx, instance, value); }
527 { doSetParmValue(idx, instance, value); }
529 { doSetParmValue(idx, instance, value); }
531 { doSetParmValue(idx, instance, value); }
533 { doSetParmValue(idx, instance, value); }
535 { doSetParmValue(idx, instance, value); }
537 { doSetParmValue(idx, instance, value); }
539 { doSetParmValue(idx, instance, value); }
541 { doSetParmValue(idx, instance, value); }
543 { doSetParmValue(idx, instance, value); }
545 { doSetParmValue(idx, instance, value); }
561 if (fieldnum.
size() < 1)
568 return "enableavoidance";
570 return "maxcollisiontime";
572 return "enableneighbors";
574 return "neighbordistance";
576 return "maxneighbors";
578 return "enableobstacles";
580 return "obstacledistance";
582 return "obstaclepadding";
584 return "horizontalfov";
586 return "verticalfov";
592 return "steeringmode";
594 return "turnspeedthreshold";
596 return "usemaxinitialrotation";
598 return "maxinitialrotation";
600 return "maxturnrate";
602 return "constrainturnaccel";
604 return "turnstiffness";
606 return "turndamping";
608 return "goalposweight";
612 return "distancevariance";
614 return "addcollisionptgroup";
616 return "collisionptgroup";
620 return "usestarttime";
636 if (fieldnum.
size() < 1)
637 return PARM_UNSUPPORTED;
706 return PARM_UNSUPPORTED;
742 loadData(is, rampdata);
760 int typelen = colon - data.
buffer();
774 {
int64 iv =
v; UTwrite(os, &iv); }
776 { UTwrite<fpreal64>(os, &
v); }
778 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
780 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
781 UTwrite<fpreal64>(os, &v.
z()); }
783 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
784 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
796 if (s) s->save(ostr);
798 saveData(os, result);
805 ostr << s->getDataTypeToken();
810 saveData(os, result);
814 void save(std::ostream &os)
const
818 saveData(os, myGroup);
819 saveData(os, myEnableAvoidance);
820 saveData(os, myMaxCollisionTime);
821 saveData(os, myEnableNeighbors);
822 saveData(os, myNeighborDistance);
823 saveData(os, myMaxNeighbors);
824 saveData(os, myEnableObstacles);
825 saveData(os, myObstacleDistance);
826 saveData(os, myObstaclePadding);
827 saveData(os, myHorizontalFOV);
828 saveData(os, myVerticalFOV);
829 saveData(os, myFOVSamples);
830 saveData(os, myFOVSeed);
831 saveData(os, mySteeringMode);
832 saveData(os, myTurnSpeedThreshold);
833 saveData(os, myUseMaxInitialRotation);
834 saveData(os, myMaxInitialRotation);
835 saveData(os, myMaxTurnRate);
836 saveData(os, myConstrainTurnAccel);
837 saveData(os, myTurnStiffness);
838 saveData(os, myTurnDamping);
839 saveData(os, myGoalPosWeight);
840 saveData(os, myGoalPos);
841 saveData(os, myDistanceVariance);
842 saveData(os, myAddCollisionPointGroup);
843 saveData(os, myCollisionPointGroup);
844 saveData(os, myTimestep);
845 saveData(os, myUseStartTime);
846 saveData(os, myStartTime);
847 saveData(os, myUseEndTime);
848 saveData(os, myEndTime);
849 saveData(os, myReferenceUp);
862 loadData(is, myGroup);
863 loadData(is, myEnableAvoidance);
864 loadData(is, myMaxCollisionTime);
865 loadData(is, myEnableNeighbors);
866 loadData(is, myNeighborDistance);
867 loadData(is, myMaxNeighbors);
868 loadData(is, myEnableObstacles);
869 loadData(is, myObstacleDistance);
870 loadData(is, myObstaclePadding);
871 loadData(is, myHorizontalFOV);
872 loadData(is, myVerticalFOV);
873 loadData(is, myFOVSamples);
874 loadData(is, myFOVSeed);
875 loadData(is, mySteeringMode);
876 loadData(is, myTurnSpeedThreshold);
877 loadData(is, myUseMaxInitialRotation);
878 loadData(is, myMaxInitialRotation);
879 loadData(is, myMaxTurnRate);
880 loadData(is, myConstrainTurnAccel);
881 loadData(is, myTurnStiffness);
882 loadData(is, myTurnDamping);
883 loadData(is, myGoalPosWeight);
884 loadData(is, myGoalPos);
885 loadData(is, myDistanceVariance);
886 loadData(is, myAddCollisionPointGroup);
887 loadData(is, myCollisionPointGroup);
888 loadData(is, myTimestep);
889 loadData(is, myUseStartTime);
890 loadData(is, myStartTime);
891 loadData(is, myUseEndTime);
892 loadData(is, myEndTime);
893 loadData(is, myReferenceUp);
903 if (!thissop)
return getGroup();
905 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
913 if (!thissop)
return getEnableAvoidance();
915 OP_Utils::evalOpParm(result, thissop,
"enableavoidance", cookparms.
getCookTime(), 0);
923 if (!thissop)
return getMaxCollisionTime();
925 OP_Utils::evalOpParm(result, thissop,
"maxcollisiontime", cookparms.
getCookTime(), 0);
933 if (!thissop)
return getEnableNeighbors();
935 OP_Utils::evalOpParm(result, thissop,
"enableneighbors", cookparms.
getCookTime(), 0);
943 if (!thissop)
return getNeighborDistance();
945 OP_Utils::evalOpParm(result, thissop,
"neighbordistance", cookparms.
getCookTime(), 0);
953 if (!thissop)
return getMaxNeighbors();
955 OP_Utils::evalOpParm(result, thissop,
"maxneighbors", cookparms.
getCookTime(), 0);
963 if (!thissop)
return getEnableObstacles();
965 OP_Utils::evalOpParm(result, thissop,
"enableobstacles", cookparms.
getCookTime(), 0);
973 if (!thissop)
return getObstacleDistance();
975 OP_Utils::evalOpParm(result, thissop,
"obstacledistance", cookparms.
getCookTime(), 0);
983 if (!thissop)
return getObstaclePadding();
985 OP_Utils::evalOpParm(result, thissop,
"obstaclepadding", cookparms.
getCookTime(), 0);
993 if (!thissop)
return getHorizontalFOV();
995 OP_Utils::evalOpParm(result, thissop,
"horizontalfov", cookparms.
getCookTime(), 0);
1003 if (!thissop)
return getVerticalFOV();
1005 OP_Utils::evalOpParm(result, thissop,
"verticalfov", cookparms.
getCookTime(), 0);
1013 if (!thissop)
return getFOVSamples();
1015 OP_Utils::evalOpParm(result, thissop,
"fovsamples", cookparms.
getCookTime(), 0);
1023 if (!thissop)
return getFOVSeed();
1025 OP_Utils::evalOpParm(result, thissop,
"fovseed", cookparms.
getCookTime(), 0);
1033 if (!thissop)
return getSteeringMode();
1035 OP_Utils::evalOpParm(result, thissop,
"steeringmode", cookparms.
getCookTime(), 0);
1043 if (!thissop)
return getTurnSpeedThreshold();
1045 OP_Utils::evalOpParm(result, thissop,
"turnspeedthreshold", cookparms.
getCookTime(), 0);
1053 if (!thissop)
return getUseMaxInitialRotation();
1055 OP_Utils::evalOpParm(result, thissop,
"usemaxinitialrotation", cookparms.
getCookTime(), 0);
1063 if (!thissop)
return getMaxInitialRotation();
1065 OP_Utils::evalOpParm(result, thissop,
"maxinitialrotation", cookparms.
getCookTime(), 0);
1073 if (!thissop)
return getMaxTurnRate();
1075 OP_Utils::evalOpParm(result, thissop,
"maxturnrate", cookparms.
getCookTime(), 0);
1083 if (!thissop)
return getConstrainTurnAccel();
1085 OP_Utils::evalOpParm(result, thissop,
"constrainturnaccel", cookparms.
getCookTime(), 0);
1093 if (!thissop)
return getTurnStiffness();
1095 OP_Utils::evalOpParm(result, thissop,
"turnstiffness", cookparms.
getCookTime(), 0);
1103 if (!thissop)
return getTurnDamping();
1105 OP_Utils::evalOpParm(result, thissop,
"turndamping", cookparms.
getCookTime(), 0);
1113 if (!thissop)
return getGoalPosWeight();
1115 OP_Utils::evalOpParm(result, thissop,
"goalposweight", cookparms.
getCookTime(), 0);
1123 if (!thissop)
return getGoalPos();
1125 OP_Utils::evalOpParm(result, thissop,
"goalpos", cookparms.
getCookTime(), 0);
1133 if (!thissop)
return getDistanceVariance();
1135 OP_Utils::evalOpParm(result, thissop,
"distancevariance", cookparms.
getCookTime(), 0);
1143 if (!thissop)
return getAddCollisionPointGroup();
1145 OP_Utils::evalOpParm(result, thissop,
"addcollisionptgroup", cookparms.
getCookTime(), 0);
1153 if (!thissop)
return getCollisionPointGroup();
1155 OP_Utils::evalOpParm(result, thissop,
"collisionptgroup", cookparms.
getCookTime(), 0);
1163 if (!thissop)
return getTimestep();
1165 OP_Utils::evalOpParm(result, thissop,
"timestep", cookparms.
getCookTime(), 0);
1173 if (!thissop)
return getUseStartTime();
1175 OP_Utils::evalOpParm(result, thissop,
"usestarttime", cookparms.
getCookTime(), 0);
1183 if (!thissop)
return getStartTime();
1185 OP_Utils::evalOpParm(result, thissop,
"starttime", cookparms.
getCookTime(), 0);
1193 if (!thissop)
return getUseEndTime();
1195 OP_Utils::evalOpParm(result, thissop,
"useendtime", cookparms.
getCookTime(), 0);
1203 if (!thissop)
return getEndTime();
1205 OP_Utils::evalOpParm(result, thissop,
"endtime", cookparms.
getCookTime(), 0);
1213 if (!thissop)
return getReferenceUp();
1215 OP_Utils::evalOpParm(result, thissop,
"refup", cookparms.
getCookTime(), 0);
1221 bool myEnableAvoidance;
1223 bool myEnableNeighbors;
1225 int64 myMaxNeighbors;
1226 bool myEnableObstacles;
1233 int64 mySteeringMode;
1235 bool myUseMaxInitialRotation;
1238 bool myConstrainTurnAccel;
1244 bool myAddCollisionPointGroup;
1247 bool myUseStartTime;
void setEnableObstacles(bool val)
bool opConstrainTurnAccel(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_SharedPtr< UT_Ramp > s)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector4D &value) override
fpreal64 opObstacleDistance(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix2D &value) const override
int64 opMaxNeighbors(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, fpreal64 &v)
static void loadData(UT_IStream &is, bool &v)
void setGoalPosWeight(fpreal64 val)
bool getConstrainTurnAccel() const
void setTurnDamping(fpreal64 val)
SOP_Node * getNode() const
bool opUseStartTime(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opVerticalFOV(const SOP_NodeVerb::CookParms &cookparms) const
void setReferenceUp(UT_Vector3D val)
void doGetParmValue(TempIndex idx, TempIndex instance, T &value) const
void doSetParmValue(TempIndex idx, TempIndex instance, const T &value)
static void loadData(UT_IStream &is, UT_Vector3D &v)
static void saveData(std::ostream &os, PRM_DataItemHandle s)
fpreal64 opEndTime(const SOP_NodeVerb::CookParms &cookparms) const
static void loadData(UT_IStream &is, UT_Vector4I &v)
void setCollisionPointGroup(const UT_StringHolder &val)
fpreal64 opTurnStiffness(const SOP_NodeVerb::CookParms &cookparms) const
void setHorizontalFOV(fpreal64 val)
fpreal64 opTimestep(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_SharedPtr< UT_Ramp > &value) override
void buildFromOp(const OP_GraphProxy *graph, exint nodeidx, fpreal time, DEP_MicroNode *depnode)
bool getEnableNeighbors() const
exint bread(int32 *buffer, exint asize=1)
GT_API const UT_StringHolder time
constexpr SYS_FORCE_INLINE T & y() noexcept
SteeringMode getSteeringMode() const
void getNestParmValue(TempIndex idx, TempIndex instance, fpreal &value) const override
fpreal64 getObstaclePadding() const
UT_Vector3D getReferenceUp() const
bool opEnableObstacles(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, UT_StringHolder s)
bool load(UT_IStream &is)
GoalPos getGoalPos() const
UT_Vector3D opReferenceUp(const SOP_NodeVerb::CookParms &cookparms) const
void setEndTime(fpreal64 val)
const OP_Context & context() const
void setVerticalFOV(fpreal64 val)
constexpr SYS_FORCE_INLINE T & z() noexcept
void setMaxInitialRotation(fpreal64 val)
SYS_FORCE_INLINE const char * buffer() const
void setUseMaxInitialRotation(bool val)
UT_StringHolder opCollisionPointGroup(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getHorizontalFOV() const
void setAddCollisionPointGroup(bool val)
static void saveData(std::ostream &os, UT_Matrix2D v)
An output stream object that owns its own string buffer storage.
static void saveData(std::ostream &os, UT_Matrix3D v)
bool getUseMaxInitialRotation() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix4D &value) override
void setFOVSeed(fpreal64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix4D &value) const override
**But if you need a result
static void loadData(UT_IStream &is, UT_Vector3I &v)
void setDistanceVariance(fpreal64 val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector3D &value) override
fpreal64 getStartTime() const
void setTurnStiffness(fpreal64 val)
static void loadData(UT_IStream &is, UT_Matrix4D &v)
fpreal64 getMaxInitialRotation() 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.
fpreal64 opMaxInitialRotation(const SOP_NodeVerb::CookParms &cookparms) const
void setMaxCollisionTime(fpreal64 val)
fpreal64 opStartTime(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & x() noexcept
bool isParmColorRamp(exint idx) const override
static void saveData(std::ostream &os, UT_Vector2D v)
fpreal64 getTimestep() const
bool operator==(const SOP_CrowdMotionPathAvoidCoreParms &src) const
bool getEnableAvoidance() const
static void loadData(UT_IStream &is, UT_StringHolder &v)
constexpr SYS_FORCE_INLINE T & x() noexcept
int64 opFOVSamples(const SOP_NodeVerb::CookParms &cookparms) const
static void saveData(std::ostream &os, fpreal64 v)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
fpreal64 getEndTime() const
int64 getFOVSamples() const
void setGroup(const UT_StringHolder &val)
static void loadData(UT_IStream &is, UT_Matrix2D &v)
static void loadData(UT_IStream &is, UT_Vector2I &v)
void loadFromOpSubclass(const LoadParms &loadparms) override
bool opEnableNeighbors(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opGoalPosWeight(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getVerticalFOV() const
fpreal64 opFOVSeed(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Matrix3D &value) const override
static void loadData(UT_IStream &is, PRM_DataItemHandle &v)
SYS_FORCE_INLINE const char * buffer() const
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
int64 getMaxNeighbors() const
constexpr SYS_FORCE_INLINE T & z() noexcept
void setMaxNeighbors(int64 val)
SYS_FORCE_INLINE UT_StringHolder getToken(SteeringMode enum_value)
void setStartTime(fpreal64 val)
bool getEnableObstacles() const
void setMaxTurnRate(fpreal64 val)
const OP_GraphProxy * graph() const
fpreal64 opHorizontalFOV(const SOP_NodeVerb::CookParms &cookparms) const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Vector2D &value) override
fpreal64 getNeighborDistance() const
static void saveData(std::ostream &os, bool v)
void setUseStartTime(bool val)
fpreal64 opObstaclePadding(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, PRM_DataItemHandle &value) const override
bool getUseEndTime() const
UT_Vector3T< fpreal64 > UT_Vector3D
void setTurnSpeedThreshold(fpreal64 val)
static void loadData(UT_IStream &is, UT_Vector4D &v)
void setEnableAvoidance(bool val)
virtual void evalOpParm(int64 &v, NodeIdx node, const char *parmname, fpreal time, DEP_MicroNode *depnode) const =0
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector4D &value) const override
static void saveData(std::ostream &os, UT_Vector3D v)
exint getNestNumParms(TempIndex idx) const override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_SharedPtr< UT_Ramp > &value) const override
void saveBinary(std::ostream &os) const
Save string to binary stream.
const UT_StringHolder & getCollisionPointGroup() const
GT_API const UT_StringHolder version
void setSteeringMode(SteeringMode val)
static void loadData(UT_IStream &is, UT_Matrix3D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const exint &value) override
void setUseEndTime(bool val)
void setNeighborDistance(fpreal64 val)
bool getUseStartTime() const
bool opAddCollisionPointGroup(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getFOVSeed() const
static void saveData(std::ostream &os, int64 v)
UT_StringHolder opGroup(const SOP_NodeVerb::CookParms &cookparms) const
const char * getNestParmName(TempIndex fieldnum) const override
ParmType getNestParmType(TempIndex fieldnum) const override
fpreal64 opDistanceVariance(const SOP_NodeVerb::CookParms &cookparms) const
void setTimestep(fpreal64 val)
DEP_MicroNode * depnode() const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
LeafData & operator=(const LeafData &)=delete
fpreal64 opTurnDamping(const SOP_NodeVerb::CookParms &cookparms) const
Utility class for containing a color ramp.
void setEnableNeighbors(bool val)
fpreal64 getTurnStiffness() const
static void loadData(UT_IStream &is, int64 &v)
static void loadData(UT_IStream &is, UT_Vector2D &v)
void setNestParmValue(TempIndex idx, TempIndex instance, const fpreal &value) override
bool opEnableAvoidance(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 opNeighborDistance(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & w() noexcept
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix2D &value) override
fpreal64 getObstacleDistance() const
bool opUseMaxInitialRotation(const SOP_NodeVerb::CookParms &cookparms) const
void save(std::ostream &os) const
void setObstaclePadding(fpreal64 val)
fpreal getCookTime() const
fpreal64 opTurnSpeedThreshold(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getTurnSpeedThreshold() const
fpreal64 getTurnDamping() const
const char * findChar(int c) const
GoalPos opGoalPos(const SOP_NodeVerb::CookParms &cookparms) const
void getNestParmValue(TempIndex idx, TempIndex instance, exint &value) const override
void setFOVSamples(int64 val)
void setObstacleDistance(fpreal64 val)
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector2D &value) const override
fpreal64 getGoalPosWeight() const
bool getAddCollisionPointGroup() const
const UT_StringHolder & getGroup() const
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_StringHolder &value) override
void getNestParmValue(TempIndex idx, TempIndex instance, UT_Vector3D &value) const override
constexpr SYS_FORCE_INLINE T & y() noexcept
void getNestParmValue(TempIndex idx, TempIndex instance, UT_StringHolder &value) const override
fpreal64 opMaxTurnRate(const SOP_NodeVerb::CookParms &cookparms) const
void copyFrom(const OP_NodeParms *src) override
static void saveData(std::ostream &os, UT_Vector4D v)
fpreal64 opMaxCollisionTime(const SOP_NodeVerb::CookParms &cookparms) const
fpreal64 getDistanceVariance() const
fpreal64 getMaxCollisionTime() const
SOP_CrowdMotionPathAvoidCoreParms()
fpreal64 getMaxTurnRate() const
static void saveData(std::ostream &os, UT_Matrix4D v)
UT_SharedPtr< const PRM_DataItem > PRM_DataItemHandle
bool operator!=(const SOP_CrowdMotionPathAvoidCoreParms &src) const
bool opUseEndTime(const SOP_NodeVerb::CookParms &cookparms) const
constexpr SYS_FORCE_INLINE T & y() noexcept
SYS_FORCE_INLINE bool isstring() const
void setNestParmValue(TempIndex idx, TempIndex instance, const PRM_DataItemHandle &value) override
void setGoalPos(GoalPos val)
void setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
void setConstrainTurnAccel(bool val)
constexpr SYS_FORCE_INLINE T & x() noexcept
SteeringMode opSteeringMode(const SOP_NodeVerb::CookParms &cookparms) const