32 myEnableAvoidance =
true;
33 myMaxCollisionTime = 3;
34 myEnableNeighbors =
true;
35 myNeighborDistance = 10;
37 myEnableObstacles =
true;
38 myObstacleDistance = 10;
39 myObstaclePadding = 1;
40 myHorizontalFOV = 180;
42 myTurnSpeedThreshold = 0.25;
43 myUseMaxInitialRotation =
false;
44 myMaxInitialRotation = 45;
46 myConstrainTurnAccel =
false;
49 myGoalPosWeight = 0.1;
50 myAddCollisionPointGroup =
false;
51 myCollisionPointGroup =
"collided"_UTsh;
53 myUseStartTime =
false;
70 if (myGroup != src.myGroup)
return false;
71 if (myEnableAvoidance != src.myEnableAvoidance)
return false;
72 if (myMaxCollisionTime != src.myMaxCollisionTime)
return false;
73 if (myEnableNeighbors != src.myEnableNeighbors)
return false;
74 if (myNeighborDistance != src.myNeighborDistance)
return false;
75 if (myMaxNeighbors != src.myMaxNeighbors)
return false;
76 if (myEnableObstacles != src.myEnableObstacles)
return false;
77 if (myObstacleDistance != src.myObstacleDistance)
return false;
78 if (myObstaclePadding != src.myObstaclePadding)
return false;
79 if (myHorizontalFOV != src.myHorizontalFOV)
return false;
80 if (myFOVSamples != src.myFOVSamples)
return false;
81 if (myTurnSpeedThreshold != src.myTurnSpeedThreshold)
return false;
82 if (myUseMaxInitialRotation != src.myUseMaxInitialRotation)
return false;
83 if (myMaxInitialRotation != src.myMaxInitialRotation)
return false;
84 if (myMaxTurnRate != src.myMaxTurnRate)
return false;
85 if (myConstrainTurnAccel != src.myConstrainTurnAccel)
return false;
86 if (myTurnStiffness != src.myTurnStiffness)
return false;
87 if (myTurnDamping != src.myTurnDamping)
return false;
88 if (myGoalPosWeight != src.myGoalPosWeight)
return false;
89 if (myAddCollisionPointGroup != src.myAddCollisionPointGroup)
return false;
90 if (myCollisionPointGroup != src.myCollisionPointGroup)
return false;
91 if (myTimestep != src.myTimestep)
return false;
92 if (myUseStartTime != src.myUseStartTime)
return false;
93 if (myStartTime != src.myStartTime)
return false;
94 if (myUseEndTime != src.myUseEndTime)
return false;
95 if (myEndTime != src.myEndTime)
return false;
96 if (myReferenceUp != src.myReferenceUp)
return false;
111 graph->
evalOpParm(myGroup, nodeidx,
"group", time, 0);
112 myEnableAvoidance =
true;
114 graph->
evalOpParm(myEnableAvoidance, nodeidx,
"enableavoidance", time, 0);
115 myMaxCollisionTime = 3;
116 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
117 graph->
evalOpParm(myMaxCollisionTime, nodeidx,
"maxcollisiontime", time, 0);
118 myEnableNeighbors =
true;
119 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
120 graph->
evalOpParm(myEnableNeighbors, nodeidx,
"enableneighbors", time, 0);
121 myNeighborDistance = 10;
122 if (
true && ( (
true&&!(((getEnableAvoidance()==0))||((getEnableNeighbors()==0)))) ) )
123 graph->
evalOpParm(myNeighborDistance, nodeidx,
"neighbordistance", time, 0);
124 myMaxNeighbors = 100;
125 if (
true && ( (
true&&!(((getEnableAvoidance()==0))||((getEnableNeighbors()==0)))) ) )
126 graph->
evalOpParm(myMaxNeighbors, nodeidx,
"maxneighbors", time, 0);
127 myEnableObstacles =
true;
128 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
129 graph->
evalOpParm(myEnableObstacles, nodeidx,
"enableobstacles", time, 0);
130 myObstacleDistance = 10;
131 if (
true && ( (
true&&!(((getEnableObstacles()==0))||((getEnableAvoidance()==0)))) ) )
132 graph->
evalOpParm(myObstacleDistance, nodeidx,
"obstacledistance", time, 0);
133 myObstaclePadding = 1;
134 if (
true && ( (
true&&!(((getEnableObstacles()==0))||((getEnableAvoidance()==0)))) ) )
135 graph->
evalOpParm(myObstaclePadding, nodeidx,
"obstaclepadding", time, 0);
136 myHorizontalFOV = 180;
137 if (
true && ( (
true&&!(((getEnableObstacles()==0))||((getEnableAvoidance()==0)))) ) )
138 graph->
evalOpParm(myHorizontalFOV, nodeidx,
"horizontalfov", time, 0);
140 if (
true && ( (
true&&!(((getEnableObstacles()==0))||((getEnableAvoidance()==0)))) ) )
141 graph->
evalOpParm(myFOVSamples, nodeidx,
"fovsamples", time, 0);
142 myTurnSpeedThreshold = 0.25;
143 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
144 graph->
evalOpParm(myTurnSpeedThreshold, nodeidx,
"turnspeedthreshold", time, 0);
145 myUseMaxInitialRotation =
false;
146 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
147 graph->
evalOpParm(myUseMaxInitialRotation, nodeidx,
"usemaxinitialrotation", time, 0);
148 myMaxInitialRotation = 45;
149 if (
true && ( (
true&&!(((getEnableAvoidance()==0))||((getUseMaxInitialRotation()==0)))) ) )
150 graph->
evalOpParm(myMaxInitialRotation, nodeidx,
"maxinitialrotation", time, 0);
152 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
153 graph->
evalOpParm(myMaxTurnRate, nodeidx,
"maxturnrate", time, 0);
154 myConstrainTurnAccel =
false;
155 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
156 graph->
evalOpParm(myConstrainTurnAccel, nodeidx,
"constrainturnaccel", time, 0);
157 myTurnStiffness = 10;
158 if (
true && ( (
true&&!(((getConstrainTurnAccel()==0))||((getEnableAvoidance()==0)))) ) )
159 graph->
evalOpParm(myTurnStiffness, nodeidx,
"turnstiffness", time, 0);
161 if (
true && ( (
true&&!(((getConstrainTurnAccel()==0))||((getEnableAvoidance()==0)))) ) )
162 graph->
evalOpParm(myTurnDamping, nodeidx,
"turndamping", time, 0);
163 myGoalPosWeight = 0.1;
164 if (
true && ( (
true&&!(((getEnableAvoidance()==0)))) ) )
165 graph->
evalOpParm(myGoalPosWeight, nodeidx,
"goalposweight", time, 0);
166 myAddCollisionPointGroup =
false;
168 graph->
evalOpParm(myAddCollisionPointGroup, nodeidx,
"addcollisionptgroup", time, 0);
169 myCollisionPointGroup =
"collided"_UTsh;
170 if (
true && ( (
true&&!(((getAddCollisionPointGroup()==0)))) ) )
171 graph->
evalOpParm(myCollisionPointGroup, nodeidx,
"collisionptgroup", time, 0);
174 graph->
evalOpParm(myTimestep, nodeidx,
"timestep", time, 0);
175 myUseStartTime =
false;
177 graph->
evalOpParm(myUseStartTime, nodeidx,
"usestarttime", time, 0);
179 if (
true && ( (
true&&!(((getUseStartTime()==0)))) ) )
180 graph->
evalOpParm(myStartTime, nodeidx,
"starttime", time, 0);
181 myUseEndTime =
false;
183 graph->
evalOpParm(myUseEndTime, nodeidx,
"useendtime", time, 0);
185 if (
true && ( (
true&&!(((getUseEndTime()==0)))) ) )
186 graph->
evalOpParm(myEndTime, nodeidx,
"endtime", time, 0);
189 graph->
evalOpParm(myReferenceUp, nodeidx,
"refup", time, 0);
205 template <
typename T>
212 if (idx.
size() != instance.
size()+1)
311 { doGetParmValue(idx, instance, value); }
313 { doGetParmValue(idx, instance, value); }
315 { doGetParmValue(idx, instance, value); }
317 { doGetParmValue(idx, instance, value); }
319 { doGetParmValue(idx, instance, value); }
321 { doGetParmValue(idx, instance, value); }
323 { doGetParmValue(idx, instance, value); }
325 { doGetParmValue(idx, instance, value); }
327 { doGetParmValue(idx, instance, value); }
329 { doGetParmValue(idx, instance, value); }
331 { doGetParmValue(idx, instance, value); }
333 template <
typename T>
340 if (idx.
size() != instance.
size()+1)
381 coerceValue(myUseMaxInitialRotation, ( ( value ) ));
402 coerceValue(myAddCollisionPointGroup, ( ( value ) ));
430 { doSetParmValue(idx, instance, value); }
432 { doSetParmValue(idx, instance, value); }
434 { doSetParmValue(idx, instance, value); }
436 { doSetParmValue(idx, instance, value); }
438 { doSetParmValue(idx, instance, value); }
440 { doSetParmValue(idx, instance, value); }
442 { doSetParmValue(idx, instance, value); }
444 { doSetParmValue(idx, instance, value); }
446 { doSetParmValue(idx, instance, value); }
448 { doSetParmValue(idx, instance, value); }
450 { doSetParmValue(idx, instance, value); }
466 if (fieldnum.
size() < 1)
473 return "enableavoidance";
475 return "maxcollisiontime";
477 return "enableneighbors";
479 return "neighbordistance";
481 return "maxneighbors";
483 return "enableobstacles";
485 return "obstacledistance";
487 return "obstaclepadding";
489 return "horizontalfov";
493 return "turnspeedthreshold";
495 return "usemaxinitialrotation";
497 return "maxinitialrotation";
499 return "maxturnrate";
501 return "constrainturnaccel";
503 return "turnstiffness";
505 return "turndamping";
507 return "goalposweight";
509 return "addcollisionptgroup";
511 return "collisionptgroup";
515 return "usestarttime";
531 if (fieldnum.
size() < 1)
532 return PARM_UNSUPPORTED;
610 {
for (
int r = 0;
r < 2;
r++)
for (
int c = 0; c < 2; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
612 {
for (
int r = 0;
r < 3;
r++)
for (
int c = 0; c < 3; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
614 {
for (
int r = 0;
r < 4;
r++)
for (
int c = 0; c < 4; c++) is.
bread<
fpreal64>(&v(
r, c), 1); }
627 loadData(is, rampdata);
645 int typelen = colon - data.
buffer();
659 {
int64 iv =
v; UTwrite(os, &iv); }
661 { UTwrite<fpreal64>(os, &
v); }
663 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y()); }
665 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
666 UTwrite<fpreal64>(os, &v.
z()); }
668 { UTwrite<fpreal64>(os, &v.
x()); UTwrite<fpreal64>(os, &v.
y());
669 UTwrite<fpreal64>(os, &v.
z()); UTwrite<fpreal64>(os, &v.
w()); }
681 if (s) s->save(ostr);
683 saveData(os, result);
690 ostr << s->getDataTypeToken();
695 saveData(os, result);
699 void save(std::ostream &os)
const
703 saveData(os, myGroup);
704 saveData(os, myEnableAvoidance);
705 saveData(os, myMaxCollisionTime);
706 saveData(os, myEnableNeighbors);
707 saveData(os, myNeighborDistance);
708 saveData(os, myMaxNeighbors);
709 saveData(os, myEnableObstacles);
710 saveData(os, myObstacleDistance);
711 saveData(os, myObstaclePadding);
712 saveData(os, myHorizontalFOV);
713 saveData(os, myFOVSamples);
714 saveData(os, myTurnSpeedThreshold);
715 saveData(os, myUseMaxInitialRotation);
716 saveData(os, myMaxInitialRotation);
717 saveData(os, myMaxTurnRate);
718 saveData(os, myConstrainTurnAccel);
719 saveData(os, myTurnStiffness);
720 saveData(os, myTurnDamping);
721 saveData(os, myGoalPosWeight);
722 saveData(os, myAddCollisionPointGroup);
723 saveData(os, myCollisionPointGroup);
724 saveData(os, myTimestep);
725 saveData(os, myUseStartTime);
726 saveData(os, myStartTime);
727 saveData(os, myUseEndTime);
728 saveData(os, myEndTime);
729 saveData(os, myReferenceUp);
742 loadData(is, myGroup);
743 loadData(is, myEnableAvoidance);
744 loadData(is, myMaxCollisionTime);
745 loadData(is, myEnableNeighbors);
746 loadData(is, myNeighborDistance);
747 loadData(is, myMaxNeighbors);
748 loadData(is, myEnableObstacles);
749 loadData(is, myObstacleDistance);
750 loadData(is, myObstaclePadding);
751 loadData(is, myHorizontalFOV);
752 loadData(is, myFOVSamples);
753 loadData(is, myTurnSpeedThreshold);
754 loadData(is, myUseMaxInitialRotation);
755 loadData(is, myMaxInitialRotation);
756 loadData(is, myMaxTurnRate);
757 loadData(is, myConstrainTurnAccel);
758 loadData(is, myTurnStiffness);
759 loadData(is, myTurnDamping);
760 loadData(is, myGoalPosWeight);
761 loadData(is, myAddCollisionPointGroup);
762 loadData(is, myCollisionPointGroup);
763 loadData(is, myTimestep);
764 loadData(is, myUseStartTime);
765 loadData(is, myStartTime);
766 loadData(is, myUseEndTime);
767 loadData(is, myEndTime);
768 loadData(is, myReferenceUp);
778 if (!thissop)
return getGroup();
780 OP_Utils::evalOpParm(result, thissop,
"group", cookparms.
getCookTime(), 0);
788 if (!thissop)
return getEnableAvoidance();
790 OP_Utils::evalOpParm(result, thissop,
"enableavoidance", cookparms.
getCookTime(), 0);
798 if (!thissop)
return getMaxCollisionTime();
800 OP_Utils::evalOpParm(result, thissop,
"maxcollisiontime", cookparms.
getCookTime(), 0);
808 if (!thissop)
return getEnableNeighbors();
810 OP_Utils::evalOpParm(result, thissop,
"enableneighbors", cookparms.
getCookTime(), 0);
818 if (!thissop)
return getNeighborDistance();
820 OP_Utils::evalOpParm(result, thissop,
"neighbordistance", cookparms.
getCookTime(), 0);
828 if (!thissop)
return getMaxNeighbors();
830 OP_Utils::evalOpParm(result, thissop,
"maxneighbors", cookparms.
getCookTime(), 0);
838 if (!thissop)
return getEnableObstacles();
840 OP_Utils::evalOpParm(result, thissop,
"enableobstacles", cookparms.
getCookTime(), 0);
848 if (!thissop)
return getObstacleDistance();
850 OP_Utils::evalOpParm(result, thissop,
"obstacledistance", cookparms.
getCookTime(), 0);
858 if (!thissop)
return getObstaclePadding();
860 OP_Utils::evalOpParm(result, thissop,
"obstaclepadding", cookparms.
getCookTime(), 0);
868 if (!thissop)
return getHorizontalFOV();
870 OP_Utils::evalOpParm(result, thissop,
"horizontalfov", cookparms.
getCookTime(), 0);
878 if (!thissop)
return getFOVSamples();
880 OP_Utils::evalOpParm(result, thissop,
"fovsamples", cookparms.
getCookTime(), 0);
888 if (!thissop)
return getTurnSpeedThreshold();
890 OP_Utils::evalOpParm(result, thissop,
"turnspeedthreshold", cookparms.
getCookTime(), 0);
898 if (!thissop)
return getUseMaxInitialRotation();
900 OP_Utils::evalOpParm(result, thissop,
"usemaxinitialrotation", cookparms.
getCookTime(), 0);
908 if (!thissop)
return getMaxInitialRotation();
910 OP_Utils::evalOpParm(result, thissop,
"maxinitialrotation", cookparms.
getCookTime(), 0);
918 if (!thissop)
return getMaxTurnRate();
920 OP_Utils::evalOpParm(result, thissop,
"maxturnrate", cookparms.
getCookTime(), 0);
928 if (!thissop)
return getConstrainTurnAccel();
930 OP_Utils::evalOpParm(result, thissop,
"constrainturnaccel", cookparms.
getCookTime(), 0);
938 if (!thissop)
return getTurnStiffness();
940 OP_Utils::evalOpParm(result, thissop,
"turnstiffness", cookparms.
getCookTime(), 0);
948 if (!thissop)
return getTurnDamping();
950 OP_Utils::evalOpParm(result, thissop,
"turndamping", cookparms.
getCookTime(), 0);
958 if (!thissop)
return getGoalPosWeight();
960 OP_Utils::evalOpParm(result, thissop,
"goalposweight", cookparms.
getCookTime(), 0);
968 if (!thissop)
return getAddCollisionPointGroup();
970 OP_Utils::evalOpParm(result, thissop,
"addcollisionptgroup", cookparms.
getCookTime(), 0);
978 if (!thissop)
return getCollisionPointGroup();
980 OP_Utils::evalOpParm(result, thissop,
"collisionptgroup", cookparms.
getCookTime(), 0);
988 if (!thissop)
return getTimestep();
990 OP_Utils::evalOpParm(result, thissop,
"timestep", cookparms.
getCookTime(), 0);
998 if (!thissop)
return getUseStartTime();
1000 OP_Utils::evalOpParm(result, thissop,
"usestarttime", cookparms.
getCookTime(), 0);
1008 if (!thissop)
return getStartTime();
1010 OP_Utils::evalOpParm(result, thissop,
"starttime", cookparms.
getCookTime(), 0);
1018 if (!thissop)
return getUseEndTime();
1020 OP_Utils::evalOpParm(result, thissop,
"useendtime", cookparms.
getCookTime(), 0);
1028 if (!thissop)
return getEndTime();
1030 OP_Utils::evalOpParm(result, thissop,
"endtime", cookparms.
getCookTime(), 0);
1038 if (!thissop)
return getReferenceUp();
1040 OP_Utils::evalOpParm(result, thissop,
"refup", cookparms.
getCookTime(), 0);
1046 bool myEnableAvoidance;
1048 bool myEnableNeighbors;
1050 int64 myMaxNeighbors;
1051 bool myEnableObstacles;
1057 bool myUseMaxInitialRotation;
1060 bool myConstrainTurnAccel;
1064 bool myAddCollisionPointGroup;
1067 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
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
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)
UT_Vector3D opReferenceUp(const SOP_NodeVerb::CookParms &cookparms) const
void setEndTime(fpreal64 val)
const OP_Context & context() const
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 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)
T clampMinValue(fpreal minvalue, const T &src) const
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
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)
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
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
void coerceValue(T &result, const S &src) const
bool opAddCollisionPointGroup(const SOP_NodeVerb::CookParms &cookparms) 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
void setTimestep(fpreal64 val)
DEP_MicroNode * depnode() const
static void loadData(UT_IStream &is, UT_SharedPtr< UT_Ramp > &v)
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
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 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 setNestParmValue(TempIndex idx, TempIndex instance, const UT_Matrix3D &value) override
OP_NodeParms & operator=(const OP_NodeParms &)=default
SYS_FORCE_INLINE void strncpy(const char *src, exint maxlen)
void setConstrainTurnAccel(bool val)
constexpr SYS_FORCE_INLINE T & x() noexcept